From cd022c8063fe39b7ea0587a7292836071e223baa Mon Sep 17 00:00:00 2001 From: Kilian Hofmann Date: Mon, 5 Sep 2022 16:04:04 +0200 Subject: [PATCH] System openSSL for linux --- README.md | 3 + ixwebsocket/CMakeLists.txt | 11 +- openSSL/lin32/include/openssl/aes.h | 92 - openSSL/lin32/include/openssl/asn1.h | 886 ---- openSSL/lin32/include/openssl/asn1_mac.h | 10 - openSSL/lin32/include/openssl/asn1err.h | 256 - openSSL/lin32/include/openssl/asn1t.h | 945 ---- openSSL/lin32/include/openssl/async.h | 76 - openSSL/lin32/include/openssl/asyncerr.h | 42 - openSSL/lin32/include/openssl/bio.h | 801 --- openSSL/lin32/include/openssl/bioerr.h | 124 - openSSL/lin32/include/openssl/blowfish.h | 61 - openSSL/lin32/include/openssl/bn.h | 539 -- openSSL/lin32/include/openssl/bnerr.h | 100 - openSSL/lin32/include/openssl/buffer.h | 58 - openSSL/lin32/include/openssl/buffererr.h | 34 - openSSL/lin32/include/openssl/camellia.h | 83 - openSSL/lin32/include/openssl/cast.h | 53 - openSSL/lin32/include/openssl/cmac.h | 41 - openSSL/lin32/include/openssl/cms.h | 339 -- openSSL/lin32/include/openssl/cmserr.h | 202 - openSSL/lin32/include/openssl/comp.h | 53 - openSSL/lin32/include/openssl/comperr.h | 44 - openSSL/lin32/include/openssl/conf.h | 168 - openSSL/lin32/include/openssl/conf_api.h | 40 - openSSL/lin32/include/openssl/conferr.h | 76 - openSSL/lin32/include/openssl/crypto.h | 445 -- openSSL/lin32/include/openssl/cryptoerr.h | 57 - openSSL/lin32/include/openssl/ct.h | 474 -- openSSL/lin32/include/openssl/cterr.h | 80 - openSSL/lin32/include/openssl/des.h | 174 - openSSL/lin32/include/openssl/dh.h | 340 -- openSSL/lin32/include/openssl/dherr.h | 88 - openSSL/lin32/include/openssl/dsa.h | 244 - openSSL/lin32/include/openssl/dsaerr.h | 72 - openSSL/lin32/include/openssl/dtls1.h | 55 - openSSL/lin32/include/openssl/e_os2.h | 301 -- openSSL/lin32/include/openssl/ebcdic.h | 33 - openSSL/lin32/include/openssl/ec.h | 1484 ------ openSSL/lin32/include/openssl/ecdh.h | 10 - openSSL/lin32/include/openssl/ecdsa.h | 10 - openSSL/lin32/include/openssl/ecerr.h | 276 - openSSL/lin32/include/openssl/engine.h | 752 --- openSSL/lin32/include/openssl/engineerr.h | 111 - openSSL/lin32/include/openssl/err.h | 274 - openSSL/lin32/include/openssl/evp.h | 1666 ------ openSSL/lin32/include/openssl/evperr.h | 204 - openSSL/lin32/include/openssl/hmac.h | 51 - openSSL/lin32/include/openssl/idea.h | 64 - openSSL/lin32/include/openssl/kdf.h | 97 - openSSL/lin32/include/openssl/kdferr.h | 55 - openSSL/lin32/include/openssl/lhash.h | 241 - openSSL/lin32/include/openssl/md2.h | 44 - openSSL/lin32/include/openssl/md4.h | 51 - openSSL/lin32/include/openssl/md5.h | 50 - openSSL/lin32/include/openssl/mdc2.h | 42 - openSSL/lin32/include/openssl/modes.h | 208 - openSSL/lin32/include/openssl/obj_mac.h | 5198 ------------------- openSSL/lin32/include/openssl/objects.h | 175 - openSSL/lin32/include/openssl/objectserr.h | 42 - openSSL/lin32/include/openssl/ocsp.h | 352 -- openSSL/lin32/include/openssl/ocsperr.h | 78 - openSSL/lin32/include/openssl/opensslconf.h | 197 - openSSL/lin32/include/openssl/opensslv.h | 101 - openSSL/lin32/include/openssl/ossl_typ.h | 197 - openSSL/lin32/include/openssl/pem.h | 378 -- openSSL/lin32/include/openssl/pem2.h | 13 - openSSL/lin32/include/openssl/pemerr.h | 105 - openSSL/lin32/include/openssl/pkcs12.h | 223 - openSSL/lin32/include/openssl/pkcs12err.h | 81 - openSSL/lin32/include/openssl/pkcs7.h | 319 -- openSSL/lin32/include/openssl/pkcs7err.h | 103 - openSSL/lin32/include/openssl/rand.h | 77 - openSSL/lin32/include/openssl/rand_drbg.h | 130 - openSSL/lin32/include/openssl/randerr.h | 94 - openSSL/lin32/include/openssl/rc2.h | 51 - openSSL/lin32/include/openssl/rc4.h | 36 - openSSL/lin32/include/openssl/rc5.h | 63 - openSSL/lin32/include/openssl/ripemd.h | 47 - openSSL/lin32/include/openssl/rsa.h | 513 -- openSSL/lin32/include/openssl/rsaerr.h | 167 - openSSL/lin32/include/openssl/safestack.h | 207 - openSSL/lin32/include/openssl/seed.h | 96 - openSSL/lin32/include/openssl/sha.h | 119 - openSSL/lin32/include/openssl/srp.h | 135 - openSSL/lin32/include/openssl/srtp.h | 50 - openSSL/lin32/include/openssl/ssl.h | 2448 --------- openSSL/lin32/include/openssl/ssl2.h | 24 - openSSL/lin32/include/openssl/ssl3.h | 342 -- openSSL/lin32/include/openssl/sslerr.h | 776 --- openSSL/lin32/include/openssl/stack.h | 83 - openSSL/lin32/include/openssl/store.h | 266 - openSSL/lin32/include/openssl/storeerr.h | 91 - openSSL/lin32/include/openssl/symhacks.h | 37 - openSSL/lin32/include/openssl/tls1.h | 1237 ----- openSSL/lin32/include/openssl/ts.h | 559 -- openSSL/lin32/include/openssl/tserr.h | 132 - openSSL/lin32/include/openssl/txt_db.h | 57 - openSSL/lin32/include/openssl/ui.h | 368 -- openSSL/lin32/include/openssl/uierr.h | 65 - openSSL/lin32/include/openssl/whrlpool.h | 48 - openSSL/lin32/include/openssl/x509.h | 1050 ---- openSSL/lin32/include/openssl/x509_vfy.h | 632 --- openSSL/lin32/include/openssl/x509err.h | 129 - openSSL/lin32/include/openssl/x509v3.h | 938 ---- openSSL/lin32/include/openssl/x509v3err.h | 164 - openSSL/lin32/libcrypto.so.1.1 | Bin 3324260 -> 0 bytes openSSL/lin32/libssl.so.1.1 | Bin 727104 -> 0 bytes openSSL/lin64/include/openssl/aes.h | 92 - openSSL/lin64/include/openssl/asn1.h | 886 ---- openSSL/lin64/include/openssl/asn1_mac.h | 10 - openSSL/lin64/include/openssl/asn1err.h | 256 - openSSL/lin64/include/openssl/asn1t.h | 945 ---- openSSL/lin64/include/openssl/async.h | 76 - openSSL/lin64/include/openssl/asyncerr.h | 42 - openSSL/lin64/include/openssl/bio.h | 801 --- openSSL/lin64/include/openssl/bioerr.h | 124 - openSSL/lin64/include/openssl/blowfish.h | 61 - openSSL/lin64/include/openssl/bn.h | 539 -- openSSL/lin64/include/openssl/bnerr.h | 100 - openSSL/lin64/include/openssl/buffer.h | 58 - openSSL/lin64/include/openssl/buffererr.h | 34 - openSSL/lin64/include/openssl/camellia.h | 83 - openSSL/lin64/include/openssl/cast.h | 53 - openSSL/lin64/include/openssl/cmac.h | 41 - openSSL/lin64/include/openssl/cms.h | 339 -- openSSL/lin64/include/openssl/cmserr.h | 202 - openSSL/lin64/include/openssl/comp.h | 53 - openSSL/lin64/include/openssl/comperr.h | 44 - openSSL/lin64/include/openssl/conf.h | 168 - openSSL/lin64/include/openssl/conf_api.h | 40 - openSSL/lin64/include/openssl/conferr.h | 76 - openSSL/lin64/include/openssl/crypto.h | 445 -- openSSL/lin64/include/openssl/cryptoerr.h | 57 - openSSL/lin64/include/openssl/ct.h | 474 -- openSSL/lin64/include/openssl/cterr.h | 80 - openSSL/lin64/include/openssl/des.h | 174 - openSSL/lin64/include/openssl/dh.h | 340 -- openSSL/lin64/include/openssl/dherr.h | 88 - openSSL/lin64/include/openssl/dsa.h | 244 - openSSL/lin64/include/openssl/dsaerr.h | 72 - openSSL/lin64/include/openssl/dtls1.h | 55 - openSSL/lin64/include/openssl/e_os2.h | 301 -- openSSL/lin64/include/openssl/ebcdic.h | 33 - openSSL/lin64/include/openssl/ec.h | 1484 ------ openSSL/lin64/include/openssl/ecdh.h | 10 - openSSL/lin64/include/openssl/ecdsa.h | 10 - openSSL/lin64/include/openssl/ecerr.h | 276 - openSSL/lin64/include/openssl/engine.h | 752 --- openSSL/lin64/include/openssl/engineerr.h | 111 - openSSL/lin64/include/openssl/err.h | 274 - openSSL/lin64/include/openssl/evp.h | 1666 ------ openSSL/lin64/include/openssl/evperr.h | 204 - openSSL/lin64/include/openssl/hmac.h | 51 - openSSL/lin64/include/openssl/idea.h | 64 - openSSL/lin64/include/openssl/kdf.h | 97 - openSSL/lin64/include/openssl/kdferr.h | 55 - openSSL/lin64/include/openssl/lhash.h | 241 - openSSL/lin64/include/openssl/md2.h | 44 - openSSL/lin64/include/openssl/md4.h | 51 - openSSL/lin64/include/openssl/md5.h | 50 - openSSL/lin64/include/openssl/mdc2.h | 42 - openSSL/lin64/include/openssl/modes.h | 208 - openSSL/lin64/include/openssl/obj_mac.h | 5198 ------------------- openSSL/lin64/include/openssl/objects.h | 175 - openSSL/lin64/include/openssl/objectserr.h | 42 - openSSL/lin64/include/openssl/ocsp.h | 352 -- openSSL/lin64/include/openssl/ocsperr.h | 78 - openSSL/lin64/include/openssl/opensslconf.h | 197 - openSSL/lin64/include/openssl/opensslv.h | 101 - openSSL/lin64/include/openssl/ossl_typ.h | 197 - openSSL/lin64/include/openssl/pem.h | 378 -- openSSL/lin64/include/openssl/pem2.h | 13 - openSSL/lin64/include/openssl/pemerr.h | 105 - openSSL/lin64/include/openssl/pkcs12.h | 223 - openSSL/lin64/include/openssl/pkcs12err.h | 81 - openSSL/lin64/include/openssl/pkcs7.h | 319 -- openSSL/lin64/include/openssl/pkcs7err.h | 103 - openSSL/lin64/include/openssl/rand.h | 77 - openSSL/lin64/include/openssl/rand_drbg.h | 130 - openSSL/lin64/include/openssl/randerr.h | 94 - openSSL/lin64/include/openssl/rc2.h | 51 - openSSL/lin64/include/openssl/rc4.h | 36 - openSSL/lin64/include/openssl/rc5.h | 63 - openSSL/lin64/include/openssl/ripemd.h | 47 - openSSL/lin64/include/openssl/rsa.h | 513 -- openSSL/lin64/include/openssl/rsaerr.h | 167 - openSSL/lin64/include/openssl/safestack.h | 207 - openSSL/lin64/include/openssl/seed.h | 96 - openSSL/lin64/include/openssl/sha.h | 119 - openSSL/lin64/include/openssl/srp.h | 135 - openSSL/lin64/include/openssl/srtp.h | 50 - openSSL/lin64/include/openssl/ssl.h | 2448 --------- openSSL/lin64/include/openssl/ssl2.h | 24 - openSSL/lin64/include/openssl/ssl3.h | 342 -- openSSL/lin64/include/openssl/sslerr.h | 776 --- openSSL/lin64/include/openssl/stack.h | 83 - openSSL/lin64/include/openssl/store.h | 266 - openSSL/lin64/include/openssl/storeerr.h | 91 - openSSL/lin64/include/openssl/symhacks.h | 37 - openSSL/lin64/include/openssl/tls1.h | 1237 ----- openSSL/lin64/include/openssl/ts.h | 559 -- openSSL/lin64/include/openssl/tserr.h | 132 - openSSL/lin64/include/openssl/txt_db.h | 57 - openSSL/lin64/include/openssl/ui.h | 368 -- openSSL/lin64/include/openssl/uierr.h | 65 - openSSL/lin64/include/openssl/whrlpool.h | 48 - openSSL/lin64/include/openssl/x509.h | 1050 ---- openSSL/lin64/include/openssl/x509_vfy.h | 632 --- openSSL/lin64/include/openssl/x509err.h | 129 - openSSL/lin64/include/openssl/x509v3.h | 938 ---- openSSL/lin64/include/openssl/x509v3err.h | 164 - openSSL/lin64/libcrypto.so.1.1 | Bin 3394496 -> 0 bytes openSSL/lin64/libssl.so.1.1 | Bin 706672 -> 0 bytes 214 files changed, 11 insertions(+), 63941 deletions(-) delete mode 100644 openSSL/lin32/include/openssl/aes.h delete mode 100644 openSSL/lin32/include/openssl/asn1.h delete mode 100644 openSSL/lin32/include/openssl/asn1_mac.h delete mode 100644 openSSL/lin32/include/openssl/asn1err.h delete mode 100644 openSSL/lin32/include/openssl/asn1t.h delete mode 100644 openSSL/lin32/include/openssl/async.h delete mode 100644 openSSL/lin32/include/openssl/asyncerr.h delete mode 100644 openSSL/lin32/include/openssl/bio.h delete mode 100644 openSSL/lin32/include/openssl/bioerr.h delete mode 100644 openSSL/lin32/include/openssl/blowfish.h delete mode 100644 openSSL/lin32/include/openssl/bn.h delete mode 100644 openSSL/lin32/include/openssl/bnerr.h delete mode 100644 openSSL/lin32/include/openssl/buffer.h delete mode 100644 openSSL/lin32/include/openssl/buffererr.h delete mode 100644 openSSL/lin32/include/openssl/camellia.h delete mode 100644 openSSL/lin32/include/openssl/cast.h delete mode 100644 openSSL/lin32/include/openssl/cmac.h delete mode 100644 openSSL/lin32/include/openssl/cms.h delete mode 100644 openSSL/lin32/include/openssl/cmserr.h delete mode 100644 openSSL/lin32/include/openssl/comp.h delete mode 100644 openSSL/lin32/include/openssl/comperr.h delete mode 100644 openSSL/lin32/include/openssl/conf.h delete mode 100644 openSSL/lin32/include/openssl/conf_api.h delete mode 100644 openSSL/lin32/include/openssl/conferr.h delete mode 100644 openSSL/lin32/include/openssl/crypto.h delete mode 100644 openSSL/lin32/include/openssl/cryptoerr.h delete mode 100644 openSSL/lin32/include/openssl/ct.h delete mode 100644 openSSL/lin32/include/openssl/cterr.h delete mode 100644 openSSL/lin32/include/openssl/des.h delete mode 100644 openSSL/lin32/include/openssl/dh.h delete mode 100644 openSSL/lin32/include/openssl/dherr.h delete mode 100644 openSSL/lin32/include/openssl/dsa.h delete mode 100644 openSSL/lin32/include/openssl/dsaerr.h delete mode 100644 openSSL/lin32/include/openssl/dtls1.h delete mode 100644 openSSL/lin32/include/openssl/e_os2.h delete mode 100644 openSSL/lin32/include/openssl/ebcdic.h delete mode 100644 openSSL/lin32/include/openssl/ec.h delete mode 100644 openSSL/lin32/include/openssl/ecdh.h delete mode 100644 openSSL/lin32/include/openssl/ecdsa.h delete mode 100644 openSSL/lin32/include/openssl/ecerr.h delete mode 100644 openSSL/lin32/include/openssl/engine.h delete mode 100644 openSSL/lin32/include/openssl/engineerr.h delete mode 100644 openSSL/lin32/include/openssl/err.h delete mode 100644 openSSL/lin32/include/openssl/evp.h delete mode 100644 openSSL/lin32/include/openssl/evperr.h delete mode 100644 openSSL/lin32/include/openssl/hmac.h delete mode 100644 openSSL/lin32/include/openssl/idea.h delete mode 100644 openSSL/lin32/include/openssl/kdf.h delete mode 100644 openSSL/lin32/include/openssl/kdferr.h delete mode 100644 openSSL/lin32/include/openssl/lhash.h delete mode 100644 openSSL/lin32/include/openssl/md2.h delete mode 100644 openSSL/lin32/include/openssl/md4.h delete mode 100644 openSSL/lin32/include/openssl/md5.h delete mode 100644 openSSL/lin32/include/openssl/mdc2.h delete mode 100644 openSSL/lin32/include/openssl/modes.h delete mode 100644 openSSL/lin32/include/openssl/obj_mac.h delete mode 100644 openSSL/lin32/include/openssl/objects.h delete mode 100644 openSSL/lin32/include/openssl/objectserr.h delete mode 100644 openSSL/lin32/include/openssl/ocsp.h delete mode 100644 openSSL/lin32/include/openssl/ocsperr.h delete mode 100644 openSSL/lin32/include/openssl/opensslconf.h delete mode 100644 openSSL/lin32/include/openssl/opensslv.h delete mode 100644 openSSL/lin32/include/openssl/ossl_typ.h delete mode 100644 openSSL/lin32/include/openssl/pem.h delete mode 100644 openSSL/lin32/include/openssl/pem2.h delete mode 100644 openSSL/lin32/include/openssl/pemerr.h delete mode 100644 openSSL/lin32/include/openssl/pkcs12.h delete mode 100644 openSSL/lin32/include/openssl/pkcs12err.h delete mode 100644 openSSL/lin32/include/openssl/pkcs7.h delete mode 100644 openSSL/lin32/include/openssl/pkcs7err.h delete mode 100644 openSSL/lin32/include/openssl/rand.h delete mode 100644 openSSL/lin32/include/openssl/rand_drbg.h delete mode 100644 openSSL/lin32/include/openssl/randerr.h delete mode 100644 openSSL/lin32/include/openssl/rc2.h delete mode 100644 openSSL/lin32/include/openssl/rc4.h delete mode 100644 openSSL/lin32/include/openssl/rc5.h delete mode 100644 openSSL/lin32/include/openssl/ripemd.h delete mode 100644 openSSL/lin32/include/openssl/rsa.h delete mode 100644 openSSL/lin32/include/openssl/rsaerr.h delete mode 100644 openSSL/lin32/include/openssl/safestack.h delete mode 100644 openSSL/lin32/include/openssl/seed.h delete mode 100644 openSSL/lin32/include/openssl/sha.h delete mode 100644 openSSL/lin32/include/openssl/srp.h delete mode 100644 openSSL/lin32/include/openssl/srtp.h delete mode 100644 openSSL/lin32/include/openssl/ssl.h delete mode 100644 openSSL/lin32/include/openssl/ssl2.h delete mode 100644 openSSL/lin32/include/openssl/ssl3.h delete mode 100644 openSSL/lin32/include/openssl/sslerr.h delete mode 100644 openSSL/lin32/include/openssl/stack.h delete mode 100644 openSSL/lin32/include/openssl/store.h delete mode 100644 openSSL/lin32/include/openssl/storeerr.h delete mode 100644 openSSL/lin32/include/openssl/symhacks.h delete mode 100644 openSSL/lin32/include/openssl/tls1.h delete mode 100644 openSSL/lin32/include/openssl/ts.h delete mode 100644 openSSL/lin32/include/openssl/tserr.h delete mode 100644 openSSL/lin32/include/openssl/txt_db.h delete mode 100644 openSSL/lin32/include/openssl/ui.h delete mode 100644 openSSL/lin32/include/openssl/uierr.h delete mode 100644 openSSL/lin32/include/openssl/whrlpool.h delete mode 100644 openSSL/lin32/include/openssl/x509.h delete mode 100644 openSSL/lin32/include/openssl/x509_vfy.h delete mode 100644 openSSL/lin32/include/openssl/x509err.h delete mode 100644 openSSL/lin32/include/openssl/x509v3.h delete mode 100644 openSSL/lin32/include/openssl/x509v3err.h delete mode 100755 openSSL/lin32/libcrypto.so.1.1 delete mode 100755 openSSL/lin32/libssl.so.1.1 delete mode 100644 openSSL/lin64/include/openssl/aes.h delete mode 100644 openSSL/lin64/include/openssl/asn1.h delete mode 100644 openSSL/lin64/include/openssl/asn1_mac.h delete mode 100644 openSSL/lin64/include/openssl/asn1err.h delete mode 100644 openSSL/lin64/include/openssl/asn1t.h delete mode 100644 openSSL/lin64/include/openssl/async.h delete mode 100644 openSSL/lin64/include/openssl/asyncerr.h delete mode 100644 openSSL/lin64/include/openssl/bio.h delete mode 100644 openSSL/lin64/include/openssl/bioerr.h delete mode 100644 openSSL/lin64/include/openssl/blowfish.h delete mode 100644 openSSL/lin64/include/openssl/bn.h delete mode 100644 openSSL/lin64/include/openssl/bnerr.h delete mode 100644 openSSL/lin64/include/openssl/buffer.h delete mode 100644 openSSL/lin64/include/openssl/buffererr.h delete mode 100644 openSSL/lin64/include/openssl/camellia.h delete mode 100644 openSSL/lin64/include/openssl/cast.h delete mode 100644 openSSL/lin64/include/openssl/cmac.h delete mode 100644 openSSL/lin64/include/openssl/cms.h delete mode 100644 openSSL/lin64/include/openssl/cmserr.h delete mode 100644 openSSL/lin64/include/openssl/comp.h delete mode 100644 openSSL/lin64/include/openssl/comperr.h delete mode 100644 openSSL/lin64/include/openssl/conf.h delete mode 100644 openSSL/lin64/include/openssl/conf_api.h delete mode 100644 openSSL/lin64/include/openssl/conferr.h delete mode 100644 openSSL/lin64/include/openssl/crypto.h delete mode 100644 openSSL/lin64/include/openssl/cryptoerr.h delete mode 100644 openSSL/lin64/include/openssl/ct.h delete mode 100644 openSSL/lin64/include/openssl/cterr.h delete mode 100644 openSSL/lin64/include/openssl/des.h delete mode 100644 openSSL/lin64/include/openssl/dh.h delete mode 100644 openSSL/lin64/include/openssl/dherr.h delete mode 100644 openSSL/lin64/include/openssl/dsa.h delete mode 100644 openSSL/lin64/include/openssl/dsaerr.h delete mode 100644 openSSL/lin64/include/openssl/dtls1.h delete mode 100644 openSSL/lin64/include/openssl/e_os2.h delete mode 100644 openSSL/lin64/include/openssl/ebcdic.h delete mode 100644 openSSL/lin64/include/openssl/ec.h delete mode 100644 openSSL/lin64/include/openssl/ecdh.h delete mode 100644 openSSL/lin64/include/openssl/ecdsa.h delete mode 100644 openSSL/lin64/include/openssl/ecerr.h delete mode 100644 openSSL/lin64/include/openssl/engine.h delete mode 100644 openSSL/lin64/include/openssl/engineerr.h delete mode 100644 openSSL/lin64/include/openssl/err.h delete mode 100644 openSSL/lin64/include/openssl/evp.h delete mode 100644 openSSL/lin64/include/openssl/evperr.h delete mode 100644 openSSL/lin64/include/openssl/hmac.h delete mode 100644 openSSL/lin64/include/openssl/idea.h delete mode 100644 openSSL/lin64/include/openssl/kdf.h delete mode 100644 openSSL/lin64/include/openssl/kdferr.h delete mode 100644 openSSL/lin64/include/openssl/lhash.h delete mode 100644 openSSL/lin64/include/openssl/md2.h delete mode 100644 openSSL/lin64/include/openssl/md4.h delete mode 100644 openSSL/lin64/include/openssl/md5.h delete mode 100644 openSSL/lin64/include/openssl/mdc2.h delete mode 100644 openSSL/lin64/include/openssl/modes.h delete mode 100644 openSSL/lin64/include/openssl/obj_mac.h delete mode 100644 openSSL/lin64/include/openssl/objects.h delete mode 100644 openSSL/lin64/include/openssl/objectserr.h delete mode 100644 openSSL/lin64/include/openssl/ocsp.h delete mode 100644 openSSL/lin64/include/openssl/ocsperr.h delete mode 100644 openSSL/lin64/include/openssl/opensslconf.h delete mode 100644 openSSL/lin64/include/openssl/opensslv.h delete mode 100644 openSSL/lin64/include/openssl/ossl_typ.h delete mode 100644 openSSL/lin64/include/openssl/pem.h delete mode 100644 openSSL/lin64/include/openssl/pem2.h delete mode 100644 openSSL/lin64/include/openssl/pemerr.h delete mode 100644 openSSL/lin64/include/openssl/pkcs12.h delete mode 100644 openSSL/lin64/include/openssl/pkcs12err.h delete mode 100644 openSSL/lin64/include/openssl/pkcs7.h delete mode 100644 openSSL/lin64/include/openssl/pkcs7err.h delete mode 100644 openSSL/lin64/include/openssl/rand.h delete mode 100644 openSSL/lin64/include/openssl/rand_drbg.h delete mode 100644 openSSL/lin64/include/openssl/randerr.h delete mode 100644 openSSL/lin64/include/openssl/rc2.h delete mode 100644 openSSL/lin64/include/openssl/rc4.h delete mode 100644 openSSL/lin64/include/openssl/rc5.h delete mode 100644 openSSL/lin64/include/openssl/ripemd.h delete mode 100644 openSSL/lin64/include/openssl/rsa.h delete mode 100644 openSSL/lin64/include/openssl/rsaerr.h delete mode 100644 openSSL/lin64/include/openssl/safestack.h delete mode 100644 openSSL/lin64/include/openssl/seed.h delete mode 100644 openSSL/lin64/include/openssl/sha.h delete mode 100644 openSSL/lin64/include/openssl/srp.h delete mode 100644 openSSL/lin64/include/openssl/srtp.h delete mode 100644 openSSL/lin64/include/openssl/ssl.h delete mode 100644 openSSL/lin64/include/openssl/ssl2.h delete mode 100644 openSSL/lin64/include/openssl/ssl3.h delete mode 100644 openSSL/lin64/include/openssl/sslerr.h delete mode 100644 openSSL/lin64/include/openssl/stack.h delete mode 100644 openSSL/lin64/include/openssl/store.h delete mode 100644 openSSL/lin64/include/openssl/storeerr.h delete mode 100644 openSSL/lin64/include/openssl/symhacks.h delete mode 100644 openSSL/lin64/include/openssl/tls1.h delete mode 100644 openSSL/lin64/include/openssl/ts.h delete mode 100644 openSSL/lin64/include/openssl/tserr.h delete mode 100644 openSSL/lin64/include/openssl/txt_db.h delete mode 100644 openSSL/lin64/include/openssl/ui.h delete mode 100644 openSSL/lin64/include/openssl/uierr.h delete mode 100644 openSSL/lin64/include/openssl/whrlpool.h delete mode 100644 openSSL/lin64/include/openssl/x509.h delete mode 100644 openSSL/lin64/include/openssl/x509_vfy.h delete mode 100644 openSSL/lin64/include/openssl/x509err.h delete mode 100644 openSSL/lin64/include/openssl/x509v3.h delete mode 100644 openSSL/lin64/include/openssl/x509v3err.h delete mode 100755 openSSL/lin64/libcrypto.so.1.1 delete mode 100755 openSSL/lin64/libssl.so.1.1 diff --git a/README.md b/README.md index a938b83..cd0b943 100644 --- a/README.md +++ b/README.md @@ -9,3 +9,6 @@ X-Plane Plugin for all supported platforms. Demo of WebSocket capabilities + +Requirements: +- openSSL 1.1.x \ No newline at end of file diff --git a/ixwebsocket/CMakeLists.txt b/ixwebsocket/CMakeLists.txt index 74b38a5..f1c6af1 100644 --- a/ixwebsocket/CMakeLists.txt +++ b/ixwebsocket/CMakeLists.txt @@ -76,12 +76,17 @@ elseif(UNIX) -m32 ) endif() + if (NOT OPENSSL_FOUND) + find_package(OpenSSL REQUIRED) + endif() + message(STATUS "System OpenSSL: " ${OPENSSL_VERSION}) + + add_definitions(${OPENSSL_DEFINITIONS}) target_include_directories(ixwebsocket PRIVATE - ${CMAKE_SOURCE_DIR}/openSSL/lin${BIT}/include + ${OPENSSL_INCLUDE_DIR} ) target_link_libraries(ixwebsocket PRIVATE - ${CMAKE_SOURCE_DIR}/openSSL/lin${BIT}/libcrypto.so.1.1 - ${CMAKE_SOURCE_DIR}/openSSL/lin${BIT}/libssl.so.1.1 + ${OPENSSL_LIBRARIES} pthread ) elseif(WIN32) diff --git a/openSSL/lin32/include/openssl/aes.h b/openSSL/lin32/include/openssl/aes.h deleted file mode 100644 index 245c552..0000000 --- a/openSSL/lin32/include/openssl/aes.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2002-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_AES_H -# define HEADER_AES_H - -# include - -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define AES_ENCRYPT 1 -# define AES_DECRYPT 0 - -/* - * Because array size can't be a const in C, the following two are macros. - * Both sizes are in bytes. - */ -# define AES_MAXNR 14 -# define AES_BLOCK_SIZE 16 - -/* This should be a hidden type, but EVP requires that the size be known */ -struct aes_key_st { -# ifdef AES_LONG - unsigned long rd_key[4 * (AES_MAXNR + 1)]; -# else - unsigned int rd_key[4 * (AES_MAXNR + 1)]; -# endif - int rounds; -}; -typedef struct aes_key_st AES_KEY; - -const char *AES_options(void); - -int AES_set_encrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -int AES_set_decrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); - -void AES_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); -void AES_decrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); - -void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key, const int enc); -void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num); -/* NB: the IV is _two_ blocks long */ -void AES_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -/* NB: the IV is _four_ blocks long */ -void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - const AES_KEY *key2, const unsigned char *ivec, - const int enc); - -int AES_wrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, unsigned int inlen); -int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, unsigned int inlen); - - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/asn1.h b/openSSL/lin32/include/openssl/asn1.h deleted file mode 100644 index 9522eec..0000000 --- a/openSSL/lin32/include/openssl/asn1.h +++ /dev/null @@ -1,886 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ASN1_H -# define HEADER_ASN1_H - -# include -# include -# include -# include -# include -# include -# include - -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define V_ASN1_UNIVERSAL 0x00 -# define V_ASN1_APPLICATION 0x40 -# define V_ASN1_CONTEXT_SPECIFIC 0x80 -# define V_ASN1_PRIVATE 0xc0 - -# define V_ASN1_CONSTRUCTED 0x20 -# define V_ASN1_PRIMITIVE_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 */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ - -# define V_ASN1_UNDEF -1 -/* ASN.1 tag values */ -# define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ -# define V_ASN1_INTEGER 2 -# define V_ASN1_BIT_STRING 3 -# define V_ASN1_OCTET_STRING 4 -# define V_ASN1_NULL 5 -# define V_ASN1_OBJECT 6 -# define V_ASN1_OBJECT_DESCRIPTOR 7 -# define V_ASN1_EXTERNAL 8 -# define V_ASN1_REAL 9 -# define V_ASN1_ENUMERATED 10 -# define V_ASN1_UTF8STRING 12 -# define V_ASN1_SEQUENCE 16 -# define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ -# define V_ASN1_PRINTABLESTRING 19 -# define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ -# define V_ASN1_IA5STRING 22 -# define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ -# define V_ASN1_BMPSTRING 30 - -/* - * NB the constants below are used internally by ASN1_INTEGER - * and ASN1_ENUMERATED to indicate the sign. They are *not* on - * the wire tag values. - */ - -# define V_ASN1_NEG 0x100 -# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) -# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) - -/* For use with d2i_ASN1_type_bytes() */ -# define B_ASN1_NUMERICSTRING 0x0001 -# define B_ASN1_PRINTABLESTRING 0x0002 -# define B_ASN1_T61STRING 0x0004 -# define B_ASN1_TELETEXSTRING 0x0004 -# define B_ASN1_VIDEOTEXSTRING 0x0008 -# define B_ASN1_IA5STRING 0x0010 -# define B_ASN1_GRAPHICSTRING 0x0020 -# define B_ASN1_ISO64STRING 0x0040 -# define B_ASN1_VISIBLESTRING 0x0040 -# define B_ASN1_GENERALSTRING 0x0080 -# define B_ASN1_UNIVERSALSTRING 0x0100 -# define B_ASN1_OCTET_STRING 0x0200 -# define B_ASN1_BIT_STRING 0x0400 -# define B_ASN1_BMPSTRING 0x0800 -# define B_ASN1_UNKNOWN 0x1000 -# define B_ASN1_UTF8STRING 0x2000 -# define B_ASN1_UTCTIME 0x4000 -# define B_ASN1_GENERALIZEDTIME 0x8000 -# define B_ASN1_SEQUENCE 0x10000 -/* For use with ASN1_mbstring_copy() */ -# define MBSTRING_FLAG 0x1000 -# define MBSTRING_UTF8 (MBSTRING_FLAG) -# define MBSTRING_ASC (MBSTRING_FLAG|1) -# define MBSTRING_BMP (MBSTRING_FLAG|2) -# define MBSTRING_UNIV (MBSTRING_FLAG|4) -# define SMIME_OLDMIME 0x400 -# define SMIME_CRLFEOL 0x800 -# define SMIME_STREAM 0x1000 - struct X509_algor_st; -DEFINE_STACK_OF(X509_ALGOR) - -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ -/* - * This indicates that the ASN1_STRING is not a real value but just a place - * holder for the location where indefinite length constructed data should be - * inserted in the memory buffer - */ -# define ASN1_STRING_FLAG_NDEF 0x010 - -/* - * This flag is used by the CMS code to indicate that a string is not - * complete and is a place holder for content when it had all been accessed. - * The flag will be reset when content has been written to it. - */ - -# define ASN1_STRING_FLAG_CONT 0x020 -/* - * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING - * type. - */ -# 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; - int type; - unsigned char *data; - /* - * The value of the following field depends on the type being held. It - * is mostly being used for BIT_STRING so if the input data has a - * non-zero 'unused bits' value, it will be handled correctly - */ - long flags; -}; - -/* - * ASN1_ENCODING structure: this is used to save the received encoding of an - * ASN1 type. This is useful to get round problems with invalid encodings - * which can break signatures. - */ - -typedef struct ASN1_ENCODING_st { - unsigned char *enc; /* DER encoding */ - long len; /* Length of encoding */ - int modified; /* set to 1 if 'enc' is invalid */ -} ASN1_ENCODING; - -/* Used with ASN1 LONG type: if a long is set to this it is omitted */ -# define ASN1_LONG_UNDEF 0x7fffffffL - -# define STABLE_FLAGS_MALLOC 0x01 -/* - * A zero passed to ASN1_STRING_TABLE_new_add for the flags is interpreted - * as "don't change" and STABLE_FLAGS_MALLOC is always set. By setting - * STABLE_FLAGS_MALLOC only we can clear the existing value. Use the alias - * STABLE_FLAGS_CLEAR to reflect this. - */ -# define STABLE_FLAGS_CLEAR STABLE_FLAGS_MALLOC -# define STABLE_NO_MASK 0x02 -# define DIRSTRING_TYPE \ - (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) -# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) - -typedef struct asn1_string_table_st { - int nid; - long minsize; - long maxsize; - unsigned long mask; - unsigned long flags; -} ASN1_STRING_TABLE; - -DEFINE_STACK_OF(ASN1_STRING_TABLE) - -/* size limits: this stuff is taken straight from RFC2459 */ - -# define ub_name 32768 -# define ub_common_name 64 -# define ub_locality_name 128 -# define ub_state_name 128 -# define ub_organization_name 64 -# define ub_organization_unit_name 64 -# define ub_title 64 -# define ub_email_address 128 - -/* - * Declarations for template structures: for full definitions see asn1t.h - */ -typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; -typedef struct ASN1_TLC_st ASN1_TLC; -/* This is just an opaque pointer */ -typedef struct ASN1_VALUE_st ASN1_VALUE; - -/* Declare ASN1 functions: the implement macro in in asn1t.h */ - -# define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type) - -# define DECLARE_ASN1_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) - -# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ - type *d2i_##name(type **a, const unsigned char **in, long len); \ - int i2d_##name(type *a, unsigned char **out); \ - DECLARE_ASN1_ITEM(itname) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ - type *d2i_##name(type **a, const unsigned char **in, long len); \ - int i2d_##name(const type *a, unsigned char **out); \ - DECLARE_ASN1_ITEM(name) - -# define DECLARE_ASN1_NDEF_FUNCTION(name) \ - int i2d_##name##_NDEF(name *a, unsigned char **out); - -# define DECLARE_ASN1_FUNCTIONS_const(name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS(name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - type *name##_new(void); \ - void name##_free(type *a); - -# define DECLARE_ASN1_PRINT_FUNCTION(stname) \ - DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname) - -# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ - int fname##_print_ctx(BIO *out, stname *x, int indent, \ - const ASN1_PCTX *pctx); - -# define D2I_OF(type) type *(*)(type **,const unsigned char **,long) -# define I2D_OF(type) int (*)(type *,unsigned char **) -# define I2D_OF_const(type) int (*)(const type *,unsigned char **) - -# define CHECKED_D2I_OF(type, d2i) \ - ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) -# define CHECKED_I2D_OF(type, i2d) \ - ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) -# define CHECKED_NEW_OF(type, xnew) \ - ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) -# define CHECKED_PTR_OF(type, p) \ - ((void*) (1 ? p : (type*)0)) -# define CHECKED_PPTR_OF(type, p) \ - ((void**) (1 ? p : (type**)0)) - -# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) -# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **) -# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) - -TYPEDEF_D2I2D_OF(void); - -/*- - * The following macros and typedefs allow an ASN1_ITEM - * to be embedded in a structure and referenced. Since - * the ASN1_ITEM pointers need to be globally accessible - * (possibly from shared libraries) they may exist in - * different forms. On platforms that support it the - * ASN1_ITEM structure itself will be globally exported. - * Other platforms will export a function that returns - * an ASN1_ITEM pointer. - * - * To handle both cases transparently the macros below - * should be used instead of hard coding an ASN1_ITEM - * pointer in a structure. - * - * The structure will look like this: - * - * typedef struct SOMETHING_st { - * ... - * ASN1_ITEM_EXP *iptr; - * ... - * } SOMETHING; - * - * It would be initialised as e.g.: - * - * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; - * - * and the actual pointer extracted with: - * - * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); - * - * Finally an ASN1_ITEM pointer can be extracted from an - * appropriate reference with: ASN1_ITEM_rptr(X509). This - * would be used when a function takes an ASN1_ITEM * argument. - * - */ - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM ASN1_ITEM_EXP; - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -# define ASN1_ITEM_ptr(iptr) (iptr) - -/* Macro to include ASN1_ITEM pointer from base type */ -# define ASN1_ITEM_ref(iptr) (&(iptr##_it)) - -# define ASN1_ITEM_rptr(ref) (&(ref##_it)) - -# define DECLARE_ASN1_ITEM(name) \ - OPENSSL_EXTERN const ASN1_ITEM name##_it; - -# else - -/* - * Platforms that can't easily handle shared global variables are declared as - * functions returning ASN1_ITEM pointers. - */ - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -# define ASN1_ITEM_ptr(iptr) (iptr()) - -/* Macro to include ASN1_ITEM pointer from base type */ -# define ASN1_ITEM_ref(iptr) (iptr##_it) - -# define ASN1_ITEM_rptr(ref) (ref##_it()) - -# define DECLARE_ASN1_ITEM(name) \ - const ASN1_ITEM * name##_it(void); - -# endif - -/* Parameters used by ASN1_STRING_print_ex() */ - -/* - * These determine which characters to escape: RFC2253 special characters, - * control characters and MSB set characters - */ - -# define ASN1_STRFLGS_ESC_2253 1 -# define ASN1_STRFLGS_ESC_CTRL 2 -# define ASN1_STRFLGS_ESC_MSB 4 - -/* - * This flag determines how we do escaping: normally RC2253 backslash only, - * set this to use backslash and quote. - */ - -# define ASN1_STRFLGS_ESC_QUOTE 8 - -/* These three flags are internal use only. */ - -/* Character is a valid PrintableString character */ -# define CHARTYPE_PRINTABLESTRING 0x10 -/* Character needs escaping if it is the first character */ -# define CHARTYPE_FIRST_ESC_2253 0x20 -/* Character needs escaping if it is the last character */ -# define CHARTYPE_LAST_ESC_2253 0x40 - -/* - * NB the internal flags are safely reused below by flags handled at the top - * level. - */ - -/* - * If this is set we convert all character strings to UTF8 first - */ - -# define ASN1_STRFLGS_UTF8_CONVERT 0x10 - -/* - * If this is set we don't attempt to interpret content: just assume all - * strings are 1 byte per character. This will produce some pretty odd - * looking output! - */ - -# define ASN1_STRFLGS_IGNORE_TYPE 0x20 - -/* If this is set we include the string type in the output */ -# define ASN1_STRFLGS_SHOW_TYPE 0x40 - -/* - * This determines which strings to display and which to 'dump' (hex dump of - * content octets or DER encoding). We can only dump non character strings or - * everything. If we don't dump 'unknown' they are interpreted as character - * strings with 1 octet per character and are subject to the usual escaping - * options. - */ - -# define ASN1_STRFLGS_DUMP_ALL 0x80 -# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 - -/* - * These determine what 'dumping' does, we can dump the content octets or the - * DER encoding: both use the RFC2253 #XXXXX notation. - */ - -# define ASN1_STRFLGS_DUMP_DER 0x200 - -/* - * This flag specifies that RC2254 escaping shall be performed. - */ -#define ASN1_STRFLGS_ESC_2254 0x400 - -/* - * All the string flags consistent with RFC2253, escaping control characters - * isn't essential in RFC2253 but it is advisable anyway. - */ - -# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ - ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - ASN1_STRFLGS_UTF8_CONVERT | \ - ASN1_STRFLGS_DUMP_UNKNOWN | \ - ASN1_STRFLGS_DUMP_DER) - -DEFINE_STACK_OF(ASN1_INTEGER) - -DEFINE_STACK_OF(ASN1_GENERALSTRING) - -DEFINE_STACK_OF(ASN1_UTF8STRING) - -typedef struct asn1_type_st { - int type; - union { - char *ptr; - ASN1_BOOLEAN boolean; - ASN1_STRING *asn1_string; - ASN1_OBJECT *object; - ASN1_INTEGER *integer; - ASN1_ENUMERATED *enumerated; - ASN1_BIT_STRING *bit_string; - ASN1_OCTET_STRING *octet_string; - ASN1_PRINTABLESTRING *printablestring; - ASN1_T61STRING *t61string; - ASN1_IA5STRING *ia5string; - ASN1_GENERALSTRING *generalstring; - ASN1_BMPSTRING *bmpstring; - ASN1_UNIVERSALSTRING *universalstring; - ASN1_UTCTIME *utctime; - ASN1_GENERALIZEDTIME *generalizedtime; - ASN1_VISIBLESTRING *visiblestring; - ASN1_UTF8STRING *utf8string; - /* - * set and sequence are left complete and still contain the set or - * sequence bytes - */ - ASN1_STRING *set; - ASN1_STRING *sequence; - ASN1_VALUE *asn1_value; - } value; -} ASN1_TYPE; - -DEFINE_STACK_OF(ASN1_TYPE) - -typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; - -DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) -DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) - -/* This is used to contain a list of bit names */ -typedef struct BIT_STRING_BITNAME_st { - int bitnum; - const char *lname; - const char *sname; -} BIT_STRING_BITNAME; - -# define B_ASN1_TIME \ - B_ASN1_UTCTIME | \ - B_ASN1_GENERALIZEDTIME - -# define B_ASN1_PRINTABLE \ - B_ASN1_NUMERICSTRING| \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_T61STRING| \ - B_ASN1_IA5STRING| \ - B_ASN1_BIT_STRING| \ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING|\ - B_ASN1_SEQUENCE|\ - B_ASN1_UNKNOWN - -# define B_ASN1_DIRECTORYSTRING \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_TELETEXSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_UTF8STRING - -# define B_ASN1_DISPLAYTEXT \ - B_ASN1_IA5STRING| \ - B_ASN1_VISIBLESTRING| \ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING - -DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) - -int ASN1_TYPE_get(const ASN1_TYPE *a); -void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); -int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); -int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); - -ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t); -void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t); - -ASN1_OBJECT *ASN1_OBJECT_new(void); -void ASN1_OBJECT_free(ASN1_OBJECT *a); -int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp); -ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, - long length); - -DECLARE_ASN1_ITEM(ASN1_OBJECT) - -DEFINE_STACK_OF(ASN1_OBJECT) - -ASN1_STRING *ASN1_STRING_new(void); -void ASN1_STRING_free(ASN1_STRING *a); -void ASN1_STRING_clear_free(ASN1_STRING *a); -int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); -ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); -ASN1_STRING *ASN1_STRING_type_new(int type); -int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); - /* - * Since this is used to store all sorts of things, via macros, for now, - * make its data void * - */ -int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); -void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); -int ASN1_STRING_length(const ASN1_STRING *x); -void ASN1_STRING_length_set(ASN1_STRING *x, int n); -int ASN1_STRING_type(const ASN1_STRING *x); -DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x)) -const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); - -DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) -int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); -int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); -int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n); -int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, - const unsigned char *flags, int flags_len); - -int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, - BIT_STRING_BITNAME *tbl, int indent); -int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl); -int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, - BIT_STRING_BITNAME *tbl); - -DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) -ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, - long length); -ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); -int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); - -DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) - -int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); -ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); -ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, - int offset_day, long offset_sec); -int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); -int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); - -int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, - time_t t); -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); - -DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) -ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); -int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, - const ASN1_OCTET_STRING *b); -int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, - int len); - -DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_NULL) -DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) - -int UTF8_getc(const unsigned char *str, int len, unsigned long *val); -int UTF8_putc(unsigned char *str, int len, unsigned long value); - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) -DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_TIME) - -DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) - -ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); -ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, - int offset_day, long offset_sec); -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); -int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a); -int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); -int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a); -int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); -int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type); -int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a); - -int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); -ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, - const char *sn, const char *ln); - -int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a); -int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r); -int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a); -int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r); - -int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); -long ASN1_INTEGER_get(const ASN1_INTEGER *a); -ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); -BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); - -int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a); -int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r); - - -int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); -long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a); -ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai); -BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn); - -/* General */ -/* given a string, return the correct type, max is the maximum length */ -int ASN1_PRINTABLE_type(const unsigned char *s, int max); - -unsigned long ASN1_tag2bit(int tag); - -/* SPECIALS */ -int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, - int *pclass, long omax); -int ASN1_check_infinite_end(unsigned char **p, long len); -int ASN1_const_check_infinite_end(const unsigned char **p, long len); -void ASN1_put_object(unsigned char **pp, int constructed, int length, - int tag, int xclass); -int ASN1_put_eoc(unsigned char **pp); -int ASN1_object_size(int constructed, int length, int tag); - -/* Used to implement other functions */ -void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); - -# define ASN1_dup_of(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_dup_of_const(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(const type, x))) - -void *ASN1_item_dup(const ASN1_ITEM *it, void *x); - -/* ASN1 alloc/free macros for when a type is only used internally */ - -# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) -# define M_ASN1_free_of(x, type) \ - ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) - -# ifndef OPENSSL_NO_STDIO -void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); - -# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); -int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); - -# define ASN1_i2d_fp_of(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_i2d_fp_of_const(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); -int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags); -# endif - -int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); - -void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); - -# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); -int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); - -# define ASN1_i2d_bio_of(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_i2d_bio_of_const(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); -int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); -int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); -int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); -int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); -int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags); -int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off); -int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, - unsigned char *buf, int off); -int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); -int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, - int dump); -const char *ASN1_tag2str(int tag); - -/* Used to load and write Netscape format cert */ - -int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); - -int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); -int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len); -int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, - unsigned char *data, int len); -int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, - unsigned char *data, int max_len); - -void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); - -ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, - ASN1_OCTET_STRING **oct); - -void ASN1_STRING_set_default_mask(unsigned long mask); -int ASN1_STRING_set_default_mask_asc(const char *p); -unsigned long ASN1_STRING_get_default_mask(void); -int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask); -int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask, - long minsize, long maxsize); - -ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, - const unsigned char *in, int inlen, - int inform, int nid); -ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); -int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); -void ASN1_STRING_TABLE_cleanup(void); - -/* ASN1 template functions */ - -/* Old API compatible functions */ -ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); -void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); -ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, - long len, const ASN1_ITEM *it); -int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); -int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, - const ASN1_ITEM *it); - -void ASN1_add_oid_module(void); -void ASN1_add_stable_module(void); - -ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf); -ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf); -int ASN1_str2mask(const char *str, unsigned long *pmask); - -/* ASN1 Print flags */ - -/* Indicate missing OPTIONAL fields */ -# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 -/* Mark start and end of SEQUENCE */ -# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 -/* Mark start and end of SEQUENCE/SET OF */ -# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 -/* Show the ASN1 type of primitives */ -# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 -/* Don't show ASN1 type of ANY */ -# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 -/* Don't show ASN1 type of MSTRINGs */ -# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 -/* Don't show field names in SEQUENCE */ -# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 -/* Show structure names of each SEQUENCE field */ -# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 -/* Don't show structure name even at top level */ -# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 - -int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, - const ASN1_ITEM *it, const ASN1_PCTX *pctx); -ASN1_PCTX *ASN1_PCTX_new(void); -void ASN1_PCTX_free(ASN1_PCTX *p); -unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); - -ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)); -void ASN1_SCTX_free(ASN1_SCTX *p); -const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p); -const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p); -unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p); -void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data); -void *ASN1_SCTX_get_app_data(ASN1_SCTX *p); - -const BIO_METHOD *BIO_f_asn1(void); - -BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); - -int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const ASN1_ITEM *it); -int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const char *hdr, const ASN1_ITEM *it); -int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, - int ctype_nid, int econt_nid, - STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it); -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); - -const ASN1_ITEM *ASN1_ITEM_lookup(const char *name); -const ASN1_ITEM *ASN1_ITEM_get(size_t i); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/asn1_mac.h b/openSSL/lin32/include/openssl/asn1_mac.h deleted file mode 100644 index 7ac1782..0000000 --- a/openSSL/lin32/include/openssl/asn1_mac.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2015-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 - */ - -#error "This file is obsolete; please update your software." diff --git a/openSSL/lin32/include/openssl/asn1err.h b/openSSL/lin32/include/openssl/asn1err.h deleted file mode 100644 index e1ad1fe..0000000 --- a/openSSL/lin32/include/openssl/asn1err.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# include - -# 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_EX_I2D 144 -# 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_BAD_TEMPLATE 230 -# 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/openSSL/lin32/include/openssl/asn1t.h b/openSSL/lin32/include/openssl/asn1t.h deleted file mode 100644 index a450ba0..0000000 --- a/openSSL/lin32/include/openssl/asn1t.h +++ /dev/null @@ -1,945 +0,0 @@ -/* - * Copyright 2000-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_ASN1T_H -# define HEADER_ASN1T_H - -# include -# include -# include - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -/* ASN1 template defines, structures and functions */ - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr)) - -/* Macros for start and end of ASN1_ITEM definition */ - -# define ASN1_ITEM_start(itname) \ - const ASN1_ITEM itname##_it = { - -# define static_ASN1_ITEM_start(itname) \ - static const ASN1_ITEM itname##_it = { - -# define ASN1_ITEM_end(itname) \ - }; - -# else - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)((iptr)())) - -/* Macros for start and end of ASN1_ITEM definition */ - -# define ASN1_ITEM_start(itname) \ - const ASN1_ITEM * itname##_it(void) \ - { \ - static const ASN1_ITEM local_it = { - -# define static_ASN1_ITEM_start(itname) \ - static ASN1_ITEM_start(itname) - -# define ASN1_ITEM_end(itname) \ - }; \ - return &local_it; \ - } - -# endif - -/* Macros to aid ASN1 template writing */ - -# define ASN1_ITEM_TEMPLATE(tname) \ - static const ASN1_TEMPLATE tname##_item_tt - -# define ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) - -/* This is a ASN1 type which just embeds a template */ - -/*- - * This pair helps declare a SEQUENCE. We can do: - * - * ASN1_SEQUENCE(stname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END(stname) - * - * This will produce an ASN1_ITEM called stname_it - * for a structure called stname. - * - * If you want the same structure but a different - * name then use: - * - * ASN1_SEQUENCE(itname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END_name(stname, itname) - * - * This will create an item called itname_it using - * a structure called stname. - */ - -# define ASN1_SEQUENCE(tname) \ - static const ASN1_TEMPLATE tname##_seq_tt[] - -# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) - -# define static_ASN1_SEQUENCE_END(stname) static_ASN1_SEQUENCE_END_name(stname, stname) - -# define ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #tname \ - ASN1_ITEM_end(tname) - -# define static_ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE(tname) \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ - ASN1_SEQUENCE_cb(tname, cb) - -# define ASN1_SEQUENCE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_BROKEN_SEQUENCE(tname) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_BROKEN, 0, 0, 0, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_ref(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), offsetof(tname, lock), cb, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_enc(tname, enc, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc)}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) - -# define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname) -# define static_ASN1_BROKEN_SEQUENCE_END(stname) \ - static_ASN1_SEQUENCE_END_ref(stname, stname) - -# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) -# define static_ASN1_SEQUENCE_END_cb(stname, tname) static_ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/*- - * This pair helps declare a CHOICE type. We can do: - * - * ASN1_CHOICE(chname) = { - * ... CHOICE options ... - * ASN1_CHOICE_END(chname) - * - * This will produce an ASN1_ITEM called chname_it - * for a structure called chname. The structure - * definition must look like this: - * typedef struct { - * int type; - * union { - * ASN1_SOMETHING *opt1; - * ASN1_SOMEOTHER *opt2; - * } value; - * } chname; - * - * the name of the selector must be 'type'. - * to use an alternative selector name use the - * ASN1_CHOICE_END_selector() version. - */ - -# define ASN1_CHOICE(tname) \ - static const ASN1_TEMPLATE tname##_ch_tt[] - -# define ASN1_CHOICE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ - ASN1_CHOICE(tname) - -# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) - -# define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, stname) - -# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) - -# define static_ASN1_CHOICE_END_name(stname, tname) static_ASN1_CHOICE_END_selector(stname, tname, type) - -# define ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define static_ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_CHOICE_END_cb(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/* This helps with the template wrapper form of ASN1_ITEM */ - -# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ - (flags), (tag), 0,\ - #name, ASN1_ITEM_ref(type) } - -/* These help with SEQUENCE or CHOICE components */ - -/* used to declare other types */ - -# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ - (flags), (tag), offsetof(stname, field),\ - #field, ASN1_ITEM_ref(type) } - -/* 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) - -# define ASN1_EXP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | (ex), tag, stname, field, type) - -/* Any defined by macros: the field used is in the table itself */ - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } -# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } -# else -# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } -# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } -# endif -/* Plain simple type */ -# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) -/* Embedded simple type */ -# define ASN1_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_EMBED,0, stname, field, type) - -/* OPTIONAL simple type */ -# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) -# define ASN1_OPT_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED, 0, stname, field, type) - -/* IMPLICIT tagged simple type */ -# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) -# define ASN1_IMP_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) - -/* IMPLICIT tagged OPTIONAL simple type */ -# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) -# define ASN1_IMP_OPT_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) - -/* Same as above but EXPLICIT */ - -# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) -# define ASN1_EXP_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) -# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) -# define ASN1_EXP_OPT_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) - -/* SEQUENCE OF type */ -# define ASN1_SEQUENCE_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) - -/* OPTIONAL SEQUENCE OF */ -# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Same as above but for SET OF */ - -# define ASN1_SET_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) - -# define ASN1_SET_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ - -# define ASN1_IMP_SET_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_EXP_SET_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -/* EXPLICIT using indefinite length constructed form */ -# define ASN1_NDEF_EXP(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) - -/* EXPLICIT OPTIONAL using indefinite length constructed form */ -# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) - -/* Macros for the ASN1_ADB structure */ - -# define ASN1_ADB(name) \ - static const ASN1_ADB_TABLE name##_adbtbl[] - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ - ;\ - static const ASN1_ADB name##_adb = {\ - flags,\ - offsetof(name, field),\ - adb_cb,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - } - -# else - -# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ - ;\ - static const ASN1_ITEM *name##_adb(void) \ - { \ - static const ASN1_ADB internal_adb = \ - {\ - flags,\ - offsetof(name, field),\ - adb_cb,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - }; \ - return (const ASN1_ITEM *) &internal_adb; \ - } \ - void dummy_function(void) - -# endif - -# define ADB_ENTRY(val, template) {val, template} - -# define ASN1_ADB_TEMPLATE(name) \ - static const ASN1_TEMPLATE name##_tt - -/* - * This is the ASN1 template structure that defines a wrapper round the - * actual type. It determines the actual position of the field in the value - * structure, various flags such as OPTIONAL and the field name. - */ - -struct ASN1_TEMPLATE_st { - unsigned long flags; /* Various flags */ - long tag; /* tag, not used if no tagging */ - unsigned long offset; /* Offset of this field in structure */ - const char *field_name; /* Field name */ - ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ -}; - -/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ - -# define ASN1_TEMPLATE_item(t) (t->item_ptr) -# define ASN1_TEMPLATE_adb(t) (t->item_ptr) - -typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; -typedef struct ASN1_ADB_st ASN1_ADB; - -struct ASN1_ADB_st { - unsigned long flags; /* Various flags */ - unsigned long offset; /* Offset of selector field */ - int (*adb_cb)(long *psel); /* Application callback */ - const ASN1_ADB_TABLE *tbl; /* Table of possible types */ - long tblcount; /* Number of entries in tbl */ - const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ - const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ -}; - -struct ASN1_ADB_TABLE_st { - long value; /* NID for an object or value for an int */ - const ASN1_TEMPLATE tt; /* item for this value */ -}; - -/* template flags */ - -/* Field is optional */ -# define ASN1_TFLG_OPTIONAL (0x1) - -/* Field is a SET OF */ -# define ASN1_TFLG_SET_OF (0x1 << 1) - -/* Field is a SEQUENCE OF */ -# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) - -/* - * Special case: this refers to a SET OF that will be sorted into DER order - * when encoded *and* the corresponding STACK will be modified to match the - * new order. - */ -# define ASN1_TFLG_SET_ORDER (0x3 << 1) - -/* Mask for SET OF or SEQUENCE OF */ -# define ASN1_TFLG_SK_MASK (0x3 << 1) - -/* - * These flags mean the tag should be taken from the tag field. If EXPLICIT - * then the underlying type is used for the inner tag. - */ - -/* IMPLICIT tagging */ -# define ASN1_TFLG_IMPTAG (0x1 << 3) - -/* EXPLICIT tagging, inner tag from underlying type */ -# define ASN1_TFLG_EXPTAG (0x2 << 3) - -# define ASN1_TFLG_TAG_MASK (0x3 << 3) - -/* context specific IMPLICIT */ -# define ASN1_TFLG_IMPLICIT (ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT) - -/* context specific EXPLICIT */ -# define ASN1_TFLG_EXPLICIT (ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT) - -/* - * If tagging is in force these determine the type of tag to use. Otherwise - * the tag is determined by the underlying type. These values reflect the - * actual octet format. - */ - -/* Universal tag */ -# define ASN1_TFLG_UNIVERSAL (0x0<<6) -/* Application tag */ -# define ASN1_TFLG_APPLICATION (0x1<<6) -/* Context specific tag */ -# define ASN1_TFLG_CONTEXT (0x2<<6) -/* Private tag */ -# define ASN1_TFLG_PRIVATE (0x3<<6) - -# define ASN1_TFLG_TAG_CLASS (0x3<<6) - -/* - * These are for ANY DEFINED BY type. In this case the 'item' field points to - * an ASN1_ADB structure which contains a table of values to decode the - * relevant type - */ - -# define ASN1_TFLG_ADB_MASK (0x3<<8) - -# define ASN1_TFLG_ADB_OID (0x1<<8) - -# define ASN1_TFLG_ADB_INT (0x1<<9) - -/* - * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes - * indefinite length constructed encoding to be used if required. - */ - -# define ASN1_TFLG_NDEF (0x1<<11) - -/* Field is embedded and not a pointer */ -# define ASN1_TFLG_EMBED (0x1 << 12) - -/* This is the actual ASN1 item itself */ - -struct ASN1_ITEM_st { - char itype; /* The item type, primitive, SEQUENCE, CHOICE - * or extern */ - long utype; /* underlying type */ - const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains - * the contents */ - long tcount; /* Number of templates if SEQUENCE or CHOICE */ - const void *funcs; /* functions that handle this type */ - long size; /* Structure size (usually) */ - const char *sname; /* Structure name */ -}; - -/*- - * These are values for the itype field and - * determine how the type is interpreted. - * - * For PRIMITIVE types the underlying type - * determines the behaviour if items is NULL. - * - * Otherwise templates must contain a single - * template and the type is treated in the - * same way as the type specified in the template. - * - * For SEQUENCE types the templates field points - * to the members, the size field is the - * structure size. - * - * For CHOICE types the templates field points - * to each possible member (typically a union) - * and the 'size' field is the offset of the - * selector. - * - * The 'funcs' field is used for application - * specific functions. - * - * The EXTERN type uses a new style d2i/i2d. - * The new style should be used where possible - * because it avoids things like the d2i IMPLICIT - * hack. - * - * MSTRING is a multiple string type, it is used - * for a CHOICE of character strings where the - * actual strings all occupy an ASN1_STRING - * structure. In this case the 'utype' field - * has a special meaning, it is used as a mask - * of acceptable types using the B_ASN1 constants. - * - * NDEF_SEQUENCE is the same as SEQUENCE except - * that it will use indefinite length constructed - * encoding if requested. - * - */ - -# define ASN1_ITYPE_PRIMITIVE 0x0 - -# define ASN1_ITYPE_SEQUENCE 0x1 - -# define ASN1_ITYPE_CHOICE 0x2 - -# define ASN1_ITYPE_EXTERN 0x4 - -# define ASN1_ITYPE_MSTRING 0x5 - -# define ASN1_ITYPE_NDEF_SEQUENCE 0x6 - -/* - * Cache for ASN1 tag and length, so we don't keep re-reading it for things - * like CHOICE - */ - -struct ASN1_TLC_st { - char valid; /* Values below are valid */ - int ret; /* return value */ - long plen; /* length */ - int ptag; /* class value */ - int pclass; /* class value */ - int hdrlen; /* header length */ -}; - -/* Typedefs for ASN1 function pointers */ -typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -typedef int ASN1_ex_i2d(ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); -typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); -typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); - -typedef int ASN1_ex_print_func(BIO *out, ASN1_VALUE **pval, - int indent, const char *fname, - const ASN1_PCTX *pctx); - -typedef int ASN1_primitive_i2c(ASN1_VALUE **pval, unsigned char *cont, - int *putype, const ASN1_ITEM *it); -typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, - int len, int utype, char *free_cont, - const ASN1_ITEM *it); -typedef int ASN1_primitive_print(BIO *out, ASN1_VALUE **pval, - const ASN1_ITEM *it, int indent, - const ASN1_PCTX *pctx); - -typedef struct ASN1_EXTERN_FUNCS_st { - void *app_data; - ASN1_ex_new_func *asn1_ex_new; - ASN1_ex_free_func *asn1_ex_free; - ASN1_ex_free_func *asn1_ex_clear; - ASN1_ex_d2i *asn1_ex_d2i; - ASN1_ex_i2d *asn1_ex_i2d; - ASN1_ex_print_func *asn1_ex_print; -} ASN1_EXTERN_FUNCS; - -typedef struct ASN1_PRIMITIVE_FUNCS_st { - void *app_data; - unsigned long flags; - ASN1_ex_new_func *prim_new; - ASN1_ex_free_func *prim_free; - ASN1_ex_free_func *prim_clear; - ASN1_primitive_c2i *prim_c2i; - ASN1_primitive_i2c *prim_i2c; - ASN1_primitive_print *prim_print; -} ASN1_PRIMITIVE_FUNCS; - -/* - * This is the ASN1_AUX structure: it handles various miscellaneous - * requirements. For example the use of reference counts and an informational - * callback. The "informational callback" is called at various points during - * the ASN1 encoding and decoding. It can be used to provide minor - * customisation of the structures used. This is most useful where the - * supplied routines *almost* do the right thing but need some extra help at - * a few points. If the callback returns zero then it is assumed a fatal - * error has occurred and the main operation should be abandoned. If major - * changes in the default behaviour are required then an external type is - * more appropriate. - */ - -typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, - void *exarg); - -typedef struct ASN1_AUX_st { - void *app_data; - int flags; - int ref_offset; /* Offset of reference value */ - int ref_lock; /* Lock type to use */ - ASN1_aux_cb *asn1_cb; - int enc_offset; /* Offset of ASN1_ENCODING structure */ -} ASN1_AUX; - -/* For print related callbacks exarg points to this structure */ -typedef struct ASN1_PRINT_ARG_st { - BIO *out; - int indent; - const ASN1_PCTX *pctx; -} ASN1_PRINT_ARG; - -/* For streaming related callbacks exarg points to this structure */ -typedef struct ASN1_STREAM_ARG_st { - /* BIO to stream through */ - BIO *out; - /* BIO with filters appended */ - BIO *ndef_bio; - /* Streaming I/O boundary */ - unsigned char **boundary; -} ASN1_STREAM_ARG; - -/* Flags in ASN1_AUX */ - -/* Use a reference count */ -# define ASN1_AFLG_REFCOUNT 1 -/* Save the encoding of structure (useful for signatures) */ -# define ASN1_AFLG_ENCODING 2 -/* The Sequence length is invalid */ -# define ASN1_AFLG_BROKEN 4 - -/* operation values for asn1_cb */ - -# define ASN1_OP_NEW_PRE 0 -# define ASN1_OP_NEW_POST 1 -# define ASN1_OP_FREE_PRE 2 -# define ASN1_OP_FREE_POST 3 -# define ASN1_OP_D2I_PRE 4 -# define ASN1_OP_D2I_POST 5 -# define ASN1_OP_I2D_PRE 6 -# define ASN1_OP_I2D_POST 7 -# define ASN1_OP_PRINT_PRE 8 -# define ASN1_OP_PRINT_POST 9 -# define ASN1_OP_STREAM_PRE 10 -# define ASN1_OP_STREAM_POST 11 -# define ASN1_OP_DETACHED_PRE 12 -# define ASN1_OP_DETACHED_POST 13 - -/* Macro to implement a primitive type */ -# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) -# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ - ASN1_ITEM_end(itname) - -/* Macro to implement a multi string type */ -# define IMPLEMENT_ASN1_MSTRING(itname, mask) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ - ASN1_ITEM_end(itname) - -# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ - ASN1_ITEM_start(sname) \ - ASN1_ITYPE_EXTERN, \ - tag, \ - NULL, \ - 0, \ - &fptrs, \ - 0, \ - #sname \ - ASN1_ITEM_end(sname) - -/* Macro to implement standard functions in terms of ASN1_ITEM structures */ - -# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) - -# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ - IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) - -# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ - pre stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - pre void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ - stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ - int i2d_##stname##_NDEF(stname *a, unsigned char **out) \ - { \ - return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ - } - -# define IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname) \ - static stname *d2i_##stname(stname **a, \ - const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, \ - ASN1_ITEM_rptr(stname)); \ - } \ - static int i2d_##stname(stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, \ - ASN1_ITEM_rptr(stname)); \ - } - -/* - * This includes evil casts to remove const: they will go away when full ASN1 - * constification is done. - */ -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ - stname * stname##_dup(stname *x) \ - { \ - return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ - } - -# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ - IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ - int fname##_print_ctx(BIO *out, stname *x, int indent, \ - const ASN1_PCTX *pctx) \ - { \ - return ASN1_item_print(out, (ASN1_VALUE *)x, indent, \ - ASN1_ITEM_rptr(itname), pctx); \ - } - -# define IMPLEMENT_ASN1_FUNCTIONS_const(name) \ - IMPLEMENT_ASN1_FUNCTIONS_const_fname(name, name, name) - -# define IMPLEMENT_ASN1_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -/* external definitions for primitive types */ - -DECLARE_ASN1_ITEM(ASN1_BOOLEAN) -DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) -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) - -/* Functions used internally by the ASN1 code */ - -int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); -void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); - -int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin32/include/openssl/async.h b/openSSL/lin32/include/openssl/async.h deleted file mode 100644 index 7052b89..0000000 --- a/openSSL/lin32/include/openssl/async.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include - -#ifndef HEADER_ASYNC_H -# define HEADER_ASYNC_H - -#if defined(_WIN32) -# if defined(BASETYPES) || defined(_WINDEF_H) -/* application has to include to use this */ -#define OSSL_ASYNC_FD HANDLE -#define OSSL_BAD_ASYNC_FD INVALID_HANDLE_VALUE -# endif -#else -#define OSSL_ASYNC_FD int -#define OSSL_BAD_ASYNC_FD -1 -#endif -# include - - -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct async_job_st ASYNC_JOB; -typedef struct async_wait_ctx_st ASYNC_WAIT_CTX; - -#define ASYNC_ERR 0 -#define ASYNC_NO_JOBS 1 -#define ASYNC_PAUSE 2 -#define ASYNC_FINISH 3 - -int ASYNC_init_thread(size_t max_size, size_t init_size); -void ASYNC_cleanup_thread(void); - -#ifdef OSSL_ASYNC_FD -ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void); -void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx); -int ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key, - OSSL_ASYNC_FD fd, - void *custom_data, - void (*cleanup)(ASYNC_WAIT_CTX *, const void *, - OSSL_ASYNC_FD, void *)); -int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key, - OSSL_ASYNC_FD *fd, void **custom_data); -int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *fd, - size_t *numfds); -int ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *addfd, - size_t *numaddfds, OSSL_ASYNC_FD *delfd, - size_t *numdelfds); -int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key); -#endif - -int ASYNC_is_capable(void); - -int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, - int (*func)(void *), void *args, size_t size); -int ASYNC_pause_job(void); - -ASYNC_JOB *ASYNC_get_current_job(void); -ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job); -void ASYNC_block_pause(void); -void ASYNC_unblock_pause(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/asyncerr.h b/openSSL/lin32/include/openssl/asyncerr.h deleted file mode 100644 index 91afbbb..0000000 --- a/openSSL/lin32/include/openssl/asyncerr.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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_ASYNCERR_H -# define HEADER_ASYNCERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/bio.h b/openSSL/lin32/include/openssl/bio.h deleted file mode 100644 index ae559a5..0000000 --- a/openSSL/lin32/include/openssl/bio.h +++ /dev/null @@ -1,801 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_BIO_H -# define HEADER_BIO_H - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* There are the classes of BIOs */ -# define BIO_TYPE_DESCRIPTOR 0x0100 /* socket, fd, connect or accept */ -# define BIO_TYPE_FILTER 0x0200 -# define BIO_TYPE_SOURCE_SINK 0x0400 - -/* These are the 'types' of BIOs */ -# define BIO_TYPE_NONE 0 -# define BIO_TYPE_MEM ( 1|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_FILE ( 2|BIO_TYPE_SOURCE_SINK) - -# define BIO_TYPE_FD ( 4|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_SOCKET ( 5|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_NULL ( 6|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_SSL ( 7|BIO_TYPE_FILTER) -# define BIO_TYPE_MD ( 8|BIO_TYPE_FILTER) -# define BIO_TYPE_BUFFER ( 9|BIO_TYPE_FILTER) -# define BIO_TYPE_CIPHER (10|BIO_TYPE_FILTER) -# define BIO_TYPE_BASE64 (11|BIO_TYPE_FILTER) -# define BIO_TYPE_CONNECT (12|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_ACCEPT (13|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) - -# define BIO_TYPE_NBIO_TEST (16|BIO_TYPE_FILTER)/* server proxy BIO */ -# define BIO_TYPE_NULL_FILTER (17|BIO_TYPE_FILTER) -# define BIO_TYPE_BIO (19|BIO_TYPE_SOURCE_SINK)/* half a BIO pair */ -# define BIO_TYPE_LINEBUFFER (20|BIO_TYPE_FILTER) -# define BIO_TYPE_DGRAM (21|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_ASN1 (22|BIO_TYPE_FILTER) -# define BIO_TYPE_COMP (23|BIO_TYPE_FILTER) -# ifndef OPENSSL_NO_SCTP -# define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# endif - -#define BIO_TYPE_START 128 - -/* - * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. - * BIO_set_fp(in,stdin,BIO_NOCLOSE); - */ -# define BIO_NOCLOSE 0x00 -# define BIO_CLOSE 0x01 - -/* - * These are used in the following macros and are passed to BIO_ctrl() - */ -# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */ -# define BIO_CTRL_EOF 2/* opt - are we at the eof */ -# define BIO_CTRL_INFO 3/* opt - extra tit-bits */ -# define BIO_CTRL_SET 4/* man - set the 'IO' type */ -# define BIO_CTRL_GET 5/* man - get the 'IO' type */ -# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */ -# define BIO_CTRL_POP 7/* opt - internal, used to signify change */ -# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */ -# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */ -# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */ -# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ -# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ -# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ -# 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 */ -# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */ -# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected - * socket to be passed in */ -# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */ -# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */ - -# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation tiemd out */ - -/* #ifdef IP_MTU_DISCOVER */ -# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */ -/* #endif */ - -# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */ -# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 -# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */ -# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU. - * want to use this if asking - * the kernel fails */ - -# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was - * exceed in the previous write - * operation */ - -# define BIO_CTRL_DGRAM_GET_PEER 46 -# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */ - -# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout - * to adjust socket timeouts */ -# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 - -# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 - -/* Deliberately outside of OPENSSL_NO_SCTP - used in bss_dgram.c */ -# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 -# ifndef OPENSSL_NO_SCTP -/* SCTP stuff */ -# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 -# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 -# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 -# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 -# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 -# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 -# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 -# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 -# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 -# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 -# endif - -# define BIO_CTRL_DGRAM_SET_PEEK_MODE 71 - -/* modifiers */ -# define BIO_FP_READ 0x02 -# define BIO_FP_WRITE 0x04 -# define BIO_FP_APPEND 0x08 -# define BIO_FP_TEXT 0x10 - -# define BIO_FLAGS_READ 0x01 -# define BIO_FLAGS_WRITE 0x02 -# define BIO_FLAGS_IO_SPECIAL 0x04 -# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) -# define BIO_FLAGS_SHOULD_RETRY 0x08 -# ifndef BIO_FLAGS_UPLINK -/* - * "UPLINK" flag denotes file descriptors provided by application. It - * defaults to 0, as most platforms don't require UPLINK interface. - */ -# define BIO_FLAGS_UPLINK 0 -# endif - -# define BIO_FLAGS_BASE64_NO_NL 0x100 - -/* - * This is used with memory BIOs: - * BIO_FLAGS_MEM_RDONLY means we shouldn't free up or change the data in any way; - * BIO_FLAGS_NONCLEAR_RST means we shouldn't clear data on reset. - */ -# define BIO_FLAGS_MEM_RDONLY 0x200 -# define BIO_FLAGS_NONCLEAR_RST 0x400 -# define BIO_FLAGS_IN_EOF 0x800 - -typedef union bio_addr_st BIO_ADDR; -typedef struct bio_addrinfo_st BIO_ADDRINFO; - -int BIO_get_new_index(void); -void BIO_set_flags(BIO *b, int flags); -int BIO_test_flags(const BIO *b, int flags); -void BIO_clear_flags(BIO *b, int flags); - -# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) -# define BIO_set_retry_special(b) \ - BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_read(b) \ - BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_write(b) \ - BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) - -/* These are normally used internally in BIOs */ -# define BIO_clear_retry_flags(b) \ - BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_get_retry_flags(b) \ - BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) - -/* These should be used by the application to tell why we should retry */ -# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) -# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) -# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) -# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) -# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) - -/* - * The next three are used in conjunction with the BIO_should_io_special() - * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int - * *reason); will walk the BIO stack and return the 'reason' for the special - * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return - * the code. - */ -/* - * Returned from the SSL bio when the certificate retrieval code had an error - */ -# define BIO_RR_SSL_X509_LOOKUP 0x01 -/* Returned from the connect BIO when a connect would have blocked */ -# define BIO_RR_CONNECT 0x02 -/* Returned from the accept BIO when an accept would have blocked */ -# define BIO_RR_ACCEPT 0x03 - -/* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 - -/* - * The callback is called before and after the underling operation, The - * BIO_CB_RETURN flag indicates if it is after the call - */ -# define BIO_CB_RETURN 0x80 -# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) -# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) -# define BIO_cb_post(a) ((a)&BIO_CB_RETURN) - -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); - -typedef struct bio_method_st BIO_METHOD; - -const char *BIO_method_name(const BIO *b); -int BIO_method_type(const BIO *b); - -typedef int BIO_info_cb(BIO *, int, int); -typedef BIO_info_cb bio_info_cb; /* backward compatibility */ - -DEFINE_STACK_OF(BIO) - -/* Prefix and suffix callback in ASN1 BIO */ -typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, - void *parg); - -# ifndef OPENSSL_NO_SCTP -/* SCTP parameter structs */ -struct bio_dgram_sctp_sndinfo { - uint16_t snd_sid; - uint16_t snd_flags; - uint32_t snd_ppid; - uint32_t snd_context; -}; - -struct bio_dgram_sctp_rcvinfo { - uint16_t rcv_sid; - uint16_t rcv_ssn; - uint16_t rcv_flags; - uint32_t rcv_ppid; - uint32_t rcv_tsn; - uint32_t rcv_cumtsn; - uint32_t rcv_context; -}; - -struct bio_dgram_sctp_prinfo { - uint16_t pr_policy; - uint32_t pr_value; -}; -# endif - -/* - * #define BIO_CONN_get_param_hostname BIO_ctrl - */ - -# define BIO_C_SET_CONNECT 100 -# define BIO_C_DO_STATE_MACHINE 101 -# define BIO_C_SET_NBIO 102 -/* # define BIO_C_SET_PROXY_PARAM 103 */ -# define BIO_C_SET_FD 104 -# define BIO_C_GET_FD 105 -# define BIO_C_SET_FILE_PTR 106 -# define BIO_C_GET_FILE_PTR 107 -# define BIO_C_SET_FILENAME 108 -# define BIO_C_SET_SSL 109 -# define BIO_C_GET_SSL 110 -# define BIO_C_SET_MD 111 -# define BIO_C_GET_MD 112 -# define BIO_C_GET_CIPHER_STATUS 113 -# define BIO_C_SET_BUF_MEM 114 -# define BIO_C_GET_BUF_MEM_PTR 115 -# define BIO_C_GET_BUFF_NUM_LINES 116 -# define BIO_C_SET_BUFF_SIZE 117 -# define BIO_C_SET_ACCEPT 118 -# define BIO_C_SSL_MODE 119 -# define BIO_C_GET_MD_CTX 120 -/* # define BIO_C_GET_PROXY_PARAM 121 */ -# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ -# define BIO_C_GET_CONNECT 123 -# define BIO_C_GET_ACCEPT 124 -# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 -# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 -# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 -# define BIO_C_FILE_SEEK 128 -# define BIO_C_GET_CIPHER_CTX 129 -# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input - * value */ -# define BIO_C_SET_BIND_MODE 131 -# define BIO_C_GET_BIND_MODE 132 -# define BIO_C_FILE_TELL 133 -# define BIO_C_GET_SOCKS 134 -# define BIO_C_SET_SOCKS 135 - -# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ -# define BIO_C_GET_WRITE_BUF_SIZE 137 -# define BIO_C_MAKE_BIO_PAIR 138 -# define BIO_C_DESTROY_BIO_PAIR 139 -# define BIO_C_GET_WRITE_GUARANTEE 140 -# define BIO_C_GET_READ_REQUEST 141 -# define BIO_C_SHUTDOWN_WR 142 -# define BIO_C_NREAD0 143 -# define BIO_C_NREAD 144 -# define BIO_C_NWRITE0 145 -# define BIO_C_NWRITE 146 -# define BIO_C_RESET_READ_REQUEST 147 -# define BIO_C_SET_MD_CTX 148 - -# define BIO_C_SET_PREFIX 149 -# define BIO_C_GET_PREFIX 150 -# define BIO_C_SET_SUFFIX 151 -# define BIO_C_GET_SUFFIX 152 - -# define BIO_C_SET_EX_ARG 153 -# define BIO_C_GET_EX_ARG 154 - -# define BIO_C_SET_CONNECT_MODE 155 - -# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) -# define BIO_get_app_data(s) BIO_get_ex_data(s,0) - -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) - -# ifndef OPENSSL_NO_SOCK -/* IP families we support, for BIO_s_connect() and BIO_s_accept() */ -/* Note: the underlying operating system may not support some of them */ -# define BIO_FAMILY_IPV4 4 -# define BIO_FAMILY_IPV6 6 -# 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_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)) -# define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) -# define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) -# 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_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_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) - -/* Aliases kept for backward compatibility */ -# define BIO_BIND_NORMAL 0 -# define BIO_BIND_REUSEADDR BIO_SOCK_REUSEADDR -# define BIO_BIND_REUSEADDR_IF_UNUSED BIO_SOCK_REUSEADDR -# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) -# define BIO_get_bind_mode(b) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) - -/* BIO_s_accept() and BIO_s_connect() */ -# define BIO_do_connect(b) BIO_do_handshake(b) -# define BIO_do_accept(b) BIO_do_handshake(b) -# endif /* OPENSSL_NO_SOCK */ - -# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) - -/* 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)) - -/* 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)) - -/* BIO_s_fd() and BIO_s_file() */ -# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) -# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) - -/* - * name is cast to lose const, but might be better to route through a - * function so we can do it safely - */ -# ifdef CONST_STRICT -/* - * If you are wondering why this isn't defined, its because CONST_STRICT is - * purely a compile-time kludge to allow const to be checked. - */ -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)) -# endif -# define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_WRITE,name) -# define BIO_append_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_APPEND,name) -# define BIO_rw_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) - -/* - * WARNING WARNING, this ups the reference count on the read bio of the SSL - * structure. This is because the ssl read BIO is now pointed to by the - * 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_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) -# define BIO_get_num_renegotiates(b) \ - BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL) -# define BIO_set_ssl_renegotiate_timeout(b,seconds) \ - 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_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) - -/* For the BIO_f_buffer() type */ -# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) -# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) -# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) -# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) -# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) - -/* Don't use the next one unless you know what you are doing :-) */ -# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) - -# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) -# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) -# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) -# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) -# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) -# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) -/* ...pending macros have inappropriate return type */ -size_t BIO_ctrl_pending(BIO *b); -size_t BIO_ctrl_wpending(BIO *b); -# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) -# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ - cbp) -# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) - -/* 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) -# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) -# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) -# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) -# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) -/* macros with inappropriate type -- but ...pending macros use int too: */ -# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) -# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) -size_t BIO_ctrl_get_write_guarantee(BIO *b); -size_t BIO_ctrl_get_read_request(BIO *b); -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)) -# define BIO_ctrl_set_connected(b,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)) -# define BIO_dgram_set_peer(b,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) - -#define BIO_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO, l, p, newf, dupf, freef) -int BIO_set_ex_data(BIO *bio, int idx, void *data); -void *BIO_get_ex_data(BIO *bio, int idx); -uint64_t BIO_number_read(BIO *bio); -uint64_t BIO_number_written(BIO *bio); - -/* For BIO_f_asn1() */ -int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, - asn1_ps_func *prefix_free); -int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, - asn1_ps_func **pprefix_free); -int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, - asn1_ps_func *suffix_free); -int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, - asn1_ps_func **psuffix_free); - -const BIO_METHOD *BIO_s_file(void); -BIO *BIO_new_file(const char *filename, const char *mode); -# ifndef OPENSSL_NO_STDIO -BIO *BIO_new_fp(FILE *stream, int close_flag); -# endif -BIO *BIO_new(const BIO_METHOD *type); -int BIO_free(BIO *a); -void BIO_set_data(BIO *a, void *ptr); -void *BIO_get_data(BIO *a); -void BIO_set_init(BIO *a, int init); -int BIO_get_init(BIO *a); -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 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 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); -long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp); -void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); -long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); -BIO *BIO_push(BIO *b, BIO *append); -BIO *BIO_pop(BIO *b); -void BIO_free_all(BIO *a); -BIO *BIO_find_type(BIO *b, int bio_type); -BIO *BIO_next(BIO *b); -void BIO_set_next(BIO *b, BIO *next); -BIO *BIO_get_retry_BIO(BIO *bio, int *reason); -int BIO_get_retry_reason(BIO *bio); -void BIO_set_retry_reason(BIO *bio, int reason); -BIO *BIO_dup_chain(BIO *in); - -int BIO_nread0(BIO *bio, char **buf); -int BIO_nread(BIO *bio, char **buf, int num); -int BIO_nwrite0(BIO *bio, char **buf); -int BIO_nwrite(BIO *bio, char **buf, int num); - -long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, - long argl, long ret); - -const BIO_METHOD *BIO_s_mem(void); -const BIO_METHOD *BIO_s_secmem(void); -BIO *BIO_new_mem_buf(const void *buf, int len); -# ifndef OPENSSL_NO_SOCK -const BIO_METHOD *BIO_s_socket(void); -const BIO_METHOD *BIO_s_connect(void); -const BIO_METHOD *BIO_s_accept(void); -# endif -const BIO_METHOD *BIO_s_fd(void); -const BIO_METHOD *BIO_s_log(void); -const BIO_METHOD *BIO_s_bio(void); -const BIO_METHOD *BIO_s_null(void); -const BIO_METHOD *BIO_f_null(void); -const BIO_METHOD *BIO_f_buffer(void); -const BIO_METHOD *BIO_f_linebuffer(void); -const BIO_METHOD *BIO_f_nbio_test(void); -# ifndef OPENSSL_NO_DGRAM -const BIO_METHOD *BIO_s_datagram(void); -int BIO_dgram_non_fatal_error(int error); -BIO *BIO_new_dgram(int fd, int close_flag); -# ifndef OPENSSL_NO_SCTP -const BIO_METHOD *BIO_s_datagram_sctp(void); -BIO *BIO_new_dgram_sctp(int fd, int close_flag); -int BIO_dgram_is_sctp(BIO *bio); -int BIO_dgram_sctp_notification_cb(BIO *b, - void (*handle_notifications) (BIO *bio, - void *context, - void *buf), - void *context); -int BIO_dgram_sctp_wait_for_dry(BIO *b); -int BIO_dgram_sctp_msg_waiting(BIO *b); -# endif -# endif - -# ifndef OPENSSL_NO_SOCK -int BIO_sock_should_retry(int i); -int BIO_sock_non_fatal_error(int error); -# endif - -int BIO_fd_should_retry(int i); -int BIO_fd_non_fatal_error(int error); -int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const char *s, int len); -int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const char *s, int len, int indent); -int BIO_dump(BIO *b, const char *bytes, int len); -int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); -# ifndef OPENSSL_NO_STDIO -int BIO_dump_fp(FILE *fp, const char *s, int len); -int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); -# endif -int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, - int datalen); - -# ifndef OPENSSL_NO_SOCK -BIO_ADDR *BIO_ADDR_new(void); -int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, - const void *where, size_t wherelen, unsigned short port); -void BIO_ADDR_free(BIO_ADDR *); -void BIO_ADDR_clear(BIO_ADDR *ap); -int BIO_ADDR_family(const BIO_ADDR *ap); -int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l); -unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap); -char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric); -char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric); -char *BIO_ADDR_path_string(const BIO_ADDR *ap); - -const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai); -const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai); -void BIO_ADDRINFO_free(BIO_ADDRINFO *bai); - -enum BIO_hostserv_priorities { - BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV -}; -int BIO_parse_hostserv(const char *hostserv, char **host, char **service, - enum BIO_hostserv_priorities hostserv_prio); -enum BIO_lookup_type { - BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER -}; -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); -int BIO_sock_init(void); -# if OPENSSL_API_COMPAT < 0x10100000L -# define BIO_sock_cleanup() while(0) continue -# endif -int BIO_set_tcp_ndelay(int sock, int turn_on); - -DEPRECATEDIN_1_1_0(struct hostent *BIO_gethostbyname(const char *name)) -DEPRECATEDIN_1_1_0(int BIO_get_port(const char *str, unsigned short *port_ptr)) -DEPRECATEDIN_1_1_0(int BIO_get_host_ip(const char *str, unsigned char *ip)) -DEPRECATEDIN_1_1_0(int BIO_get_accept_socket(char *host_port, int mode)) -DEPRECATEDIN_1_1_0(int BIO_accept(int sock, char **ip_port)) - -union BIO_sock_info_u { - BIO_ADDR *addr; -}; -enum BIO_sock_info_type { - BIO_SOCK_INFO_ADDRESS -}; -int BIO_sock_info(int sock, - enum BIO_sock_info_type type, union BIO_sock_info_u *info); - -# define BIO_SOCK_REUSEADDR 0x01 -# define BIO_SOCK_V6_ONLY 0x02 -# define BIO_SOCK_KEEPALIVE 0x04 -# define BIO_SOCK_NONBLOCK 0x08 -# define BIO_SOCK_NODELAY 0x10 - -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); - -BIO *BIO_new_socket(int sock, int close_flag); -BIO *BIO_new_connect(const char *host_port); -BIO *BIO_new_accept(const char *host_port); -# endif /* OPENSSL_NO_SOCK*/ - -BIO *BIO_new_fd(int fd, int close_flag); - -int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, - BIO **bio2, size_t writebuf2); -/* - * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. - * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default - * value. - */ - -void BIO_copy_next_retry(BIO *b); - -/* - * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); - */ - -# 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, ...) -ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 3))); -int BIO_vprintf(BIO *bio, const char *format, va_list args) -ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 0))); -int BIO_snprintf(char *buf, size_t n, const char *format, ...) -ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 4))); -int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) -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 *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); -int BIO_meth_set_gets(BIO_METHOD *biom, - int (*gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); -int BIO_meth_set_ctrl(BIO_METHOD *biom, - long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); -int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); -int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); -int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, - long (*callback_ctrl) (BIO *, int, - BIO_info_cb *)); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/bioerr.h b/openSSL/lin32/include/openssl/bioerr.h deleted file mode 100644 index 46e2c96..0000000 --- a/openSSL/lin32/include/openssl/bioerr.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * 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_BIOERR_H -# define HEADER_BIOERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/blowfish.h b/openSSL/lin32/include/openssl/blowfish.h deleted file mode 100644 index cd3e460..0000000 --- a/openSSL/lin32/include/openssl/blowfish.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 1995-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_BLOWFISH_H -# define HEADER_BLOWFISH_H - -# include - -# ifndef OPENSSL_NO_BF -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define BF_ENCRYPT 1 -# define BF_DECRYPT 0 - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! BF_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define BF_LONG unsigned int - -# define BF_ROUNDS 16 -# define BF_BLOCK 8 - -typedef struct bf_key_st { - BF_LONG P[BF_ROUNDS + 2]; - BF_LONG S[4 * 256]; -} BF_KEY; - -void BF_set_key(BF_KEY *key, int len, const unsigned char *data); - -void BF_encrypt(BF_LONG *data, const BF_KEY *key); -void BF_decrypt(BF_LONG *data, const BF_KEY *key); - -void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, - const BF_KEY *key, int enc); -void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - const BF_KEY *schedule, unsigned char *ivec, int enc); -void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num); -const char *BF_options(void); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/bn.h b/openSSL/lin32/include/openssl/bn.h deleted file mode 100644 index d877660..0000000 --- a/openSSL/lin32/include/openssl/bn.h +++ /dev/null @@ -1,539 +0,0 @@ -/* - * Copyright 1995-2020 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_BN_H -# define HEADER_BN_H - -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * 64-bit processor with LP64 ABI - */ -# ifdef SIXTY_FOUR_BIT_LONG -# define BN_ULONG unsigned long -# define BN_BYTES 8 -# endif - -/* - * 64-bit processor other than LP64 ABI - */ -# ifdef SIXTY_FOUR_BIT -# define BN_ULONG unsigned long long -# define BN_BYTES 8 -# endif - -# ifdef THIRTY_TWO_BIT -# define BN_ULONG unsigned int -# define BN_BYTES 4 -# endif - -# define BN_BITS2 (BN_BYTES * 8) -# define BN_BITS (BN_BITS2 * 2) -# define BN_TBIT ((BN_ULONG)1 << (BN_BITS2 - 1)) - -# define BN_FLG_MALLOCED 0x01 -# define BN_FLG_STATIC_DATA 0x02 - -/* - * avoid leaking exponent information through timing, - * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, - * BN_div() will call BN_div_no_branch, - * BN_mod_inverse() will call bn_mod_inverse_no_branch. - */ -# define BN_FLG_CONSTTIME 0x04 -# define BN_FLG_SECURE 0x08 - -# if OPENSSL_API_COMPAT < 0x00908000L -/* deprecated name for the flag */ -# define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME -# define BN_FLG_FREE 0x8000 /* used for debugging */ -# endif - -void BN_set_flags(BIGNUM *b, int n); -int BN_get_flags(const BIGNUM *b, int n); - -/* Values for |top| in BN_rand() */ -#define BN_RAND_TOP_ANY -1 -#define BN_RAND_TOP_ONE 0 -#define BN_RAND_TOP_TWO 1 - -/* Values for |bottom| in BN_rand() */ -#define BN_RAND_BOTTOM_ANY 0 -#define BN_RAND_BOTTOM_ODD 1 - -/* - * get a clone of a BIGNUM with changed flags, for *temporary* use only (the - * two BIGNUMs cannot be used in parallel!). Also only for *read only* use. The - * value |dest| should be a newly allocated BIGNUM obtained via BN_new() that - * has not been otherwise initialised or used. - */ -void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags); - -/* Wrapper function to make using BN_GENCB easier */ -int BN_GENCB_call(BN_GENCB *cb, int a, int b); - -BN_GENCB *BN_GENCB_new(void); -void BN_GENCB_free(BN_GENCB *cb); - -/* Populate a BN_GENCB structure with an "old"-style callback */ -void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int, void *), - void *cb_arg); - -/* Populate a BN_GENCB structure with a "new"-style callback */ -void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB *), - void *cb_arg); - -void *BN_GENCB_get_arg(BN_GENCB *cb); - -# define BN_prime_checks 0 /* default: select number of iterations based - * on the size of the number */ - -/* - * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations - * that will be done for checking that a random number is probably prime. The - * error rate for accepting a composite number as prime depends on the size of - * the prime |b|. The error rates used are for calculating an RSA key with 2 primes, - * and so the level is what you would expect for a key of double the size of the - * prime. - * - * This table is generated using the algorithm of FIPS PUB 186-4 - * Digital Signature Standard (DSS), section F.1, page 117. - * (https://dx.doi.org/10.6028/NIST.FIPS.186-4) - * - * The following magma script was used to generate the output: - * securitybits:=125; - * k:=1024; - * for t:=1 to 65 do - * for M:=3 to Floor(2*Sqrt(k-1)-1) do - * S:=0; - * // Sum over m - * for m:=3 to M do - * s:=0; - * // Sum over j - * for j:=2 to m do - * s+:=(RealField(32)!2)^-(j+(k-1)/j); - * end for; - * S+:=2^(m-(m-1)*t)*s; - * end for; - * A:=2^(k-2-M*t); - * B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S; - * pkt:=2.00743*Log(2)*k*2^-k*(A+B); - * seclevel:=Floor(-Log(2,pkt)); - * if seclevel ge securitybits then - * printf "k: %5o, security: %o bits (t: %o, M: %o)\n",k,seclevel,t,M; - * break; - * end if; - * end for; - * if seclevel ge securitybits then break; end if; - * end for; - * - * It can be run online at: - * http://magma.maths.usyd.edu.au/calc - * - * And will output: - * k: 1024, security: 129 bits (t: 6, M: 23) - * - * k is the number of bits of the prime, securitybits is the level we want to - * reach. - * - * prime length | RSA key size | # MR tests | security level - * -------------+--------------|------------+--------------- - * (b) >= 6394 | >= 12788 | 3 | 256 bit - * (b) >= 3747 | >= 7494 | 3 | 192 bit - * (b) >= 1345 | >= 2690 | 4 | 128 bit - * (b) >= 1080 | >= 2160 | 5 | 128 bit - * (b) >= 852 | >= 1704 | 5 | 112 bit - * (b) >= 476 | >= 952 | 5 | 80 bit - * (b) >= 400 | >= 800 | 6 | 80 bit - * (b) >= 347 | >= 694 | 7 | 80 bit - * (b) >= 308 | >= 616 | 8 | 80 bit - * (b) >= 55 | >= 110 | 27 | 64 bit - * (b) >= 6 | >= 12 | 34 | 64 bit - */ - -# define BN_prime_checks_for_size(b) ((b) >= 3747 ? 3 : \ - (b) >= 1345 ? 4 : \ - (b) >= 476 ? 5 : \ - (b) >= 400 ? 6 : \ - (b) >= 347 ? 7 : \ - (b) >= 308 ? 8 : \ - (b) >= 55 ? 27 : \ - /* b >= 6 */ 34) - -# define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) - -int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w); -int BN_is_zero(const BIGNUM *a); -int BN_is_one(const BIGNUM *a); -int BN_is_word(const BIGNUM *a, const BN_ULONG w); -int BN_is_odd(const BIGNUM *a); - -# define BN_one(a) (BN_set_word((a),1)) - -void BN_zero_ex(BIGNUM *a); - -# if OPENSSL_API_COMPAT >= 0x00908000L -# define BN_zero(a) BN_zero_ex(a) -# else -# define BN_zero(a) (BN_set_word((a),0)) -# endif - -const BIGNUM *BN_value_one(void); -char *BN_options(void); -BN_CTX *BN_CTX_new(void); -BN_CTX *BN_CTX_secure_new(void); -void BN_CTX_free(BN_CTX *c); -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_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); -int BN_security_bits(int L, int N); -BIGNUM *BN_new(void); -BIGNUM *BN_secure_new(void); -void BN_clear_free(BIGNUM *a); -BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); -void BN_swap(BIGNUM *a, BIGNUM *b); -BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2bin(const BIGNUM *a, unsigned char *to); -int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2mpi(const BIGNUM *a, unsigned char *to); -int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); -/** BN_set_negative sets sign of a BIGNUM - * \param b pointer to the BIGNUM object - * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise - */ -void BN_set_negative(BIGNUM *b, int n); -/** BN_is_negative returns 1 if the BIGNUM is negative - * \param b pointer to the BIGNUM object - * \return 1 if a < 0 and 0 otherwise - */ -int BN_is_negative(const BIGNUM *b); - -int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, - BN_CTX *ctx); -# define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) -int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); -int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); -int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); - -BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); -BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); -int BN_mul_word(BIGNUM *a, BN_ULONG w); -int BN_add_word(BIGNUM *a, BN_ULONG w); -int BN_sub_word(BIGNUM *a, BN_ULONG w); -int BN_set_word(BIGNUM *a, BN_ULONG w); -BN_ULONG BN_get_word(const BIGNUM *a); - -int BN_cmp(const BIGNUM *a, const BIGNUM *b); -void BN_free(BIGNUM *a); -int BN_is_bit_set(const BIGNUM *a, int n); -int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_lshift1(BIGNUM *r, const BIGNUM *a); -int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *in_mont); -int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, - const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, - BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); - -int BN_mask_bits(BIGNUM *a, int n); -# ifndef OPENSSL_NO_STDIO -int BN_print_fp(FILE *fp, const BIGNUM *a); -# endif -int BN_print(BIO *bio, const BIGNUM *a); -int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); -int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_rshift1(BIGNUM *r, const BIGNUM *a); -void BN_clear(BIGNUM *a); -BIGNUM *BN_dup(const BIGNUM *a); -int BN_ucmp(const BIGNUM *a, const BIGNUM *b); -int BN_set_bit(BIGNUM *a, int n); -int BN_clear_bit(BIGNUM *a, int n); -char *BN_bn2hex(const BIGNUM *a); -char *BN_bn2dec(const BIGNUM *a); -int BN_hex2bn(BIGNUM **a, const char *str); -int BN_dec2bn(BIGNUM **a, const char *str); -int BN_asc2bn(BIGNUM **a, const char *str); -int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns - * -2 for - * error */ -BIGNUM *BN_mod_inverse(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); -BIGNUM *BN_mod_sqrt(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); - -void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); - -/* Deprecated versions */ -DEPRECATEDIN_0_9_8(BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, - const BIGNUM *add, - const BIGNUM *rem, - void (*callback) (int, int, - void *), - void *cb_arg)) -DEPRECATEDIN_0_9_8(int - BN_is_prime(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg)) -DEPRECATEDIN_0_9_8(int - BN_is_prime_fasttest(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg, - int do_trial_division)) - -/* Newer versions */ -int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, - const BIGNUM *rem, BN_GENCB *cb); -int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); -int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, - int do_trial_division, BN_GENCB *cb); - -int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); - -int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, - const BIGNUM *Xp, const BIGNUM *Xp1, - const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, - BN_GENCB *cb); -int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, - BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, - BN_CTX *ctx, BN_GENCB *cb); - -BN_MONT_CTX *BN_MONT_CTX_new(void); -int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - BN_MONT_CTX *mont, BN_CTX *ctx); -int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, - BN_CTX *ctx); -int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, - BN_CTX *ctx); -void BN_MONT_CTX_free(BN_MONT_CTX *mont); -int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); -BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); -BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK *lock, - const BIGNUM *mod, BN_CTX *ctx); - -/* BN_BLINDING flags */ -# define BN_BLINDING_NO_UPDATE 0x00000001 -# define BN_BLINDING_NO_RECREATE 0x00000002 - -BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); -void BN_BLINDING_free(BN_BLINDING *b); -int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); -int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, - BN_CTX *); - -int BN_BLINDING_is_current_thread(BN_BLINDING *b); -void BN_BLINDING_set_current_thread(BN_BLINDING *b); -int BN_BLINDING_lock(BN_BLINDING *b); -int BN_BLINDING_unlock(BN_BLINDING *b); - -unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); -void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); -BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, - const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx), - BN_MONT_CTX *m_ctx); - -DEPRECATEDIN_0_9_8(void BN_set_params(int mul, int high, int low, int mont)) -DEPRECATEDIN_0_9_8(int BN_get_params(int which)) /* 0, mul, 1 high, 2 low, 3 - * mont */ - -BN_RECP_CTX *BN_RECP_CTX_new(void); -void BN_RECP_CTX_free(BN_RECP_CTX *recp); -int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); -int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, - BN_RECP_CTX *recp, BN_CTX *ctx); -int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, - BN_RECP_CTX *recp, BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M - -/* - * Functions for arithmetic over binary polynomials represented by BIGNUMs. - * The BIGNUM::neg property of BIGNUMs representing binary polynomials is - * ignored. Note that input arguments are not const so that their bit arrays - * can be expanded to the appropriate size if needed. - */ - -/* - * r = a + b - */ -int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -# define BN_GF2m_sub(r, a, b) BN_GF2m_add(r, a, b) -/* - * r=a mod p - */ -int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -# define BN_GF2m_cmp(a, b) BN_ucmp((a), (b)) -/*- - * Some functions allow for representation of the irreducible polynomials - * as an unsigned int[], say p. The irreducible f(t) is then of the form: - * t^p[0] + t^p[1] + ... + t^p[k] - * where m = p[0] > p[1] > ... > p[k] = 0. - */ -/* r = a mod p */ -int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], - BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], - BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); -int BN_GF2m_arr2poly(const int p[], BIGNUM *a); - -# endif - -/* - * faster mod functions for the 'NIST primes' 0 <= a < p^2 - */ -int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -const BIGNUM *BN_get0_nist_prime_192(void); -const BIGNUM *BN_get0_nist_prime_224(void); -const BIGNUM *BN_get0_nist_prime_256(void); -const BIGNUM *BN_get0_nist_prime_384(void); -const BIGNUM *BN_get0_nist_prime_521(void); - -int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a, - const BIGNUM *field, BN_CTX *ctx); - -int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, - const BIGNUM *priv, const unsigned char *message, - size_t message_len, BN_CTX *ctx); - -/* Primes from RFC 2409 */ -BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn); -BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn); - -/* Primes from RFC 3526 */ -BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define get_rfc2409_prime_768 BN_get_rfc2409_prime_768 -# define get_rfc2409_prime_1024 BN_get_rfc2409_prime_1024 -# define get_rfc3526_prime_1536 BN_get_rfc3526_prime_1536 -# define get_rfc3526_prime_2048 BN_get_rfc3526_prime_2048 -# define get_rfc3526_prime_3072 BN_get_rfc3526_prime_3072 -# define get_rfc3526_prime_4096 BN_get_rfc3526_prime_4096 -# define get_rfc3526_prime_6144 BN_get_rfc3526_prime_6144 -# define get_rfc3526_prime_8192 BN_get_rfc3526_prime_8192 -# endif - -int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/bnerr.h b/openSSL/lin32/include/openssl/bnerr.h deleted file mode 100644 index 9f3c7cf..0000000 --- a/openSSL/lin32/include/openssl/bnerr.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * 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_BNERR_H -# define HEADER_BNERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/buffer.h b/openSSL/lin32/include/openssl/buffer.h deleted file mode 100644 index d276576..0000000 --- a/openSSL/lin32/include/openssl/buffer.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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_BUFFER_H -# define HEADER_BUFFER_H - -# include -# ifndef HEADER_CRYPTO_H -# include -# endif -# include - - -#ifdef __cplusplus -extern "C" { -#endif - -# include -# include - -/* - * These names are outdated as of OpenSSL 1.1; a future release - * will move them to be deprecated. - */ -# define BUF_strdup(s) OPENSSL_strdup(s) -# define BUF_strndup(s, size) OPENSSL_strndup(s, size) -# define BUF_memdup(data, size) OPENSSL_memdup(data, size) -# define BUF_strlcpy(dst, src, size) OPENSSL_strlcpy(dst, src, size) -# define BUF_strlcat(dst, src, size) OPENSSL_strlcat(dst, src, size) -# define BUF_strnlen(str, maxlen) OPENSSL_strnlen(str, maxlen) - -struct buf_mem_st { - size_t length; /* current number of bytes */ - char *data; - size_t max; /* size of buffer */ - unsigned long flags; -}; - -# define BUF_MEM_FLAG_SECURE 0x01 - -BUF_MEM *BUF_MEM_new(void); -BUF_MEM *BUF_MEM_new_ex(unsigned long flags); -void BUF_MEM_free(BUF_MEM *a); -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); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/buffererr.h b/openSSL/lin32/include/openssl/buffererr.h deleted file mode 100644 index 04f6ff7..0000000 --- a/openSSL/lin32/include/openssl/buffererr.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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_BUFERR_H -# define HEADER_BUFERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/camellia.h b/openSSL/lin32/include/openssl/camellia.h deleted file mode 100644 index 151f3c1..0000000 --- a/openSSL/lin32/include/openssl/camellia.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2006-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_CAMELLIA_H -# define HEADER_CAMELLIA_H - -# include - -# ifndef OPENSSL_NO_CAMELLIA -# include -#ifdef __cplusplus -extern "C" { -#endif - -# define CAMELLIA_ENCRYPT 1 -# define CAMELLIA_DECRYPT 0 - -/* - * Because array size can't be a const in C, the following two are macros. - * Both sizes are in bytes. - */ - -/* This should be a hidden type, but EVP requires that the size be known */ - -# define CAMELLIA_BLOCK_SIZE 16 -# define CAMELLIA_TABLE_BYTE_LEN 272 -# define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) - -typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match - * with WORD */ - -struct camellia_key_st { - union { - double d; /* ensures 64-bit align */ - KEY_TABLE_TYPE rd_key; - } u; - int grand_rounds; -}; -typedef struct camellia_key_st CAMELLIA_KEY; - -int Camellia_set_key(const unsigned char *userKey, const int bits, - CAMELLIA_KEY *key); - -void Camellia_encrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key); -void Camellia_decrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key); - -void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key, const int enc); -void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, const int enc); -void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num); -void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char ivec[CAMELLIA_BLOCK_SIZE], - unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], - unsigned int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/cast.h b/openSSL/lin32/include/openssl/cast.h deleted file mode 100644 index 2cc89ae..0000000 --- a/openSSL/lin32/include/openssl/cast.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 1995-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_CAST_H -# define HEADER_CAST_H - -# include - -# ifndef OPENSSL_NO_CAST -# ifdef __cplusplus -extern "C" { -# endif - -# define CAST_ENCRYPT 1 -# define CAST_DECRYPT 0 - -# define CAST_LONG unsigned int - -# define CAST_BLOCK 8 -# define CAST_KEY_LENGTH 16 - -typedef struct cast_key_st { - CAST_LONG data[32]; - int short_key; /* Use reduced rounds for short key */ -} CAST_KEY; - -void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); -void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAST_KEY *key, int enc); -void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); -void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); -void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *ks, unsigned char *iv, - int enc); -void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/cmac.h b/openSSL/lin32/include/openssl/cmac.h deleted file mode 100644 index 3535a9a..0000000 --- a/openSSL/lin32/include/openssl/cmac.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2010-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_CMAC_H -# define HEADER_CMAC_H - -# ifndef OPENSSL_NO_CMAC - -#ifdef __cplusplus -extern "C" { -#endif - -# include - -/* Opaque */ -typedef struct CMAC_CTX_st CMAC_CTX; - -CMAC_CTX *CMAC_CTX_new(void); -void CMAC_CTX_cleanup(CMAC_CTX *ctx); -void CMAC_CTX_free(CMAC_CTX *ctx); -EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); -int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); - -int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen, - const EVP_CIPHER *cipher, ENGINE *impl); -int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen); -int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen); -int CMAC_resume(CMAC_CTX *ctx); - -#ifdef __cplusplus -} -#endif - -# endif -#endif diff --git a/openSSL/lin32/include/openssl/cms.h b/openSSL/lin32/include/openssl/cms.h deleted file mode 100644 index c762796..0000000 --- a/openSSL/lin32/include/openssl/cms.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright 2008-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_CMS_H -# define HEADER_CMS_H - -# include - -# ifndef OPENSSL_NO_CMS -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct CMS_ContentInfo_st CMS_ContentInfo; -typedef struct CMS_SignerInfo_st CMS_SignerInfo; -typedef struct CMS_CertificateChoices CMS_CertificateChoices; -typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; -typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; -typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; -typedef struct CMS_Receipt_st CMS_Receipt; -typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; -typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; - -DEFINE_STACK_OF(CMS_SignerInfo) -DEFINE_STACK_OF(CMS_RecipientEncryptedKey) -DEFINE_STACK_OF(CMS_RecipientInfo) -DEFINE_STACK_OF(CMS_RevocationInfoChoice) -DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) -DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) -DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) - -# define CMS_SIGNERINFO_ISSUER_SERIAL 0 -# define CMS_SIGNERINFO_KEYIDENTIFIER 1 - -# define CMS_RECIPINFO_NONE -1 -# define CMS_RECIPINFO_TRANS 0 -# define CMS_RECIPINFO_AGREE 1 -# define CMS_RECIPINFO_KEK 2 -# define CMS_RECIPINFO_PASS 3 -# define CMS_RECIPINFO_OTHER 4 - -/* S/MIME related flags */ - -# define CMS_TEXT 0x1 -# define CMS_NOCERTS 0x2 -# define CMS_NO_CONTENT_VERIFY 0x4 -# define CMS_NO_ATTR_VERIFY 0x8 -# define CMS_NOSIGS \ - (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) -# define CMS_NOINTERN 0x10 -# define CMS_NO_SIGNER_CERT_VERIFY 0x20 -# define CMS_NOVERIFY 0x20 -# define CMS_DETACHED 0x40 -# define CMS_BINARY 0x80 -# define CMS_NOATTR 0x100 -# define CMS_NOSMIMECAP 0x200 -# define CMS_NOOLDMIMETYPE 0x400 -# define CMS_CRLFEOL 0x800 -# define CMS_STREAM 0x1000 -# define CMS_NOCRL 0x2000 -# define CMS_PARTIAL 0x4000 -# define CMS_REUSE_DIGEST 0x8000 -# define CMS_USE_KEYID 0x10000 -# define CMS_DEBUG_DECRYPT 0x20000 -# define CMS_KEY_PARAM 0x40000 -# define CMS_ASCIICRLF 0x80000 - -const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); - -BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); -int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); - -ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); -int CMS_is_detached(CMS_ContentInfo *cms); -int CMS_set_detached(CMS_ContentInfo *cms, int detached); - -# ifdef HEADER_PEM_H -DECLARE_PEM_rw_const(CMS, CMS_ContentInfo) -# endif -int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); -CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); -int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); - -BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); -int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); -int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, - int flags); -CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); -int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); - -int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, - unsigned int flags); - -CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, BIO *data, - unsigned int flags); - -CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, - X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, unsigned int flags); - -int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); -CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); - -int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, - unsigned int flags); - -int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, - const unsigned char *key, size_t keylen, - BIO *dcont, BIO *out, unsigned int flags); - -CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, - const unsigned char *key, - size_t keylen, unsigned int flags); - -int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, - const unsigned char *key, size_t keylen); - -int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); - -int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, - STACK_OF(X509) *certs, - X509_STORE *store, unsigned int flags); - -STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); - -CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, unsigned int flags); - -int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, - BIO *dcont, BIO *out, unsigned int flags); - -int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); -int CMS_decrypt_set1_key(CMS_ContentInfo *cms, - unsigned char *key, size_t keylen, - const unsigned char *id, size_t idlen); -int CMS_decrypt_set1_password(CMS_ContentInfo *cms, - unsigned char *pass, ossl_ssize_t passlen); - -STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); -int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); -EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); -CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); -CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, - X509 *recip, unsigned int flags); -int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); -int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); -int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, - EVP_PKEY **pk, X509 **recip, - X509_ALGOR **palg); -int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, - unsigned char *key, size_t keylen, - unsigned char *id, size_t idlen, - ASN1_GENERALIZEDTIME *date, - ASN1_OBJECT *otherTypeId, - ASN1_TYPE *otherType); - -int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pid, - ASN1_GENERALIZEDTIME **pdate, - ASN1_OBJECT **potherid, - ASN1_TYPE **pothertype); - -int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, - unsigned char *key, size_t keylen); - -int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, - const unsigned char *id, size_t idlen); - -int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, - unsigned char *pass, - ossl_ssize_t passlen); - -CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, - int iter, int wrap_nid, - int pbe_nid, - unsigned char *pass, - ossl_ssize_t passlen, - const EVP_CIPHER *kekciph); - -int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); -int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); - -int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); - -int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); -const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); - -CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); -int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); -int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); -STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); - -CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); -int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); -int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); -STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); - -int CMS_SignedData_init(CMS_ContentInfo *cms); -CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, - X509 *signer, EVP_PKEY *pk, const EVP_MD *md, - unsigned int flags); -EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); -EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); -STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); - -void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); -int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); -int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - unsigned int flags); -void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, - X509 **signer, X509_ALGOR **pdig, - X509_ALGOR **psig); -ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); -int CMS_SignerInfo_sign(CMS_SignerInfo *si); -int CMS_SignerInfo_verify(CMS_SignerInfo *si); -int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); - -int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); -int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, - int algnid, int keysize); -int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); - -int CMS_signed_get_attr_count(const CMS_SignerInfo *si); -int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, const ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); -int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); -CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, - int allorfirst, - STACK_OF(GENERAL_NAMES) - *receiptList, STACK_OF(GENERAL_NAMES) - *receiptsTo); -int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); -void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, - ASN1_STRING **pcid, - int *pallorfirst, - STACK_OF(GENERAL_NAMES) **plist, - STACK_OF(GENERAL_NAMES) **prto); -int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pukm); -STACK_OF(CMS_RecipientEncryptedKey) -*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); - -int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, - X509_ALGOR **pubalg, - ASN1_BIT_STRING **pubkey, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); - -int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, - ASN1_OCTET_STRING **keyid, - ASN1_GENERALIZEDTIME **tm, - CMS_OtherKeyAttribute **other, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, - X509 *cert); -int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); -EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); -int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, - CMS_RecipientInfo *ri, - CMS_RecipientEncryptedKey *rek); - -int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, - ASN1_OCTET_STRING *ukm, int keylen); - -/* 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 -} -# endif -# endif -#endif diff --git a/openSSL/lin32/include/openssl/cmserr.h b/openSSL/lin32/include/openssl/cmserr.h deleted file mode 100644 index 7dbc13d..0000000 --- a/openSSL/lin32/include/openssl/cmserr.h +++ /dev/null @@ -1,202 +0,0 @@ -/* - * 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_CMSERR_H -# define HEADER_CMSERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_SI_CHECK_ATTRIBUTES 183 -# 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_ATTRIBUTE_ERROR 161 -# 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/openSSL/lin32/include/openssl/comp.h b/openSSL/lin32/include/openssl/comp.h deleted file mode 100644 index d814d3c..0000000 --- a/openSSL/lin32/include/openssl/comp.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_COMP_H -# define HEADER_COMP_H - -# include - -# ifndef OPENSSL_NO_COMP -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - - - -COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); -const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); -int COMP_CTX_get_type(const COMP_CTX* comp); -int COMP_get_type(const COMP_METHOD *meth); -const char *COMP_get_name(const COMP_METHOD *meth); -void COMP_CTX_free(COMP_CTX *ctx); - -int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); -int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); - -COMP_METHOD *COMP_zlib(void); - -#if OPENSSL_API_COMPAT < 0x10100000L -#define COMP_zlib_cleanup() while(0) continue -#endif - -# ifdef HEADER_BIO_H -# ifdef ZLIB -const BIO_METHOD *BIO_f_zlib(void); -# endif -# endif - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin32/include/openssl/comperr.h b/openSSL/lin32/include/openssl/comperr.h deleted file mode 100644 index 90231e9..0000000 --- a/openSSL/lin32/include/openssl/comperr.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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_COMPERR_H -# define HEADER_COMPERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/conf.h b/openSSL/lin32/include/openssl/conf.h deleted file mode 100644 index 7336cd2..0000000 --- a/openSSL/lin32/include/openssl/conf.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - * 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_CONF_H -# define HEADER_CONF_H - -# include -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - char *section; - char *name; - char *value; -} CONF_VALUE; - -DEFINE_STACK_OF(CONF_VALUE) -DEFINE_LHASH_OF(CONF_VALUE); - -struct conf_st; -struct conf_method_st; -typedef struct conf_method_st CONF_METHOD; - -struct conf_method_st { - const char *name; - CONF *(*create) (CONF_METHOD *meth); - int (*init) (CONF *conf); - int (*destroy) (CONF *conf); - int (*destroy_data) (CONF *conf); - int (*load_bio) (CONF *conf, BIO *bp, long *eline); - int (*dump) (const CONF *conf, BIO *bp); - int (*is_number) (const CONF *conf, char c); - int (*to_int) (const CONF *conf, char c); - int (*load) (CONF *conf, const char *name, long *eline); -}; - -/* Module definitions */ - -typedef struct conf_imodule_st CONF_IMODULE; -typedef struct conf_module_st CONF_MODULE; - -DEFINE_STACK_OF(CONF_MODULE) -DEFINE_STACK_OF(CONF_IMODULE) - -/* DSO module function typedefs */ -typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); -typedef void conf_finish_func (CONF_IMODULE *md); - -# define CONF_MFLAGS_IGNORE_ERRORS 0x1 -# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 -# define CONF_MFLAGS_SILENT 0x4 -# define CONF_MFLAGS_NO_DSO 0x8 -# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 -# define CONF_MFLAGS_DEFAULT_SECTION 0x20 - -int CONF_set_default_method(CONF_METHOD *meth); -void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); -LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, - long *eline); -# ifndef OPENSSL_NO_STDIO -LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, - long *eline); -# endif -LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, - long *eline); -STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, - const char *section); -char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -void CONF_free(LHASH_OF(CONF_VALUE) *conf); -#ifndef OPENSSL_NO_STDIO -int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); -#endif -int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); - -DEPRECATEDIN_1_1_0(void OPENSSL_config(const char *config_name)) - -#if OPENSSL_API_COMPAT < 0x10100000L -# define OPENSSL_no_config() \ - OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) -#endif - -/* - * New conf code. The semantics are different from the functions above. If - * that wasn't the case, the above functions would have been replaced - */ - -struct conf_st { - CONF_METHOD *meth; - void *meth_data; - LHASH_OF(CONF_VALUE) *data; -}; - -CONF *NCONF_new(CONF_METHOD *meth); -CONF_METHOD *NCONF_default(void); -CONF_METHOD *NCONF_WIN32(void); -void NCONF_free(CONF *conf); -void NCONF_free_data(CONF *conf); - -int NCONF_load(CONF *conf, const char *file, long *eline); -# ifndef OPENSSL_NO_STDIO -int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); -# endif -int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); -STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, - const char *section); -char *NCONF_get_string(const CONF *conf, const char *group, const char *name); -int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, - long *result); -#ifndef OPENSSL_NO_STDIO -int NCONF_dump_fp(const CONF *conf, FILE *out); -#endif -int NCONF_dump_bio(const CONF *conf, BIO *out); - -#define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) - -/* Module functions */ - -int CONF_modules_load(const CONF *cnf, const char *appname, - unsigned long flags); -int CONF_modules_load_file(const char *filename, const char *appname, - unsigned long flags); -void CONF_modules_unload(int all); -void CONF_modules_finish(void); -#if OPENSSL_API_COMPAT < 0x10100000L -# define CONF_modules_free() while(0) continue -#endif -int CONF_module_add(const char *name, conf_init_func *ifunc, - conf_finish_func *ffunc); - -const char *CONF_imodule_get_name(const CONF_IMODULE *md); -const char *CONF_imodule_get_value(const CONF_IMODULE *md); -void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); -void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); -CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); -unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); -void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); -void *CONF_module_get_usr_data(CONF_MODULE *pmod); -void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); - -char *CONF_get1_default_config_file(void); - -int CONF_parse_list(const char *list, int sep, int nospc, - int (*list_cb) (const char *elem, int len, void *usr), - void *arg); - -void OPENSSL_load_builtin_modules(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/conf_api.h b/openSSL/lin32/include/openssl/conf_api.h deleted file mode 100644 index a0275ad..0000000 --- a/openSSL/lin32/include/openssl/conf_api.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 1995-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_CONF_API_H -# define HEADER_CONF_API_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Up until OpenSSL 0.9.5a, this was new_section */ -CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was get_section */ -CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was CONF_get_section */ -STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, - const char *section); - -int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); -char *_CONF_get_string(const CONF *conf, const char *section, - const char *name); -long _CONF_get_number(const CONF *conf, const char *section, - const char *name); - -int _CONF_new_data(CONF *conf); -void _CONF_free_data(CONF *conf); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin32/include/openssl/conferr.h b/openSSL/lin32/include/openssl/conferr.h deleted file mode 100644 index 32b9229..0000000 --- a/openSSL/lin32/include/openssl/conferr.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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_CONFERR_H -# define HEADER_CONFERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/crypto.h b/openSSL/lin32/include/openssl/crypto.h deleted file mode 100644 index 7d0b526..0000000 --- a/openSSL/lin32/include/openssl/crypto.h +++ /dev/null @@ -1,445 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CRYPTO_H -# define HEADER_CRYPTO_H - -# include -# include - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif - -# include -# include -# include -# include -# include - -# ifdef CHARSET_EBCDIC -# include -# endif - -/* - * Resolve problems on some operating systems with symbol names that clash - * one way or another - */ -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSLeay OpenSSL_version_num -# define SSLeay_version OpenSSL_version -# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER -# define SSLEAY_VERSION OPENSSL_VERSION -# define SSLEAY_CFLAGS OPENSSL_CFLAGS -# define SSLEAY_BUILT_ON OPENSSL_BUILT_ON -# define SSLEAY_PLATFORM OPENSSL_PLATFORM -# define SSLEAY_DIR OPENSSL_DIR - -/* - * Old type for allocating dynamic locks. No longer used. Use the new thread - * API instead. - */ -typedef struct { - int dummy; -} CRYPTO_dynlock; - -# endif /* OPENSSL_API_COMPAT */ - -typedef void CRYPTO_RWLOCK; - -CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void); -int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock); -int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock); -int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); -void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); - -int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); - -/* - * The following can be used to detect memory leaks in the library. If - * used, it turns on malloc checking - */ -# define CRYPTO_MEM_CHECK_OFF 0x0 /* Control only */ -# define CRYPTO_MEM_CHECK_ON 0x1 /* Control and mode bit */ -# define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ -# define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ - -struct crypto_ex_data_st { - STACK_OF(void) *sk; -}; -DEFINE_STACK_OF(void) - -/* - * Per class, we have a STACK of function pointers. - */ -# define CRYPTO_EX_INDEX_SSL 0 -# define CRYPTO_EX_INDEX_SSL_CTX 1 -# define CRYPTO_EX_INDEX_SSL_SESSION 2 -# define CRYPTO_EX_INDEX_X509 3 -# define CRYPTO_EX_INDEX_X509_STORE 4 -# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 -# define CRYPTO_EX_INDEX_DH 6 -# define CRYPTO_EX_INDEX_DSA 7 -# define CRYPTO_EX_INDEX_EC_KEY 8 -# define CRYPTO_EX_INDEX_RSA 9 -# define CRYPTO_EX_INDEX_ENGINE 10 -# define CRYPTO_EX_INDEX_UI 11 -# define CRYPTO_EX_INDEX_BIO 12 -# define CRYPTO_EX_INDEX_APP 13 -# define CRYPTO_EX_INDEX_UI_METHOD 14 -# define CRYPTO_EX_INDEX_DRBG 15 -# define CRYPTO_EX_INDEX__COUNT 16 - -/* No longer needed, so this is a no-op */ -#define OPENSSL_malloc_init() while(0) continue - -int CRYPTO_mem_ctrl(int mode); - -# define OPENSSL_malloc(num) \ - CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_zalloc(num) \ - CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_realloc(addr, num) \ - CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_realloc(addr, old_num, num) \ - CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_free(addr, num) \ - CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_free(addr) \ - CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_memdup(str, s) \ - CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_strdup(str) \ - CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_strndup(str, n) \ - CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_malloc(num) \ - CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_zalloc(num) \ - CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_free(addr) \ - CRYPTO_secure_free(addr, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_clear_free(addr, num) \ - CRYPTO_secure_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_actual_size(ptr) \ - CRYPTO_secure_actual_size(ptr) - -size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); -size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); -size_t OPENSSL_strnlen(const char *str, size_t maxlen); -char *OPENSSL_buf2hexstr(const unsigned char *buffer, long len); -unsigned char *OPENSSL_hexstr2buf(const char *str, long *len); -int OPENSSL_hexchar2int(unsigned char c); - -# define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U<<(sizeof(int)*8-1))-1)/sizeof(type)) - -unsigned long OpenSSL_version_num(void); -const char *OpenSSL_version(int type); -# define OPENSSL_VERSION 0 -# define OPENSSL_CFLAGS 1 -# define OPENSSL_BUILT_ON 2 -# define OPENSSL_PLATFORM 3 -# define OPENSSL_DIR 4 -# define OPENSSL_ENGINES_DIR 5 - -int OPENSSL_issetugid(void); - -typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, - void *from_d, int idx, long argl, void *argp); -__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, - CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -/* No longer use an index. */ -int CRYPTO_free_ex_index(int class_index, int idx); - -/* - * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a - * given class (invokes whatever per-class callbacks are applicable) - */ -int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); -int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, - const CRYPTO_EX_DATA *from); - -void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); - -/* - * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular - * index (relative to the class type involved) - */ -int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); -void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); - -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * This function cleans up all "ex_data" state. It mustn't be called under - * potential race-conditions. - */ -# define CRYPTO_cleanup_all_ex_data() while(0) continue - -/* - * 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 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, - * the callback management functions can be safely replaced with no-op macros. - */ -# define CRYPTO_num_locks() (1) -# define CRYPTO_set_locking_callback(func) -# define CRYPTO_get_locking_callback() (NULL) -# define CRYPTO_set_add_lock_callback(func) -# define CRYPTO_get_add_lock_callback() (NULL) - -/* - * These defines where used in combination with the old locking callbacks, - * they are not called anymore, but old code that's not called might still - * use them. - */ -# define CRYPTO_LOCK 1 -# define CRYPTO_UNLOCK 2 -# define CRYPTO_READ 4 -# define CRYPTO_WRITE 8 - -/* This structure is no longer used */ -typedef struct crypto_threadid_st { - int dummy; -} CRYPTO_THREADID; -/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ -# define CRYPTO_THREADID_set_numeric(id, val) -# define CRYPTO_THREADID_set_pointer(id, ptr) -# define CRYPTO_THREADID_set_callback(threadid_func) (0) -# define CRYPTO_THREADID_get_callback() (NULL) -# define CRYPTO_THREADID_current(id) -# define CRYPTO_THREADID_cmp(a, b) (-1) -# define CRYPTO_THREADID_cpy(dest, src) -# define CRYPTO_THREADID_hash(id) (0UL) - -# if OPENSSL_API_COMPAT < 0x10000000L -# define CRYPTO_set_id_callback(func) -# define CRYPTO_get_id_callback() (NULL) -# define CRYPTO_thread_id() (0UL) -# endif /* OPENSSL_API_COMPAT < 0x10000000L */ - -# define CRYPTO_set_dynlock_create_callback(dyn_create_function) -# define CRYPTO_set_dynlock_lock_callback(dyn_lock_function) -# define CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function) -# define CRYPTO_get_dynlock_create_callback() (NULL) -# define CRYPTO_get_dynlock_lock_callback() (NULL) -# define CRYPTO_get_dynlock_destroy_callback() (NULL) -# endif /* OPENSSL_API_COMPAT < 0x10100000L */ - -int CRYPTO_set_mem_functions( - void *(*m) (size_t, const char *, int), - void *(*r) (void *, size_t, const char *, int), - void (*f) (void *, const char *, int)); -int CRYPTO_set_mem_debug(int flag); -void CRYPTO_get_mem_functions( - void *(**m) (size_t, const char *, int), - void *(**r) (void *, size_t, const char *, int), - void (**f) (void *, const char *, int)); - -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); -void CRYPTO_free(void *ptr, const char *file, int line); -void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); -void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); -void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, - const char *file, int line); - -int CRYPTO_secure_malloc_init(size_t sz, int minsize); -int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); -void CRYPTO_secure_free(void *ptr, const char *file, int line); -void CRYPTO_secure_clear_free(void *ptr, size_t num, - const char *file, int line); -int CRYPTO_secure_allocated(const void *ptr); -int CRYPTO_secure_malloc_initialized(void); -size_t CRYPTO_secure_actual_size(void *ptr); -size_t CRYPTO_secure_used(void); - -void OPENSSL_cleanse(void *ptr, size_t len); - -# ifndef OPENSSL_NO_CRYPTO_MDEBUG -# define OPENSSL_mem_debug_push(info) \ - CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_mem_debug_pop() \ - 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)) - * The flag argument has the following significance: - * 0: called before the actual memory allocation has taken place - * 1: called after the actual memory allocation has taken place - */ -void CRYPTO_mem_debug_malloc(void *addr, size_t num, int flag, - const char *file, int line); -void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, size_t num, int flag, - const char *file, int line); -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 -int CRYPTO_mem_leaks(BIO *bio); -# endif - -/* die if we have to */ -ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line); -# if OPENSSL_API_COMPAT < 0x10100000L -# define OpenSSLDie(f,l,a) OPENSSL_die((a),(f),(l)) -# endif -# define OPENSSL_assert(e) \ - (void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1)) - -int OPENSSL_isservice(void); - -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); -int OPENSSL_gmtime_diff(int *pday, int *psec, - const struct tm *from, const struct tm *to); - -/* - * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. - * It takes an amount of time dependent on |len|, but independent of the - * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements - * into a defined order as the return value when a != b is undefined, other - * than to be non-zero. - */ -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 -# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L -# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L -# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L -# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L -# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L -# define OPENSSL_INIT_LOAD_CONFIG 0x00000040L -# define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L -# define OPENSSL_INIT_ASYNC 0x00000100L -# define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L -# define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L -# define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L -# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L -# define OPENSSL_INIT_ENGINE_CAPI 0x00002000L -# define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L -# define OPENSSL_INIT_ENGINE_AFALG 0x00008000L -/* OPENSSL_INIT_ZLIB 0x00010000L */ -# 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 */ - -/* openssl and dasync not counted as builtin */ -# define OPENSSL_INIT_ENGINE_ALL_BUILTIN \ - (OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC \ - | OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | \ - OPENSSL_INIT_ENGINE_PADLOCK) - - -/* Library initialisation functions */ -void OPENSSL_cleanup(void); -int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); -int OPENSSL_atexit(void (*handler)(void)); -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_appname); -# endif -void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); - -# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) -# if defined(_WIN32) -# if defined(BASETYPES) || defined(_WINDEF_H) -/* application has to include in order to use this */ -typedef DWORD CRYPTO_THREAD_LOCAL; -typedef DWORD CRYPTO_THREAD_ID; - -typedef LONG CRYPTO_ONCE; -# define CRYPTO_ONCE_STATIC_INIT 0 -# endif -# else -# include -typedef pthread_once_t CRYPTO_ONCE; -typedef pthread_key_t CRYPTO_THREAD_LOCAL; -typedef pthread_t CRYPTO_THREAD_ID; - -# define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT -# endif -# endif - -# if !defined(CRYPTO_ONCE_STATIC_INIT) -typedef unsigned int CRYPTO_ONCE; -typedef unsigned int CRYPTO_THREAD_LOCAL; -typedef unsigned int CRYPTO_THREAD_ID; -# define CRYPTO_ONCE_STATIC_INIT 0 -# endif - -int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void)); - -int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *)); -void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key); -int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val); -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); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/cryptoerr.h b/openSSL/lin32/include/openssl/cryptoerr.h deleted file mode 100644 index 3db5a4e..0000000 --- a/openSSL/lin32/include/openssl/cryptoerr.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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_CRYPTOERR_H -# define HEADER_CRYPTOERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -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/openSSL/lin32/include/openssl/ct.h b/openSSL/lin32/include/openssl/ct.h deleted file mode 100644 index ebdba34..0000000 --- a/openSSL/lin32/include/openssl/ct.h +++ /dev/null @@ -1,474 +0,0 @@ -/* - * 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_CT_H -# define HEADER_CT_H - -# include - -# ifndef OPENSSL_NO_CT -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - - -/* Minimum RSA key size, from RFC6962 */ -# define SCT_MIN_RSA_BITS 2048 - -/* All hashes are SHA256 in v1 of Certificate Transparency */ -# define CT_V1_HASHLEN SHA256_DIGEST_LENGTH - -typedef enum { - CT_LOG_ENTRY_TYPE_NOT_SET = -1, - CT_LOG_ENTRY_TYPE_X509 = 0, - CT_LOG_ENTRY_TYPE_PRECERT = 1 -} ct_log_entry_type_t; - -typedef enum { - SCT_VERSION_NOT_SET = -1, - SCT_VERSION_V1 = 0 -} sct_version_t; - -typedef enum { - SCT_SOURCE_UNKNOWN, - SCT_SOURCE_TLS_EXTENSION, - SCT_SOURCE_X509V3_EXTENSION, - SCT_SOURCE_OCSP_STAPLED_RESPONSE -} sct_source_t; - -typedef enum { - SCT_VALIDATION_STATUS_NOT_SET, - SCT_VALIDATION_STATUS_UNKNOWN_LOG, - SCT_VALIDATION_STATUS_VALID, - SCT_VALIDATION_STATUS_INVALID, - SCT_VALIDATION_STATUS_UNVERIFIED, - SCT_VALIDATION_STATUS_UNKNOWN_VERSION -} sct_validation_status_t; - -DEFINE_STACK_OF(SCT) -DEFINE_STACK_OF(CTLOG) - -/****************************************** - * CT policy evaluation context functions * - ******************************************/ - -/* - * Creates a new, empty policy evaluation context. - * The caller is responsible for calling CT_POLICY_EVAL_CTX_free when finished - * with the CT_POLICY_EVAL_CTX. - */ -CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void); - -/* Deletes a policy evaluation context and anything it owns. */ -void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx); - -/* Gets the peer certificate that the SCTs are for */ -X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the certificate associated with the received SCTs. - * Increments the reference count of cert. - * Returns 1 on success, 0 otherwise. - */ -int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert); - -/* Gets the issuer of the aforementioned certificate */ -X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the issuer of the certificate associated with the received SCTs. - * Increments the reference count of issuer. - * Returns 1 on success, 0 otherwise. - */ -int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer); - -/* Gets the CT logs that are trusted sources of SCTs */ -const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx); - -/* Sets the log store that is in use. It must outlive the CT_POLICY_EVAL_CTX. */ -void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, - CTLOG_STORE *log_store); - -/* - * Gets the time, in milliseconds since the Unix epoch, that will be used as the - * current time when checking whether an SCT was issued in the future. - * Such SCTs will fail validation, as required by RFC6962. - */ -uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the time to evaluate SCTs against, in milliseconds since the Unix epoch. - * If an SCT's timestamp is after this time, it will be interpreted as having - * been issued in the future. RFC6962 states that "TLS clients MUST reject SCTs - * whose timestamp is in the future", so an SCT will not validate in this case. - */ -void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms); - -/***************** - * SCT functions * - *****************/ - -/* - * Creates a new, blank SCT. - * The caller is responsible for calling SCT_free when finished with the SCT. - */ -SCT *SCT_new(void); - -/* - * Creates a new SCT from some base64-encoded strings. - * The caller is responsible for calling SCT_free when finished with the SCT. - */ -SCT *SCT_new_from_base64(unsigned char version, - const char *logid_base64, - ct_log_entry_type_t entry_type, - uint64_t timestamp, - const char *extensions_base64, - const char *signature_base64); - -/* - * Frees the SCT and the underlying data structures. - */ -void SCT_free(SCT *sct); - -/* - * Free a stack of SCTs, and the underlying SCTs themselves. - * Intended to be compatible with X509V3_EXT_FREE. - */ -void SCT_LIST_free(STACK_OF(SCT) *a); - -/* - * Returns the version of the SCT. - */ -sct_version_t SCT_get_version(const SCT *sct); - -/* - * Set the version of an SCT. - * Returns 1 on success, 0 if the version is unrecognized. - */ -__owur int SCT_set_version(SCT *sct, sct_version_t version); - -/* - * Returns the log entry type of the SCT. - */ -ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct); - -/* - * Set the log entry type of an SCT. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type); - -/* - * Gets the ID of the log that an SCT came from. - * Ownership of the log ID remains with the SCT. - * Returns the length of the log ID. - */ -size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id); - -/* - * Set the log ID of an SCT to point directly to the *log_id specified. - * The SCT takes ownership of the specified pointer. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len); - -/* - * Set the log ID of an SCT. - * This makes a copy of the log_id. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, - size_t log_id_len); - -/* - * Returns the timestamp for the SCT (epoch time in milliseconds). - */ -uint64_t SCT_get_timestamp(const SCT *sct); - -/* - * Set the timestamp of an SCT (epoch time in milliseconds). - */ -void SCT_set_timestamp(SCT *sct, uint64_t timestamp); - -/* - * Return the NID for the signature used by the SCT. - * For CT v1, this will be either NID_sha256WithRSAEncryption or - * NID_ecdsa_with_SHA256 (or NID_undef if incorrect/unset). - */ -int SCT_get_signature_nid(const SCT *sct); - -/* - * Set the signature type of an SCT - * For CT v1, this should be either NID_sha256WithRSAEncryption or - * NID_ecdsa_with_SHA256. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_signature_nid(SCT *sct, int nid); - -/* - * Set *ext to point to the extension data for the SCT. ext must not be NULL. - * The SCT retains ownership of this pointer. - * Returns length of the data pointed to. - */ -size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext); - -/* - * Set the extensions of an SCT to point directly to the *ext specified. - * The SCT takes ownership of the specified pointer. - */ -void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len); - -/* - * Set the extensions of an SCT. - * This takes a copy of the ext. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext, - size_t ext_len); - -/* - * Set *sig to point to the signature for the SCT. sig must not be NULL. - * The SCT retains ownership of this pointer. - * Returns length of the data pointed to. - */ -size_t SCT_get0_signature(const SCT *sct, unsigned char **sig); - -/* - * Set the signature of an SCT to point directly to the *sig specified. - * The SCT takes ownership of the specified pointer. - */ -void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len); - -/* - * Set the signature of an SCT to be a copy of the *sig specified. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig, - size_t sig_len); - -/* - * The origin of this SCT, e.g. TLS extension, OCSP response, etc. - */ -sct_source_t SCT_get_source(const SCT *sct); - -/* - * Set the origin of this SCT, e.g. TLS extension, OCSP response, etc. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_source(SCT *sct, sct_source_t source); - -/* - * Returns a text string describing the validation status of |sct|. - */ -const char *SCT_validation_status_string(const SCT *sct); - -/* - * Pretty-prints an |sct| to |out|. - * It will be indented by the number of spaces specified by |indent|. - * If |logs| is not NULL, it will be used to lookup the CT log that the SCT came - * from, so that the log name can be printed. - */ -void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs); - -/* - * Pretty-prints an |sct_list| to |out|. - * It will be indented by the number of spaces specified by |indent|. - * SCTs will be delimited by |separator|. - * If |logs| is not NULL, it will be used to lookup the CT log that each SCT - * came from, so that the log names can be printed. - */ -void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent, - const char *separator, const CTLOG_STORE *logs); - -/* - * Gets the last result of validating this SCT. - * If it has not been validated yet, returns SCT_VALIDATION_STATUS_NOT_SET. - */ -sct_validation_status_t SCT_get_validation_status(const SCT *sct); - -/* - * Validates the given SCT with the provided context. - * Sets the "validation_status" field of the SCT. - * Returns 1 if the SCT is valid and the signature verifies. - * Returns 0 if the SCT is invalid or could not be verified. - * Returns -1 if an error occurs. - */ -__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx); - -/* - * Validates the given list of SCTs with the provided context. - * Sets the "validation_status" field of each SCT. - * Returns 1 if there are no invalid SCTs and all signatures verify. - * Returns 0 if at least one SCT is invalid or could not be verified. - * Returns a negative integer if an error occurs. - */ -__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts, - CT_POLICY_EVAL_CTX *ctx); - - -/********************************* - * SCT parsing and serialisation * - *********************************/ - -/* - * Serialize (to TLS format) a stack of SCTs and return the length. - * "a" must not be NULL. - * If "pp" is NULL, just return the length of what would have been serialized. - * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer - * for data that caller is responsible for freeing (only if function returns - * successfully). - * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring - * that "*pp" is large enough to accept all of the serialized data. - * Returns < 0 on error, >= 0 indicating bytes written (or would have been) - * on success. - */ -__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); - -/* - * Convert TLS format SCT list to a stack of SCTs. - * If "a" or "*a" is NULL, a new stack will be created that the caller is - * responsible for freeing (by calling SCT_LIST_free). - * "**pp" and "*pp" must not be NULL. - * Upon success, "*pp" will point to after the last bytes read, and a stack - * will be returned. - * Upon failure, a NULL pointer will be returned, and the position of "*pp" is - * not defined. - */ -STACK_OF(SCT) *o2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, - size_t len); - -/* - * Serialize (to DER format) a stack of SCTs and return the length. - * "a" must not be NULL. - * If "pp" is NULL, just returns the length of what would have been serialized. - * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer - * for data that caller is responsible for freeing (only if function returns - * successfully). - * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring - * that "*pp" is large enough to accept all of the serialized data. - * Returns < 0 on error, >= 0 indicating bytes written (or would have been) - * on success. - */ -__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); - -/* - * Parses an SCT list in DER format and returns it. - * If "a" or "*a" is NULL, a new stack will be created that the caller is - * responsible for freeing (by calling SCT_LIST_free). - * "**pp" and "*pp" must not be NULL. - * Upon success, "*pp" will point to after the last bytes read, and a stack - * will be returned. - * Upon failure, a NULL pointer will be returned, and the position of "*pp" is - * not defined. - */ -STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, - long len); - -/* - * Serialize (to TLS format) an |sct| and write it to |out|. - * If |out| is null, no SCT will be output but the length will still be returned. - * If |out| points to a null pointer, a string will be allocated to hold the - * TLS-format SCT. It is the responsibility of the caller to free it. - * If |out| points to an allocated string, the TLS-format SCT will be written - * to it. - * The length of the SCT in TLS format will be returned. - */ -__owur int i2o_SCT(const SCT *sct, unsigned char **out); - -/* - * Parses an SCT in TLS format and returns it. - * If |psct| is not null, it will end up pointing to the parsed SCT. If it - * already points to a non-null pointer, the pointer will be free'd. - * |in| should be a pointer to a string containing the TLS-format SCT. - * |in| will be advanced to the end of the SCT if parsing succeeds. - * |len| should be the length of the SCT in |in|. - * Returns NULL if an error occurs. - * If the SCT is an unsupported version, only the SCT's 'sct' and 'sct_len' - * fields will be populated (with |in| and |len| respectively). - */ -SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len); - -/******************** - * CT log functions * - ********************/ - -/* - * Creates a new CT log instance with the given |public_key| and |name|. - * Takes ownership of |public_key| but copies |name|. - * Returns NULL if malloc fails or if |public_key| cannot be converted to DER. - * Should be deleted by the caller using CTLOG_free when no longer needed. - */ -CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name); - -/* - * Creates a new CTLOG instance with the base64-encoded SubjectPublicKeyInfo DER - * in |pkey_base64|. The |name| is a string to help users identify this log. - * Returns 1 on success, 0 on failure. - * Should be deleted by the caller using CTLOG_free when no longer needed. - */ -int CTLOG_new_from_base64(CTLOG ** ct_log, - const char *pkey_base64, const char *name); - -/* - * Deletes a CT log instance and its fields. - */ -void CTLOG_free(CTLOG *log); - -/* Gets the name of the CT log */ -const char *CTLOG_get0_name(const CTLOG *log); -/* Gets the ID of the CT log */ -void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, - size_t *log_id_len); -/* Gets the public key of the CT log */ -EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log); - -/************************** - * CT log store functions * - **************************/ - -/* - * Creates a new CT log store. - * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. - */ -CTLOG_STORE *CTLOG_STORE_new(void); - -/* - * Deletes a CT log store and all of the CT log instances held within. - */ -void CTLOG_STORE_free(CTLOG_STORE *store); - -/* - * Finds a CT log in the store based on its log ID. - * Returns the CT log, or NULL if no match is found. - */ -const CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, - const uint8_t *log_id, - size_t log_id_len); - -/* - * Loads a CT log list into a |store| from a |file|. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file); - -/* - * Loads the default CT log list into a |store|. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin32/include/openssl/cterr.h b/openSSL/lin32/include/openssl/cterr.h deleted file mode 100644 index feb7bc5..0000000 --- a/openSSL/lin32/include/openssl/cterr.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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_CTERR_H -# define HEADER_CTERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/des.h b/openSSL/lin32/include/openssl/des.h deleted file mode 100644 index be4abbd..0000000 --- a/openSSL/lin32/include/openssl/des.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright 1995-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_DES_H -# define HEADER_DES_H - -# include - -# ifndef OPENSSL_NO_DES -# ifdef __cplusplus -extern "C" { -# endif -# include - -typedef unsigned int DES_LONG; - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -typedef unsigned char DES_cblock[8]; -typedef /* const */ unsigned char const_DES_cblock[8]; -/* - * With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * and - * const_DES_cblock * are incompatible pointer types. - */ - -typedef struct DES_ks { - union { - DES_cblock cblock; - /* - * make sure things are correct size on machines with 8 byte longs - */ - DES_LONG deslong[2]; - } ks[16]; -} DES_key_schedule; - -# define DES_KEY_SZ (sizeof(DES_cblock)) -# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) - -# define DES_ENCRYPT 1 -# define DES_DECRYPT 0 - -# define DES_CBC_MODE 0 -# define DES_PCBC_MODE 1 - -# define DES_ecb2_encrypt(i,o,k1,k2,e) \ - DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -OPENSSL_DECLARE_GLOBAL(int, DES_check_key); /* defaults to false */ -# define DES_check_key OPENSSL_GLOBAL_REF(DES_check_key) - -const char *DES_options(void); -void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, int enc); -DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, - long length, DES_key_schedule *schedule, - const_DES_cblock *ivec); -/* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ -void DES_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, const_DES_cblock *inw, - const_DES_cblock *outw, int enc); -void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks, int enc); - -/* - * This is the DES encryption function that gets called by just about every - * other DES routine in the library. You should not use this function except - * to implement 'modes' of DES. I say this because the functions that call - * this routine do the conversion from 'char *' to long, and this needs to be - * done to make sure 'non-aligned' memory access do not occur. The - * characters are loaded 'little endian'. Data is a pointer to 2 unsigned - * long's and ks is the DES_key_schedule to use. enc, is non zero specifies - * encryption, zero if decryption. - */ -void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); - -/* - * This functions is the same as DES_encrypt1() except that the DES initial - * permutation (IP) and final permutation (FP) have been left out. As for - * DES_encrypt1(), you should not use this function. It is used by the - * routines in the library that implement triple DES. IP() DES_encrypt2() - * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() - * DES_encrypt1() DES_encrypt1() except faster :-). - */ -void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc); - -void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, DES_cblock *ivec, int enc); -void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num, int enc); -void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out, - int numbits, long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int enc); -void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num); -char *DES_fcrypt(const char *buf, const char *salt, char *ret); -char *DES_crypt(const char *buf, const char *salt); -void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, - DES_cblock *ivec); -void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], - long length, int out_count, DES_cblock *seed); -int DES_random_key(DES_cblock *ret); -void DES_set_odd_parity(DES_cblock *key); -int DES_check_key_parity(const_DES_cblock *key); -int DES_is_weak_key(const_DES_cblock *key); -/* - * DES_set_key (= set_key = DES_key_sched = key_sched) calls - * DES_set_key_checked if global variable DES_check_key is set, - * DES_set_key_unchecked otherwise. - */ -int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); -int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); -int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); -void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); -void DES_string_to_key(const char *str, DES_cblock *key); -void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); -void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num, int enc); -void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num); - -# define DES_fixup_key_parity DES_set_odd_parity - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/dh.h b/openSSL/lin32/include/openssl/dh.h deleted file mode 100644 index 3527540..0000000 --- a/openSSL/lin32/include/openssl/dh.h +++ /dev/null @@ -1,340 +0,0 @@ -/* - * 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_DH_H -# define HEADER_DH_H - -# include - -# ifndef OPENSSL_NO_DH -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_DH_MAX_MODULUS_BITS -# define OPENSSL_DH_MAX_MODULUS_BITS 10000 -# endif - -# define OPENSSL_DH_FIPS_MIN_MODULUS_BITS 1024 - -# define DH_FLAG_CACHE_MONT_P 0x01 - -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define DH_FLAG_NO_EXP_CONSTTIME 0x00 -# endif - -/* - * If this flag is set the DH method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define DH_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DH_FLAG_NON_FIPS_ALLOW 0x0400 - -/* Already defined in ossl_typ.h */ -/* typedef struct dh_st DH; */ -/* typedef struct dh_method DH_METHOD; */ - -DECLARE_ASN1_ITEM(DHparams) - -# define DH_GENERATOR_2 2 -/* #define DH_GENERATOR_3 3 */ -# define DH_GENERATOR_5 5 - -/* DH_check error codes */ -# define DH_CHECK_P_NOT_PRIME 0x01 -# define DH_CHECK_P_NOT_SAFE_PRIME 0x02 -# define DH_UNABLE_TO_CHECK_GENERATOR 0x04 -# define DH_NOT_SUITABLE_GENERATOR 0x08 -# define DH_CHECK_Q_NOT_PRIME 0x10 -# define DH_CHECK_INVALID_Q_VALUE 0x20 -# define DH_CHECK_INVALID_J_VALUE 0x40 - -/* DH_check_pub_key error codes */ -# define DH_CHECK_PUBKEY_TOO_SMALL 0x01 -# define DH_CHECK_PUBKEY_TOO_LARGE 0x02 -# define DH_CHECK_PUBKEY_INVALID 0x04 - -/* - * primes p where (p-1)/2 is prime too are called "safe"; we define this for - * backward compatibility: - */ -# define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME - -# define d2i_DHparams_fp(fp,x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHparams_fp(fp,x) \ - ASN1_i2d_fp(i2d_DHparams,(fp), (unsigned char *)(x)) -# define d2i_DHparams_bio(bp,x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHparams, bp, x) -# define i2d_DHparams_bio(bp,x) \ - ASN1_i2d_bio_of_const(DH,i2d_DHparams,bp,x) - -# define d2i_DHxparams_fp(fp,x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHxparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHxparams_fp(fp,x) \ - ASN1_i2d_fp(i2d_DHxparams,(fp), (unsigned char *)(x)) -# define d2i_DHxparams_bio(bp,x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHxparams, bp, x) -# define i2d_DHxparams_bio(bp,x) \ - ASN1_i2d_bio_of_const(DH, i2d_DHxparams, bp, x) - -DH *DHparams_dup(DH *); - -const DH_METHOD *DH_OpenSSL(void); - -void DH_set_default_method(const DH_METHOD *meth); -const DH_METHOD *DH_get_default_method(void); -int DH_set_method(DH *dh, const DH_METHOD *meth); -DH *DH_new_method(ENGINE *engine); - -DH *DH_new(void); -void DH_free(DH *dh); -int DH_up_ref(DH *dh); -int DH_bits(const DH *dh); -int DH_size(const DH *dh); -int DH_security_bits(const DH *dh); -#define DH_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH, l, p, newf, dupf, freef) -int DH_set_ex_data(DH *d, int idx, void *arg); -void *DH_get_ex_data(DH *d, int idx); - -/* Deprecated version */ -DEPRECATEDIN_0_9_8(DH *DH_generate_parameters(int prime_len, int generator, - void (*callback) (int, int, - void *), - void *cb_arg)) - -/* New version */ -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); -int DH_generate_key(DH *dh); -int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); -int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); -DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); -int i2d_DHparams(const DH *a, unsigned char **pp); -DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); -int i2d_DHxparams(const DH *a, unsigned char **pp); -# ifndef OPENSSL_NO_STDIO -int DHparams_print_fp(FILE *fp, const DH *x); -# endif -int DHparams_print(BIO *bp, const DH *x); - -/* RFC 5114 parameters */ -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, - const unsigned char *Z, size_t Zlen, - ASN1_OBJECT *key_oid, - const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); -# endif - -void DH_get0_pqg(const DH *dh, - const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); -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); -ENGINE *DH_get0_engine(DH *d); -long DH_get_length(const DH *dh); -int DH_set_length(DH *dh, long length); - -DH_METHOD *DH_meth_new(const char *name, int flags); -void DH_meth_free(DH_METHOD *dhm); -DH_METHOD *DH_meth_dup(const DH_METHOD *dhm); -const char *DH_meth_get0_name(const DH_METHOD *dhm); -int DH_meth_set1_name(DH_METHOD *dhm, const char *name); -int DH_meth_get_flags(const DH_METHOD *dhm); -int DH_meth_set_flags(DH_METHOD *dhm, int flags); -void *DH_meth_get0_app_data(const DH_METHOD *dhm); -int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data); -int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *); -int DH_meth_set_generate_key(DH_METHOD *dhm, int (*generate_key) (DH *)); -int (*DH_meth_get_compute_key(const DH_METHOD *dhm)) - (unsigned char *key, const BIGNUM *pub_key, DH *dh); -int DH_meth_set_compute_key(DH_METHOD *dhm, - int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh)); -int (*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)) - (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - BN_CTX *, BN_MONT_CTX *); -int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, - int (*bn_mod_exp) (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); -int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *); -int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *)); -int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *); -int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *)); -int (*DH_meth_get_generate_params(const DH_METHOD *dhm)) - (DH *, int, int, BN_GENCB *); -int DH_meth_set_generate_params(DH_METHOD *dhm, - int (*generate_params) (DH *, int, int, BN_GENCB *)); - - -# define EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, len, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN, len, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_type(ctx, typ) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_TYPE, typ, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR, gen, NULL) - -# define EVP_PKEY_CTX_set_dh_rfc5114(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) - -# define EVP_PKEY_CTX_set_dhx_rfc5114(ctx, gen) \ - 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, \ - EVP_PKEY_CTRL_DH_KDF_TYPE, kdf, NULL) - -# define EVP_PKEY_CTX_get_dh_kdf_type(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_TYPE, -2, NULL) - -# 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)) - -# 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)) - -# 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)) - -# 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)) - -# define EVP_PKEY_CTX_set_dh_kdf_outlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_OUTLEN, len, NULL) - -# 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)) - -# 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)) - -# 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)) - -# 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) -# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10) -# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11) -# 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 -# ifndef OPENSSL_NO_CMS -# define EVP_PKEY_DH_KDF_X9_42 2 -# endif - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin32/include/openssl/dherr.h b/openSSL/lin32/include/openssl/dherr.h deleted file mode 100644 index 916b3be..0000000 --- a/openSSL/lin32/include/openssl/dherr.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * 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_DHERR_H -# define HEADER_DHERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/dsa.h b/openSSL/lin32/include/openssl/dsa.h deleted file mode 100644 index 6d8a18a..0000000 --- a/openSSL/lin32/include/openssl/dsa.h +++ /dev/null @@ -1,244 +0,0 @@ -/* - * 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_DSA_H -# define HEADER_DSA_H - -# include - -# ifndef OPENSSL_NO_DSA -# ifdef __cplusplus -extern "C" { -# endif -# 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 -# endif - -# define OPENSSL_DSA_FIPS_MIN_MODULUS_BITS 1024 - -# define DSA_FLAG_CACHE_MONT_P 0x01 -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define DSA_FLAG_NO_EXP_CONSTTIME 0x00 -# endif - -/* - * If this flag is set the DSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define DSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DSA_FLAG_NON_FIPS_ALLOW 0x0400 -# define DSA_FLAG_FIPS_CHECKED 0x0800 - -/* Already defined in ossl_typ.h */ -/* typedef struct dsa_st DSA; */ -/* typedef struct dsa_method DSA_METHOD; */ - -typedef struct DSA_SIG_st DSA_SIG; - -# define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ - (char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x)) -# define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), \ - (unsigned char *)(x)) -# define d2i_DSAparams_bio(bp,x) ASN1_d2i_bio_of(DSA,DSA_new,d2i_DSAparams,bp,x) -# define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio_of_const(DSA,i2d_DSAparams,bp,x) - -DSA *DSAparams_dup(DSA *x); -DSA_SIG *DSA_SIG_new(void); -void DSA_SIG_free(DSA_SIG *a); -int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); -DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); -void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); -int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); - -DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); -int DSA_do_verify(const unsigned char *dgst, int dgst_len, - DSA_SIG *sig, DSA *dsa); - -const DSA_METHOD *DSA_OpenSSL(void); - -void DSA_set_default_method(const DSA_METHOD *); -const DSA_METHOD *DSA_get_default_method(void); -int DSA_set_method(DSA *dsa, const DSA_METHOD *); -const DSA_METHOD *DSA_get_method(DSA *d); - -DSA *DSA_new(void); -DSA *DSA_new_method(ENGINE *engine); -void DSA_free(DSA *r); -/* "up" the DSA object's reference count */ -int DSA_up_ref(DSA *r); -int DSA_size(const DSA *); -int DSA_bits(const DSA *d); -int DSA_security_bits(const DSA *d); - /* next 4 return -1 on error */ -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, - const unsigned char *sigbuf, int siglen, DSA *dsa); -#define DSA_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA, l, p, newf, dupf, freef) -int DSA_set_ex_data(DSA *d, int idx, void *arg); -void *DSA_get_ex_data(DSA *d, int idx); - -DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); -DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); -DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); - -/* Deprecated version */ -DEPRECATEDIN_0_9_8(DSA *DSA_generate_parameters(int bits, - unsigned char *seed, - int seed_len, - int *counter_ret, - unsigned long *h_ret, void - (*callback) (int, int, - void *), - void *cb_arg)) - -/* New version */ -int DSA_generate_parameters_ex(DSA *dsa, int bits, - const unsigned char *seed, int seed_len, - int *counter_ret, unsigned long *h_ret, - BN_GENCB *cb); - -int DSA_generate_key(DSA *a); -int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); -int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); -int i2d_DSAparams(const DSA *a, unsigned char **pp); - -int DSAparams_print(BIO *bp, const DSA *x); -int DSA_print(BIO *bp, const DSA *x, int off); -# ifndef OPENSSL_NO_STDIO -int DSAparams_print_fp(FILE *fp, const DSA *x); -int DSA_print_fp(FILE *bp, const DSA *x, int off); -# endif - -# define DSS_prime_checks 64 -/* - * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only - * have one value here we set the number of checks to 64 which is the 128 bit - * security level that is the highest level and valid for creating a 3072 bit - * DSA key. - */ -# define DSA_is_prime(n, callback, cb_arg) \ - BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) - -# ifndef OPENSSL_NO_DH -/* - * Convert DSA structure (key or just parameters) into DH structure (be - * careful to avoid small subgroup attacks when using this!) - */ -DH *DSA_dup_DH(const DSA *r); -# endif - -# define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL) -# define EVP_PKEY_CTX_set_dsa_paramgen_q_bits(ctx, qbits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS, qbits, NULL) -# define EVP_PKEY_CTX_set_dsa_paramgen_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DSA_PARAMGEN_MD, 0, (void *)(md)) - -# define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3) - -void DSA_get0_pqg(const DSA *d, - const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); -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); -ENGINE *DSA_get0_engine(DSA *d); - -DSA_METHOD *DSA_meth_new(const char *name, int flags); -void DSA_meth_free(DSA_METHOD *dsam); -DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam); -const char *DSA_meth_get0_name(const DSA_METHOD *dsam); -int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name); -int DSA_meth_get_flags(const DSA_METHOD *dsam); -int DSA_meth_set_flags(DSA_METHOD *dsam, int flags); -void *DSA_meth_get0_app_data(const DSA_METHOD *dsam); -int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data); -DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam)) - (const unsigned char *, int, DSA *); -int DSA_meth_set_sign(DSA_METHOD *dsam, - DSA_SIG *(*sign) (const unsigned char *, int, DSA *)); -int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam)) - (DSA *, BN_CTX *, BIGNUM **, BIGNUM **); -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 *); -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)) - (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *); -int DSA_meth_set_mod_exp(DSA_METHOD *dsam, - int (*mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, - BN_MONT_CTX *)); -int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)) - (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - BN_CTX *, BN_MONT_CTX *); -int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, - int (*bn_mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); -int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *); -int DSA_meth_set_init(DSA_METHOD *dsam, int (*init)(DSA *)); -int (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *); -int DSA_meth_set_finish(DSA_METHOD *dsam, int (*finish) (DSA *)); -int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam)) - (DSA *, int, const unsigned char *, int, int *, unsigned long *, - BN_GENCB *); -int DSA_meth_set_paramgen(DSA_METHOD *dsam, - int (*paramgen) (DSA *, int, const unsigned char *, int, int *, - unsigned long *, BN_GENCB *)); -int (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *); -int DSA_meth_set_keygen(DSA_METHOD *dsam, int (*keygen) (DSA *)); - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin32/include/openssl/dsaerr.h b/openSSL/lin32/include/openssl/dsaerr.h deleted file mode 100644 index 495a1ac..0000000 --- a/openSSL/lin32/include/openssl/dsaerr.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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_DSAERR_H -# define HEADER_DSAERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_MISSING_PRIVATE_KEY 111 -# 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/openSSL/lin32/include/openssl/dtls1.h b/openSSL/lin32/include/openssl/dtls1.h deleted file mode 100644 index d55ca9c..0000000 --- a/openSSL/lin32/include/openssl/dtls1.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_DTLS1_H -# define HEADER_DTLS1_H - -#ifdef __cplusplus -extern "C" { -#endif - -# define DTLS1_VERSION 0xFEFF -# define DTLS1_2_VERSION 0xFEFD -# define DTLS_MIN_VERSION DTLS1_VERSION -# define DTLS_MAX_VERSION DTLS1_2_VERSION -# define DTLS1_VERSION_MAJOR 0xFE - -# define DTLS1_BAD_VER 0x0100 - -/* Special value for method supporting multiple versions */ -# 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 - -# define DTLS1_HM_HEADER_LENGTH 12 - -# define DTLS1_HM_BAD_FRAGMENT -2 -# define DTLS1_HM_FRAGMENT_RETRY -3 - -# define DTLS1_CCS_HEADER_LENGTH 1 - -# define DTLS1_AL_HEADER_LENGTH 2 - -/* Timeout multipliers */ -# define DTLS1_TMO_READ_COUNT 2 -# define DTLS1_TMO_WRITE_COUNT 2 - -# define DTLS1_TMO_ALERT_COUNT 12 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin32/include/openssl/e_os2.h b/openSSL/lin32/include/openssl/e_os2.h deleted file mode 100644 index 5c88e51..0000000 --- a/openSSL/lin32/include/openssl/e_os2.h +++ /dev/null @@ -1,301 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_E_OS2_H -# define HEADER_E_OS2_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/****************************************************************************** - * Detect operating systems. This probably needs completing. - * The result is that at least one OPENSSL_SYS_os macro should be defined. - * However, if none is defined, Unix is assumed. - **/ - -# define OPENSSL_SYS_UNIX - -/* --------------------- Microsoft operating systems ---------------------- */ - -/* - * Note that MSDOS actually denotes 32-bit environments running on top of - * MS-DOS, such as DJGPP one. - */ -# if defined(OPENSSL_SYS_MSDOS) -# undef OPENSSL_SYS_UNIX -# endif - -/* - * For 32 bit environment, there seems to be the CygWin environment and then - * all the others that try to do the same thing Microsoft does... - */ -/* - * UEFI lives here because it might be built with a Microsoft toolchain and - * we need to avoid the false positive match on Windows. - */ -# if defined(OPENSSL_SYS_UEFI) -# undef OPENSSL_SYS_UNIX -# elif defined(OPENSSL_SYS_UWIN) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32_UWIN -# else -# if defined(__CYGWIN__) || defined(OPENSSL_SYS_CYGWIN) -# define OPENSSL_SYS_WIN32_CYGWIN -# else -# if defined(_WIN32) || defined(OPENSSL_SYS_WIN32) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN32) -# define OPENSSL_SYS_WIN32 -# endif -# endif -# if defined(_WIN64) || defined(OPENSSL_SYS_WIN64) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN64) -# define OPENSSL_SYS_WIN64 -# endif -# endif -# if defined(OPENSSL_SYS_WINNT) -# undef OPENSSL_SYS_UNIX -# endif -# if defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# endif -# endif -# endif - -/* Anything that tries to look like Microsoft is "Windows" */ -# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN64) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_SYS_MSDOS -# define OPENSSL_SYS_MSDOS -# endif -# endif - -/* - * DLL settings. This part is a bit tough, because it's up to the - * application implementor how he or she will link the application, so it - * requires some macro to be used. - */ -# ifdef OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_OPT_WINDLL -# if defined(_WINDLL) /* This is used when building OpenSSL to - * indicate that DLL linkage should be used */ -# define OPENSSL_OPT_WINDLL -# endif -# endif -# endif - -/* ------------------------------- OpenVMS -------------------------------- */ -# if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYS_VMS) -# if !defined(OPENSSL_SYS_VMS) -# undef OPENSSL_SYS_UNIX -# endif -# define OPENSSL_SYS_VMS -# if defined(__DECC) -# define OPENSSL_SYS_VMS_DECC -# elif defined(__DECCXX) -# define OPENSSL_SYS_VMS_DECC -# define OPENSSL_SYS_VMS_DECCXX -# else -# define OPENSSL_SYS_VMS_NODECC -# endif -# endif - -/* -------------------------------- Unix ---------------------------------- */ -# ifdef OPENSSL_SYS_UNIX -# if defined(linux) || defined(__linux__) && !defined(OPENSSL_SYS_LINUX) -# define OPENSSL_SYS_LINUX -# endif -# if defined(_AIX) && !defined(OPENSSL_SYS_AIX) -# define OPENSSL_SYS_AIX -# endif -# endif - -/* -------------------------------- VOS ----------------------------------- */ -# if defined(__VOS__) && !defined(OPENSSL_SYS_VOS) -# define OPENSSL_SYS_VOS -# ifdef __HPPA__ -# define OPENSSL_SYS_VOS_HPPA -# endif -# ifdef __IA32__ -# define OPENSSL_SYS_VOS_IA32 -# endif -# endif - -/** - * That's it for OS-specific stuff - *****************************************************************************/ - -/* Specials for I/O an exit */ -# ifdef OPENSSL_SYS_MSDOS -# define OPENSSL_UNISTD_IO -# define OPENSSL_DECLARE_EXIT extern void exit(int); -# else -# define OPENSSL_UNISTD_IO OPENSSL_UNISTD -# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ -# endif - -/*- - * 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 and OPENSSL_EXTERN - * have some generally sensible values. - */ - -# if defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) -# define OPENSSL_EXPORT extern __declspec(dllexport) -# define OPENSSL_EXTERN extern __declspec(dllimport) -# else -# define OPENSSL_EXPORT extern -# define OPENSSL_EXTERN extern -# endif - -/*- - * Macros to allow global variables to be reached through function calls when - * required (if a shared library version requires it, for example. - * The way it's done allows definitions like this: - * - * // in foobar.c - * OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) - * // in foobar.h - * OPENSSL_DECLARE_GLOBAL(int,foobar); - * #define foobar OPENSSL_GLOBAL_REF(foobar) - */ -# ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \ - type *_shadow_##name(void) \ - { static type _hide_##name=value; return &_hide_##name; } -# 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) type _shadow_##name=value; -# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name -# define OPENSSL_GLOBAL_REF(name) _shadow_##name -# endif - -# ifdef _WIN32 -# ifdef _WIN64 -# define ossl_ssize_t __int64 -# define OSSL_SSIZE_MAX _I64_MAX -# else -# define ossl_ssize_t int -# define OSSL_SSIZE_MAX INT_MAX -# endif -# endif - -# if defined(OPENSSL_SYS_UEFI) && !defined(ossl_ssize_t) -# define ossl_ssize_t INTN -# define OSSL_SSIZE_MAX MAX_INTN -# endif - -# ifndef ossl_ssize_t -# define ossl_ssize_t ssize_t -# if defined(SSIZE_MAX) -# 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 - -# ifdef DEBUG_UNUSED -# define __owur __attribute__((__warn_unused_result__)) -# else -# define __owur -# endif - -/* Standard integer types */ -# if defined(OPENSSL_SYS_UEFI) -typedef INT8 int8_t; -typedef UINT8 uint8_t; -typedef INT16 int16_t; -typedef UINT16 uint16_t; -typedef INT32 int32_t; -typedef UINT32 uint32_t; -typedef INT64 int64_t; -typedef UINT64 uint64_t; -# elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - defined(__osf__) || defined(__sgi) || defined(__hpux) || \ - defined(OPENSSL_SYS_VMS) || defined (__OpenBSD__) -# include -# elif defined(_MSC_VER) && _MSC_VER<1600 -/* - * minimally required typdefs for systems not supporting inttypes.h or - * stdint.h: currently just older VC++ - */ -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef short int16_t; -typedef unsigned short uint16_t; -typedef int int32_t; -typedef unsigned int uint32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -# else -# include -# endif - -/* ossl_inline: portable inline definition usable in public headers */ -# if !defined(inline) && !defined(__cplusplus) -# if defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L - /* just use inline */ -# define ossl_inline inline -# elif defined(__GNUC__) && __GNUC__>=2 -# define ossl_inline __inline__ -# elif defined(_MSC_VER) - /* - * Visual Studio: inline is available in C++ only, however - * __inline is available for C, see - * http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx - */ -# define ossl_inline __inline -# else -# define ossl_inline -# endif -# else -# define ossl_inline inline -# endif - -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && \ - !defined(__cplusplus) -# define ossl_noreturn _Noreturn -# elif defined(__GNUC__) && __GNUC__ >= 2 -# define ossl_noreturn __attribute__((noreturn)) -# else -# 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 -#endif diff --git a/openSSL/lin32/include/openssl/ebcdic.h b/openSSL/lin32/include/openssl/ebcdic.h deleted file mode 100644 index aa01285..0000000 --- a/openSSL/lin32/include/openssl/ebcdic.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 1999-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_EBCDIC_H -# define HEADER_EBCDIC_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Avoid name clashes with other applications */ -# define os_toascii _openssl_os_toascii -# define os_toebcdic _openssl_os_toebcdic -# define ebcdic2ascii _openssl_ebcdic2ascii -# define ascii2ebcdic _openssl_ascii2ebcdic - -extern const unsigned char os_toascii[256]; -extern const unsigned char os_toebcdic[256]; -void *ebcdic2ascii(void *dest, const void *srce, size_t count); -void *ascii2ebcdic(void *dest, const void *srce, size_t count); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin32/include/openssl/ec.h b/openSSL/lin32/include/openssl/ec.h deleted file mode 100644 index 24baf53..0000000 --- a/openSSL/lin32/include/openssl/ec.h +++ /dev/null @@ -1,1484 +0,0 @@ -/* - * Copyright 2002-2021 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_EC_H -# define HEADER_EC_H - -# include - -# ifndef OPENSSL_NO_EC -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_ECC_MAX_FIELD_BITS -# define OPENSSL_ECC_MAX_FIELD_BITS 661 -# endif - -/** Enum for the point conversion form as defined in X9.62 (ECDSA) - * for the encoding of a elliptic curve point (x,y) */ -typedef enum { - /** the point is encoded as z||x, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_COMPRESSED = 2, - /** the point is encoded as z||x||y, where z is the octet 0x04 */ - POINT_CONVERSION_UNCOMPRESSED = 4, - /** the point is encoded as z||x||y, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_HYBRID = 6 -} point_conversion_form_t; - -typedef struct ec_method_st EC_METHOD; -typedef struct ec_group_st EC_GROUP; -typedef struct ec_point_st EC_POINT; -typedef struct ecpk_parameters_st ECPKPARAMETERS; -typedef struct ec_parameters_st ECPARAMETERS; - -/********************************************************************/ -/* EC_METHODs for curves over GF(p) */ -/********************************************************************/ - -/** Returns the basic GFp ec methods which provides the basis for the - * optimized methods. - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_simple_method(void); - -/** Returns GFp methods using montgomery multiplication. - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_mont_method(void); - -/** Returns GFp methods using optimized methods for NIST recommended curves - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nist_method(void); - -# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -/** Returns 64-bit optimized methods for nistp224 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp224_method(void); - -/** Returns 64-bit optimized methods for nistp256 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp256_method(void); - -/** Returns 64-bit optimized methods for nistp521 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp521_method(void); -# endif - -# ifndef OPENSSL_NO_EC2M -/********************************************************************/ -/* EC_METHOD for curves over GF(2^m) */ -/********************************************************************/ - -/** Returns the basic GF2m ec method - * \return EC_METHOD object - */ -const EC_METHOD *EC_GF2m_simple_method(void); - -# endif - -/********************************************************************/ -/* EC_GROUP functions */ -/********************************************************************/ - -/** Creates a new EC_GROUP object - * \param meth EC_METHOD to use - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); - -/** Frees a EC_GROUP object - * \param group EC_GROUP object to be freed. - */ -void EC_GROUP_free(EC_GROUP *group); - -/** Clears and frees a EC_GROUP object - * \param group EC_GROUP object to be cleared and freed. - */ -void EC_GROUP_clear_free(EC_GROUP *group); - -/** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. - * \param dst destination EC_GROUP object - * \param src source EC_GROUP object - * \return 1 on success and 0 if an error occurred. - */ -int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); - -/** Creates a new EC_GROUP object and copies the copies the content - * form src to the newly created EC_KEY object - * \param src source EC_GROUP object - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); - -/** Returns the EC_METHOD of the EC_GROUP object. - * \param group EC_GROUP object - * \return EC_METHOD used in this EC_GROUP object. - */ -const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); - -/** Returns the field type of the EC_METHOD. - * \param meth EC_METHOD object - * \return NID of the underlying field type OID. - */ -int EC_METHOD_get_field_type(const EC_METHOD *meth); - -/** Sets the generator and its order/cofactor of a EC_GROUP object. - * \param group EC_GROUP object - * \param generator EC_POINT object with the generator. - * \param order the order of the group generated by the generator. - * \param cofactor the index of the sub-group generated by the generator - * in the group of all points on the elliptic curve. - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, - const BIGNUM *order, const BIGNUM *cofactor); - -/** Returns the generator of a EC_GROUP object. - * \param group EC_GROUP object - * \return the currently used generator (possibly NULL). - */ -const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); - -/** Returns the montgomery data for order(Generator) - * \param group EC_GROUP object - * \return the currently used montgomery data (possibly NULL). -*/ -BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); - -/** Gets the order of a EC_GROUP - * \param group EC_GROUP object - * \param order BIGNUM to which the order is copied - * \param ctx unused - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); - -/** Gets the order of an EC_GROUP - * \param group EC_GROUP object - * \return the group order - */ -const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group); - -/** Gets the number of bits of the order of an EC_GROUP - * \param group EC_GROUP object - * \return number of bits of group order. - */ -int EC_GROUP_order_bits(const EC_GROUP *group); - -/** Gets the cofactor of a EC_GROUP - * \param group EC_GROUP object - * \param cofactor BIGNUM to which the cofactor is copied - * \param ctx unused - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, - BN_CTX *ctx); - -/** Gets the cofactor of an EC_GROUP - * \param group EC_GROUP object - * \return the group cofactor - */ -const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group); - -/** Sets the name of a EC_GROUP object - * \param group EC_GROUP object - * \param nid NID of the curve name OID - */ -void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); - -/** Returns the curve name of a EC_GROUP object - * \param group EC_GROUP object - * \return NID of the curve name OID or 0 if not set. - */ -int EC_GROUP_get_curve_name(const EC_GROUP *group); - -void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); -int EC_GROUP_get_asn1_flag(const EC_GROUP *group); - -void EC_GROUP_set_point_conversion_form(EC_GROUP *group, - point_conversion_form_t form); -point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); - -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 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 (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(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** 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 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(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 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_GF2m(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_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 - * \return number of bits needed to represent a field element - */ -int EC_GROUP_get_degree(const EC_GROUP *group); - -/** Checks whether the parameter in the EC_GROUP define a valid ec group - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if group is a valid ec group and 0 otherwise - */ -int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); - -/** Checks whether the discriminant of the elliptic curve is zero or not - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if the discriminant is not zero and 0 otherwise - */ -int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); - -/** Compares two EC_GROUP objects - * \param a first EC_GROUP object - * \param b second EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 0 if the groups are equal, 1 if not, or -1 on error - */ -int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); - -/* - * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after - * choosing an appropriate EC_METHOD - */ - -/** Creates a new EC_GROUP object with the specified parameters defined - * over GFp (defined by the equation y^2 = x^3 + a*x + b) - * \param p BIGNUM with the prime number - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Creates a new EC_GROUP object with the specified parameters defined - * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# endif - -/** Creates a EC_GROUP object with a curve specified by a NID - * \param nid NID of the OID of the curve name - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_by_curve_name(int nid); - -/** Creates a new EC_GROUP object from an ECPARAMETERS object - * \param params pointer to the ECPARAMETERS object - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params); - -/** 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 - * if an error occurred. - */ -ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, - ECPARAMETERS *params); - -/** Creates a new EC_GROUP object from an ECPKPARAMETERS object - * \param params pointer to an existing ECPKPARAMETERS object, or NULL - * \return newly created EC_GROUP object with specified curve, or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params); - -/** 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 - * if an error occurred. - */ -ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group, - ECPKPARAMETERS *params); - -/********************************************************************/ -/* handling of internal curves */ -/********************************************************************/ - -typedef struct { - int nid; - const char *comment; -} EC_builtin_curve; - -/* - * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all - * available curves or zero if a error occurred. In case r is not zero, - * nitems EC_builtin_curve structures are filled with the data of the first - * nitems internal groups - */ -size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); - -const char *EC_curve_nid2nist(int nid); -int EC_curve_nist2nid(const char *name); - -/********************************************************************/ -/* EC_POINT functions */ -/********************************************************************/ - -/** Creates a new EC_POINT object for the specified EC_GROUP - * \param group EC_GROUP the underlying EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_new(const EC_GROUP *group); - -/** Frees a EC_POINT object - * \param point EC_POINT object to be freed - */ -void EC_POINT_free(EC_POINT *point); - -/** Clears and frees a EC_POINT object - * \param point EC_POINT object to be cleared and freed - */ -void EC_POINT_clear_free(EC_POINT *point); - -/** Copies EC_POINT object - * \param dst destination EC_POINT object - * \param src source EC_POINT object - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); - -/** Creates a new EC_POINT object and copies the content of the supplied - * EC_POINT - * \param src source EC_POINT object - * \param group underlying the EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); - -/** Returns the EC_METHOD used in EC_POINT object - * \param point EC_POINT object - * \return the EC_METHOD used - */ -const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); - -/** Sets a point to infinity (neutral element) - * \param group underlying EC_GROUP object - * \param point EC_POINT to set to infinity - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); - -/** Sets the jacobian projective coordinates of a EC_POINT over GFp - * \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 z BIGNUM with the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - const BIGNUM *y, const BIGNUM *z, - BN_CTX *ctx); - -/** Gets the jacobian projective 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 z BIGNUM for the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BIGNUM *z, - BN_CTX *ctx); - -/** 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 - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -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); - -/** 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 - * \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 - */ -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 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_GF2m(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_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. 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 - * \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 - */ -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 - * \param p EC_POINT object - * \param form point conversion form - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, - point_conversion_form_t form, - unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Decodes a EC_POINT from a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, - const unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Encodes an EC_POINT object to an allocated octet string - * \param group underlying EC_GROUP object - * \param point EC_POINT object - * \param form point conversion form - * \param pbuf returns pointer to allocated buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, - point_conversion_form_t form, - unsigned char **pbuf, BN_CTX *ctx); - -/* other interfaces to point2oct/oct2point: */ -BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BIGNUM *, BN_CTX *); -EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, - EC_POINT *, BN_CTX *); -char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BN_CTX *); -EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, - EC_POINT *, BN_CTX *); - -/********************************************************************/ -/* functions for doing EC_POINT arithmetic */ -/********************************************************************/ - -/** Computes the sum of two EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = a + b) - * \param a EC_POINT object with the first summand - * \param b EC_POINT object with the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - const EC_POINT *b, BN_CTX *ctx); - -/** Computes the double of a EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = 2 * a) - * \param a EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - BN_CTX *ctx); - -/** Computes the inverse of a EC_POINT - * \param group underlying EC_GROUP object - * \param a EC_POINT object to be inverted (it's used for the result as well) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); - -/** Checks whether the point is the neutral element of the group - * \param group the underlying EC_GROUP object - * \param p EC_POINT object - * \return 1 if the point is the neutral element and 0 otherwise - */ -int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); - -/** Checks whether the point is on the curve - * \param group underlying EC_GROUP object - * \param point EC_POINT object to check - * \param ctx BN_CTX object (optional) - * \return 1 if the point is on the curve, 0 if not, or -1 on error - */ -int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, - BN_CTX *ctx); - -/** Compares two EC_POINTs - * \param group underlying EC_GROUP object - * \param a first EC_POINT object - * \param b second EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 if the points are not equal, 0 if they are, or -1 on error - */ -int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, - BN_CTX *ctx); - -int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); -int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, - EC_POINT *points[], BN_CTX *ctx); - -/** Computes r = generator * n + sum_{i=0}^{num-1} p[i] * m[i] - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param num number further summands - * \param p array of size num of EC_POINT objects - * \param m array of size num of BIGNUM objects - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, - size_t num, const EC_POINT *p[], const BIGNUM *m[], - BN_CTX *ctx); - -/** Computes r = generator * n + q * m - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param q EC_POINT object with the first factor of the second summand - * \param m BIGNUM with the second factor of the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, - const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); - -/** Stores multiples of generator for faster point multiplication - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); - -/** Reports whether a precomputation has been done - * \param group EC_GROUP object - * \return 1 if a pre-computation has been done and 0 otherwise - */ -int EC_GROUP_have_precompute_mult(const EC_GROUP *group); - -/********************************************************************/ -/* ASN1 stuff */ -/********************************************************************/ - -DECLARE_ASN1_ITEM(ECPKPARAMETERS) -DECLARE_ASN1_ALLOC_FUNCTIONS(ECPKPARAMETERS) -DECLARE_ASN1_ITEM(ECPARAMETERS) -DECLARE_ASN1_ALLOC_FUNCTIONS(ECPARAMETERS) - -/* - * EC_GROUP_get_basis_type() returns the NID of the basis type used to - * represent the field elements - */ -int EC_GROUP_get_basis_type(const EC_GROUP *); -# ifndef OPENSSL_NO_EC2M -int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); -int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, - unsigned int *k2, unsigned int *k3); -# endif - -# define OPENSSL_EC_EXPLICIT_CURVE 0x000 -# define OPENSSL_EC_NAMED_CURVE 0x001 - -EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); -int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); - -# define d2i_ECPKParameters_bio(bp,x) \ - ASN1_d2i_bio_of(EC_GROUP, NULL, d2i_ECPKParameters, bp, x) -# define i2d_ECPKParameters_bio(bp,x) \ - ASN1_i2d_bio_of_const(EC_GROUP, i2d_ECPKParameters, bp, x) -# define d2i_ECPKParameters_fp(fp,x) \ - (EC_GROUP *)ASN1_d2i_fp(NULL, (d2i_of_void *)d2i_ECPKParameters, (fp), \ - (void **)(x)) -# define i2d_ECPKParameters_fp(fp,x) \ - ASN1_i2d_fp((i2d_of_void *)i2d_ECPKParameters, (fp), (void *)(x)) - -int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); -# ifndef OPENSSL_NO_STDIO -int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); -# endif - -/********************************************************************/ -/* EC_KEY functions */ -/********************************************************************/ - -/* some values for the encoding_flag */ -# define EC_PKEY_NO_PARAMETERS 0x001 -# define EC_PKEY_NO_PUBKEY 0x002 - -/* some values for the flags field */ -# define EC_FLAG_NON_FIPS_ALLOW 0x1 -# define EC_FLAG_FIPS_CHECKED 0x2 -# define EC_FLAG_COFACTOR_ECDH 0x1000 - -/** Creates a new EC_KEY object. - * \return EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_new(void); - -int EC_KEY_get_flags(const EC_KEY *key); - -void EC_KEY_set_flags(EC_KEY *key, int flags); - -void EC_KEY_clear_flags(EC_KEY *key, int flags); - -int EC_KEY_decoded_from_explicit_params(const EC_KEY *key); - -/** Creates a new EC_KEY object using a named curve as underlying - * EC_GROUP object. - * \param nid NID of the named curve. - * \return EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_new_by_curve_name(int nid); - -/** Frees a EC_KEY object. - * \param key EC_KEY object to be freed. - */ -void EC_KEY_free(EC_KEY *key); - -/** Copies a EC_KEY object. - * \param dst destination EC_KEY object - * \param src src EC_KEY object - * \return dst or NULL if an error occurred. - */ -EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); - -/** Creates a new EC_KEY object and copies the content from src to it. - * \param src the source EC_KEY object - * \return newly created EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_dup(const EC_KEY *src); - -/** Increases the internal reference count of a EC_KEY object. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -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). - */ -const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); - -/** Sets the EC_GROUP of a EC_KEY object. - * \param key EC_KEY object - * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY - * object will use an own copy of the EC_GROUP). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); - -/** Returns the private key of a EC_KEY object. - * \param key EC_KEY object - * \return a BIGNUM with the private key (possibly NULL). - */ -const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); - -/** Sets the private key of a EC_KEY object. - * \param key EC_KEY object - * \param prv BIGNUM with the private key (note: the EC_KEY object - * will use an own copy of the BIGNUM). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); - -/** Returns the public key of a EC_KEY object. - * \param key the EC_KEY object - * \return a EC_POINT object with the public key (possibly NULL) - */ -const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); - -/** Sets the public key of a EC_KEY object. - * \param key EC_KEY object - * \param pub EC_POINT object with the public key (note: the EC_KEY object - * will use an own copy of the EC_POINT object). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); - -unsigned EC_KEY_get_enc_flags(const EC_KEY *key); -void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); -point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); -void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); - -#define EC_KEY_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EC_KEY, l, p, newf, dupf, freef) -int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg); -void *EC_KEY_get_ex_data(const EC_KEY *key, int idx); - -/* wrapper functions for the underlying EC_GROUP object */ -void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); - -/** Creates a table of pre-computed multiples of the generator to - * accelerate further EC_KEY operations. - * \param key EC_KEY object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); - -/** Creates a new ec private (and optional a new public) key. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_generate_key(EC_KEY *key); - -/** Verifies that a private and/or public key is valid. - * \param key the EC_KEY object - * \return 1 on success and 0 otherwise. - */ -int EC_KEY_check_key(const EC_KEY *key); - -/** Indicates if an EC_KEY can be used for signing. - * \param eckey the EC_KEY object - * \return 1 if can can sign and 0 otherwise. - */ -int EC_KEY_can_sign(const EC_KEY *eckey); - -/** Sets a public key from affine coordinates performing - * necessary NIST PKV tests. - * \param key the EC_KEY object - * \param x public key x coordinate - * \param y public key y coordinate - * \return 1 on success and 0 otherwise. - */ -int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, - BIGNUM *y); - -/** Encodes an EC_KEY public key to an allocated octet string - * \param key key to encode - * \param form point conversion form - * \param pbuf returns pointer to allocated buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form, - unsigned char **pbuf, BN_CTX *ctx); - -/** Decodes a EC_KEY public key from a octet string - * \param key key to decode - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ - -int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len, - BN_CTX *ctx); - -/** Decodes an EC_KEY private key from an octet string - * \param key key to decode - * \param buf memory buffer with the encoded private key - * \param len length of the encoded key - * \return 1 on success and 0 if an error occurred - */ - -int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, size_t len); - -/** Encodes a EC_KEY private key to an octet string - * \param key key to encode - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \return the length of the encoded octet string or 0 if an error occurred - */ - -size_t EC_KEY_priv2oct(const EC_KEY *key, unsigned char *buf, size_t len); - -/** Encodes an EC_KEY private key to an allocated octet string - * \param eckey key to encode - * \param pbuf returns pointer to allocated buffer - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf); - -/********************************************************************/ -/* de- and encoding functions for SEC1 ECPrivateKey */ -/********************************************************************/ - -/** Decodes a private key from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded private key - * \param len length of the DER encoded private key - * \return the decoded private key or NULL if an error occurred. - */ -EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes a private key object and stores the result in a buffer. - * \param key the EC_KEY object to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC parameters */ -/********************************************************************/ - -/** Decodes ec parameter from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded ec parameters - * \param len length of the DER encoded ec parameters - * \return a EC_KEY object with the decoded parameters or NULL if an error - * occurred. - */ -EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes ec parameter and stores the result in a buffer. - * \param key the EC_KEY object with ec parameters to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -int i2d_ECParameters(EC_KEY *key, unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC public key */ -/* (octet string, not DER -- hence 'o2i' and 'i2o') */ -/********************************************************************/ - -/** Decodes a ec public key from a octet string. - * \param key a pointer to a EC_KEY object which should be used - * \param in memory buffer with the encoded public key - * \param len length of the encoded public key - * \return EC_KEY object with decoded public key or NULL if an error - * occurred. - */ -EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes a ec public key in an octet string. - * \param key the EC_KEY object with the public key - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred - */ -int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out); - -/** Prints out the ec parameters on human readable form. - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -int ECParameters_print(BIO *bp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); - -# ifndef OPENSSL_NO_STDIO -/** Prints out the ec parameters on human readable form. - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -int ECParameters_print_fp(FILE *fp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); - -# endif - -const EC_KEY_METHOD *EC_KEY_OpenSSL(void); -const EC_KEY_METHOD *EC_KEY_get_default_method(void); -void EC_KEY_set_default_method(const EC_KEY_METHOD *meth); -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, - const EVP_MD *md); - -int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, - const EC_KEY *ecdh, - void *(*KDF) (const void *in, size_t inlen, - void *out, size_t *outlen)); - -typedef struct ECDSA_SIG_st ECDSA_SIG; - -/** Allocates and initialize a ECDSA_SIG structure - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_SIG_new(void); - -/** frees a ECDSA_SIG structure - * \param sig pointer to the ECDSA_SIG structure - */ -void ECDSA_SIG_free(ECDSA_SIG *sig); - -/** DER encode content of ECDSA_SIG object (note: this function modifies *pp - * (*pp += length of the DER encoded signature)). - * \param sig pointer to the ECDSA_SIG object - * \param pp pointer to a unsigned char pointer for the output or NULL - * \return the length of the DER encoded ECDSA_SIG object or a negative value - * on error - */ -int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); - -/** Decodes a DER encoded ECDSA signature (note: this function changes *pp - * (*pp += len)). - * \param sig pointer to ECDSA_SIG pointer (may be NULL) - * \param pp memory buffer with the DER encoded signature - * \param len length of the buffer - * \return pointer to the decoded ECDSA_SIG structure (or NULL) - */ -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 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 structure - * \param r pointer to BIGNUM for r (may be NULL) - * \param s pointer to BIGNUM for s (may be NULL) - */ -int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); - -/** Computes the ECDSA signature of the given hash value using - * the supplied private key and returns the created signature. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, - EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optional), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, - const BIGNUM *kinv, const BIGNUM *rp, - EC_KEY *eckey); - -/** Verifies that the supplied signature is a valid ECDSA - * signature of the supplied hash value using the supplied public key. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param sig ECDSA_SIG structure - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, - const ECDSA_SIG *sig, EC_KEY *eckey); - -/** Precompute parts of the signing operation - * \param eckey EC_KEY object containing a private EC key - * \param ctx BN_CTX object (optional) - * \param kinv BIGNUM pointer for the inverse of k - * \param rp BIGNUM pointer for x coordinate of k * generator - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig memory for the DER encoded created signature - * \param siglen pointer to the length of the returned signature - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig buffer to hold the DER encoded signature - * \param siglen pointer to the length of the returned signature - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optional), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); - -/** Verifies that the given signature is valid ECDSA signature - * of the supplied hash value using the specified public key. - * \param type this parameter is ignored - * \param dgst pointer to the hash value - * \param dgstlen length of the hash value - * \param sig pointer to the DER encoded signature - * \param siglen length of the DER encoded signature - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, - const unsigned char *sig, int siglen, EC_KEY *eckey); - -/** Returns the maximum length of the DER encoded signature - * \param eckey EC_KEY object - * \return numbers of bytes required for the DER encoded signature - */ -int ECDSA_size(const EC_KEY *eckey); - -/********************************************************************/ -/* EC_KEY_METHOD constructors, destructors, writers and accessors */ -/********************************************************************/ - -EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth); -void EC_KEY_METHOD_free(EC_KEY_METHOD *meth); -void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth, - int (*init)(EC_KEY *key), - void (*finish)(EC_KEY *key), - int (*copy)(EC_KEY *dest, const EC_KEY *src), - int (*set_group)(EC_KEY *key, const EC_GROUP *grp), - int (*set_private)(EC_KEY *key, - const BIGNUM *priv_key), - int (*set_public)(EC_KEY *key, - const EC_POINT *pub_key)); - -void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, - int (*keygen)(EC_KEY *key)); - -void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth, - int (*ckey)(unsigned char **psec, - size_t *pseclen, - const EC_POINT *pub_key, - const EC_KEY *ecdh)); - -void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth, - int (*sign)(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *r, - EC_KEY *eckey), - int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp), - ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, - int dgst_len, - const BIGNUM *in_kinv, - const BIGNUM *in_r, - EC_KEY *eckey)); - -void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth, - int (*verify)(int type, const unsigned - char *dgst, int dgst_len, - const unsigned char *sigbuf, - int sig_len, EC_KEY *eckey), - int (*verify_sig)(const unsigned char *dgst, - int dgst_len, - const ECDSA_SIG *sig, - EC_KEY *eckey)); - -void EC_KEY_METHOD_get_init(const EC_KEY_METHOD *meth, - int (**pinit)(EC_KEY *key), - void (**pfinish)(EC_KEY *key), - int (**pcopy)(EC_KEY *dest, const EC_KEY *src), - int (**pset_group)(EC_KEY *key, - const EC_GROUP *grp), - int (**pset_private)(EC_KEY *key, - const BIGNUM *priv_key), - int (**pset_public)(EC_KEY *key, - const EC_POINT *pub_key)); - -void EC_KEY_METHOD_get_keygen(const EC_KEY_METHOD *meth, - int (**pkeygen)(EC_KEY *key)); - -void EC_KEY_METHOD_get_compute_key(const EC_KEY_METHOD *meth, - int (**pck)(unsigned char **psec, - size_t *pseclen, - const EC_POINT *pub_key, - const EC_KEY *ecdh)); - -void EC_KEY_METHOD_get_sign(const EC_KEY_METHOD *meth, - int (**psign)(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *r, - EC_KEY *eckey), - int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp), - ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, - int dgst_len, - const BIGNUM *in_kinv, - const BIGNUM *in_r, - EC_KEY *eckey)); - -void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, - int (**pverify)(int type, const unsigned - char *dgst, int dgst_len, - const unsigned char *sigbuf, - int sig_len, EC_KEY *eckey), - int (**pverify_sig)(const unsigned char *dgst, - int dgst_len, - const ECDSA_SIG *sig, - EC_KEY *eckey)); - -# define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) - -# ifndef __cplusplus -# if defined(__SUNPRO_C) -# if __SUNPRO_C >= 0x520 -# pragma error_messages (default,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) -# endif -# endif -# endif - -# define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) - -# define EVP_PKEY_CTX_set_ec_param_enc(ctx, flag) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_EC_PARAM_ENC, flag, NULL) - -# define EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx, flag) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_ECDH_COFACTOR, flag, NULL) - -# define EVP_PKEY_CTX_get_ecdh_cofactor_mode(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_ECDH_COFACTOR, -2, NULL) - -# define EVP_PKEY_CTX_set_ecdh_kdf_type(ctx, kdf) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_TYPE, kdf, NULL) - -# define EVP_PKEY_CTX_get_ecdh_kdf_type(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_TYPE, -2, NULL) - -# 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)) - -# 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)) - -# define EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_OUTLEN, len, NULL) - -# 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)) - -# 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)) - -# 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)) - -/* 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) -# define EVP_PKEY_CTRL_EC_ECDH_COFACTOR (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_EC_KDF_TYPE (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_GET_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 7) -# 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_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 - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin32/include/openssl/ecdh.h b/openSSL/lin32/include/openssl/ecdh.h deleted file mode 100644 index 681f3d5..0000000 --- a/openSSL/lin32/include/openssl/ecdh.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2002-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 - */ - -#include diff --git a/openSSL/lin32/include/openssl/ecdsa.h b/openSSL/lin32/include/openssl/ecdsa.h deleted file mode 100644 index 681f3d5..0000000 --- a/openSSL/lin32/include/openssl/ecdsa.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2002-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 - */ - -#include diff --git a/openSSL/lin32/include/openssl/ecerr.h b/openSSL/lin32/include/openssl/ecerr.h deleted file mode 100644 index 5173811..0000000 --- a/openSSL/lin32/include/openssl/ecerr.h +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_OID 167 -# 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/openSSL/lin32/include/openssl/engine.h b/openSSL/lin32/include/openssl/engine.h deleted file mode 100644 index d707eae..0000000 --- a/openSSL/lin32/include/openssl/engine.h +++ /dev/null @@ -1,752 +0,0 @@ -/* - * Copyright 2000-2022 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ENGINE_H -# define HEADER_ENGINE_H - -# include - -# ifndef OPENSSL_NO_ENGINE -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# include -# include -# include -# include -# include -# endif -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* - * These flags are used to control combinations of algorithm (methods) by - * bitwise "OR"ing. - */ -# define ENGINE_METHOD_RSA (unsigned int)0x0001 -# define ENGINE_METHOD_DSA (unsigned int)0x0002 -# define ENGINE_METHOD_DH (unsigned int)0x0004 -# define ENGINE_METHOD_RAND (unsigned int)0x0008 -# define ENGINE_METHOD_CIPHERS (unsigned int)0x0040 -# define ENGINE_METHOD_DIGESTS (unsigned int)0x0080 -# define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200 -# define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400 -# define ENGINE_METHOD_EC (unsigned int)0x0800 -/* Obvious all-or-nothing cases. */ -# define ENGINE_METHOD_ALL (unsigned int)0xFFFF -# define ENGINE_METHOD_NONE (unsigned int)0x0000 - -/* - * This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used - * internally to control registration of ENGINE implementations, and can be - * set by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to - * initialise registered ENGINEs if they are not already initialised. - */ -# define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001 - -/* ENGINE flags that can be set by ENGINE_set_flags(). */ -/* Not used */ -/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ - -/* - * This flag is for ENGINEs that wish to handle the various 'CMD'-related - * control commands on their own. Without this flag, ENGINE_ctrl() handles - * these control commands on behalf of the ENGINE using their "cmd_defns" - * data. - */ -# define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002 - -/* - * This flag is for ENGINEs who return new duplicate structures when found - * via "ENGINE_by_id()". When an ENGINE must store state (eg. if - * ENGINE_ctrl() commands are called in sequence as part of some stateful - * process like key-generation setup and execution), it can set this flag - - * then each attempt to obtain the ENGINE will result in it being copied into - * a new structure. Normally, ENGINEs don't declare this flag so - * ENGINE_by_id() just increments the existing ENGINE's structural reference - * count. - */ -# define ENGINE_FLAGS_BY_ID_COPY (int)0x0004 - -/* - * This flag if for an ENGINE that does not want its methods registered as - * part of ENGINE_register_all_complete() for example if the methods are not - * usable as default methods. - */ - -# define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008 - -/* - * ENGINEs can support their own command types, and these flags are used in - * ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input - * each command expects. Currently only numeric and string input is - * supported. If a control command supports none of the _NUMERIC, _STRING, or - * _NO_INPUT options, then it is regarded as an "internal" control command - - * and not for use in config setting situations. As such, they're not - * available to the ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() - * access. Changes to this list of 'command types' should be reflected - * carefully in ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). - */ - -/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */ -# define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 -/* - * accepts string input (cast from 'void*' to 'const char *', 4th parameter - * to ENGINE_ctrl) - */ -# define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 -/* - * Indicates that the control command takes *no* input. Ie. the control - * command is unparameterised. - */ -# define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 -/* - * Indicates that the control command is internal. This control command won't - * be shown in any output, and is only usable through the ENGINE_ctrl_cmd() - * function. - */ -# define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 - -/* - * NB: These 3 control commands are deprecated and should not be used. - * ENGINEs relying on these commands should compile conditional support for - * compatibility (eg. if these symbols are defined) but should also migrate - * the same functionality to their own ENGINE-specific control functions that - * can be "discovered" by calling applications. The fact these control - * commands wouldn't be "executable" (ie. usable by text-based config) - * doesn't change the fact that application code can find and use them - * without requiring per-ENGINE hacking. - */ - -/* - * These flags are used to tell the ctrl function what should be done. All - * command numbers are shared between all engines, even if some don't make - * sense to some engines. In such a case, they do nothing but return the - * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. - */ -# define ENGINE_CTRL_SET_LOGSTREAM 1 -# define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2 -# define ENGINE_CTRL_HUP 3/* Close and reinitialise - * any handles/connections - * etc. */ -# define ENGINE_CTRL_SET_USER_INTERFACE 4/* Alternative to callback */ -# define ENGINE_CTRL_SET_CALLBACK_DATA 5/* User-specific data, used - * when calling the password - * callback and the user - * interface */ -# define ENGINE_CTRL_LOAD_CONFIGURATION 6/* Load a configuration, - * given a string that - * represents a file name - * or so */ -# define ENGINE_CTRL_LOAD_SECTION 7/* Load data from a given - * section in the already - * loaded configuration */ - -/* - * These control commands allow an application to deal with an arbitrary - * engine in a dynamic way. Warn: Negative return values indicate errors FOR - * THESE COMMANDS because zero is used to indicate 'end-of-list'. Other - * commands, including ENGINE-specific command types, return zero for an - * error. An ENGINE can choose to implement these ctrl functions, and can - * internally manage things however it chooses - it does so by setting the - * ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise - * the ENGINE_ctrl() code handles this on the ENGINE's behalf using the - * cmd_defns data (set using ENGINE_set_cmd_defns()). This means an ENGINE's - * ctrl() handler need only implement its own commands - the above "meta" - * commands will be taken care of. - */ - -/* - * Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", - * then all the remaining control commands will return failure, so it is - * worth checking this first if the caller is trying to "discover" the - * engine's capabilities and doesn't want errors generated unnecessarily. - */ -# define ENGINE_CTRL_HAS_CTRL_FUNCTION 10 -/* - * Returns a positive command number for the first command supported by the - * engine. Returns zero if no ctrl commands are supported. - */ -# define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 -/* - * The 'long' argument specifies a command implemented by the engine, and the - * return value is the next command supported, or zero if there are no more. - */ -# define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 -/* - * The 'void*' argument is a command name (cast from 'const char *'), and the - * return value is the command that corresponds to it. - */ -# define ENGINE_CTRL_GET_CMD_FROM_NAME 13 -/* - * The next two allow a command to be converted into its corresponding string - * form. In each case, the 'long' argument supplies the command. In the - * NAME_LEN case, the return value is the length of the command name (not - * counting a trailing EOL). In the NAME case, the 'void*' argument must be a - * string buffer large enough, and it will be populated with the name of the - * command (WITH a trailing EOL). - */ -# define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 -# define ENGINE_CTRL_GET_NAME_FROM_CMD 15 -/* The next two are similar but give a "short description" of a command. */ -# define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 -# define ENGINE_CTRL_GET_DESC_FROM_CMD 17 -/* - * With this command, the return value is the OR'd combination of - * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given - * engine-specific ctrl command expects. - */ -# define ENGINE_CTRL_GET_CMD_FLAGS 18 - -/* - * ENGINE implementations should start the numbering of their own control - * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). - */ -# define ENGINE_CMD_BASE 200 - -/* - * NB: These 2 nCipher "chil" control commands are deprecated, and their - * functionality is now available through ENGINE-specific control commands - * (exposed through the above-mentioned 'CMD'-handling). Code using these 2 - * commands should be migrated to the more general command handling before - * these are removed. - */ - -/* Flags specific to the nCipher "chil" engine */ -# define ENGINE_CTRL_CHIL_SET_FORKCHECK 100 - /* - * Depending on the value of the (long)i argument, this sets or - * unsets the SimpleForkCheck flag in the CHIL API to enable or - * disable checking and workarounds for applications that fork(). - */ -# define ENGINE_CTRL_CHIL_NO_LOCKING 101 - /* - * This prevents the initialisation function from providing mutex - * callbacks to the nCipher library. - */ - -/* - * If an ENGINE supports its own specific control commands and wishes the - * framework to handle the above 'ENGINE_CMD_***'-manipulation commands on - * its behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN - * entries to ENGINE_set_cmd_defns(). It should also implement a ctrl() - * handler that supports the stated commands (ie. the "cmd_num" entries as - * described by the array). NB: The array must be ordered in increasing order - * of cmd_num. "null-terminated" means that the last ENGINE_CMD_DEFN element - * has cmd_num set to zero and/or cmd_name set to NULL. - */ -typedef struct ENGINE_CMD_DEFN_st { - unsigned int cmd_num; /* The command number */ - const char *cmd_name; /* The command name itself */ - const char *cmd_desc; /* A short description of the command */ - unsigned int cmd_flags; /* The input the command expects */ -} ENGINE_CMD_DEFN; - -/* Generic function pointer */ -typedef int (*ENGINE_GEN_FUNC_PTR) (void); -/* Generic function pointer taking no arguments */ -typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *); -/* Specific control function pointer */ -typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long, void *, - void (*f) (void)); -/* Generic load_key function pointer */ -typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, - UI_METHOD *ui_method, - void *callback_data); -typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl, - STACK_OF(X509_NAME) *ca_dn, - X509 **pcert, EVP_PKEY **pkey, - STACK_OF(X509) **pother, - UI_METHOD *ui_method, - void *callback_data); -/*- - * These callback types are for an ENGINE's handler for cipher and digest logic. - * These handlers have these prototypes; - * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); - * int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); - * Looking at how to implement these handlers in the case of cipher support, if - * the framework wants the EVP_CIPHER for 'nid', it will call; - * foo(e, &p_evp_cipher, NULL, nid); (return zero for failure) - * If the framework wants a list of supported 'nid's, it will call; - * foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error) - */ -/* - * Returns to a pointer to the array of supported cipher 'nid's. If the - * second parameter is non-NULL it is set to the size of the returned array. - */ -typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *, const EVP_CIPHER **, - const int **, int); -typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *, const EVP_MD **, const int **, - int); -typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **, - const int **, int); -typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **, - const int **, int); -/* - * STRUCTURE functions ... all of these functions deal with pointers to - * ENGINE structures where the pointers have a "structural reference". This - * means that their reference is to allowed access to the structure but it - * does not imply that the structure is functional. To simply increment or - * decrement the structural reference count, use ENGINE_by_id and - * ENGINE_free. NB: This is not required when iterating using ENGINE_get_next - * as it will automatically decrement the structural reference count of the - * "current" ENGINE and increment the structural reference count of the - * ENGINE it returns (unless it is NULL). - */ - -/* Get the first/last "ENGINE" type available. */ -ENGINE *ENGINE_get_first(void); -ENGINE *ENGINE_get_last(void); -/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */ -ENGINE *ENGINE_get_next(ENGINE *e); -ENGINE *ENGINE_get_prev(ENGINE *e); -/* Add another "ENGINE" type into the array. */ -int ENGINE_add(ENGINE *e); -/* Remove an existing "ENGINE" type from the array. */ -int ENGINE_remove(ENGINE *e); -/* Retrieve an engine from the list by its unique "id" value. */ -ENGINE *ENGINE_by_id(const char *id); - -#if OPENSSL_API_COMPAT < 0x10100000L -# define ENGINE_load_openssl() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_OPENSSL, NULL) -# define ENGINE_load_dynamic() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_DYNAMIC, NULL) -# ifndef OPENSSL_NO_STATIC_ENGINE -# define ENGINE_load_padlock() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_PADLOCK, NULL) -# define ENGINE_load_capi() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CAPI, NULL) -# define ENGINE_load_afalg() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_AFALG, NULL) -# endif -# define ENGINE_load_cryptodev() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CRYPTODEV, NULL) -# define ENGINE_load_rdrand() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_RDRAND, NULL) -#endif -void ENGINE_load_builtin_engines(void); - -/* - * Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation - * "registry" handling. - */ -unsigned int ENGINE_get_table_flags(void); -void ENGINE_set_table_flags(unsigned int flags); - -/*- Manage registration of ENGINEs per "table". For each type, there are 3 - * functions; - * ENGINE_register_***(e) - registers the implementation from 'e' (if it has one) - * ENGINE_unregister_***(e) - unregister the implementation from 'e' - * ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list - * Cleanup is automatically registered from each table when required. - */ - -int ENGINE_register_RSA(ENGINE *e); -void ENGINE_unregister_RSA(ENGINE *e); -void ENGINE_register_all_RSA(void); - -int ENGINE_register_DSA(ENGINE *e); -void ENGINE_unregister_DSA(ENGINE *e); -void ENGINE_register_all_DSA(void); - -int ENGINE_register_EC(ENGINE *e); -void ENGINE_unregister_EC(ENGINE *e); -void ENGINE_register_all_EC(void); - -int ENGINE_register_DH(ENGINE *e); -void ENGINE_unregister_DH(ENGINE *e); -void ENGINE_register_all_DH(void); - -int ENGINE_register_RAND(ENGINE *e); -void ENGINE_unregister_RAND(ENGINE *e); -void ENGINE_register_all_RAND(void); - -int ENGINE_register_ciphers(ENGINE *e); -void ENGINE_unregister_ciphers(ENGINE *e); -void ENGINE_register_all_ciphers(void); - -int ENGINE_register_digests(ENGINE *e); -void ENGINE_unregister_digests(ENGINE *e); -void ENGINE_register_all_digests(void); - -int ENGINE_register_pkey_meths(ENGINE *e); -void ENGINE_unregister_pkey_meths(ENGINE *e); -void ENGINE_register_all_pkey_meths(void); - -int ENGINE_register_pkey_asn1_meths(ENGINE *e); -void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); -void ENGINE_register_all_pkey_asn1_meths(void); - -/* - * These functions register all support from the above categories. Note, use - * of these functions can result in static linkage of code your application - * may not need. If you only need a subset of functionality, consider using - * more selective initialisation. - */ -int ENGINE_register_complete(ENGINE *e); -int ENGINE_register_all_complete(void); - -/* - * 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 - * (rather than functional) reference to an engine, but many control commands - * may require the engine be functional. The caller should be aware of trying - * commands that require an operational ENGINE, and only use functional - * references in such situations. - */ -int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void)); - -/* - * This function tests if an ENGINE-specific command is usable as a - * "setting". Eg. in an application's config file that gets processed through - * ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to - * ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). - */ -int ENGINE_cmd_is_executable(ENGINE *e, int cmd); - -/* - * This function works like ENGINE_ctrl() with the exception of taking a - * command name instead of a command number, and can handle optional - * commands. See the comment on ENGINE_ctrl_cmd_string() for an explanation - * on how to use the cmd_name and cmd_optional. - */ -int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, - long i, void *p, void (*f) (void), int cmd_optional); - -/* - * This function passes a command-name and argument to an ENGINE. The - * cmd_name is converted to a command number and the control command is - * called using 'arg' as an argument (unless the ENGINE doesn't support such - * a command, in which case no control command is called). The command is - * checked for input flags, and if necessary the argument will be converted - * to a numeric value. If cmd_optional is non-zero, then if the ENGINE - * doesn't support the given cmd_name the return value will be success - * anyway. This function is intended for applications to use so that users - * (or config files) can supply engine-specific config data to the ENGINE at - * run-time to control behaviour of specific engines. As such, it shouldn't - * be used for calling ENGINE_ctrl() functions that return data, deal with - * binary data, or that are otherwise supposed to be used directly through - * ENGINE_ctrl() in application code. Any "return" data from an ENGINE_ctrl() - * operation in this function will be lost - the return value is interpreted - * as failure if the return value is zero, success otherwise, and this - * function returns a boolean value as a result. In other words, vendors of - * 'ENGINE'-enabled devices should write ENGINE implementations with - * parameterisations that work in this scheme, so that compliant ENGINE-based - * applications can work consistently with the same configuration for the - * same ENGINE-enabled devices, across applications. - */ -int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, - int cmd_optional); - -/* - * These functions are useful for manufacturing new ENGINE structures. They - * don't address reference counting at all - one uses them to populate an - * ENGINE structure with personalised implementations of things prior to - * using it directly or adding it to the builtin ENGINE list in OpenSSL. - * These are also here so that the ENGINE structure doesn't have to be - * exposed and break binary compatibility! - */ -ENGINE *ENGINE_new(void); -int ENGINE_free(ENGINE *e); -int ENGINE_up_ref(ENGINE *e); -int ENGINE_set_id(ENGINE *e, const char *id); -int ENGINE_set_name(ENGINE *e, const char *name); -int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); -int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); -int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ecdsa_meth); -int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); -int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); -int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f); -int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); -int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); -int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); -int ENGINE_set_load_privkey_function(ENGINE *e, - ENGINE_LOAD_KEY_PTR loadpriv_f); -int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); -int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, - ENGINE_SSL_CLIENT_CERT_PTR - loadssl_f); -int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); -int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); -int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); -int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); -int ENGINE_set_flags(ENGINE *e, int flags); -int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns); -/* These functions allow control over any per-structure ENGINE data. */ -#define ENGINE_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ENGINE, l, p, newf, dupf, freef) -int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); -void *ENGINE_get_ex_data(const ENGINE *e, int idx); - -#if OPENSSL_API_COMPAT < 0x10100000L -/* - * This function previously cleaned up anything that needs it. Auto-deinit will - * now take care of it so it is no longer required to call this function. - */ -# define ENGINE_cleanup() while(0) continue -#endif - -/* - * These return values from within the ENGINE structure. These can be useful - * with functional references as well as structural references - it depends - * which you obtained. Using the result for functional purposes if you only - * obtained a structural reference may be problematic! - */ -const char *ENGINE_get_id(const ENGINE *e); -const char *ENGINE_get_name(const ENGINE *e); -const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); -const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); -const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e); -const DH_METHOD *ENGINE_get_DH(const ENGINE *e); -const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); -ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); -ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); -ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); -ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE - *e); -ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); -ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); -ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); -ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); -const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); -const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); -const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, - const char *str, - int len); -const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, - const char *str, - int len); -const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); -int ENGINE_get_flags(const ENGINE *e); - -/* - * FUNCTIONAL functions. These functions deal with ENGINE structures that - * have (or will) be initialised for use. Broadly speaking, the structural - * functions are useful for iterating the list of available engine types, - * creating new engine types, and other "list" operations. These functions - * actually deal with ENGINEs that are to be used. As such these functions - * can fail (if applicable) when particular engines are unavailable - eg. if - * a hardware accelerator is not attached or not functioning correctly. Each - * ENGINE has 2 reference counts; structural and functional. Every time a - * functional reference is obtained or released, a corresponding structural - * reference is automatically obtained or released too. - */ - -/* - * Initialise a engine type for use (or up its reference count if it's - * already in use). This will fail if the engine is not currently operational - * and cannot initialise. - */ -int ENGINE_init(ENGINE *e); -/* - * Free a functional reference to a engine type. This does not require a - * corresponding call to ENGINE_free as it also releases a structural - * reference. - */ -int ENGINE_finish(ENGINE *e); - -/* - * The following functions handle keys that are stored in some secondary - * location, handled by the engine. The storage may be on a card or - * whatever. - */ -EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, - STACK_OF(X509_NAME) *ca_dn, X509 **pcert, - EVP_PKEY **ppkey, STACK_OF(X509) **pother, - UI_METHOD *ui_method, void *callback_data); - -/* - * This returns a pointer for the current ENGINE structure that is (by - * default) performing any RSA operations. The value returned is an - * incremented reference, so it should be free'd (ENGINE_finish) before it is - * discarded. - */ -ENGINE *ENGINE_get_default_RSA(void); -/* Same for the other "methods" */ -ENGINE *ENGINE_get_default_DSA(void); -ENGINE *ENGINE_get_default_EC(void); -ENGINE *ENGINE_get_default_DH(void); -ENGINE *ENGINE_get_default_RAND(void); -/* - * These functions can be used to get a functional reference to perform - * ciphering or digesting corresponding to "nid". - */ -ENGINE *ENGINE_get_cipher_engine(int nid); -ENGINE *ENGINE_get_digest_engine(int nid); -ENGINE *ENGINE_get_pkey_meth_engine(int nid); -ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); - -/* - * This sets a new default ENGINE structure for performing RSA operations. If - * the result is non-zero (success) then the ENGINE structure will have had - * its reference count up'd so the caller should still free their own - * reference 'e'. - */ -int ENGINE_set_default_RSA(ENGINE *e); -int ENGINE_set_default_string(ENGINE *e, const char *def_list); -/* Same for the other "methods" */ -int ENGINE_set_default_DSA(ENGINE *e); -int ENGINE_set_default_EC(ENGINE *e); -int ENGINE_set_default_DH(ENGINE *e); -int ENGINE_set_default_RAND(ENGINE *e); -int ENGINE_set_default_ciphers(ENGINE *e); -int ENGINE_set_default_digests(ENGINE *e); -int ENGINE_set_default_pkey_meths(ENGINE *e); -int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); - -/* - * The combination "set" - the flags are bitwise "OR"d from the - * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()" - * function, this function can result in unnecessary static linkage. If your - * application requires only specific functionality, consider using more - * selective functions. - */ -int ENGINE_set_default(ENGINE *e, unsigned int flags); - -void ENGINE_add_conf_module(void); - -/* Deprecated functions ... */ -/* int ENGINE_clear_defaults(void); */ - -/**************************/ -/* DYNAMIC ENGINE SUPPORT */ -/**************************/ - -/* Binary/behaviour compatibility levels */ -# define OSSL_DYNAMIC_VERSION (unsigned long)0x00030000 -/* - * Binary versions older than this are too old for us (whether we're a loader - * or a loadee) - */ -# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00030000 - -/* - * When compiling an ENGINE entirely as an external shared library, loadable - * by the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' - * structure type provides the calling application's (or library's) error - * functionality and memory management function pointers to the loaded - * library. These should be used/set in the loaded library code so that the - * loading application's 'state' will be used/changed in all operations. The - * 'static_state' pointer allows the loaded library to know if it shares the - * same static data as the calling application (or library), and thus whether - * these callbacks need to be set or not. - */ -typedef void *(*dyn_MEM_malloc_fn) (size_t, const char *, int); -typedef void *(*dyn_MEM_realloc_fn) (void *, size_t, const char *, int); -typedef void (*dyn_MEM_free_fn) (void *, const char *, int); -typedef struct st_dynamic_MEM_fns { - dyn_MEM_malloc_fn malloc_fn; - dyn_MEM_realloc_fn realloc_fn; - dyn_MEM_free_fn free_fn; -} dynamic_MEM_fns; -/* - * FIXME: Perhaps the memory and locking code (crypto.h) should declare and - * use these types so we (and any other dependent code) can simplify a bit?? - */ -/* The top-level structure */ -typedef struct st_dynamic_fns { - void *static_state; - dynamic_MEM_fns mem_fns; -} dynamic_fns; - -/* - * The version checking function should be of this prototype. NB: The - * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading - * code. If this function returns zero, it indicates a (potential) version - * incompatibility and the loaded library doesn't believe it can proceed. - * Otherwise, the returned value is the (latest) version supported by the - * loading library. The loader may still decide that the loaded code's - * version is unsatisfactory and could veto the load. The function is - * expected to be implemented with the symbol name "v_check", and a default - * implementation can be fully instantiated with - * IMPLEMENT_DYNAMIC_CHECK_FN(). - */ -typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); -# define IMPLEMENT_DYNAMIC_CHECK_FN() \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v); \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \ - if (v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ - return 0; } - -/* - * This function is passed the ENGINE structure to initialise with its own - * function and command settings. It should not adjust the structural or - * functional reference counts. If this function returns zero, (a) the load - * will be aborted, (b) the previous ENGINE state will be memcpy'd back onto - * the structure, and (c) the shared library will be unloaded. So - * implementations should do their own internal cleanup in failure - * circumstances otherwise they could leak. The 'id' parameter, if non-NULL, - * represents the ENGINE id that the loader is looking for. If this is NULL, - * the shared library can choose to return failure or to initialise a - * 'default' ENGINE. If non-NULL, the shared library must initialise only an - * ENGINE matching the passed 'id'. The function is expected to be - * implemented with the symbol name "bind_engine". A standard implementation - * can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where the parameter - * 'fn' is a callback function that populates the ENGINE structure and - * returns an int value (zero for failure). 'fn' should have prototype; - * [static] int fn(ENGINE *e, const char *id); - */ -typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, - const dynamic_fns *fns); -# define IMPLEMENT_DYNAMIC_BIND_FN(fn) \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \ - if (ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ - CRYPTO_set_mem_functions(fns->mem_fns.malloc_fn, \ - fns->mem_fns.realloc_fn, \ - fns->mem_fns.free_fn); \ - OPENSSL_init_crypto(OPENSSL_INIT_NO_ATEXIT, NULL); \ - skip_cbs: \ - if (!fn(e, id)) return 0; \ - return 1; } - -/* - * If the loading application (or library) and the loaded ENGINE library - * share the same static data (eg. they're both dynamically linked to the - * same libcrypto.so) we need a way to avoid trying to set system callbacks - - * this would fail, and for the same reason that it's unnecessary to try. If - * the loaded ENGINE has (or gets from through the loader) its own copy of - * the libcrypto static data, we will need to set the callbacks. The easiest - * way to detect this is to have a function that returns a pointer to some - * static data and let the loading application and loaded ENGINE compare - * their respective values. - */ -void *ENGINE_get_static_state(void); - -# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) -DEPRECATEDIN_1_1_0(void ENGINE_setup_bsd_cryptodev(void)) -# endif - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin32/include/openssl/engineerr.h b/openSSL/lin32/include/openssl/engineerr.h deleted file mode 100644 index 05e84bd..0000000 --- a/openSSL/lin32/include/openssl/engineerr.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * 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_ENGINEERR_H -# define HEADER_ENGINEERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/err.h b/openSSL/lin32/include/openssl/err.h deleted file mode 100644 index b49f881..0000000 --- a/openSSL/lin32/include/openssl/err.h +++ /dev/null @@ -1,274 +0,0 @@ -/* - * 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_ERR_H -# define HEADER_ERR_H - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# include -# endif - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_NO_ERR -# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,d,e) -# else -# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,NULL,0) -# endif - -# include - -# define ERR_TXT_MALLOCED 0x01 -# 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 { - int err_flags[ERR_NUM_ERRORS]; - unsigned long err_buffer[ERR_NUM_ERRORS]; - char *err_data[ERR_NUM_ERRORS]; - int err_data_flags[ERR_NUM_ERRORS]; - const char *err_file[ERR_NUM_ERRORS]; - int err_line[ERR_NUM_ERRORS]; - int top, bottom; -} ERR_STATE; - -/* library */ -# define ERR_LIB_NONE 1 -# define ERR_LIB_SYS 2 -# define ERR_LIB_BN 3 -# define ERR_LIB_RSA 4 -# define ERR_LIB_DH 5 -# define ERR_LIB_EVP 6 -# define ERR_LIB_BUF 7 -# define ERR_LIB_OBJ 8 -# define ERR_LIB_PEM 9 -# define ERR_LIB_DSA 10 -# define ERR_LIB_X509 11 -/* #define ERR_LIB_METH 12 */ -# define ERR_LIB_ASN1 13 -# define ERR_LIB_CONF 14 -# define ERR_LIB_CRYPTO 15 -# define ERR_LIB_EC 16 -# define ERR_LIB_SSL 20 -/* #define ERR_LIB_SSL23 21 */ -/* #define ERR_LIB_SSL2 22 */ -/* #define ERR_LIB_SSL3 23 */ -/* #define ERR_LIB_RSAREF 30 */ -/* #define ERR_LIB_PROXY 31 */ -# define ERR_LIB_BIO 32 -# define ERR_LIB_PKCS7 33 -# define ERR_LIB_X509V3 34 -# define ERR_LIB_PKCS12 35 -# define ERR_LIB_RAND 36 -# define ERR_LIB_DSO 37 -# define ERR_LIB_ENGINE 38 -# define ERR_LIB_OCSP 39 -# define ERR_LIB_UI 40 -# define ERR_LIB_COMP 41 -# define ERR_LIB_ECDSA 42 -# define ERR_LIB_ECDH 43 -# define ERR_LIB_OSSL_STORE 44 -# define ERR_LIB_FIPS 45 -# define ERR_LIB_CMS 46 -# define ERR_LIB_TS 47 -# define ERR_LIB_HMAC 48 -/* # define ERR_LIB_JPAKE 49 */ -# 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 - -# define SYSerr(f,r) ERR_PUT_error(ERR_LIB_SYS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define BNerr(f,r) ERR_PUT_error(ERR_LIB_BN,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define RSAerr(f,r) ERR_PUT_error(ERR_LIB_RSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define DHerr(f,r) ERR_PUT_error(ERR_LIB_DH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define EVPerr(f,r) ERR_PUT_error(ERR_LIB_EVP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define BUFerr(f,r) ERR_PUT_error(ERR_LIB_BUF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define OBJerr(f,r) ERR_PUT_error(ERR_LIB_OBJ,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define PEMerr(f,r) ERR_PUT_error(ERR_LIB_PEM,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define DSAerr(f,r) ERR_PUT_error(ERR_LIB_DSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define X509err(f,r) ERR_PUT_error(ERR_LIB_X509,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ASN1err(f,r) ERR_PUT_error(ERR_LIB_ASN1,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define CONFerr(f,r) ERR_PUT_error(ERR_LIB_CONF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define CRYPTOerr(f,r) ERR_PUT_error(ERR_LIB_CRYPTO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ECerr(f,r) ERR_PUT_error(ERR_LIB_EC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define BIOerr(f,r) ERR_PUT_error(ERR_LIB_BIO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define PKCS7err(f,r) ERR_PUT_error(ERR_LIB_PKCS7,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define X509V3err(f,r) ERR_PUT_error(ERR_LIB_X509V3,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define PKCS12err(f,r) ERR_PUT_error(ERR_LIB_PKCS12,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define RANDerr(f,r) ERR_PUT_error(ERR_LIB_RAND,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define DSOerr(f,r) ERR_PUT_error(ERR_LIB_DSO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ENGINEerr(f,r) ERR_PUT_error(ERR_LIB_ENGINE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# 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 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) -# define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# 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) | \ - (((unsigned int)(f) & 0xFFF) << 12L) | \ - (((unsigned int)(r) & 0xFFF) ) ) -# define ERR_GET_LIB(l) (int)(((l) >> 24L) & 0x0FFL) -# define ERR_GET_FUNC(l) (int)(((l) >> 12L) & 0xFFFL) -# define ERR_GET_REASON(l) (int)( (l) & 0xFFFL) -# define ERR_FATAL_ERROR(l) (int)( (l) & ERR_R_FATAL) - -/* OS functions */ -# define SYS_F_FOPEN 1 -# define SYS_F_CONNECT 2 -# define SYS_F_GETSERVBYNAME 3 -# define SYS_F_SOCKET 4 -# define SYS_F_IOCTLSOCKET 5 -# define SYS_F_BIND 6 -# define SYS_F_LISTEN 7 -# define SYS_F_ACCEPT 8 -# define SYS_F_WSASTARTUP 9/* Winsock stuff */ -# define SYS_F_OPENDIR 10 -# define SYS_F_FREAD 11 -# define SYS_F_GETADDRINFO 12 -# define SYS_F_GETNAMEINFO 13 -# define SYS_F_SETSOCKOPT 14 -# define SYS_F_GETSOCKOPT 15 -# 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 */ -# define ERR_R_BN_LIB ERR_LIB_BN/* 3 */ -# define ERR_R_RSA_LIB ERR_LIB_RSA/* 4 */ -# define ERR_R_DH_LIB ERR_LIB_DH/* 5 */ -# define ERR_R_EVP_LIB ERR_LIB_EVP/* 6 */ -# define ERR_R_BUF_LIB ERR_LIB_BUF/* 7 */ -# define ERR_R_OBJ_LIB ERR_LIB_OBJ/* 8 */ -# define ERR_R_PEM_LIB ERR_LIB_PEM/* 9 */ -# define ERR_R_DSA_LIB ERR_LIB_DSA/* 10 */ -# define ERR_R_X509_LIB ERR_LIB_X509/* 11 */ -# define ERR_R_ASN1_LIB ERR_LIB_ASN1/* 13 */ -# define ERR_R_EC_LIB ERR_LIB_EC/* 16 */ -# define ERR_R_BIO_LIB ERR_LIB_BIO/* 32 */ -# 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 - -/* fatal error */ -# define ERR_R_FATAL 64 -# define ERR_R_MALLOC_FAILURE (1|ERR_R_FATAL) -# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (2|ERR_R_FATAL) -# define ERR_R_PASSED_NULL_PARAMETER (3|ERR_R_FATAL) -# define ERR_R_INTERNAL_ERROR (4|ERR_R_FATAL) -# 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 - * the individual libraries - */ - -typedef struct ERR_string_data_st { - unsigned long error; - const char *string; -} ERR_STRING_DATA; - -DEFINE_LHASH_OF(ERR_STRING_DATA); - -void ERR_put_error(int lib, int func, int reason, const char *file, int line); -void ERR_set_error_data(char *data, int flags); - -unsigned long ERR_get_error(void); -unsigned long ERR_get_error_line(const char **file, int *line); -unsigned long ERR_get_error_line_data(const char **file, int *line, - const char **data, int *flags); -unsigned long ERR_peek_error(void); -unsigned long ERR_peek_error_line(const char **file, int *line); -unsigned long ERR_peek_error_line_data(const char **file, int *line, - const char **data, int *flags); -unsigned long ERR_peek_last_error(void); -unsigned long ERR_peek_last_error_line(const char **file, int *line); -unsigned long ERR_peek_last_error_line_data(const char **file, int *line, - const char **data, int *flags); -void ERR_clear_error(void); -char *ERR_error_string(unsigned long e, char *buf); -void ERR_error_string_n(unsigned long e, char *buf, size_t len); -const char *ERR_lib_error_string(unsigned long e); -const char *ERR_func_error_string(unsigned long e); -const char *ERR_reason_error_string(unsigned long e); -void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), - void *u); -# ifndef OPENSSL_NO_STDIO -void ERR_print_errors_fp(FILE *fp); -# endif -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_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 -# define ERR_load_crypto_strings() \ - OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -# define ERR_free_strings() while(0) continue -#endif - -DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *)) -DEPRECATEDIN_1_0_0(void ERR_remove_state(unsigned long pid)) -ERR_STATE *ERR_get_state(void); - -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 -} -#endif - -#endif diff --git a/openSSL/lin32/include/openssl/evp.h b/openSSL/lin32/include/openssl/evp.h deleted file mode 100644 index a411f3f..0000000 --- a/openSSL/lin32/include/openssl/evp.h +++ /dev/null @@ -1,1666 +0,0 @@ -/* - * 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_ENVELOPE_H -# define HEADER_ENVELOPE_H - -# include -# include -# include -# include -# include - -# define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ -# define EVP_MAX_KEY_LENGTH 64 -# define EVP_MAX_IV_LENGTH 16 -# define EVP_MAX_BLOCK_LENGTH 32 - -# define PKCS5_SALT_LEN 8 -/* Default PKCS#5 iteration count */ -# define PKCS5_DEFAULT_ITER 2048 - -# include - -# define EVP_PK_RSA 0x0001 -# define EVP_PK_DSA 0x0002 -# define EVP_PK_DH 0x0004 -# define EVP_PK_EC 0x0008 -# define EVP_PKT_SIGN 0x0010 -# define EVP_PKT_ENC 0x0020 -# define EVP_PKT_EXCH 0x0040 -# define EVP_PKS_RSA 0x0100 -# define EVP_PKS_DSA 0x0200 -# define EVP_PKS_EC 0x0400 - -# 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 -# define EVP_PKEY_DSA3 NID_dsaWithSHA1 -# define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 -# 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" { -#endif - -# define EVP_PKEY_MO_SIGN 0x0001 -# define EVP_PKEY_MO_VERIFY 0x0002 -# define EVP_PKEY_MO_ENCRYPT 0x0004 -# define EVP_PKEY_MO_DECRYPT 0x0008 - -# ifndef EVP_MD -EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type); -EVP_MD *EVP_MD_meth_dup(const EVP_MD *md); -void EVP_MD_meth_free(EVP_MD *md); - -int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize); -int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize); -int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize); -int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags); -int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx)); -int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx, - const void *data, - size_t count)); -int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx, - unsigned char *md)); -int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to, - const EVP_MD_CTX *from)); -int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx)); -int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int cmd, - int p1, void *p2)); - -int EVP_MD_meth_get_input_blocksize(const EVP_MD *md); -int EVP_MD_meth_get_result_size(const EVP_MD *md); -int EVP_MD_meth_get_app_datasize(const EVP_MD *md); -unsigned long EVP_MD_meth_get_flags(const EVP_MD *md); -int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx); -int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx, - const void *data, - size_t count); -int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx, - unsigned char *md); -int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to, - const EVP_MD_CTX *from); -int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx); -int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, - int p1, void *p2); - -/* 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 - -/* NULL or absent parameter accepted. Use NULL */ - -# define EVP_MD_FLAG_DIGALGID_NULL 0x0000 - -/* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ - -# define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008 - -/* Custom handling via ctrl */ - -# define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018 - -/* Note if suitable for use in FIPS mode */ -# define EVP_MD_FLAG_FIPS 0x0400 - -/* Digest ctrls */ - -# define EVP_MD_CTRL_DIGALGID 0x1 -# define EVP_MD_CTRL_MICALG 0x2 -# define EVP_MD_CTRL_XOF_LEN 0x3 - -/* Minimum Algorithm specific ctrl value */ - -# define EVP_MD_CTRL_ALG_CTRL 0x1000 - -# endif /* !EVP_MD */ - -/* values for EVP_MD_CTX flags */ - -# define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be - * called once only */ -# define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been - * cleaned */ -# define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data - * in EVP_MD_CTX_reset */ -/* - * FIPS and pad options are ignored in 1.0.0, definitions are here so we - * don't accidentally reuse the values for other purposes. - */ - -# define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008/* Allow use of non FIPS - * digest in FIPS mode */ - -/* - * The following PAD options are also currently ignored in 1.0.0, digest - * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() - * instead. - */ -# define EVP_MD_CTX_FLAG_PAD_MASK 0xF0/* RSA mode to use */ -# define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00/* PKCS#1 v1.5 mode */ -# define EVP_MD_CTX_FLAG_PAD_X931 0x10/* X9.31 mode */ -# define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */ - -# define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */ -/* - * Some functions such as EVP_DigestSign only finalise copies of internal - * contexts so additional data can be included after the finalisation call. - * This is inefficient if this functionality is not required: it is disabled - * if the following flag is set. - */ -# define EVP_MD_CTX_FLAG_FINALISE 0x0200 -/* NOTE: 0x0400 is reserved for internal usage */ - -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); -void EVP_CIPHER_meth_free(EVP_CIPHER *cipher); - -int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len); -int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags); -int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size); -int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher, - int (*init) (EVP_CIPHER_CTX *ctx, - const unsigned char *key, - const unsigned char *iv, - int enc)); -int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher, - int (*do_cipher) (EVP_CIPHER_CTX *ctx, - unsigned char *out, - const unsigned char *in, - size_t inl)); -int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher, - int (*cleanup) (EVP_CIPHER_CTX *)); -int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher, - int (*set_asn1_parameters) (EVP_CIPHER_CTX *, - ASN1_TYPE *)); -int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher, - int (*get_asn1_parameters) (EVP_CIPHER_CTX *, - ASN1_TYPE *)); -int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher, - int (*ctrl) (EVP_CIPHER_CTX *, int type, - int arg, void *ptr)); - -int (*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, - const unsigned char *key, - const unsigned char *iv, - int enc); -int (*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, - unsigned char *out, - const unsigned char *in, - size_t inl); -int (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *); -int (*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - ASN1_TYPE *); -int (*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - ASN1_TYPE *); -int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - int type, int arg, - void *ptr); - -/* Values for cipher flags */ - -/* Modes for ciphers */ - -# define EVP_CIPH_STREAM_CIPHER 0x0 -# define EVP_CIPH_ECB_MODE 0x1 -# define EVP_CIPH_CBC_MODE 0x2 -# define EVP_CIPH_CFB_MODE 0x3 -# define EVP_CIPH_OFB_MODE 0x4 -# define EVP_CIPH_CTR_MODE 0x5 -# define EVP_CIPH_GCM_MODE 0x6 -# define EVP_CIPH_CCM_MODE 0x7 -# define EVP_CIPH_XTS_MODE 0x10001 -# define EVP_CIPH_WRAP_MODE 0x10002 -# define EVP_CIPH_OCB_MODE 0x10003 -# define EVP_CIPH_MODE 0xF0007 -/* Set if variable length cipher */ -# define EVP_CIPH_VARIABLE_LENGTH 0x8 -/* Set if the iv handling should be done by the cipher itself */ -# define EVP_CIPH_CUSTOM_IV 0x10 -/* Set if the cipher's init() function should be called if key is NULL */ -# define EVP_CIPH_ALWAYS_CALL_INIT 0x20 -/* Call ctrl() to init cipher parameters */ -# define EVP_CIPH_CTRL_INIT 0x40 -/* Don't use standard key length function */ -# define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 -/* Don't use standard block padding */ -# define EVP_CIPH_NO_PADDING 0x100 -/* cipher handles random key generation */ -# define EVP_CIPH_RAND_KEY 0x200 -/* cipher has its own additional copying logic */ -# define EVP_CIPH_CUSTOM_COPY 0x400 -/* Don't use standard iv length function */ -# define EVP_CIPH_CUSTOM_IV_LENGTH 0x800 -/* Allow use default ASN1 get/set iv */ -# define EVP_CIPH_FLAG_DEFAULT_ASN1 0x1000 -/* Buffer length in bits not bytes: CFB1 mode only */ -# define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 -/* Note if suitable for use in FIPS mode */ -# define EVP_CIPH_FLAG_FIPS 0x4000 -/* Allow non FIPS cipher in FIPS mode */ -# define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0x8000 -/* - * Cipher handles any and all padding logic as well as finalisation. - */ -# define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 -# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 -# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 -/* Cipher can handle pipeline operations */ -# define EVP_CIPH_FLAG_PIPELINE 0X800000 - -/* - * Cipher context flag to indicate we can handle wrap mode: if allowed in - * older applications it could overflow buffers. - */ - -# define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1 - -/* ctrl() values */ - -# define EVP_CTRL_INIT 0x0 -# define EVP_CTRL_SET_KEY_LENGTH 0x1 -# define EVP_CTRL_GET_RC2_KEY_BITS 0x2 -# define EVP_CTRL_SET_RC2_KEY_BITS 0x3 -# define EVP_CTRL_GET_RC5_ROUNDS 0x4 -# define EVP_CTRL_SET_RC5_ROUNDS 0x5 -# define EVP_CTRL_RAND_KEY 0x6 -# define EVP_CTRL_PBE_PRF_NID 0x7 -# define EVP_CTRL_COPY 0x8 -# define EVP_CTRL_AEAD_SET_IVLEN 0x9 -# define EVP_CTRL_AEAD_GET_TAG 0x10 -# define EVP_CTRL_AEAD_SET_TAG 0x11 -# define EVP_CTRL_AEAD_SET_IV_FIXED 0x12 -# define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN -# define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG -# define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG -# define EVP_CTRL_GCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED -# define EVP_CTRL_GCM_IV_GEN 0x13 -# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN -# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_AEAD_GET_TAG -# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_AEAD_SET_TAG -# define EVP_CTRL_CCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED -# define EVP_CTRL_CCM_SET_L 0x14 -# define EVP_CTRL_CCM_SET_MSGLEN 0x15 -/* - * AEAD cipher deduces payload length and returns number of bytes required to - * store MAC and eventual padding. Subsequent call to EVP_Cipher even - * appends/verifies MAC. - */ -# define EVP_CTRL_AEAD_TLS1_AAD 0x16 -/* Used by composite AEAD ciphers, no-op in GCM, CCM... */ -# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 -/* Set the GCM invocation field, decrypt only */ -# define EVP_CTRL_GCM_SET_IV_INV 0x18 - -# define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19 -# define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a -# define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b -# define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c - -# define EVP_CTRL_SSL3_MASTER_SECRET 0x1d - -/* EVP_CTRL_SET_SBOX takes the char * specifying S-boxes */ -# define EVP_CTRL_SET_SBOX 0x1e -/* - * EVP_CTRL_SBOX_USED takes a 'size_t' and 'char *', pointing at a - * pre-allocated buffer with specified size - */ -# define EVP_CTRL_SBOX_USED 0x1f -/* EVP_CTRL_KEY_MESH takes 'size_t' number of bytes to mesh the key after, - * 0 switches meshing off - */ -# define EVP_CTRL_KEY_MESH 0x20 -/* EVP_CTRL_BLOCK_PADDING_MODE takes the padding mode */ -# define EVP_CTRL_BLOCK_PADDING_MODE 0x21 - -/* Set the output buffers to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_OUTPUT_BUFS 0x22 -/* Set the input buffers to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_INPUT_BUFS 0x23 -/* Set the input buffer lengths to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_INPUT_LENS 0x24 - -# define EVP_CTRL_GET_IVLEN 0x25 - -/* Padding modes */ -#define EVP_PADDING_PKCS7 1 -#define EVP_PADDING_ISO7816_4 2 -#define EVP_PADDING_ANSI923 3 -#define EVP_PADDING_ISO10126 4 -#define EVP_PADDING_ZERO 5 - -/* RFC 5246 defines additional data to be 13 bytes in length */ -# define EVP_AEAD_TLS1_AAD_LEN 13 - -typedef struct { - unsigned char *out; - const unsigned char *inp; - size_t len; - unsigned int interleave; -} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; - -/* GCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# define EVP_GCM_TLS_FIXED_IV_LEN 4 -/* Length of explicit part of IV part of TLS records */ -# define EVP_GCM_TLS_EXPLICIT_IV_LEN 8 -/* Length of tag for TLS */ -# define EVP_GCM_TLS_TAG_LEN 16 - -/* CCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# 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; - unsigned char iv[EVP_MAX_IV_LENGTH]; -} EVP_CIPHER_INFO; - - -/* Password based encryption function */ -typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *cipher, const EVP_MD *md, - int en_de); - -# ifndef OPENSSL_NO_RSA -# define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ - (char *)(rsa)) -# endif - -# ifndef OPENSSL_NO_DSA -# define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ - (char *)(dsa)) -# endif - -# ifndef OPENSSL_NO_DH -# define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\ - (char *)(dh)) -# endif - -# ifndef OPENSSL_NO_EC -# 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)) -# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) -# define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) -# define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) - -int EVP_MD_type(const EVP_MD *md); -# define EVP_MD_nid(e) EVP_MD_type(e) -# define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e)) -int EVP_MD_pkey_type(const EVP_MD *md); -int EVP_MD_size(const EVP_MD *md); -int EVP_MD_block_size(const EVP_MD *md); -unsigned long EVP_MD_flags(const EVP_MD *md); - -const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); -int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx, - const void *data, size_t count); -void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx, - int (*update) (EVP_MD_CTX *ctx, - const void *data, size_t count)); -# define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e)) -# 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); -# define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e)) -int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); -int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *cipher); -int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); -int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); -unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); -# define EVP_CIPHER_mode(e) (EVP_CIPHER_flags(e) & EVP_CIPH_MODE) - -const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); -const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx); -const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx); -unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx); -unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_num(const EVP_CIPHER_CTX *ctx); -void EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num); -int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); -void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); -void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); -void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx); -void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); -# define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) -# if OPENSSL_API_COMPAT < 0x10100000L -# define EVP_CIPHER_CTX_flags(c) EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(c)) -# 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_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_SignInit(a,b) EVP_DigestInit(a,b) -# define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) -# define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) -# define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) -# define EVP_DigestSignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_DigestVerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) - -# 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)) -# 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)) - -/*__owur*/ int EVP_Cipher(EVP_CIPHER_CTX *c, - unsigned char *out, - const unsigned char *in, unsigned int inl); - -# define EVP_add_cipher_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_add_digest_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_delete_cipher_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); -# define EVP_delete_digest_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); - -int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2); -EVP_MD_CTX *EVP_MD_CTX_new(void); -int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); -void EVP_MD_CTX_free(EVP_MD_CTX *ctx); -# define EVP_MD_CTX_create() EVP_MD_CTX_new() -# define EVP_MD_CTX_init(ctx) EVP_MD_CTX_reset((ctx)) -# define EVP_MD_CTX_destroy(ctx) EVP_MD_CTX_free((ctx)) -__owur int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); -void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); -void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); -int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); -__owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, - ENGINE *impl); -__owur int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, - size_t cnt); -__owur int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, - unsigned int *s); -__owur int EVP_Digest(const void *data, size_t count, - unsigned char *md, unsigned int *size, - const EVP_MD *type, ENGINE *impl); - -__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); - -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); - -__owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, - const unsigned char *salt, - const unsigned char *data, int datal, int count, - unsigned char *key, unsigned char *iv); - -void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); -void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); -int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); - -__owur int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -/*__owur*/ int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv); -/*__owur*/ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -/*__owur*/ int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl); -/*__owur*/ int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl); - -__owur int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -/*__owur*/ int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv); -/*__owur*/ int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); -/*__owur*/ int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); - -__owur int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv, - int enc); -/*__owur*/ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv, int enc); -__owur int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); -__owur int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); - -__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); -__owur int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - size_t *siglen); - -__owur int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, - EVP_PKEY *pkey); -__owur int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, - size_t siglen); - -# ifndef OPENSSL_NO_RSA -__owur int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - const unsigned char *ek, int ekl, - const unsigned char *iv, EVP_PKEY *priv); -__owur int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); - -__owur int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - unsigned char **ek, int *ekl, unsigned char *iv, - EVP_PKEY **pubk, int npubk); -__owur int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); -# endif - -EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void); -void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx); -int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, EVP_ENCODE_CTX *sctx); -int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx); -void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); -int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); -int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); - -void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); -int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned - char *out, int *outl); -int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define EVP_CIPHER_CTX_init(c) EVP_CIPHER_CTX_reset(c) -# define EVP_CIPHER_CTX_cleanup(c) EVP_CIPHER_CTX_reset(c) -# endif -EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); -int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); -void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c); -int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); -int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); -int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); -int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); - -const BIO_METHOD *BIO_f_md(void); -const BIO_METHOD *BIO_f_base64(void); -const BIO_METHOD *BIO_f_cipher(void); -const BIO_METHOD *BIO_f_reliable(void); -__owur int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, - const unsigned char *i, int enc); - -const EVP_MD *EVP_md_null(void); -# ifndef OPENSSL_NO_MD2 -const EVP_MD *EVP_md2(void); -# endif -# ifndef OPENSSL_NO_MD4 -const EVP_MD *EVP_md4(void); -# endif -# ifndef OPENSSL_NO_MD5 -const EVP_MD *EVP_md5(void); -const EVP_MD *EVP_md5_sha1(void); -# endif -# ifndef OPENSSL_NO_BLAKE2 -const EVP_MD *EVP_blake2b512(void); -const EVP_MD *EVP_blake2s256(void); -# endif -const EVP_MD *EVP_sha1(void); -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 -# ifndef OPENSSL_NO_RMD160 -const EVP_MD *EVP_ripemd160(void); -# endif -# 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); -const EVP_CIPHER *EVP_des_ede(void); -const EVP_CIPHER *EVP_des_ede3(void); -const EVP_CIPHER *EVP_des_ede_ecb(void); -const EVP_CIPHER *EVP_des_ede3_ecb(void); -const EVP_CIPHER *EVP_des_cfb64(void); -# define EVP_des_cfb EVP_des_cfb64 -const EVP_CIPHER *EVP_des_cfb1(void); -const EVP_CIPHER *EVP_des_cfb8(void); -const EVP_CIPHER *EVP_des_ede_cfb64(void); -# define EVP_des_ede_cfb EVP_des_ede_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb64(void); -# define EVP_des_ede3_cfb EVP_des_ede3_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb1(void); -const EVP_CIPHER *EVP_des_ede3_cfb8(void); -const EVP_CIPHER *EVP_des_ofb(void); -const EVP_CIPHER *EVP_des_ede_ofb(void); -const EVP_CIPHER *EVP_des_ede3_ofb(void); -const EVP_CIPHER *EVP_des_cbc(void); -const EVP_CIPHER *EVP_des_ede_cbc(void); -const EVP_CIPHER *EVP_des_ede3_cbc(void); -const EVP_CIPHER *EVP_desx_cbc(void); -const EVP_CIPHER *EVP_des_ede3_wrap(void); -/* - * This should now be supported through the dev_crypto ENGINE. But also, why - * are rc4 and md5 declarations made here inside a "NO_DES" precompiler - * branch? - */ -# endif -# ifndef OPENSSL_NO_RC4 -const EVP_CIPHER *EVP_rc4(void); -const EVP_CIPHER *EVP_rc4_40(void); -# ifndef OPENSSL_NO_MD5 -const EVP_CIPHER *EVP_rc4_hmac_md5(void); -# endif -# endif -# ifndef OPENSSL_NO_IDEA -const EVP_CIPHER *EVP_idea_ecb(void); -const EVP_CIPHER *EVP_idea_cfb64(void); -# define EVP_idea_cfb EVP_idea_cfb64 -const EVP_CIPHER *EVP_idea_ofb(void); -const EVP_CIPHER *EVP_idea_cbc(void); -# endif -# ifndef OPENSSL_NO_RC2 -const EVP_CIPHER *EVP_rc2_ecb(void); -const EVP_CIPHER *EVP_rc2_cbc(void); -const EVP_CIPHER *EVP_rc2_40_cbc(void); -const EVP_CIPHER *EVP_rc2_64_cbc(void); -const EVP_CIPHER *EVP_rc2_cfb64(void); -# define EVP_rc2_cfb EVP_rc2_cfb64 -const EVP_CIPHER *EVP_rc2_ofb(void); -# endif -# ifndef OPENSSL_NO_BF -const EVP_CIPHER *EVP_bf_ecb(void); -const EVP_CIPHER *EVP_bf_cbc(void); -const EVP_CIPHER *EVP_bf_cfb64(void); -# define EVP_bf_cfb EVP_bf_cfb64 -const EVP_CIPHER *EVP_bf_ofb(void); -# endif -# ifndef OPENSSL_NO_CAST -const EVP_CIPHER *EVP_cast5_ecb(void); -const EVP_CIPHER *EVP_cast5_cbc(void); -const EVP_CIPHER *EVP_cast5_cfb64(void); -# define EVP_cast5_cfb EVP_cast5_cfb64 -const EVP_CIPHER *EVP_cast5_ofb(void); -# endif -# ifndef OPENSSL_NO_RC5 -const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); -const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); -const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void); -# define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64 -const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); -# endif -const EVP_CIPHER *EVP_aes_128_ecb(void); -const EVP_CIPHER *EVP_aes_128_cbc(void); -const EVP_CIPHER *EVP_aes_128_cfb1(void); -const EVP_CIPHER *EVP_aes_128_cfb8(void); -const EVP_CIPHER *EVP_aes_128_cfb128(void); -# define EVP_aes_128_cfb EVP_aes_128_cfb128 -const EVP_CIPHER *EVP_aes_128_ofb(void); -const EVP_CIPHER *EVP_aes_128_ctr(void); -const EVP_CIPHER *EVP_aes_128_ccm(void); -const EVP_CIPHER *EVP_aes_128_gcm(void); -const EVP_CIPHER *EVP_aes_128_xts(void); -const EVP_CIPHER *EVP_aes_128_wrap(void); -const EVP_CIPHER *EVP_aes_128_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_128_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_192_ecb(void); -const EVP_CIPHER *EVP_aes_192_cbc(void); -const EVP_CIPHER *EVP_aes_192_cfb1(void); -const EVP_CIPHER *EVP_aes_192_cfb8(void); -const EVP_CIPHER *EVP_aes_192_cfb128(void); -# define EVP_aes_192_cfb EVP_aes_192_cfb128 -const EVP_CIPHER *EVP_aes_192_ofb(void); -const EVP_CIPHER *EVP_aes_192_ctr(void); -const EVP_CIPHER *EVP_aes_192_ccm(void); -const EVP_CIPHER *EVP_aes_192_gcm(void); -const EVP_CIPHER *EVP_aes_192_wrap(void); -const EVP_CIPHER *EVP_aes_192_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_192_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_256_ecb(void); -const EVP_CIPHER *EVP_aes_256_cbc(void); -const EVP_CIPHER *EVP_aes_256_cfb1(void); -const EVP_CIPHER *EVP_aes_256_cfb8(void); -const EVP_CIPHER *EVP_aes_256_cfb128(void); -# define EVP_aes_256_cfb EVP_aes_256_cfb128 -const EVP_CIPHER *EVP_aes_256_ofb(void); -const EVP_CIPHER *EVP_aes_256_ctr(void); -const EVP_CIPHER *EVP_aes_256_ccm(void); -const EVP_CIPHER *EVP_aes_256_gcm(void); -const EVP_CIPHER *EVP_aes_256_xts(void); -const EVP_CIPHER *EVP_aes_256_wrap(void); -const EVP_CIPHER *EVP_aes_256_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_256_ocb(void); -# endif -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); -const EVP_CIPHER *EVP_camellia_128_cfb1(void); -const EVP_CIPHER *EVP_camellia_128_cfb8(void); -const EVP_CIPHER *EVP_camellia_128_cfb128(void); -# define EVP_camellia_128_cfb EVP_camellia_128_cfb128 -const EVP_CIPHER *EVP_camellia_128_ofb(void); -const EVP_CIPHER *EVP_camellia_128_ctr(void); -const EVP_CIPHER *EVP_camellia_192_ecb(void); -const EVP_CIPHER *EVP_camellia_192_cbc(void); -const EVP_CIPHER *EVP_camellia_192_cfb1(void); -const EVP_CIPHER *EVP_camellia_192_cfb8(void); -const EVP_CIPHER *EVP_camellia_192_cfb128(void); -# define EVP_camellia_192_cfb EVP_camellia_192_cfb128 -const EVP_CIPHER *EVP_camellia_192_ofb(void); -const EVP_CIPHER *EVP_camellia_192_ctr(void); -const EVP_CIPHER *EVP_camellia_256_ecb(void); -const EVP_CIPHER *EVP_camellia_256_cbc(void); -const EVP_CIPHER *EVP_camellia_256_cfb1(void); -const EVP_CIPHER *EVP_camellia_256_cfb8(void); -const EVP_CIPHER *EVP_camellia_256_cfb128(void); -# define EVP_camellia_256_cfb EVP_camellia_256_cfb128 -const EVP_CIPHER *EVP_camellia_256_ofb(void); -const EVP_CIPHER *EVP_camellia_256_ctr(void); -# endif -# ifndef OPENSSL_NO_CHACHA -const EVP_CIPHER *EVP_chacha20(void); -# ifndef OPENSSL_NO_POLY1305 -const EVP_CIPHER *EVP_chacha20_poly1305(void); -# endif -# endif - -# ifndef OPENSSL_NO_SEED -const EVP_CIPHER *EVP_seed_ecb(void); -const EVP_CIPHER *EVP_seed_cbc(void); -const EVP_CIPHER *EVP_seed_cfb128(void); -# define EVP_seed_cfb EVP_seed_cfb128 -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 \ - | OPENSSL_INIT_ADD_ALL_DIGESTS \ - | OPENSSL_INIT_LOAD_CONFIG, NULL) -# define OPENSSL_add_all_algorithms_noconf() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) - -# ifdef OPENSSL_LOAD_CONF -# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_conf() -# else -# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_noconf() -# endif - -# define OpenSSL_add_all_ciphers() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL) -# define OpenSSL_add_all_digests() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) - -# define EVP_cleanup() while(0) continue -# endif - -int EVP_add_cipher(const EVP_CIPHER *cipher); -int EVP_add_digest(const EVP_MD *digest); - -const EVP_CIPHER *EVP_get_cipherbyname(const char *name); -const EVP_MD *EVP_get_digestbyname(const char *name); - -void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_CIPHER_do_all_sorted(void (*fn) - (const EVP_CIPHER *ciph, const char *from, - const char *to, void *x), void *arg); - -void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_MD_do_all_sorted(void (*fn) - (const EVP_MD *ciph, const char *from, - const char *to, void *x), void *arg); - -int EVP_PKEY_decrypt_old(unsigned char *dec_key, - const unsigned char *enc_key, int enc_key_len, - EVP_PKEY *private_key); -int EVP_PKEY_encrypt_old(unsigned char *enc_key, - const unsigned char *key, int key_len, - EVP_PKEY *pub_key); -int EVP_PKEY_type(int type); -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(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; -int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); -struct rsa_st *EVP_PKEY_get0_RSA(EVP_PKEY *pkey); -struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_DSA -struct dsa_st; -int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); -struct dsa_st *EVP_PKEY_get0_DSA(EVP_PKEY *pkey); -struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_DH -struct dh_st; -int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); -struct dh_st *EVP_PKEY_get0_DH(EVP_PKEY *pkey); -struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_EC -struct ec_key_st; -int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); -struct ec_key_st *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey); -struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); -# endif - -EVP_PKEY *EVP_PKEY_new(void); -int EVP_PKEY_up_ref(EVP_PKEY *pkey); -void EVP_PKEY_free(EVP_PKEY *pkey); - -EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); - -EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); - -int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); -int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); -int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); -int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); - -int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); - -int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); - -int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); - -int EVP_PKEY_set1_tls_encodedpoint(EVP_PKEY *pkey, - const unsigned char *pt, size_t ptlen); -size_t EVP_PKEY_get1_tls_encodedpoint(EVP_PKEY *pkey, unsigned char **ppt); - -int EVP_CIPHER_type(const EVP_CIPHER *ctx); - -/* calls methods */ -int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* These are used by EVP_CIPHER methods */ -int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* PKCS5 password based encryption */ -int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); -int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - int keylen, unsigned char *out); -int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - const EVP_MD *digest, int keylen, unsigned char *out); -int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); - -#ifndef OPENSSL_NO_SCRYPT -int EVP_PBE_scrypt(const char *pass, size_t passlen, - const unsigned char *salt, size_t saltlen, - uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, - unsigned char *key, size_t keylen); - -int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *c, const EVP_MD *md, int en_de); -#endif - -void PKCS5_PBE_add(void); - -int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, - ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); - -/* PBE type */ - -/* Can appear as the outermost AlgorithmIdentifier */ -# define EVP_PBE_TYPE_OUTER 0x0 -/* Is an PRF type OID */ -# define EVP_PBE_TYPE_PRF 0x1 -/* Is a PKCS#5 v2.0 KDF */ -# define EVP_PBE_TYPE_KDF 0x2 - -int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, - int md_nid, EVP_PBE_KEYGEN *keygen); -int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, - EVP_PBE_KEYGEN *keygen); -int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, - EVP_PBE_KEYGEN **pkeygen); -void EVP_PBE_cleanup(void); -int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num); - -# define ASN1_PKEY_ALIAS 0x1 -# define ASN1_PKEY_DYNAMIC 0x2 -# define ASN1_PKEY_SIGPARAM_NULL 0x4 - -# define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1 -# define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2 -# define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 -# define ASN1_PKEY_CTRL_CMS_SIGN 0x5 -# define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 -# define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 - -# define ASN1_PKEY_CTRL_SET1_TLS_ENCPT 0x9 -# define ASN1_PKEY_CTRL_GET1_TLS_ENCPT 0xa - -int EVP_PKEY_asn1_get_count(void); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, - const char *str, int len); -int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); -int EVP_PKEY_asn1_add_alias(int to, int from); -int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, - int *ppkey_flags, const char **pinfo, - const char **ppem_str, - const EVP_PKEY_ASN1_METHOD *ameth); - -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey); -EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, - const char *pem_str, - const char *info); -void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, - const EVP_PKEY_ASN1_METHOD *src); -void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); -void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, - int (*pub_decode) (EVP_PKEY *pk, - X509_PUBKEY *pub), - int (*pub_encode) (X509_PUBKEY *pub, - const EVP_PKEY *pk), - int (*pub_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*pub_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx), - int (*pkey_size) (const EVP_PKEY *pk), - int (*pkey_bits) (const EVP_PKEY *pk)); -void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, - int (*priv_decode) (EVP_PKEY *pk, - const PKCS8_PRIV_KEY_INFO - *p8inf), - int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, - const EVP_PKEY *pk), - int (*priv_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); -void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, - int (*param_decode) (EVP_PKEY *pkey, - const unsigned char **pder, - int derlen), - int (*param_encode) (const EVP_PKEY *pkey, - unsigned char **pder), - int (*param_missing) (const EVP_PKEY *pk), - int (*param_copy) (EVP_PKEY *to, - const EVP_PKEY *from), - int (*param_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*param_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); - -void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, - void (*pkey_free) (EVP_PKEY *pkey)); -void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_ctrl) (EVP_PKEY *pkey, int op, - long arg1, void *arg2)); -void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, - int (*item_verify) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - void *asn, - X509_ALGOR *a, - ASN1_BIT_STRING *sig, - EVP_PKEY *pkey), - int (*item_sign) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - void *asn, - X509_ALGOR *alg1, - 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)); - -# define EVP_PKEY_OP_UNDEFINED 0 -# define EVP_PKEY_OP_PARAMGEN (1<<1) -# define EVP_PKEY_OP_KEYGEN (1<<2) -# define EVP_PKEY_OP_SIGN (1<<3) -# define EVP_PKEY_OP_VERIFY (1<<4) -# define EVP_PKEY_OP_VERIFYRECOVER (1<<5) -# define EVP_PKEY_OP_SIGNCTX (1<<6) -# define EVP_PKEY_OP_VERIFYCTX (1<<7) -# define EVP_PKEY_OP_ENCRYPT (1<<8) -# define EVP_PKEY_OP_DECRYPT (1<<9) -# define EVP_PKEY_OP_DERIVE (1<<10) - -# define EVP_PKEY_OP_TYPE_SIG \ - (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYRECOVER \ - | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX) - -# define EVP_PKEY_OP_TYPE_CRYPT \ - (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT) - -# define EVP_PKEY_OP_TYPE_NOGEN \ - (EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT | EVP_PKEY_OP_DERIVE) - -# define EVP_PKEY_OP_TYPE_GEN \ - (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) - -# 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)) - -# 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)) - -# 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)) - -# define EVP_PKEY_CTRL_MD 1 -# define EVP_PKEY_CTRL_PEER_KEY 2 - -# define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3 -# define EVP_PKEY_CTRL_PKCS7_DECRYPT 4 - -# define EVP_PKEY_CTRL_PKCS7_SIGN 5 - -# define EVP_PKEY_CTRL_SET_MAC_KEY 6 - -# define EVP_PKEY_CTRL_DIGESTINIT 7 - -/* Used by GOST key encryption in TLS */ -# define EVP_PKEY_CTRL_SET_IV 8 - -# define EVP_PKEY_CTRL_CMS_ENCRYPT 9 -# define EVP_PKEY_CTRL_CMS_DECRYPT 10 -# define EVP_PKEY_CTRL_CMS_SIGN 11 - -# define EVP_PKEY_CTRL_CIPHER 12 - -# 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 -/* - * Method handles all operations: don't assume any digest related defaults. - */ -# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4 - -const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); -EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); -void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, - const EVP_PKEY_METHOD *meth); -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); -EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); - -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); -EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); - -EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); - -void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, - const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, - unsigned char *rout, size_t *routlen, - const unsigned char *sig, size_t siglen); -int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); -int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); - -int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); -int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); - -typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx); - -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); - -int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); - -void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, - int (*init) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, - int (*copy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, - void (*cleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, - int (*paramgen_init) (EVP_PKEY_CTX *ctx), - int (*paramgen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, - int (*keygen_init) (EVP_PKEY_CTX *ctx), - int (*keygen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, - int (*sign_init) (EVP_PKEY_CTX *ctx), - int (*sign) (EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, - int (*verify_init) (EVP_PKEY_CTX *ctx), - int (*verify) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, - int (*verify_recover_init) (EVP_PKEY_CTX - *ctx), - int (*verify_recover) (EVP_PKEY_CTX - *ctx, - unsigned char - *sig, - size_t *siglen, - const unsigned - char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, - int (*signctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*signctx) (EVP_PKEY_CTX *ctx, - unsigned char *sig, - size_t *siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, - int (*verifyctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*verifyctx) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - int siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, - int (*encrypt_init) (EVP_PKEY_CTX *ctx), - int (*encryptfn) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, - int (*decrypt_init) (EVP_PKEY_CTX *ctx), - int (*decrypt) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, - int (*derive_init) (EVP_PKEY_CTX *ctx), - int (*derive) (EVP_PKEY_CTX *ctx, - unsigned char *key, - size_t *keylen)); - -void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, - int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, - void *p2), - int (*ctrl_str) (EVP_PKEY_CTX *ctx, - const char *type, - const char *value)); - -void EVP_PKEY_meth_set_digestsign(EVP_PKEY_METHOD *pmeth, - int (*digestsign) (EVP_MD_CTX *ctx, - unsigned char *sig, - size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_digestverify(EVP_PKEY_METHOD *pmeth, - int (*digestverify) (EVP_MD_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -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)); - -void EVP_PKEY_meth_get_copy(const EVP_PKEY_METHOD *pmeth, - int (**pcopy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_get_cleanup(const EVP_PKEY_METHOD *pmeth, - void (**pcleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_paramgen(const EVP_PKEY_METHOD *pmeth, - int (**pparamgen_init) (EVP_PKEY_CTX *ctx), - int (**pparamgen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_keygen(const EVP_PKEY_METHOD *pmeth, - int (**pkeygen_init) (EVP_PKEY_CTX *ctx), - int (**pkeygen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_sign(const EVP_PKEY_METHOD *pmeth, - int (**psign_init) (EVP_PKEY_CTX *ctx), - int (**psign) (EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_verify(const EVP_PKEY_METHOD *pmeth, - int (**pverify_init) (EVP_PKEY_CTX *ctx), - int (**pverify) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_verify_recover(const EVP_PKEY_METHOD *pmeth, - int (**pverify_recover_init) (EVP_PKEY_CTX - *ctx), - int (**pverify_recover) (EVP_PKEY_CTX - *ctx, - unsigned char - *sig, - size_t *siglen, - const unsigned - char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_signctx(const EVP_PKEY_METHOD *pmeth, - int (**psignctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (**psignctx) (EVP_PKEY_CTX *ctx, - unsigned char *sig, - size_t *siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_get_verifyctx(const EVP_PKEY_METHOD *pmeth, - int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (**pverifyctx) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - int siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_get_encrypt(const EVP_PKEY_METHOD *pmeth, - int (**pencrypt_init) (EVP_PKEY_CTX *ctx), - int (**pencryptfn) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_get_decrypt(const EVP_PKEY_METHOD *pmeth, - int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), - int (**pdecrypt) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_get_derive(const EVP_PKEY_METHOD *pmeth, - int (**pderive_init) (EVP_PKEY_CTX *ctx), - int (**pderive) (EVP_PKEY_CTX *ctx, - unsigned char *key, - size_t *keylen)); - -void EVP_PKEY_meth_get_ctrl(const EVP_PKEY_METHOD *pmeth, - int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, - void *p2), - int (**pctrl_str) (EVP_PKEY_CTX *ctx, - const char *type, - const char *value)); - -void EVP_PKEY_meth_get_digestsign(EVP_PKEY_METHOD *pmeth, - int (**digestsign) (EVP_MD_CTX *ctx, - unsigned char *sig, - size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_digestverify(EVP_PKEY_METHOD *pmeth, - int (**digestverify) (EVP_MD_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -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); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/evperr.h b/openSSL/lin32/include/openssl/evperr.h deleted file mode 100644 index b4ea90a..0000000 --- a/openSSL/lin32/include/openssl/evperr.h +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# include - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_EVP_strings(void); - -/* - * EVP function codes. - */ -# define EVP_F_AESNI_INIT_KEY 165 -# define EVP_F_AESNI_XTS_INIT_KEY 207 -# 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_T4_XTS_INIT_KEY 208 -# define EVP_F_AES_WRAP_CIPHER 170 -# define EVP_F_AES_XTS_INIT_KEY 209 -# 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_R_32_12_16_INIT_KEY 242 -# 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_BAD_KEY_LENGTH 195 -# 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_IV_LENGTH 194 -# 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_OUTPUT_WOULD_OVERFLOW 184 -# 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 -# define EVP_R_XTS_DUPLICATED_KEYS 183 - -#endif diff --git a/openSSL/lin32/include/openssl/hmac.h b/openSSL/lin32/include/openssl/hmac.h deleted file mode 100644 index 458efc1..0000000 --- a/openSSL/lin32/include/openssl/hmac.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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_HMAC_H -# define HEADER_HMAC_H - -# include - -# include - -# if OPENSSL_API_COMPAT < 0x10200000L -# define HMAC_MAX_MD_CBLOCK 128 /* Deprecated */ -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -size_t HMAC_size(const HMAC_CTX *e); -HMAC_CTX *HMAC_CTX_new(void); -int HMAC_CTX_reset(HMAC_CTX *ctx); -void HMAC_CTX_free(HMAC_CTX *ctx); - -DEPRECATEDIN_1_1_0(__owur int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md)) - -/*__owur*/ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md, ENGINE *impl); -/*__owur*/ int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, - size_t len); -/*__owur*/ int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, - unsigned int *len); -unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, - const unsigned char *d, size_t n, unsigned char *md, - unsigned int *md_len); -__owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); - -void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); -const EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin32/include/openssl/idea.h b/openSSL/lin32/include/openssl/idea.h deleted file mode 100644 index 4334f3e..0000000 --- a/openSSL/lin32/include/openssl/idea.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 1995-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_IDEA_H -# define HEADER_IDEA_H - -# include - -# ifndef OPENSSL_NO_IDEA -# ifdef __cplusplus -extern "C" { -# endif - -typedef unsigned int IDEA_INT; - -# define IDEA_ENCRYPT 1 -# define IDEA_DECRYPT 0 - -# define IDEA_BLOCK 8 -# define IDEA_KEY_LENGTH 16 - -typedef struct idea_key_st { - IDEA_INT data[9][6]; -} IDEA_KEY_SCHEDULE; - -const char *IDEA_options(void); -void IDEA_ecb_encrypt(const unsigned char *in, unsigned char *out, - IDEA_KEY_SCHEDULE *ks); -void IDEA_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks); -void IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk); -void IDEA_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int enc); -void IDEA_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int *num, int enc); -void IDEA_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int *num); -void IDEA_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define idea_options IDEA_options -# define idea_ecb_encrypt IDEA_ecb_encrypt -# define idea_set_encrypt_key IDEA_set_encrypt_key -# define idea_set_decrypt_key IDEA_set_decrypt_key -# define idea_cbc_encrypt IDEA_cbc_encrypt -# define idea_cfb64_encrypt IDEA_cfb64_encrypt -# define idea_ofb64_encrypt IDEA_ofb64_encrypt -# define idea_encrypt IDEA_encrypt -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/kdf.h b/openSSL/lin32/include/openssl/kdf.h deleted file mode 100644 index 5abd4c3..0000000 --- a/openSSL/lin32/include/openssl/kdf.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * 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_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_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)) - -# 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)) - -# 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)) - -# 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)) - -# 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)) - -# 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)) - -# 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)) - -# 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) - -# 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)) - -# 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)) - -# 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) - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/kdferr.h b/openSSL/lin32/include/openssl/kdferr.h deleted file mode 100644 index 3f51bd0..0000000 --- a/openSSL/lin32/include/openssl/kdferr.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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_KDFERR_H -# define HEADER_KDFERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/lhash.h b/openSSL/lin32/include/openssl/lhash.h deleted file mode 100644 index 2e42d72..0000000 --- a/openSSL/lin32/include/openssl/lhash.h +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - */ - -/* - * Header for dynamic hash table routines Author - Eric Young - */ - -#ifndef HEADER_LHASH_H -# define HEADER_LHASH_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct lhash_node_st OPENSSL_LH_NODE; -typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); -typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); -typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); -typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); -typedef struct lhash_st OPENSSL_LHASH; - -/* - * Macros for declaring and implementing type-safe wrappers for LHASH - * callbacks. This way, callbacks can be provided to LHASH structures without - * function pointer casting and the macro-defined callbacks provide - * per-variable casting before deferring to the underlying type-specific - * callbacks. NB: It is possible to place a "static" in front of both the - * DECLARE and IMPLEMENT macros if the functions are strictly internal. - */ - -/* First: "hash" functions */ -# define DECLARE_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *); -# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *arg) { \ - const o_type *a = arg; \ - return name##_hash(a); } -# define LHASH_HASH_FN(name) name##_LHASH_HASH - -/* Second: "compare" functions */ -# define DECLARE_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *, const void *); -# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ - const o_type *a = arg1; \ - const o_type *b = arg2; \ - return name##_cmp(a,b); } -# define LHASH_COMP_FN(name) name##_LHASH_COMP - -/* Fourth: "doall_arg" functions */ -# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *, void *); -# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ - o_type *a = arg1; \ - a_type *b = arg2; \ - name##_doall_arg(a, b); } -# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG - - -# define LH_LOAD_MULT 256 - -int OPENSSL_LH_error(OPENSSL_LHASH *lh); -OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); -void OPENSSL_LH_free(OPENSSL_LHASH *lh); -void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); -void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); -void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); -void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); -unsigned long OPENSSL_LH_strhash(const char *c); -unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); -unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); -void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); - -# ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); -# endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define _LHASH OPENSSL_LHASH -# define LHASH_NODE OPENSSL_LH_NODE -# define lh_error OPENSSL_LH_error -# define lh_new OPENSSL_LH_new -# define lh_free OPENSSL_LH_free -# define lh_insert OPENSSL_LH_insert -# define lh_delete OPENSSL_LH_delete -# define lh_retrieve OPENSSL_LH_retrieve -# define lh_doall OPENSSL_LH_doall -# define lh_doall_arg OPENSSL_LH_doall_arg -# define lh_strhash OPENSSL_LH_strhash -# define lh_num_items OPENSSL_LH_num_items -# ifndef OPENSSL_NO_STDIO -# define lh_stats OPENSSL_LH_stats -# define lh_node_stats OPENSSL_LH_node_stats -# define lh_node_usage_stats OPENSSL_LH_node_usage_stats -# endif -# define lh_stats_bio OPENSSL_LH_stats_bio -# define lh_node_stats_bio OPENSSL_LH_node_stats_bio -# define lh_node_usage_stats_bio OPENSSL_LH_node_usage_stats_bio -# endif - -/* Type checking... */ - -# define LHASH_OF(type) struct lhash_st_##type - -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ - { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ - } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ - { \ - OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ - } \ - 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_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_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_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_error((OPENSSL_LHASH *)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_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_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_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_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_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_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); \ - } \ - LHASH_OF(type) - -#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ - int_implement_lhash_doall(type, argtype, const type) - -#define IMPLEMENT_LHASH_DOALL_ARG(type, argtype) \ - int_implement_lhash_doall(type, argtype, type) - -#define int_implement_lhash_doall(type, argtype, cbargtype) \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ - void (*fn)(cbargtype *, argtype *), \ - argtype *arg) \ - { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ - } \ - LHASH_OF(type) - -DEFINE_LHASH_OF(OPENSSL_STRING); -# ifdef _MSC_VER -/* - * push and pop this warning: - * warning C4090: 'function': different 'const' qualifiers - */ -# pragma warning (push) -# pragma warning (disable: 4090) -# endif - -DEFINE_LHASH_OF(OPENSSL_CSTRING); - -# ifdef _MSC_VER -# 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 - -#endif diff --git a/openSSL/lin32/include/openssl/md2.h b/openSSL/lin32/include/openssl/md2.h deleted file mode 100644 index 7faf8e3..0000000 --- a/openSSL/lin32/include/openssl/md2.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 1995-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_MD2_H -# define HEADER_MD2_H - -# include - -# ifndef OPENSSL_NO_MD2 -# include -# ifdef __cplusplus -extern "C" { -# endif - -typedef unsigned char MD2_INT; - -# define MD2_DIGEST_LENGTH 16 -# define MD2_BLOCK 16 - -typedef struct MD2state_st { - unsigned int num; - unsigned char data[MD2_BLOCK]; - MD2_INT cksm[MD2_BLOCK]; - MD2_INT state[MD2_BLOCK]; -} MD2_CTX; - -const char *MD2_options(void); -int MD2_Init(MD2_CTX *c); -int MD2_Update(MD2_CTX *c, const unsigned char *data, size_t len); -int MD2_Final(unsigned char *md, MD2_CTX *c); -unsigned char *MD2(const unsigned char *d, size_t n, unsigned char *md); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/md4.h b/openSSL/lin32/include/openssl/md4.h deleted file mode 100644 index 940e29d..0000000 --- a/openSSL/lin32/include/openssl/md4.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 1995-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_MD4_H -# define HEADER_MD4_H - -# include - -# ifndef OPENSSL_NO_MD4 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD4_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define MD4_LONG unsigned int - -# define MD4_CBLOCK 64 -# define MD4_LBLOCK (MD4_CBLOCK/4) -# define MD4_DIGEST_LENGTH 16 - -typedef struct MD4state_st { - MD4_LONG A, B, C, D; - MD4_LONG Nl, Nh; - MD4_LONG data[MD4_LBLOCK]; - unsigned int num; -} MD4_CTX; - -int MD4_Init(MD4_CTX *c); -int MD4_Update(MD4_CTX *c, const void *data, size_t len); -int MD4_Final(unsigned char *md, MD4_CTX *c); -unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md); -void MD4_Transform(MD4_CTX *c, const unsigned char *b); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/md5.h b/openSSL/lin32/include/openssl/md5.h deleted file mode 100644 index 2deb772..0000000 --- a/openSSL/lin32/include/openssl/md5.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 1995-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_MD5_H -# define HEADER_MD5_H - -# include - -# ifndef OPENSSL_NO_MD5 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD5_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define MD5_LONG unsigned int - -# define MD5_CBLOCK 64 -# define MD5_LBLOCK (MD5_CBLOCK/4) -# define MD5_DIGEST_LENGTH 16 - -typedef struct MD5state_st { - MD5_LONG A, B, C, D; - MD5_LONG Nl, Nh; - MD5_LONG data[MD5_LBLOCK]; - unsigned int num; -} MD5_CTX; - -int MD5_Init(MD5_CTX *c); -int MD5_Update(MD5_CTX *c, const void *data, size_t len); -int MD5_Final(unsigned char *md, MD5_CTX *c); -unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md); -void MD5_Transform(MD5_CTX *c, const unsigned char *b); -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/mdc2.h b/openSSL/lin32/include/openssl/mdc2.h deleted file mode 100644 index aabd2bf..0000000 --- a/openSSL/lin32/include/openssl/mdc2.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 1995-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_MDC2_H -# define HEADER_MDC2_H - -# include - -#ifndef OPENSSL_NO_MDC2 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MDC2_BLOCK 8 -# define MDC2_DIGEST_LENGTH 16 - -typedef struct mdc2_ctx_st { - unsigned int num; - unsigned char data[MDC2_BLOCK]; - DES_cblock h, hh; - int pad_type; /* either 1 or 2, default 1 */ -} MDC2_CTX; - -int MDC2_Init(MDC2_CTX *c); -int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len); -int MDC2_Final(unsigned char *md, MDC2_CTX *c); -unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/modes.h b/openSSL/lin32/include/openssl/modes.h deleted file mode 100644 index d544f98..0000000 --- a/openSSL/lin32/include/openssl/modes.h +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright 2008-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_MODES_H -# define HEADER_MODES_H - -# include - -# ifdef __cplusplus -extern "C" { -# endif -typedef void (*block128_f) (const unsigned char in[16], - unsigned char out[16], const void *key); - -typedef void (*cbc128_f) (const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int enc); - -typedef void (*ctr128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16]); - -typedef void (*ccm128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16], - unsigned char cmac[16]); - -void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); - -void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], unsigned int *num, - block128_f block); - -void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], - unsigned int *num, ctr128_f ctr); - -void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - block128_f block); - -void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, - size_t bits, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); - -size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -typedef struct gcm128_context GCM128_CONTEXT; - -GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); -void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block); -void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, - size_t len); -int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag, - size_t len); -void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); -void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); - -typedef struct ccm128_context CCM128_CONTEXT; - -void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, - unsigned int M, unsigned int L, void *key, - block128_f block); -int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, const unsigned char *nonce, - size_t nlen, size_t mlen); -void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, const unsigned char *aad, - size_t alen); -int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); - -typedef struct xts128_context XTS128_CONTEXT; - -int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, - const unsigned char iv[16], - const unsigned char *inp, unsigned char *out, - size_t len, int enc); - -size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); - -size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); -size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv, - unsigned char *out, const unsigned char *in, - size_t inlen, block128_f block); -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 -typedef struct ocb128_context OCB128_CONTEXT; - -typedef void (*ocb128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - size_t start_block_num, - unsigned char offset_i[16], - const unsigned char L_[][16], - unsigned char checksum[16]); - -OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec, - block128_f encrypt, block128_f decrypt, - ocb128_f stream); -int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec, - block128_f encrypt, block128_f decrypt, - ocb128_f stream); -int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src, - void *keyenc, void *keydec); -int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv, - size_t len, size_t taglen); -int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx, const unsigned char *in, - unsigned char *out, size_t len); -int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx, const unsigned char *in, - unsigned char *out, size_t len); -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 */ - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/obj_mac.h b/openSSL/lin32/include/openssl/obj_mac.h deleted file mode 100644 index 53516a0..0000000 --- a/openSSL/lin32/include/openssl/obj_mac.h +++ /dev/null @@ -1,5198 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by crypto/objects/objects.pl - * - * Copyright 2000-2022 The OpenSSL Project Authors. All Rights Reserved. - * 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 SN_undef "UNDEF" -#define LN_undef "undefined" -#define NID_undef 0 -#define OBJ_undef 0L - -#define SN_itu_t "ITU-T" -#define LN_itu_t "itu-t" -#define NID_itu_t 645 -#define OBJ_itu_t 0L - -#define NID_ccitt 404 -#define OBJ_ccitt OBJ_itu_t - -#define SN_iso "ISO" -#define LN_iso "iso" -#define NID_iso 181 -#define OBJ_iso 1L - -#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T" -#define LN_joint_iso_itu_t "joint-iso-itu-t" -#define NID_joint_iso_itu_t 646 -#define OBJ_joint_iso_itu_t 2L - -#define NID_joint_iso_ccitt 393 -#define OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t - -#define SN_member_body "member-body" -#define LN_member_body "ISO Member Body" -#define NID_member_body 182 -#define OBJ_member_body OBJ_iso,2L - -#define SN_identified_organization "identified-organization" -#define NID_identified_organization 676 -#define OBJ_identified_organization OBJ_iso,3L - -#define SN_hmac_md5 "HMAC-MD5" -#define LN_hmac_md5 "hmac-md5" -#define NID_hmac_md5 780 -#define OBJ_hmac_md5 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L - -#define SN_hmac_sha1 "HMAC-SHA1" -#define LN_hmac_sha1 "hmac-sha1" -#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 -#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L - -#define SN_wap "wap" -#define NID_wap 678 -#define OBJ_wap OBJ_international_organizations,43L - -#define SN_wap_wsg "wap-wsg" -#define NID_wap_wsg 679 -#define OBJ_wap_wsg OBJ_wap,1L - -#define SN_selected_attribute_types "selected-attribute-types" -#define LN_selected_attribute_types "Selected Attribute Types" -#define NID_selected_attribute_types 394 -#define OBJ_selected_attribute_types OBJ_joint_iso_itu_t,5L,1L,5L - -#define SN_clearance "clearance" -#define NID_clearance 395 -#define OBJ_clearance OBJ_selected_attribute_types,55L - -#define SN_ISO_US "ISO-US" -#define LN_ISO_US "ISO US Member Body" -#define NID_ISO_US 183 -#define OBJ_ISO_US OBJ_member_body,840L - -#define SN_X9_57 "X9-57" -#define LN_X9_57 "X9.57" -#define NID_X9_57 184 -#define OBJ_X9_57 OBJ_ISO_US,10040L - -#define SN_X9cm "X9cm" -#define LN_X9cm "X9.57 CM ?" -#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 -#define OBJ_dsa OBJ_X9cm,1L - -#define SN_dsaWithSHA1 "DSA-SHA1" -#define LN_dsaWithSHA1 "dsaWithSHA1" -#define NID_dsaWithSHA1 113 -#define OBJ_dsaWithSHA1 OBJ_X9cm,3L - -#define SN_ansi_X9_62 "ansi-X9-62" -#define LN_ansi_X9_62 "ANSI X9.62" -#define NID_ansi_X9_62 405 -#define OBJ_ansi_X9_62 OBJ_ISO_US,10045L - -#define OBJ_X9_62_id_fieldType OBJ_ansi_X9_62,1L - -#define SN_X9_62_prime_field "prime-field" -#define NID_X9_62_prime_field 406 -#define OBJ_X9_62_prime_field OBJ_X9_62_id_fieldType,1L - -#define SN_X9_62_characteristic_two_field "characteristic-two-field" -#define NID_X9_62_characteristic_two_field 407 -#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L - -#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis" -#define NID_X9_62_id_characteristic_two_basis 680 -#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L - -#define SN_X9_62_onBasis "onBasis" -#define NID_X9_62_onBasis 681 -#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L - -#define SN_X9_62_tpBasis "tpBasis" -#define NID_X9_62_tpBasis 682 -#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L - -#define SN_X9_62_ppBasis "ppBasis" -#define NID_X9_62_ppBasis 683 -#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L - -#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L - -#define SN_X9_62_id_ecPublicKey "id-ecPublicKey" -#define NID_X9_62_id_ecPublicKey 408 -#define OBJ_X9_62_id_ecPublicKey OBJ_X9_62_id_publicKeyType,1L - -#define OBJ_X9_62_ellipticCurve OBJ_ansi_X9_62,3L - -#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L - -#define SN_X9_62_c2pnb163v1 "c2pnb163v1" -#define NID_X9_62_c2pnb163v1 684 -#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L - -#define SN_X9_62_c2pnb163v2 "c2pnb163v2" -#define NID_X9_62_c2pnb163v2 685 -#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L - -#define SN_X9_62_c2pnb163v3 "c2pnb163v3" -#define NID_X9_62_c2pnb163v3 686 -#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L - -#define SN_X9_62_c2pnb176v1 "c2pnb176v1" -#define NID_X9_62_c2pnb176v1 687 -#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L - -#define SN_X9_62_c2tnb191v1 "c2tnb191v1" -#define NID_X9_62_c2tnb191v1 688 -#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L - -#define SN_X9_62_c2tnb191v2 "c2tnb191v2" -#define NID_X9_62_c2tnb191v2 689 -#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L - -#define SN_X9_62_c2tnb191v3 "c2tnb191v3" -#define NID_X9_62_c2tnb191v3 690 -#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L - -#define SN_X9_62_c2onb191v4 "c2onb191v4" -#define NID_X9_62_c2onb191v4 691 -#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L - -#define SN_X9_62_c2onb191v5 "c2onb191v5" -#define NID_X9_62_c2onb191v5 692 -#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L - -#define SN_X9_62_c2pnb208w1 "c2pnb208w1" -#define NID_X9_62_c2pnb208w1 693 -#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L - -#define SN_X9_62_c2tnb239v1 "c2tnb239v1" -#define NID_X9_62_c2tnb239v1 694 -#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L - -#define SN_X9_62_c2tnb239v2 "c2tnb239v2" -#define NID_X9_62_c2tnb239v2 695 -#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L - -#define SN_X9_62_c2tnb239v3 "c2tnb239v3" -#define NID_X9_62_c2tnb239v3 696 -#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L - -#define SN_X9_62_c2onb239v4 "c2onb239v4" -#define NID_X9_62_c2onb239v4 697 -#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L - -#define SN_X9_62_c2onb239v5 "c2onb239v5" -#define NID_X9_62_c2onb239v5 698 -#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L - -#define SN_X9_62_c2pnb272w1 "c2pnb272w1" -#define NID_X9_62_c2pnb272w1 699 -#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L - -#define SN_X9_62_c2pnb304w1 "c2pnb304w1" -#define NID_X9_62_c2pnb304w1 700 -#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L - -#define SN_X9_62_c2tnb359v1 "c2tnb359v1" -#define NID_X9_62_c2tnb359v1 701 -#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L - -#define SN_X9_62_c2pnb368w1 "c2pnb368w1" -#define NID_X9_62_c2pnb368w1 702 -#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L - -#define SN_X9_62_c2tnb431r1 "c2tnb431r1" -#define NID_X9_62_c2tnb431r1 703 -#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L - -#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L - -#define SN_X9_62_prime192v1 "prime192v1" -#define NID_X9_62_prime192v1 409 -#define OBJ_X9_62_prime192v1 OBJ_X9_62_primeCurve,1L - -#define SN_X9_62_prime192v2 "prime192v2" -#define NID_X9_62_prime192v2 410 -#define OBJ_X9_62_prime192v2 OBJ_X9_62_primeCurve,2L - -#define SN_X9_62_prime192v3 "prime192v3" -#define NID_X9_62_prime192v3 411 -#define OBJ_X9_62_prime192v3 OBJ_X9_62_primeCurve,3L - -#define SN_X9_62_prime239v1 "prime239v1" -#define NID_X9_62_prime239v1 412 -#define OBJ_X9_62_prime239v1 OBJ_X9_62_primeCurve,4L - -#define SN_X9_62_prime239v2 "prime239v2" -#define NID_X9_62_prime239v2 413 -#define OBJ_X9_62_prime239v2 OBJ_X9_62_primeCurve,5L - -#define SN_X9_62_prime239v3 "prime239v3" -#define NID_X9_62_prime239v3 414 -#define OBJ_X9_62_prime239v3 OBJ_X9_62_primeCurve,6L - -#define SN_X9_62_prime256v1 "prime256v1" -#define NID_X9_62_prime256v1 415 -#define OBJ_X9_62_prime256v1 OBJ_X9_62_primeCurve,7L - -#define OBJ_X9_62_id_ecSigType OBJ_ansi_X9_62,4L - -#define SN_ecdsa_with_SHA1 "ecdsa-with-SHA1" -#define NID_ecdsa_with_SHA1 416 -#define OBJ_ecdsa_with_SHA1 OBJ_X9_62_id_ecSigType,1L - -#define SN_ecdsa_with_Recommended "ecdsa-with-Recommended" -#define NID_ecdsa_with_Recommended 791 -#define OBJ_ecdsa_with_Recommended OBJ_X9_62_id_ecSigType,2L - -#define SN_ecdsa_with_Specified "ecdsa-with-Specified" -#define NID_ecdsa_with_Specified 792 -#define OBJ_ecdsa_with_Specified OBJ_X9_62_id_ecSigType,3L - -#define SN_ecdsa_with_SHA224 "ecdsa-with-SHA224" -#define NID_ecdsa_with_SHA224 793 -#define OBJ_ecdsa_with_SHA224 OBJ_ecdsa_with_Specified,1L - -#define SN_ecdsa_with_SHA256 "ecdsa-with-SHA256" -#define NID_ecdsa_with_SHA256 794 -#define OBJ_ecdsa_with_SHA256 OBJ_ecdsa_with_Specified,2L - -#define SN_ecdsa_with_SHA384 "ecdsa-with-SHA384" -#define NID_ecdsa_with_SHA384 795 -#define OBJ_ecdsa_with_SHA384 OBJ_ecdsa_with_Specified,3L - -#define SN_ecdsa_with_SHA512 "ecdsa-with-SHA512" -#define NID_ecdsa_with_SHA512 796 -#define OBJ_ecdsa_with_SHA512 OBJ_ecdsa_with_Specified,4L - -#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L - -#define SN_secp112r1 "secp112r1" -#define NID_secp112r1 704 -#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L - -#define SN_secp112r2 "secp112r2" -#define NID_secp112r2 705 -#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L - -#define SN_secp128r1 "secp128r1" -#define NID_secp128r1 706 -#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L - -#define SN_secp128r2 "secp128r2" -#define NID_secp128r2 707 -#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L - -#define SN_secp160k1 "secp160k1" -#define NID_secp160k1 708 -#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L - -#define SN_secp160r1 "secp160r1" -#define NID_secp160r1 709 -#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L - -#define SN_secp160r2 "secp160r2" -#define NID_secp160r2 710 -#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L - -#define SN_secp192k1 "secp192k1" -#define NID_secp192k1 711 -#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L - -#define SN_secp224k1 "secp224k1" -#define NID_secp224k1 712 -#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L - -#define SN_secp224r1 "secp224r1" -#define NID_secp224r1 713 -#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L - -#define SN_secp256k1 "secp256k1" -#define NID_secp256k1 714 -#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L - -#define SN_secp384r1 "secp384r1" -#define NID_secp384r1 715 -#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L - -#define SN_secp521r1 "secp521r1" -#define NID_secp521r1 716 -#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L - -#define SN_sect113r1 "sect113r1" -#define NID_sect113r1 717 -#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L - -#define SN_sect113r2 "sect113r2" -#define NID_sect113r2 718 -#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L - -#define SN_sect131r1 "sect131r1" -#define NID_sect131r1 719 -#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L - -#define SN_sect131r2 "sect131r2" -#define NID_sect131r2 720 -#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L - -#define SN_sect163k1 "sect163k1" -#define NID_sect163k1 721 -#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L - -#define SN_sect163r1 "sect163r1" -#define NID_sect163r1 722 -#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L - -#define SN_sect163r2 "sect163r2" -#define NID_sect163r2 723 -#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L - -#define SN_sect193r1 "sect193r1" -#define NID_sect193r1 724 -#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L - -#define SN_sect193r2 "sect193r2" -#define NID_sect193r2 725 -#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L - -#define SN_sect233k1 "sect233k1" -#define NID_sect233k1 726 -#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L - -#define SN_sect233r1 "sect233r1" -#define NID_sect233r1 727 -#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L - -#define SN_sect239k1 "sect239k1" -#define NID_sect239k1 728 -#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L - -#define SN_sect283k1 "sect283k1" -#define NID_sect283k1 729 -#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L - -#define SN_sect283r1 "sect283r1" -#define NID_sect283r1 730 -#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L - -#define SN_sect409k1 "sect409k1" -#define NID_sect409k1 731 -#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L - -#define SN_sect409r1 "sect409r1" -#define NID_sect409r1 732 -#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L - -#define SN_sect571k1 "sect571k1" -#define NID_sect571k1 733 -#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L - -#define SN_sect571r1 "sect571r1" -#define NID_sect571r1 734 -#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L - -#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L - -#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1" -#define NID_wap_wsg_idm_ecid_wtls1 735 -#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L - -#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3" -#define NID_wap_wsg_idm_ecid_wtls3 736 -#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L - -#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4" -#define NID_wap_wsg_idm_ecid_wtls4 737 -#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L - -#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5" -#define NID_wap_wsg_idm_ecid_wtls5 738 -#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L - -#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6" -#define NID_wap_wsg_idm_ecid_wtls6 739 -#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L - -#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7" -#define NID_wap_wsg_idm_ecid_wtls7 740 -#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L - -#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8" -#define NID_wap_wsg_idm_ecid_wtls8 741 -#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L - -#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9" -#define NID_wap_wsg_idm_ecid_wtls9 742 -#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L - -#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10" -#define NID_wap_wsg_idm_ecid_wtls10 743 -#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L - -#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11" -#define NID_wap_wsg_idm_ecid_wtls11 744 -#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L - -#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12" -#define NID_wap_wsg_idm_ecid_wtls12 745 -#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L - -#define SN_cast5_cbc "CAST5-CBC" -#define LN_cast5_cbc "cast5-cbc" -#define NID_cast5_cbc 108 -#define OBJ_cast5_cbc OBJ_ISO_US,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 OBJ_ISO_US,113533L,7L,66L,12L - -#define SN_id_PasswordBasedMAC "id-PasswordBasedMAC" -#define LN_id_PasswordBasedMAC "password based MAC" -#define NID_id_PasswordBasedMAC 782 -#define OBJ_id_PasswordBasedMAC OBJ_ISO_US,113533L,7L,66L,13L - -#define SN_id_DHBasedMac "id-DHBasedMac" -#define LN_id_DHBasedMac "Diffie-Hellman based MAC" -#define NID_id_DHBasedMac 783 -#define OBJ_id_DHBasedMac OBJ_ISO_US,113533L,7L,66L,30L - -#define SN_rsadsi "rsadsi" -#define LN_rsadsi "RSA Data Security, Inc." -#define NID_rsadsi 1 -#define OBJ_rsadsi OBJ_ISO_US,113549L - -#define SN_pkcs "pkcs" -#define LN_pkcs "RSA Data Security, Inc. PKCS" -#define NID_pkcs 2 -#define OBJ_pkcs OBJ_rsadsi,1L - -#define SN_pkcs1 "pkcs1" -#define NID_pkcs1 186 -#define OBJ_pkcs1 OBJ_pkcs,1L - -#define LN_rsaEncryption "rsaEncryption" -#define NID_rsaEncryption 6 -#define OBJ_rsaEncryption OBJ_pkcs1,1L - -#define SN_md2WithRSAEncryption "RSA-MD2" -#define LN_md2WithRSAEncryption "md2WithRSAEncryption" -#define NID_md2WithRSAEncryption 7 -#define OBJ_md2WithRSAEncryption OBJ_pkcs1,2L - -#define SN_md4WithRSAEncryption "RSA-MD4" -#define LN_md4WithRSAEncryption "md4WithRSAEncryption" -#define NID_md4WithRSAEncryption 396 -#define OBJ_md4WithRSAEncryption OBJ_pkcs1,3L - -#define SN_md5WithRSAEncryption "RSA-MD5" -#define LN_md5WithRSAEncryption "md5WithRSAEncryption" -#define NID_md5WithRSAEncryption 8 -#define OBJ_md5WithRSAEncryption OBJ_pkcs1,4L - -#define SN_sha1WithRSAEncryption "RSA-SHA1" -#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -#define NID_sha1WithRSAEncryption 65 -#define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L - -#define SN_rsaesOaep "RSAES-OAEP" -#define LN_rsaesOaep "rsaesOaep" -#define NID_rsaesOaep 919 -#define OBJ_rsaesOaep OBJ_pkcs1,7L - -#define SN_mgf1 "MGF1" -#define LN_mgf1 "mgf1" -#define NID_mgf1 911 -#define OBJ_mgf1 OBJ_pkcs1,8L - -#define SN_pSpecified "PSPECIFIED" -#define LN_pSpecified "pSpecified" -#define NID_pSpecified 935 -#define OBJ_pSpecified OBJ_pkcs1,9L - -#define SN_rsassaPss "RSASSA-PSS" -#define LN_rsassaPss "rsassaPss" -#define NID_rsassaPss 912 -#define OBJ_rsassaPss OBJ_pkcs1,10L - -#define SN_sha256WithRSAEncryption "RSA-SHA256" -#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" -#define NID_sha256WithRSAEncryption 668 -#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L - -#define SN_sha384WithRSAEncryption "RSA-SHA384" -#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" -#define NID_sha384WithRSAEncryption 669 -#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L - -#define SN_sha512WithRSAEncryption "RSA-SHA512" -#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" -#define NID_sha512WithRSAEncryption 670 -#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L - -#define SN_sha224WithRSAEncryption "RSA-SHA224" -#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" -#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 - -#define LN_dhKeyAgreement "dhKeyAgreement" -#define NID_dhKeyAgreement 28 -#define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -#define SN_pkcs5 "pkcs5" -#define NID_pkcs5 187 -#define OBJ_pkcs5 OBJ_pkcs,5L - -#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -#define NID_pbeWithMD2AndDES_CBC 9 -#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs5,1L - -#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -#define NID_pbeWithMD5AndDES_CBC 10 -#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs5,3L - -#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -#define NID_pbeWithMD2AndRC2_CBC 168 -#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs5,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_pkcs5,6L - -#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -#define NID_pbeWithSHA1AndDES_CBC 170 -#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs5,10L - -#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -#define NID_pbeWithSHA1AndRC2_CBC 68 -#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs5,11L - -#define LN_id_pbkdf2 "PBKDF2" -#define NID_id_pbkdf2 69 -#define OBJ_id_pbkdf2 OBJ_pkcs5,12L - -#define LN_pbes2 "PBES2" -#define NID_pbes2 161 -#define OBJ_pbes2 OBJ_pkcs5,13L - -#define LN_pbmac1 "PBMAC1" -#define NID_pbmac1 162 -#define OBJ_pbmac1 OBJ_pkcs5,14L - -#define SN_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 SN_pkcs9 "pkcs9" -#define NID_pkcs9 47 -#define OBJ_pkcs9 OBJ_pkcs,9L - -#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_ext_req "extReq" -#define LN_ext_req "Extension Request" -#define NID_ext_req 172 -#define OBJ_ext_req OBJ_pkcs9,14L - -#define SN_SMIMECapabilities "SMIME-CAPS" -#define LN_SMIMECapabilities "S/MIME Capabilities" -#define NID_SMIMECapabilities 167 -#define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -#define SN_SMIME "SMIME" -#define LN_SMIME "S/MIME" -#define NID_SMIME 188 -#define OBJ_SMIME OBJ_pkcs9,16L - -#define SN_id_smime_mod "id-smime-mod" -#define NID_id_smime_mod 189 -#define OBJ_id_smime_mod OBJ_SMIME,0L - -#define SN_id_smime_ct "id-smime-ct" -#define NID_id_smime_ct 190 -#define OBJ_id_smime_ct OBJ_SMIME,1L - -#define SN_id_smime_aa "id-smime-aa" -#define NID_id_smime_aa 191 -#define OBJ_id_smime_aa OBJ_SMIME,2L - -#define SN_id_smime_alg "id-smime-alg" -#define NID_id_smime_alg 192 -#define OBJ_id_smime_alg OBJ_SMIME,3L - -#define SN_id_smime_cd "id-smime-cd" -#define NID_id_smime_cd 193 -#define OBJ_id_smime_cd OBJ_SMIME,4L - -#define SN_id_smime_spq "id-smime-spq" -#define NID_id_smime_spq 194 -#define OBJ_id_smime_spq OBJ_SMIME,5L - -#define SN_id_smime_cti "id-smime-cti" -#define NID_id_smime_cti 195 -#define OBJ_id_smime_cti OBJ_SMIME,6L - -#define SN_id_smime_mod_cms "id-smime-mod-cms" -#define NID_id_smime_mod_cms 196 -#define OBJ_id_smime_mod_cms OBJ_id_smime_mod,1L - -#define SN_id_smime_mod_ess "id-smime-mod-ess" -#define NID_id_smime_mod_ess 197 -#define OBJ_id_smime_mod_ess OBJ_id_smime_mod,2L - -#define SN_id_smime_mod_oid "id-smime-mod-oid" -#define NID_id_smime_mod_oid 198 -#define OBJ_id_smime_mod_oid OBJ_id_smime_mod,3L - -#define SN_id_smime_mod_msg_v3 "id-smime-mod-msg-v3" -#define NID_id_smime_mod_msg_v3 199 -#define OBJ_id_smime_mod_msg_v3 OBJ_id_smime_mod,4L - -#define SN_id_smime_mod_ets_eSignature_88 "id-smime-mod-ets-eSignature-88" -#define NID_id_smime_mod_ets_eSignature_88 200 -#define OBJ_id_smime_mod_ets_eSignature_88 OBJ_id_smime_mod,5L - -#define SN_id_smime_mod_ets_eSignature_97 "id-smime-mod-ets-eSignature-97" -#define NID_id_smime_mod_ets_eSignature_97 201 -#define OBJ_id_smime_mod_ets_eSignature_97 OBJ_id_smime_mod,6L - -#define SN_id_smime_mod_ets_eSigPolicy_88 "id-smime-mod-ets-eSigPolicy-88" -#define NID_id_smime_mod_ets_eSigPolicy_88 202 -#define OBJ_id_smime_mod_ets_eSigPolicy_88 OBJ_id_smime_mod,7L - -#define SN_id_smime_mod_ets_eSigPolicy_97 "id-smime-mod-ets-eSigPolicy-97" -#define NID_id_smime_mod_ets_eSigPolicy_97 203 -#define OBJ_id_smime_mod_ets_eSigPolicy_97 OBJ_id_smime_mod,8L - -#define SN_id_smime_ct_receipt "id-smime-ct-receipt" -#define NID_id_smime_ct_receipt 204 -#define OBJ_id_smime_ct_receipt OBJ_id_smime_ct,1L - -#define SN_id_smime_ct_authData "id-smime-ct-authData" -#define NID_id_smime_ct_authData 205 -#define OBJ_id_smime_ct_authData OBJ_id_smime_ct,2L - -#define SN_id_smime_ct_publishCert "id-smime-ct-publishCert" -#define NID_id_smime_ct_publishCert 206 -#define OBJ_id_smime_ct_publishCert OBJ_id_smime_ct,3L - -#define SN_id_smime_ct_TSTInfo "id-smime-ct-TSTInfo" -#define NID_id_smime_ct_TSTInfo 207 -#define OBJ_id_smime_ct_TSTInfo OBJ_id_smime_ct,4L - -#define SN_id_smime_ct_TDTInfo "id-smime-ct-TDTInfo" -#define NID_id_smime_ct_TDTInfo 208 -#define OBJ_id_smime_ct_TDTInfo OBJ_id_smime_ct,5L - -#define SN_id_smime_ct_contentInfo "id-smime-ct-contentInfo" -#define NID_id_smime_ct_contentInfo 209 -#define OBJ_id_smime_ct_contentInfo OBJ_id_smime_ct,6L - -#define SN_id_smime_ct_DVCSRequestData "id-smime-ct-DVCSRequestData" -#define NID_id_smime_ct_DVCSRequestData 210 -#define OBJ_id_smime_ct_DVCSRequestData OBJ_id_smime_ct,7L - -#define SN_id_smime_ct_DVCSResponseData "id-smime-ct-DVCSResponseData" -#define NID_id_smime_ct_DVCSResponseData 211 -#define OBJ_id_smime_ct_DVCSResponseData OBJ_id_smime_ct,8L - -#define SN_id_smime_ct_compressedData "id-smime-ct-compressedData" -#define NID_id_smime_ct_compressedData 786 -#define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L - -#define SN_id_smime_ct_contentCollection "id-smime-ct-contentCollection" -#define NID_id_smime_ct_contentCollection 1058 -#define OBJ_id_smime_ct_contentCollection OBJ_id_smime_ct,19L - -#define SN_id_smime_ct_authEnvelopedData "id-smime-ct-authEnvelopedData" -#define NID_id_smime_ct_authEnvelopedData 1059 -#define OBJ_id_smime_ct_authEnvelopedData OBJ_id_smime_ct,23L - -#define SN_id_ct_asciiTextWithCRLF "id-ct-asciiTextWithCRLF" -#define NID_id_ct_asciiTextWithCRLF 787 -#define OBJ_id_ct_asciiTextWithCRLF OBJ_id_smime_ct,27L - -#define SN_id_ct_xml "id-ct-xml" -#define NID_id_ct_xml 1060 -#define OBJ_id_ct_xml OBJ_id_smime_ct,28L - -#define SN_id_smime_aa_receiptRequest "id-smime-aa-receiptRequest" -#define NID_id_smime_aa_receiptRequest 212 -#define OBJ_id_smime_aa_receiptRequest OBJ_id_smime_aa,1L - -#define SN_id_smime_aa_securityLabel "id-smime-aa-securityLabel" -#define NID_id_smime_aa_securityLabel 213 -#define OBJ_id_smime_aa_securityLabel OBJ_id_smime_aa,2L - -#define SN_id_smime_aa_mlExpandHistory "id-smime-aa-mlExpandHistory" -#define NID_id_smime_aa_mlExpandHistory 214 -#define OBJ_id_smime_aa_mlExpandHistory OBJ_id_smime_aa,3L - -#define SN_id_smime_aa_contentHint "id-smime-aa-contentHint" -#define NID_id_smime_aa_contentHint 215 -#define OBJ_id_smime_aa_contentHint OBJ_id_smime_aa,4L - -#define SN_id_smime_aa_msgSigDigest "id-smime-aa-msgSigDigest" -#define NID_id_smime_aa_msgSigDigest 216 -#define OBJ_id_smime_aa_msgSigDigest OBJ_id_smime_aa,5L - -#define SN_id_smime_aa_encapContentType "id-smime-aa-encapContentType" -#define NID_id_smime_aa_encapContentType 217 -#define OBJ_id_smime_aa_encapContentType OBJ_id_smime_aa,6L - -#define SN_id_smime_aa_contentIdentifier "id-smime-aa-contentIdentifier" -#define NID_id_smime_aa_contentIdentifier 218 -#define OBJ_id_smime_aa_contentIdentifier OBJ_id_smime_aa,7L - -#define SN_id_smime_aa_macValue "id-smime-aa-macValue" -#define NID_id_smime_aa_macValue 219 -#define OBJ_id_smime_aa_macValue OBJ_id_smime_aa,8L - -#define SN_id_smime_aa_equivalentLabels "id-smime-aa-equivalentLabels" -#define NID_id_smime_aa_equivalentLabels 220 -#define OBJ_id_smime_aa_equivalentLabels OBJ_id_smime_aa,9L - -#define SN_id_smime_aa_contentReference "id-smime-aa-contentReference" -#define NID_id_smime_aa_contentReference 221 -#define OBJ_id_smime_aa_contentReference OBJ_id_smime_aa,10L - -#define SN_id_smime_aa_encrypKeyPref "id-smime-aa-encrypKeyPref" -#define NID_id_smime_aa_encrypKeyPref 222 -#define OBJ_id_smime_aa_encrypKeyPref OBJ_id_smime_aa,11L - -#define SN_id_smime_aa_signingCertificate "id-smime-aa-signingCertificate" -#define NID_id_smime_aa_signingCertificate 223 -#define OBJ_id_smime_aa_signingCertificate OBJ_id_smime_aa,12L - -#define SN_id_smime_aa_smimeEncryptCerts "id-smime-aa-smimeEncryptCerts" -#define NID_id_smime_aa_smimeEncryptCerts 224 -#define OBJ_id_smime_aa_smimeEncryptCerts OBJ_id_smime_aa,13L - -#define SN_id_smime_aa_timeStampToken "id-smime-aa-timeStampToken" -#define NID_id_smime_aa_timeStampToken 225 -#define OBJ_id_smime_aa_timeStampToken OBJ_id_smime_aa,14L - -#define SN_id_smime_aa_ets_sigPolicyId "id-smime-aa-ets-sigPolicyId" -#define NID_id_smime_aa_ets_sigPolicyId 226 -#define OBJ_id_smime_aa_ets_sigPolicyId OBJ_id_smime_aa,15L - -#define SN_id_smime_aa_ets_commitmentType "id-smime-aa-ets-commitmentType" -#define NID_id_smime_aa_ets_commitmentType 227 -#define OBJ_id_smime_aa_ets_commitmentType OBJ_id_smime_aa,16L - -#define SN_id_smime_aa_ets_signerLocation "id-smime-aa-ets-signerLocation" -#define NID_id_smime_aa_ets_signerLocation 228 -#define OBJ_id_smime_aa_ets_signerLocation OBJ_id_smime_aa,17L - -#define SN_id_smime_aa_ets_signerAttr "id-smime-aa-ets-signerAttr" -#define NID_id_smime_aa_ets_signerAttr 229 -#define OBJ_id_smime_aa_ets_signerAttr OBJ_id_smime_aa,18L - -#define SN_id_smime_aa_ets_otherSigCert "id-smime-aa-ets-otherSigCert" -#define NID_id_smime_aa_ets_otherSigCert 230 -#define OBJ_id_smime_aa_ets_otherSigCert OBJ_id_smime_aa,19L - -#define SN_id_smime_aa_ets_contentTimestamp "id-smime-aa-ets-contentTimestamp" -#define NID_id_smime_aa_ets_contentTimestamp 231 -#define OBJ_id_smime_aa_ets_contentTimestamp OBJ_id_smime_aa,20L - -#define SN_id_smime_aa_ets_CertificateRefs "id-smime-aa-ets-CertificateRefs" -#define NID_id_smime_aa_ets_CertificateRefs 232 -#define OBJ_id_smime_aa_ets_CertificateRefs OBJ_id_smime_aa,21L - -#define SN_id_smime_aa_ets_RevocationRefs "id-smime-aa-ets-RevocationRefs" -#define NID_id_smime_aa_ets_RevocationRefs 233 -#define OBJ_id_smime_aa_ets_RevocationRefs OBJ_id_smime_aa,22L - -#define SN_id_smime_aa_ets_certValues "id-smime-aa-ets-certValues" -#define NID_id_smime_aa_ets_certValues 234 -#define OBJ_id_smime_aa_ets_certValues OBJ_id_smime_aa,23L - -#define SN_id_smime_aa_ets_revocationValues "id-smime-aa-ets-revocationValues" -#define NID_id_smime_aa_ets_revocationValues 235 -#define OBJ_id_smime_aa_ets_revocationValues OBJ_id_smime_aa,24L - -#define SN_id_smime_aa_ets_escTimeStamp "id-smime-aa-ets-escTimeStamp" -#define NID_id_smime_aa_ets_escTimeStamp 236 -#define OBJ_id_smime_aa_ets_escTimeStamp OBJ_id_smime_aa,25L - -#define SN_id_smime_aa_ets_certCRLTimestamp "id-smime-aa-ets-certCRLTimestamp" -#define NID_id_smime_aa_ets_certCRLTimestamp 237 -#define OBJ_id_smime_aa_ets_certCRLTimestamp OBJ_id_smime_aa,26L - -#define SN_id_smime_aa_ets_archiveTimeStamp "id-smime-aa-ets-archiveTimeStamp" -#define NID_id_smime_aa_ets_archiveTimeStamp 238 -#define OBJ_id_smime_aa_ets_archiveTimeStamp OBJ_id_smime_aa,27L - -#define SN_id_smime_aa_signatureType "id-smime-aa-signatureType" -#define NID_id_smime_aa_signatureType 239 -#define OBJ_id_smime_aa_signatureType OBJ_id_smime_aa,28L - -#define SN_id_smime_aa_dvcs_dvc "id-smime-aa-dvcs-dvc" -#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 - -#define SN_id_smime_alg_ESDHwithRC2 "id-smime-alg-ESDHwithRC2" -#define NID_id_smime_alg_ESDHwithRC2 242 -#define OBJ_id_smime_alg_ESDHwithRC2 OBJ_id_smime_alg,2L - -#define SN_id_smime_alg_3DESwrap "id-smime-alg-3DESwrap" -#define NID_id_smime_alg_3DESwrap 243 -#define OBJ_id_smime_alg_3DESwrap OBJ_id_smime_alg,3L - -#define SN_id_smime_alg_RC2wrap "id-smime-alg-RC2wrap" -#define NID_id_smime_alg_RC2wrap 244 -#define OBJ_id_smime_alg_RC2wrap OBJ_id_smime_alg,4L - -#define SN_id_smime_alg_ESDH "id-smime-alg-ESDH" -#define NID_id_smime_alg_ESDH 245 -#define OBJ_id_smime_alg_ESDH OBJ_id_smime_alg,5L - -#define SN_id_smime_alg_CMS3DESwrap "id-smime-alg-CMS3DESwrap" -#define NID_id_smime_alg_CMS3DESwrap 246 -#define OBJ_id_smime_alg_CMS3DESwrap OBJ_id_smime_alg,6L - -#define SN_id_smime_alg_CMSRC2wrap "id-smime-alg-CMSRC2wrap" -#define NID_id_smime_alg_CMSRC2wrap 247 -#define OBJ_id_smime_alg_CMSRC2wrap OBJ_id_smime_alg,7L - -#define SN_id_alg_PWRI_KEK "id-alg-PWRI-KEK" -#define NID_id_alg_PWRI_KEK 893 -#define OBJ_id_alg_PWRI_KEK OBJ_id_smime_alg,9L - -#define SN_id_smime_cd_ldap "id-smime-cd-ldap" -#define NID_id_smime_cd_ldap 248 -#define OBJ_id_smime_cd_ldap OBJ_id_smime_cd,1L - -#define SN_id_smime_spq_ets_sqt_uri "id-smime-spq-ets-sqt-uri" -#define NID_id_smime_spq_ets_sqt_uri 249 -#define OBJ_id_smime_spq_ets_sqt_uri OBJ_id_smime_spq,1L - -#define SN_id_smime_spq_ets_sqt_unotice "id-smime-spq-ets-sqt-unotice" -#define NID_id_smime_spq_ets_sqt_unotice 250 -#define OBJ_id_smime_spq_ets_sqt_unotice OBJ_id_smime_spq,2L - -#define SN_id_smime_cti_ets_proofOfOrigin "id-smime-cti-ets-proofOfOrigin" -#define NID_id_smime_cti_ets_proofOfOrigin 251 -#define OBJ_id_smime_cti_ets_proofOfOrigin OBJ_id_smime_cti,1L - -#define SN_id_smime_cti_ets_proofOfReceipt "id-smime-cti-ets-proofOfReceipt" -#define NID_id_smime_cti_ets_proofOfReceipt 252 -#define OBJ_id_smime_cti_ets_proofOfReceipt OBJ_id_smime_cti,2L - -#define SN_id_smime_cti_ets_proofOfDelivery "id-smime-cti-ets-proofOfDelivery" -#define NID_id_smime_cti_ets_proofOfDelivery 253 -#define OBJ_id_smime_cti_ets_proofOfDelivery OBJ_id_smime_cti,3L - -#define SN_id_smime_cti_ets_proofOfSender "id-smime-cti-ets-proofOfSender" -#define NID_id_smime_cti_ets_proofOfSender 254 -#define OBJ_id_smime_cti_ets_proofOfSender OBJ_id_smime_cti,4L - -#define SN_id_smime_cti_ets_proofOfApproval "id-smime-cti-ets-proofOfApproval" -#define NID_id_smime_cti_ets_proofOfApproval 255 -#define OBJ_id_smime_cti_ets_proofOfApproval OBJ_id_smime_cti,5L - -#define SN_id_smime_cti_ets_proofOfCreation "id-smime-cti-ets-proofOfCreation" -#define NID_id_smime_cti_ets_proofOfCreation 256 -#define OBJ_id_smime_cti_ets_proofOfCreation OBJ_id_smime_cti,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 SN_ms_csp_name "CSPName" -#define LN_ms_csp_name "Microsoft CSP Name" -#define NID_ms_csp_name 417 -#define OBJ_ms_csp_name 1L,3L,6L,1L,4L,1L,311L,17L,1L - -#define SN_LocalKeySet "LocalKeySet" -#define LN_LocalKeySet "Microsoft Local Key set" -#define NID_LocalKeySet 856 -#define OBJ_LocalKeySet 1L,3L,6L,1L,4L,1L,311L,17L,2L - -#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 - -#define OBJ_pkcs12 OBJ_pkcs,12L - -#define OBJ_pkcs12_pbeids OBJ_pkcs12,1L - -#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 SN_md2 "MD2" -#define LN_md2 "md2" -#define NID_md2 3 -#define OBJ_md2 OBJ_rsadsi,2L,2L - -#define SN_md4 "MD4" -#define LN_md4 "md4" -#define NID_md4 257 -#define OBJ_md4 OBJ_rsadsi,2L,4L - -#define SN_md5 "MD5" -#define LN_md5 "md5" -#define NID_md5 4 -#define OBJ_md5 OBJ_rsadsi,2L,5L - -#define SN_md5_sha1 "MD5-SHA1" -#define LN_md5_sha1 "md5-sha1" -#define NID_md5_sha1 114 - -#define LN_hmacWithMD5 "hmacWithMD5" -#define NID_hmacWithMD5 797 -#define OBJ_hmacWithMD5 OBJ_rsadsi,2L,6L - -#define LN_hmacWithSHA1 "hmacWithSHA1" -#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 - -#define LN_hmacWithSHA256 "hmacWithSHA256" -#define NID_hmacWithSHA256 799 -#define OBJ_hmacWithSHA256 OBJ_rsadsi,2L,9L - -#define LN_hmacWithSHA384 "hmacWithSHA384" -#define NID_hmacWithSHA384 800 -#define OBJ_hmacWithSHA384 OBJ_rsadsi,2L,10L - -#define LN_hmacWithSHA512 "hmacWithSHA512" -#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 -#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_rc2_40_cbc "RC2-40-CBC" -#define LN_rc2_40_cbc "rc2-40-cbc" -#define NID_rc2_40_cbc 98 - -#define SN_rc2_64_cbc "RC2-64-CBC" -#define LN_rc2_64_cbc "rc2-64-cbc" -#define NID_rc2_64_cbc 166 - -#define SN_rc4 "RC4" -#define LN_rc4 "rc4" -#define NID_rc4 5 -#define OBJ_rc4 OBJ_rsadsi,3L,4L - -#define SN_rc4_40 "RC4-40" -#define LN_rc4_40 "rc4-40" -#define NID_rc4_40 97 - -#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_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_ms_ext_req "msExtReq" -#define LN_ms_ext_req "Microsoft Extension Request" -#define NID_ms_ext_req 171 -#define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -#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 - -#define SN_ms_smartcard_login "msSmartcardLogin" -#define LN_ms_smartcard_login "Microsoft Smartcard Login" -#define NID_ms_smartcard_login 648 -#define OBJ_ms_smartcard_login 1L,3L,6L,1L,4L,1L,311L,20L,2L,2L - -#define SN_ms_upn "msUPN" -#define LN_ms_upn "Microsoft User Principal Name" -#define NID_ms_upn 649 -#define OBJ_ms_upn 1L,3L,6L,1L,4L,1L,311L,20L,2L,3L - -#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_ecb "IDEA-ECB" -#define LN_idea_ecb "idea-ecb" -#define NID_idea_ecb 36 - -#define SN_idea_cfb64 "IDEA-CFB" -#define LN_idea_cfb64 "idea-cfb" -#define NID_idea_cfb64 35 - -#define SN_idea_ofb64 "IDEA-OFB" -#define LN_idea_ofb64 "idea-ofb" -#define NID_idea_ofb64 46 - -#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_id_pkix "PKIX" -#define NID_id_pkix 127 -#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -#define SN_id_pkix_mod "id-pkix-mod" -#define NID_id_pkix_mod 258 -#define OBJ_id_pkix_mod OBJ_id_pkix,0L - -#define SN_id_pe "id-pe" -#define NID_id_pe 175 -#define OBJ_id_pe OBJ_id_pkix,1L - -#define SN_id_qt "id-qt" -#define NID_id_qt 259 -#define OBJ_id_qt OBJ_id_pkix,2L - -#define SN_id_kp "id-kp" -#define NID_id_kp 128 -#define OBJ_id_kp OBJ_id_pkix,3L - -#define SN_id_it "id-it" -#define NID_id_it 260 -#define OBJ_id_it OBJ_id_pkix,4L - -#define SN_id_pkip "id-pkip" -#define NID_id_pkip 261 -#define OBJ_id_pkip OBJ_id_pkix,5L - -#define SN_id_alg "id-alg" -#define NID_id_alg 262 -#define OBJ_id_alg OBJ_id_pkix,6L - -#define SN_id_cmc "id-cmc" -#define NID_id_cmc 263 -#define OBJ_id_cmc OBJ_id_pkix,7L - -#define SN_id_on "id-on" -#define NID_id_on 264 -#define OBJ_id_on OBJ_id_pkix,8L - -#define SN_id_pda "id-pda" -#define NID_id_pda 265 -#define OBJ_id_pda OBJ_id_pkix,9L - -#define SN_id_aca "id-aca" -#define NID_id_aca 266 -#define OBJ_id_aca OBJ_id_pkix,10L - -#define SN_id_qcs "id-qcs" -#define NID_id_qcs 267 -#define OBJ_id_qcs OBJ_id_pkix,11L - -#define SN_id_cct "id-cct" -#define NID_id_cct 268 -#define OBJ_id_cct OBJ_id_pkix,12L - -#define SN_id_ppl "id-ppl" -#define NID_id_ppl 662 -#define OBJ_id_ppl OBJ_id_pkix,21L - -#define SN_id_ad "id-ad" -#define NID_id_ad 176 -#define OBJ_id_ad OBJ_id_pkix,48L - -#define SN_id_pkix1_explicit_88 "id-pkix1-explicit-88" -#define NID_id_pkix1_explicit_88 269 -#define OBJ_id_pkix1_explicit_88 OBJ_id_pkix_mod,1L - -#define SN_id_pkix1_implicit_88 "id-pkix1-implicit-88" -#define NID_id_pkix1_implicit_88 270 -#define OBJ_id_pkix1_implicit_88 OBJ_id_pkix_mod,2L - -#define SN_id_pkix1_explicit_93 "id-pkix1-explicit-93" -#define NID_id_pkix1_explicit_93 271 -#define OBJ_id_pkix1_explicit_93 OBJ_id_pkix_mod,3L - -#define SN_id_pkix1_implicit_93 "id-pkix1-implicit-93" -#define NID_id_pkix1_implicit_93 272 -#define OBJ_id_pkix1_implicit_93 OBJ_id_pkix_mod,4L - -#define SN_id_mod_crmf "id-mod-crmf" -#define NID_id_mod_crmf 273 -#define OBJ_id_mod_crmf OBJ_id_pkix_mod,5L - -#define SN_id_mod_cmc "id-mod-cmc" -#define NID_id_mod_cmc 274 -#define OBJ_id_mod_cmc OBJ_id_pkix_mod,6L - -#define SN_id_mod_kea_profile_88 "id-mod-kea-profile-88" -#define NID_id_mod_kea_profile_88 275 -#define OBJ_id_mod_kea_profile_88 OBJ_id_pkix_mod,7L - -#define SN_id_mod_kea_profile_93 "id-mod-kea-profile-93" -#define NID_id_mod_kea_profile_93 276 -#define OBJ_id_mod_kea_profile_93 OBJ_id_pkix_mod,8L - -#define SN_id_mod_cmp "id-mod-cmp" -#define NID_id_mod_cmp 277 -#define OBJ_id_mod_cmp OBJ_id_pkix_mod,9L - -#define SN_id_mod_qualified_cert_88 "id-mod-qualified-cert-88" -#define NID_id_mod_qualified_cert_88 278 -#define OBJ_id_mod_qualified_cert_88 OBJ_id_pkix_mod,10L - -#define SN_id_mod_qualified_cert_93 "id-mod-qualified-cert-93" -#define NID_id_mod_qualified_cert_93 279 -#define OBJ_id_mod_qualified_cert_93 OBJ_id_pkix_mod,11L - -#define SN_id_mod_attribute_cert "id-mod-attribute-cert" -#define NID_id_mod_attribute_cert 280 -#define OBJ_id_mod_attribute_cert OBJ_id_pkix_mod,12L - -#define SN_id_mod_timestamp_protocol "id-mod-timestamp-protocol" -#define NID_id_mod_timestamp_protocol 281 -#define OBJ_id_mod_timestamp_protocol OBJ_id_pkix_mod,13L - -#define SN_id_mod_ocsp "id-mod-ocsp" -#define NID_id_mod_ocsp 282 -#define OBJ_id_mod_ocsp OBJ_id_pkix_mod,14L - -#define SN_id_mod_dvcs "id-mod-dvcs" -#define NID_id_mod_dvcs 283 -#define OBJ_id_mod_dvcs OBJ_id_pkix_mod,15L - -#define SN_id_mod_cmp2000 "id-mod-cmp2000" -#define NID_id_mod_cmp2000 284 -#define OBJ_id_mod_cmp2000 OBJ_id_pkix_mod,16L - -#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_biometricInfo "biometricInfo" -#define LN_biometricInfo "Biometric Info" -#define NID_biometricInfo 285 -#define OBJ_biometricInfo OBJ_id_pe,2L - -#define SN_qcStatements "qcStatements" -#define NID_qcStatements 286 -#define OBJ_qcStatements OBJ_id_pe,3L - -#define SN_ac_auditEntity "ac-auditEntity" -#define NID_ac_auditEntity 287 -#define OBJ_ac_auditEntity OBJ_id_pe,4L - -#define SN_ac_targeting "ac-targeting" -#define NID_ac_targeting 288 -#define OBJ_ac_targeting OBJ_id_pe,5L - -#define SN_aaControls "aaControls" -#define NID_aaControls 289 -#define OBJ_aaControls OBJ_id_pe,6L - -#define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" -#define NID_sbgp_ipAddrBlock 290 -#define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L - -#define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" -#define NID_sbgp_autonomousSysNum 291 -#define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L - -#define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" -#define NID_sbgp_routerIdentifier 292 -#define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L - -#define SN_ac_proxying "ac-proxying" -#define NID_ac_proxying 397 -#define OBJ_ac_proxying OBJ_id_pe,10L - -#define SN_sinfo_access "subjectInfoAccess" -#define LN_sinfo_access "Subject Information Access" -#define NID_sinfo_access 398 -#define OBJ_sinfo_access OBJ_id_pe,11L - -#define SN_proxyCertInfo "proxyCertInfo" -#define LN_proxyCertInfo "Proxy Certificate Information" -#define NID_proxyCertInfo 663 -#define OBJ_proxyCertInfo OBJ_id_pe,14L - -#define SN_tlsfeature "tlsfeature" -#define LN_tlsfeature "TLS Feature" -#define NID_tlsfeature 1020 -#define OBJ_tlsfeature OBJ_id_pe,24L - -#define SN_id_qt_cps "id-qt-cps" -#define LN_id_qt_cps "Policy Qualifier CPS" -#define NID_id_qt_cps 164 -#define OBJ_id_qt_cps OBJ_id_qt,1L - -#define SN_id_qt_unotice "id-qt-unotice" -#define LN_id_qt_unotice "Policy Qualifier User Notice" -#define NID_id_qt_unotice 165 -#define OBJ_id_qt_unotice OBJ_id_qt,2L - -#define SN_textNotice "textNotice" -#define NID_textNotice 293 -#define OBJ_textNotice OBJ_id_qt,3L - -#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_ipsecEndSystem "ipsecEndSystem" -#define LN_ipsecEndSystem "IPSec End System" -#define NID_ipsecEndSystem 294 -#define OBJ_ipsecEndSystem OBJ_id_kp,5L - -#define SN_ipsecTunnel "ipsecTunnel" -#define LN_ipsecTunnel "IPSec Tunnel" -#define NID_ipsecTunnel 295 -#define OBJ_ipsecTunnel OBJ_id_kp,6L - -#define SN_ipsecUser "ipsecUser" -#define LN_ipsecUser "IPSec User" -#define NID_ipsecUser 296 -#define OBJ_ipsecUser OBJ_id_kp,7L - -#define SN_time_stamp "timeStamping" -#define LN_time_stamp "Time Stamping" -#define NID_time_stamp 133 -#define OBJ_time_stamp OBJ_id_kp,8L - -#define SN_OCSP_sign "OCSPSigning" -#define LN_OCSP_sign "OCSP Signing" -#define NID_OCSP_sign 180 -#define OBJ_OCSP_sign OBJ_id_kp,9L - -#define SN_dvcs "DVCS" -#define LN_dvcs "dvcs" -#define NID_dvcs 297 -#define OBJ_dvcs OBJ_id_kp,10L - -#define SN_ipsec_IKE "ipsecIKE" -#define LN_ipsec_IKE "ipsec Internet Key Exchange" -#define NID_ipsec_IKE 1022 -#define OBJ_ipsec_IKE OBJ_id_kp,17L - -#define SN_capwapAC "capwapAC" -#define LN_capwapAC "Ctrl/provision WAP Access" -#define NID_capwapAC 1023 -#define OBJ_capwapAC OBJ_id_kp,18L - -#define SN_capwapWTP "capwapWTP" -#define LN_capwapWTP "Ctrl/Provision WAP Termination" -#define NID_capwapWTP 1024 -#define OBJ_capwapWTP OBJ_id_kp,19L - -#define SN_sshClient "secureShellClient" -#define LN_sshClient "SSH Client" -#define NID_sshClient 1025 -#define OBJ_sshClient OBJ_id_kp,21L - -#define SN_sshServer "secureShellServer" -#define LN_sshServer "SSH Server" -#define NID_sshServer 1026 -#define OBJ_sshServer OBJ_id_kp,22L - -#define SN_sendRouter "sendRouter" -#define LN_sendRouter "Send Router" -#define NID_sendRouter 1027 -#define OBJ_sendRouter OBJ_id_kp,23L - -#define SN_sendProxiedRouter "sendProxiedRouter" -#define LN_sendProxiedRouter "Send Proxied Router" -#define NID_sendProxiedRouter 1028 -#define OBJ_sendProxiedRouter OBJ_id_kp,24L - -#define SN_sendOwner "sendOwner" -#define LN_sendOwner "Send Owner" -#define NID_sendOwner 1029 -#define OBJ_sendOwner OBJ_id_kp,25L - -#define SN_sendProxiedOwner "sendProxiedOwner" -#define LN_sendProxiedOwner "Send Proxied Owner" -#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 - -#define SN_id_it_signKeyPairTypes "id-it-signKeyPairTypes" -#define NID_id_it_signKeyPairTypes 299 -#define OBJ_id_it_signKeyPairTypes OBJ_id_it,2L - -#define SN_id_it_encKeyPairTypes "id-it-encKeyPairTypes" -#define NID_id_it_encKeyPairTypes 300 -#define OBJ_id_it_encKeyPairTypes OBJ_id_it,3L - -#define SN_id_it_preferredSymmAlg "id-it-preferredSymmAlg" -#define NID_id_it_preferredSymmAlg 301 -#define OBJ_id_it_preferredSymmAlg OBJ_id_it,4L - -#define SN_id_it_caKeyUpdateInfo "id-it-caKeyUpdateInfo" -#define NID_id_it_caKeyUpdateInfo 302 -#define OBJ_id_it_caKeyUpdateInfo OBJ_id_it,5L - -#define SN_id_it_currentCRL "id-it-currentCRL" -#define NID_id_it_currentCRL 303 -#define OBJ_id_it_currentCRL OBJ_id_it,6L - -#define SN_id_it_unsupportedOIDs "id-it-unsupportedOIDs" -#define NID_id_it_unsupportedOIDs 304 -#define OBJ_id_it_unsupportedOIDs OBJ_id_it,7L - -#define SN_id_it_subscriptionRequest "id-it-subscriptionRequest" -#define NID_id_it_subscriptionRequest 305 -#define OBJ_id_it_subscriptionRequest OBJ_id_it,8L - -#define SN_id_it_subscriptionResponse "id-it-subscriptionResponse" -#define NID_id_it_subscriptionResponse 306 -#define OBJ_id_it_subscriptionResponse OBJ_id_it,9L - -#define SN_id_it_keyPairParamReq "id-it-keyPairParamReq" -#define NID_id_it_keyPairParamReq 307 -#define OBJ_id_it_keyPairParamReq OBJ_id_it,10L - -#define SN_id_it_keyPairParamRep "id-it-keyPairParamRep" -#define NID_id_it_keyPairParamRep 308 -#define OBJ_id_it_keyPairParamRep OBJ_id_it,11L - -#define SN_id_it_revPassphrase "id-it-revPassphrase" -#define NID_id_it_revPassphrase 309 -#define OBJ_id_it_revPassphrase OBJ_id_it,12L - -#define SN_id_it_implicitConfirm "id-it-implicitConfirm" -#define NID_id_it_implicitConfirm 310 -#define OBJ_id_it_implicitConfirm OBJ_id_it,13L - -#define SN_id_it_confirmWaitTime "id-it-confirmWaitTime" -#define NID_id_it_confirmWaitTime 311 -#define OBJ_id_it_confirmWaitTime OBJ_id_it,14L - -#define SN_id_it_origPKIMessage "id-it-origPKIMessage" -#define NID_id_it_origPKIMessage 312 -#define OBJ_id_it_origPKIMessage OBJ_id_it,15L - -#define SN_id_it_suppLangTags "id-it-suppLangTags" -#define NID_id_it_suppLangTags 784 -#define OBJ_id_it_suppLangTags OBJ_id_it,16L - -#define SN_id_regCtrl "id-regCtrl" -#define NID_id_regCtrl 313 -#define OBJ_id_regCtrl OBJ_id_pkip,1L - -#define SN_id_regInfo "id-regInfo" -#define NID_id_regInfo 314 -#define OBJ_id_regInfo OBJ_id_pkip,2L - -#define SN_id_regCtrl_regToken "id-regCtrl-regToken" -#define NID_id_regCtrl_regToken 315 -#define OBJ_id_regCtrl_regToken OBJ_id_regCtrl,1L - -#define SN_id_regCtrl_authenticator "id-regCtrl-authenticator" -#define NID_id_regCtrl_authenticator 316 -#define OBJ_id_regCtrl_authenticator OBJ_id_regCtrl,2L - -#define SN_id_regCtrl_pkiPublicationInfo "id-regCtrl-pkiPublicationInfo" -#define NID_id_regCtrl_pkiPublicationInfo 317 -#define OBJ_id_regCtrl_pkiPublicationInfo OBJ_id_regCtrl,3L - -#define SN_id_regCtrl_pkiArchiveOptions "id-regCtrl-pkiArchiveOptions" -#define NID_id_regCtrl_pkiArchiveOptions 318 -#define OBJ_id_regCtrl_pkiArchiveOptions OBJ_id_regCtrl,4L - -#define SN_id_regCtrl_oldCertID "id-regCtrl-oldCertID" -#define NID_id_regCtrl_oldCertID 319 -#define OBJ_id_regCtrl_oldCertID OBJ_id_regCtrl,5L - -#define SN_id_regCtrl_protocolEncrKey "id-regCtrl-protocolEncrKey" -#define NID_id_regCtrl_protocolEncrKey 320 -#define OBJ_id_regCtrl_protocolEncrKey OBJ_id_regCtrl,6L - -#define SN_id_regInfo_utf8Pairs "id-regInfo-utf8Pairs" -#define NID_id_regInfo_utf8Pairs 321 -#define OBJ_id_regInfo_utf8Pairs OBJ_id_regInfo,1L - -#define SN_id_regInfo_certReq "id-regInfo-certReq" -#define NID_id_regInfo_certReq 322 -#define OBJ_id_regInfo_certReq OBJ_id_regInfo,2L - -#define SN_id_alg_des40 "id-alg-des40" -#define NID_id_alg_des40 323 -#define OBJ_id_alg_des40 OBJ_id_alg,1L - -#define SN_id_alg_noSignature "id-alg-noSignature" -#define NID_id_alg_noSignature 324 -#define OBJ_id_alg_noSignature OBJ_id_alg,2L - -#define SN_id_alg_dh_sig_hmac_sha1 "id-alg-dh-sig-hmac-sha1" -#define NID_id_alg_dh_sig_hmac_sha1 325 -#define OBJ_id_alg_dh_sig_hmac_sha1 OBJ_id_alg,3L - -#define SN_id_alg_dh_pop "id-alg-dh-pop" -#define NID_id_alg_dh_pop 326 -#define OBJ_id_alg_dh_pop OBJ_id_alg,4L - -#define SN_id_cmc_statusInfo "id-cmc-statusInfo" -#define NID_id_cmc_statusInfo 327 -#define OBJ_id_cmc_statusInfo OBJ_id_cmc,1L - -#define SN_id_cmc_identification "id-cmc-identification" -#define NID_id_cmc_identification 328 -#define OBJ_id_cmc_identification OBJ_id_cmc,2L - -#define SN_id_cmc_identityProof "id-cmc-identityProof" -#define NID_id_cmc_identityProof 329 -#define OBJ_id_cmc_identityProof OBJ_id_cmc,3L - -#define SN_id_cmc_dataReturn "id-cmc-dataReturn" -#define NID_id_cmc_dataReturn 330 -#define OBJ_id_cmc_dataReturn OBJ_id_cmc,4L - -#define SN_id_cmc_transactionId "id-cmc-transactionId" -#define NID_id_cmc_transactionId 331 -#define OBJ_id_cmc_transactionId OBJ_id_cmc,5L - -#define SN_id_cmc_senderNonce "id-cmc-senderNonce" -#define NID_id_cmc_senderNonce 332 -#define OBJ_id_cmc_senderNonce OBJ_id_cmc,6L - -#define SN_id_cmc_recipientNonce "id-cmc-recipientNonce" -#define NID_id_cmc_recipientNonce 333 -#define OBJ_id_cmc_recipientNonce OBJ_id_cmc,7L - -#define SN_id_cmc_addExtensions "id-cmc-addExtensions" -#define NID_id_cmc_addExtensions 334 -#define OBJ_id_cmc_addExtensions OBJ_id_cmc,8L - -#define SN_id_cmc_encryptedPOP "id-cmc-encryptedPOP" -#define NID_id_cmc_encryptedPOP 335 -#define OBJ_id_cmc_encryptedPOP OBJ_id_cmc,9L - -#define SN_id_cmc_decryptedPOP "id-cmc-decryptedPOP" -#define NID_id_cmc_decryptedPOP 336 -#define OBJ_id_cmc_decryptedPOP OBJ_id_cmc,10L - -#define SN_id_cmc_lraPOPWitness "id-cmc-lraPOPWitness" -#define NID_id_cmc_lraPOPWitness 337 -#define OBJ_id_cmc_lraPOPWitness OBJ_id_cmc,11L - -#define SN_id_cmc_getCert "id-cmc-getCert" -#define NID_id_cmc_getCert 338 -#define OBJ_id_cmc_getCert OBJ_id_cmc,15L - -#define SN_id_cmc_getCRL "id-cmc-getCRL" -#define NID_id_cmc_getCRL 339 -#define OBJ_id_cmc_getCRL OBJ_id_cmc,16L - -#define SN_id_cmc_revokeRequest "id-cmc-revokeRequest" -#define NID_id_cmc_revokeRequest 340 -#define OBJ_id_cmc_revokeRequest OBJ_id_cmc,17L - -#define SN_id_cmc_regInfo "id-cmc-regInfo" -#define NID_id_cmc_regInfo 341 -#define OBJ_id_cmc_regInfo OBJ_id_cmc,18L - -#define SN_id_cmc_responseInfo "id-cmc-responseInfo" -#define NID_id_cmc_responseInfo 342 -#define OBJ_id_cmc_responseInfo OBJ_id_cmc,19L - -#define SN_id_cmc_queryPending "id-cmc-queryPending" -#define NID_id_cmc_queryPending 343 -#define OBJ_id_cmc_queryPending OBJ_id_cmc,21L - -#define SN_id_cmc_popLinkRandom "id-cmc-popLinkRandom" -#define NID_id_cmc_popLinkRandom 344 -#define OBJ_id_cmc_popLinkRandom OBJ_id_cmc,22L - -#define SN_id_cmc_popLinkWitness "id-cmc-popLinkWitness" -#define NID_id_cmc_popLinkWitness 345 -#define OBJ_id_cmc_popLinkWitness OBJ_id_cmc,23L - -#define SN_id_cmc_confirmCertAcceptance "id-cmc-confirmCertAcceptance" -#define NID_id_cmc_confirmCertAcceptance 346 -#define OBJ_id_cmc_confirmCertAcceptance OBJ_id_cmc,24L - -#define SN_id_on_personalData "id-on-personalData" -#define NID_id_on_personalData 347 -#define OBJ_id_on_personalData OBJ_id_on,1L - -#define SN_id_on_permanentIdentifier "id-on-permanentIdentifier" -#define LN_id_on_permanentIdentifier "Permanent Identifier" -#define NID_id_on_permanentIdentifier 858 -#define OBJ_id_on_permanentIdentifier OBJ_id_on,3L - -#define SN_id_pda_dateOfBirth "id-pda-dateOfBirth" -#define NID_id_pda_dateOfBirth 348 -#define OBJ_id_pda_dateOfBirth OBJ_id_pda,1L - -#define SN_id_pda_placeOfBirth "id-pda-placeOfBirth" -#define NID_id_pda_placeOfBirth 349 -#define OBJ_id_pda_placeOfBirth OBJ_id_pda,2L - -#define SN_id_pda_gender "id-pda-gender" -#define NID_id_pda_gender 351 -#define OBJ_id_pda_gender OBJ_id_pda,3L - -#define SN_id_pda_countryOfCitizenship "id-pda-countryOfCitizenship" -#define NID_id_pda_countryOfCitizenship 352 -#define OBJ_id_pda_countryOfCitizenship OBJ_id_pda,4L - -#define SN_id_pda_countryOfResidence "id-pda-countryOfResidence" -#define NID_id_pda_countryOfResidence 353 -#define OBJ_id_pda_countryOfResidence OBJ_id_pda,5L - -#define SN_id_aca_authenticationInfo "id-aca-authenticationInfo" -#define NID_id_aca_authenticationInfo 354 -#define OBJ_id_aca_authenticationInfo OBJ_id_aca,1L - -#define SN_id_aca_accessIdentity "id-aca-accessIdentity" -#define NID_id_aca_accessIdentity 355 -#define OBJ_id_aca_accessIdentity OBJ_id_aca,2L - -#define SN_id_aca_chargingIdentity "id-aca-chargingIdentity" -#define NID_id_aca_chargingIdentity 356 -#define OBJ_id_aca_chargingIdentity OBJ_id_aca,3L - -#define SN_id_aca_group "id-aca-group" -#define NID_id_aca_group 357 -#define OBJ_id_aca_group OBJ_id_aca,4L - -#define SN_id_aca_role "id-aca-role" -#define NID_id_aca_role 358 -#define OBJ_id_aca_role OBJ_id_aca,5L - -#define SN_id_aca_encAttrs "id-aca-encAttrs" -#define NID_id_aca_encAttrs 399 -#define OBJ_id_aca_encAttrs OBJ_id_aca,6L - -#define SN_id_qcs_pkixQCSyntax_v1 "id-qcs-pkixQCSyntax-v1" -#define NID_id_qcs_pkixQCSyntax_v1 359 -#define OBJ_id_qcs_pkixQCSyntax_v1 OBJ_id_qcs,1L - -#define SN_id_cct_crs "id-cct-crs" -#define NID_id_cct_crs 360 -#define OBJ_id_cct_crs OBJ_id_cct,1L - -#define SN_id_cct_PKIData "id-cct-PKIData" -#define NID_id_cct_PKIData 361 -#define OBJ_id_cct_PKIData OBJ_id_cct,2L - -#define SN_id_cct_PKIResponse "id-cct-PKIResponse" -#define NID_id_cct_PKIResponse 362 -#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L - -#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage" -#define LN_id_ppl_anyLanguage "Any language" -#define NID_id_ppl_anyLanguage 664 -#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L - -#define SN_id_ppl_inheritAll "id-ppl-inheritAll" -#define LN_id_ppl_inheritAll "Inherit all" -#define NID_id_ppl_inheritAll 665 -#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L - -#define SN_Independent "id-ppl-independent" -#define LN_Independent "Independent" -#define NID_Independent 667 -#define OBJ_Independent OBJ_id_ppl,2L - -#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_ad_timeStamping "ad_timestamping" -#define LN_ad_timeStamping "AD Time Stamping" -#define NID_ad_timeStamping 363 -#define OBJ_ad_timeStamping OBJ_id_ad,3L - -#define SN_ad_dvcs "AD_DVCS" -#define LN_ad_dvcs "ad dvcs" -#define NID_ad_dvcs 364 -#define OBJ_ad_dvcs OBJ_id_ad,4L - -#define SN_caRepository "caRepository" -#define LN_caRepository "CA Repository" -#define NID_caRepository 785 -#define OBJ_caRepository OBJ_id_ad,5L - -#define OBJ_id_pkix_OCSP OBJ_ad_OCSP - -#define SN_id_pkix_OCSP_basic "basicOCSPResponse" -#define LN_id_pkix_OCSP_basic "Basic OCSP Response" -#define NID_id_pkix_OCSP_basic 365 -#define OBJ_id_pkix_OCSP_basic OBJ_id_pkix_OCSP,1L - -#define SN_id_pkix_OCSP_Nonce "Nonce" -#define LN_id_pkix_OCSP_Nonce "OCSP Nonce" -#define NID_id_pkix_OCSP_Nonce 366 -#define OBJ_id_pkix_OCSP_Nonce OBJ_id_pkix_OCSP,2L - -#define SN_id_pkix_OCSP_CrlID "CrlID" -#define LN_id_pkix_OCSP_CrlID "OCSP CRL ID" -#define NID_id_pkix_OCSP_CrlID 367 -#define OBJ_id_pkix_OCSP_CrlID OBJ_id_pkix_OCSP,3L - -#define SN_id_pkix_OCSP_acceptableResponses "acceptableResponses" -#define LN_id_pkix_OCSP_acceptableResponses "Acceptable OCSP Responses" -#define NID_id_pkix_OCSP_acceptableResponses 368 -#define OBJ_id_pkix_OCSP_acceptableResponses OBJ_id_pkix_OCSP,4L - -#define SN_id_pkix_OCSP_noCheck "noCheck" -#define LN_id_pkix_OCSP_noCheck "OCSP No Check" -#define NID_id_pkix_OCSP_noCheck 369 -#define OBJ_id_pkix_OCSP_noCheck OBJ_id_pkix_OCSP,5L - -#define SN_id_pkix_OCSP_archiveCutoff "archiveCutoff" -#define LN_id_pkix_OCSP_archiveCutoff "OCSP Archive Cutoff" -#define NID_id_pkix_OCSP_archiveCutoff 370 -#define OBJ_id_pkix_OCSP_archiveCutoff OBJ_id_pkix_OCSP,6L - -#define SN_id_pkix_OCSP_serviceLocator "serviceLocator" -#define LN_id_pkix_OCSP_serviceLocator "OCSP Service Locator" -#define NID_id_pkix_OCSP_serviceLocator 371 -#define OBJ_id_pkix_OCSP_serviceLocator OBJ_id_pkix_OCSP,7L - -#define SN_id_pkix_OCSP_extendedStatus "extendedStatus" -#define LN_id_pkix_OCSP_extendedStatus "Extended OCSP Status" -#define NID_id_pkix_OCSP_extendedStatus 372 -#define OBJ_id_pkix_OCSP_extendedStatus OBJ_id_pkix_OCSP,8L - -#define SN_id_pkix_OCSP_valid "valid" -#define NID_id_pkix_OCSP_valid 373 -#define OBJ_id_pkix_OCSP_valid OBJ_id_pkix_OCSP,9L - -#define SN_id_pkix_OCSP_path "path" -#define NID_id_pkix_OCSP_path 374 -#define OBJ_id_pkix_OCSP_path OBJ_id_pkix_OCSP,10L - -#define SN_id_pkix_OCSP_trustRoot "trustRoot" -#define LN_id_pkix_OCSP_trustRoot "Trust Root" -#define NID_id_pkix_OCSP_trustRoot 375 -#define OBJ_id_pkix_OCSP_trustRoot OBJ_id_pkix_OCSP,11L - -#define SN_algorithm "algorithm" -#define LN_algorithm "algorithm" -#define NID_algorithm 376 -#define OBJ_algorithm 1L,3L,14L,3L,2L - -#define SN_md5WithRSA "RSA-NP-MD5" -#define LN_md5WithRSA "md5WithRSA" -#define NID_md5WithRSA 104 -#define OBJ_md5WithRSA OBJ_algorithm,3L - -#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_cbc "DES-CBC" -#define LN_des_cbc "des-cbc" -#define NID_des_cbc 31 -#define OBJ_des_cbc OBJ_algorithm,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_des_cfb64 "DES-CFB" -#define LN_des_cfb64 "des-cfb" -#define NID_des_cfb64 30 -#define OBJ_des_cfb64 OBJ_algorithm,9L - -#define SN_rsaSignature "rsaSignature" -#define NID_rsaSignature 377 -#define OBJ_rsaSignature OBJ_algorithm,11L - -#define SN_dsa_2 "DSA-old" -#define LN_dsa_2 "dsaEncryption-old" -#define NID_dsa_2 67 -#define OBJ_dsa_2 OBJ_algorithm,12L - -#define SN_dsaWithSHA "DSA-SHA" -#define LN_dsaWithSHA "dsaWithSHA" -#define NID_dsaWithSHA 66 -#define OBJ_dsaWithSHA OBJ_algorithm,13L - -#define SN_shaWithRSAEncryption "RSA-SHA" -#define LN_shaWithRSAEncryption "shaWithRSAEncryption" -#define NID_shaWithRSAEncryption 42 -#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -#define SN_des_ede_ecb "DES-EDE" -#define LN_des_ede_ecb "des-ede" -#define NID_des_ede_ecb 32 -#define OBJ_des_ede_ecb OBJ_algorithm,17L - -#define SN_des_ede3_ecb "DES-EDE3" -#define LN_des_ede3_ecb "des-ede3" -#define NID_des_ede3_ecb 33 - -#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_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 - -#define SN_desx_cbc "DESX-CBC" -#define LN_desx_cbc "desx-cbc" -#define NID_desx_cbc 80 - -#define SN_sha "SHA" -#define LN_sha "sha" -#define NID_sha 41 -#define OBJ_sha OBJ_algorithm,18L - -#define SN_sha1 "SHA1" -#define LN_sha1 "sha1" -#define NID_sha1 64 -#define OBJ_sha1 OBJ_algorithm,26L - -#define SN_dsaWithSHA1_2 "DSA-SHA1-old" -#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -#define NID_dsaWithSHA1_2 70 -#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -#define SN_sha1WithRSA "RSA-SHA1-2" -#define LN_sha1WithRSA "sha1WithRSA" -#define NID_sha1WithRSA 115 -#define OBJ_sha1WithRSA OBJ_algorithm,29L - -#define SN_ripemd160 "RIPEMD160" -#define LN_ripemd160 "ripemd160" -#define NID_ripemd160 117 -#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -#define SN_ripemd160WithRSA "RSA-RIPEMD160" -#define LN_ripemd160WithRSA "ripemd160WithRSA" -#define NID_ripemd160WithRSA 119 -#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -#define SN_blake2b512 "BLAKE2b512" -#define LN_blake2b512 "blake2b512" -#define NID_blake2b512 1056 -#define OBJ_blake2b512 1L,3L,6L,1L,4L,1L,1722L,12L,2L,1L,16L - -#define SN_blake2s256 "BLAKE2s256" -#define LN_blake2s256 "blake2s256" -#define NID_blake2s256 1057 -#define OBJ_blake2s256 1L,3L,6L,1L,4L,1L,1722L,12L,2L,2L,8L - -#define SN_sxnet "SXNetID" -#define LN_sxnet "Strong Extranet ID" -#define NID_sxnet 143 -#define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -#define SN_X500 "X500" -#define LN_X500 "directory services (X.500)" -#define NID_X500 11 -#define OBJ_X500 2L,5L - -#define SN_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_surname "SN" -#define LN_surname "surname" -#define NID_surname 100 -#define OBJ_surname OBJ_X509,4L - -#define LN_serialNumber "serialNumber" -#define NID_serialNumber 105 -#define OBJ_serialNumber OBJ_X509,5L - -#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 - -#define SN_stateOrProvinceName "ST" -#define LN_stateOrProvinceName "stateOrProvinceName" -#define NID_stateOrProvinceName 16 -#define OBJ_stateOrProvinceName OBJ_X509,8L - -#define SN_streetAddress "street" -#define LN_streetAddress "streetAddress" -#define NID_streetAddress 660 -#define OBJ_streetAddress OBJ_X509,9L - -#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_title "title" -#define LN_title "title" -#define NID_title 106 -#define OBJ_title OBJ_X509,12L - -#define LN_description "description" -#define NID_description 107 -#define OBJ_description OBJ_X509,13L - -#define LN_searchGuide "searchGuide" -#define NID_searchGuide 859 -#define OBJ_searchGuide OBJ_X509,14L - -#define LN_businessCategory "businessCategory" -#define NID_businessCategory 860 -#define OBJ_businessCategory OBJ_X509,15L - -#define LN_postalAddress "postalAddress" -#define NID_postalAddress 861 -#define OBJ_postalAddress OBJ_X509,16L - -#define LN_postalCode "postalCode" -#define NID_postalCode 661 -#define OBJ_postalCode OBJ_X509,17L - -#define LN_postOfficeBox "postOfficeBox" -#define NID_postOfficeBox 862 -#define OBJ_postOfficeBox OBJ_X509,18L - -#define LN_physicalDeliveryOfficeName "physicalDeliveryOfficeName" -#define NID_physicalDeliveryOfficeName 863 -#define OBJ_physicalDeliveryOfficeName OBJ_X509,19L - -#define LN_telephoneNumber "telephoneNumber" -#define NID_telephoneNumber 864 -#define OBJ_telephoneNumber OBJ_X509,20L - -#define LN_telexNumber "telexNumber" -#define NID_telexNumber 865 -#define OBJ_telexNumber OBJ_X509,21L - -#define LN_teletexTerminalIdentifier "teletexTerminalIdentifier" -#define NID_teletexTerminalIdentifier 866 -#define OBJ_teletexTerminalIdentifier OBJ_X509,22L - -#define LN_facsimileTelephoneNumber "facsimileTelephoneNumber" -#define NID_facsimileTelephoneNumber 867 -#define OBJ_facsimileTelephoneNumber OBJ_X509,23L - -#define LN_x121Address "x121Address" -#define NID_x121Address 868 -#define OBJ_x121Address OBJ_X509,24L - -#define LN_internationaliSDNNumber "internationaliSDNNumber" -#define NID_internationaliSDNNumber 869 -#define OBJ_internationaliSDNNumber OBJ_X509,25L - -#define LN_registeredAddress "registeredAddress" -#define NID_registeredAddress 870 -#define OBJ_registeredAddress OBJ_X509,26L - -#define LN_destinationIndicator "destinationIndicator" -#define NID_destinationIndicator 871 -#define OBJ_destinationIndicator OBJ_X509,27L - -#define LN_preferredDeliveryMethod "preferredDeliveryMethod" -#define NID_preferredDeliveryMethod 872 -#define OBJ_preferredDeliveryMethod OBJ_X509,28L - -#define LN_presentationAddress "presentationAddress" -#define NID_presentationAddress 873 -#define OBJ_presentationAddress OBJ_X509,29L - -#define LN_supportedApplicationContext "supportedApplicationContext" -#define NID_supportedApplicationContext 874 -#define OBJ_supportedApplicationContext OBJ_X509,30L - -#define SN_member "member" -#define NID_member 875 -#define OBJ_member OBJ_X509,31L - -#define SN_owner "owner" -#define NID_owner 876 -#define OBJ_owner OBJ_X509,32L - -#define LN_roleOccupant "roleOccupant" -#define NID_roleOccupant 877 -#define OBJ_roleOccupant OBJ_X509,33L - -#define SN_seeAlso "seeAlso" -#define NID_seeAlso 878 -#define OBJ_seeAlso OBJ_X509,34L - -#define LN_userPassword "userPassword" -#define NID_userPassword 879 -#define OBJ_userPassword OBJ_X509,35L - -#define LN_userCertificate "userCertificate" -#define NID_userCertificate 880 -#define OBJ_userCertificate OBJ_X509,36L - -#define LN_cACertificate "cACertificate" -#define NID_cACertificate 881 -#define OBJ_cACertificate OBJ_X509,37L - -#define LN_authorityRevocationList "authorityRevocationList" -#define NID_authorityRevocationList 882 -#define OBJ_authorityRevocationList OBJ_X509,38L - -#define LN_certificateRevocationList "certificateRevocationList" -#define NID_certificateRevocationList 883 -#define OBJ_certificateRevocationList OBJ_X509,39L - -#define LN_crossCertificatePair "crossCertificatePair" -#define NID_crossCertificatePair 884 -#define OBJ_crossCertificatePair OBJ_X509,40L - -#define SN_name "name" -#define LN_name "name" -#define NID_name 173 -#define OBJ_name OBJ_X509,41L - -#define SN_givenName "GN" -#define LN_givenName "givenName" -#define NID_givenName 99 -#define OBJ_givenName OBJ_X509,42L - -#define SN_initials "initials" -#define LN_initials "initials" -#define NID_initials 101 -#define OBJ_initials OBJ_X509,43L - -#define LN_generationQualifier "generationQualifier" -#define NID_generationQualifier 509 -#define OBJ_generationQualifier OBJ_X509,44L - -#define LN_x500UniqueIdentifier "x500UniqueIdentifier" -#define NID_x500UniqueIdentifier 503 -#define OBJ_x500UniqueIdentifier OBJ_X509,45L - -#define SN_dnQualifier "dnQualifier" -#define LN_dnQualifier "dnQualifier" -#define NID_dnQualifier 174 -#define OBJ_dnQualifier OBJ_X509,46L - -#define LN_enhancedSearchGuide "enhancedSearchGuide" -#define NID_enhancedSearchGuide 885 -#define OBJ_enhancedSearchGuide OBJ_X509,47L - -#define LN_protocolInformation "protocolInformation" -#define NID_protocolInformation 886 -#define OBJ_protocolInformation OBJ_X509,48L - -#define LN_distinguishedName "distinguishedName" -#define NID_distinguishedName 887 -#define OBJ_distinguishedName OBJ_X509,49L - -#define LN_uniqueMember "uniqueMember" -#define NID_uniqueMember 888 -#define OBJ_uniqueMember OBJ_X509,50L - -#define LN_houseIdentifier "houseIdentifier" -#define NID_houseIdentifier 889 -#define OBJ_houseIdentifier OBJ_X509,51L - -#define LN_supportedAlgorithms "supportedAlgorithms" -#define NID_supportedAlgorithms 890 -#define OBJ_supportedAlgorithms OBJ_X509,52L - -#define LN_deltaRevocationList "deltaRevocationList" -#define NID_deltaRevocationList 891 -#define OBJ_deltaRevocationList OBJ_X509,53L - -#define SN_dmdName "dmdName" -#define NID_dmdName 892 -#define OBJ_dmdName OBJ_X509,54L - -#define LN_pseudonym "pseudonym" -#define NID_pseudonym 510 -#define OBJ_pseudonym OBJ_X509,65L - -#define SN_role "role" -#define LN_role "role" -#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 -#define OBJ_X500algorithms OBJ_X500,8L - -#define SN_rsa "RSA" -#define LN_rsa "rsa" -#define NID_rsa 19 -#define OBJ_rsa OBJ_X500algorithms,1L,1L - -#define SN_mdc2WithRSA "RSA-MDC2" -#define LN_mdc2WithRSA "mdc2WithRSA" -#define NID_mdc2WithRSA 96 -#define OBJ_mdc2WithRSA OBJ_X500algorithms,3L,100L - -#define SN_mdc2 "MDC2" -#define LN_mdc2 "mdc2" -#define NID_mdc2 95 -#define OBJ_mdc2 OBJ_X500algorithms,3L,101L - -#define SN_id_ce "id-ce" -#define NID_id_ce 81 -#define OBJ_id_ce OBJ_X500,29L - -#define SN_subject_directory_attributes "subjectDirectoryAttributes" -#define LN_subject_directory_attributes "X509v3 Subject Directory Attributes" -#define NID_subject_directory_attributes 769 -#define OBJ_subject_directory_attributes OBJ_id_ce,9L - -#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_crl_reason "CRLReason" -#define LN_crl_reason "X509v3 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_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_issuing_distribution_point "issuingDistributionPoint" -#define LN_issuing_distribution_point "X509v3 Issuing Distribution Point" -#define NID_issuing_distribution_point 770 -#define OBJ_issuing_distribution_point OBJ_id_ce,28L - -#define SN_certificate_issuer "certificateIssuer" -#define LN_certificate_issuer "X509v3 Certificate Issuer" -#define NID_certificate_issuer 771 -#define OBJ_certificate_issuer OBJ_id_ce,29L - -#define SN_name_constraints "nameConstraints" -#define LN_name_constraints "X509v3 Name Constraints" -#define NID_name_constraints 666 -#define OBJ_name_constraints OBJ_id_ce,30L - -#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_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_any_policy "anyPolicy" -#define LN_any_policy "X509v3 Any Policy" -#define NID_any_policy 746 -#define OBJ_any_policy OBJ_certificate_policies,0L - -#define SN_policy_mappings "policyMappings" -#define LN_policy_mappings "X509v3 Policy Mappings" -#define NID_policy_mappings 747 -#define OBJ_policy_mappings OBJ_id_ce,33L - -#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_policy_constraints "policyConstraints" -#define LN_policy_constraints "X509v3 Policy Constraints" -#define NID_policy_constraints 401 -#define OBJ_policy_constraints OBJ_id_ce,36L - -#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,37L - -#define SN_freshest_crl "freshestCRL" -#define LN_freshest_crl "X509v3 Freshest CRL" -#define NID_freshest_crl 857 -#define OBJ_freshest_crl OBJ_id_ce,46L - -#define SN_inhibit_any_policy "inhibitAnyPolicy" -#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy" -#define NID_inhibit_any_policy 748 -#define OBJ_inhibit_any_policy OBJ_id_ce,54L - -#define SN_target_information "targetInformation" -#define LN_target_information "X509v3 AC Targeting" -#define NID_target_information 402 -#define OBJ_target_information OBJ_id_ce,55L - -#define SN_no_rev_avail "noRevAvail" -#define LN_no_rev_avail "X509v3 No Revocation Available" -#define NID_no_rev_avail 403 -#define OBJ_no_rev_avail OBJ_id_ce,56L - -#define SN_anyExtendedKeyUsage "anyExtendedKeyUsage" -#define LN_anyExtendedKeyUsage "Any Extended Key Usage" -#define NID_anyExtendedKeyUsage 910 -#define OBJ_anyExtendedKeyUsage OBJ_ext_key_usage,0L - -#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_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_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_org "ORG" -#define LN_org "org" -#define NID_org 379 -#define OBJ_org OBJ_iso,3L - -#define SN_dod "DOD" -#define LN_dod "dod" -#define NID_dod 380 -#define OBJ_dod OBJ_org,6L - -#define SN_iana "IANA" -#define LN_iana "iana" -#define NID_iana 381 -#define OBJ_iana OBJ_dod,1L - -#define OBJ_internet OBJ_iana - -#define SN_Directory "directory" -#define LN_Directory "Directory" -#define NID_Directory 382 -#define OBJ_Directory OBJ_internet,1L - -#define SN_Management "mgmt" -#define LN_Management "Management" -#define NID_Management 383 -#define OBJ_Management OBJ_internet,2L - -#define SN_Experimental "experimental" -#define LN_Experimental "Experimental" -#define NID_Experimental 384 -#define OBJ_Experimental OBJ_internet,3L - -#define SN_Private "private" -#define LN_Private "Private" -#define NID_Private 385 -#define OBJ_Private OBJ_internet,4L - -#define SN_Security "security" -#define LN_Security "Security" -#define NID_Security 386 -#define OBJ_Security OBJ_internet,5L - -#define SN_SNMPv2 "snmpv2" -#define LN_SNMPv2 "SNMPv2" -#define NID_SNMPv2 387 -#define OBJ_SNMPv2 OBJ_internet,6L - -#define LN_Mail "Mail" -#define NID_Mail 388 -#define OBJ_Mail OBJ_internet,7L - -#define SN_Enterprises "enterprises" -#define LN_Enterprises "Enterprises" -#define NID_Enterprises 389 -#define OBJ_Enterprises OBJ_Private,1L - -#define SN_dcObject "dcobject" -#define LN_dcObject "dcObject" -#define NID_dcObject 390 -#define OBJ_dcObject OBJ_Enterprises,1466L,344L - -#define SN_mime_mhs "mime-mhs" -#define LN_mime_mhs "MIME MHS" -#define NID_mime_mhs 504 -#define OBJ_mime_mhs OBJ_Mail,1L - -#define SN_mime_mhs_headings "mime-mhs-headings" -#define LN_mime_mhs_headings "mime-mhs-headings" -#define NID_mime_mhs_headings 505 -#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L - -#define SN_mime_mhs_bodies "mime-mhs-bodies" -#define LN_mime_mhs_bodies "mime-mhs-bodies" -#define NID_mime_mhs_bodies 506 -#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L - -#define SN_id_hex_partial_message "id-hex-partial-message" -#define LN_id_hex_partial_message "id-hex-partial-message" -#define NID_id_hex_partial_message 507 -#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L - -#define SN_id_hex_multipart_message "id-hex-multipart-message" -#define LN_id_hex_multipart_message "id-hex-multipart-message" -#define NID_id_hex_multipart_message 508 -#define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L - -#define SN_zlib_compression "ZLIB" -#define LN_zlib_compression "zlib compression" -#define NID_zlib_compression 125 -#define OBJ_zlib_compression OBJ_id_smime_alg,8L - -#define OBJ_csor 2L,16L,840L,1L,101L,3L - -#define OBJ_nistAlgorithms OBJ_csor,4L - -#define OBJ_aes OBJ_nistAlgorithms,1L - -#define SN_aes_128_ecb "AES-128-ECB" -#define LN_aes_128_ecb "aes-128-ecb" -#define NID_aes_128_ecb 418 -#define OBJ_aes_128_ecb OBJ_aes,1L - -#define SN_aes_128_cbc "AES-128-CBC" -#define LN_aes_128_cbc "aes-128-cbc" -#define NID_aes_128_cbc 419 -#define OBJ_aes_128_cbc OBJ_aes,2L - -#define SN_aes_128_ofb128 "AES-128-OFB" -#define LN_aes_128_ofb128 "aes-128-ofb" -#define NID_aes_128_ofb128 420 -#define OBJ_aes_128_ofb128 OBJ_aes,3L - -#define SN_aes_128_cfb128 "AES-128-CFB" -#define LN_aes_128_cfb128 "aes-128-cfb" -#define NID_aes_128_cfb128 421 -#define OBJ_aes_128_cfb128 OBJ_aes,4L - -#define SN_id_aes128_wrap "id-aes128-wrap" -#define NID_id_aes128_wrap 788 -#define OBJ_id_aes128_wrap OBJ_aes,5L - -#define SN_aes_128_gcm "id-aes128-GCM" -#define LN_aes_128_gcm "aes-128-gcm" -#define NID_aes_128_gcm 895 -#define OBJ_aes_128_gcm OBJ_aes,6L - -#define SN_aes_128_ccm "id-aes128-CCM" -#define LN_aes_128_ccm "aes-128-ccm" -#define NID_aes_128_ccm 896 -#define OBJ_aes_128_ccm OBJ_aes,7L - -#define SN_id_aes128_wrap_pad "id-aes128-wrap-pad" -#define NID_id_aes128_wrap_pad 897 -#define OBJ_id_aes128_wrap_pad OBJ_aes,8L - -#define SN_aes_192_ecb "AES-192-ECB" -#define LN_aes_192_ecb "aes-192-ecb" -#define NID_aes_192_ecb 422 -#define OBJ_aes_192_ecb OBJ_aes,21L - -#define SN_aes_192_cbc "AES-192-CBC" -#define LN_aes_192_cbc "aes-192-cbc" -#define NID_aes_192_cbc 423 -#define OBJ_aes_192_cbc OBJ_aes,22L - -#define SN_aes_192_ofb128 "AES-192-OFB" -#define LN_aes_192_ofb128 "aes-192-ofb" -#define NID_aes_192_ofb128 424 -#define OBJ_aes_192_ofb128 OBJ_aes,23L - -#define SN_aes_192_cfb128 "AES-192-CFB" -#define LN_aes_192_cfb128 "aes-192-cfb" -#define NID_aes_192_cfb128 425 -#define OBJ_aes_192_cfb128 OBJ_aes,24L - -#define SN_id_aes192_wrap "id-aes192-wrap" -#define NID_id_aes192_wrap 789 -#define OBJ_id_aes192_wrap OBJ_aes,25L - -#define SN_aes_192_gcm "id-aes192-GCM" -#define LN_aes_192_gcm "aes-192-gcm" -#define NID_aes_192_gcm 898 -#define OBJ_aes_192_gcm OBJ_aes,26L - -#define SN_aes_192_ccm "id-aes192-CCM" -#define LN_aes_192_ccm "aes-192-ccm" -#define NID_aes_192_ccm 899 -#define OBJ_aes_192_ccm OBJ_aes,27L - -#define SN_id_aes192_wrap_pad "id-aes192-wrap-pad" -#define NID_id_aes192_wrap_pad 900 -#define OBJ_id_aes192_wrap_pad OBJ_aes,28L - -#define SN_aes_256_ecb "AES-256-ECB" -#define LN_aes_256_ecb "aes-256-ecb" -#define NID_aes_256_ecb 426 -#define OBJ_aes_256_ecb OBJ_aes,41L - -#define SN_aes_256_cbc "AES-256-CBC" -#define LN_aes_256_cbc "aes-256-cbc" -#define NID_aes_256_cbc 427 -#define OBJ_aes_256_cbc OBJ_aes,42L - -#define SN_aes_256_ofb128 "AES-256-OFB" -#define LN_aes_256_ofb128 "aes-256-ofb" -#define NID_aes_256_ofb128 428 -#define OBJ_aes_256_ofb128 OBJ_aes,43L - -#define SN_aes_256_cfb128 "AES-256-CFB" -#define LN_aes_256_cfb128 "aes-256-cfb" -#define NID_aes_256_cfb128 429 -#define OBJ_aes_256_cfb128 OBJ_aes,44L - -#define SN_id_aes256_wrap "id-aes256-wrap" -#define NID_id_aes256_wrap 790 -#define OBJ_id_aes256_wrap OBJ_aes,45L - -#define SN_aes_256_gcm "id-aes256-GCM" -#define LN_aes_256_gcm "aes-256-gcm" -#define NID_aes_256_gcm 901 -#define OBJ_aes_256_gcm OBJ_aes,46L - -#define SN_aes_256_ccm "id-aes256-CCM" -#define LN_aes_256_ccm "aes-256-ccm" -#define NID_aes_256_ccm 902 -#define OBJ_aes_256_ccm OBJ_aes,47L - -#define SN_id_aes256_wrap_pad "id-aes256-wrap-pad" -#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 - -#define SN_aes_192_cfb1 "AES-192-CFB1" -#define LN_aes_192_cfb1 "aes-192-cfb1" -#define NID_aes_192_cfb1 651 - -#define SN_aes_256_cfb1 "AES-256-CFB1" -#define LN_aes_256_cfb1 "aes-256-cfb1" -#define NID_aes_256_cfb1 652 - -#define SN_aes_128_cfb8 "AES-128-CFB8" -#define LN_aes_128_cfb8 "aes-128-cfb8" -#define NID_aes_128_cfb8 653 - -#define SN_aes_192_cfb8 "AES-192-CFB8" -#define LN_aes_192_cfb8 "aes-192-cfb8" -#define NID_aes_192_cfb8 654 - -#define SN_aes_256_cfb8 "AES-256-CFB8" -#define LN_aes_256_cfb8 "aes-256-cfb8" -#define NID_aes_256_cfb8 655 - -#define SN_aes_128_ctr "AES-128-CTR" -#define LN_aes_128_ctr "aes-128-ctr" -#define NID_aes_128_ctr 904 - -#define SN_aes_192_ctr "AES-192-CTR" -#define LN_aes_192_ctr "aes-192-ctr" -#define NID_aes_192_ctr 905 - -#define SN_aes_256_ctr "AES-256-CTR" -#define LN_aes_256_ctr "aes-256-ctr" -#define NID_aes_256_ctr 906 - -#define SN_aes_128_ocb "AES-128-OCB" -#define LN_aes_128_ocb "aes-128-ocb" -#define NID_aes_128_ocb 958 - -#define SN_aes_192_ocb "AES-192-OCB" -#define LN_aes_192_ocb "aes-192-ocb" -#define NID_aes_192_ocb 959 - -#define SN_aes_256_ocb "AES-256-OCB" -#define LN_aes_256_ocb "aes-256-ocb" -#define NID_aes_256_ocb 960 - -#define SN_des_cfb1 "DES-CFB1" -#define LN_des_cfb1 "des-cfb1" -#define NID_des_cfb1 656 - -#define SN_des_cfb8 "DES-CFB8" -#define LN_des_cfb8 "des-cfb8" -#define NID_des_cfb8 657 - -#define SN_des_ede3_cfb1 "DES-EDE3-CFB1" -#define LN_des_ede3_cfb1 "des-ede3-cfb1" -#define NID_des_ede3_cfb1 658 - -#define SN_des_ede3_cfb8 "DES-EDE3-CFB8" -#define LN_des_ede3_cfb8 "des-ede3-cfb8" -#define NID_des_ede3_cfb8 659 - -#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L - -#define SN_sha256 "SHA256" -#define LN_sha256 "sha256" -#define NID_sha256 672 -#define OBJ_sha256 OBJ_nist_hashalgs,1L - -#define SN_sha384 "SHA384" -#define LN_sha384 "sha384" -#define NID_sha384 673 -#define OBJ_sha384 OBJ_nist_hashalgs,2L - -#define SN_sha512 "SHA512" -#define LN_sha512 "sha512" -#define NID_sha512 674 -#define OBJ_sha512 OBJ_nist_hashalgs,3L - -#define SN_sha224 "SHA224" -#define LN_sha224 "sha224" -#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" -#define NID_dsa_with_SHA224 802 -#define OBJ_dsa_with_SHA224 OBJ_dsa_with_sha2,1L - -#define SN_dsa_with_SHA256 "dsa_with_SHA256" -#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 -#define OBJ_hold_instruction_code OBJ_id_ce,23L - -#define OBJ_holdInstruction OBJ_X9_57,2L - -#define SN_hold_instruction_none "holdInstructionNone" -#define LN_hold_instruction_none "Hold Instruction None" -#define NID_hold_instruction_none 431 -#define OBJ_hold_instruction_none OBJ_holdInstruction,1L - -#define SN_hold_instruction_call_issuer "holdInstructionCallIssuer" -#define LN_hold_instruction_call_issuer "Hold Instruction Call Issuer" -#define NID_hold_instruction_call_issuer 432 -#define OBJ_hold_instruction_call_issuer OBJ_holdInstruction,2L - -#define SN_hold_instruction_reject "holdInstructionReject" -#define LN_hold_instruction_reject "Hold Instruction Reject" -#define NID_hold_instruction_reject 433 -#define OBJ_hold_instruction_reject OBJ_holdInstruction,3L - -#define SN_data "data" -#define NID_data 434 -#define OBJ_data OBJ_itu_t,9L - -#define SN_pss "pss" -#define NID_pss 435 -#define OBJ_pss OBJ_data,2342L - -#define SN_ucl "ucl" -#define NID_ucl 436 -#define OBJ_ucl OBJ_pss,19200300L - -#define SN_pilot "pilot" -#define NID_pilot 437 -#define OBJ_pilot OBJ_ucl,100L - -#define LN_pilotAttributeType "pilotAttributeType" -#define NID_pilotAttributeType 438 -#define OBJ_pilotAttributeType OBJ_pilot,1L - -#define LN_pilotAttributeSyntax "pilotAttributeSyntax" -#define NID_pilotAttributeSyntax 439 -#define OBJ_pilotAttributeSyntax OBJ_pilot,3L - -#define LN_pilotObjectClass "pilotObjectClass" -#define NID_pilotObjectClass 440 -#define OBJ_pilotObjectClass OBJ_pilot,4L - -#define LN_pilotGroups "pilotGroups" -#define NID_pilotGroups 441 -#define OBJ_pilotGroups OBJ_pilot,10L - -#define LN_iA5StringSyntax "iA5StringSyntax" -#define NID_iA5StringSyntax 442 -#define OBJ_iA5StringSyntax OBJ_pilotAttributeSyntax,4L - -#define LN_caseIgnoreIA5StringSyntax "caseIgnoreIA5StringSyntax" -#define NID_caseIgnoreIA5StringSyntax 443 -#define OBJ_caseIgnoreIA5StringSyntax OBJ_pilotAttributeSyntax,5L - -#define LN_pilotObject "pilotObject" -#define NID_pilotObject 444 -#define OBJ_pilotObject OBJ_pilotObjectClass,3L - -#define LN_pilotPerson "pilotPerson" -#define NID_pilotPerson 445 -#define OBJ_pilotPerson OBJ_pilotObjectClass,4L - -#define SN_account "account" -#define NID_account 446 -#define OBJ_account OBJ_pilotObjectClass,5L - -#define SN_document "document" -#define NID_document 447 -#define OBJ_document OBJ_pilotObjectClass,6L - -#define SN_room "room" -#define NID_room 448 -#define OBJ_room OBJ_pilotObjectClass,7L - -#define LN_documentSeries "documentSeries" -#define NID_documentSeries 449 -#define OBJ_documentSeries OBJ_pilotObjectClass,9L - -#define SN_Domain "domain" -#define LN_Domain "Domain" -#define NID_Domain 392 -#define OBJ_Domain OBJ_pilotObjectClass,13L - -#define LN_rFC822localPart "rFC822localPart" -#define NID_rFC822localPart 450 -#define OBJ_rFC822localPart OBJ_pilotObjectClass,14L - -#define LN_dNSDomain "dNSDomain" -#define NID_dNSDomain 451 -#define OBJ_dNSDomain OBJ_pilotObjectClass,15L - -#define LN_domainRelatedObject "domainRelatedObject" -#define NID_domainRelatedObject 452 -#define OBJ_domainRelatedObject OBJ_pilotObjectClass,17L - -#define LN_friendlyCountry "friendlyCountry" -#define NID_friendlyCountry 453 -#define OBJ_friendlyCountry OBJ_pilotObjectClass,18L - -#define LN_simpleSecurityObject "simpleSecurityObject" -#define NID_simpleSecurityObject 454 -#define OBJ_simpleSecurityObject OBJ_pilotObjectClass,19L - -#define LN_pilotOrganization "pilotOrganization" -#define NID_pilotOrganization 455 -#define OBJ_pilotOrganization OBJ_pilotObjectClass,20L - -#define LN_pilotDSA "pilotDSA" -#define NID_pilotDSA 456 -#define OBJ_pilotDSA OBJ_pilotObjectClass,21L - -#define LN_qualityLabelledData "qualityLabelledData" -#define NID_qualityLabelledData 457 -#define OBJ_qualityLabelledData OBJ_pilotObjectClass,22L - -#define SN_userId "UID" -#define LN_userId "userId" -#define NID_userId 458 -#define OBJ_userId OBJ_pilotAttributeType,1L - -#define LN_textEncodedORAddress "textEncodedORAddress" -#define NID_textEncodedORAddress 459 -#define OBJ_textEncodedORAddress OBJ_pilotAttributeType,2L - -#define SN_rfc822Mailbox "mail" -#define LN_rfc822Mailbox "rfc822Mailbox" -#define NID_rfc822Mailbox 460 -#define OBJ_rfc822Mailbox OBJ_pilotAttributeType,3L - -#define SN_info "info" -#define NID_info 461 -#define OBJ_info OBJ_pilotAttributeType,4L - -#define LN_favouriteDrink "favouriteDrink" -#define NID_favouriteDrink 462 -#define OBJ_favouriteDrink OBJ_pilotAttributeType,5L - -#define LN_roomNumber "roomNumber" -#define NID_roomNumber 463 -#define OBJ_roomNumber OBJ_pilotAttributeType,6L - -#define SN_photo "photo" -#define NID_photo 464 -#define OBJ_photo OBJ_pilotAttributeType,7L - -#define LN_userClass "userClass" -#define NID_userClass 465 -#define OBJ_userClass OBJ_pilotAttributeType,8L - -#define SN_host "host" -#define NID_host 466 -#define OBJ_host OBJ_pilotAttributeType,9L - -#define SN_manager "manager" -#define NID_manager 467 -#define OBJ_manager OBJ_pilotAttributeType,10L - -#define LN_documentIdentifier "documentIdentifier" -#define NID_documentIdentifier 468 -#define OBJ_documentIdentifier OBJ_pilotAttributeType,11L - -#define LN_documentTitle "documentTitle" -#define NID_documentTitle 469 -#define OBJ_documentTitle OBJ_pilotAttributeType,12L - -#define LN_documentVersion "documentVersion" -#define NID_documentVersion 470 -#define OBJ_documentVersion OBJ_pilotAttributeType,13L - -#define LN_documentAuthor "documentAuthor" -#define NID_documentAuthor 471 -#define OBJ_documentAuthor OBJ_pilotAttributeType,14L - -#define LN_documentLocation "documentLocation" -#define NID_documentLocation 472 -#define OBJ_documentLocation OBJ_pilotAttributeType,15L - -#define LN_homeTelephoneNumber "homeTelephoneNumber" -#define NID_homeTelephoneNumber 473 -#define OBJ_homeTelephoneNumber OBJ_pilotAttributeType,20L - -#define SN_secretary "secretary" -#define NID_secretary 474 -#define OBJ_secretary OBJ_pilotAttributeType,21L - -#define LN_otherMailbox "otherMailbox" -#define NID_otherMailbox 475 -#define OBJ_otherMailbox OBJ_pilotAttributeType,22L - -#define LN_lastModifiedTime "lastModifiedTime" -#define NID_lastModifiedTime 476 -#define OBJ_lastModifiedTime OBJ_pilotAttributeType,23L - -#define LN_lastModifiedBy "lastModifiedBy" -#define NID_lastModifiedBy 477 -#define OBJ_lastModifiedBy OBJ_pilotAttributeType,24L - -#define SN_domainComponent "DC" -#define LN_domainComponent "domainComponent" -#define NID_domainComponent 391 -#define OBJ_domainComponent OBJ_pilotAttributeType,25L - -#define LN_aRecord "aRecord" -#define NID_aRecord 478 -#define OBJ_aRecord OBJ_pilotAttributeType,26L - -#define LN_pilotAttributeType27 "pilotAttributeType27" -#define NID_pilotAttributeType27 479 -#define OBJ_pilotAttributeType27 OBJ_pilotAttributeType,27L - -#define LN_mXRecord "mXRecord" -#define NID_mXRecord 480 -#define OBJ_mXRecord OBJ_pilotAttributeType,28L - -#define LN_nSRecord "nSRecord" -#define NID_nSRecord 481 -#define OBJ_nSRecord OBJ_pilotAttributeType,29L - -#define LN_sOARecord "sOARecord" -#define NID_sOARecord 482 -#define OBJ_sOARecord OBJ_pilotAttributeType,30L - -#define LN_cNAMERecord "cNAMERecord" -#define NID_cNAMERecord 483 -#define OBJ_cNAMERecord OBJ_pilotAttributeType,31L - -#define LN_associatedDomain "associatedDomain" -#define NID_associatedDomain 484 -#define OBJ_associatedDomain OBJ_pilotAttributeType,37L - -#define LN_associatedName "associatedName" -#define NID_associatedName 485 -#define OBJ_associatedName OBJ_pilotAttributeType,38L - -#define LN_homePostalAddress "homePostalAddress" -#define NID_homePostalAddress 486 -#define OBJ_homePostalAddress OBJ_pilotAttributeType,39L - -#define LN_personalTitle "personalTitle" -#define NID_personalTitle 487 -#define OBJ_personalTitle OBJ_pilotAttributeType,40L - -#define LN_mobileTelephoneNumber "mobileTelephoneNumber" -#define NID_mobileTelephoneNumber 488 -#define OBJ_mobileTelephoneNumber OBJ_pilotAttributeType,41L - -#define LN_pagerTelephoneNumber "pagerTelephoneNumber" -#define NID_pagerTelephoneNumber 489 -#define OBJ_pagerTelephoneNumber OBJ_pilotAttributeType,42L - -#define LN_friendlyCountryName "friendlyCountryName" -#define NID_friendlyCountryName 490 -#define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L - -#define SN_uniqueIdentifier "uid" -#define LN_uniqueIdentifier "uniqueIdentifier" -#define NID_uniqueIdentifier 102 -#define OBJ_uniqueIdentifier OBJ_pilotAttributeType,44L - -#define LN_organizationalStatus "organizationalStatus" -#define NID_organizationalStatus 491 -#define OBJ_organizationalStatus OBJ_pilotAttributeType,45L - -#define LN_janetMailbox "janetMailbox" -#define NID_janetMailbox 492 -#define OBJ_janetMailbox OBJ_pilotAttributeType,46L - -#define LN_mailPreferenceOption "mailPreferenceOption" -#define NID_mailPreferenceOption 493 -#define OBJ_mailPreferenceOption OBJ_pilotAttributeType,47L - -#define LN_buildingName "buildingName" -#define NID_buildingName 494 -#define OBJ_buildingName OBJ_pilotAttributeType,48L - -#define LN_dSAQuality "dSAQuality" -#define NID_dSAQuality 495 -#define OBJ_dSAQuality OBJ_pilotAttributeType,49L - -#define LN_singleLevelQuality "singleLevelQuality" -#define NID_singleLevelQuality 496 -#define OBJ_singleLevelQuality OBJ_pilotAttributeType,50L - -#define LN_subtreeMinimumQuality "subtreeMinimumQuality" -#define NID_subtreeMinimumQuality 497 -#define OBJ_subtreeMinimumQuality OBJ_pilotAttributeType,51L - -#define LN_subtreeMaximumQuality "subtreeMaximumQuality" -#define NID_subtreeMaximumQuality 498 -#define OBJ_subtreeMaximumQuality OBJ_pilotAttributeType,52L - -#define LN_personalSignature "personalSignature" -#define NID_personalSignature 499 -#define OBJ_personalSignature OBJ_pilotAttributeType,53L - -#define LN_dITRedirect "dITRedirect" -#define NID_dITRedirect 500 -#define OBJ_dITRedirect OBJ_pilotAttributeType,54L - -#define SN_audio "audio" -#define NID_audio 501 -#define OBJ_audio OBJ_pilotAttributeType,55L - -#define LN_documentPublisher "documentPublisher" -#define NID_documentPublisher 502 -#define OBJ_documentPublisher OBJ_pilotAttributeType,56L - -#define SN_id_set "id-set" -#define LN_id_set "Secure Electronic Transactions" -#define NID_id_set 512 -#define OBJ_id_set OBJ_international_organizations,42L - -#define SN_set_ctype "set-ctype" -#define LN_set_ctype "content types" -#define NID_set_ctype 513 -#define OBJ_set_ctype OBJ_id_set,0L - -#define SN_set_msgExt "set-msgExt" -#define LN_set_msgExt "message extensions" -#define NID_set_msgExt 514 -#define OBJ_set_msgExt OBJ_id_set,1L - -#define SN_set_attr "set-attr" -#define NID_set_attr 515 -#define OBJ_set_attr OBJ_id_set,3L - -#define SN_set_policy "set-policy" -#define NID_set_policy 516 -#define OBJ_set_policy OBJ_id_set,5L - -#define SN_set_certExt "set-certExt" -#define LN_set_certExt "certificate extensions" -#define NID_set_certExt 517 -#define OBJ_set_certExt OBJ_id_set,7L - -#define SN_set_brand "set-brand" -#define NID_set_brand 518 -#define OBJ_set_brand OBJ_id_set,8L - -#define SN_setct_PANData "setct-PANData" -#define NID_setct_PANData 519 -#define OBJ_setct_PANData OBJ_set_ctype,0L - -#define SN_setct_PANToken "setct-PANToken" -#define NID_setct_PANToken 520 -#define OBJ_setct_PANToken OBJ_set_ctype,1L - -#define SN_setct_PANOnly "setct-PANOnly" -#define NID_setct_PANOnly 521 -#define OBJ_setct_PANOnly OBJ_set_ctype,2L - -#define SN_setct_OIData "setct-OIData" -#define NID_setct_OIData 522 -#define OBJ_setct_OIData OBJ_set_ctype,3L - -#define SN_setct_PI "setct-PI" -#define NID_setct_PI 523 -#define OBJ_setct_PI OBJ_set_ctype,4L - -#define SN_setct_PIData "setct-PIData" -#define NID_setct_PIData 524 -#define OBJ_setct_PIData OBJ_set_ctype,5L - -#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned" -#define NID_setct_PIDataUnsigned 525 -#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L - -#define SN_setct_HODInput "setct-HODInput" -#define NID_setct_HODInput 526 -#define OBJ_setct_HODInput OBJ_set_ctype,7L - -#define SN_setct_AuthResBaggage "setct-AuthResBaggage" -#define NID_setct_AuthResBaggage 527 -#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L - -#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage" -#define NID_setct_AuthRevReqBaggage 528 -#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L - -#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage" -#define NID_setct_AuthRevResBaggage 529 -#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L - -#define SN_setct_CapTokenSeq "setct-CapTokenSeq" -#define NID_setct_CapTokenSeq 530 -#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L - -#define SN_setct_PInitResData "setct-PInitResData" -#define NID_setct_PInitResData 531 -#define OBJ_setct_PInitResData OBJ_set_ctype,12L - -#define SN_setct_PI_TBS "setct-PI-TBS" -#define NID_setct_PI_TBS 532 -#define OBJ_setct_PI_TBS OBJ_set_ctype,13L - -#define SN_setct_PResData "setct-PResData" -#define NID_setct_PResData 533 -#define OBJ_setct_PResData OBJ_set_ctype,14L - -#define SN_setct_AuthReqTBS "setct-AuthReqTBS" -#define NID_setct_AuthReqTBS 534 -#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L - -#define SN_setct_AuthResTBS "setct-AuthResTBS" -#define NID_setct_AuthResTBS 535 -#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L - -#define SN_setct_AuthResTBSX "setct-AuthResTBSX" -#define NID_setct_AuthResTBSX 536 -#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L - -#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS" -#define NID_setct_AuthTokenTBS 537 -#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L - -#define SN_setct_CapTokenData "setct-CapTokenData" -#define NID_setct_CapTokenData 538 -#define OBJ_setct_CapTokenData OBJ_set_ctype,20L - -#define SN_setct_CapTokenTBS "setct-CapTokenTBS" -#define NID_setct_CapTokenTBS 539 -#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L - -#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg" -#define NID_setct_AcqCardCodeMsg 540 -#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L - -#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS" -#define NID_setct_AuthRevReqTBS 541 -#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L - -#define SN_setct_AuthRevResData "setct-AuthRevResData" -#define NID_setct_AuthRevResData 542 -#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L - -#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS" -#define NID_setct_AuthRevResTBS 543 -#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L - -#define SN_setct_CapReqTBS "setct-CapReqTBS" -#define NID_setct_CapReqTBS 544 -#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L - -#define SN_setct_CapReqTBSX "setct-CapReqTBSX" -#define NID_setct_CapReqTBSX 545 -#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L - -#define SN_setct_CapResData "setct-CapResData" -#define NID_setct_CapResData 546 -#define OBJ_setct_CapResData OBJ_set_ctype,28L - -#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS" -#define NID_setct_CapRevReqTBS 547 -#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L - -#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX" -#define NID_setct_CapRevReqTBSX 548 -#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L - -#define SN_setct_CapRevResData "setct-CapRevResData" -#define NID_setct_CapRevResData 549 -#define OBJ_setct_CapRevResData OBJ_set_ctype,31L - -#define SN_setct_CredReqTBS "setct-CredReqTBS" -#define NID_setct_CredReqTBS 550 -#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L - -#define SN_setct_CredReqTBSX "setct-CredReqTBSX" -#define NID_setct_CredReqTBSX 551 -#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L - -#define SN_setct_CredResData "setct-CredResData" -#define NID_setct_CredResData 552 -#define OBJ_setct_CredResData OBJ_set_ctype,34L - -#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS" -#define NID_setct_CredRevReqTBS 553 -#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L - -#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX" -#define NID_setct_CredRevReqTBSX 554 -#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L - -#define SN_setct_CredRevResData "setct-CredRevResData" -#define NID_setct_CredRevResData 555 -#define OBJ_setct_CredRevResData OBJ_set_ctype,37L - -#define SN_setct_PCertReqData "setct-PCertReqData" -#define NID_setct_PCertReqData 556 -#define OBJ_setct_PCertReqData OBJ_set_ctype,38L - -#define SN_setct_PCertResTBS "setct-PCertResTBS" -#define NID_setct_PCertResTBS 557 -#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L - -#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData" -#define NID_setct_BatchAdminReqData 558 -#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L - -#define SN_setct_BatchAdminResData "setct-BatchAdminResData" -#define NID_setct_BatchAdminResData 559 -#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L - -#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS" -#define NID_setct_CardCInitResTBS 560 -#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L - -#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS" -#define NID_setct_MeAqCInitResTBS 561 -#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L - -#define SN_setct_RegFormResTBS "setct-RegFormResTBS" -#define NID_setct_RegFormResTBS 562 -#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L - -#define SN_setct_CertReqData "setct-CertReqData" -#define NID_setct_CertReqData 563 -#define OBJ_setct_CertReqData OBJ_set_ctype,45L - -#define SN_setct_CertReqTBS "setct-CertReqTBS" -#define NID_setct_CertReqTBS 564 -#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L - -#define SN_setct_CertResData "setct-CertResData" -#define NID_setct_CertResData 565 -#define OBJ_setct_CertResData OBJ_set_ctype,47L - -#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS" -#define NID_setct_CertInqReqTBS 566 -#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L - -#define SN_setct_ErrorTBS "setct-ErrorTBS" -#define NID_setct_ErrorTBS 567 -#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L - -#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE" -#define NID_setct_PIDualSignedTBE 568 -#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L - -#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE" -#define NID_setct_PIUnsignedTBE 569 -#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L - -#define SN_setct_AuthReqTBE "setct-AuthReqTBE" -#define NID_setct_AuthReqTBE 570 -#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L - -#define SN_setct_AuthResTBE "setct-AuthResTBE" -#define NID_setct_AuthResTBE 571 -#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L - -#define SN_setct_AuthResTBEX "setct-AuthResTBEX" -#define NID_setct_AuthResTBEX 572 -#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L - -#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE" -#define NID_setct_AuthTokenTBE 573 -#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L - -#define SN_setct_CapTokenTBE "setct-CapTokenTBE" -#define NID_setct_CapTokenTBE 574 -#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L - -#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX" -#define NID_setct_CapTokenTBEX 575 -#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L - -#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE" -#define NID_setct_AcqCardCodeMsgTBE 576 -#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L - -#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE" -#define NID_setct_AuthRevReqTBE 577 -#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L - -#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE" -#define NID_setct_AuthRevResTBE 578 -#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L - -#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB" -#define NID_setct_AuthRevResTBEB 579 -#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L - -#define SN_setct_CapReqTBE "setct-CapReqTBE" -#define NID_setct_CapReqTBE 580 -#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L - -#define SN_setct_CapReqTBEX "setct-CapReqTBEX" -#define NID_setct_CapReqTBEX 581 -#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L - -#define SN_setct_CapResTBE "setct-CapResTBE" -#define NID_setct_CapResTBE 582 -#define OBJ_setct_CapResTBE OBJ_set_ctype,64L - -#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE" -#define NID_setct_CapRevReqTBE 583 -#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L - -#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX" -#define NID_setct_CapRevReqTBEX 584 -#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L - -#define SN_setct_CapRevResTBE "setct-CapRevResTBE" -#define NID_setct_CapRevResTBE 585 -#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L - -#define SN_setct_CredReqTBE "setct-CredReqTBE" -#define NID_setct_CredReqTBE 586 -#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L - -#define SN_setct_CredReqTBEX "setct-CredReqTBEX" -#define NID_setct_CredReqTBEX 587 -#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L - -#define SN_setct_CredResTBE "setct-CredResTBE" -#define NID_setct_CredResTBE 588 -#define OBJ_setct_CredResTBE OBJ_set_ctype,70L - -#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE" -#define NID_setct_CredRevReqTBE 589 -#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L - -#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX" -#define NID_setct_CredRevReqTBEX 590 -#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L - -#define SN_setct_CredRevResTBE "setct-CredRevResTBE" -#define NID_setct_CredRevResTBE 591 -#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L - -#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE" -#define NID_setct_BatchAdminReqTBE 592 -#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L - -#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE" -#define NID_setct_BatchAdminResTBE 593 -#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L - -#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE" -#define NID_setct_RegFormReqTBE 594 -#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L - -#define SN_setct_CertReqTBE "setct-CertReqTBE" -#define NID_setct_CertReqTBE 595 -#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L - -#define SN_setct_CertReqTBEX "setct-CertReqTBEX" -#define NID_setct_CertReqTBEX 596 -#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L - -#define SN_setct_CertResTBE "setct-CertResTBE" -#define NID_setct_CertResTBE 597 -#define OBJ_setct_CertResTBE OBJ_set_ctype,79L - -#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS" -#define NID_setct_CRLNotificationTBS 598 -#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L - -#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS" -#define NID_setct_CRLNotificationResTBS 599 -#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L - -#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS" -#define NID_setct_BCIDistributionTBS 600 -#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L - -#define SN_setext_genCrypt "setext-genCrypt" -#define LN_setext_genCrypt "generic cryptogram" -#define NID_setext_genCrypt 601 -#define OBJ_setext_genCrypt OBJ_set_msgExt,1L - -#define SN_setext_miAuth "setext-miAuth" -#define LN_setext_miAuth "merchant initiated auth" -#define NID_setext_miAuth 602 -#define OBJ_setext_miAuth OBJ_set_msgExt,3L - -#define SN_setext_pinSecure "setext-pinSecure" -#define NID_setext_pinSecure 603 -#define OBJ_setext_pinSecure OBJ_set_msgExt,4L - -#define SN_setext_pinAny "setext-pinAny" -#define NID_setext_pinAny 604 -#define OBJ_setext_pinAny OBJ_set_msgExt,5L - -#define SN_setext_track2 "setext-track2" -#define NID_setext_track2 605 -#define OBJ_setext_track2 OBJ_set_msgExt,7L - -#define SN_setext_cv "setext-cv" -#define LN_setext_cv "additional verification" -#define NID_setext_cv 606 -#define OBJ_setext_cv OBJ_set_msgExt,8L - -#define SN_set_policy_root "set-policy-root" -#define NID_set_policy_root 607 -#define OBJ_set_policy_root OBJ_set_policy,0L - -#define SN_setCext_hashedRoot "setCext-hashedRoot" -#define NID_setCext_hashedRoot 608 -#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L - -#define SN_setCext_certType "setCext-certType" -#define NID_setCext_certType 609 -#define OBJ_setCext_certType OBJ_set_certExt,1L - -#define SN_setCext_merchData "setCext-merchData" -#define NID_setCext_merchData 610 -#define OBJ_setCext_merchData OBJ_set_certExt,2L - -#define SN_setCext_cCertRequired "setCext-cCertRequired" -#define NID_setCext_cCertRequired 611 -#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L - -#define SN_setCext_tunneling "setCext-tunneling" -#define NID_setCext_tunneling 612 -#define OBJ_setCext_tunneling OBJ_set_certExt,4L - -#define SN_setCext_setExt "setCext-setExt" -#define NID_setCext_setExt 613 -#define OBJ_setCext_setExt OBJ_set_certExt,5L - -#define SN_setCext_setQualf "setCext-setQualf" -#define NID_setCext_setQualf 614 -#define OBJ_setCext_setQualf OBJ_set_certExt,6L - -#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities" -#define NID_setCext_PGWYcapabilities 615 -#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L - -#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier" -#define NID_setCext_TokenIdentifier 616 -#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L - -#define SN_setCext_Track2Data "setCext-Track2Data" -#define NID_setCext_Track2Data 617 -#define OBJ_setCext_Track2Data OBJ_set_certExt,9L - -#define SN_setCext_TokenType "setCext-TokenType" -#define NID_setCext_TokenType 618 -#define OBJ_setCext_TokenType OBJ_set_certExt,10L - -#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities" -#define NID_setCext_IssuerCapabilities 619 -#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L - -#define SN_setAttr_Cert "setAttr-Cert" -#define NID_setAttr_Cert 620 -#define OBJ_setAttr_Cert OBJ_set_attr,0L - -#define SN_setAttr_PGWYcap "setAttr-PGWYcap" -#define LN_setAttr_PGWYcap "payment gateway capabilities" -#define NID_setAttr_PGWYcap 621 -#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L - -#define SN_setAttr_TokenType "setAttr-TokenType" -#define NID_setAttr_TokenType 622 -#define OBJ_setAttr_TokenType OBJ_set_attr,2L - -#define SN_setAttr_IssCap "setAttr-IssCap" -#define LN_setAttr_IssCap "issuer capabilities" -#define NID_setAttr_IssCap 623 -#define OBJ_setAttr_IssCap OBJ_set_attr,3L - -#define SN_set_rootKeyThumb "set-rootKeyThumb" -#define NID_set_rootKeyThumb 624 -#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L - -#define SN_set_addPolicy "set-addPolicy" -#define NID_set_addPolicy 625 -#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L - -#define SN_setAttr_Token_EMV "setAttr-Token-EMV" -#define NID_setAttr_Token_EMV 626 -#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L - -#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime" -#define NID_setAttr_Token_B0Prime 627 -#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L - -#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM" -#define NID_setAttr_IssCap_CVM 628 -#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L - -#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2" -#define NID_setAttr_IssCap_T2 629 -#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L - -#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig" -#define NID_setAttr_IssCap_Sig 630 -#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L - -#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm" -#define LN_setAttr_GenCryptgrm "generate cryptogram" -#define NID_setAttr_GenCryptgrm 631 -#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L - -#define SN_setAttr_T2Enc "setAttr-T2Enc" -#define LN_setAttr_T2Enc "encrypted track 2" -#define NID_setAttr_T2Enc 632 -#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L - -#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt" -#define LN_setAttr_T2cleartxt "cleartext track 2" -#define NID_setAttr_T2cleartxt 633 -#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L - -#define SN_setAttr_TokICCsig "setAttr-TokICCsig" -#define LN_setAttr_TokICCsig "ICC or token signature" -#define NID_setAttr_TokICCsig 634 -#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L - -#define SN_setAttr_SecDevSig "setAttr-SecDevSig" -#define LN_setAttr_SecDevSig "secure device signature" -#define NID_setAttr_SecDevSig 635 -#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L - -#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA" -#define NID_set_brand_IATA_ATA 636 -#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L - -#define SN_set_brand_Diners "set-brand-Diners" -#define NID_set_brand_Diners 637 -#define OBJ_set_brand_Diners OBJ_set_brand,30L - -#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress" -#define NID_set_brand_AmericanExpress 638 -#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L - -#define SN_set_brand_JCB "set-brand-JCB" -#define NID_set_brand_JCB 639 -#define OBJ_set_brand_JCB OBJ_set_brand,35L - -#define SN_set_brand_Visa "set-brand-Visa" -#define NID_set_brand_Visa 640 -#define OBJ_set_brand_Visa OBJ_set_brand,4L - -#define SN_set_brand_MasterCard "set-brand-MasterCard" -#define NID_set_brand_MasterCard 641 -#define OBJ_set_brand_MasterCard OBJ_set_brand,5L - -#define SN_set_brand_Novus "set-brand-Novus" -#define NID_set_brand_Novus 642 -#define OBJ_set_brand_Novus OBJ_set_brand,6011L - -#define SN_des_cdmf "DES-CDMF" -#define LN_des_cdmf "des-cdmf" -#define NID_des_cdmf 643 -#define OBJ_des_cdmf OBJ_rsadsi,3L,10L - -#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET" -#define NID_rsaOAEPEncryptionSET 644 -#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L - -#define SN_ipsec3 "Oakley-EC2N-3" -#define LN_ipsec3 "ipsec3" -#define NID_ipsec3 749 - -#define SN_ipsec4 "Oakley-EC2N-4" -#define LN_ipsec4 "ipsec4" -#define NID_ipsec4 750 - -#define SN_whirlpool "whirlpool" -#define NID_whirlpool 804 -#define OBJ_whirlpool OBJ_iso,0L,10118L,3L,0L,55L - -#define SN_cryptopro "cryptopro" -#define NID_cryptopro 805 -#define OBJ_cryptopro OBJ_member_body,643L,2L,2L - -#define SN_cryptocom "cryptocom" -#define NID_cryptocom 806 -#define OBJ_cryptocom OBJ_member_body,643L,2L,9L - -#define SN_id_tc26 "id-tc26" -#define NID_id_tc26 974 -#define OBJ_id_tc26 OBJ_member_body,643L,7L,1L - -#define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" -#define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" -#define NID_id_GostR3411_94_with_GostR3410_2001 807 -#define OBJ_id_GostR3411_94_with_GostR3410_2001 OBJ_cryptopro,3L - -#define SN_id_GostR3411_94_with_GostR3410_94 "id-GostR3411-94-with-GostR3410-94" -#define LN_id_GostR3411_94_with_GostR3410_94 "GOST R 34.11-94 with GOST R 34.10-94" -#define NID_id_GostR3411_94_with_GostR3410_94 808 -#define OBJ_id_GostR3411_94_with_GostR3410_94 OBJ_cryptopro,4L - -#define SN_id_GostR3411_94 "md_gost94" -#define LN_id_GostR3411_94 "GOST R 34.11-94" -#define NID_id_GostR3411_94 809 -#define OBJ_id_GostR3411_94 OBJ_cryptopro,9L - -#define SN_id_HMACGostR3411_94 "id-HMACGostR3411-94" -#define LN_id_HMACGostR3411_94 "HMAC GOST 34.11-94" -#define NID_id_HMACGostR3411_94 810 -#define OBJ_id_HMACGostR3411_94 OBJ_cryptopro,10L - -#define SN_id_GostR3410_2001 "gost2001" -#define LN_id_GostR3410_2001 "GOST R 34.10-2001" -#define NID_id_GostR3410_2001 811 -#define OBJ_id_GostR3410_2001 OBJ_cryptopro,19L - -#define SN_id_GostR3410_94 "gost94" -#define LN_id_GostR3410_94 "GOST R 34.10-94" -#define NID_id_GostR3410_94 812 -#define OBJ_id_GostR3410_94 OBJ_cryptopro,20L - -#define SN_id_Gost28147_89 "gost89" -#define LN_id_Gost28147_89 "GOST 28147-89" -#define NID_id_Gost28147_89 813 -#define OBJ_id_Gost28147_89 OBJ_cryptopro,21L - -#define SN_gost89_cnt "gost89-cnt" -#define NID_gost89_cnt 814 - -#define SN_gost89_cnt_12 "gost89-cnt-12" -#define NID_gost89_cnt_12 975 - -#define SN_gost89_cbc "gost89-cbc" -#define NID_gost89_cbc 1009 - -#define SN_gost89_ecb "gost89-ecb" -#define NID_gost89_ecb 1010 - -#define SN_gost89_ctr "gost89-ctr" -#define NID_gost89_ctr 1011 - -#define SN_id_Gost28147_89_MAC "gost-mac" -#define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" -#define NID_id_Gost28147_89_MAC 815 -#define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L - -#define SN_gost_mac_12 "gost-mac-12" -#define NID_gost_mac_12 976 - -#define SN_id_GostR3411_94_prf "prf-gostr3411-94" -#define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" -#define NID_id_GostR3411_94_prf 816 -#define OBJ_id_GostR3411_94_prf OBJ_cryptopro,23L - -#define SN_id_GostR3410_2001DH "id-GostR3410-2001DH" -#define LN_id_GostR3410_2001DH "GOST R 34.10-2001 DH" -#define NID_id_GostR3410_2001DH 817 -#define OBJ_id_GostR3410_2001DH OBJ_cryptopro,98L - -#define SN_id_GostR3410_94DH "id-GostR3410-94DH" -#define LN_id_GostR3410_94DH "GOST R 34.10-94 DH" -#define NID_id_GostR3410_94DH 818 -#define OBJ_id_GostR3410_94DH OBJ_cryptopro,99L - -#define SN_id_Gost28147_89_CryptoPro_KeyMeshing "id-Gost28147-89-CryptoPro-KeyMeshing" -#define NID_id_Gost28147_89_CryptoPro_KeyMeshing 819 -#define OBJ_id_Gost28147_89_CryptoPro_KeyMeshing OBJ_cryptopro,14L,1L - -#define SN_id_Gost28147_89_None_KeyMeshing "id-Gost28147-89-None-KeyMeshing" -#define NID_id_Gost28147_89_None_KeyMeshing 820 -#define OBJ_id_Gost28147_89_None_KeyMeshing OBJ_cryptopro,14L,0L - -#define SN_id_GostR3411_94_TestParamSet "id-GostR3411-94-TestParamSet" -#define NID_id_GostR3411_94_TestParamSet 821 -#define OBJ_id_GostR3411_94_TestParamSet OBJ_cryptopro,30L,0L - -#define SN_id_GostR3411_94_CryptoProParamSet "id-GostR3411-94-CryptoProParamSet" -#define NID_id_GostR3411_94_CryptoProParamSet 822 -#define OBJ_id_GostR3411_94_CryptoProParamSet OBJ_cryptopro,30L,1L - -#define SN_id_Gost28147_89_TestParamSet "id-Gost28147-89-TestParamSet" -#define NID_id_Gost28147_89_TestParamSet 823 -#define OBJ_id_Gost28147_89_TestParamSet OBJ_cryptopro,31L,0L - -#define SN_id_Gost28147_89_CryptoPro_A_ParamSet "id-Gost28147-89-CryptoPro-A-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_A_ParamSet 824 -#define OBJ_id_Gost28147_89_CryptoPro_A_ParamSet OBJ_cryptopro,31L,1L - -#define SN_id_Gost28147_89_CryptoPro_B_ParamSet "id-Gost28147-89-CryptoPro-B-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_B_ParamSet 825 -#define OBJ_id_Gost28147_89_CryptoPro_B_ParamSet OBJ_cryptopro,31L,2L - -#define SN_id_Gost28147_89_CryptoPro_C_ParamSet "id-Gost28147-89-CryptoPro-C-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_C_ParamSet 826 -#define OBJ_id_Gost28147_89_CryptoPro_C_ParamSet OBJ_cryptopro,31L,3L - -#define SN_id_Gost28147_89_CryptoPro_D_ParamSet "id-Gost28147-89-CryptoPro-D-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_D_ParamSet 827 -#define OBJ_id_Gost28147_89_CryptoPro_D_ParamSet OBJ_cryptopro,31L,4L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet 828 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet OBJ_cryptopro,31L,5L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet 829 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet OBJ_cryptopro,31L,6L - -#define SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet "id-Gost28147-89-CryptoPro-RIC-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet 830 -#define OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet OBJ_cryptopro,31L,7L - -#define SN_id_GostR3410_94_TestParamSet "id-GostR3410-94-TestParamSet" -#define NID_id_GostR3410_94_TestParamSet 831 -#define OBJ_id_GostR3410_94_TestParamSet OBJ_cryptopro,32L,0L - -#define SN_id_GostR3410_94_CryptoPro_A_ParamSet "id-GostR3410-94-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_A_ParamSet 832 -#define OBJ_id_GostR3410_94_CryptoPro_A_ParamSet OBJ_cryptopro,32L,2L - -#define SN_id_GostR3410_94_CryptoPro_B_ParamSet "id-GostR3410-94-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_B_ParamSet 833 -#define OBJ_id_GostR3410_94_CryptoPro_B_ParamSet OBJ_cryptopro,32L,3L - -#define SN_id_GostR3410_94_CryptoPro_C_ParamSet "id-GostR3410-94-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_C_ParamSet 834 -#define OBJ_id_GostR3410_94_CryptoPro_C_ParamSet OBJ_cryptopro,32L,4L - -#define SN_id_GostR3410_94_CryptoPro_D_ParamSet "id-GostR3410-94-CryptoPro-D-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_D_ParamSet 835 -#define OBJ_id_GostR3410_94_CryptoPro_D_ParamSet OBJ_cryptopro,32L,5L - -#define SN_id_GostR3410_94_CryptoPro_XchA_ParamSet "id-GostR3410-94-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchA_ParamSet 836 -#define OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet OBJ_cryptopro,33L,1L - -#define SN_id_GostR3410_94_CryptoPro_XchB_ParamSet "id-GostR3410-94-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchB_ParamSet 837 -#define OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet OBJ_cryptopro,33L,2L - -#define SN_id_GostR3410_94_CryptoPro_XchC_ParamSet "id-GostR3410-94-CryptoPro-XchC-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchC_ParamSet 838 -#define OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet OBJ_cryptopro,33L,3L - -#define SN_id_GostR3410_2001_TestParamSet "id-GostR3410-2001-TestParamSet" -#define NID_id_GostR3410_2001_TestParamSet 839 -#define OBJ_id_GostR3410_2001_TestParamSet OBJ_cryptopro,35L,0L - -#define SN_id_GostR3410_2001_CryptoPro_A_ParamSet "id-GostR3410-2001-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_A_ParamSet 840 -#define OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet OBJ_cryptopro,35L,1L - -#define SN_id_GostR3410_2001_CryptoPro_B_ParamSet "id-GostR3410-2001-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_B_ParamSet 841 -#define OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet OBJ_cryptopro,35L,2L - -#define SN_id_GostR3410_2001_CryptoPro_C_ParamSet "id-GostR3410-2001-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_C_ParamSet 842 -#define OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet OBJ_cryptopro,35L,3L - -#define SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet "id-GostR3410-2001-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet 843 -#define OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet OBJ_cryptopro,36L,0L - -#define SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet "id-GostR3410-2001-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet 844 -#define OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet OBJ_cryptopro,36L,1L - -#define SN_id_GostR3410_94_a "id-GostR3410-94-a" -#define NID_id_GostR3410_94_a 845 -#define OBJ_id_GostR3410_94_a OBJ_id_GostR3410_94,1L - -#define SN_id_GostR3410_94_aBis "id-GostR3410-94-aBis" -#define NID_id_GostR3410_94_aBis 846 -#define OBJ_id_GostR3410_94_aBis OBJ_id_GostR3410_94,2L - -#define SN_id_GostR3410_94_b "id-GostR3410-94-b" -#define NID_id_GostR3410_94_b 847 -#define OBJ_id_GostR3410_94_b OBJ_id_GostR3410_94,3L - -#define SN_id_GostR3410_94_bBis "id-GostR3410-94-bBis" -#define NID_id_GostR3410_94_bBis 848 -#define OBJ_id_GostR3410_94_bBis OBJ_id_GostR3410_94,4L - -#define SN_id_Gost28147_89_cc "id-Gost28147-89-cc" -#define LN_id_Gost28147_89_cc "GOST 28147-89 Cryptocom ParamSet" -#define NID_id_Gost28147_89_cc 849 -#define OBJ_id_Gost28147_89_cc OBJ_cryptocom,1L,6L,1L - -#define SN_id_GostR3410_94_cc "gost94cc" -#define LN_id_GostR3410_94_cc "GOST 34.10-94 Cryptocom" -#define NID_id_GostR3410_94_cc 850 -#define OBJ_id_GostR3410_94_cc OBJ_cryptocom,1L,5L,3L - -#define SN_id_GostR3410_2001_cc "gost2001cc" -#define LN_id_GostR3410_2001_cc "GOST 34.10-2001 Cryptocom" -#define NID_id_GostR3410_2001_cc 851 -#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L - -#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc" -#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_94_cc 852 -#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L - -#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc" -#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_2001_cc 853 -#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L - -#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc" -#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom" -#define NID_id_GostR3410_2001_ParamSet_cc 854 -#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L - -#define SN_id_tc26_algorithms "id-tc26-algorithms" -#define NID_id_tc26_algorithms 977 -#define OBJ_id_tc26_algorithms OBJ_id_tc26,1L - -#define SN_id_tc26_sign "id-tc26-sign" -#define NID_id_tc26_sign 978 -#define OBJ_id_tc26_sign OBJ_id_tc26_algorithms,1L - -#define SN_id_GostR3410_2012_256 "gost2012_256" -#define LN_id_GostR3410_2012_256 "GOST R 34.10-2012 with 256 bit modulus" -#define NID_id_GostR3410_2012_256 979 -#define OBJ_id_GostR3410_2012_256 OBJ_id_tc26_sign,1L - -#define SN_id_GostR3410_2012_512 "gost2012_512" -#define LN_id_GostR3410_2012_512 "GOST R 34.10-2012 with 512 bit modulus" -#define NID_id_GostR3410_2012_512 980 -#define OBJ_id_GostR3410_2012_512 OBJ_id_tc26_sign,2L - -#define SN_id_tc26_digest "id-tc26-digest" -#define NID_id_tc26_digest 981 -#define OBJ_id_tc26_digest OBJ_id_tc26_algorithms,2L - -#define SN_id_GostR3411_2012_256 "md_gost12_256" -#define LN_id_GostR3411_2012_256 "GOST R 34.11-2012 with 256 bit hash" -#define NID_id_GostR3411_2012_256 982 -#define OBJ_id_GostR3411_2012_256 OBJ_id_tc26_digest,2L - -#define SN_id_GostR3411_2012_512 "md_gost12_512" -#define LN_id_GostR3411_2012_512 "GOST R 34.11-2012 with 512 bit hash" -#define NID_id_GostR3411_2012_512 983 -#define OBJ_id_GostR3411_2012_512 OBJ_id_tc26_digest,3L - -#define SN_id_tc26_signwithdigest "id-tc26-signwithdigest" -#define NID_id_tc26_signwithdigest 984 -#define OBJ_id_tc26_signwithdigest OBJ_id_tc26_algorithms,3L - -#define SN_id_tc26_signwithdigest_gost3410_2012_256 "id-tc26-signwithdigest-gost3410-2012-256" -#define LN_id_tc26_signwithdigest_gost3410_2012_256 "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" -#define NID_id_tc26_signwithdigest_gost3410_2012_256 985 -#define OBJ_id_tc26_signwithdigest_gost3410_2012_256 OBJ_id_tc26_signwithdigest,2L - -#define SN_id_tc26_signwithdigest_gost3410_2012_512 "id-tc26-signwithdigest-gost3410-2012-512" -#define LN_id_tc26_signwithdigest_gost3410_2012_512 "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" -#define NID_id_tc26_signwithdigest_gost3410_2012_512 986 -#define OBJ_id_tc26_signwithdigest_gost3410_2012_512 OBJ_id_tc26_signwithdigest,3L - -#define SN_id_tc26_mac "id-tc26-mac" -#define NID_id_tc26_mac 987 -#define OBJ_id_tc26_mac OBJ_id_tc26_algorithms,4L - -#define SN_id_tc26_hmac_gost_3411_2012_256 "id-tc26-hmac-gost-3411-2012-256" -#define LN_id_tc26_hmac_gost_3411_2012_256 "HMAC GOST 34.11-2012 256 bit" -#define NID_id_tc26_hmac_gost_3411_2012_256 988 -#define OBJ_id_tc26_hmac_gost_3411_2012_256 OBJ_id_tc26_mac,1L - -#define SN_id_tc26_hmac_gost_3411_2012_512 "id-tc26-hmac-gost-3411-2012-512" -#define LN_id_tc26_hmac_gost_3411_2012_512 "HMAC GOST 34.11-2012 512 bit" -#define NID_id_tc26_hmac_gost_3411_2012_512 989 -#define OBJ_id_tc26_hmac_gost_3411_2012_512 OBJ_id_tc26_mac,2L - -#define SN_id_tc26_cipher "id-tc26-cipher" -#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 - -#define SN_id_tc26_agreement_gost_3410_2012_256 "id-tc26-agreement-gost-3410-2012-256" -#define NID_id_tc26_agreement_gost_3410_2012_256 992 -#define OBJ_id_tc26_agreement_gost_3410_2012_256 OBJ_id_tc26_agreement,1L - -#define SN_id_tc26_agreement_gost_3410_2012_512 "id-tc26-agreement-gost-3410-2012-512" -#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 - -#define SN_id_tc26_sign_constants "id-tc26-sign-constants" -#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 - -#define SN_id_tc26_gost_3410_2012_512_paramSetTest "id-tc26-gost-3410-2012-512-paramSetTest" -#define LN_id_tc26_gost_3410_2012_512_paramSetTest "GOST R 34.10-2012 (512 bit) testing parameter set" -#define NID_id_tc26_gost_3410_2012_512_paramSetTest 997 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetTest OBJ_id_tc26_gost_3410_2012_512_constants,0L - -#define SN_id_tc26_gost_3410_2012_512_paramSetA "id-tc26-gost-3410-2012-512-paramSetA" -#define LN_id_tc26_gost_3410_2012_512_paramSetA "GOST R 34.10-2012 (512 bit) ParamSet A" -#define NID_id_tc26_gost_3410_2012_512_paramSetA 998 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetA OBJ_id_tc26_gost_3410_2012_512_constants,1L - -#define SN_id_tc26_gost_3410_2012_512_paramSetB "id-tc26-gost-3410-2012-512-paramSetB" -#define LN_id_tc26_gost_3410_2012_512_paramSetB "GOST R 34.10-2012 (512 bit) ParamSet B" -#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 - -#define SN_id_tc26_cipher_constants "id-tc26-cipher-constants" -#define NID_id_tc26_cipher_constants 1001 -#define OBJ_id_tc26_cipher_constants OBJ_id_tc26_constants,5L - -#define SN_id_tc26_gost_28147_constants "id-tc26-gost-28147-constants" -#define NID_id_tc26_gost_28147_constants 1002 -#define OBJ_id_tc26_gost_28147_constants OBJ_id_tc26_cipher_constants,1L - -#define SN_id_tc26_gost_28147_param_Z "id-tc26-gost-28147-param-Z" -#define LN_id_tc26_gost_28147_param_Z "GOST 28147-89 TC26 parameter set" -#define NID_id_tc26_gost_28147_param_Z 1003 -#define OBJ_id_tc26_gost_28147_param_Z OBJ_id_tc26_gost_28147_constants,1L - -#define SN_INN "INN" -#define LN_INN "INN" -#define NID_INN 1004 -#define OBJ_INN OBJ_member_body,643L,3L,131L,1L,1L - -#define SN_OGRN "OGRN" -#define LN_OGRN "OGRN" -#define NID_OGRN 1005 -#define OBJ_OGRN OBJ_member_body,643L,100L,1L - -#define SN_SNILS "SNILS" -#define LN_SNILS "SNILS" -#define NID_SNILS 1006 -#define OBJ_SNILS OBJ_member_body,643L,100L,3L - -#define SN_subjectSignTool "subjectSignTool" -#define LN_subjectSignTool "Signing Tool of Subject" -#define NID_subjectSignTool 1007 -#define OBJ_subjectSignTool OBJ_member_body,643L,100L,111L - -#define SN_issuerSignTool "issuerSignTool" -#define LN_issuerSignTool "Signing Tool of Issuer" -#define NID_issuerSignTool 1008 -#define OBJ_issuerSignTool OBJ_member_body,643L,100L,112L - -#define SN_grasshopper_ecb "grasshopper-ecb" -#define NID_grasshopper_ecb 1012 - -#define SN_grasshopper_ctr "grasshopper-ctr" -#define NID_grasshopper_ctr 1013 - -#define SN_grasshopper_ofb "grasshopper-ofb" -#define NID_grasshopper_ofb 1014 - -#define SN_grasshopper_cbc "grasshopper-cbc" -#define NID_grasshopper_cbc 1015 - -#define SN_grasshopper_cfb "grasshopper-cfb" -#define NID_grasshopper_cfb 1016 - -#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 -#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L - -#define SN_camellia_192_cbc "CAMELLIA-192-CBC" -#define LN_camellia_192_cbc "camellia-192-cbc" -#define NID_camellia_192_cbc 752 -#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L - -#define SN_camellia_256_cbc "CAMELLIA-256-CBC" -#define LN_camellia_256_cbc "camellia-256-cbc" -#define NID_camellia_256_cbc 753 -#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L - -#define SN_id_camellia128_wrap "id-camellia128-wrap" -#define NID_id_camellia128_wrap 907 -#define OBJ_id_camellia128_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,2L - -#define SN_id_camellia192_wrap "id-camellia192-wrap" -#define NID_id_camellia192_wrap 908 -#define OBJ_id_camellia192_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,3L - -#define SN_id_camellia256_wrap "id-camellia256-wrap" -#define NID_id_camellia256_wrap 909 -#define OBJ_id_camellia256_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,4L - -#define OBJ_ntt_ds 0L,3L,4401L,5L - -#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L - -#define SN_camellia_128_ecb "CAMELLIA-128-ECB" -#define LN_camellia_128_ecb "camellia-128-ecb" -#define NID_camellia_128_ecb 754 -#define OBJ_camellia_128_ecb OBJ_camellia,1L - -#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB" -#define LN_camellia_128_ofb128 "camellia-128-ofb" -#define NID_camellia_128_ofb128 766 -#define OBJ_camellia_128_ofb128 OBJ_camellia,3L - -#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB" -#define LN_camellia_128_cfb128 "camellia-128-cfb" -#define NID_camellia_128_cfb128 757 -#define OBJ_camellia_128_cfb128 OBJ_camellia,4L - -#define SN_camellia_128_gcm "CAMELLIA-128-GCM" -#define LN_camellia_128_gcm "camellia-128-gcm" -#define NID_camellia_128_gcm 961 -#define OBJ_camellia_128_gcm OBJ_camellia,6L - -#define SN_camellia_128_ccm "CAMELLIA-128-CCM" -#define LN_camellia_128_ccm "camellia-128-ccm" -#define NID_camellia_128_ccm 962 -#define OBJ_camellia_128_ccm OBJ_camellia,7L - -#define SN_camellia_128_ctr "CAMELLIA-128-CTR" -#define LN_camellia_128_ctr "camellia-128-ctr" -#define NID_camellia_128_ctr 963 -#define OBJ_camellia_128_ctr OBJ_camellia,9L - -#define SN_camellia_128_cmac "CAMELLIA-128-CMAC" -#define LN_camellia_128_cmac "camellia-128-cmac" -#define NID_camellia_128_cmac 964 -#define OBJ_camellia_128_cmac OBJ_camellia,10L - -#define SN_camellia_192_ecb "CAMELLIA-192-ECB" -#define LN_camellia_192_ecb "camellia-192-ecb" -#define NID_camellia_192_ecb 755 -#define OBJ_camellia_192_ecb OBJ_camellia,21L - -#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB" -#define LN_camellia_192_ofb128 "camellia-192-ofb" -#define NID_camellia_192_ofb128 767 -#define OBJ_camellia_192_ofb128 OBJ_camellia,23L - -#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB" -#define LN_camellia_192_cfb128 "camellia-192-cfb" -#define NID_camellia_192_cfb128 758 -#define OBJ_camellia_192_cfb128 OBJ_camellia,24L - -#define SN_camellia_192_gcm "CAMELLIA-192-GCM" -#define LN_camellia_192_gcm "camellia-192-gcm" -#define NID_camellia_192_gcm 965 -#define OBJ_camellia_192_gcm OBJ_camellia,26L - -#define SN_camellia_192_ccm "CAMELLIA-192-CCM" -#define LN_camellia_192_ccm "camellia-192-ccm" -#define NID_camellia_192_ccm 966 -#define OBJ_camellia_192_ccm OBJ_camellia,27L - -#define SN_camellia_192_ctr "CAMELLIA-192-CTR" -#define LN_camellia_192_ctr "camellia-192-ctr" -#define NID_camellia_192_ctr 967 -#define OBJ_camellia_192_ctr OBJ_camellia,29L - -#define SN_camellia_192_cmac "CAMELLIA-192-CMAC" -#define LN_camellia_192_cmac "camellia-192-cmac" -#define NID_camellia_192_cmac 968 -#define OBJ_camellia_192_cmac OBJ_camellia,30L - -#define SN_camellia_256_ecb "CAMELLIA-256-ECB" -#define LN_camellia_256_ecb "camellia-256-ecb" -#define NID_camellia_256_ecb 756 -#define OBJ_camellia_256_ecb OBJ_camellia,41L - -#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB" -#define LN_camellia_256_ofb128 "camellia-256-ofb" -#define NID_camellia_256_ofb128 768 -#define OBJ_camellia_256_ofb128 OBJ_camellia,43L - -#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB" -#define LN_camellia_256_cfb128 "camellia-256-cfb" -#define NID_camellia_256_cfb128 759 -#define OBJ_camellia_256_cfb128 OBJ_camellia,44L - -#define SN_camellia_256_gcm "CAMELLIA-256-GCM" -#define LN_camellia_256_gcm "camellia-256-gcm" -#define NID_camellia_256_gcm 969 -#define OBJ_camellia_256_gcm OBJ_camellia,46L - -#define SN_camellia_256_ccm "CAMELLIA-256-CCM" -#define LN_camellia_256_ccm "camellia-256-ccm" -#define NID_camellia_256_ccm 970 -#define OBJ_camellia_256_ccm OBJ_camellia,47L - -#define SN_camellia_256_ctr "CAMELLIA-256-CTR" -#define LN_camellia_256_ctr "camellia-256-ctr" -#define NID_camellia_256_ctr 971 -#define OBJ_camellia_256_ctr OBJ_camellia,49L - -#define SN_camellia_256_cmac "CAMELLIA-256-CMAC" -#define LN_camellia_256_cmac "camellia-256-cmac" -#define NID_camellia_256_cmac 972 -#define OBJ_camellia_256_cmac OBJ_camellia,50L - -#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" -#define LN_camellia_128_cfb1 "camellia-128-cfb1" -#define NID_camellia_128_cfb1 760 - -#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1" -#define LN_camellia_192_cfb1 "camellia-192-cfb1" -#define NID_camellia_192_cfb1 761 - -#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1" -#define LN_camellia_256_cfb1 "camellia-256-cfb1" -#define NID_camellia_256_cfb1 762 - -#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8" -#define LN_camellia_128_cfb8 "camellia-128-cfb8" -#define NID_camellia_128_cfb8 763 - -#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8" -#define LN_camellia_192_cfb8 "camellia-192-cfb8" -#define NID_camellia_192_cfb8 764 - -#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8" -#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 -#define OBJ_kisa OBJ_member_body,410L,200004L - -#define SN_seed_ecb "SEED-ECB" -#define LN_seed_ecb "seed-ecb" -#define NID_seed_ecb 776 -#define OBJ_seed_ecb OBJ_kisa,1L,3L - -#define SN_seed_cbc "SEED-CBC" -#define LN_seed_cbc "seed-cbc" -#define NID_seed_cbc 777 -#define OBJ_seed_cbc OBJ_kisa,1L,4L - -#define SN_seed_cfb128 "SEED-CFB" -#define LN_seed_cfb128 "seed-cfb" -#define NID_seed_cfb128 779 -#define OBJ_seed_cfb128 OBJ_kisa,1L,5L - -#define SN_seed_ofb128 "SEED-OFB" -#define LN_seed_ofb128 "seed-ofb" -#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 - -#define SN_cmac "CMAC" -#define LN_cmac "cmac" -#define NID_cmac 894 - -#define SN_rc4_hmac_md5 "RC4-HMAC-MD5" -#define LN_rc4_hmac_md5 "rc4-hmac-md5" -#define NID_rc4_hmac_md5 915 - -#define SN_aes_128_cbc_hmac_sha1 "AES-128-CBC-HMAC-SHA1" -#define LN_aes_128_cbc_hmac_sha1 "aes-128-cbc-hmac-sha1" -#define NID_aes_128_cbc_hmac_sha1 916 - -#define SN_aes_192_cbc_hmac_sha1 "AES-192-CBC-HMAC-SHA1" -#define LN_aes_192_cbc_hmac_sha1 "aes-192-cbc-hmac-sha1" -#define NID_aes_192_cbc_hmac_sha1 917 - -#define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" -#define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" -#define NID_aes_256_cbc_hmac_sha1 918 - -#define SN_aes_128_cbc_hmac_sha256 "AES-128-CBC-HMAC-SHA256" -#define LN_aes_128_cbc_hmac_sha256 "aes-128-cbc-hmac-sha256" -#define NID_aes_128_cbc_hmac_sha256 948 - -#define SN_aes_192_cbc_hmac_sha256 "AES-192-CBC-HMAC-SHA256" -#define LN_aes_192_cbc_hmac_sha256 "aes-192-cbc-hmac-sha256" -#define NID_aes_192_cbc_hmac_sha256 949 - -#define SN_aes_256_cbc_hmac_sha256 "AES-256-CBC-HMAC-SHA256" -#define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" -#define NID_aes_256_cbc_hmac_sha256 950 - -#define SN_chacha20_poly1305 "ChaCha20-Poly1305" -#define LN_chacha20_poly1305 "chacha20-poly1305" -#define NID_chacha20_poly1305 1018 - -#define SN_chacha20 "ChaCha20" -#define LN_chacha20 "chacha20" -#define NID_chacha20 1019 - -#define SN_dhpublicnumber "dhpublicnumber" -#define LN_dhpublicnumber "X9.42 DH" -#define NID_dhpublicnumber 920 -#define OBJ_dhpublicnumber OBJ_ISO_US,10046L,2L,1L - -#define SN_brainpoolP160r1 "brainpoolP160r1" -#define NID_brainpoolP160r1 921 -#define OBJ_brainpoolP160r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L - -#define SN_brainpoolP160t1 "brainpoolP160t1" -#define NID_brainpoolP160t1 922 -#define OBJ_brainpoolP160t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L - -#define SN_brainpoolP192r1 "brainpoolP192r1" -#define NID_brainpoolP192r1 923 -#define OBJ_brainpoolP192r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L - -#define SN_brainpoolP192t1 "brainpoolP192t1" -#define NID_brainpoolP192t1 924 -#define OBJ_brainpoolP192t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L - -#define SN_brainpoolP224r1 "brainpoolP224r1" -#define NID_brainpoolP224r1 925 -#define OBJ_brainpoolP224r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L - -#define SN_brainpoolP224t1 "brainpoolP224t1" -#define NID_brainpoolP224t1 926 -#define OBJ_brainpoolP224t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L - -#define SN_brainpoolP256r1 "brainpoolP256r1" -#define NID_brainpoolP256r1 927 -#define OBJ_brainpoolP256r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L - -#define SN_brainpoolP256t1 "brainpoolP256t1" -#define NID_brainpoolP256t1 928 -#define OBJ_brainpoolP256t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L - -#define SN_brainpoolP320r1 "brainpoolP320r1" -#define NID_brainpoolP320r1 929 -#define OBJ_brainpoolP320r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L - -#define SN_brainpoolP320t1 "brainpoolP320t1" -#define NID_brainpoolP320t1 930 -#define OBJ_brainpoolP320t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L - -#define SN_brainpoolP384r1 "brainpoolP384r1" -#define NID_brainpoolP384r1 931 -#define OBJ_brainpoolP384r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L - -#define SN_brainpoolP384t1 "brainpoolP384t1" -#define NID_brainpoolP384t1 932 -#define OBJ_brainpoolP384t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L - -#define SN_brainpoolP512r1 "brainpoolP512r1" -#define NID_brainpoolP512r1 933 -#define OBJ_brainpoolP512r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L - -#define SN_brainpoolP512t1 "brainpoolP512t1" -#define NID_brainpoolP512t1 934 -#define OBJ_brainpoolP512t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L - -#define OBJ_x9_63_scheme 1L,3L,133L,16L,840L,63L,0L - -#define OBJ_secg_scheme OBJ_certicom_arc,1L - -#define SN_dhSinglePass_stdDH_sha1kdf_scheme "dhSinglePass-stdDH-sha1kdf-scheme" -#define NID_dhSinglePass_stdDH_sha1kdf_scheme 936 -#define OBJ_dhSinglePass_stdDH_sha1kdf_scheme OBJ_x9_63_scheme,2L - -#define SN_dhSinglePass_stdDH_sha224kdf_scheme "dhSinglePass-stdDH-sha224kdf-scheme" -#define NID_dhSinglePass_stdDH_sha224kdf_scheme 937 -#define OBJ_dhSinglePass_stdDH_sha224kdf_scheme OBJ_secg_scheme,11L,0L - -#define SN_dhSinglePass_stdDH_sha256kdf_scheme "dhSinglePass-stdDH-sha256kdf-scheme" -#define NID_dhSinglePass_stdDH_sha256kdf_scheme 938 -#define OBJ_dhSinglePass_stdDH_sha256kdf_scheme OBJ_secg_scheme,11L,1L - -#define SN_dhSinglePass_stdDH_sha384kdf_scheme "dhSinglePass-stdDH-sha384kdf-scheme" -#define NID_dhSinglePass_stdDH_sha384kdf_scheme 939 -#define OBJ_dhSinglePass_stdDH_sha384kdf_scheme OBJ_secg_scheme,11L,2L - -#define SN_dhSinglePass_stdDH_sha512kdf_scheme "dhSinglePass-stdDH-sha512kdf-scheme" -#define NID_dhSinglePass_stdDH_sha512kdf_scheme 940 -#define OBJ_dhSinglePass_stdDH_sha512kdf_scheme OBJ_secg_scheme,11L,3L - -#define SN_dhSinglePass_cofactorDH_sha1kdf_scheme "dhSinglePass-cofactorDH-sha1kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha1kdf_scheme 941 -#define OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme OBJ_x9_63_scheme,3L - -#define SN_dhSinglePass_cofactorDH_sha224kdf_scheme "dhSinglePass-cofactorDH-sha224kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha224kdf_scheme 942 -#define OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme OBJ_secg_scheme,14L,0L - -#define SN_dhSinglePass_cofactorDH_sha256kdf_scheme "dhSinglePass-cofactorDH-sha256kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha256kdf_scheme 943 -#define OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme OBJ_secg_scheme,14L,1L - -#define SN_dhSinglePass_cofactorDH_sha384kdf_scheme "dhSinglePass-cofactorDH-sha384kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha384kdf_scheme 944 -#define OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme OBJ_secg_scheme,14L,2L - -#define SN_dhSinglePass_cofactorDH_sha512kdf_scheme "dhSinglePass-cofactorDH-sha512kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha512kdf_scheme 945 -#define OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme OBJ_secg_scheme,14L,3L - -#define SN_dh_std_kdf "dh-std-kdf" -#define NID_dh_std_kdf 946 - -#define SN_dh_cofactor_kdf "dh-cofactor-kdf" -#define NID_dh_cofactor_kdf 947 - -#define SN_ct_precert_scts "ct_precert_scts" -#define LN_ct_precert_scts "CT Precertificate SCTs" -#define NID_ct_precert_scts 951 -#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L - -#define SN_ct_precert_poison "ct_precert_poison" -#define LN_ct_precert_poison "CT Precertificate Poison" -#define NID_ct_precert_poison 952 -#define OBJ_ct_precert_poison 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L - -#define SN_ct_precert_signer "ct_precert_signer" -#define LN_ct_precert_signer "CT Precertificate Signer" -#define NID_ct_precert_signer 953 -#define OBJ_ct_precert_signer 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L - -#define SN_ct_cert_scts "ct_cert_scts" -#define LN_ct_cert_scts "CT Certificate SCTs" -#define NID_ct_cert_scts 954 -#define OBJ_ct_cert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L - -#define SN_jurisdictionLocalityName "jurisdictionL" -#define LN_jurisdictionLocalityName "jurisdictionLocalityName" -#define NID_jurisdictionLocalityName 955 -#define OBJ_jurisdictionLocalityName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,1L - -#define SN_jurisdictionStateOrProvinceName "jurisdictionST" -#define LN_jurisdictionStateOrProvinceName "jurisdictionStateOrProvinceName" -#define NID_jurisdictionStateOrProvinceName 956 -#define OBJ_jurisdictionStateOrProvinceName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,2L - -#define SN_jurisdictionCountryName "jurisdictionC" -#define LN_jurisdictionCountryName "jurisdictionCountryName" -#define NID_jurisdictionCountryName 957 -#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 - -#define SN_tls1_prf "TLS1-PRF" -#define LN_tls1_prf "tls1-prf" -#define NID_tls1_prf 1021 - -#define SN_hkdf "HKDF" -#define LN_hkdf "hkdf" -#define NID_hkdf 1036 - -#define SN_id_pkinit "id-pkinit" -#define NID_id_pkinit 1031 -#define OBJ_id_pkinit 1L,3L,6L,1L,5L,2L,3L - -#define SN_pkInitClientAuth "pkInitClientAuth" -#define LN_pkInitClientAuth "PKINIT Client Auth" -#define NID_pkInitClientAuth 1032 -#define OBJ_pkInitClientAuth OBJ_id_pkinit,4L - -#define SN_pkInitKDC "pkInitKDC" -#define LN_pkInitKDC "Signing KDC Response" -#define NID_pkInitKDC 1033 -#define OBJ_pkInitKDC OBJ_id_pkinit,5L - -#define SN_X25519 "X25519" -#define NID_X25519 1034 -#define OBJ_X25519 1L,3L,101L,110L - -#define SN_X448 "X448" -#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 - -#define SN_kx_ecdhe "KxECDHE" -#define LN_kx_ecdhe "kx-ecdhe" -#define NID_kx_ecdhe 1038 - -#define SN_kx_dhe "KxDHE" -#define LN_kx_dhe "kx-dhe" -#define NID_kx_dhe 1039 - -#define SN_kx_ecdhe_psk "KxECDHE-PSK" -#define LN_kx_ecdhe_psk "kx-ecdhe-psk" -#define NID_kx_ecdhe_psk 1040 - -#define SN_kx_dhe_psk "KxDHE-PSK" -#define LN_kx_dhe_psk "kx-dhe-psk" -#define NID_kx_dhe_psk 1041 - -#define SN_kx_rsa_psk "KxRSA_PSK" -#define LN_kx_rsa_psk "kx-rsa-psk" -#define NID_kx_rsa_psk 1042 - -#define SN_kx_psk "KxPSK" -#define LN_kx_psk "kx-psk" -#define NID_kx_psk 1043 - -#define SN_kx_srp "KxSRP" -#define LN_kx_srp "kx-srp" -#define NID_kx_srp 1044 - -#define SN_kx_gost "KxGOST" -#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 - -#define SN_auth_ecdsa "AuthECDSA" -#define LN_auth_ecdsa "auth-ecdsa" -#define NID_auth_ecdsa 1047 - -#define SN_auth_psk "AuthPSK" -#define LN_auth_psk "auth-psk" -#define NID_auth_psk 1048 - -#define SN_auth_dss "AuthDSS" -#define LN_auth_dss "auth-dss" -#define NID_auth_dss 1049 - -#define SN_auth_gost01 "AuthGOST01" -#define LN_auth_gost01 "auth-gost01" -#define NID_auth_gost01 1050 - -#define SN_auth_gost12 "AuthGOST12" -#define LN_auth_gost12 "auth-gost12" -#define NID_auth_gost12 1051 - -#define SN_auth_srp "AuthSRP" -#define LN_auth_srp "auth-srp" -#define NID_auth_srp 1052 - -#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/openSSL/lin32/include/openssl/objects.h b/openSSL/lin32/include/openssl/objects.h deleted file mode 100644 index 5e8b576..0000000 --- a/openSSL/lin32/include/openssl/objects.h +++ /dev/null @@ -1,175 +0,0 @@ -/* - * 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_OBJECTS_H -# define HEADER_OBJECTS_H - -# include -# include -# include -# include - -# define OBJ_NAME_TYPE_UNDEF 0x00 -# define OBJ_NAME_TYPE_MD_METH 0x01 -# define OBJ_NAME_TYPE_CIPHER_METH 0x02 -# define OBJ_NAME_TYPE_PKEY_METH 0x03 -# define OBJ_NAME_TYPE_COMP_METH 0x04 -# define OBJ_NAME_TYPE_NUM 0x05 - -# define OBJ_NAME_ALIAS 0x8000 - -# define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 -# define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct obj_name_st { - int type; - int alias; - const char *name; - const char *data; -} OBJ_NAME; - -# define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) - -int OBJ_NAME_init(void); -int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), - int (*cmp_func) (const char *, const char *), - void (*free_func) (const char *, int, const char *)); -const char *OBJ_NAME_get(const char *name, int type); -int OBJ_NAME_add(const char *name, int type, const char *data); -int OBJ_NAME_remove(const char *name, int type); -void OBJ_NAME_cleanup(int type); /* -1 for everything */ -void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), - void *arg); -void OBJ_NAME_do_all_sorted(int type, - void (*fn) (const OBJ_NAME *, void *arg), - void *arg); - -ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); -ASN1_OBJECT *OBJ_nid2obj(int n); -const char *OBJ_nid2ln(int n); -const char *OBJ_nid2sn(int n); -int OBJ_obj2nid(const ASN1_OBJECT *o); -ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); -int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); -int OBJ_txt2nid(const char *s); -int OBJ_ln2nid(const char *s); -int OBJ_sn2nid(const char *s); -int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); -const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, - int (*cmp) (const void *, const void *)); -const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, - int size, - int (*cmp) (const void *, const void *), - int flags); - -# define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ - static int nm##_cmp(type1 const *, type2 const *); \ - scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -# define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ - _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) -# define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -/*- - * Unsolved problem: if a type is actually a pointer type, like - * nid_triple is, then its impossible to get a const where you need - * it. Consider: - * - * typedef int nid_triple[3]; - * const void *a_; - * const nid_triple const *a = a_; - * - * The assignment discards a const because what you really want is: - * - * const int const * const *a = a_; - * - * But if you do that, you lose the fact that a is an array of 3 ints, - * which breaks comparison functions. - * - * Thus we end up having to cast, sadly, or unpack the - * declarations. Or, as I finally did in this case, declare nid_triple - * to be a struct, which it should have been in the first place. - * - * Ben, August 2008. - * - * Also, strictly speaking not all types need be const, but handling - * the non-constness means a lot of complication, and in practice - * comparison routines do always not touch their arguments. - */ - -# define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define OBJ_bsearch(type1,key,type2,base,num,cmp) \ - ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN))) - -# define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ - ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN)),flags) - -int OBJ_new_nid(int num); -int OBJ_add_object(const ASN1_OBJECT *obj); -int OBJ_create(const char *oid, const char *sn, const char *ln); -#if OPENSSL_API_COMPAT < 0x10100000L -# define OBJ_cleanup() while(0) continue -#endif -int OBJ_create_objects(BIO *in); - -size_t OBJ_length(const ASN1_OBJECT *obj); -const unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj); - -int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); -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); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/objectserr.h b/openSSL/lin32/include/openssl/objectserr.h deleted file mode 100644 index 02e166f..0000000 --- a/openSSL/lin32/include/openssl/objectserr.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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_OBJERR_H -# define HEADER_OBJERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/ocsp.h b/openSSL/lin32/include/openssl/ocsp.h deleted file mode 100644 index 4d759a4..0000000 --- a/openSSL/lin32/include/openssl/ocsp.h +++ /dev/null @@ -1,352 +0,0 @@ -/* - * 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 - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OCSP_H -# define HEADER_OCSP_H - -#include - -/* - * These definitions are outside the OPENSSL_NO_OCSP guard because although for - * historical reasons they have OCSP_* names, they can actually be used - * independently of OCSP. E.g. see RFC5280 - */ -/*- - * CRLReason ::= ENUMERATED { - * unspecified (0), - * keyCompromise (1), - * cACompromise (2), - * affiliationChanged (3), - * superseded (4), - * cessationOfOperation (5), - * certificateHold (6), - * removeFromCRL (8) } - */ -# define OCSP_REVOKED_STATUS_NOSTATUS -1 -# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 -# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 -# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 -# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 -# define OCSP_REVOKED_STATUS_SUPERSEDED 4 -# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 -# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 -# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 - - -# ifndef OPENSSL_NO_OCSP - -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Various flags and values */ - -# define OCSP_DEFAULT_NONCE_LENGTH 16 - -# define OCSP_NOCERTS 0x1 -# define OCSP_NOINTERN 0x2 -# define OCSP_NOSIGS 0x4 -# define OCSP_NOCHAIN 0x8 -# define OCSP_NOVERIFY 0x10 -# define OCSP_NOEXPLICIT 0x20 -# define OCSP_NOCASIGN 0x40 -# define OCSP_NODELEGATED 0x80 -# define OCSP_NOCHECKS 0x100 -# define OCSP_TRUSTOTHER 0x200 -# define OCSP_RESPID_KEY 0x400 -# define OCSP_NOTIME 0x800 - -typedef struct ocsp_cert_id_st OCSP_CERTID; - -DEFINE_STACK_OF(OCSP_CERTID) - -typedef struct ocsp_one_request_st OCSP_ONEREQ; - -DEFINE_STACK_OF(OCSP_ONEREQ) - -typedef struct ocsp_req_info_st OCSP_REQINFO; -typedef struct ocsp_signature_st OCSP_SIGNATURE; -typedef struct ocsp_request_st OCSP_REQUEST; - -# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 -# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 -# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 -# define OCSP_RESPONSE_STATUS_TRYLATER 3 -# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 -# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 - -typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; - -# define V_OCSP_RESPID_NAME 0 -# define V_OCSP_RESPID_KEY 1 - -DEFINE_STACK_OF(OCSP_RESPID) - -typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; - -# define V_OCSP_CERTSTATUS_GOOD 0 -# define V_OCSP_CERTSTATUS_REVOKED 1 -# define V_OCSP_CERTSTATUS_UNKNOWN 2 - -typedef struct ocsp_cert_status_st OCSP_CERTSTATUS; -typedef struct ocsp_single_response_st OCSP_SINGLERESP; - -DEFINE_STACK_OF(OCSP_SINGLERESP) - -typedef struct ocsp_response_data_st OCSP_RESPDATA; - -typedef struct ocsp_basic_response_st OCSP_BASICRESP; - -typedef struct ocsp_crl_id_st OCSP_CRLID; -typedef struct ocsp_service_locator_st OCSP_SERVICELOC; - -# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" -# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" - -# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) - -# 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) - -# 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) - -# 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) - -# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) - -# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) - -# define ASN1_BIT_STRING_digest(data,type,md,len) \ - ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) - -# define OCSP_CERTSTATUS_dup(cs)\ - (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\ - (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs)) - -OCSP_CERTID *OCSP_CERTID_dup(OCSP_CERTID *id); - -OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); -OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req, - int maxline); -int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx); -int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx); -OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline); -void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx); -void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len); -int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); -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_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, - const char *name, const char *value); - -OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject, - const X509 *issuer); - -OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, - const X509_NAME *issuerName, - const ASN1_BIT_STRING *issuerKey, - const ASN1_INTEGER *serialNumber); - -OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); - -int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); -int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); -int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); -int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); - -int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm); -int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); - -int OCSP_request_sign(OCSP_REQUEST *req, - X509 *signer, - EVP_PKEY *key, - const EVP_MD *dgst, - STACK_OF(X509) *certs, unsigned long flags); - -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); - -int OCSP_resp_count(OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); -const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP* bs); -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, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, - int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, - ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec); - -int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, - X509_STORE *store, unsigned long flags); - -int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, - int *pssl); - -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); -OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); -int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, - ASN1_OCTET_STRING **pikeyHash, - ASN1_INTEGER **pserial, OCSP_CERTID *cid); -int OCSP_request_is_signed(OCSP_REQUEST *req); -OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, - OCSP_CERTID *cid, - int status, int reason, - ASN1_TIME *revtime, - ASN1_TIME *thisupd, - ASN1_TIME *nextupd); -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); - -X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim); - -X509_EXTENSION *OCSP_accept_responses_new(char **oids); - -X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); - -X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, const char **urls); - -int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); -int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); -int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); -X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); -X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); -void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, - int *idx); -int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); - -int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); -int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); -int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj, int lastpos); -int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); -X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); -X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); -void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); -int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); - -int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); -int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); -int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); -X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); -void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, - int *idx); -int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); - -int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); -int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); -int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); -X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); -void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, - int *idx); -int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); -const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x); - -DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) -DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) -DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) -DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) -DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) -DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) -DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) - -const char *OCSP_response_status_str(long s); -const char *OCSP_cert_status_str(long s); -const char *OCSP_crl_reason_str(long s); - -int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags); -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); - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin32/include/openssl/ocsperr.h b/openSSL/lin32/include/openssl/ocsperr.h deleted file mode 100644 index 8dd9e01..0000000 --- a/openSSL/lin32/include/openssl/ocsperr.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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_OCSPERR_H -# define HEADER_OCSPERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/opensslconf.h b/openSSL/lin32/include/openssl/opensslconf.h deleted file mode 100644 index fee81c0..0000000 --- a/openSSL/lin32/include/openssl/opensslconf.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by Makefile from include/openssl/opensslconf.h.in - * - * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_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_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_STATIC_ENGINE -# define OPENSSL_NO_STATIC_ENGINE -#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 -# elif defined(__SUNPRO_C) -# if (__SUNPRO_C >= 0x5130) -# 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/openSSL/lin32/include/openssl/opensslv.h b/openSSL/lin32/include/openssl/opensslv.h deleted file mode 100644 index fec5f57..0000000 --- a/openSSL/lin32/include/openssl/opensslv.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 1999-2022 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_OPENSSLV_H -# define HEADER_OPENSSLV_H - -#ifdef __cplusplus -extern "C" { -#endif - -/*- - * Numeric release version identifier: - * MNNFFPPS: major minor fix patch status - * The status nibble has one of the values 0 for development, 1 to e for betas - * 1 to 14, and f for release. The patch level is exactly that. - * For example: - * 0.9.3-dev 0x00903000 - * 0.9.3-beta1 0x00903001 - * 0.9.3-beta2-dev 0x00903002 - * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) - * 0.9.3 0x0090300f - * 0.9.3a 0x0090301f - * 0.9.4 0x0090400f - * 1.2.3z 0x102031af - * - * For continuity reasons (because 0.9.5 is already out, and is coded - * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level - * part is slightly different, by setting the highest bit. This means - * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start - * with 0x0090600S... - * - * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) - * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for - * major minor fix final patch/beta) - */ -# define OPENSSL_VERSION_NUMBER 0x1010111fL -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1q 5 Jul 2022" - -/*- - * The macros below are to be used for shared library (.so, .dll, ...) - * versioning. That kind of versioning works a bit differently between - * operating systems. The most usual scheme is to set a major and a minor - * number, and have the runtime loader check that the major number is equal - * to what it was at application link time, while the minor number has to - * be greater or equal to what it was at application link time. With this - * scheme, the version number is usually part of the file name, like this: - * - * libcrypto.so.0.9 - * - * Some unixen also make a softlink with the major version number only: - * - * libcrypto.so.0 - * - * On Tru64 and IRIX 6.x it works a little bit differently. There, the - * shared library version is stored in the file, and is actually a series - * of versions, separated by colons. The rightmost version present in the - * library when linking an application is stored in the application to be - * matched at run time. When the application is run, a check is done to - * see if the library version stored in the application matches any of the - * versions in the version string of the library itself. - * This version string can be constructed in any way, depending on what - * kind of matching is desired. However, to implement the same scheme as - * the one used in the other unixen, all compatible versions, from lowest - * to highest, should be part of the string. Consecutive builds would - * give the following versions strings: - * - * 3.0 - * 3.0:3.1 - * 3.0:3.1:3.2 - * 4.0 - * 4.0:4.1 - * - * Notice how version 4 is completely incompatible with version, and - * therefore give the breach you can see. - * - * There may be other schemes as well that I haven't yet discovered. - * - * So, here's the way it works here: first of all, the library version - * number doesn't need at all to match the overall OpenSSL version. - * However, it's nice and more understandable if it actually does. - * The current library version is stored in the macro SHLIB_VERSION_NUMBER, - * which is just a piece of text in the format "M.m.e" (Major, minor, edit). - * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, - * we need to keep a history of version numbers, which is done in the - * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and - * should only keep the versions that are binary compatible with the current. - */ -# define SHLIB_VERSION_HISTORY "" -# define SHLIB_VERSION_NUMBER "1.1" - - -#ifdef __cplusplus -} -#endif -#endif /* HEADER_OPENSSLV_H */ diff --git a/openSSL/lin32/include/openssl/ossl_typ.h b/openSSL/lin32/include/openssl/ossl_typ.h deleted file mode 100644 index e0edfaa..0000000 --- a/openSSL/lin32/include/openssl/ossl_typ.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OPENSSL_TYPES_H -# define HEADER_OPENSSL_TYPES_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -# include - -# ifdef NO_ASN1_TYPEDEFS -# define ASN1_INTEGER ASN1_STRING -# define ASN1_ENUMERATED ASN1_STRING -# define ASN1_BIT_STRING ASN1_STRING -# define ASN1_OCTET_STRING ASN1_STRING -# define ASN1_PRINTABLESTRING ASN1_STRING -# define ASN1_T61STRING ASN1_STRING -# define ASN1_IA5STRING ASN1_STRING -# define ASN1_UTCTIME ASN1_STRING -# define ASN1_GENERALIZEDTIME ASN1_STRING -# define ASN1_TIME ASN1_STRING -# define ASN1_GENERALSTRING ASN1_STRING -# define ASN1_UNIVERSALSTRING ASN1_STRING -# define ASN1_BMPSTRING ASN1_STRING -# define ASN1_VISIBLESTRING ASN1_STRING -# define ASN1_UTF8STRING ASN1_STRING -# define ASN1_BOOLEAN int -# define ASN1_NULL int -# else -typedef struct asn1_string_st ASN1_INTEGER; -typedef struct asn1_string_st ASN1_ENUMERATED; -typedef struct asn1_string_st ASN1_BIT_STRING; -typedef struct asn1_string_st ASN1_OCTET_STRING; -typedef struct asn1_string_st ASN1_PRINTABLESTRING; -typedef struct asn1_string_st ASN1_T61STRING; -typedef struct asn1_string_st ASN1_IA5STRING; -typedef struct asn1_string_st ASN1_GENERALSTRING; -typedef struct asn1_string_st ASN1_UNIVERSALSTRING; -typedef struct asn1_string_st ASN1_BMPSTRING; -typedef struct asn1_string_st ASN1_UTCTIME; -typedef struct asn1_string_st ASN1_TIME; -typedef struct asn1_string_st ASN1_GENERALIZEDTIME; -typedef struct asn1_string_st ASN1_VISIBLESTRING; -typedef struct asn1_string_st ASN1_UTF8STRING; -typedef struct asn1_string_st ASN1_STRING; -typedef int ASN1_BOOLEAN; -typedef int ASN1_NULL; -# endif - -typedef struct asn1_object_st ASN1_OBJECT; - -typedef struct ASN1_ITEM_st ASN1_ITEM; -typedef struct asn1_pctx_st ASN1_PCTX; -typedef struct asn1_sctx_st ASN1_SCTX; - -# ifdef _WIN32 -# undef X509_NAME -# undef X509_EXTENSIONS -# undef PKCS7_ISSUER_AND_SERIAL -# undef PKCS7_SIGNER_INFO -# undef OCSP_REQUEST -# undef OCSP_RESPONSE -# endif - -# ifdef BIGNUM -# undef BIGNUM -# endif -struct dane_st; -typedef struct bio_st BIO; -typedef struct bignum_st BIGNUM; -typedef struct bignum_ctx BN_CTX; -typedef struct bn_blinding_st BN_BLINDING; -typedef struct bn_mont_ctx_st BN_MONT_CTX; -typedef struct bn_recp_ctx_st BN_RECP_CTX; -typedef struct bn_gencb_st BN_GENCB; - -typedef struct buf_mem_st BUF_MEM; - -typedef struct evp_cipher_st EVP_CIPHER; -typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; -typedef struct evp_md_st EVP_MD; -typedef struct evp_md_ctx_st EVP_MD_CTX; -typedef struct evp_pkey_st EVP_PKEY; - -typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; - -typedef struct evp_pkey_method_st EVP_PKEY_METHOD; -typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; - -typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; - -typedef struct hmac_ctx_st HMAC_CTX; - -typedef struct dh_st DH; -typedef struct dh_method DH_METHOD; - -typedef struct dsa_st DSA; -typedef struct dsa_method DSA_METHOD; - -typedef struct rsa_st RSA; -typedef struct rsa_meth_st RSA_METHOD; -typedef struct rsa_pss_params_st RSA_PSS_PARAMS; - -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; -typedef struct X509_algor_st X509_ALGOR; -typedef struct X509_crl_st X509_CRL; -typedef struct x509_crl_method_st X509_CRL_METHOD; -typedef struct x509_revoked_st X509_REVOKED; -typedef struct X509_name_st X509_NAME; -typedef struct X509_pubkey_st X509_PUBKEY; -typedef struct x509_store_st X509_STORE; -typedef struct x509_store_ctx_st X509_STORE_CTX; - -typedef struct x509_object_st X509_OBJECT; -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; -typedef struct conf_st CONF; -typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; - -typedef struct ui_st UI; -typedef struct ui_method_st UI_METHOD; - -typedef struct engine_st ENGINE; -typedef struct ssl_st SSL; -typedef struct ssl_ctx_st SSL_CTX; - -typedef struct comp_ctx_st COMP_CTX; -typedef struct comp_method_st COMP_METHOD; - -typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; -typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; -typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; -typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; - -typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; -typedef struct DIST_POINT_st DIST_POINT; -typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; -typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; - -typedef struct crypto_ex_data_st CRYPTO_EX_DATA; - -typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; -typedef struct ocsp_response_st OCSP_RESPONSE; -typedef struct ocsp_responder_id_st OCSP_RESPID; - -typedef struct sct_st SCT; -typedef struct sct_ctx_st SCT_CTX; -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; -typedef uintmax_t ossl_uintmax_t; -#else -/* - * Not long long, because the C-library can only be expected to provide - * strtoll(), strtoull() at the same time as intmax_t and strtoimax(), - * strtoumax(). Since we use these for parsing arguments, we need the - * conversion functions, not just the sizes. - */ -typedef long ossl_intmax_t; -typedef unsigned long ossl_uintmax_t; -#endif - -#ifdef __cplusplus -} -#endif -#endif /* def HEADER_OPENSSL_TYPES_H */ diff --git a/openSSL/lin32/include/openssl/pem.h b/openSSL/lin32/include/openssl/pem.h deleted file mode 100644 index 2ef5b5d..0000000 --- a/openSSL/lin32/include/openssl/pem.h +++ /dev/null @@ -1,378 +0,0 @@ -/* - * 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_PEM_H -# define HEADER_PEM_H - -# include -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define PEM_BUFSIZE 1024 - -# define PEM_STRING_X509_OLD "X509 CERTIFICATE" -# define PEM_STRING_X509 "CERTIFICATE" -# define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" -# define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" -# define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" -# define PEM_STRING_X509_CRL "X509 CRL" -# define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" -# define PEM_STRING_PUBLIC "PUBLIC KEY" -# define PEM_STRING_RSA "RSA PRIVATE KEY" -# define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" -# define PEM_STRING_DSA "DSA PRIVATE KEY" -# define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" -# define PEM_STRING_PKCS7 "PKCS7" -# define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" -# define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" -# define PEM_STRING_PKCS8INF "PRIVATE KEY" -# define PEM_STRING_DHPARAMS "DH PARAMETERS" -# define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS" -# define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" -# define PEM_STRING_DSAPARAMS "DSA PARAMETERS" -# define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" -# define PEM_STRING_ECPARAMETERS "EC PARAMETERS" -# define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" -# define PEM_STRING_PARAMETERS "PARAMETERS" -# define PEM_STRING_CMS "CMS" - -# define PEM_TYPE_ENCRYPTED 10 -# define PEM_TYPE_MIC_ONLY 20 -# define PEM_TYPE_MIC_CLEAR 30 -# define PEM_TYPE_CLEAR 40 - -/* - * 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 - * IMPLEMENT_PEM_rw_cb(...) - */ - -# ifdef OPENSSL_NO_STDIO - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ -# else - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ -type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ -{ \ -return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \ -} - -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x) \ -{ \ -return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, const type *x) \ -{ \ -return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, \ - void *u) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, \ - void *u) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ - } - -# endif - -# define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ -type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\ -{ \ -return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str,bp,(void **)x,cb,u); \ -} - -# define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x) \ -{ \ -return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, const type *x) \ -{ \ -return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_read_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb(name, type, str, asn1) - -/* These are the same except they are for the declarations */ - -# if defined(OPENSSL_NO_STDIO) - -# define DECLARE_PEM_read_fp(name, type) /**/ -# define DECLARE_PEM_write_fp(name, type) /**/ -# define DECLARE_PEM_write_fp_const(name, type) /**/ -# define DECLARE_PEM_write_cb_fp(name, type) /**/ -# else - -# define DECLARE_PEM_read_fp(name, type) \ - type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write_fp(name, type) \ - int PEM_write_##name(FILE *fp, type *x); - -# define DECLARE_PEM_write_fp_const(name, type) \ - int PEM_write_##name(FILE *fp, const type *x); - -# define DECLARE_PEM_write_cb_fp(name, type) \ - int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u); - -# endif - -# define DECLARE_PEM_read_bio(name, type) \ - type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write_bio(name, type) \ - int PEM_write_bio_##name(BIO *bp, type *x); - -# define DECLARE_PEM_write_bio_const(name, type) \ - int PEM_write_bio_##name(BIO *bp, const type *x); - -# define DECLARE_PEM_write_cb_bio(name, type) \ - int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write(name, type) \ - DECLARE_PEM_write_bio(name, type) \ - DECLARE_PEM_write_fp(name, type) -# define DECLARE_PEM_write_const(name, type) \ - DECLARE_PEM_write_bio_const(name, type) \ - DECLARE_PEM_write_fp_const(name, type) -# define DECLARE_PEM_write_cb(name, type) \ - DECLARE_PEM_write_cb_bio(name, type) \ - DECLARE_PEM_write_cb_fp(name, type) -# define DECLARE_PEM_read(name, type) \ - DECLARE_PEM_read_bio(name, type) \ - DECLARE_PEM_read_fp(name, type) -# define DECLARE_PEM_rw(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write(name, type) -# define DECLARE_PEM_rw_const(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write_const(name, type) -# define DECLARE_PEM_rw_cb(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write_cb(name, type) -typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); - -int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); -int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, - pem_password_cb *callback, void *u); - -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, - const char *name, BIO *bp, pem_password_cb *cb, - void *u); -void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, - const EVP_CIPHER *enc, unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); - -STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, - unsigned char *kstr, int klen, - pem_password_cb *cd, void *u); - -#ifndef OPENSSL_NO_STDIO -int PEM_read(FILE *fp, char **name, char **header, - unsigned char **data, long *len); -int PEM_write(FILE *fp, const char *name, const char *hdr, - const unsigned char *data, long len); -void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, - void *x, const EVP_CIPHER *enc, unsigned char *kstr, - int klen, pem_password_cb *callback, void *u); -STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -#endif - -int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); -int PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); -int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - unsigned int *siglen, EVP_PKEY *pkey); - -/* The default pem_password_cb that's used internally */ -int PEM_def_callback(char *buf, int num, int rwflag, void *userdata); -void PEM_proc_type(char *buf, int type); -void PEM_dek_info(char *buf, const char *type, int len, char *str); - -# include - -DECLARE_PEM_rw(X509, X509) -DECLARE_PEM_rw(X509_AUX, X509) -DECLARE_PEM_rw(X509_REQ, X509_REQ) -DECLARE_PEM_write(X509_REQ_NEW, X509_REQ) -DECLARE_PEM_rw(X509_CRL, X509_CRL) -DECLARE_PEM_rw(PKCS7, PKCS7) -DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) -DECLARE_PEM_rw(PKCS8, X509_SIG) -DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) -# ifndef OPENSSL_NO_RSA -DECLARE_PEM_rw_cb(RSAPrivateKey, RSA) -DECLARE_PEM_rw_const(RSAPublicKey, RSA) -DECLARE_PEM_rw(RSA_PUBKEY, RSA) -# endif -# ifndef OPENSSL_NO_DSA -DECLARE_PEM_rw_cb(DSAPrivateKey, DSA) -DECLARE_PEM_rw(DSA_PUBKEY, DSA) -DECLARE_PEM_rw_const(DSAparams, DSA) -# endif -# ifndef OPENSSL_NO_EC -DECLARE_PEM_rw_const(ECPKParameters, EC_GROUP) -DECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY) -DECLARE_PEM_rw(EC_PUBKEY, EC_KEY) -# endif -# ifndef OPENSSL_NO_DH -DECLARE_PEM_rw_const(DHparams, DH) -DECLARE_PEM_write_const(DHxparams, DH) -# endif -DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) -DECLARE_PEM_rw(PUBKEY, EVP_PKEY) - -int PEM_write_bio_PrivateKey_traditional(BIO *bp, EVP_PKEY *x, - const EVP_CIPHER *enc, - unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); - -int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, - char *, int, pem_password_cb *, void *); -int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -# ifndef OPENSSL_NO_STDIO -int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); - -EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, pem_password_cb *cd, - void *u); -# endif -EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); -int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); - -# ifndef OPENSSL_NO_DSA -EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PrivateKey_bio(BIO *in); -EVP_PKEY *b2i_PublicKey_bio(BIO *in); -int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk); -int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); -# ifndef OPENSSL_NO_RC4 -EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); -int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, - pem_password_cb *cb, void *u); -# endif -# endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/pem2.h b/openSSL/lin32/include/openssl/pem2.h deleted file mode 100644 index 038fe79..0000000 --- a/openSSL/lin32/include/openssl/pem2.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_PEM2_H -# define HEADER_PEM2_H -# include -#endif diff --git a/openSSL/lin32/include/openssl/pemerr.h b/openSSL/lin32/include/openssl/pemerr.h deleted file mode 100644 index 4f7e357..0000000 --- a/openSSL/lin32/include/openssl/pemerr.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_BIO_PRIVATEKEY_TRADITIONAL 147 -# 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 -# define PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE 110 - -#endif diff --git a/openSSL/lin32/include/openssl/pkcs12.h b/openSSL/lin32/include/openssl/pkcs12.h deleted file mode 100644 index 3f43dad..0000000 --- a/openSSL/lin32/include/openssl/pkcs12.h +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright 1999-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_PKCS12_H -# define HEADER_PKCS12_H - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define PKCS12_KEY_ID 1 -# define PKCS12_IV_ID 2 -# define PKCS12_MAC_ID 3 - -/* Default iteration count */ -# ifndef PKCS12_DEFAULT_ITER -# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER -# endif - -# define PKCS12_MAC_KEY_LENGTH 20 - -# define PKCS12_SALT_LEN 8 - -/* It's not clear if these are actually needed... */ -# define PKCS12_key_gen PKCS12_key_gen_utf8 -# define PKCS12_add_friendlyname PKCS12_add_friendlyname_utf8 - -/* MS key usage constants */ - -# define KEY_EX 0x10 -# define KEY_SIG 0x80 - -typedef struct PKCS12_MAC_DATA_st PKCS12_MAC_DATA; - -typedef struct PKCS12_st PKCS12; - -typedef struct PKCS12_SAFEBAG_st PKCS12_SAFEBAG; - -DEFINE_STACK_OF(PKCS12_SAFEBAG) - -typedef struct pkcs12_bag_st PKCS12_BAGS; - -# define PKCS12_ERROR 0 -# define PKCS12_OK 1 - -/* Compatibility macros */ - -#if OPENSSL_API_COMPAT < 0x10100000L - -# define M_PKCS12_bag_type PKCS12_bag_type -# define M_PKCS12_cert_bag_type PKCS12_cert_bag_type -# define M_PKCS12_crl_bag_type PKCS12_cert_bag_type - -# define PKCS12_certbag2x509 PKCS12_SAFEBAG_get1_cert -# define PKCS12_certbag2scrl PKCS12_SAFEBAG_get1_crl -# define PKCS12_bag_type PKCS12_SAFEBAG_get_nid -# define PKCS12_cert_bag_type PKCS12_SAFEBAG_get_bag_nid -# define PKCS12_x5092certbag PKCS12_SAFEBAG_create_cert -# define PKCS12_x509crl2certbag PKCS12_SAFEBAG_create_crl -# define PKCS12_MAKE_KEYBAG PKCS12_SAFEBAG_create0_p8inf -# define PKCS12_MAKE_SHKEYBAG PKCS12_SAFEBAG_create_pkcs8_encrypt - -#endif - -DEPRECATEDIN_1_1_0(ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag, int attr_nid)) - -ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid); -int PKCS12_mac_present(const PKCS12 *p12); -void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac, - const X509_ALGOR **pmacalg, - const ASN1_OCTET_STRING **psalt, - const ASN1_INTEGER **piter, - const PKCS12 *p12); - -const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag, - int attr_nid); -const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); -int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag); -int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); - -X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); -X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); -const STACK_OF(PKCS12_SAFEBAG) * -PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); -const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); -const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); - -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid, - const char *pass, - int passlen, - unsigned char *salt, - int saltlen, int iter, - PKCS8_PRIV_KEY_INFO *p8inf); - -PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, - int nid1, int nid2); -PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass, - int passlen); -PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, - const char *pass, int passlen); -X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, - const char *pass, int passlen, unsigned char *salt, - int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); -X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen, - PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe); -PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); -PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - STACK_OF(PKCS12_SAFEBAG) *bags); -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, - int passlen); - -int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); -STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12); - -int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, - int namelen); -int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, - const unsigned char *name, int namelen); -int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); -ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, - int attr_nid); -char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); -const STACK_OF(X509_ATTRIBUTE) * -PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); -unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, - const char *pass, int passlen, - const unsigned char *in, int inlen, - unsigned char **data, int *datalen, - int en_de); -void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, - const char *pass, int passlen, - const ASN1_OCTET_STRING *oct, int zbuf); -ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, - const ASN1_ITEM *it, - const char *pass, int passlen, - void *obj, int zbuf); -PKCS12 *PKCS12_init(int mode); -int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md_type, int en_de); -int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *mac, unsigned int *maclen); -int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); -int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - const EVP_MD *md_type); -int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, - int saltlen, const EVP_MD *md_type); -unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2asc(const unsigned char *uni, int unilen); -unsigned char *OPENSSL_utf82uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen); - -DECLARE_ASN1_FUNCTIONS(PKCS12) -DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) -DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) -DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) - -DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) -DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) - -void PKCS12_PBE_add(void); -int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, - STACK_OF(X509) **ca); -PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, - X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, - int iter, int mac_iter, int keytype); - -PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); -PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, - EVP_PKEY *key, int key_usage, int iter, - int key_nid, const char *pass); -int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, - int safe_nid, int iter, const char *pass); -PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); - -int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); -# ifndef OPENSSL_NO_STDIO -int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); -# endif -PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); -# ifndef OPENSSL_NO_STDIO -PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); -# endif -int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/pkcs12err.h b/openSSL/lin32/include/openssl/pkcs12err.h deleted file mode 100644 index eff5eb2..0000000 --- a/openSSL/lin32/include/openssl/pkcs12err.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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_PKCS12ERR_H -# define HEADER_PKCS12ERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/pkcs7.h b/openSSL/lin32/include/openssl/pkcs7.h deleted file mode 100644 index 9b66e00..0000000 --- a/openSSL/lin32/include/openssl/pkcs7.h +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Copyright 1995-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_PKCS7_H -# define HEADER_PKCS7_H - -# include -# include -# include - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/*- -Encryption_ID DES-CBC -Digest_ID MD5 -Digest_Encryption_ID rsaEncryption -Key_Encryption_ID rsaEncryption -*/ - -typedef struct pkcs7_issuer_and_serial_st { - X509_NAME *issuer; - ASN1_INTEGER *serial; -} PKCS7_ISSUER_AND_SERIAL; - -typedef struct pkcs7_signer_info_st { - ASN1_INTEGER *version; /* version 1 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *digest_alg; - STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; - STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ - /* The private key to sign with */ - EVP_PKEY *pkey; -} PKCS7_SIGNER_INFO; - -DEFINE_STACK_OF(PKCS7_SIGNER_INFO) - -typedef struct pkcs7_recip_info_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *key_enc_algor; - ASN1_OCTET_STRING *enc_key; - X509 *cert; /* get the pub-key from this */ -} PKCS7_RECIP_INFO; - -DEFINE_STACK_OF(PKCS7_RECIP_INFO) - -typedef struct pkcs7_signed_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - struct pkcs7_st *contents; -} PKCS7_SIGNED; -/* - * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about - * merging the two - */ - -typedef struct pkcs7_enc_content_st { - ASN1_OBJECT *content_type; - X509_ALGOR *algorithm; - ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ - const EVP_CIPHER *cipher; -} PKCS7_ENC_CONTENT; - -typedef struct pkcs7_enveloped_st { - ASN1_INTEGER *version; /* version 0 */ - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENVELOPE; - -typedef struct pkcs7_signedandenveloped_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - PKCS7_ENC_CONTENT *enc_data; - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; -} PKCS7_SIGN_ENVELOPE; - -typedef struct pkcs7_digest_st { - ASN1_INTEGER *version; /* version 0 */ - X509_ALGOR *md; /* md used */ - struct pkcs7_st *contents; - ASN1_OCTET_STRING *digest; -} PKCS7_DIGEST; - -typedef struct pkcs7_encrypted_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENCRYPT; - -typedef struct pkcs7_st { - /* - * The following is non NULL if it contains ASN1 encoding of this - * structure - */ - unsigned char *asn1; - long length; -# define PKCS7_S_HEADER 0 -# define PKCS7_S_BODY 1 -# define PKCS7_S_TAIL 2 - int state; /* used during processing */ - int detached; - ASN1_OBJECT *type; - /* content as defined by the type */ - /* - * all encryption/message digests are applied to the 'contents', leaving - * out the 'type' field. - */ - union { - char *ptr; - /* NID_pkcs7_data */ - ASN1_OCTET_STRING *data; - /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; - /* NID_pkcs7_enveloped */ - PKCS7_ENVELOPE *enveloped; - /* NID_pkcs7_signedAndEnveloped */ - PKCS7_SIGN_ENVELOPE *signed_and_enveloped; - /* NID_pkcs7_digest */ - PKCS7_DIGEST *digest; - /* NID_pkcs7_encrypted */ - PKCS7_ENCRYPT *encrypted; - /* Anything else */ - ASN1_TYPE *other; - } d; -} PKCS7; - -DEFINE_STACK_OF(PKCS7) - -# define PKCS7_OP_SET_DETACHED_SIGNATURE 1 -# define PKCS7_OP_GET_DETACHED_SIGNATURE 2 - -# define PKCS7_get_signed_attributes(si) ((si)->auth_attr) -# define PKCS7_get_attributes(si) ((si)->unauth_attr) - -# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) -# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) -# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) -# define PKCS7_type_is_signedAndEnveloped(a) \ - (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) -# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) -# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) - -# define PKCS7_set_detached(p,v) \ - PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) -# define PKCS7_get_detached(p) \ - PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) - -# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) - -/* S/MIME related flags */ - -# define PKCS7_TEXT 0x1 -# define PKCS7_NOCERTS 0x2 -# define PKCS7_NOSIGS 0x4 -# define PKCS7_NOCHAIN 0x8 -# define PKCS7_NOINTERN 0x10 -# define PKCS7_NOVERIFY 0x20 -# define PKCS7_DETACHED 0x40 -# define PKCS7_BINARY 0x80 -# define PKCS7_NOATTR 0x100 -# define PKCS7_NOSMIMECAP 0x200 -# define PKCS7_NOOLDMIMETYPE 0x400 -# define PKCS7_CRLFEOL 0x800 -# define PKCS7_STREAM 0x1000 -# define PKCS7_NOCRL 0x2000 -# define PKCS7_PARTIAL 0x4000 -# define PKCS7_REUSE_DIGEST 0x8000 -# define PKCS7_NO_DUAL_CONTENT 0x10000 - -/* Flags: for compatibility with older code */ - -# define SMIME_TEXT PKCS7_TEXT -# define SMIME_NOCERTS PKCS7_NOCERTS -# define SMIME_NOSIGS PKCS7_NOSIGS -# define SMIME_NOCHAIN PKCS7_NOCHAIN -# define SMIME_NOINTERN PKCS7_NOINTERN -# define SMIME_NOVERIFY PKCS7_NOVERIFY -# define SMIME_DETACHED PKCS7_DETACHED -# define SMIME_BINARY PKCS7_BINARY -# define SMIME_NOATTR PKCS7_NOATTR - -/* CRLF ASCII canonicalisation */ -# define SMIME_ASCIICRLF 0x80000 - -DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) - -int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, - const EVP_MD *type, unsigned char *md, - unsigned int *len); -# ifndef OPENSSL_NO_STDIO -PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); -int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); -# endif -PKCS7 *PKCS7_dup(PKCS7 *p7); -PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); -int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); -int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); -int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); - -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) -DECLARE_ASN1_FUNCTIONS(PKCS7) - -DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) -DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) - -DECLARE_ASN1_NDEF_FUNCTION(PKCS7) -DECLARE_ASN1_PRINT_FUNCTION(PKCS7) - -long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); - -int PKCS7_set_type(PKCS7 *p7, int type); -int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); -int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); -int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, - const EVP_MD *dgst); -int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); -int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); -int PKCS7_content_new(PKCS7 *p7, int nid); -int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, - BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); - -BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); -int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); -BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); - -PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, - EVP_PKEY *pkey, const EVP_MD *dgst); -X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); -STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); - -PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); -void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, - X509_ALGOR **pdig, X509_ALGOR **psig); -void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); -int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); -int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); -int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); -int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); - -PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); -ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, - void *data); -int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, - void *value); -ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); -ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); -int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); - -PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, - BIO *data, int flags); - -PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, - X509 *signcert, EVP_PKEY *pkey, - const EVP_MD *md, int flags); - -int PKCS7_final(PKCS7 *p7, BIO *data, int flags); -int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, - BIO *indata, BIO *out, int flags); -STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, - int flags); -PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, - int flags); -int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, - int flags); - -int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, - STACK_OF(X509_ALGOR) *cap); -STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); -int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); - -int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); -int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); -int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, - const unsigned char *md, int mdlen); - -int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); -PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); - -BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/pkcs7err.h b/openSSL/lin32/include/openssl/pkcs7err.h deleted file mode 100644 index 02e0299..0000000 --- a/openSSL/lin32/include/openssl/pkcs7err.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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_PKCS7ERR_H -# define HEADER_PKCS7ERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/rand.h b/openSSL/lin32/include/openssl/rand.h deleted file mode 100644 index 38a2a27..0000000 --- a/openSSL/lin32/include/openssl/rand.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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_RAND_H -# define HEADER_RAND_H - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -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 randomness); - int (*pseudorand) (unsigned char *buf, int num); - int (*status) (void); -}; - -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 -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); -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 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)) -/* 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 - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin32/include/openssl/rand_drbg.h b/openSSL/lin32/include/openssl/rand_drbg.h deleted file mode 100644 index 45b731b..0000000 --- a/openSSL/lin32/include/openssl/rand_drbg.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * 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/openSSL/lin32/include/openssl/randerr.h b/openSSL/lin32/include/openssl/randerr.h deleted file mode 100644 index 79d5790..0000000 --- a/openSSL/lin32/include/openssl/randerr.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# include - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_RAND_strings(void); - -/* - * RAND function codes. - */ -# define RAND_F_DATA_COLLECT_METHOD 127 -# 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_GROW 125 -# define RAND_F_RAND_POOL_NEW 116 -# define RAND_F_RAND_PSEUDO_BYTES 126 -# 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/openSSL/lin32/include/openssl/rc2.h b/openSSL/lin32/include/openssl/rc2.h deleted file mode 100644 index 585f9e4..0000000 --- a/openSSL/lin32/include/openssl/rc2.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 1995-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_RC2_H -# define HEADER_RC2_H - -# include - -# ifndef OPENSSL_NO_RC2 -# ifdef __cplusplus -extern "C" { -# endif - -typedef unsigned int RC2_INT; - -# define RC2_ENCRYPT 1 -# define RC2_DECRYPT 0 - -# define RC2_BLOCK 8 -# define RC2_KEY_LENGTH 16 - -typedef struct rc2_key_st { - RC2_INT data[64]; -} RC2_KEY; - -void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits); -void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out, - RC2_KEY *key, int enc); -void RC2_encrypt(unsigned long *data, RC2_KEY *key); -void RC2_decrypt(unsigned long *data, RC2_KEY *key); -void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - RC2_KEY *ks, unsigned char *iv, int enc); -void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC2_KEY *schedule, unsigned char *ivec, - int *num, int enc); -void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC2_KEY *schedule, unsigned char *ivec, - int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/rc4.h b/openSSL/lin32/include/openssl/rc4.h deleted file mode 100644 index 86803b3..0000000 --- a/openSSL/lin32/include/openssl/rc4.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 1995-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_RC4_H -# define HEADER_RC4_H - -# include - -# ifndef OPENSSL_NO_RC4 -# include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct rc4_key_st { - RC4_INT x, y; - RC4_INT data[256]; -} RC4_KEY; - -const char *RC4_options(void); -void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); -void RC4(RC4_KEY *key, size_t len, const unsigned char *indata, - unsigned char *outdata); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/rc5.h b/openSSL/lin32/include/openssl/rc5.h deleted file mode 100644 index 793f88e..0000000 --- a/openSSL/lin32/include/openssl/rc5.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 1995-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_RC5_H -# define HEADER_RC5_H - -# include - -# ifndef OPENSSL_NO_RC5 -# ifdef __cplusplus -extern "C" { -# endif - -# define RC5_ENCRYPT 1 -# define RC5_DECRYPT 0 - -# define RC5_32_INT unsigned int - -# define RC5_32_BLOCK 8 -# define RC5_32_KEY_LENGTH 16/* This is a default, max is 255 */ - -/* - * This are the only values supported. Tweak the code if you want more The - * most supported modes will be RC5-32/12/16 RC5-32/16/8 - */ -# define RC5_8_ROUNDS 8 -# define RC5_12_ROUNDS 12 -# define RC5_16_ROUNDS 16 - -typedef struct rc5_key_st { - /* Number of rounds */ - int rounds; - RC5_32_INT data[2 * (RC5_16_ROUNDS + 1)]; -} RC5_32_KEY; - -void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data, - int rounds); -void RC5_32_ecb_encrypt(const unsigned char *in, unsigned char *out, - RC5_32_KEY *key, int enc); -void RC5_32_encrypt(unsigned long *data, RC5_32_KEY *key); -void RC5_32_decrypt(unsigned long *data, RC5_32_KEY *key); -void RC5_32_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, RC5_32_KEY *ks, unsigned char *iv, - int enc); -void RC5_32_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC5_32_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void RC5_32_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC5_32_KEY *schedule, - unsigned char *ivec, int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/ripemd.h b/openSSL/lin32/include/openssl/ripemd.h deleted file mode 100644 index c42026a..0000000 --- a/openSSL/lin32/include/openssl/ripemd.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 1995-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_RIPEMD_H -# define HEADER_RIPEMD_H - -# include - -#ifndef OPENSSL_NO_RMD160 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define RIPEMD160_LONG unsigned int - -# define RIPEMD160_CBLOCK 64 -# define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) -# define RIPEMD160_DIGEST_LENGTH 20 - -typedef struct RIPEMD160state_st { - RIPEMD160_LONG A, B, C, D, E; - RIPEMD160_LONG Nl, Nh; - RIPEMD160_LONG data[RIPEMD160_LBLOCK]; - unsigned int num; -} RIPEMD160_CTX; - -int RIPEMD160_Init(RIPEMD160_CTX *c); -int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len); -int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); -unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned char *md); -void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b); - -# ifdef __cplusplus -} -# endif -# endif - - -#endif diff --git a/openSSL/lin32/include/openssl/rsa.h b/openSSL/lin32/include/openssl/rsa.h deleted file mode 100644 index 5e76365..0000000 --- a/openSSL/lin32/include/openssl/rsa.h +++ /dev/null @@ -1,513 +0,0 @@ -/* - * 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_RSA_H -# define HEADER_RSA_H - -# include - -# ifndef OPENSSL_NO_RSA -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* The types RSA and RSA_METHOD are defined in ossl_typ.h */ - -# ifndef OPENSSL_RSA_MAX_MODULUS_BITS -# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 -# endif - -# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 1024 - -# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS -# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 -# endif -# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS - -/* exponent limit enforced for "large" modulus only */ -# define OPENSSL_RSA_MAX_PUBEXP_BITS 64 -# endif - -# 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 */ - -# define RSA_FLAG_CACHE_PUBLIC 0x0002 -# define RSA_FLAG_CACHE_PRIVATE 0x0004 -# define RSA_FLAG_BLINDING 0x0008 -# define RSA_FLAG_THREAD_SAFE 0x0010 -/* - * This flag means the private key operations will be handled by rsa_mod_exp - * and that they do not depend on the private key components being present: - * for example a key stored in external hardware. Without this flag - * bn_mod_exp gets called when private key components are absent. - */ -# define RSA_FLAG_EXT_PKEY 0x0020 - -/* - * new with 0.9.6j and 0.9.7b; the built-in - * RSA implementation now uses blinding by - * default (ignoring RSA_FLAG_BLINDING), - * but other engines might not need it - */ -# define RSA_FLAG_NO_BLINDING 0x0080 -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define RSA_FLAG_NO_CONSTTIME 0x0000 -# endif -# if OPENSSL_API_COMPAT < 0x00908000L -/* deprecated name for the flag*/ -/* - * new with 0.9.7h; the built-in RSA - * implementation now uses constant time - * modular exponentiation for secret exponents - * by default. This flag causes the - * faster variable sliding window method to - * be used for all exponents. - */ -# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME -# endif - -# define EVP_PKEY_CTX_set_rsa_padding(ctx, pad) \ - RSA_pkey_ctx_ctrl(ctx, -1, EVP_PKEY_CTRL_RSA_PADDING, pad, NULL) - -# define EVP_PKEY_CTX_get_rsa_padding(ctx, 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) \ - 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) \ - 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) \ - 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) \ - RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) - -# 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_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) \ - 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)) - -# 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)) - -# 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) - -# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5) - -# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) - -# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10) - -# 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 -# define RSA_PKCS1_OAEP_PADDING 4 -# define RSA_X931_PADDING 5 -/* EVP_PKEY_ only */ -# define RSA_PKCS1_PSS_PADDING 6 - -# define RSA_PKCS1_PADDING_SIZE 11 - -# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) -# define RSA_get_app_data(s) RSA_get_ex_data(s,0) - -RSA *RSA_new(void); -RSA *RSA_new_method(ENGINE *engine); -int RSA_bits(const RSA *rsa); -int RSA_size(const RSA *rsa); -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); -const RSA_PSS_PARAMS *RSA_get0_pss_params(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 */ -DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void - (*callback) (int, int, void *), - void *cb_arg)) - -/* 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, - const BIGNUM *Xp, const BIGNUM *Xq1, const BIGNUM *Xq2, - const BIGNUM *Xq, const BIGNUM *e, BN_GENCB *cb); -int RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e, - BN_GENCB *cb); - -int RSA_check_key(const RSA *); -int RSA_check_key_ex(const RSA *, BN_GENCB *cb); - /* next 4 return -1 on error */ -int RSA_public_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_private_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_public_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_private_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -void RSA_free(RSA *r); -/* "up" the RSA object's reference count */ -int RSA_up_ref(RSA *r); - -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); - -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) - -struct rsa_pss_params_st { - X509_ALGOR *hashAlgorithm; - X509_ALGOR *maskGenAlgorithm; - ASN1_INTEGER *saltLength; - ASN1_INTEGER *trailerField; - /* Decoded hash algorithm from maskGenAlgorithm */ - X509_ALGOR *maskHash; -}; - -DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) - -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) - -# ifndef OPENSSL_NO_STDIO -int RSA_print_fp(FILE *fp, const RSA *r, int offset); -# endif - -int RSA_print(BIO *bp, const RSA *r, int offset); - -/* - * The following 2 functions sign and verify a X509_SIG ASN1 object inside - * PKCS#1 padded RSA encryption - */ -int RSA_sign(int type, const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, RSA *rsa); -int RSA_verify(int type, const unsigned char *m, unsigned int m_length, - const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); - -/* - * The following 2 function sign and verify a ASN1_OCTET_STRING object inside - * PKCS#1 padded RSA encryption - */ -int RSA_sign_ASN1_OCTET_STRING(int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - RSA *rsa); -int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, - unsigned int m_length, unsigned char *sigbuf, - unsigned int siglen, RSA *rsa); - -int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); -void RSA_blinding_off(RSA *rsa); -BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); - -int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, - long seedlen, const EVP_MD *dgst); -int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, - const unsigned char *p, int pl); -int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len, - const unsigned char *p, int pl); -int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - const unsigned char *param, int plen, - const EVP_MD *md, const EVP_MD *mgf1md); -int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - int num, const unsigned char *param, - int plen, const EVP_MD *md, - const EVP_MD *mgf1md); -int RSA_padding_add_SSLv23(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_SSLv23(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, - int fl); -int RSA_padding_check_none(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, - int fl); -int RSA_padding_check_X931(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_X931_hash_id(int nid); - -int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const unsigned char *EM, - int sLen); -int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, const EVP_MD *Hash, - int sLen); - -int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - const unsigned char *EM, int sLen); - -int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - int sLen); - -#define RSA_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_RSA, l, p, newf, dupf, freef) -int RSA_set_ex_data(RSA *r, int idx, void *arg); -void *RSA_get_ex_data(const RSA *r, int idx); - -RSA *RSAPublicKey_dup(RSA *rsa); -RSA *RSAPrivateKey_dup(RSA *rsa); - -/* - * If this flag is set the RSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define RSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define RSA_FLAG_NON_FIPS_ALLOW 0x0400 -/* - * Application has decided PRNG is good enough to generate a key: don't - * check. - */ -# define RSA_FLAG_CHECKED 0x0800 - -RSA_METHOD *RSA_meth_new(const char *name, int flags); -void RSA_meth_free(RSA_METHOD *meth); -RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); -const char *RSA_meth_get0_name(const RSA_METHOD *meth); -int RSA_meth_set1_name(RSA_METHOD *meth, const char *name); -int RSA_meth_get_flags(const RSA_METHOD *meth); -int RSA_meth_set_flags(RSA_METHOD *meth, int flags); -void *RSA_meth_get0_app_data(const RSA_METHOD *meth); -int RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data); -int (*RSA_meth_get_pub_enc(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_pub_enc(RSA_METHOD *rsa, - int (*pub_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -int (*RSA_meth_get_pub_dec(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_pub_dec(RSA_METHOD *rsa, - int (*pub_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_priv_enc(RSA_METHOD *rsa, - int (*priv_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -int (*RSA_meth_get_priv_dec(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_priv_dec(RSA_METHOD *rsa, - int (*priv_dec) (int flen, const unsigned char *from, - 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); -int RSA_meth_set_mod_exp(RSA_METHOD *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, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int RSA_meth_set_bn_mod_exp(RSA_METHOD *rsa, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx)); -int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa); -int RSA_meth_set_init(RSA_METHOD *rsa, int (*init) (RSA *rsa)); -int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa); -int RSA_meth_set_finish(RSA_METHOD *rsa, int (*finish) (RSA *rsa)); -int (*RSA_meth_get_sign(const RSA_METHOD *meth)) - (int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - const RSA *rsa); -int RSA_meth_set_sign(RSA_METHOD *rsa, - int (*sign) (int type, const unsigned char *m, - unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - const RSA *rsa)); -int (*RSA_meth_get_verify(const RSA_METHOD *meth)) - (int dtype, const unsigned char *m, - unsigned int m_length, const unsigned char *sigbuf, - unsigned int siglen, const RSA *rsa); -int RSA_meth_set_verify(RSA_METHOD *rsa, - int (*verify) (int dtype, const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, const RSA *rsa)); -int (*RSA_meth_get_keygen(const RSA_METHOD *meth)) - (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); -int RSA_meth_set_keygen(RSA_METHOD *rsa, - int (*keygen) (RSA *rsa, int bits, BIGNUM *e, - BN_GENCB *cb)); -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 -} -# endif -# endif -#endif diff --git a/openSSL/lin32/include/openssl/rsaerr.h b/openSSL/lin32/include/openssl/rsaerr.h deleted file mode 100644 index 59b15e1..0000000 --- a/openSSL/lin32/include/openssl/rsaerr.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * 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_RSAERR_H -# define HEADER_RSAERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_MISSING_PRIVATE_KEY 179 -# 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/openSSL/lin32/include/openssl/safestack.h b/openSSL/lin32/include/openssl/safestack.h deleted file mode 100644 index 38b5578..0000000 --- a/openSSL/lin32/include/openssl/safestack.h +++ /dev/null @@ -1,207 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SAFESTACK_H -# define HEADER_SAFESTACK_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define STACK_OF(type) struct stack_st_##type - -# define SKM_DEFINE_STACK_OF(t1, t2, t3) \ - STACK_OF(t1); \ - 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_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ - } \ - 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_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_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ - } \ - 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_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ - } \ - 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_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_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_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_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ - } \ - 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_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_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_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_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_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_sort((OPENSSL_STACK *)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_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_unused ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ - sk_##t1##_copyfunc copyfunc, \ - sk_##t1##_freefunc freefunc) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, \ - (OPENSSL_sk_copyfunc)copyfunc, \ - (OPENSSL_sk_freefunc)freefunc); \ - } \ - 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); \ - } - -# define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2) -# define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t) -# define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2) \ - SKM_DEFINE_STACK_OF(t1, const t2, t2) -# define DEFINE_STACK_OF_CONST(t) SKM_DEFINE_STACK_OF(t, const t, t) - -/*- - * Strings are special: normally an lhash entry will point to a single - * (somewhat) mutable object. In the case of strings: - * - * a) Instead of a single char, there is an array of chars, NUL-terminated. - * b) The string may have be immutable. - * - * So, they need their own declarations. Especially important for - * type-checking tools, such as Deputy. - * - * In practice, however, it appears to be hard to have a const - * string. For now, I'm settling for dealing with the fact it is a - * string at all. - */ -typedef char *OPENSSL_STRING; -typedef const char *OPENSSL_CSTRING; - -/*- - * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but - * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned - * above, instead of a single char each entry is a NUL-terminated array of - * chars. So, we have to implement STRING specially for STACK_OF. This is - * dealt with in the autogenerated macros below. - */ -DEFINE_SPECIAL_STACK_OF(OPENSSL_STRING, char) -DEFINE_SPECIAL_STACK_OF_CONST(OPENSSL_CSTRING, char) - -/* - * Similarly, we sometimes use a block of characters, NOT nul-terminated. - * These should also be distinguished from "normal" stacks. - */ -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 -#endif diff --git a/openSSL/lin32/include/openssl/seed.h b/openSSL/lin32/include/openssl/seed.h deleted file mode 100644 index de10b08..0000000 --- a/openSSL/lin32/include/openssl/seed.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2007-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 - */ - -/* - * Copyright (c) 2007 KISA(Korea Information Security Agency). All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Neither the name of author nor the names of its contributors may - * be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef HEADER_SEED_H -# define HEADER_SEED_H - -# include - -# ifndef OPENSSL_NO_SEED -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* look whether we need 'long' to get 32 bits */ -# ifdef AES_LONG -# ifndef SEED_LONG -# define SEED_LONG 1 -# endif -# endif - -# include - -# define SEED_BLOCK_SIZE 16 -# define SEED_KEY_LENGTH 16 - -typedef struct seed_key_st { -# ifdef SEED_LONG - unsigned long data[32]; -# else - unsigned int data[32]; -# endif -} SEED_KEY_SCHEDULE; - -void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], - SEED_KEY_SCHEDULE *ks); - -void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); -void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); - -void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out, - const SEED_KEY_SCHEDULE *ks, int enc); -void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, - const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int enc); -void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int *num, - int enc); -void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/sha.h b/openSSL/lin32/include/openssl/sha.h deleted file mode 100644 index 6a1eb0d..0000000 --- a/openSSL/lin32/include/openssl/sha.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 1995-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_SHA_H -# define HEADER_SHA_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! SHA_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define SHA_LONG unsigned int - -# define SHA_LBLOCK 16 -# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ -# define SHA_LAST_BLOCK (SHA_CBLOCK-8) -# define SHA_DIGEST_LENGTH 20 - -typedef struct SHAstate_st { - SHA_LONG h0, h1, h2, h3, h4; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num; -} SHA_CTX; - -int SHA1_Init(SHA_CTX *c); -int SHA1_Update(SHA_CTX *c, const void *data, size_t len); -int SHA1_Final(unsigned char *md, SHA_CTX *c); -unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); -void SHA1_Transform(SHA_CTX *c, const unsigned char *data); - -# define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ - -typedef struct SHA256state_st { - SHA_LONG h[8]; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num, md_len; -} SHA256_CTX; - -int SHA224_Init(SHA256_CTX *c); -int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); -int SHA224_Final(unsigned char *md, SHA256_CTX *c); -unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); -int SHA256_Init(SHA256_CTX *c); -int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); -int SHA256_Final(unsigned char *md, SHA256_CTX *c); -unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); -void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); - -# define SHA224_DIGEST_LENGTH 28 -# define SHA256_DIGEST_LENGTH 32 -# define SHA384_DIGEST_LENGTH 48 -# define SHA512_DIGEST_LENGTH 64 - -/* - * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 - * being exactly 64-bit wide. See Implementation Notes in sha512.c - * for further details. - */ -/* - * SHA-512 treats input data as a - * contiguous array of 64 bit - * wide big-endian values. - */ -# define SHA512_CBLOCK (SHA_LBLOCK*8) -# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) -# define SHA_LONG64 unsigned __int64 -# define U64(C) C##UI64 -# elif defined(__arch64__) -# define SHA_LONG64 unsigned long -# define U64(C) C##UL -# else -# define SHA_LONG64 unsigned long long -# define U64(C) C##ULL -# endif - -typedef struct SHA512state_st { - SHA_LONG64 h[8]; - SHA_LONG64 Nl, Nh; - union { - SHA_LONG64 d[SHA_LBLOCK]; - unsigned char p[SHA512_CBLOCK]; - } u; - unsigned int num, md_len; -} SHA512_CTX; - -int SHA384_Init(SHA512_CTX *c); -int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); -int SHA384_Final(unsigned char *md, SHA512_CTX *c); -unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); -int SHA512_Init(SHA512_CTX *c); -int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); -int SHA512_Final(unsigned char *md, SHA512_CTX *c); -unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); -void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin32/include/openssl/srp.h b/openSSL/lin32/include/openssl/srp.h deleted file mode 100644 index aaf1355..0000000 --- a/openSSL/lin32/include/openssl/srp.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * 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 -# define HEADER_SRP_H - -#include - -#ifndef OPENSSL_NO_SRP -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct SRP_gN_cache_st { - char *b64_bn; - BIGNUM *bn; -} SRP_gN_cache; - - -DEFINE_STACK_OF(SRP_gN_cache) - -typedef struct SRP_user_pwd_st { - /* Owned by us. */ - char *id; - BIGNUM *s; - BIGNUM *v; - /* Not owned by us. */ - const BIGNUM *g; - const BIGNUM *N; - /* Owned by us. */ - char *info; -} SRP_user_pwd; - -void SRP_user_pwd_free(SRP_user_pwd *user_pwd); - -DEFINE_STACK_OF(SRP_user_pwd) - -typedef struct SRP_VBASE_st { - STACK_OF(SRP_user_pwd) *users_pwd; - STACK_OF(SRP_gN_cache) *gN_cache; -/* to simulate a user */ - char *seed_key; - const BIGNUM *default_g; - const BIGNUM *default_N; -} SRP_VBASE; - -/* - * Internal structure storing N and g pair - */ -typedef struct SRP_gN_st { - char *id; - const BIGNUM *g; - const BIGNUM *N; -} SRP_gN; - -DEFINE_STACK_OF(SRP_gN) - -SRP_VBASE *SRP_VBASE_new(char *seed_key); -void SRP_VBASE_free(SRP_VBASE *vb); -int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); - -/* This method ignores the configured seed and fails for an unknown user. */ -DEPRECATEDIN_1_1_0(SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username)) -/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ -SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); - -char *SRP_create_verifier(const char *user, const char *pass, char **salt, - char **verifier, const char *N, const char *g); -int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, - BIGNUM **verifier, const BIGNUM *N, - const BIGNUM *g); - -# define SRP_NO_ERROR 0 -# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 -# define SRP_ERR_VBASE_BN_LIB 2 -# define SRP_ERR_OPEN_FILE 3 -# define SRP_ERR_MEMORY 4 - -# define DB_srptype 0 -# define DB_srpverifier 1 -# define DB_srpsalt 2 -# define DB_srpid 3 -# define DB_srpgN 4 -# define DB_srpinfo 5 -# undef DB_NUMBER -# define DB_NUMBER 6 - -# define DB_SRP_INDEX 'I' -# define DB_SRP_VALID 'V' -# define DB_SRP_REVOKED 'R' -# define DB_SRP_MODIF 'v' - -/* see srp.c */ -char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N); -SRP_gN *SRP_get_default_gN(const char *id); - -/* server side .... */ -BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM *u, - const BIGNUM *b, const BIGNUM *N); -BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, - const BIGNUM *v); -int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N); -BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N); - -/* client side .... */ -BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass); -BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g); -BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, - const BIGNUM *x, const BIGNUM *a, const BIGNUM *u); -int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N); - -# define SRP_MINIMAL_N 1024 - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/srtp.h b/openSSL/lin32/include/openssl/srtp.h deleted file mode 100644 index 0b57c23..0000000 --- a/openSSL/lin32/include/openssl/srtp.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2011-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 - */ - -/* - * DTLS code by Eric Rescorla - * - * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. - */ - -#ifndef HEADER_D1_SRTP_H -# define HEADER_D1_SRTP_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define SRTP_AES128_CM_SHA1_80 0x0001 -# define SRTP_AES128_CM_SHA1_32 0x0002 -# define SRTP_AES128_F8_SHA1_80 0x0003 -# define SRTP_AES128_F8_SHA1_32 0x0004 -# define SRTP_NULL_SHA1_80 0x0005 -# define SRTP_NULL_SHA1_32 0x0006 - -/* AEAD SRTP protection profiles from RFC 7714 */ -# define SRTP_AEAD_AES_128_GCM 0x0007 -# define SRTP_AEAD_AES_256_GCM 0x0008 - -# ifndef OPENSSL_NO_SRTP - -__owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); -__owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); - -__owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); -__owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); - -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin32/include/openssl/ssl.h b/openSSL/lin32/include/openssl/ssl.h deleted file mode 100644 index 9af0c89..0000000 --- a/openSSL/lin32/include/openssl/ssl.h +++ /dev/null @@ -1,2448 +0,0 @@ -/* - * Copyright 1995-2022 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SSL_H -# define HEADER_SSL_H - -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# endif -# include -# include -# include -# include - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* OpenSSL version number for ASN.1 encoding of the session information */ -/*- - * Version 0 - initial version - * Version 1 - added the optional peer certificate - */ -# define SSL_SESSION_ASN1_VERSION 0x0001 - -# define SSL_MAX_SSL_SESSION_ID_LENGTH 32 -# define SSL_MAX_SID_CTX_LENGTH 32 - -# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) -# define SSL_MAX_KEY_ARG_LENGTH 8 -# define SSL_MAX_MASTER_KEY_LENGTH 48 - -/* The maximum number of encrypt/decrypt pipelines we can support */ -# define SSL_MAX_PIPELINES 32 - -/* text strings for the ciphers */ - -/* These are used to specify which ciphers to use and not to use */ - -# define SSL_TXT_LOW "LOW" -# define SSL_TXT_MEDIUM "MEDIUM" -# define SSL_TXT_HIGH "HIGH" -# define SSL_TXT_FIPS "FIPS" - -# define SSL_TXT_aNULL "aNULL" -# define SSL_TXT_eNULL "eNULL" -# define SSL_TXT_NULL "NULL" - -# define SSL_TXT_kRSA "kRSA" -# define SSL_TXT_kDHr "kDHr"/* this cipher class has been removed */ -# define SSL_TXT_kDHd "kDHd"/* this cipher class has been removed */ -# define SSL_TXT_kDH "kDH"/* this cipher class has been removed */ -# define SSL_TXT_kEDH "kEDH"/* alias for kDHE */ -# define SSL_TXT_kDHE "kDHE" -# define SSL_TXT_kECDHr "kECDHr"/* this cipher class has been removed */ -# define SSL_TXT_kECDHe "kECDHe"/* this cipher class has been removed */ -# define SSL_TXT_kECDH "kECDH"/* this cipher class has been removed */ -# define SSL_TXT_kEECDH "kEECDH"/* alias for kECDHE */ -# define SSL_TXT_kECDHE "kECDHE" -# define SSL_TXT_kPSK "kPSK" -# define SSL_TXT_kRSAPSK "kRSAPSK" -# define SSL_TXT_kECDHEPSK "kECDHEPSK" -# define SSL_TXT_kDHEPSK "kDHEPSK" -# define SSL_TXT_kGOST "kGOST" -# define SSL_TXT_kSRP "kSRP" - -# define SSL_TXT_aRSA "aRSA" -# define SSL_TXT_aDSS "aDSS" -# define SSL_TXT_aDH "aDH"/* this cipher class has been removed */ -# define SSL_TXT_aECDH "aECDH"/* this cipher class has been removed */ -# define SSL_TXT_aECDSA "aECDSA" -# define SSL_TXT_aPSK "aPSK" -# define SSL_TXT_aGOST94 "aGOST94" -# define SSL_TXT_aGOST01 "aGOST01" -# define SSL_TXT_aGOST12 "aGOST12" -# define SSL_TXT_aGOST "aGOST" -# define SSL_TXT_aSRP "aSRP" - -# define SSL_TXT_DSS "DSS" -# define SSL_TXT_DH "DH" -# define SSL_TXT_DHE "DHE"/* same as "kDHE:-ADH" */ -# define SSL_TXT_EDH "EDH"/* alias for DHE */ -# define SSL_TXT_ADH "ADH" -# define SSL_TXT_RSA "RSA" -# define SSL_TXT_ECDH "ECDH" -# define SSL_TXT_EECDH "EECDH"/* alias for ECDHE" */ -# define SSL_TXT_ECDHE "ECDHE"/* same as "kECDHE:-AECDH" */ -# define SSL_TXT_AECDH "AECDH" -# define SSL_TXT_ECDSA "ECDSA" -# define SSL_TXT_PSK "PSK" -# define SSL_TXT_SRP "SRP" - -# define SSL_TXT_DES "DES" -# define SSL_TXT_3DES "3DES" -# define SSL_TXT_RC4 "RC4" -# define SSL_TXT_RC2 "RC2" -# define SSL_TXT_IDEA "IDEA" -# define SSL_TXT_SEED "SEED" -# define SSL_TXT_AES128 "AES128" -# define SSL_TXT_AES256 "AES256" -# define SSL_TXT_AES "AES" -# define SSL_TXT_AES_GCM "AESGCM" -# define SSL_TXT_AES_CCM "AESCCM" -# define SSL_TXT_AES_CCM_8 "AESCCM8" -# define SSL_TXT_CAMELLIA128 "CAMELLIA128" -# define SSL_TXT_CAMELLIA256 "CAMELLIA256" -# 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" -# define SSL_TXT_SHA "SHA"/* same as "SHA1" */ -# define SSL_TXT_GOST94 "GOST94" -# define SSL_TXT_GOST89MAC "GOST89MAC" -# define SSL_TXT_GOST12 "GOST12" -# define SSL_TXT_GOST89MAC12 "GOST89MAC12" -# define SSL_TXT_SHA256 "SHA256" -# define SSL_TXT_SHA384 "SHA384" - -# define SSL_TXT_SSLV3 "SSLv3" -# define SSL_TXT_TLSV1 "TLSv1" -# define SSL_TXT_TLSV1_1 "TLSv1.1" -# define SSL_TXT_TLSV1_2 "TLSv1.2" - -# define SSL_TXT_ALL "ALL" - -/*- - * COMPLEMENTOF* definitions. These identifiers are used to (de-select) - * ciphers normally not being used. - * Example: "RC4" will activate all ciphers using RC4 including ciphers - * without authentication, which would normally disabled by DEFAULT (due - * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" - * will make sure that it is also disabled in the specific selection. - * COMPLEMENTOF* identifiers are portable between version, as adjustments - * to the default cipher setup will also be included here. - * - * COMPLEMENTOFDEFAULT does not experience the same special treatment that - * DEFAULT gets, as only selection is being done and no sorting as needed - * for DEFAULT. - */ -# define SSL_TXT_CMPALL "COMPLEMENTOFALL" -# define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" - -/* - * 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 - * throwing out anonymous and unencrypted ciphersuites! (The latter are not - * actually enabled by ALL, but "ALL:RSA" would enable some of them.) - */ - -/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ -# define SSL_SENT_SHUTDOWN 1 -# define SSL_RECEIVED_SHUTDOWN 2 - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 -# define SSL_FILETYPE_PEM X509_FILETYPE_PEM - -/* - * This is needed to stop compilers complaining about the 'struct ssl_st *' - * function parameters used to prototype callbacks in SSL_CTX. - */ -typedef struct ssl_st *ssl_crock_st; -typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; -typedef struct ssl_method_st SSL_METHOD; -typedef struct ssl_cipher_st SSL_CIPHER; -typedef struct ssl_session_st SSL_SESSION; -typedef struct tls_sigalgs_st TLS_SIGALGS; -typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; - -STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); - -/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ -typedef struct srtp_protection_profile_st { - const char *name; - unsigned long id; -} SRTP_PROTECTION_PROFILE; - -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); - -/* 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 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 (*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 - * OpenSSL 0.9.6d. Usually (depending on the application protocol) the - * workaround is not needed. Unfortunately some broken SSL/TLS - * implementations cannot handle it at all, which is why we include it in - * SSL_OP_ALL. Added in 0.9.6e - */ -# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800U - -/* DTLS options */ -# define SSL_OP_NO_QUERY_MTU 0x00001000U -/* Turn on Cookie Exchange (on relevant for servers) */ -# define SSL_OP_COOKIE_EXCHANGE 0x00002000U -/* Don't use RFC4507 ticket extension */ -# define SSL_OP_NO_TICKET 0x00004000U -# ifndef OPENSSL_NO_DTLS1_METHOD -/* Use Cisco's "speshul" version of DTLS_BAD_VER - * (only with deprecated DTLSv1_client_method()) */ -# define SSL_OP_CISCO_ANYCONNECT 0x00008000U -# endif - -/* As server, disallow session resumption on renegotiation */ -# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000U -/* Don't use compression even if supported */ -# define SSL_OP_NO_COMPRESSION 0x00020000U -/* Permit unsafe legacy renegotiation */ -# 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 - */ -# define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000U -/* - * If set, a server will allow a client to issue a SSLv3.0 version number as - * latest version supported in the premaster secret, even when TLSv1.0 - * (version 3.1) was announced in the client hello. Normally this is - * forbidden to prevent version rollback attacks. - */ -# 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_3) -# define SSL_OP_NO_DTLS_MASK (SSL_OP_NO_DTLSv1|SSL_OP_NO_DTLSv1_2) - -/* Disallow all renegotiation */ -# define SSL_OP_NO_RENEGOTIATION 0x40000000U - -/* - * Make server add server-hello extension from early version of cryptopro - * draft, when GOST ciphersuite is negotiated. Required for interoperability - * with CryptoPro CSP 3.x - */ -# define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000U - -/* - * SSL_OP_ALL: various bug workarounds that should be rather harmless. - * This used to be 0x000FFFFFL before 0.9.7. - * This used to be 0x80000BFFU before 1.1.1. - */ -# define SSL_OP_ALL (SSL_OP_CRYPTOPRO_TLSEXT_BUG|\ - SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS|\ - SSL_OP_LEGACY_SERVER_CONNECT|\ - SSL_OP_TLSEXT_PADDING|\ - SSL_OP_SAFARI_ECDHE_ECDSA_BUG) - -/* OBSOLETE OPTIONS: retained for compatibility */ - -/* Removed from OpenSSL 1.1.0. Was 0x00000001L */ -/* Related to removed SSLv2. */ -# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000002L */ -/* Related to removed SSLv2. */ -# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x0 -/* Removed from OpenSSL 0.9.8q and 1.0.0c. Was 0x00000008L */ -/* Dead forever, see CVE-2010-4180 */ -# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x0 -/* Removed from OpenSSL 1.0.1h and 1.0.2. Was 0x00000010L */ -/* Refers to ancient SSLREF and SSLv2. */ -# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000020 */ -# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x0 -/* Removed from OpenSSL 0.9.7h and 0.9.8b. Was 0x00000040L */ -# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000080 */ -/* Ancient SSLeay version. */ -# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000100L */ -# define SSL_OP_TLS_D5_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000200L */ -# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00080000L */ -# define SSL_OP_SINGLE_ECDH_USE 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00100000L */ -# define SSL_OP_SINGLE_DH_USE 0x0 -/* Removed from OpenSSL 1.0.1k and 1.0.2. Was 0x00200000L */ -# define SSL_OP_EPHEMERAL_RSA 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x01000000L */ -# define SSL_OP_NO_SSLv2 0x0 -/* Removed from OpenSSL 1.0.1. Was 0x08000000L */ -# 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 */ -# 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 - -/* - * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success - * when just a single record has been written): - */ -# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001U -/* - * Make it possible to retry SSL_write() with changed buffer location (buffer - * contents must stay the same!); this is not the default to avoid the - * misconception that non-blocking SSL_write() behaves like non-blocking - * write(): - */ -# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U -/* - * Never bother the application with retries if the transport is blocking: - */ -# define SSL_MODE_AUTO_RETRY 0x00000004U -/* Don't attempt to automatically build certificate chain */ -# 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 freed. - */ -# define SSL_MODE_RELEASE_BUFFERS 0x00000010U -/* - * Send the current time in the Random fields of the ClientHello and - * ServerHello records for compatibility with hypothetical implementations - * that require it. - */ -# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U -# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U -/* - * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications - * that reconnect with a downgraded protocol version; see - * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your - * application attempts a normal handshake. Only use this in explicit - * fallback retries, following the guidance in - * draft-ietf-tls-downgrade-scsv-00. - */ -# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U -/* - * Support Asynchronous operation - */ -# 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 - * enforcing certificate chain algorithms. When this is set we enforce them. - */ -# define SSL_CERT_FLAG_TLS_STRICT 0x00000001U - -/* Suite B modes, takes same values as certificate verify flags */ -# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 - -/* Perform all sorts of protocol violations for testing purposes */ -# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 - -/* Flags for building certificate chains */ -/* Treat any existing certificates as untrusted CAs */ -# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 -/* Don't include root CA in chain */ -# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 -/* Just check certificates already there */ -# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 -/* Ignore verification errors */ -# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 -/* Clear verification errors from queue */ -# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 - -/* Flags returned by SSL_check_chain */ -/* Certificate can be used with this session */ -# define CERT_PKEY_VALID 0x1 -/* Certificate can also be used for signing */ -# define CERT_PKEY_SIGN 0x2 -/* EE certificate signing algorithm OK */ -# define CERT_PKEY_EE_SIGNATURE 0x10 -/* CA signature algorithms OK */ -# define CERT_PKEY_CA_SIGNATURE 0x20 -/* EE certificate parameters OK */ -# define CERT_PKEY_EE_PARAM 0x40 -/* CA certificate parameters OK */ -# define CERT_PKEY_CA_PARAM 0x80 -/* Signing explicitly allowed as opposed to SHA1 fallback */ -# define CERT_PKEY_EXPLICIT_SIGN 0x100 -/* Client CA issuer names match (always set for server cert) */ -# define CERT_PKEY_ISSUER_NAME 0x200 -/* Cert type matches client types (always set for server cert) */ -# define CERT_PKEY_CERT_TYPE 0x400 -/* Cert chain suitable to Suite B */ -# define CERT_PKEY_SUITEB 0x800 - -# define SSL_CONF_FLAG_CMDLINE 0x1 -# define SSL_CONF_FLAG_FILE 0x2 -# define SSL_CONF_FLAG_CLIENT 0x4 -# define SSL_CONF_FLAG_SERVER 0x8 -# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 -# define SSL_CONF_FLAG_CERTIFICATE 0x20 -# define SSL_CONF_FLAG_REQUIRE_PRIVATE 0x40 -/* Configuration value types */ -# define SSL_CONF_TYPE_UNKNOWN 0x0 -# define SSL_CONF_TYPE_STRING 0x1 -# define SSL_CONF_TYPE_FILE 0x2 -# 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_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); -unsigned long SSL_set_options(SSL *s, unsigned long op); - -# define SSL_CTX_set_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) -# define SSL_CTX_clear_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_CTX_get_mode(ctx) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) -# define SSL_clear_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_set_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) -# define SSL_get_mode(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) -# define SSL_set_mtu(ssl, mtu) \ - SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) -# define DTLS_set_link_mtu(ssl, mtu) \ - SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL) -# define DTLS_get_link_min_mtu(ssl) \ - SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL) - -# define SSL_get_secure_renegotiation_support(ssl) \ - SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) - -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_heartbeat(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT,0,NULL) -# endif - -# define SSL_CTX_set_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_set_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_CTX_clear_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) -# define SSL_clear_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) - -void SSL_CTX_set_msg_callback(SSL_CTX *ctx, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -void SSL_set_msg_callback(SSL *ssl, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) -# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) - -# define SSL_get_extms_support(s) \ - SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL) - -# ifndef OPENSSL_NO_SRP - -/* see tls_srp.c */ -__owur int SSL_SRP_CTX_init(SSL *s); -__owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); -int SSL_SRP_CTX_free(SSL *ctx); -int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); -__owur int SSL_srp_server_param_with_username(SSL *s, int *ad); -__owur int SRP_Calc_A_param(SSL *s); - -# endif - -/* 100k max cert list */ -# define SSL_MAX_CERT_LIST_DEFAULT 1024*100 - -# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) - -/* - * This callback type is used inside SSL_CTX, SSL, and in the functions that - * set them. It is used to override the generation of SSL/TLS session IDs in - * a server. Return value should be zero on an error, non-zero to proceed. - * Also, callbacks should themselves check if the id they generate is unique - * otherwise the SSL handshake will fail with an error - callbacks can do - * this using the 'ssl' value they're passed by; - * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in - * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32 - * 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) (SSL *ssl, unsigned char *id, - unsigned int *id_len); - -# define SSL_SESS_CACHE_OFF 0x0000 -# define SSL_SESS_CACHE_CLIENT 0x0001 -# define SSL_SESS_CACHE_SERVER 0x0002 -# define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) -# define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 -/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ -# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 -# define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 -# define SSL_SESS_CACHE_NO_INTERNAL \ - (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) - -LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); -# define SSL_CTX_sess_number(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) -# define SSL_CTX_sess_connect(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) -# define SSL_CTX_sess_connect_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) -# define SSL_CTX_sess_connect_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) -# define SSL_CTX_sess_accept_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) -# define SSL_CTX_sess_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) -# define SSL_CTX_sess_cb_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) -# define SSL_CTX_sess_misses(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) -# define SSL_CTX_sess_timeouts(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) -# define SSL_CTX_sess_cache_full(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) - -void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, - int (*new_session_cb) (struct ssl_st *ssl, - SSL_SESSION *sess)); -int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - SSL_SESSION *sess); -void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, - void (*remove_session_cb) (struct ssl_ctx_st - *ctx, - 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, - SSL_SESSION *(*get_session_cb) (struct ssl_st - *ssl, - const unsigned char - *data, int len, - int *copy)); -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 (*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, - int (*client_cert_cb) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey)); -int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey); -# ifndef OPENSSL_NO_ENGINE -__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); -# endif -void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, - int (*app_gen_cookie_cb) (SSL *ssl, - unsigned char - *cookie, - unsigned int - *cookie_len)); -void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, - int (*app_verify_cookie_cb) (SSL *ssl, - 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, - 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, - 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); - -# define OPENSSL_NPN_UNSUPPORTED 0 -# define OPENSSL_NPN_NEGOTIATED 1 -# define OPENSSL_NPN_NO_OVERLAP 2 - -__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); -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 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); - -# ifndef OPENSSL_NO_PSK -/* - * the maximum length of the buffer given to callbacks containing the - * resulting identity/psk - */ -# define PSK_MAX_IDENTITY_LEN 128 -# define PSK_MAX_PSK_LEN 256 -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_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, - SSL_custom_ext_parse_cb_ex parse_cb, - void *parse_arg); - -__owur int SSL_extension_supported(unsigned int ext_type); - -# define SSL_NOTHING 1 -# define SSL_WRITING 2 -# define SSL_READING 3 -# 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_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 - -# include -# include -# include /* This is mostly sslv3 with a few tweaks */ -# include /* Datagram TLS */ -# include /* Support for the use_srtp extension */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * These need to be after the above set of includes due to a compiler bug - * in VisualStudio 2015 - */ -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_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_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))) -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 - * type of message received). There are also two "special" states: - * TLS = TLS or DTLS state - * DTLS = DTLS specific state - * CR/SR = Client Read/Server Read - * CW/SW = Client Write/Server Write - * - * The "special" states are: - * TLS_ST_BEFORE = No handshake has been initiated yet - * TLS_ST_OK = A handshake has been successfully completed - */ -typedef enum { - TLS_ST_BEFORE, - TLS_ST_OK, - DTLS_ST_CR_HELLO_VERIFY_REQUEST, - TLS_ST_CR_SRVR_HELLO, - TLS_ST_CR_CERT, - TLS_ST_CR_CERT_STATUS, - TLS_ST_CR_KEY_EXCH, - TLS_ST_CR_CERT_REQ, - TLS_ST_CR_SRVR_DONE, - TLS_ST_CR_SESSION_TICKET, - TLS_ST_CR_CHANGE, - TLS_ST_CR_FINISHED, - TLS_ST_CW_CLNT_HELLO, - TLS_ST_CW_CERT, - TLS_ST_CW_KEY_EXCH, - TLS_ST_CW_CERT_VRFY, - TLS_ST_CW_CHANGE, - TLS_ST_CW_NEXT_PROTO, - TLS_ST_CW_FINISHED, - TLS_ST_SW_HELLO_REQ, - TLS_ST_SR_CLNT_HELLO, - DTLS_ST_SW_HELLO_VERIFY_REQUEST, - TLS_ST_SW_SRVR_HELLO, - TLS_ST_SW_CERT, - TLS_ST_SW_KEY_EXCH, - TLS_ST_SW_CERT_REQ, - TLS_ST_SW_SRVR_DONE, - TLS_ST_SR_CERT, - TLS_ST_SR_KEY_EXCH, - TLS_ST_SR_CERT_VRFY, - TLS_ST_SR_NEXT_PROTO, - TLS_ST_SR_CHANGE, - TLS_ST_SR_FINISHED, - TLS_ST_SW_SESSION_TICKET, - TLS_ST_SW_CERT_STATUS, - TLS_ST_SW_CHANGE, - 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; - -/* - * Most of the following state values are no longer used and are defined to be - * the closest equivalent value in the current state machine code. Not all - * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT - * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP, - * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT. - */ - -# define SSL_ST_CONNECT 0x1000 -# define SSL_ST_ACCEPT 0x2000 - -# define SSL_ST_MASK 0x0FFF - -# define SSL_CB_LOOP 0x01 -# define SSL_CB_EXIT 0x02 -# define SSL_CB_READ 0x04 -# define SSL_CB_WRITE 0x08 -# define SSL_CB_ALERT 0x4000/* used in callback */ -# define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) -# define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) -# define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) -# define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) -# define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) -# define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) -# define SSL_CB_HANDSHAKE_START 0x10 -# define SSL_CB_HANDSHAKE_DONE 0x20 - -/* 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(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 - * should not need these - */ -# define SSL_ST_READ_HEADER 0xF0 -# define SSL_ST_READ_BODY 0xF1 -# define SSL_ST_READ_DONE 0xF2 - -/*- - * Obtain latest Finished message - * -- that we sent (SSL_get_finished) - * -- that we expected from peer (SSL_get_peer_finished). - * Returns length (0 == no Finished so far), copies up to 'count' bytes. - */ -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 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() -# define SSLeay_add_ssl_algorithms() SSL_library_init() -# endif - -/* More backward compatibility */ -# define SSL_get_cipher(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_cipher_bits(s,np) \ - SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) -# define SSL_get_cipher_version(s) \ - SSL_CIPHER_get_version(SSL_get_current_cipher(s)) -# define SSL_get_cipher_name(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_time(a) SSL_SESSION_get_time(a) -# define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) -# define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) -# define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) - -# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) -# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) - -DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) -# define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value - * from SSL_AD_... */ -/* These alert types are for SSLv3 and TLSv1 */ -# define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY -/* fatal */ -# define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE -/* fatal */ -# define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC -# define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED -# define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW -/* fatal */ -# define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE -/* fatal */ -# define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE -/* Not for TLS */ -# define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE -# define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE -# define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE -# define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED -# define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED -# define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN -/* fatal */ -# define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER -/* fatal */ -# define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA -/* fatal */ -# define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED -/* fatal */ -# define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR -# define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR -/* fatal */ -# define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION -/* fatal */ -# define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION -/* fatal */ -# define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY -/* fatal */ -# 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 -# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE -# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE -/* fatal */ -# define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY -/* fatal */ -# define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK -# define SSL_AD_NO_APPLICATION_PROTOCOL TLS1_AD_NO_APPLICATION_PROTOCOL -# define SSL_ERROR_NONE 0 -# define SSL_ERROR_SSL 1 -# define SSL_ERROR_WANT_READ 2 -# define SSL_ERROR_WANT_WRITE 3 -# define SSL_ERROR_WANT_X509_LOOKUP 4 -# define SSL_ERROR_SYSCALL 5/* look at error stack/return - * value/errno */ -# define SSL_ERROR_ZERO_RETURN 6 -# define SSL_ERROR_WANT_CONNECT 7 -# 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 -# define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 -# define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 -# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 -# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 -# define SSL_CTRL_GET_FLAGS 13 -# define SSL_CTRL_EXTRA_CHAIN_CERT 14 -# define SSL_CTRL_SET_MSG_CALLBACK 15 -# define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 -/* only applies to datagram connections */ -# define SSL_CTRL_SET_MTU 17 -/* Stats */ -# define SSL_CTRL_SESS_NUMBER 20 -# define SSL_CTRL_SESS_CONNECT 21 -# define SSL_CTRL_SESS_CONNECT_GOOD 22 -# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 -# define SSL_CTRL_SESS_ACCEPT 24 -# define SSL_CTRL_SESS_ACCEPT_GOOD 25 -# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 -# define SSL_CTRL_SESS_HIT 27 -# define SSL_CTRL_SESS_CB_HIT 28 -# define SSL_CTRL_SESS_MISSES 29 -# define SSL_CTRL_SESS_TIMEOUTS 30 -# define SSL_CTRL_SESS_CACHE_FULL 31 -# define SSL_CTRL_MODE 33 -# define SSL_CTRL_GET_READ_AHEAD 40 -# define SSL_CTRL_SET_READ_AHEAD 41 -# define SSL_CTRL_SET_SESS_CACHE_SIZE 42 -# define SSL_CTRL_GET_SESS_CACHE_SIZE 43 -# define SSL_CTRL_SET_SESS_CACHE_MODE 44 -# define SSL_CTRL_GET_SESS_CACHE_MODE 45 -# define SSL_CTRL_GET_MAX_CERT_LIST 50 -# define SSL_CTRL_SET_MAX_CERT_LIST 51 -# define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 -/* see tls1.h for macros based on these */ -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 -# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 -# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 -# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 -# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 */ -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */ -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */ -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 -# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 -# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 -# define SSL_CTRL_SET_SRP_ARG 78 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 -# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 -# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT 85 -# define SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING 86 -# define SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS 87 -# endif -# define DTLS_CTRL_GET_TIMEOUT 73 -# define DTLS_CTRL_HANDLE_TIMEOUT 74 -# define SSL_CTRL_GET_RI_SUPPORT 76 -# define SSL_CTRL_CLEAR_MODE 78 -# define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB 79 -# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 -# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 -# define SSL_CTRL_CHAIN 88 -# define SSL_CTRL_CHAIN_CERT 89 -# 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 -# define SSL_CTRL_CLEAR_CERT_FLAGS 100 -# define SSL_CTRL_SET_CLIENT_SIGALGS 101 -# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 -# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 -# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 -# define SSL_CTRL_BUILD_CERT_CHAIN 105 -# 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_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 -# define SSL_CTRL_SELECT_CURRENT_CERT 116 -# define SSL_CTRL_SET_CURRENT_CERT 117 -# define SSL_CTRL_SET_DH_AUTO 118 -# define DTLS_CTRL_SET_LINK_MTU 120 -# define DTLS_CTRL_GET_LINK_MIN_MTU 121 -# define SSL_CTRL_GET_EXTMS_SUPPORT 122 -# define SSL_CTRL_SET_MIN_PROTO_VERSION 123 -# define SSL_CTRL_SET_MAX_PROTO_VERSION 124 -# define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT 125 -# define SSL_CTRL_SET_MAX_PIPELINES 126 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE 127 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB 128 -# 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_CTRL_GET_VERIFY_CERT_STORE 137 -# define SSL_CTRL_GET_CHAIN_CERT_STORE 138 -# 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)) -# define DTLSv1_handle_timeout(ssl) \ - SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) -# define SSL_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) -# define SSL_clear_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) -# 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)) -# define SSL_CTX_set_tmp_ecdh(ctx,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)) -# define SSL_set_tmp_ecdh(ssl,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)) -# 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) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) -# 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)) -# define SSL_CTX_set1_chain(ctx,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)) -# define SSL_CTX_add1_chain_cert(ctx,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) \ - SSL_CTX_set0_chain(ctx,NULL) -# 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)) -# 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)) -# define SSL_CTX_set1_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) -# define SSL_CTX_get0_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_CTX_set0_chain_cert_store(ctx,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)) -# define SSL_CTX_get0_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_set0_chain(s,sk) \ - SSL_ctrl(s,SSL_CTRL_CHAIN,0,(char *)(sk)) -# define SSL_set1_chain(s,sk) \ - SSL_ctrl(s,SSL_CTRL_CHAIN,1,(char *)(sk)) -# define SSL_add0_chain_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) -# define SSL_add1_chain_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) -# define SSL_get0_chain_certs(s,px509) \ - SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_clear_chain_certs(s) \ - SSL_set0_chain(s,NULL) -# define SSL_build_cert_chain(s, flags) \ - SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_select_current_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) -# define SSL_set_current_cert(s,op) \ - SSL_ctrl(s,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)) -# define SSL_set1_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) -#define SSL_get0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_set0_chain_cert_store(s,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_get0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_get1_groups(s, glist) \ - SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) -# define SSL_CTX_set1_groups(ctx, glist, glistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(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(s, glist, glistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) -# define SSL_set1_groups_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(str)) -# 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)) -# define SSL_CTX_set1_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s)) -# define SSL_set1_sigalgs(s, slist, slistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) -# define SSL_set1_sigalgs_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(str)) -# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ - 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)) -# define SSL_set1_client_sigalgs(s, slist, slistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) -# define SSL_set1_client_sigalgs_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(str)) -# define SSL_get0_certificate_types(s, 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)) -# define SSL_set1_client_certificate_types(s, clist, clistlen) \ - 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_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) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -# 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) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -# 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) \ - SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -# 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) \ - SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -# define SSL_get_max_proto_version(s) \ - SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) - -/* 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) -/* - * 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 -__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); -__owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); -__owur int BIO_ssl_copy_session_id(BIO *to, BIO *from); -void BIO_ssl_shutdown(BIO *ssl_bio); - -__owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); -__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); -int SSL_CTX_up_ref(SSL_CTX *ctx); -void SSL_CTX_free(SSL_CTX *); -__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); -__owur int SSL_get_rfd(const SSL *s); -__owur int SSL_get_wfd(const SSL *s); -__owur const char *SSL_get_cipher_list(const SSL *s, int n); -__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size); -__owur int SSL_get_read_ahead(const SSL *s); -__owur int SSL_pending(const SSL *s); -__owur int SSL_has_pending(const SSL *s); -# ifndef OPENSSL_NO_SOCK -__owur int SSL_set_fd(SSL *s, int fd); -__owur int SSL_set_rfd(SSL *s, int fd); -__owur int SSL_set_wfd(SSL *s, int fd); -# endif -void SSL_set0_rbio(SSL *s, BIO *rbio); -void SSL_set0_wbio(SSL *s, BIO *wbio); -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); -__owur SSL_verify_cb SSL_get_verify_callback(const SSL *s); -void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback); -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); -# 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); -__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); -__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 -__owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); -#endif - -__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); -#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); -/* 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); -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() \ - OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \ - | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -# endif - -__owur const char *SSL_state_string(const SSL *s); -__owur const char *SSL_rstate_string(const SSL *s); -__owur const char *SSL_state_string_long(const SSL *s); -__owur const char *SSL_rstate_string_long(const SSL *s); -__owur long SSL_SESSION_get_time(const SSL_SESSION *s); -__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); -__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(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); -__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); -# endif -int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); -int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x); -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 *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); - -# ifdef HEADER_X509_H -__owur X509 *SSL_get_peer_certificate(const SSL *s); -# endif - -__owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); - -__owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); -__owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); -__owur SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx); -void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback); -void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); -void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, - int (*cb) (X509_STORE_CTX *, void *), - void *arg); -void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), - 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); -# 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); -__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); -__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); -pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx); -void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx); -void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb); -void SSL_set_default_passwd_cb_userdata(SSL *s, void *u); -pem_password_cb *SSL_get_default_passwd_cb(SSL *s); -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); - -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); - -__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); -__owur const char *SSL_get0_peername(SSL *s); -void SSL_set_hostflags(SSL *s, unsigned int flags); - -__owur int SSL_CTX_dane_enable(SSL_CTX *ctx); -__owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, - uint8_t mtype, uint8_t ord); -__owur int SSL_dane_enable(SSL *s, const char *basedomain); -__owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector, - uint8_t mtype, unsigned const char *data, size_t dlen); -__owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki); -__owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector, - uint8_t *mtype, unsigned const char **data, - size_t *dlen); -/* - * Bridge opacity barrier between libcrypt and libssl, also needed to support - * offline testing in test/danetest.c - */ -SSL_DANE *SSL_get0_dane(SSL *ssl); -/* - * DANE flags - */ -unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags); -unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags); -unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags); -unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags); - -__owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); -__owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); - -__owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); -__owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); - -# ifndef OPENSSL_NO_SRP -int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); -int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); -int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); -int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, - char *(*cb) (SSL *, void *)); -int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, - int (*cb) (SSL *, void *)); -int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, - int (*cb) (SSL *, int *, void *)); -int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); - -int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, - BIGNUM *sa, BIGNUM *v, char *info); -int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, - const char *grp); - -__owur BIGNUM *SSL_get_srp_g(SSL *s); -__owur BIGNUM *SSL_get_srp_N(SSL *s); - -__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 -/* - * Windows application developer has to include windows.h to use these. - */ -__owur int SSL_waiting_for_async(SSL *s); -__owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds); -__owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, - size_t *numaddfds, OSSL_ASYNC_FD *delfd, - 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); - -/* This sets the 'default' SSL version that SSL_new() will create */ -__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)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) -# endif - -#define SSLv23_method TLS_method -#define SSLv23_server_method TLS_server_method -#define SSLv23_client_method TLS_client_method - -/* Negotiate highest available SSL/TLS version */ -__owur const SSL_METHOD *TLS_method(void); -__owur const SSL_METHOD *TLS_server_method(void); -__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)) -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)) -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)) -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)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) -# endif - -# ifndef OPENSSL_NO_DTLS1_2_METHOD -/* 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); -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(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); -__owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); -__owur int SSL_add_client_CA(SSL *ssl, X509 *x); -__owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); - -void SSL_set_connect_state(SSL *s); -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 - -__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); -__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); - -__owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); -__owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); - -void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); -__owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); -void SSL_set_quiet_shutdown(SSL *ssl, int mode); -__owur int SSL_get_quiet_shutdown(const SSL *ssl); -void SSL_set_shutdown(SSL *ssl, int mode); -__owur int SSL_get_shutdown(const SSL *ssl); -__owur int SSL_version(const SSL *ssl); -__owur int SSL_client_version(const SSL *s); -__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); -# 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 */ -__owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); -SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); -void SSL_set_info_callback(SSL *ssl, - void (*cb) (const SSL *ssl, int type, int val)); -void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, - int val); -__owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl); - -void SSL_set_verify_result(SSL *ssl, long v); -__owur long SSL_get_verify_result(const SSL *ssl); -__owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s); - -__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 *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) -__owur int SSL_set_ex_data(SSL *ssl, int idx, void *data); -void *SSL_get_ex_data(const SSL *ssl, int idx); -#define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef) -__owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); -void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); -#define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef) -__owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); -void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); - -__owur int SSL_get_ex_data_X509_STORE_CTX_idx(void); - -# define SSL_CTX_sess_set_cache_size(ctx,t) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) -# define SSL_CTX_sess_get_cache_size(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) -# define SSL_CTX_set_session_cache_mode(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) -# define SSL_CTX_get_session_cache_mode(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) - -# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) -# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) -# define SSL_CTX_get_read_ahead(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) -# define SSL_CTX_set_read_ahead(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) -# define SSL_CTX_get_max_cert_list(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_CTX_set_max_cert_list(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) -# define SSL_get_max_cert_list(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_set_max_cert_list(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) - -# define SSL_CTX_set_max_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_set_max_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_CTX_set_split_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) -# define SSL_set_split_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) -# define SSL_CTX_set_max_pipelines(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) -# define SSL_set_max_pipelines(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) - -void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len); -void SSL_set_default_read_buffer_len(SSL *s, size_t len); - -# ifndef OPENSSL_NO_DH -/* NB: the |keylength| is only applicable when is_export is true */ -void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -void SSL_set_tmp_dh_callback(SSL *ssl, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -# endif - -__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 -__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); - -/* Pre-shared secret session resumption functions */ -__owur int SSL_set_session_secret_cb(SSL *s, - 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, - int - is_forward_secure)); - -void SSL_set_not_resumable_session_callback(SSL *ssl, - int (*cb) (SSL *ssl, - 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(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 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); -void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); - -__owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); -__owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); -__owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); - -void SSL_add_ssl_module(void); -int SSL_config(SSL *s, const char *name); -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); -# endif - -# ifndef OPENSSL_NO_SOCK -int DTLSv1_listen(SSL *s, BIO_ADDR *client); -# endif - -# ifndef OPENSSL_NO_CT - -/* - * A callback for verifying that the received SCTs are sufficient. - * Expected to return 1 if they are sufficient, otherwise 0. - * 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); - -/* - * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate - * the received SCTs. - * If the callback returns a non-positive result, the connection is terminated. - * Call this function before beginning a handshake. - * If a NULL |callback| is provided, SCT validation is disabled. - * |arg| is arbitrary userdata that will be passed to the callback whenever it - * is invoked. Ownership of |arg| remains with the caller. - * - * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response - * will be requested. - */ -int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback, - void *arg); -int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx, - ssl_ct_validation_cb callback, - void *arg); -#define SSL_disable_ct(s) \ - ((void) SSL_set_validation_callback((s), NULL, NULL)) -#define SSL_CTX_disable_ct(ctx) \ - ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL)) - -/* - * The validation type enumerates the available behaviours of the built-in SSL - * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct(). - * The underlying callback is a static function in libssl. - */ -enum { - SSL_CT_VALIDATION_PERMISSIVE = 0, - SSL_CT_VALIDATION_STRICT -}; - -/* - * Enable CT by setting up a callback that implements one of the built-in - * validation variants. The SSL_CT_VALIDATION_PERMISSIVE variant always - * continues the handshake, the application can make appropriate decisions at - * handshake completion. The SSL_CT_VALIDATION_STRICT variant requires at - * least one valid SCT, or else handshake termination will be requested. The - * handshake may continue anyway if SSL_VERIFY_NONE is in effect. - */ -int SSL_enable_ct(SSL *s, int validation_mode); -int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode); - -/* - * Report whether a non-NULL callback is enabled. - */ -int SSL_ct_is_enabled(const SSL *s); -int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx); - -/* Gets the SCTs received from a connection */ -const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s); - -/* - * Loads the CT log list from the default location. - * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, - * the log information loaded from this file will be appended to the - * CTLOG_STORE. - * Returns 1 on success, 0 otherwise. - */ -int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx); - -/* - * Loads the CT log list from the specified file path. - * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, - * the log information loaded from this file will be appended to the - * CTLOG_STORE. - * Returns 1 on success, 0 otherwise. - */ -int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path); - -/* - * Sets the CT log list used by all SSL connections created from this SSL_CTX. - * Ownership of the CTLOG_STORE is transferred to the SSL_CTX. - */ -void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs); - -/* - * Gets the CT log list used by all SSL connections created from this SSL_CTX. - * This will be NULL unless one of the following functions has been called: - * - SSL_CTX_set_default_ctlog_list_file - * - SSL_CTX_set_ctlog_list_file - * - SSL_CTX_set_ctlog_store - */ -const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx); - -# endif /* OPENSSL_NO_CT */ - -/* What the "other" parameter contains in security callback */ -/* Mask for type */ -# define SSL_SECOP_OTHER_TYPE 0xffff0000 -# define SSL_SECOP_OTHER_NONE 0 -# define SSL_SECOP_OTHER_CIPHER (1 << 16) -# define SSL_SECOP_OTHER_CURVE (2 << 16) -# define SSL_SECOP_OTHER_DH (3 << 16) -# define SSL_SECOP_OTHER_PKEY (4 << 16) -# define SSL_SECOP_OTHER_SIGALG (5 << 16) -# define SSL_SECOP_OTHER_CERT (6 << 16) - -/* Indicated operation refers to peer key or certificate */ -# define SSL_SECOP_PEER 0x1000 - -/* Values for "op" parameter in security callback */ - -/* Called to filter ciphers */ -/* Ciphers client supports */ -# define SSL_SECOP_CIPHER_SUPPORTED (1 | SSL_SECOP_OTHER_CIPHER) -/* Cipher shared by client/server */ -# define SSL_SECOP_CIPHER_SHARED (2 | SSL_SECOP_OTHER_CIPHER) -/* Sanity check of cipher server selects */ -# define SSL_SECOP_CIPHER_CHECK (3 | SSL_SECOP_OTHER_CIPHER) -/* Curves supported by client */ -# define SSL_SECOP_CURVE_SUPPORTED (4 | SSL_SECOP_OTHER_CURVE) -/* Curves shared by client/server */ -# define SSL_SECOP_CURVE_SHARED (5 | SSL_SECOP_OTHER_CURVE) -/* Sanity check of curve server selects */ -# define SSL_SECOP_CURVE_CHECK (6 | SSL_SECOP_OTHER_CURVE) -/* Temporary DH key */ -# define SSL_SECOP_TMP_DH (7 | SSL_SECOP_OTHER_PKEY) -/* SSL/TLS version */ -# define SSL_SECOP_VERSION (9 | SSL_SECOP_OTHER_NONE) -/* Session tickets */ -# define SSL_SECOP_TICKET (10 | SSL_SECOP_OTHER_NONE) -/* Supported signature algorithms sent to peer */ -# define SSL_SECOP_SIGALG_SUPPORTED (11 | SSL_SECOP_OTHER_SIGALG) -/* Shared signature algorithm */ -# define SSL_SECOP_SIGALG_SHARED (12 | SSL_SECOP_OTHER_SIGALG) -/* Sanity check signature algorithm allowed */ -# define SSL_SECOP_SIGALG_CHECK (13 | SSL_SECOP_OTHER_SIGALG) -/* Used to get mask of supported public key signature algorithms */ -# define SSL_SECOP_SIGALG_MASK (14 | SSL_SECOP_OTHER_SIGALG) -/* Use to see if compression is allowed */ -# define SSL_SECOP_COMPRESSION (15 | SSL_SECOP_OTHER_NONE) -/* EE key in certificate */ -# define SSL_SECOP_EE_KEY (16 | SSL_SECOP_OTHER_CERT) -/* CA key in certificate */ -# define SSL_SECOP_CA_KEY (17 | SSL_SECOP_OTHER_CERT) -/* CA digest algorithm in certificate */ -# define SSL_SECOP_CA_MD (18 | SSL_SECOP_OTHER_CERT) -/* Peer EE key in certificate */ -# define SSL_SECOP_PEER_EE_KEY (SSL_SECOP_EE_KEY | SSL_SECOP_PEER) -/* Peer CA key in certificate */ -# define SSL_SECOP_PEER_CA_KEY (SSL_SECOP_CA_KEY | SSL_SECOP_PEER) -/* Peer CA digest algorithm in certificate */ -# define SSL_SECOP_PEER_CA_MD (SSL_SECOP_CA_MD | SSL_SECOP_PEER) - -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); -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 (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s, - const SSL_CTX *ctx, - int op, int bits, - int nid, - void *other, - void *ex); -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_SSL_DEFAULT \ - (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS) - -int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); - -# ifndef OPENSSL_NO_UNIT_TEST -__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[]; - -typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); - -void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); - - -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 -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/ssl2.h b/openSSL/lin32/include/openssl/ssl2.h deleted file mode 100644 index 5321bd2..0000000 --- a/openSSL/lin32/include/openssl/ssl2.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 1995-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_SSL2_H -# define HEADER_SSL2_H - -#ifdef __cplusplus -extern "C" { -#endif - -# define SSL2_VERSION 0x0002 - -# define SSL2_MT_CLIENT_HELLO 1 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin32/include/openssl/ssl3.h b/openSSL/lin32/include/openssl/ssl3.h deleted file mode 100644 index 07effba..0000000 --- a/openSSL/lin32/include/openssl/ssl3.h +++ /dev/null @@ -1,342 +0,0 @@ -/* - * Copyright 1995-2020 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SSL3_H -# define HEADER_SSL3_H - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Signalling cipher suite value from RFC 5746 - * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV) - */ -# define SSL3_CK_SCSV 0x030000FF - -/* - * Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00 - * (TLS_FALLBACK_SCSV) - */ -# define SSL3_CK_FALLBACK_SCSV 0x03005600 - -# define SSL3_CK_RSA_NULL_MD5 0x03000001 -# define SSL3_CK_RSA_NULL_SHA 0x03000002 -# define SSL3_CK_RSA_RC4_40_MD5 0x03000003 -# define SSL3_CK_RSA_RC4_128_MD5 0x03000004 -# define SSL3_CK_RSA_RC4_128_SHA 0x03000005 -# define SSL3_CK_RSA_RC2_40_MD5 0x03000006 -# define SSL3_CK_RSA_IDEA_128_SHA 0x03000007 -# define SSL3_CK_RSA_DES_40_CBC_SHA 0x03000008 -# define SSL3_CK_RSA_DES_64_CBC_SHA 0x03000009 -# define SSL3_CK_RSA_DES_192_CBC3_SHA 0x0300000A - -# define SSL3_CK_DH_DSS_DES_40_CBC_SHA 0x0300000B -# define SSL3_CK_DH_DSS_DES_64_CBC_SHA 0x0300000C -# define SSL3_CK_DH_DSS_DES_192_CBC3_SHA 0x0300000D -# define SSL3_CK_DH_RSA_DES_40_CBC_SHA 0x0300000E -# define SSL3_CK_DH_RSA_DES_64_CBC_SHA 0x0300000F -# define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 - -# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA 0x03000011 -# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA SSL3_CK_DHE_DSS_DES_40_CBC_SHA -# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA 0x03000012 -# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA SSL3_CK_DHE_DSS_DES_64_CBC_SHA -# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA 0x03000013 -# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA SSL3_CK_DHE_DSS_DES_192_CBC3_SHA -# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA 0x03000014 -# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA SSL3_CK_DHE_RSA_DES_40_CBC_SHA -# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA 0x03000015 -# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA SSL3_CK_DHE_RSA_DES_64_CBC_SHA -# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA 0x03000016 -# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA SSL3_CK_DHE_RSA_DES_192_CBC3_SHA - -# define SSL3_CK_ADH_RC4_40_MD5 0x03000017 -# define SSL3_CK_ADH_RC4_128_MD5 0x03000018 -# define SSL3_CK_ADH_DES_40_CBC_SHA 0x03000019 -# 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" -# define SSL3_TXT_RSA_RC4_128_MD5 "RC4-MD5" -# define SSL3_TXT_RSA_RC4_128_SHA "RC4-SHA" -# define SSL3_TXT_RSA_RC2_40_MD5 "EXP-RC2-CBC-MD5" -# define SSL3_TXT_RSA_IDEA_128_SHA "IDEA-CBC-SHA" -# define SSL3_TXT_RSA_DES_40_CBC_SHA "EXP-DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_64_CBC_SHA "DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_192_CBC3_SHA "DES-CBC3-SHA" - -# define SSL3_TXT_DH_DSS_DES_40_CBC_SHA "EXP-DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_64_CBC_SHA "DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA "DH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DH_RSA_DES_40_CBC_SHA "EXP-DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA "EXP-DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA "DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA "DHE-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA "EXP-DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA "DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA "DHE-RSA-DES-CBC3-SHA" - -/* - * This next block of six "EDH" labels is for backward compatibility with - * older versions of OpenSSL. New code should use the six "DHE" labels above - * instead: - */ -# define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA "EXP-EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA "EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA "EDH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_ADH_RC4_40_MD5 "EXP-ADH-RC4-MD5" -# define SSL3_TXT_ADH_RC4_128_MD5 "ADH-RC4-MD5" -# define SSL3_TXT_ADH_DES_40_CBC_SHA "EXP-ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_64_CBC_SHA "ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_192_CBC_SHA "ADH-DES-CBC3-SHA" - -# define SSL3_SSL_SESSION_ID_LENGTH 32 -# define SSL3_MAX_SSL_SESSION_ID_LENGTH 32 - -# define SSL3_MASTER_SECRET_SIZE 48 -# define SSL3_RANDOM_SIZE 32 -# define SSL3_SESSION_ID_SIZE 32 -# define SSL3_RT_HEADER_LENGTH 5 - -# define SSL3_HM_HEADER_LENGTH 4 - -# ifndef SSL3_ALIGN_PAYLOAD - /* - * Some will argue that this increases memory footprint, but it's not - * actually true. Point is that malloc has to return at least 64-bit aligned - * pointers, meaning that allocating 5 bytes wastes 3 bytes in either case. - * Suggested pre-gaping simply moves these wasted bytes from the end of - * allocated region to its front, but makes data payload aligned, which - * improves performance:-) - */ -# define SSL3_ALIGN_PAYLOAD 8 -# else -# if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0 -# error "insane SSL3_ALIGN_PAYLOAD" -# undef SSL3_ALIGN_PAYLOAD -# endif -# endif - -/* - * This is the maximum MAC (digest) size used by the SSL library. Currently - * maximum of 20 is used by SHA1, but we reserve for future extension for - * 512-bit hashes. - */ - -# define SSL3_RT_MAX_MD_SIZE 64 - -/* - * Maximum block size used in all ciphersuites. Currently 16 for AES. - */ - -# define SSL_RT_MAX_CIPHER_BLOCK_SIZE 16 - -# define SSL3_RT_MAX_EXTRA (16384) - -/* Maximum plaintext length: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_PLAIN_LENGTH 16384 -/* Maximum compression overhead: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_COMPRESSED_OVERHEAD 1024 - -/* - * The standards give a maximum encryption overhead of 1024 bytes. In - * 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_TLS13_ENCRYPTED_OVERHEAD 256 - -/* - * OpenSSL currently only uses a padding length of at most one block so the - * send overhead is smaller. - */ - -# define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \ - (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE) - -/* If compression isn't used don't include the compression overhead */ - -# ifdef OPENSSL_NO_COMP -# 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) -# endif -# define SSL3_RT_MAX_ENCRYPTED_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) - -# define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" -# define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" - -# define SSL3_VERSION 0x0300 -# define SSL3_VERSION_MAJOR 0x03 -# define SSL3_VERSION_MINOR 0x00 - -# define SSL3_RT_CHANGE_CIPHER_SPEC 20 -# define SSL3_RT_ALERT 21 -# define SSL3_RT_HANDSHAKE 22 -# define SSL3_RT_APPLICATION_DATA 23 -# define DTLS1_RT_HEARTBEAT 24 - -/* Pseudo content types to indicate additional parameters */ -# define TLS1_RT_CRYPTO 0x1000 -# define TLS1_RT_CRYPTO_PREMASTER (TLS1_RT_CRYPTO | 0x1) -# define TLS1_RT_CRYPTO_CLIENT_RANDOM (TLS1_RT_CRYPTO | 0x2) -# define TLS1_RT_CRYPTO_SERVER_RANDOM (TLS1_RT_CRYPTO | 0x3) -# define TLS1_RT_CRYPTO_MASTER (TLS1_RT_CRYPTO | 0x4) - -# define TLS1_RT_CRYPTO_READ 0x0000 -# define TLS1_RT_CRYPTO_WRITE 0x0100 -# define TLS1_RT_CRYPTO_MAC (TLS1_RT_CRYPTO | 0x5) -# define TLS1_RT_CRYPTO_KEY (TLS1_RT_CRYPTO | 0x6) -# define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) -# define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) - -/* 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 - -# define SSL3_AD_CLOSE_NOTIFY 0 -# define SSL3_AD_UNEXPECTED_MESSAGE 10/* fatal */ -# define SSL3_AD_BAD_RECORD_MAC 20/* fatal */ -# define SSL3_AD_DECOMPRESSION_FAILURE 30/* fatal */ -# define SSL3_AD_HANDSHAKE_FAILURE 40/* fatal */ -# define SSL3_AD_NO_CERTIFICATE 41 -# define SSL3_AD_BAD_CERTIFICATE 42 -# define SSL3_AD_UNSUPPORTED_CERTIFICATE 43 -# define SSL3_AD_CERTIFICATE_REVOKED 44 -# define SSL3_AD_CERTIFICATE_EXPIRED 45 -# define SSL3_AD_CERTIFICATE_UNKNOWN 46 -# define SSL3_AD_ILLEGAL_PARAMETER 47/* fatal */ - -# define TLS1_HB_REQUEST 1 -# define TLS1_HB_RESPONSE 2 - - -# define SSL3_CT_RSA_SIGN 1 -# define SSL3_CT_DSS_SIGN 2 -# define SSL3_CT_RSA_FIXED_DH 3 -# define SSL3_CT_DSS_FIXED_DH 4 -# define SSL3_CT_RSA_EPHEMERAL_DH 5 -# define SSL3_CT_DSS_EPHEMERAL_DH 6 -# define SSL3_CT_FORTEZZA_DMS 20 -/* - * SSL3_CT_NUMBER is used to size arrays and it must be large enough to - * contain all of the cert types defined for *either* SSLv3 and TLSv1. - */ -# define SSL3_CT_NUMBER 10 - -# if defined(TLS_CT_NUMBER) -# if TLS_CT_NUMBER != SSL3_CT_NUMBER -# error "SSL/TLS CT_NUMBER values do not match" -# endif -# endif - -/* No longer used as of OpenSSL 1.1.1 */ -# define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 - -/* Removed from OpenSSL 1.1.0 */ -# define TLS1_FLAGS_TLS_PADDING_BUG 0x0 - -# define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 - -/* Set if we encrypt then mac instead of usual mac then encrypt */ -# define TLS1_FLAGS_ENCRYPT_THEN_MAC_READ 0x0100 -# define TLS1_FLAGS_ENCRYPT_THEN_MAC TLS1_FLAGS_ENCRYPT_THEN_MAC_READ - -/* Set if extended master secret extension received from peer */ -# define TLS1_FLAGS_RECEIVED_EXTMS 0x0200 - -# define TLS1_FLAGS_ENCRYPT_THEN_MAC_WRITE 0x0400 - -# define TLS1_FLAGS_STATELESS 0x0800 - -/* Set if extended master secret extension required on renegotiation */ -# define TLS1_FLAGS_REQUIRED_EXTMS 0x1000 - -# 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 -# define SSL3_MT_SERVER_DONE 14 -# 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 -# endif -# 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 - -# define SSL3_MT_CCS 1 - -/* These are used when changing over to a new cipher */ -# 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) -# define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin32/include/openssl/sslerr.h b/openSSL/lin32/include/openssl/sslerr.h deleted file mode 100644 index 701d61c..0000000 --- a/openSSL/lin32/include/openssl/sslerr.h +++ /dev/null @@ -1,776 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_PSK 639 -# 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_PRE_WORK 640 -# 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_PSK_KEX_MODES_EXTENSION 310 -# 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_OCSP_CALLBACK_FAILURE 294 -# 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/openSSL/lin32/include/openssl/stack.h b/openSSL/lin32/include/openssl/stack.h deleted file mode 100644 index cfc0750..0000000 --- a/openSSL/lin32/include/openssl/stack.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_STACK_H -# define HEADER_STACK_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */ - -typedef int (*OPENSSL_sk_compfunc)(const void *, const void *); -typedef void (*OPENSSL_sk_freefunc)(void *); -typedef void *(*OPENSSL_sk_copyfunc)(const void *); - -int OPENSSL_sk_num(const OPENSSL_STACK *); -void *OPENSSL_sk_value(const OPENSSL_STACK *, int); - -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); -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); -int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data); -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_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); -void OPENSSL_sk_sort(OPENSSL_STACK *st); -int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define _STACK OPENSSL_STACK -# define sk_num OPENSSL_sk_num -# define sk_value OPENSSL_sk_value -# define sk_set OPENSSL_sk_set -# define sk_new OPENSSL_sk_new -# define sk_new_null OPENSSL_sk_new_null -# define sk_free OPENSSL_sk_free -# define sk_pop_free OPENSSL_sk_pop_free -# define sk_deep_copy OPENSSL_sk_deep_copy -# define sk_insert OPENSSL_sk_insert -# define sk_delete OPENSSL_sk_delete -# define sk_delete_ptr OPENSSL_sk_delete_ptr -# define sk_find OPENSSL_sk_find -# define sk_find_ex OPENSSL_sk_find_ex -# define sk_push OPENSSL_sk_push -# define sk_unshift OPENSSL_sk_unshift -# define sk_shift OPENSSL_sk_shift -# define sk_pop OPENSSL_sk_pop -# define sk_zero OPENSSL_sk_zero -# define sk_set_cmp_func OPENSSL_sk_set_cmp_func -# define sk_dup OPENSSL_sk_dup -# define sk_sort OPENSSL_sk_sort -# define sk_is_sorted OPENSSL_sk_is_sorted -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin32/include/openssl/store.h b/openSSL/lin32/include/openssl/store.h deleted file mode 100644 index a40a733..0000000 --- a/openSSL/lin32/include/openssl/store.h +++ /dev/null @@ -1,266 +0,0 @@ -/* - * 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_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 occurred - * 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 transferred 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/openSSL/lin32/include/openssl/storeerr.h b/openSSL/lin32/include/openssl/storeerr.h deleted file mode 100644 index 190eab0..0000000 --- a/openSSL/lin32/include/openssl/storeerr.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * 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_OSSL_STOREERR_H -# define HEADER_OSSL_STOREERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/symhacks.h b/openSSL/lin32/include/openssl/symhacks.h deleted file mode 100644 index 156ea6e..0000000 --- a/openSSL/lin32/include/openssl/symhacks.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SYMHACKS_H -# define HEADER_SYMHACKS_H - -# include - -/* Case insensitive linking causes problems.... */ -# if defined(OPENSSL_SYS_VMS) -# undef ERR_load_CRYPTO_strings -# define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings -# undef OCSP_crlID_new -# define OCSP_crlID_new OCSP_crlID2_new - -# undef d2i_ECPARAMETERS -# define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS -# undef i2d_ECPARAMETERS -# define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS -# undef d2i_ECPKPARAMETERS -# define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS -# undef i2d_ECPKPARAMETERS -# define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS - -/* This one clashes with CMS_data_create */ -# undef cms_Data_create -# define cms_Data_create priv_cms_Data_create - -# endif - -#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/openSSL/lin32/include/openssl/tls1.h b/openSSL/lin32/include/openssl/tls1.h deleted file mode 100644 index 76d9fda..0000000 --- a/openSSL/lin32/include/openssl/tls1.h +++ /dev/null @@ -1,1237 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_TLS1_H -# define HEADER_TLS1_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Default security level if not overridden at config time */ -# ifndef OPENSSL_TLS_SECURITY_LEVEL -# define OPENSSL_TLS_SECURITY_LEVEL 1 -# endif - -# define TLS1_VERSION 0x0301 -# define TLS1_1_VERSION 0x0302 -# define TLS1_2_VERSION 0x0303 -# define TLS1_3_VERSION 0x0304 -# define TLS_MAX_VERSION TLS1_3_VERSION - -/* Special value for method supporting multiple versions */ -# define TLS_ANY_VERSION 0x10000 - -# define TLS1_VERSION_MAJOR 0x03 -# define TLS1_VERSION_MINOR 0x01 - -# define TLS1_1_VERSION_MAJOR 0x03 -# define TLS1_1_VERSION_MINOR 0x02 - -# define TLS1_2_VERSION_MAJOR 0x03 -# define TLS1_2_VERSION_MINOR 0x03 - -# define TLS1_get_version(s) \ - ((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) - -# define TLS1_AD_DECRYPTION_FAILED 21 -# define TLS1_AD_RECORD_OVERFLOW 22 -# define TLS1_AD_UNKNOWN_CA 48/* fatal */ -# define TLS1_AD_ACCESS_DENIED 49/* fatal */ -# define TLS1_AD_DECODE_ERROR 50/* fatal */ -# define TLS1_AD_DECRYPT_ERROR 51 -# define TLS1_AD_EXPORT_RESTRICTION 60/* fatal */ -# define TLS1_AD_PROTOCOL_VERSION 70/* fatal */ -# define TLS1_AD_INSUFFICIENT_SECURITY 71/* fatal */ -# define TLS1_AD_INTERNAL_ERROR 80/* fatal */ -# 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 -# define TLS1_AD_UNRECOGNIZED_NAME 112 -# define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 -# define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 -# define TLS1_AD_UNKNOWN_PSK_IDENTITY 115/* fatal */ -# define TLS1_AD_NO_APPLICATION_PROTOCOL 120 /* fatal */ - -/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ -# define TLSEXT_TYPE_server_name 0 -# define TLSEXT_TYPE_max_fragment_length 1 -# define TLSEXT_TYPE_client_certificate_url 2 -# define TLSEXT_TYPE_trusted_ca_keys 3 -# define TLSEXT_TYPE_truncated_hmac 4 -# define TLSEXT_TYPE_status_request 5 -/* ExtensionType values from RFC4681 */ -# define TLSEXT_TYPE_user_mapping 6 -/* ExtensionType values from RFC5878 */ -# define TLSEXT_TYPE_client_authz 7 -# define TLSEXT_TYPE_server_authz 8 -/* ExtensionType values from RFC6091 */ -# define TLSEXT_TYPE_cert_type 9 - -/* ExtensionType values from RFC4492 */ -/* - * 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 - -/* ExtensionType values from RFC5246 */ -# define TLSEXT_TYPE_signature_algorithms 13 - -/* ExtensionType value from RFC5764 */ -# define TLSEXT_TYPE_use_srtp 14 - -/* ExtensionType value from RFC5620 */ -# define TLSEXT_TYPE_heartbeat 15 - -/* ExtensionType value from RFC7301 */ -# define TLSEXT_TYPE_application_layer_protocol_negotiation 16 - -/* - * Extension type for Certificate Transparency - * https://tools.ietf.org/html/rfc6962#section-3.3.1 - */ -# define TLSEXT_TYPE_signed_certificate_timestamp 18 - -/* - * ExtensionType value for TLS padding extension. - * http://tools.ietf.org/html/draft-agl-tls-padding - */ -# define TLSEXT_TYPE_padding 21 - -/* ExtensionType value from RFC7366 */ -# define TLSEXT_TYPE_encrypt_then_mac 22 - -/* ExtensionType value from RFC7627 */ -# define TLSEXT_TYPE_extended_master_secret 23 - -/* 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 - -# ifndef OPENSSL_NO_NEXTPROTONEG -/* This is not an IANA defined extension number */ -# define TLSEXT_TYPE_next_proto_neg 13172 -# endif - -/* NameType value from RFC3546 */ -# define TLSEXT_NAMETYPE_host_name 0 -/* status request value from RFC3546 */ -# define TLSEXT_STATUSTYPE_ocsp 1 - -/* ECPointFormat values from RFC4492 */ -# define TLSEXT_ECPOINTFORMAT_first 0 -# define TLSEXT_ECPOINTFORMAT_uncompressed 0 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 -# define TLSEXT_ECPOINTFORMAT_last 2 - -/* Signature and hash algorithms from RFC5246 */ -# define TLSEXT_signature_anonymous 0 -# define TLSEXT_signature_rsa 1 -# define TLSEXT_signature_dsa 2 -# define TLSEXT_signature_ecdsa 3 -# define TLSEXT_signature_gostr34102001 237 -# define TLSEXT_signature_gostr34102012_256 238 -# define TLSEXT_signature_gostr34102012_512 239 - -/* Total number of different signature algorithms */ -# define TLSEXT_signature_num 7 - -# define TLSEXT_hash_none 0 -# define TLSEXT_hash_md5 1 -# define TLSEXT_hash_sha1 2 -# define TLSEXT_hash_sha224 3 -# define TLSEXT_hash_sha256 4 -# define TLSEXT_hash_sha384 5 -# define TLSEXT_hash_sha512 6 -# define TLSEXT_hash_gostr3411 237 -# define TLSEXT_hash_gostr34112012_256 238 -# define TLSEXT_hash_gostr34112012_512 239 - -/* Total number of different digest algorithms */ - -# define TLSEXT_hash_num 10 - -/* Flag set for unrecognised algorithms */ -# define TLSEXT_nid_unknown 0x1000000 - -/* ECC curves */ - -# 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); -__owur int SSL_get_servername_type(const SSL *s); -/* - * SSL_export_keying_material exports a value derived from the master secret, - * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and - * optional context. (Since a zero length context is allowed, the |use_context| - * flag controls whether a context is included.) It returns 1 on success and - * 0 or -1 otherwise. - */ -__owur int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, - const char *label, size_t llen, - 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); - -int SSL_get_shared_sigalgs(SSL *s, int idx, - int *psign, int *phash, int *psignandhash, - unsigned char *rsig, unsigned char *rhash); - -__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,\ - (void *)name) - -# define SSL_set_tlsext_debug_callback(ssl, 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,arg) - -# define SSL_get_tlsext_status_type(ssl) \ - 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) - -# define SSL_get_tlsext_status_exts(ssl, 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,arg) - -# define SSL_get_tlsext_status_ids(ssl, 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,arg) - -# define SSL_get_tlsext_status_ocsp_resp(ssl, 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,arg) - -# define SSL_CTX_set_tlsext_servername_callback(ctx, 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 -# define SSL_TLSEXT_ERR_ALERT_FATAL 2 -# 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,arg) - -# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ - 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) - -# define SSL_CTX_get_tlsext_status_cb(ssl, 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) - -# define SSL_CTX_get_tlsext_status_arg(ssl, 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,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_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) - -# 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) -# define SSL_set_dtlsext_heartbeat_no_requests(ssl, arg) \ - 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 \ - SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT -# define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING \ - SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING -# define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS \ - SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS -# define SSL_TLSEXT_HB_ENABLED \ - SSL_DTLSEXT_HB_ENABLED -# define SSL_TLSEXT_HB_DONT_SEND_REQUESTS \ - SSL_DTLSEXT_HB_DONT_SEND_REQUESTS -# define SSL_TLSEXT_HB_DONT_RECV_REQUESTS \ - SSL_DTLSEXT_HB_DONT_RECV_REQUESTS -# 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) -# endif -# endif - -/* PSK ciphersuites from 4279 */ -# define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A -# 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 -# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA 0x03000095 - -/* PSK ciphersuites from 5487 */ -# define TLS1_CK_PSK_WITH_AES_128_GCM_SHA256 0x030000A8 -# define TLS1_CK_PSK_WITH_AES_256_GCM_SHA384 0x030000A9 -# define TLS1_CK_DHE_PSK_WITH_AES_128_GCM_SHA256 0x030000AA -# 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 -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA384 0x030000B9 - -/* NULL PSK ciphersuites from RFC4785 */ -# define TLS1_CK_PSK_WITH_NULL_SHA 0x0300002C -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA 0x0300002D -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA 0x0300002E - -/* AES ciphersuites from RFC3268 */ -# define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 -# 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 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 -# define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B -# define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C -# define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F -# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 -# define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 -# define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B -# define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C -# define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 -# define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 -# define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 -# define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 -# define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A -# define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C -# define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D -# define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E -# define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F -# define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 -# define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 -# define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 -# define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 -# define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 -# define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 -# define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 -# define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 - -/* CCM ciphersuites from RFC6655 */ -# define TLS1_CK_RSA_WITH_AES_128_CCM 0x0300C09C -# define TLS1_CK_RSA_WITH_AES_256_CCM 0x0300C09D -# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM 0x0300C09E -# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM 0x0300C09F -# define TLS1_CK_RSA_WITH_AES_128_CCM_8 0x0300C0A0 -# define TLS1_CK_RSA_WITH_AES_256_CCM_8 0x0300C0A1 -# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM_8 0x0300C0A2 -# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM_8 0x0300C0A3 -# define TLS1_CK_PSK_WITH_AES_128_CCM 0x0300C0A4 -# define TLS1_CK_PSK_WITH_AES_256_CCM 0x0300C0A5 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM 0x0300C0A6 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM 0x0300C0A7 -# define TLS1_CK_PSK_WITH_AES_128_CCM_8 0x0300C0A8 -# define TLS1_CK_PSK_WITH_AES_256_CCM_8 0x0300C0A9 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM_8 0x0300C0AA -# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM_8 0x0300C0AB - -/* CCM ciphersuites from RFC7251 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM 0x0300C0AC -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM 0x0300C0AD -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM_8 0x0300C0AE -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM_8 0x0300C0AF - -/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BA -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BB -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BC -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BD -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BE -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256 0x030000BF - -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C0 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C1 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C2 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C3 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5 - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 -# define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 -# define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 - -# define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 -# define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 -# define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A - -# define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B -# define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C -# define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D -# define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E -# define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F - -# define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 -# define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 -# define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 - -# define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 -# define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 -# define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 -# define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 -# define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 - -/* SRP ciphersuites from RFC 5054 */ -# define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A -# define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B -# define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C -# define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E -# define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F -# define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 -# 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 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 - -/* ECDHE PSK ciphersuites from RFC5489 */ -# define TLS1_CK_ECDHE_PSK_WITH_RC4_128_SHA 0x0300C033 -# define TLS1_CK_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300C034 -# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA 0x0300C035 -# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA 0x0300C036 - -# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0x0300C037 -# 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 - -/* Camellia-CBC ciphersuites from RFC6367 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C072 -# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C073 -# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C074 -# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C075 -# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C076 -# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C077 -# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C078 -# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C079 - -# define TLS1_CK_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C094 -# define TLS1_CK_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C095 -# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C096 -# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C097 -# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C098 -# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C099 -# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C09A -# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C09B - -/* draft-ietf-tls-chacha20-poly1305-03 */ -# define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCA8 -# define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 0x0300CCA9 -# define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCAA -# define TLS1_CK_PSK_WITH_CHACHA20_POLY1305 0x0300CCAB -# define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAC -# 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 - * using DHE everywhere, though we may indefinitely maintain aliases for - * users or configurations that used "EDH" - */ -# define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" - -# define TLS1_TXT_PSK_WITH_NULL_SHA "PSK-NULL-SHA" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA "DHE-PSK-NULL-SHA" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA "RSA-PSK-NULL-SHA" - -/* AES ciphersuites from RFC3268 */ -# define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" -# define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" - -# define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" -# define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" - -# define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" -# define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" -# define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" - -/* PSK ciphersuites from RFC 4279 */ -# define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" -# define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" - -# define TLS1_TXT_DHE_PSK_WITH_RC4_128_SHA "DHE-PSK-RC4-SHA" -# define TLS1_TXT_DHE_PSK_WITH_3DES_EDE_CBC_SHA "DHE-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA "DHE-PSK-AES128-CBC-SHA" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA "DHE-PSK-AES256-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_RC4_128_SHA "RSA-PSK-RC4-SHA" -# define TLS1_TXT_RSA_PSK_WITH_3DES_EDE_CBC_SHA "RSA-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA "RSA-PSK-AES128-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA "RSA-PSK-AES256-CBC-SHA" - -/* PSK ciphersuites from RFC 5487 */ -# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_GCM_SHA256 "DHE-PSK-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_GCM_SHA384 "DHE-PSK-AES256-GCM-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_AES_128_GCM_SHA256 "RSA-PSK-AES128-GCM-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_GCM_SHA384 "RSA-PSK-AES256-GCM-SHA384" - -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA256 "PSK-AES128-CBC-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA384 "PSK-AES256-CBC-SHA384" -# define TLS1_TXT_PSK_WITH_NULL_SHA256 "PSK-NULL-SHA256" -# define TLS1_TXT_PSK_WITH_NULL_SHA384 "PSK-NULL-SHA384" - -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA256 "DHE-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA384 "DHE-PSK-AES256-CBC-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA256 "DHE-PSK-NULL-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA384 "DHE-PSK-NULL-SHA384" - -# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA256 "RSA-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA384 "RSA-PSK-AES256-CBC-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA256 "RSA-PSK-NULL-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA384 "RSA-PSK-NULL-SHA384" - -/* SRP ciphersuite from RFC 5054 */ -# define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" - -/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256 "CAMELLIA128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DH-DSS-CAMELLIA128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DH-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DHE-DSS-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DHE-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256 "ADH-CAMELLIA128-SHA256" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256 "CAMELLIA256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DH-DSS-CAMELLIA256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DH-RSA-CAMELLIA256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DHE-DSS-CAMELLIA256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DHE-RSA-CAMELLIA256-SHA256" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256 "ADH-CAMELLIA256-SHA256" - -# define TLS1_TXT_PSK_WITH_CAMELLIA_128_CBC_SHA256 "PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_PSK_WITH_CAMELLIA_256_CBC_SHA384 "PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "DHE-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "DHE-PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "RSA-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "RSA-PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-PSK-CAMELLIA256-SHA384" - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" -# define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" -# define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" -# define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" -# define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" -# define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" - -/* TLS v1.2 ciphersuites */ -# define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" -# define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" -# define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" -# define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" -# 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" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM "DHE-RSA-AES256-CCM" - -# define TLS1_TXT_RSA_WITH_AES_128_CCM_8 "AES128-CCM8" -# define TLS1_TXT_RSA_WITH_AES_256_CCM_8 "AES256-CCM8" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM_8 "DHE-RSA-AES128-CCM8" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM_8 "DHE-RSA-AES256-CCM8" - -# define TLS1_TXT_PSK_WITH_AES_128_CCM "PSK-AES128-CCM" -# define TLS1_TXT_PSK_WITH_AES_256_CCM "PSK-AES256-CCM" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM "DHE-PSK-AES128-CCM" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM "DHE-PSK-AES256-CCM" - -# define TLS1_TXT_PSK_WITH_AES_128_CCM_8 "PSK-AES128-CCM8" -# define TLS1_TXT_PSK_WITH_AES_256_CCM_8 "PSK-AES256-CCM8" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM_8 "DHE-PSK-AES128-CCM8" -# 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" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" - -/* TLS v1.2 PSK GCM ciphersuites from RFC5487 */ -# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" - -/* ECDHE PSK ciphersuites from RFC 5489 */ -# define TLS1_TXT_ECDHE_PSK_WITH_RC4_128_SHA "ECDHE-PSK-RC4-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "ECDHE-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA "ECDHE-PSK-AES128-CBC-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA "ECDHE-PSK-AES256-CBC-SHA" - -# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "ECDHE-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "ECDHE-PSK-AES256-CBC-SHA384" - -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA "ECDHE-PSK-NULL-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA256 "ECDHE-PSK-NULL-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA384 "ECDHE-PSK-NULL-SHA384" - -/* Camellia-CBC ciphersuites from RFC6367 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-ECDSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-ECDSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-ECDSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-ECDSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-RSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-RSA-CAMELLIA256-SHA384" - -/* draft-ietf-tls-chacha20-poly1305-03 */ -# define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305" -# define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305" -# define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305" -# define TLS1_TXT_PSK_WITH_CHACHA20_POLY1305 "PSK-CHACHA20-POLY1305" -# define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305 "ECDHE-PSK-CHACHA20-POLY1305" -# 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 -# define TLS_CT_DSS_FIXED_DH 4 -# define TLS_CT_ECDSA_SIGN 64 -# define TLS_CT_RSA_FIXED_ECDH 65 -# define TLS_CT_ECDSA_FIXED_ECDH 66 -# define TLS_CT_GOST01_SIGN 22 -# define TLS_CT_GOST12_SIGN 238 -# define TLS_CT_GOST12_512_SIGN 239 - -/* - * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see - * comment there) - */ -# define TLS_CT_NUMBER 10 - -# if defined(SSL3_CT_NUMBER) -# if TLS_CT_NUMBER != SSL3_CT_NUMBER -# error "SSL/TLS CT_NUMBER values do not match" -# endif -# endif - -# define TLS1_FINISH_MAC_LENGTH 12 - -# define TLS_MD_MAX_CONST_SIZE 22 -# define TLS_MD_CLIENT_FINISH_CONST "client finished" -# define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 -# define TLS_MD_SERVER_FINISH_CONST "server finished" -# define TLS_MD_SERVER_FINISH_CONST_SIZE 15 -# define TLS_MD_KEY_EXPANSION_CONST "key expansion" -# define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 -# define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key" -# define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 -# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" -# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 -# define TLS_MD_IV_BLOCK_CONST "IV block" -# define TLS_MD_IV_BLOCK_CONST_SIZE 8 -# define TLS_MD_MASTER_SECRET_CONST "master secret" -# define TLS_MD_MASTER_SECRET_CONST_SIZE 13 -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "extended master secret" -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST_SIZE 22 - -# ifdef CHARSET_EBCDIC -# undef TLS_MD_CLIENT_FINISH_CONST -/* - * client finished - */ -# define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" - -# undef TLS_MD_SERVER_FINISH_CONST -/* - * server finished - */ -# define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" - -# undef TLS_MD_SERVER_WRITE_KEY_CONST -/* - * server write key - */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_KEY_EXPANSION_CONST -/* - * key expansion - */ -# define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" - -# undef TLS_MD_CLIENT_WRITE_KEY_CONST -/* - * client write key - */ -# define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_SERVER_WRITE_KEY_CONST -/* - * server write key - */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_IV_BLOCK_CONST -/* - * IV block - */ -# define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" - -# undef TLS_MD_MASTER_SECRET_CONST -/* - * master secret - */ -# define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# undef TLS_MD_EXTENDED_MASTER_SECRET_CONST -/* - * extended master secret - */ -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# endif - -/* TLS Session Ticket extension struct */ -struct tls_session_ticket_ext_st { - unsigned short length; - void *data; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin32/include/openssl/ts.h b/openSSL/lin32/include/openssl/ts.h deleted file mode 100644 index 3b58aa5..0000000 --- a/openSSL/lin32/include/openssl/ts.h +++ /dev/null @@ -1,559 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_TS_H -# define HEADER_TS_H - -# include - -# ifndef OPENSSL_NO_TS -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# include -# include - -typedef struct TS_msg_imprint_st TS_MSG_IMPRINT; -typedef struct TS_req_st TS_REQ; -typedef struct TS_accuracy_st TS_ACCURACY; -typedef struct TS_tst_info_st TS_TST_INFO; - -/* Possible values for status. */ -# define TS_STATUS_GRANTED 0 -# define TS_STATUS_GRANTED_WITH_MODS 1 -# define TS_STATUS_REJECTION 2 -# define TS_STATUS_WAITING 3 -# define TS_STATUS_REVOCATION_WARNING 4 -# define TS_STATUS_REVOCATION_NOTIFICATION 5 - -/* Possible values for failure_info. */ -# define TS_INFO_BAD_ALG 0 -# define TS_INFO_BAD_REQUEST 2 -# define TS_INFO_BAD_DATA_FORMAT 5 -# define TS_INFO_TIME_NOT_AVAILABLE 14 -# define TS_INFO_UNACCEPTED_POLICY 15 -# define TS_INFO_UNACCEPTED_EXTENSION 16 -# define TS_INFO_ADD_INFO_NOT_AVAILABLE 17 -# define TS_INFO_SYSTEM_FAILURE 25 - - -typedef struct TS_status_info_st TS_STATUS_INFO; -typedef struct ESS_issuer_serial ESS_ISSUER_SERIAL; -typedef struct ESS_cert_id ESS_CERT_ID; -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); -void TS_REQ_free(TS_REQ *a); -int i2d_TS_REQ(const TS_REQ *a, unsigned char **pp); -TS_REQ *d2i_TS_REQ(TS_REQ **a, const unsigned char **pp, long length); - -TS_REQ *TS_REQ_dup(TS_REQ *a); - -#ifndef OPENSSL_NO_STDIO -TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); -int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a); -#endif -TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); -int i2d_TS_REQ_bio(BIO *fp, TS_REQ *a); - -TS_MSG_IMPRINT *TS_MSG_IMPRINT_new(void); -void TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *a); -int i2d_TS_MSG_IMPRINT(const TS_MSG_IMPRINT *a, unsigned char **pp); -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, - const unsigned char **pp, long length); - -TS_MSG_IMPRINT *TS_MSG_IMPRINT_dup(TS_MSG_IMPRINT *a); - -#ifndef OPENSSL_NO_STDIO -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a); -#endif -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT *a); - -TS_RESP *TS_RESP_new(void); -void TS_RESP_free(TS_RESP *a); -int i2d_TS_RESP(const TS_RESP *a, unsigned char **pp); -TS_RESP *d2i_TS_RESP(TS_RESP **a, const unsigned char **pp, long length); -TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token); -TS_RESP *TS_RESP_dup(TS_RESP *a); - -#ifndef OPENSSL_NO_STDIO -TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a); -int i2d_TS_RESP_fp(FILE *fp, TS_RESP *a); -#endif -TS_RESP *d2i_TS_RESP_bio(BIO *bio, TS_RESP **a); -int i2d_TS_RESP_bio(BIO *bio, TS_RESP *a); - -TS_STATUS_INFO *TS_STATUS_INFO_new(void); -void TS_STATUS_INFO_free(TS_STATUS_INFO *a); -int i2d_TS_STATUS_INFO(const TS_STATUS_INFO *a, unsigned char **pp); -TS_STATUS_INFO *d2i_TS_STATUS_INFO(TS_STATUS_INFO **a, - const unsigned char **pp, long length); -TS_STATUS_INFO *TS_STATUS_INFO_dup(TS_STATUS_INFO *a); - -TS_TST_INFO *TS_TST_INFO_new(void); -void TS_TST_INFO_free(TS_TST_INFO *a); -int i2d_TS_TST_INFO(const TS_TST_INFO *a, unsigned char **pp); -TS_TST_INFO *d2i_TS_TST_INFO(TS_TST_INFO **a, const unsigned char **pp, - long length); -TS_TST_INFO *TS_TST_INFO_dup(TS_TST_INFO *a); - -#ifndef OPENSSL_NO_STDIO -TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a); -int i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a); -#endif -TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO **a); -int i2d_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO *a); - -TS_ACCURACY *TS_ACCURACY_new(void); -void TS_ACCURACY_free(TS_ACCURACY *a); -int i2d_TS_ACCURACY(const TS_ACCURACY *a, unsigned char **pp); -TS_ACCURACY *d2i_TS_ACCURACY(TS_ACCURACY **a, const unsigned char **pp, - long length); -TS_ACCURACY *TS_ACCURACY_dup(TS_ACCURACY *a); - -ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_new(void); -void ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *a); -int i2d_ESS_ISSUER_SERIAL(const ESS_ISSUER_SERIAL *a, unsigned char **pp); -ESS_ISSUER_SERIAL *d2i_ESS_ISSUER_SERIAL(ESS_ISSUER_SERIAL **a, - const unsigned char **pp, - long length); -ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_dup(ESS_ISSUER_SERIAL *a); - -ESS_CERT_ID *ESS_CERT_ID_new(void); -void ESS_CERT_ID_free(ESS_CERT_ID *a); -int i2d_ESS_CERT_ID(const ESS_CERT_ID *a, unsigned char **pp); -ESS_CERT_ID *d2i_ESS_CERT_ID(ESS_CERT_ID **a, const unsigned char **pp, - long length); -ESS_CERT_ID *ESS_CERT_ID_dup(ESS_CERT_ID *a); - -ESS_SIGNING_CERT *ESS_SIGNING_CERT_new(void); -void ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *a); -int i2d_ESS_SIGNING_CERT(const ESS_SIGNING_CERT *a, unsigned char **pp); -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); - -int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i); -const ASN1_INTEGER *TS_STATUS_INFO_get0_status(const TS_STATUS_INFO *a); - -const STACK_OF(ASN1_UTF8STRING) * -TS_STATUS_INFO_get0_text(const TS_STATUS_INFO *a); - -const ASN1_BIT_STRING * -TS_STATUS_INFO_get0_failure_info(const TS_STATUS_INFO *a); - -int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); - -int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg); -X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a); - -int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len); -ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a); - -int TS_REQ_set_policy_id(TS_REQ *a, const ASN1_OBJECT *policy); -ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); - -int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a); - -int TS_REQ_set_cert_req(TS_REQ *a, int cert_req); -int TS_REQ_get_cert_req(const TS_REQ *a); - -STACK_OF(X509_EXTENSION) *TS_REQ_get_exts(TS_REQ *a); -void TS_REQ_ext_free(TS_REQ *a); -int TS_REQ_get_ext_count(TS_REQ *a); -int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos); -int TS_REQ_get_ext_by_OBJ(TS_REQ *a, const ASN1_OBJECT *obj, int lastpos); -int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos); -X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc); -X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc); -int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc); -void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx); - -/* Function declarations for TS_REQ defined in ts/ts_req_print.c */ - -int TS_REQ_print_bio(BIO *bio, TS_REQ *a); - -/* Function declarations for TS_RESP defined in ts/ts_resp_utils.c */ - -int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *info); -TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a); - -/* Caller loses ownership of PKCS7 and TS_TST_INFO objects. */ -void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info); -PKCS7 *TS_RESP_get_token(TS_RESP *a); -TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a); - -int TS_TST_INFO_set_version(TS_TST_INFO *a, long version); -long TS_TST_INFO_get_version(const TS_TST_INFO *a); - -int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy_id); -ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a); - -int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a); - -int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial); -const ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a); - -int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime); -const ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a); - -int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy); -TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a); - -int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds); -const ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a); - -int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis); -const ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a); - -int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros); -const ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a); - -int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering); -int TS_TST_INFO_get_ordering(const TS_TST_INFO *a); - -int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a); - -int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa); -GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a); - -STACK_OF(X509_EXTENSION) *TS_TST_INFO_get_exts(TS_TST_INFO *a); -void TS_TST_INFO_ext_free(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_count(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos); -int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, const ASN1_OBJECT *obj, - int lastpos); -int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos); -X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc); -X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc); -int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc); -void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx); - -/* - * Declarations related to response generation, defined in ts/ts_resp_sign.c. - */ - -/* Optional flags for response generation. */ - -/* Don't include the TSA name in response. */ -# define TS_TSA_NAME 0x01 - -/* Set ordering to true in response. */ -# define TS_ORDERING 0x02 - -/* - * Include the signer certificate and the other specified certificates in - * the ESS signing certificate attribute beside the PKCS7 signed data. - * Only the signer certificates is included by default. - */ -# define TS_ESS_CERT_ID_CHAIN 0x04 - -/* Forward declaration. */ -struct TS_resp_ctx; - -/* This must return a unique number less than 160 bits long. */ -typedef ASN1_INTEGER *(*TS_serial_cb) (struct TS_resp_ctx *, void *); - -/* - * This must return the seconds and microseconds since Jan 1, 1970 in the sec - * and usec variables allocated by the caller. Return non-zero for success - * and zero for failure. - */ -typedef int (*TS_time_cb) (struct TS_resp_ctx *, void *, long *sec, - long *usec); - -/* - * This must process the given extension. It can modify the TS_TST_INFO - * object of the context. Return values: !0 (processed), 0 (error, it must - * set the status info/failure info of the response). - */ -typedef int (*TS_extension_cb) (struct TS_resp_ctx *, X509_EXTENSION *, - void *); - -typedef struct TS_resp_ctx TS_RESP_CTX; - -DEFINE_STACK_OF_CONST(EVP_MD) - -/* Creates a response context that can be used for generating responses. */ -TS_RESP_CTX *TS_RESP_CTX_new(void); -void TS_RESP_CTX_free(TS_RESP_CTX *ctx); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer); - -/* This parameter must be set. */ -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); - -/* No additional certs are included in the response by default. */ -int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); - -/* - * Adds a new acceptable policy, only the default policy is accepted by - * default. - */ -int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy); - -/* - * Adds a new acceptable message digest. Note that no message digests are - * accepted by default. The md argument is shared with the caller. - */ -int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md); - -/* Accuracy is not included by default. */ -int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx, - int secs, int millis, int micros); - -/* - * Clock precision digits, i.e. the number of decimal digits: '0' means sec, - * '3' msec, '6' usec, and so on. Default is 0. - */ -int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, - unsigned clock_precision_digits); -/* At most we accept usec precision. */ -# define TS_MAX_CLOCK_PRECISION_DIGITS 6 - -/* Maximum status message length */ -# define TS_MAX_STATUS_LENGTH (1024 * 1024) - -/* No flags are set by default. */ -void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); - -/* Default callback always returns a constant. */ -void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data); - -/* Default callback uses the gettimeofday() and gmtime() system calls. */ -void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data); - -/* - * Default callback rejects all extensions. The extension callback is called - * when the TS_TST_INFO object is already set up and not signed yet. - */ -/* FIXME: extension handling is not tested yet. */ -void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx, - TS_extension_cb cb, void *data); - -/* The following methods can be used in the callbacks. */ -int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx, - int status, const char *text); - -/* Sets the status info only if it is still TS_STATUS_GRANTED. */ -int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx, - int status, const char *text); - -int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure); - -/* The get methods below can be used in the extension callback. */ -TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx); - -TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx); - -/* - * Creates the signed TS_TST_INFO and puts it in TS_RESP. - * In case of errors it sets the status info properly. - * Returns NULL only in case of memory allocation/fatal error. - */ -TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio); - -/* - * Declarations related to response verification, - * they are defined in ts/ts_resp_verify.c. - */ - -int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, - X509_STORE *store, X509 **signer_out); - -/* Context structure for the generic verify method. */ - -/* Verify the signer's certificate and the signature of the response. */ -# define TS_VFY_SIGNATURE (1u << 0) -/* Verify the version number of the response. */ -# define TS_VFY_VERSION (1u << 1) -/* Verify if the policy supplied by the user matches the policy of the TSA. */ -# define TS_VFY_POLICY (1u << 2) -/* - * Verify the message imprint provided by the user. This flag should not be - * specified with TS_VFY_DATA. - */ -# define TS_VFY_IMPRINT (1u << 3) -/* - * Verify the message imprint computed by the verify method from the user - * provided data and the MD algorithm of the response. This flag should not - * be specified with TS_VFY_IMPRINT. - */ -# define TS_VFY_DATA (1u << 4) -/* Verify the nonce value. */ -# define TS_VFY_NONCE (1u << 5) -/* Verify if the TSA name field matches the signer certificate. */ -# define TS_VFY_SIGNER (1u << 6) -/* Verify if the TSA name field equals to the user provided name. */ -# define TS_VFY_TSA_NAME (1u << 7) - -/* You can use the following convenience constants. */ -# define TS_VFY_ALL_IMPRINT (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_IMPRINT \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) -# define TS_VFY_ALL_DATA (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_DATA \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) - -typedef struct TS_verify_ctx TS_VERIFY_CTX; - -int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response); -int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token); - -/* - * Declarations related to response verification context, - */ -TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); -void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); -int TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f); -int TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f); -BIO *TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b); -unsigned char *TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx, - unsigned char *hexstr, long len); -X509_STORE *TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE *s); -STACK_OF(X509) *TS_VERIFY_CTS_set_certs(TS_VERIFY_CTX *ctx, STACK_OF(X509) *certs); - -/*- - * If ctx is NULL, it allocates and returns a new object, otherwise - * it returns ctx. It initialises all the members as follows: - * flags = TS_VFY_ALL_IMPRINT & ~(TS_VFY_TSA_NAME | TS_VFY_SIGNATURE) - * certs = NULL - * store = NULL - * policy = policy from the request or NULL if absent (in this case - * TS_VFY_POLICY is cleared from flags as well) - * md_alg = MD algorithm from request - * imprint, imprint_len = imprint from request - * data = NULL - * nonce, nonce_len = nonce from the request or NULL if absent (in this case - * TS_VFY_NONCE is cleared from flags as well) - * tsa_name = NULL - * Important: after calling this method TS_VFY_SIGNATURE should be added! - */ -TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx); - -/* Function declarations for TS_RESP defined in ts/ts_resp_print.c */ - -int TS_RESP_print_bio(BIO *bio, TS_RESP *a); -int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a); -int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a); - -/* Common utility functions defined in ts/ts_lib.c */ - -int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num); -int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj); -int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions); -int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg); -int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *msg); - -/* - * Function declarations for handling configuration options, defined in - * ts/ts_conf.c - */ - -X509 *TS_CONF_load_cert(const char *file); -STACK_OF(X509) *TS_CONF_load_certs(const char *file); -EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass); -const char *TS_CONF_get_tsa_section(CONF *conf, const char *section); -int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, - TS_RESP_CTX *ctx); -#ifndef OPENSSL_NO_ENGINE -int TS_CONF_set_crypto_device(CONF *conf, const char *section, - const char *device); -int TS_CONF_set_default_engine(const char *name); -#endif -int TS_CONF_set_signer_cert(CONF *conf, const char *section, - const char *cert, TS_RESP_CTX *ctx); -int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_key(CONF *conf, const char *section, - const char *key, const char *pass, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_digest(CONF *conf, const char *section, - const char *md, TS_RESP_CTX *ctx); -int TS_CONF_set_def_policy(CONF *conf, const char *section, - const char *policy, TS_RESP_CTX *ctx); -int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_clock_precision_digits(CONF *conf, const char *section, - TS_RESP_CTX *ctx); -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); -int TS_CONF_set_ess_cert_id_digest(CONF *conf, const char *section, - TS_RESP_CTX *ctx); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin32/include/openssl/tserr.h b/openSSL/lin32/include/openssl/tserr.h deleted file mode 100644 index 07f2333..0000000 --- a/openSSL/lin32/include/openssl/tserr.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * 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_TSERR_H -# define HEADER_TSERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/txt_db.h b/openSSL/lin32/include/openssl/txt_db.h deleted file mode 100644 index ec981a4..0000000 --- a/openSSL/lin32/include/openssl/txt_db.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_TXT_DB_H -# define HEADER_TXT_DB_H - -# include -# include -# include -# include - -# define DB_ERROR_OK 0 -# define DB_ERROR_MALLOC 1 -# define DB_ERROR_INDEX_CLASH 2 -# define DB_ERROR_INDEX_OUT_OF_RANGE 3 -# define DB_ERROR_NO_INDEX 4 -# define DB_ERROR_INSERT_INDEX_CLASH 5 -# define DB_ERROR_WRONG_NUM_FIELDS 6 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OPENSSL_STRING *OPENSSL_PSTRING; -DEFINE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) - -typedef struct txt_db_st { - int num_fields; - STACK_OF(OPENSSL_PSTRING) *data; - LHASH_OF(OPENSSL_STRING) **index; - int (**qual) (OPENSSL_STRING *); - long error; - long arg1; - long arg2; - OPENSSL_STRING *arg_row; -} TXT_DB; - -TXT_DB *TXT_DB_read(BIO *in, int num); -long TXT_DB_write(BIO *out, TXT_DB *db); -int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), - OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp); -void TXT_DB_free(TXT_DB *db); -OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, - OPENSSL_STRING *value); -int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin32/include/openssl/ui.h b/openSSL/lin32/include/openssl/ui.h deleted file mode 100644 index 7c721ec..0000000 --- a/openSSL/lin32/include/openssl/ui.h +++ /dev/null @@ -1,368 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_UI_H -# define HEADER_UI_H - -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# include -# include -# 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 -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * All the following functions return -1 or NULL on error and in some cases - * (UI_process()) -2 if interrupted or in some other way cancelled. When - * everything is fine, they return 0, a positive value or a non-NULL pointer, - * all depending on their purpose. - */ - -/* Creators and destructor. */ -UI *UI_new(void); -UI *UI_new_method(const UI_METHOD *method); -void UI_free(UI *ui); - -/*- - The following functions are used to add strings to be printed and prompt - strings to prompt for data. The names are UI_{add,dup}__string - and UI_{add,dup}_input_boolean. - - UI_{add,dup}__string have the following meanings: - add add a text or prompt string. The pointers given to these - functions are used verbatim, no copying is done. - dup make a copy of the text or prompt string, then add the copy - to the collection of strings in the user interface. - - The function is a name for the functionality that the given - string shall be used for. It can be one of: - input use the string as data prompt. - verify use the string as verification prompt. This - is used to verify a previous input. - info use the string for informational output. - error use the string for error output. - Honestly, there's currently no difference between info and error for the - moment. - - UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", - and are typically used when one wants to prompt for a yes/no response. - - All of the functions in this group take a UI and a prompt string. - The string input and verify addition functions also take a flag argument, - a buffer for the result to end up with, a minimum input size and a maximum - input size (the result buffer MUST be large enough to be able to contain - the maximum number of characters). Additionally, the verify addition - functions takes another buffer to compare the result against. - The boolean input functions take an action description string (which should - be safe to ignore if the expected user action is obvious, for example with - a dialog box with an OK button and a Cancel button), a string of acceptable - characters to mean OK and to mean Cancel. The two last strings are checked - to make sure they don't have common characters. Additionally, the same - flag argument as for the string input is taken, as well as a result buffer. - The result buffer is required to be at least one byte long. Depending on - the answer, the first character from the OK or the Cancel character strings - will be stored in the first byte of the result buffer. No NUL will be - added, so the result is *not* a string. - - On success, the all return an index of the added information. That index - is useful when retrieving results with UI_get0_result(). */ -int UI_add_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_dup_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_add_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_dup_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_add_info_string(UI *ui, const char *text); -int UI_dup_info_string(UI *ui, const char *text); -int UI_add_error_string(UI *ui, const char *text); -int UI_dup_error_string(UI *ui, const char *text); - -/* These are the possible flags. They can be or'ed together. */ -/* Use to have echoing of input */ -# define UI_INPUT_FLAG_ECHO 0x01 -/* - * Use a default password. Where that password is found is completely up to - * the application, it might for example be in the user data set with - * UI_add_user_data(). It is not recommended to have more than one input in - * each UI being marked with this flag, or the application might get - * confused. - */ -# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 - -/*- - * The user of these routines may want to define flags of their own. The core - * UI won't look at those, but will pass them on to the method routines. They - * must use higher bits so they don't get confused with the UI bits above. - * UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good - * example of use is this: - * - * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) - * -*/ -# define UI_INPUT_FLAG_USER_BASE 16 - -/*- - * The following function helps construct a prompt. object_desc is a - * textual short description of the object, for example "pass phrase", - * and object_name is the name of the object (might be a card name or - * a file name. - * The returned string shall always be allocated on the heap with - * OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). - * - * If the ui_method doesn't contain a pointer to a user-defined prompt - * constructor, a default string is built, looking like this: - * - * "Enter {object_desc} for {object_name}:" - * - * So, if object_desc has the value "pass phrase" and object_name has - * the value "foo.key", the resulting string is: - * - * "Enter pass phrase for foo.key:" -*/ -char *UI_construct_prompt(UI *ui_method, - const char *object_desc, const char *object_name); - -/* - * The following function is used to store a pointer to user-specific data. - * Any previous such pointer will be returned and replaced. - * - * For callback purposes, this function makes a lot more sense than using - * ex_data, since the latter requires that different parts of OpenSSL or - * applications share the same ex_data index. - * - * Note that the UI_OpenSSL() method completely ignores the user data. Other - * 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 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. - */ -int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); - -/* The commands */ -/* - * Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the - * OpenSSL error stack before printing any info or added error messages and - * before any prompting. - */ -# 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 - * if not. - */ -# define UI_CTRL_IS_REDOABLE 2 - -/* Some methods may use extra data */ -# 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) \ - 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); - -/* Use specific methods instead of the built-in one */ -void UI_set_default_method(const UI_METHOD *meth); -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 - of the User Interface. The functions are: - - an opener This function starts a session, maybe by opening - a channel to a tty, or by opening a window. - a writer This function is called to write a given string, - maybe to the tty, maybe as a field label in a - window. - a flusher This function is called to flush everything that - has been output so far. It can be used to actually - display a dialog box after it has been built. - a reader This function is called to read a given prompt, - maybe from the tty, maybe from a field in a - window. Note that it's called with all string - structures, not only the prompt ones, so it must - check such things itself. - a closer This function closes the session, maybe by closing - the channel to the tty, or closing the window. - - All these functions are expected to return: - - 0 on error. - 1 on success. - -1 on out-of-band events, for example if some prompting has - been canceled (by pressing Ctrl-C, for example). This is - only checked when returned by the flusher or the reader. - - The way this is used, the opener is first called, then the writer for all - strings, then the flusher, then the reader for all strings and finally the - closer. Note that if you want to prompt from a terminal or other command - line interface, the best is to have the reader also write the prompts - instead of having the writer do it. If you want to prompt from a dialog - box, the writer can be used to build up the contents of the box, and the - flusher to actually display the box and run the event loop until all data - has been given, after which the reader only grabs the given data and puts - them back into the UI strings. - - All method functions take a UI as argument. Additionally, the writer and - the reader take a UI_STRING. -*/ - -/* - * The UI_STRING type is the data structure that contains all the needed info - * about a string or a prompt, including test data for a verification prompt. - */ -typedef struct ui_string_st UI_STRING; -DEFINE_STACK_OF(UI_STRING) - -/* - * The different types of strings that are currently supported. This is only - * needed by method authors. - */ -enum UI_string_types { - UIT_NONE = 0, - UIT_PROMPT, /* Prompt for a string */ - UIT_VERIFY, /* Prompt for a string and verify */ - UIT_BOOLEAN, /* Prompt for a yes/no response */ - UIT_INFO, /* Send info to the user */ - UIT_ERROR /* Send an error message to the user */ -}; - -/* Create and manipulate methods */ -UI_METHOD *UI_create_method(const char *name); -void UI_destroy_method(UI_METHOD *ui_method); -int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); -int UI_method_set_writer(UI_METHOD *method, - int (*writer) (UI *ui, UI_STRING *uis)); -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_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 - * data from a UI_STRING. - */ - -/* Return type of the UI_STRING */ -enum UI_string_types UI_get_string_type(UI_STRING *uis); -/* Return input flags of the UI_STRING */ -int UI_get_input_flags(UI_STRING *uis); -/* Return the actual string to output (the prompt, info or error) */ -const char *UI_get0_output_string(UI_STRING *uis); -/* - * Return the optional action string to output (the boolean prompt - * instruction) - */ -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. - */ -const char *UI_get0_test_string(UI_STRING *uis); -/* Return the required minimum size of the result */ -int UI_get_result_minsize(UI_STRING *uis); -/* Return the required maximum size of the result */ -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); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/uierr.h b/openSSL/lin32/include/openssl/uierr.h deleted file mode 100644 index bd68864..0000000 --- a/openSSL/lin32/include/openssl/uierr.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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_UIERR_H -# define HEADER_UIERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin32/include/openssl/whrlpool.h b/openSSL/lin32/include/openssl/whrlpool.h deleted file mode 100644 index 20ea350..0000000 --- a/openSSL/lin32/include/openssl/whrlpool.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2005-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_WHRLPOOL_H -# define HEADER_WHRLPOOL_H - -#include - -# ifndef OPENSSL_NO_WHIRLPOOL -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define WHIRLPOOL_DIGEST_LENGTH (512/8) -# define WHIRLPOOL_BBLOCK 512 -# define WHIRLPOOL_COUNTER (256/8) - -typedef struct { - union { - unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; - /* double q is here to ensure 64-bit alignment */ - double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; - } H; - unsigned char data[WHIRLPOOL_BBLOCK / 8]; - unsigned int bitoff; - size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; -} WHIRLPOOL_CTX; - -int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); -int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); -void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); -int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); -unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin32/include/openssl/x509.h b/openSSL/lin32/include/openssl/x509.h deleted file mode 100644 index 3ff86ec..0000000 --- a/openSSL/lin32/include/openssl/x509.h +++ /dev/null @@ -1,1050 +0,0 @@ -/* - * Copyright 1995-2020 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_X509_H -# define HEADER_X509_H - -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# 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 - -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff - -struct X509_algor_st { - ASN1_OBJECT *algorithm; - ASN1_TYPE *parameter; -} /* X509_ALGOR */ ; - -typedef STACK_OF(X509_ALGOR) X509_ALGORS; - -typedef struct X509_val_st { - ASN1_TIME *notBefore; - ASN1_TIME *notAfter; -} X509_VAL; - -typedef struct X509_sig_st X509_SIG; - -typedef struct X509_name_entry_st X509_NAME_ENTRY; - -DEFINE_STACK_OF(X509_NAME_ENTRY) - -DEFINE_STACK_OF(X509_NAME) - -# define X509_EX_V_NETSCAPE_HACK 0x8000 -# define X509_EX_V_INIT 0x0001 -typedef struct X509_extension_st X509_EXTENSION; - -typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; - -DEFINE_STACK_OF(X509_EXTENSION) - -typedef struct x509_attributes_st X509_ATTRIBUTE; - -DEFINE_STACK_OF(X509_ATTRIBUTE) - -typedef struct X509_req_info_st X509_REQ_INFO; - -typedef struct X509_req_st X509_REQ; - -typedef struct x509_cert_aux_st X509_CERT_AUX; - -typedef struct x509_cinf_st X509_CINF; - -DEFINE_STACK_OF(X509) - -/* This is used for a table of trust checking functions */ - -typedef struct x509_trust_st { - int trust; - int flags; - int (*check_trust) (struct x509_trust_st *, X509 *, int); - char *name; - int arg1; - void *arg2; -} X509_TRUST; - -DEFINE_STACK_OF(X509_TRUST) - -/* standard trust ids */ - -# define X509_TRUST_DEFAULT 0 /* Only valid in purpose settings */ - -# define X509_TRUST_COMPAT 1 -# define X509_TRUST_SSL_CLIENT 2 -# define X509_TRUST_SSL_SERVER 3 -# define X509_TRUST_EMAIL 4 -# define X509_TRUST_OBJECT_SIGN 5 -# define X509_TRUST_OCSP_SIGN 6 -# define X509_TRUST_OCSP_REQUEST 7 -# define X509_TRUST_TSA 8 - -/* Keep these up to date! */ -# define X509_TRUST_MIN 1 -# define X509_TRUST_MAX 8 - -/* trust_flags values */ -# define X509_TRUST_DYNAMIC (1U << 0) -# define X509_TRUST_DYNAMIC_NAME (1U << 1) -/* No compat trust if self-signed, preempts "DO_SS" */ -# define X509_TRUST_NO_SS_COMPAT (1U << 2) -/* Compat trust if no explicit accepted trust EKUs */ -# define X509_TRUST_DO_SS_COMPAT (1U << 3) -/* Accept "anyEKU" as a wildcard trust OID */ -# define X509_TRUST_OK_ANY_EKU (1U << 4) - -/* check_trust return codes */ - -# define X509_TRUST_TRUSTED 1 -# define X509_TRUST_REJECTED 2 -# define X509_TRUST_UNTRUSTED 3 - -/* Flags for X509_print_ex() */ - -# define X509_FLAG_COMPAT 0 -# define X509_FLAG_NO_HEADER 1L -# define X509_FLAG_NO_VERSION (1L << 1) -# define X509_FLAG_NO_SERIAL (1L << 2) -# define X509_FLAG_NO_SIGNAME (1L << 3) -# define X509_FLAG_NO_ISSUER (1L << 4) -# define X509_FLAG_NO_VALIDITY (1L << 5) -# define X509_FLAG_NO_SUBJECT (1L << 6) -# define X509_FLAG_NO_PUBKEY (1L << 7) -# define X509_FLAG_NO_EXTENSIONS (1L << 8) -# define X509_FLAG_NO_SIGDUMP (1L << 9) -# define X509_FLAG_NO_AUX (1L << 10) -# define X509_FLAG_NO_ATTRIBUTES (1L << 11) -# define X509_FLAG_NO_IDS (1L << 12) - -/* Flags specific to X509_NAME_print_ex() */ - -/* The field separator information */ - -# define XN_FLAG_SEP_MASK (0xf << 16) - -# define XN_FLAG_COMPAT 0/* Traditional; use old X509_NAME_print */ -# define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ -# define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ -# define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ -# define XN_FLAG_SEP_MULTILINE (4 << 16)/* One line per field */ - -# define XN_FLAG_DN_REV (1 << 20)/* Reverse DN order */ - -/* How the field name is shown */ - -# define XN_FLAG_FN_MASK (0x3 << 21) - -# define XN_FLAG_FN_SN 0/* Object short name */ -# define XN_FLAG_FN_LN (1 << 21)/* Object long name */ -# define XN_FLAG_FN_OID (2 << 21)/* Always use OIDs */ -# define XN_FLAG_FN_NONE (3 << 21)/* No field names */ - -# define XN_FLAG_SPC_EQ (1 << 23)/* Put spaces round '=' */ - -/* - * This determines if we dump fields we don't recognise: RFC2253 requires - * this. - */ - -# define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) - -# define XN_FLAG_FN_ALIGN (1 << 25)/* Align field names to 20 - * characters */ - -/* Complete set of RFC2253 flags */ - -# define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ - XN_FLAG_SEP_COMMA_PLUS | \ - XN_FLAG_DN_REV | \ - XN_FLAG_FN_SN | \ - XN_FLAG_DUMP_UNKNOWN_FIELDS) - -/* readable oneline form */ - -# define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ - ASN1_STRFLGS_ESC_QUOTE | \ - XN_FLAG_SEP_CPLUS_SPC | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_SN) - -/* readable multiline form */ - -# define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - XN_FLAG_SEP_MULTILINE | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_LN | \ - XN_FLAG_FN_ALIGN) - -DEFINE_STACK_OF(X509_REVOKED) - -typedef struct X509_crl_info_st X509_CRL_INFO; - -DEFINE_STACK_OF(X509_CRL) - -typedef struct private_key_st { - int version; - /* The PKCS#8 data types */ - X509_ALGOR *enc_algor; - ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ - /* When decrypted, the following will not be NULL */ - EVP_PKEY *dec_pkey; - /* used to encrypt and decrypt */ - int key_length; - char *key_data; - int key_free; /* true if we should auto free key_data */ - /* expanded version of 'enc_algor' */ - EVP_CIPHER_INFO cipher; -} X509_PKEY; - -typedef struct X509_info_st { - X509 *x509; - X509_CRL *crl; - X509_PKEY *x_pkey; - EVP_CIPHER_INFO enc_cipher; - int enc_len; - char *enc_data; -} X509_INFO; - -DEFINE_STACK_OF(X509_INFO) - -/* - * 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; - ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ -} NETSCAPE_SPKAC; - -typedef struct Netscape_spki_st { - NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ - X509_ALGOR sig_algor; - ASN1_BIT_STRING *signature; -} NETSCAPE_SPKI; - -/* Netscape certificate sequence structure */ -typedef struct Netscape_certificate_sequence { - ASN1_OBJECT *type; - STACK_OF(X509) *certs; -} NETSCAPE_CERT_SEQUENCE; - -/*- Unused (and iv length is wrong) -typedef struct CBCParameter_st - { - unsigned char iv[8]; - } CBC_PARAM; -*/ - -/* Password based encryption structure */ - -typedef struct PBEPARAM_st { - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *iter; -} PBEPARAM; - -/* Password based encryption V2 structures */ - -typedef struct PBE2PARAM_st { - X509_ALGOR *keyfunc; - X509_ALGOR *encryption; -} PBE2PARAM; - -typedef struct PBKDF2PARAM_st { -/* Usually OCTET STRING but could be anything */ - ASN1_TYPE *salt; - ASN1_INTEGER *iter; - ASN1_INTEGER *keylength; - 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 - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define X509_EXT_PACK_UNKNOWN 1 -# define X509_EXT_PACK_STRING 2 - -# define X509_extract_key(x) X509_get_pubkey(x)/*****/ -# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) -# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) - -void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); -X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), - int (*crl_free) (X509_CRL *crl), - int (*crl_lookup) (X509_CRL *crl, - X509_REVOKED **ret, - ASN1_INTEGER *ser, - X509_NAME *issuer), - int (*crl_verify) (X509_CRL *crl, - EVP_PKEY *pk)); -void X509_CRL_METHOD_free(X509_CRL_METHOD *m); - -void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); -void *X509_CRL_get_meth_data(X509_CRL *crl); - -const char *X509_verify_cert_error_string(long n); - -int X509_verify(X509 *a, EVP_PKEY *r); - -int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); -int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); -int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); - -NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); -char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); -EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); -int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); - -int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); - -int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); -int X509_signature_print(BIO *bp, const X509_ALGOR *alg, - const ASN1_STRING *sig); - -int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); -# ifndef OPENSSL_NO_OCSP -int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); -# endif -int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); -int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); -# ifndef OPENSSL_NO_OCSP -int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); -# endif -int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); - -int X509_pubkey_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); - -# ifndef OPENSSL_NO_STDIO -X509 *d2i_X509_fp(FILE *fp, X509 **x509); -int i2d_X509_fp(FILE *fp, X509 *x509); -X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); -int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); -X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); -int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); -# ifndef OPENSSL_NO_RSA -RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); -int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); -RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); -int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); -RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); -int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); -# endif -# ifndef OPENSSL_NO_DSA -DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); -int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); -DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); -int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); -# endif -# ifndef OPENSSL_NO_EC -EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); -int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); -EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); -int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); -# endif -X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); -int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); -int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); -int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); -# endif - -X509 *d2i_X509_bio(BIO *bp, X509 **x509); -int i2d_X509_bio(BIO *bp, X509 *x509); -X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); -int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); -X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); -int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); -# ifndef OPENSSL_NO_RSA -RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); -int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); -RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); -int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); -RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); -int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); -# endif -# ifndef OPENSSL_NO_DSA -DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); -int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); -DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); -int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); -# endif -# ifndef OPENSSL_NO_EC -EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); -int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); -EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); -int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); -# endif -X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); -int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); -int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); -int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); - -X509 *X509_dup(X509 *x509); -X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); -X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); -X509_CRL *X509_CRL_dup(X509_CRL *crl); -X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); -X509_REQ *X509_REQ_dup(X509_REQ *req); -X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); -int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, - void *pval); -void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, - const void **ppval, const X509_ALGOR *algor); -void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); -int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); -int X509_ALGOR_copy(X509_ALGOR *dest, const X509_ALGOR *src); - -X509_NAME *X509_NAME_dup(X509_NAME *xn); -X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); - -int X509_cmp_time(const ASN1_TIME *s, time_t *t); -int X509_cmp_current_time(const ASN1_TIME *s); -ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); -ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, - int offset_day, long offset_sec, time_t *t); -ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); - -const char *X509_get_default_cert_area(void); -const char *X509_get_default_cert_dir(void); -const char *X509_get_default_cert_file(void); -const char *X509_get_default_cert_dir_env(void); -const char *X509_get_default_cert_file_env(void); -const char *X509_get_default_private_dir(void); - -X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); - -DECLARE_ASN1_FUNCTIONS(X509_ALGOR) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) -DECLARE_ASN1_FUNCTIONS(X509_VAL) - -DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) - -int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); -EVP_PKEY *X509_PUBKEY_get0(X509_PUBKEY *key); -EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); -int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); -long X509_get_pathlen(X509 *x); -int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); -EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); -# ifndef OPENSSL_NO_RSA -int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); -RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); -# endif -# ifndef OPENSSL_NO_DSA -int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); -DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); -# endif -# ifndef OPENSSL_NO_EC -int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); -EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); -# endif - -DECLARE_ASN1_FUNCTIONS(X509_SIG) -void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg, - const ASN1_OCTET_STRING **pdigest); -void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg, - ASN1_OCTET_STRING **pdigest); - -DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) -DECLARE_ASN1_FUNCTIONS(X509_REQ) - -DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) -X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); - -DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) - -DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) - -DECLARE_ASN1_FUNCTIONS(X509_NAME) - -int X509_NAME_set(X509_NAME **xn, X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(X509_CINF) - -DECLARE_ASN1_FUNCTIONS(X509) -DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) - -#define X509_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509, l, p, newf, dupf, freef) -int X509_set_ex_data(X509 *r, int idx, void *arg); -void *X509_get_ex_data(X509 *r, int idx); -int i2d_X509_AUX(X509 *a, unsigned char **pp); -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); - -int X509_trusted(const X509 *x); -int X509_alias_set1(X509 *x, const unsigned char *name, int len); -int X509_keyid_set1(X509 *x, const unsigned char *id, int len); -unsigned char *X509_alias_get0(X509 *x, int *len); -unsigned char *X509_keyid_get0(X509 *x, int *len); -int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, - int); -int X509_TRUST_set(int *t, int trust); -int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj); -int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj); -void X509_trust_clear(X509 *x); -void X509_reject_clear(X509 *x); - -STACK_OF(ASN1_OBJECT) *X509_get0_trust_objects(X509 *x); -STACK_OF(ASN1_OBJECT) *X509_get0_reject_objects(X509 *x); - -DECLARE_ASN1_FUNCTIONS(X509_REVOKED) -DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) -DECLARE_ASN1_FUNCTIONS(X509_CRL) - -int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); -int X509_CRL_get0_by_serial(X509_CRL *crl, - X509_REVOKED **ret, ASN1_INTEGER *serial); -int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); - -X509_PKEY *X509_PKEY_new(void); -void X509_PKEY_free(X509_PKEY *a); - -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) - -X509_INFO *X509_INFO_new(void); -void X509_INFO_free(X509_INFO *a); -char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size); - -int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); - -int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, - unsigned char *md, unsigned int *len); - -int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - char *data, EVP_PKEY *pkey, const EVP_MD *type); - -int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, - unsigned char *md, unsigned int *len); - -int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); - -int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, - EVP_PKEY *pkey, const EVP_MD *type); -int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - void *asn, EVP_MD_CTX *ctx); - -long X509_get_version(const X509 *x); -int X509_set_version(X509 *x, long version); -int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); -ASN1_INTEGER *X509_get_serialNumber(X509 *x); -const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); -int X509_set_issuer_name(X509 *x, X509_NAME *name); -X509_NAME *X509_get_issuer_name(const X509 *a); -int X509_set_subject_name(X509 *x, X509_NAME *name); -X509_NAME *X509_get_subject_name(const X509 *a); -const ASN1_TIME * X509_get0_notBefore(const X509 *x); -ASN1_TIME *X509_getm_notBefore(const X509 *x); -int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); -const ASN1_TIME *X509_get0_notAfter(const X509 *x); -ASN1_TIME *X509_getm_notAfter(const X509 *x); -int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); -int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); -int X509_up_ref(X509 *x); -int X509_get_signature_type(const X509 *x); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define X509_get_notBefore X509_getm_notBefore -# define X509_get_notAfter X509_getm_notAfter -# define X509_set_notBefore X509_set1_notBefore -# define X509_set_notAfter X509_set1_notAfter -#endif - - -/* - * This one is only used so that a binary form can output, as in - * 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); -void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid, - const ASN1_BIT_STRING **psuid); -const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x); - -EVP_PKEY *X509_get0_pubkey(const X509 *x); -EVP_PKEY *X509_get_pubkey(X509 *x); -ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); -int X509_certificate_type(const X509 *x, const EVP_PKEY *pubkey); - -long X509_REQ_get_version(const X509_REQ *req); -int X509_REQ_set_version(X509_REQ *x, long version); -X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); -int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); -void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -void X509_REQ_set0_signature(X509_REQ *req, ASN1_BIT_STRING *psig); -int X509_REQ_set1_signature_algo(X509_REQ *req, X509_ALGOR *palg); -int X509_REQ_get_signature_nid(const X509_REQ *req); -int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); -int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); -EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); -X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); -int X509_REQ_extension_nid(int nid); -int *X509_REQ_get_extension_nids(void); -void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); -int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts, - int nid); -int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts); -int X509_REQ_get_attr_count(const X509_REQ *req); -int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); -int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); -X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); -int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); -int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_NID(X509_REQ *req, - int nid, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_txt(X509_REQ *req, - const char *attrname, int type, - const unsigned char *bytes, int len); - -int X509_CRL_set_version(X509_CRL *x, long version); -int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); -int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_sort(X509_CRL *crl); -int X509_CRL_up_ref(X509_CRL *crl); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define X509_CRL_set_lastUpdate X509_CRL_set1_lastUpdate -# define X509_CRL_set_nextUpdate X509_CRL_set1_nextUpdate -#endif - -long X509_CRL_get_version(const X509_CRL *crl); -const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); -const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); -DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl)) -DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl)) -X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); -const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(const X509_CRL *crl); -STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl); -void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -int X509_CRL_get_signature_nid(const X509_CRL *crl); -int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp); - -const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x); -int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); -const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x); -int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); -const STACK_OF(X509_EXTENSION) * -X509_REVOKED_get0_extensions(const X509_REVOKED *r); - -X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, - EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); - -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); - -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); -int X509_chain_check_suiteb(int *perror_depth, - X509 *x, STACK_OF(X509) *chain, - unsigned long flags); -int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); -STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); - -int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_and_serial_hash(X509 *a); - -int X509_issuer_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_name_hash(X509 *a); - -int X509_subject_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_subject_name_hash(X509 *x); - -# ifndef OPENSSL_NO_MD5 -unsigned long X509_issuer_name_hash_old(X509 *a); -unsigned long X509_subject_name_hash_old(X509 *x); -# endif - -int X509_cmp(const X509 *a, const X509 *b); -int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); -unsigned long X509_NAME_hash(X509_NAME *x); -unsigned long X509_NAME_hash_old(X509_NAME *x); - -int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); -int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); -int X509_aux_print(BIO *out, X509 *x, int indent); -# ifndef OPENSSL_NO_STDIO -int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, - unsigned long cflag); -int X509_print_fp(FILE *bp, X509 *x); -int X509_CRL_print_fp(FILE *bp, X509_CRL *x); -int X509_REQ_print_fp(FILE *bp, X509_REQ *req); -int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, - unsigned long flags); -# endif - -int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase); -int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, - unsigned long flags); -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); -int X509_REQ_print(BIO *bp, X509_REQ *req); - -int X509_NAME_entry_count(const X509_NAME *name); -int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); -int X509_NAME_get_text_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, - char *buf, int len); - -/* - * NOTE: you should be passing -1, not 0 as lastpos. The functions that use - * lastpos, search after that position on. - */ -int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); -int X509_NAME_get_index_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, - int lastpos); -X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); -X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); -int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, - int loc, int set); -int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len, int loc, - int set); -int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, - const char *field, int type, - const unsigned char *bytes, - int len); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, - int type, - const unsigned char *bytes, - int len); -int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, - int len); -int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj); -int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, - const unsigned char *bytes, int len); -ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); -ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); -int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne); - -int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, - size_t *pderlen); - -int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); -int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, - int nid, int lastpos); -int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, - const ASN1_OBJECT *obj, int lastpos); -int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, - int crit, int lastpos); -X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); -X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); -STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, - X509_EXTENSION *ex, int loc); - -int X509_get_ext_count(const X509 *x); -int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); -int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos); -int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos); -X509_EXTENSION *X509_get_ext(const X509 *x, int loc); -X509_EXTENSION *X509_delete_ext(X509 *x, int loc); -int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); -void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); -int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_CRL_get_ext_count(const X509_CRL *x); -int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); -int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, - int lastpos); -int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos); -X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); -X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); -int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); -void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); -int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_REVOKED_get_ext_count(const X509_REVOKED *x); -int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos); -int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj, - int lastpos); -int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, - int lastpos); -X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc); -X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); -int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); -void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, - int *idx); -int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, - unsigned long flags); - -X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, - int nid, int crit, - ASN1_OCTET_STRING *data); -X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, - const ASN1_OBJECT *obj, int crit, - ASN1_OCTET_STRING *data); -int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); -int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); -int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); -ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); -ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); -int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); - -int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); -int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, - int lastpos); -int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, - const ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); -X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, - X509_ATTRIBUTE *attr); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) - **x, const ASN1_OBJECT *obj, - int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) - **x, int nid, int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) - **x, const char *attrname, - int type, - const unsigned char *bytes, - int len); -void *X509at_get0_data_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *x, - const ASN1_OBJECT *obj, int lastpos, int type); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, - const ASN1_OBJECT *obj, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, - const char *atrname, int type, - const unsigned char *bytes, - int len); -int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); -int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, - const void *data, int len); -void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, - void *data); -int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr); -ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); -ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); - -int EVP_PKEY_get_attr_count(const EVP_PKEY *key); -int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); -int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); -X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); -int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); -int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, - int nid, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, - const char *attrname, int type, - const unsigned char *bytes, int len); - -int X509_verify_cert(X509_STORE_CTX *ctx); - -/* lookup a cert from a X509 STACK */ -X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk, X509_NAME *name, - ASN1_INTEGER *serial); -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); - -X509_ALGOR *PKCS5_pbe_set(int alg, int iter, - const unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen, - unsigned char *aiv, int prf_nid); - -#ifndef OPENSSL_NO_SCRYPT -X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher, - const unsigned char *salt, int saltlen, - unsigned char *aiv, uint64_t N, uint64_t r, - uint64_t p); -#endif - -X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, - int prf_nid, int keylen); - -/* PKCS#8 utilities */ - -DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) - -EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8); -PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); - -int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, - int version, int ptype, void *pval, - unsigned char *penc, int penclen); -int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8); - -const STACK_OF(X509_ATTRIBUTE) * -PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); -int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, - const unsigned char *bytes, int len); - -int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, - int ptype, void *pval, - unsigned char *penc, int penclen); -int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - X509_ALGOR **pa, X509_PUBKEY *pub); - -int X509_check_trust(X509 *x, int id, int flags); -int X509_TRUST_get_count(void); -X509_TRUST *X509_TRUST_get0(int idx); -int X509_TRUST_get_by_id(int id); -int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), - const char *name, int arg1, void *arg2); -void X509_TRUST_cleanup(void); -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); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/x509_vfy.h b/openSSL/lin32/include/openssl/x509_vfy.h deleted file mode 100644 index 25c79f1..0000000 --- a/openSSL/lin32/include/openssl/x509_vfy.h +++ /dev/null @@ -1,632 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_X509_VFY_H -# define HEADER_X509_VFY_H - -/* - * Protect against recursion, x509.h and x509_vfy.h each include the other. - */ -# ifndef HEADER_X509_H -# include -# endif - -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/*- -SSL_CTX -> X509_STORE - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -SSL -> X509_STORE_CTX - ->X509_STORE - -The X509_STORE holds the tables etc for verification stuff. -A X509_STORE_CTX is used while validating a single certificate. -The X509_STORE has X509_LOOKUPs for looking up certs. -The X509_STORE then calls a function to actually verify the -certificate chain. -*/ - -typedef enum { - X509_LU_NONE = 0, - X509_LU_X509, X509_LU_CRL -} X509_LOOKUP_TYPE; - -#if OPENSSL_API_COMPAT < 0x10100000L -#define X509_LU_RETRY -1 -#define X509_LU_FAIL 0 -#endif - -DEFINE_STACK_OF(X509_LOOKUP) -DEFINE_STACK_OF(X509_OBJECT) -DEFINE_STACK_OF(X509_VERIFY_PARAM) - -int X509_STORE_set_depth(X509_STORE *store, int depth); - -typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *); -typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); -typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, - X509_STORE_CTX *ctx, X509 *x); -typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, - X509 *x, X509 *issuer); -typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); -typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, - X509_CRL **crl, X509 *x); -typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl); -typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, - X509_CRL *crl, X509 *x); -typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx); -typedef STACK_OF(X509) *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx, - X509_NAME *nm); -typedef STACK_OF(X509_CRL) *(*X509_STORE_CTX_lookup_crls_fn)(X509_STORE_CTX *ctx, - X509_NAME *nm); -typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx); - - -void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); - -# define X509_STORE_CTX_set_app_data(ctx,data) \ - X509_STORE_CTX_set_ex_data(ctx,0,data) -# define X509_STORE_CTX_get_app_data(ctx) \ - X509_STORE_CTX_get_ex_data(ctx,0) - -# define X509_L_FILE_LOAD 1 -# define X509_L_ADD_DIR 2 - -# define X509_LOOKUP_load_file(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) - -# define X509_LOOKUP_add_dir(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) - -# define X509_V_OK 0 -# define X509_V_ERR_UNSPECIFIED 1 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 -# define X509_V_ERR_UNABLE_TO_GET_CRL 3 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 -# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 -# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 -# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 -# define X509_V_ERR_CERT_NOT_YET_VALID 9 -# define X509_V_ERR_CERT_HAS_EXPIRED 10 -# define X509_V_ERR_CRL_NOT_YET_VALID 11 -# define X509_V_ERR_CRL_HAS_EXPIRED 12 -# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 -# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 -# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 -# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 -# define X509_V_ERR_OUT_OF_MEM 17 -# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 -# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 -# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 -# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 -# define X509_V_ERR_CERT_REVOKED 23 -# define X509_V_ERR_INVALID_CA 24 -# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 -# define X509_V_ERR_INVALID_PURPOSE 26 -# define X509_V_ERR_CERT_UNTRUSTED 27 -# define X509_V_ERR_CERT_REJECTED 28 -/* These are 'informational' when looking for issuer cert */ -# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 -# define X509_V_ERR_AKID_SKID_MISMATCH 30 -# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 -# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 -# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 -# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 -# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 -# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 -# define X509_V_ERR_INVALID_NON_CA 37 -# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 -# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 -# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 -# define X509_V_ERR_INVALID_EXTENSION 41 -# define X509_V_ERR_INVALID_POLICY_EXTENSION 42 -# define X509_V_ERR_NO_EXPLICIT_POLICY 43 -# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 -# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 -# define X509_V_ERR_UNNESTED_RESOURCE 46 -# define X509_V_ERR_PERMITTED_VIOLATION 47 -# define X509_V_ERR_EXCLUDED_VIOLATION 48 -# define X509_V_ERR_SUBTREE_MINMAX 49 -/* The application is not happy */ -# define X509_V_ERR_APPLICATION_VERIFICATION 50 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 -# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 -# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 -/* Another issuer check debug option */ -# define X509_V_ERR_PATH_LOOP 55 -/* Suite B mode algorithm violation */ -# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 -# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 -# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 -# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 -# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 -# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 -/* Host, email and IP check errors */ -# define X509_V_ERR_HOSTNAME_MISMATCH 62 -# define X509_V_ERR_EMAIL_MISMATCH 63 -# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 -/* DANE TLSA errors */ -# define X509_V_ERR_DANE_NO_MATCH 65 -/* security level errors */ -# define X509_V_ERR_EE_KEY_TOO_SMALL 66 -# define X509_V_ERR_CA_KEY_TOO_SMALL 67 -# define X509_V_ERR_CA_MD_TOO_WEAK 68 -/* Caller error */ -# define X509_V_ERR_INVALID_CALL 69 -/* Issuer lookup error */ -# define X509_V_ERR_STORE_LOOKUP 70 -/* Certificate transparency */ -# 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 */ -# define X509_V_ERR_SIGNATURE_ALGORITHM_MISMATCH 76 -# define X509_V_ERR_NO_ISSUER_PUBLIC_KEY 77 -# define X509_V_ERR_UNSUPPORTED_SIGNATURE_ALGORITHM 78 -# define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 79 - -/* Certificate verify flags */ - -# if OPENSSL_API_COMPAT < 0x10100000L -# define X509_V_FLAG_CB_ISSUER_CHECK 0x0 /* Deprecated */ -# endif -/* Use check time instead of current time */ -# define X509_V_FLAG_USE_CHECK_TIME 0x2 -/* Lookup CRLs */ -# define X509_V_FLAG_CRL_CHECK 0x4 -/* Lookup CRLs for whole chain */ -# define X509_V_FLAG_CRL_CHECK_ALL 0x8 -/* Ignore unhandled critical extensions */ -# define X509_V_FLAG_IGNORE_CRITICAL 0x10 -/* Disable workarounds for broken certificates */ -# define X509_V_FLAG_X509_STRICT 0x20 -/* Enable proxy certificate validation */ -# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 -/* Enable policy checking */ -# define X509_V_FLAG_POLICY_CHECK 0x80 -/* Policy variable require-explicit-policy */ -# define X509_V_FLAG_EXPLICIT_POLICY 0x100 -/* Policy variable inhibit-any-policy */ -# define X509_V_FLAG_INHIBIT_ANY 0x200 -/* Policy variable inhibit-policy-mapping */ -# define X509_V_FLAG_INHIBIT_MAP 0x400 -/* Notify callback that policy is OK */ -# define X509_V_FLAG_NOTIFY_POLICY 0x800 -/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ -# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 -/* Delta CRL support */ -# define X509_V_FLAG_USE_DELTAS 0x2000 -/* Check self-signed CA signature */ -# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 -/* Use trusted store first */ -# define X509_V_FLAG_TRUSTED_FIRST 0x8000 -/* Suite B 128 bit only mode: not normally used */ -# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define X509_V_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define X509_V_FLAG_SUITEB_128_LOS 0x30000 -/* Allow partial chains if at least one certificate is in trusted store */ -# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 -/* - * If the initial chain is not trusted, do not attempt to build an alternative - * chain. Alternate chain checking was introduced in 1.1.0. Setting this flag - * will force the behaviour to match that of previous versions. - */ -# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 -/* Do not check certificate/CRL validity against current time */ -# define X509_V_FLAG_NO_CHECK_TIME 0x200000 - -# define X509_VP_FLAG_DEFAULT 0x1 -# define X509_VP_FLAG_OVERWRITE 0x2 -# define X509_VP_FLAG_RESET_FLAGS 0x4 -# define X509_VP_FLAG_LOCKED 0x8 -# define X509_VP_FLAG_ONCE 0x10 - -/* Internal use: mask of policy related options */ -# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ - | X509_V_FLAG_EXPLICIT_POLICY \ - | X509_V_FLAG_INHIBIT_ANY \ - | X509_V_FLAG_INHIBIT_MAP) - -int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, - X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, - X509_LOOKUP_TYPE type, - X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, - X509_OBJECT *x); -int X509_OBJECT_up_ref_count(X509_OBJECT *a); -X509_OBJECT *X509_OBJECT_new(void); -void X509_OBJECT_free(X509_OBJECT *a); -X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); -X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); -int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); -X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a); -int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); -X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *v); - -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); -STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx); - -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); -#define X509_STORE_set_verify_func(ctx, func) \ - X509_STORE_set_verify((ctx),(func)) -void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, - X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, - X509_STORE_CTX_verify_cb verify_cb); -# define X509_STORE_set_verify_cb_func(ctx,func) \ - X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, - X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, - X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, - X509_STORE_CTX_check_revocation_fn check_revocation); -X509_STORE_CTX_check_revocation_fn X509_STORE_get_check_revocation(X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, - X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, - X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, - X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, - X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, - X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, - X509_STORE_CTX_lookup_crls_fn lookup_crls); -#define X509_STORE_set_lookup_crls_cb(ctx, func) \ - X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, - X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(X509_STORE *ctx); - -#define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(X509_STORE *ctx, int idx); - -X509_STORE_CTX *X509_STORE_CTX_new(void); - -int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); - -void X509_STORE_CTX_free(X509_STORE_CTX *ctx); -int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, - X509 *x509, STACK_OF(X509) *chain); -void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); - -X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); -X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx); -STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, - X509_STORE_CTX_verify_cb verify); -X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(X509_STORE_CTX *ctx); -X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(X509_STORE_CTX *ctx); -X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(X509_STORE_CTX *ctx); -X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(X509_STORE_CTX *ctx); -X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(X509_STORE_CTX *ctx); -X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(X509_STORE_CTX *ctx); -X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX *ctx); - -#if OPENSSL_API_COMPAT < 0x10100000L -# define X509_STORE_CTX_get_chain X509_STORE_CTX_get0_chain -# 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 - -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); -X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); -X509_LOOKUP_METHOD *X509_LOOKUP_file(void); - -typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); -typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - X509_NAME *name, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - X509_NAME *name, - ASN1_INTEGER *serial, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const unsigned char* bytes, - int len, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const char *str, - int len, - X509_OBJECT *ret); - -X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name); -void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, - int (*new_item) (X509_LOOKUP *ctx)); -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_fn) (X509_LOOKUP *ctx)); -void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, - int (*init) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, - int (*shutdown) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, - X509_LOOKUP_ctrl_fn ctrl_fn); -X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_subject_fn fn); -X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_issuer_serial_fn fn); -X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_fingerprint_fn fn); -X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_alias_fn fn); -X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( - const X509_LOOKUP_METHOD *method); - - -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); - -int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, - X509_NAME *name, X509_OBJECT *ret); -X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, - X509_LOOKUP_TYPE type, - X509_NAME *name); - -int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); - -int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); - -X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); -void X509_LOOKUP_free(X509_LOOKUP *ctx); -int X509_LOOKUP_init(X509_LOOKUP *ctx); -int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - X509_NAME *name, X509_OBJECT *ret); -int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - X509_NAME *name, ASN1_INTEGER *serial, - X509_OBJECT *ret); -int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const unsigned char *bytes, int len, - X509_OBJECT *ret); -int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const char *str, int len, X509_OBJECT *ret); -int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data); -void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); -X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); -int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); - -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); - -#define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) -int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); -void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); -int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); -int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth); -X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x); -X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); -X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); -void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); -void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk); -int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); -int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); -int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, - int purpose, int trust); -void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); -void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, - time_t t); - -X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_num_untrusted(X509_STORE_CTX *ctx); - -X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); -int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); - -/* - * Bridge opacity barrier between libcrypt and libssl, also needed to support - * offline testing in test/danetest.c - */ -void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane); -#define DANE_FLAG_NO_DANE_EE_NAMECHECKS (1L << 0) - -/* X509_VERIFY_PARAM functions */ - -X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); -void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); -int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); -int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); -void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); -void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); -time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); -void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); -int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, - ASN1_OBJECT *policy); -int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, - STACK_OF(ASN1_OBJECT) *policies); - -int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, - uint32_t flags); -uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); - -int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, - unsigned int flags); -unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); -char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); -void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); -int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, - const char *email, size_t emaillen); -int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, - const unsigned char *ip, size_t iplen); -int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, - const char *ipasc); - -int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); -const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); - -int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_count(void); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); -void X509_VERIFY_PARAM_table_cleanup(void); - -/* Non positive return values are errors */ -#define X509_PCY_TREE_FAILURE -2 /* Failure to satisfy explicit policy */ -#define X509_PCY_TREE_INVALID -1 /* Inconsistent or invalid extensions */ -#define X509_PCY_TREE_INTERNAL 0 /* Internal error, most likely malloc */ - -/* - * Positive return values form a bit mask, all but the first are internal to - * the library and don't appear in results from X509_policy_check(). - */ -#define X509_PCY_TREE_VALID 1 /* The policy tree is valid */ -#define X509_PCY_TREE_EMPTY 2 /* The policy tree is empty */ -#define X509_PCY_TREE_EXPLICIT 4 /* Explicit policy required */ - -int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, - STACK_OF(X509) *certs, - STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); - -void X509_policy_tree_free(X509_POLICY_TREE *tree); - -int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); -X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, - int i); - -STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_policies(const - X509_POLICY_TREE - *tree); - -STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_user_policies(const - X509_POLICY_TREE - *tree); - -int X509_policy_level_node_count(X509_POLICY_LEVEL *level); - -X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, - int i); - -const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); - -STACK_OF(POLICYQUALINFO) *X509_policy_node_get0_qualifiers(const - X509_POLICY_NODE - *node); -const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE - *node); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin32/include/openssl/x509err.h b/openSSL/lin32/include/openssl/x509err.h deleted file mode 100644 index cd08673..0000000 --- a/openSSL/lin32/include/openssl/x509err.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# include - -# 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_GET 161 -# 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_ATTRIBUTES 138 -# 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/openSSL/lin32/include/openssl/x509v3.h b/openSSL/lin32/include/openssl/x509v3.h deleted file mode 100644 index 90fa359..0000000 --- a/openSSL/lin32/include/openssl/x509v3.h +++ /dev/null @@ -1,938 +0,0 @@ -/* - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_X509V3_H -# define HEADER_X509V3_H - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward reference */ -struct v3_ext_method; -struct v3_ext_ctx; - -/* Useful typedefs */ - -typedef void *(*X509V3_EXT_NEW)(void); -typedef void (*X509V3_EXT_FREE) (void *); -typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); -typedef int (*X509V3_EXT_I2D) (void *, unsigned char **); -typedef STACK_OF(CONF_VALUE) * - (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, - STACK_OF(CONF_VALUE) *extlist); -typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, - STACK_OF(CONF_VALUE) *values); -typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, - void *ext); -typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); -typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, - BIO *out, int indent); -typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); - -/* V3 extension structure */ - -struct v3_ext_method { - int ext_nid; - int ext_flags; -/* If this is set the following four fields are ignored */ - ASN1_ITEM_EXP *it; -/* Old style ASN1 calls */ - X509V3_EXT_NEW ext_new; - X509V3_EXT_FREE ext_free; - X509V3_EXT_D2I d2i; - X509V3_EXT_I2D i2d; -/* The following pair is used for string extensions */ - X509V3_EXT_I2S i2s; - X509V3_EXT_S2I s2i; -/* The following pair is used for multi-valued extensions */ - X509V3_EXT_I2V i2v; - X509V3_EXT_V2I v2i; -/* The following are used for raw extensions */ - X509V3_EXT_I2R i2r; - X509V3_EXT_R2I r2i; - void *usr_data; /* Any extension specific data */ -}; - -typedef struct X509V3_CONF_METHOD_st { - char *(*get_string) (void *db, const char *section, const char *value); - STACK_OF(CONF_VALUE) *(*get_section) (void *db, const char *section); - void (*free_string) (void *db, char *string); - void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); -} X509V3_CONF_METHOD; - -/* Context specific info */ -struct v3_ext_ctx { -# define CTX_TEST 0x1 -# define X509V3_CTX_REPLACE 0x2 - int flags; - X509 *issuer_cert; - X509 *subject_cert; - X509_REQ *subject_req; - X509_CRL *crl; - X509V3_CONF_METHOD *db_meth; - void *db; -/* Maybe more here */ -}; - -typedef struct v3_ext_method X509V3_EXT_METHOD; - -DEFINE_STACK_OF(X509V3_EXT_METHOD) - -/* ext_flags values */ -# define X509V3_EXT_DYNAMIC 0x1 -# define X509V3_EXT_CTX_DEP 0x2 -# define X509V3_EXT_MULTILINE 0x4 - -typedef BIT_STRING_BITNAME ENUMERATED_NAMES; - -typedef struct BASIC_CONSTRAINTS_st { - int ca; - ASN1_INTEGER *pathlen; -} BASIC_CONSTRAINTS; - -typedef struct PKEY_USAGE_PERIOD_st { - ASN1_GENERALIZEDTIME *notBefore; - ASN1_GENERALIZEDTIME *notAfter; -} PKEY_USAGE_PERIOD; - -typedef struct otherName_st { - ASN1_OBJECT *type_id; - ASN1_TYPE *value; -} OTHERNAME; - -typedef struct EDIPartyName_st { - ASN1_STRING *nameAssigner; - ASN1_STRING *partyName; -} EDIPARTYNAME; - -typedef struct GENERAL_NAME_st { -# define GEN_OTHERNAME 0 -# define GEN_EMAIL 1 -# define GEN_DNS 2 -# define GEN_X400 3 -# define GEN_DIRNAME 4 -# define GEN_EDIPARTY 5 -# define GEN_URI 6 -# define GEN_IPADD 7 -# define GEN_RID 8 - int type; - union { - char *ptr; - OTHERNAME *otherName; /* otherName */ - ASN1_IA5STRING *rfc822Name; - ASN1_IA5STRING *dNSName; - ASN1_TYPE *x400Address; - X509_NAME *directoryName; - EDIPARTYNAME *ediPartyName; - ASN1_IA5STRING *uniformResourceIdentifier; - ASN1_OCTET_STRING *iPAddress; - ASN1_OBJECT *registeredID; - /* Old names */ - ASN1_OCTET_STRING *ip; /* iPAddress */ - X509_NAME *dirn; /* dirn */ - ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, - * uniformResourceIdentifier */ - ASN1_OBJECT *rid; /* registeredID */ - ASN1_TYPE *other; /* x400Address */ - } d; -} GENERAL_NAME; - -typedef struct ACCESS_DESCRIPTION_st { - ASN1_OBJECT *method; - GENERAL_NAME *location; -} ACCESS_DESCRIPTION; - -typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; - -typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; - -typedef STACK_OF(ASN1_INTEGER) TLS_FEATURE; - -DEFINE_STACK_OF(GENERAL_NAME) -typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; -DEFINE_STACK_OF(GENERAL_NAMES) - -DEFINE_STACK_OF(ACCESS_DESCRIPTION) - -typedef struct DIST_POINT_NAME_st { - int type; - union { - GENERAL_NAMES *fullname; - STACK_OF(X509_NAME_ENTRY) *relativename; - } name; -/* If relativename then this contains the full distribution point name */ - X509_NAME *dpname; -} DIST_POINT_NAME; -/* All existing reasons */ -# define CRLDP_ALL_REASONS 0x807f - -# define CRL_REASON_NONE -1 -# define CRL_REASON_UNSPECIFIED 0 -# define CRL_REASON_KEY_COMPROMISE 1 -# define CRL_REASON_CA_COMPROMISE 2 -# define CRL_REASON_AFFILIATION_CHANGED 3 -# define CRL_REASON_SUPERSEDED 4 -# define CRL_REASON_CESSATION_OF_OPERATION 5 -# define CRL_REASON_CERTIFICATE_HOLD 6 -# define CRL_REASON_REMOVE_FROM_CRL 8 -# define CRL_REASON_PRIVILEGE_WITHDRAWN 9 -# define CRL_REASON_AA_COMPROMISE 10 - -struct DIST_POINT_st { - DIST_POINT_NAME *distpoint; - ASN1_BIT_STRING *reasons; - GENERAL_NAMES *CRLissuer; - int dp_reasons; -}; - -typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; - -DEFINE_STACK_OF(DIST_POINT) - -struct AUTHORITY_KEYID_st { - ASN1_OCTET_STRING *keyid; - GENERAL_NAMES *issuer; - ASN1_INTEGER *serial; -}; - -/* Strong extranet structures */ - -typedef struct SXNET_ID_st { - ASN1_INTEGER *zone; - ASN1_OCTET_STRING *user; -} SXNETID; - -DEFINE_STACK_OF(SXNETID) - -typedef struct SXNET_st { - ASN1_INTEGER *version; - STACK_OF(SXNETID) *ids; -} SXNET; - -typedef struct NOTICEREF_st { - ASN1_STRING *organization; - STACK_OF(ASN1_INTEGER) *noticenos; -} NOTICEREF; - -typedef struct USERNOTICE_st { - NOTICEREF *noticeref; - ASN1_STRING *exptext; -} USERNOTICE; - -typedef struct POLICYQUALINFO_st { - ASN1_OBJECT *pqualid; - union { - ASN1_IA5STRING *cpsuri; - USERNOTICE *usernotice; - ASN1_TYPE *other; - } d; -} POLICYQUALINFO; - -DEFINE_STACK_OF(POLICYQUALINFO) - -typedef struct POLICYINFO_st { - ASN1_OBJECT *policyid; - STACK_OF(POLICYQUALINFO) *qualifiers; -} POLICYINFO; - -typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; - -DEFINE_STACK_OF(POLICYINFO) - -typedef struct POLICY_MAPPING_st { - ASN1_OBJECT *issuerDomainPolicy; - ASN1_OBJECT *subjectDomainPolicy; -} POLICY_MAPPING; - -DEFINE_STACK_OF(POLICY_MAPPING) - -typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; - -typedef struct GENERAL_SUBTREE_st { - GENERAL_NAME *base; - ASN1_INTEGER *minimum; - ASN1_INTEGER *maximum; -} GENERAL_SUBTREE; - -DEFINE_STACK_OF(GENERAL_SUBTREE) - -struct NAME_CONSTRAINTS_st { - STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; - STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; -}; - -typedef struct POLICY_CONSTRAINTS_st { - ASN1_INTEGER *requireExplicitPolicy; - ASN1_INTEGER *inhibitPolicyMapping; -} POLICY_CONSTRAINTS; - -/* Proxy certificate structures, see RFC 3820 */ -typedef struct PROXY_POLICY_st { - ASN1_OBJECT *policyLanguage; - ASN1_OCTET_STRING *policy; -} PROXY_POLICY; - -typedef struct PROXY_CERT_INFO_EXTENSION_st { - ASN1_INTEGER *pcPathLengthConstraint; - PROXY_POLICY *proxyPolicy; -} PROXY_CERT_INFO_EXTENSION; - -DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) -DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) - -struct ISSUING_DIST_POINT_st { - DIST_POINT_NAME *distpoint; - int onlyuser; - int onlyCA; - ASN1_BIT_STRING *onlysomereasons; - int indirectCRL; - int onlyattr; -}; - -/* Values in idp_flags field */ -/* IDP present */ -# define IDP_PRESENT 0x1 -/* IDP values inconsistent */ -# define IDP_INVALID 0x2 -/* onlyuser true */ -# define IDP_ONLYUSER 0x4 -/* onlyCA true */ -# define IDP_ONLYCA 0x8 -/* onlyattr true */ -# define IDP_ONLYATTR 0x10 -/* indirectCRL true */ -# define IDP_INDIRECT 0x20 -/* 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_set_ctx_test(ctx) \ - X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST) -# define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; - -# define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ - 0,0,0,0, \ - 0,0, \ - (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ - (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ - NULL, NULL, \ - table} - -# define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ - 0,0,0,0, \ - (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ - (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ - 0,0,0,0, \ - NULL} - -# define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - -/* X509_PURPOSE stuff */ - -# define EXFLAG_BCONS 0x1 -# define EXFLAG_KUSAGE 0x2 -# define EXFLAG_XKUSAGE 0x4 -# define EXFLAG_NSCERT 0x8 - -# define EXFLAG_CA 0x10 -/* Really self issued not necessarily self signed */ -# define EXFLAG_SI 0x20 -# define EXFLAG_V1 0x40 -# define EXFLAG_INVALID 0x80 -/* EXFLAG_SET is set to indicate that some values have been precomputed */ -# define EXFLAG_SET 0x100 -# define EXFLAG_CRITICAL 0x200 -# define EXFLAG_PROXY 0x400 - -# define EXFLAG_INVALID_POLICY 0x800 -# define EXFLAG_FRESHEST 0x1000 -# define EXFLAG_SS 0x2000 /* cert is apparently self-signed */ - -# define EXFLAG_NO_FINGERPRINT 0x100000 - -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 - -# define NS_SSL_CLIENT 0x80 -# define NS_SSL_SERVER 0x40 -# define NS_SMIME 0x20 -# define NS_OBJSIGN 0x10 -# define NS_SSL_CA 0x04 -# define NS_SMIME_CA 0x02 -# define NS_OBJSIGN_CA 0x01 -# define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) - -# define XKU_SSL_SERVER 0x1 -# define XKU_SSL_CLIENT 0x2 -# define XKU_SMIME 0x4 -# define XKU_CODE_SIGN 0x8 -# define XKU_SGC 0x10 -# define XKU_OCSP_SIGN 0x20 -# define XKU_TIMESTAMP 0x40 -# define XKU_DVCS 0x80 -# define XKU_ANYEKU 0x100 - -# define X509_PURPOSE_DYNAMIC 0x1 -# define X509_PURPOSE_DYNAMIC_NAME 0x2 - -typedef struct x509_purpose_st { - int purpose; - int trust; /* Default trust ID */ - int flags; - int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); - char *name; - char *sname; - void *usr_data; -} X509_PURPOSE; - -# define X509_PURPOSE_SSL_CLIENT 1 -# define X509_PURPOSE_SSL_SERVER 2 -# define X509_PURPOSE_NS_SSL_SERVER 3 -# define X509_PURPOSE_SMIME_SIGN 4 -# define X509_PURPOSE_SMIME_ENCRYPT 5 -# define X509_PURPOSE_CRL_SIGN 6 -# define X509_PURPOSE_ANY 7 -# define X509_PURPOSE_OCSP_HELPER 8 -# define X509_PURPOSE_TIMESTAMP_SIGN 9 - -# define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 - -/* Flags for X509V3_EXT_print() */ - -# define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) -/* Return error for unknown extensions */ -# define X509V3_EXT_DEFAULT 0 -/* Print error for unknown extensions */ -# define X509V3_EXT_ERROR_UNKNOWN (1L << 16) -/* ASN1 parse unknown extensions */ -# define X509V3_EXT_PARSE_UNKNOWN (2L << 16) -/* BIO_dump unknown extensions */ -# define X509V3_EXT_DUMP_UNKNOWN (3L << 16) - -/* Flags for X509V3_add1_i2d */ - -# define X509V3_ADD_OP_MASK 0xfL -# define X509V3_ADD_DEFAULT 0L -# define X509V3_ADD_APPEND 1L -# define X509V3_ADD_REPLACE 2L -# define X509V3_ADD_REPLACE_EXISTING 3L -# define X509V3_ADD_KEEP_EXISTING 4L -# define X509V3_ADD_DELETE 5L -# define X509V3_ADD_SILENT 0x10 - -DEFINE_STACK_OF(X509_PURPOSE) - -DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) - -DECLARE_ASN1_FUNCTIONS(SXNET) -DECLARE_ASN1_FUNCTIONS(SXNETID) - -int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int userlen); -int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user, - int userlen); -int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, const char *user, - int userlen); - -ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone); -ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); -ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); - -DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) - -DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) -GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a); -int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); - -ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, - STACK_OF(CONF_VALUE) *nval); -STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - ASN1_BIT_STRING *bits, - STACK_OF(CONF_VALUE) *extlist); -char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); -ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, - GENERAL_NAME *gen, - STACK_OF(CONF_VALUE) *ret); -int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, - GENERAL_NAMES *gen, - STACK_OF(CONF_VALUE) *extlist); -GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); - -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(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(const GENERAL_NAME *gen, - ASN1_OBJECT **poid, ASN1_TYPE **pvalue); - -char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - const ASN1_OCTET_STRING *ia5); -ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); - -DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) -int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TLS_FEATURE) - -DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) -DECLARE_ASN1_FUNCTIONS(POLICYINFO) -DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) -DECLARE_ASN1_FUNCTIONS(USERNOTICE) -DECLARE_ASN1_FUNCTIONS(NOTICEREF) - -DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) -DECLARE_ASN1_FUNCTIONS(DIST_POINT) -DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) -DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) - -int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname); - -int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); -int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc); - -DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) -DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) - -DECLARE_ASN1_ITEM(POLICY_MAPPING) -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) -DECLARE_ASN1_ITEM(POLICY_MAPPINGS) - -DECLARE_ASN1_ITEM(GENERAL_SUBTREE) -DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) - -DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) -DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) - -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) -DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) - -GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, int gen_type, - const char *value, int is_nc); - -# ifdef HEADER_CONF_H -GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf); -GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf, - int is_nc); -void X509V3_conf_free(CONF_VALUE *val); - -X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, - const char *value); -X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, - const char *value); -int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, - STACK_OF(X509_EXTENSION) **sk); -int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509 *cert); -int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509_REQ *req); -int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509_CRL *crl); - -X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, - X509V3_CTX *ctx, int ext_nid, - const char *value); -X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *name, const char *value); -int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509 *cert); -int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509_REQ *req); -int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509_CRL *crl); - -int X509V3_add_value_bool_nf(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool); -int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint); -void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); -void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); -# endif - -char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section); -STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section); -void X509V3_string_free(X509V3_CTX *ctx, char *str); -void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); -void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, - X509_REQ *req, X509_CRL *crl, int flags); - -int X509V3_add_value(const char *name, const char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_uchar(const char *name, const unsigned char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_bool(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, - STACK_OF(CONF_VALUE) **extlist); -char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); -ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); -char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); -char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, - const ASN1_ENUMERATED *aint); -int X509V3_EXT_add(X509V3_EXT_METHOD *ext); -int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); -int X509V3_EXT_add_alias(int nid_to, int nid_from); -void X509V3_EXT_cleanup(void); - -const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); -const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); -int X509V3_add_standard_extensions(void); -STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); -void *X509V3_EXT_d2i(X509_EXTENSION *ext); -void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, - int *idx); - -X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); -int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, - int crit, unsigned long flags); - -#if OPENSSL_API_COMPAT < 0x10100000L -/* The new declarations are in crypto.h, but the old ones were here. */ -# define hex_to_string OPENSSL_buf2hexstr -# define string_to_hex OPENSSL_hexstr2buf -#endif - -void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, - int ml); -int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, - int indent); -#ifndef OPENSSL_NO_STDIO -int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); -#endif -int X509V3_extensions_print(BIO *out, const char *title, - const STACK_OF(X509_EXTENSION) *exts, - unsigned long flag, int indent); - -int X509_check_ca(X509 *x); -int X509_check_purpose(X509 *x, int id, int ca); -int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); -int X509_check_issued(X509 *issuer, X509 *subject); -int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid); -void X509_set_proxy_flag(X509 *x); -void X509_set_proxy_pathlen(X509 *x, long l); -long X509_get_proxy_pathlen(X509 *x); - -uint32_t X509_get_extension_flags(X509 *x); -uint32_t X509_get_key_usage(X509 *x); -uint32_t X509_get_extended_key_usage(X509 *x); -const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x); -const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x); -const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); -const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); - -int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); -int X509_PURPOSE_get_by_sname(const char *sname); -int X509_PURPOSE_get_by_id(int id); -int X509_PURPOSE_add(int id, int trust, int flags, - int (*ck) (const X509_PURPOSE *, const X509 *, int), - const char *name, const char *sname, void *arg); -char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); -char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); -int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); - -STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); -STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); -void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); -STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); -/* Flags for X509_check_* functions */ - -/* - * Always check subject name for host match even if subject alt names present - */ -# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 -/* Disable wildcard matching for dnsName fields and common name. */ -# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 -/* Wildcards must not match a partial label. */ -# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 -/* Allow (non-partial) wildcards to match multiple labels. */ -# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 -/* Constraint verifier subdomain patterns to match a single labels. */ -# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 -/* Never check the subject CN */ -# define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20 -/* - * Match reference identifiers starting with "." to any sub-domain. - * This is a non-public flag, turned on implicitly when the subject - * reference identity is a DNS name. - */ -# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 - -int X509_check_host(X509 *x, const char *chk, size_t chklen, - unsigned int flags, char **peername); -int X509_check_email(X509 *x, const char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); - -ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); -ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); -int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, - unsigned long chtype); - -void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); -DEFINE_STACK_OF(X509_POLICY_NODE) - -#ifndef OPENSSL_NO_RFC3779 -typedef struct ASRange_st { - ASN1_INTEGER *min, *max; -} ASRange; - -# define ASIdOrRange_id 0 -# define ASIdOrRange_range 1 - -typedef struct ASIdOrRange_st { - int type; - union { - ASN1_INTEGER *id; - ASRange *range; - } u; -} ASIdOrRange; - -typedef STACK_OF(ASIdOrRange) ASIdOrRanges; -DEFINE_STACK_OF(ASIdOrRange) - -# define ASIdentifierChoice_inherit 0 -# define ASIdentifierChoice_asIdsOrRanges 1 - -typedef struct ASIdentifierChoice_st { - int type; - union { - ASN1_NULL *inherit; - ASIdOrRanges *asIdsOrRanges; - } u; -} ASIdentifierChoice; - -typedef struct ASIdentifiers_st { - ASIdentifierChoice *asnum, *rdi; -} ASIdentifiers; - -DECLARE_ASN1_FUNCTIONS(ASRange) -DECLARE_ASN1_FUNCTIONS(ASIdOrRange) -DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) -DECLARE_ASN1_FUNCTIONS(ASIdentifiers) - -typedef struct IPAddressRange_st { - ASN1_BIT_STRING *min, *max; -} IPAddressRange; - -# define IPAddressOrRange_addressPrefix 0 -# define IPAddressOrRange_addressRange 1 - -typedef struct IPAddressOrRange_st { - int type; - union { - ASN1_BIT_STRING *addressPrefix; - IPAddressRange *addressRange; - } u; -} IPAddressOrRange; - -typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; -DEFINE_STACK_OF(IPAddressOrRange) - -# define IPAddressChoice_inherit 0 -# define IPAddressChoice_addressesOrRanges 1 - -typedef struct IPAddressChoice_st { - int type; - union { - ASN1_NULL *inherit; - IPAddressOrRanges *addressesOrRanges; - } u; -} IPAddressChoice; - -typedef struct IPAddressFamily_st { - ASN1_OCTET_STRING *addressFamily; - IPAddressChoice *ipAddressChoice; -} IPAddressFamily; - -typedef STACK_OF(IPAddressFamily) IPAddrBlocks; -DEFINE_STACK_OF(IPAddressFamily) - -DECLARE_ASN1_FUNCTIONS(IPAddressRange) -DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) -DECLARE_ASN1_FUNCTIONS(IPAddressChoice) -DECLARE_ASN1_FUNCTIONS(IPAddressFamily) - -/* - * API tag for elements of the ASIdentifer SEQUENCE. - */ -# define V3_ASID_ASNUM 0 -# define V3_ASID_RDI 1 - -/* - * AFI values, assigned by IANA. It'd be nice to make the AFI - * handling code totally generic, but there are too many little things - * that would need to be defined for other address families for it to - * be worth the trouble. - */ -# define IANA_AFI_IPV4 1 -# define IANA_AFI_IPV6 2 - -/* - * Utilities to construct and extract values from RFC3779 extensions, - * since some of the encodings (particularly for IP address prefixes - * and ranges) are a bit tedious to work with directly. - */ -int X509v3_asid_add_inherit(ASIdentifiers *asid, int which); -int X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, - ASN1_INTEGER *min, ASN1_INTEGER *max); -int X509v3_addr_add_inherit(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi); -int X509v3_addr_add_prefix(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *a, const int prefixlen); -int X509v3_addr_add_range(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *min, unsigned char *max); -unsigned X509v3_addr_get_afi(const IPAddressFamily *f); -int X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, - unsigned char *min, unsigned char *max, - const int length); - -/* - * Canonical forms. - */ -int X509v3_asid_is_canonical(ASIdentifiers *asid); -int X509v3_addr_is_canonical(IPAddrBlocks *addr); -int X509v3_asid_canonize(ASIdentifiers *asid); -int X509v3_addr_canonize(IPAddrBlocks *addr); - -/* - * Tests for inheritance and containment. - */ -int X509v3_asid_inherits(ASIdentifiers *asid); -int X509v3_addr_inherits(IPAddrBlocks *addr); -int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); -int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); - -/* - * Check whether RFC 3779 extensions nest properly in chains. - */ -int X509v3_asid_validate_path(X509_STORE_CTX *); -int X509v3_addr_validate_path(X509_STORE_CTX *); -int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain, - ASIdentifiers *ext, - int allow_inheritance); -int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, - IPAddrBlocks *ext, int allow_inheritance); - -#endif /* OPENSSL_NO_RFC3779 */ - -DEFINE_STACK_OF(ASN1_STRING) - -/* - * 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; - -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); - -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 -} -# endif -#endif diff --git a/openSSL/lin32/include/openssl/x509v3err.h b/openSSL/lin32/include/openssl/x509v3err.h deleted file mode 100644 index 3b9f713..0000000 --- a/openSSL/lin32/include/openssl/x509v3err.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_I2V_AUTHORITY_KEYID 173 -# 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_LEN_VALUE 174 -# 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/openSSL/lin32/libcrypto.so.1.1 b/openSSL/lin32/libcrypto.so.1.1 deleted file mode 100755 index e8502fc099f8aae438060cc718051595c3c3d1d6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3324260 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�J3|5f6mq7<9gA^O`VJKrxQmh{iuvDe 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

w9HkOf}H0tG_rM|07Zj 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

p8l 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 c|E;Ug*1wli6A1)SMFR1Cx zZ3d@W?FTvJe!~GRm*l~TEVQw;e+uHCf;R4(cD$W8-(G>0n=8avAZpUbwu0uOQgceL zH(K^<#4A%y%0w5R9P3T;(XchD!~S&jZZEli>BYPNdwH;4b((#%C}FUb(q_ua`KQ^dcZy zo`WVl%#(y56)uG%7ab_H;*TvNnP&ZJsOGmB80@`N!pyg{YY^SF<2$!^zh-5EYQ_yF z=IG&;89nT2+Ii9_Bc1BM$z0;Z)`uxp__cBMAQf~()cpcPhfQqN%3$} zRu)@6G!EpH!>QC9o}>`Y!D(AM$4UjvFX0T&=}{&{0|sNHvIgLeqrdfh8Q=am zD43xm7HPzvAmlfcW&B{sXTuM7R7O zWyob{%qO%BffSxntKD(-+0Q8i&8~0OLACuI55IB3V3@hUZi*~@>@lV48nNWUHp}qz zKOF-B&8*O!E~CU$Np+B{ejdY+t5vWx4c3{pK-%3fS78QRI9Jio;W|!KaJjm$WVWeb>3PX?#c-fYUuon+97ZHMKoqVbN zo8#*ZL>`<8DGuu3cK6{q{3@-W2C0!@RsT@YZnyal4v@vcTzxvXe;L6Giw z+B%VX_S@s?kw|w+qpO^mNgv70=Pu*tcx?w8#t2B*ApaSPa~;N^)Ri;$MXTxsKHuJG zvbOJWw9yGmLl!j}w##^9%AT6zhO&-(Xo;s>(*_}kl-{ASI_S6hSjETz`c~u)YwKNS z^kdXS;^#vC30U9R9k&#btcXeWd;^jZv}R~*lqw>xrm-n1uHC3*lmLPAjD@Mpufz+|kl3TjG|1%0aakI7+0_4y;}2L}MGc zf!1jpnZ?`P7{P5QeKt~psu~aho$-4KX;!f@qf|Ur`GSlFS~4xbe14H_b9;P63oI&6 zJnCyJgm$ZqOk8B6m!DQ31^L1t^U!L4eG>d2QeFR&uTFoDFVJ%aBMHtCz#B+?5m5#X z1(nJ|afhR$!6*2!B$7Cl_K!PobQzlnvq|Y!)XrPotCc3{a3Sv&-8PBkp0C9y4AW<1 zy!#jz6&|Ozay|VJT%y6hVtFg4xgT@p5!k$RY(Ch2HqiiJ1y+f9sa#;*yB0ip`T~3 zt9iUx`KR9~b?P*0CEiIJ2bCE|hDLj6FmUXg1-8imXb?-pf|O8t-6+Z5-KuSVZTz_x;l}?yKgR@`Q$)XGI7HX0B>gqI5>u0)l6gU}Rk%tmihi z%`qr=lg(7=Lc6rH6><_Wg%xNzF*Vl74L_huHUrxIde+Vi^%NssW(YBV=owzI*R2gYFwv2 zm?Zt#J1tD&js;uYM-LfVVwBcyMcA1`c%ZT0Xo^;-`z}&W`XTIM6!nnXi~^_sDI&N) zhgjN9{j2MuK+gPFMmIkMPBwN#Jp5F+Z%bxsN_dYmh6m(4wGW0aA$~;87@RI=m;mmnHP^LsP8w-t`}*YSrTrGD${TR%i#? z1Fga}7LNhUiqZ^gvSM?YwRG`IF1(KIz*Sa2t|an)AG)2y(P`7VA%peAzj&5(q1cQy zx}TsAwQ90*Qu+dMyLn-~sqP|t#jI;mXRE~0jV2r`uMDKlwGo+3B57#g#y*5S>#fOK zwY0hhn+md2iSn>tL9~k@F)5T%9;d{@m$`J6qcHmdcL7f_12m6OEf8Vu#V?6MJihH_ zrg{*@27a>)h&6^{m z<{94Ve4K+wOA`I#%NuYlpDYuChiJ-RUcfG3-tudB3S+9An_*+e449H=$3y^Xc0-_H zd^chm)SFmY<*s;nfbex_o~r`50L3#6>amdz7gv@ejW$h*ltRg2ZuXxy?xjmT1_N-&C7VHJzNnETG_CB#6E-E;t}a>ii;#D9eza{1zKyD93>TmTtAgW)lWQ2Qn3qa zv#w4X63-TR*UK_PIf(RLCMoBW2pJTJk5rKpwpY=I)SdV2n<8tGd7W%BM@o5BeXNI= zS(l}8yuTapZ@Ynx!tZ=zFMv0;#jaUiS6&}F~N!#kFV{y4G&B_{N;g!DOWG=^96=C7|MGq=Eh4_31u2Y24=kANYdUB&z@xl^7 zoRi@Mf!@Zbu1{PslgAMqiExG0Z>v}zKXyfa8PIIOL8)X4d9~o4yiX7eto&51&$!V2 zo9*gU1;0;`y%tJWsoFTXKn-JPgMI8A=6{^*7ETM$k+duXWw;XGKmTe7PG#Q-rRuS) zsb|u=b5YVaa{NDO;y(eDI`<YcYY zOY$prBKNO~Uma_*6P|?iyl$;#TpL{yu;ECQgPVj}smBJ-Pc zpv5KAM9C+7x&i(&BlnPyybZ0MB6r36@($YNe6+jm)cvsgN=zy;ErHGNbUbRB43$_V z&^ok)kEQRek=HG*VXvJ(1E{N{X4G>!gbhq;%DoIc+#NUS=30LhzMaR;y+)VQ2N{B| zSUEYBT}zG|>GAfdv;5}ZXe_(>*_**>^IDH*)tnI?0w5s%OUa937n=Gn8LR;xAfc@RUxz+A z(1Q~fQ$YSEnL_$hsDgQ?M9`jDWOwXv4$Zl-!s0oTx6##SpRilmP>UDryn|#lszX0a zj8=noqH-|j=%0u+j*Ss9j#6MbBb_>(1(> zxe$X?dHBy~f*tD4hR?&4@aXh_i-eX2F63Atm_i!2j9oAlgXkC3xOk&ZJ9pK5?!4`@MJ ze%RtNP{N2{%Ht!3|J)22ySf3RL5c8rRe7eQW_w27tgf-%;U0}*!Pe_JFC9=PQ_1SK z(~+Cq!Dx)O;a;EWzL<#XsCV{hWUHC;dI~0Xfj`)prU7g06bO*9b{0CzGz*a?>Fnja*4*%^{qpI|p`Cv+4GJof|HL@> zo-uewzdt8&;d(Pjk?4*ZX3wEv!eTIdX*D5do2MLd2G}T+Zf)=)g|uvm=q@_N+~ea6 zin<(EhVNBsBw1c=N4TxU5dXd{lL`J80~Sq6niV*dI2c8z&*T=c*7Vw z$OxTg4@k%(kyl~y^8r2zqfBfxTbMvcLc!};SpOeOU-2m}es&dB7o6u+2_g!j*uU9C zNvR~)PZ9*87#!SGz#=C+>mLHHvoo@ygd=vwE0j~Nd+xh|WQsrFb!#luV690E_+?}o zgU7kq0bAa%cAFdxi7nL$$EmvtR9w_szr0=mDGM+eb7uWN+teG>z$e~GkY8noJj6rL zNp@s8h}RDMCsMJE&?hN`<4L&;ElzWlSEvV|;agg^yrF;nOPo!83|vf0LU6+h!HE*J zMg%-oCB~0QeLL~Z{J5rOvBIOLn3E3M&CcI{XkO~_g<+4@BeY*H_;^PZSuM&n5A~6B zJ2K(VR2%f2+aO-}aS)?1@wk|cc5u#2?bCs4)s1ssjAnd?bNV2@&ALH|M#DJ3*$8a2{qh@5A53bBgwzKw^agW1990BrrHZ?%ij9v2%wq)L z#&2u*Bv!kfspU+poxc5WogbLQ{M$T5=ez1rwpQRQvUeMRn?t9vnm~`+Em3+l0Ubs1jCz2jn-@@k7#9ys$oTTj4efBGxlUB{6#rlFdMk!ZA2;$*B zfIE%|<;DI57q8&(w_7wbS^AT|YO`#-nPN07@;hSk97qSrU<0M$W{re4$N9!PsqPO* z|NpI(A+-`?eGd%@V^L&jw3X8(@H=h9-Hd<@JJL(wXUolfF1=w(3^E`6(lPC*s+jbJ zA-o6_FT1}1x+Gp)^K$J4?DNr^uw#l8(VniG&P{B#dU&24%^px@CUA5sLu$v@>7vi` z37Ua`1h`sHE)X@cu*N`_rD`NvYnR8sBv6fIAtlba8T>#9&;1<4Fw_QctcpB8{KM#bF_!x{7iM!ZdXw;ix$z{$WDBVz zN=K~w@m1Henq*@OE)$*_?jg`{Tnr`WI3w3DY9LwfaI%iH74C0v&~+J|LZ=t4nW_z= zhduFo4*Fu6AY>P02f~CCvRQ#uso-W1=oKU zQogp}9!JjodEXXa0dNdQS^<^_KAXg{SaZZU*76$)EV(L{wTUe=-=tq88+i`4pX^4{ zCrZI4l$Al%vxIbFN5xIF;^*7L!+SF-ziIYf-2SA2k@Kh~f`Szbv{P*HZCEce@9$Xj0pg|pHMgPk|NyHdvet))a+q`ox$C^fr3sF`X)4TaoSY@i#x)+SbvJ6n^3S zl3=AXhVLoAl!PlJAhcd1GzeqK=769lCoikOQbcAcGA@yp0vtQEZZk<+U~d$YWet}B z`}sn2wjuYzUB8hl^|4Ok)+AR!dduCmmW%vC86kf`GCgUV?%J0{CUFfC@F0Ig4@}b2 zG?T~W=YwJs3w_4q(ymi3(HMcyf%d?duN|_A%hTQ+Q*n|GON@MuW%lC2T2G8w4>exo zLr|-?-TY?xv72ifuP%k=K1`z2RY$pIW_zQu)ryXY4*O26^f}VjIq%@^5A&2qr!pj( zu!0C@06*rHc7zICw{*c|UVOR>E^j8oATE``@QhVTMJDF+Rd~JB+Xub>VNu?H+g5XH zoTRXFr_hs49XgVD-gjl_2SJj-yJ>kKL#rV!ZQn!db4d~(Q*{CD&h!NZE5|BjDd^8z z@WETysI0r=tSJhRc`sX%6!OO{bQKQ61v*2N|K5o{H_{o>CSc zFVjqy9ym#aE=9FVPyX8_KB;bfU^}ON+AYyTt)JLoFuuD8SE4<>O{#RFjUM**X0vY2&SkV^SsN!G;Ms{{;39x-+L zqQ&}V3`&!r>Q?zl)W^&$<=m@bjtuiJwVyVj1*^8aN^O_t8RhMg~K zsd|gPm)?4n$CcTJ-aL&JjzwuF)F-IpsUDz}bn%P6JO88hBY4@p!bCcgwWf!BWzpEx zLn^Y!Wrl+W_cMq)z$~*nBco>(NeKeG5eVZqnww{iW5bL8A*Q}NrdPpMDgxUiP)bi= zNdwQiRUBmg3|O?ViILU3yoKhLGKn9cNYQSm1BQz7U&C5gila(lkQlNJ$CSA~K#Ltz z&`jql)rF^%2M}1qiWmw>Fo%;4&&QRY(Lb98GgST+LRC<$~+2>~Pz0DH4#MM7g0_)v>aD02fkG35WqFR1s@%cO}gJ8jE&-~-97OHKX*%yIeh`QaZ7vQZ`3FnSC&oU zg!W_*yAQnJ8SRpuU=?`LFu+qwl*&t5M2o4~F9>jyC0CFBi5IQGa z#l-VH- z?b`XD9E6A13+y76K;&*Le$s%1lpNVTv@A>291!p+Ym^lPJkv#UDYIaQliR;wPTx(t z-m+I`6b%btW7Woig4PV?OhXd_bXFj1At>hJ3&DEB2w;NXPrn{N@Tsyc48PU`9SznT zHnp-8Rw2UR9{=u&aIQZd<*WrpYk@M(P`iR=GLuI4?spuTFEL=E349dUf$141F=E;9>1hX8O7kUdG60<&OO{sq5Y)L%-*>7WHCgT?-SM)Ql^S=8-eYpm0b& zB7NlZb;(JBP|1)4GOL+x@$d^^fHfsWi0Og`;k$(qK==;58G7A#`NBrzwI}J|%0Dnss&VQ&c=!!2S<{E(rJ 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

^cd*uG8WiJjid6a+%|TFi${S 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∨ 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 Z~3+?w&?lpZWyIsd@#^cXDNKfmX9 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 z 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

SgyV)?IsPyS1(@cX}&@{<3e;f>irRvLx*-yb0I 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%0AMZvSO5Ut1^_hyz)S$(0RTGzKpX&Q2mp=)fH?r* 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
<@DqRveyL}H&o2sH0o}xH?ED6%waUS+O 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 z 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
~rK9BG3O8@~jpASbT@nxGUM-=grFbg*Bj3 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

T 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%0Dy#uabta=_((F8aUaJu$ff@4IsRV?Zp&zrL>Y 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®JiMTd^{4i@ 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 z%0A-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%0A)w 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 diff --git a/openSSL/lin32/libssl.so.1.1 b/openSSL/lin32/libssl.so.1.1 deleted file mode 100755 index 876c366c4d365a5910534ddc013f8b0b2513a65e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 727104 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

c*M2xXTvV#A7fgl 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 hQ~3{~eL(dS#(Nx@?yd`ySAzXfT<v?&ip&Win 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 z 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

-(;HW$uwNsp$MgiB$5uM5OW+ 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
tc*&q-M?pJyt%lZW`0OCmW8xMM#paoS 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 Z`cn>RT||fB&(C-4;fF-0di`@>{~rZS4*LKA diff --git a/openSSL/lin64/include/openssl/aes.h b/openSSL/lin64/include/openssl/aes.h deleted file mode 100644 index 245c552..0000000 --- a/openSSL/lin64/include/openssl/aes.h +++ /dev/null @@ -1,92 +0,0 @@ -/* - * Copyright 2002-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_AES_H -# define HEADER_AES_H - -# include - -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define AES_ENCRYPT 1 -# define AES_DECRYPT 0 - -/* - * Because array size can't be a const in C, the following two are macros. - * Both sizes are in bytes. - */ -# define AES_MAXNR 14 -# define AES_BLOCK_SIZE 16 - -/* This should be a hidden type, but EVP requires that the size be known */ -struct aes_key_st { -# ifdef AES_LONG - unsigned long rd_key[4 * (AES_MAXNR + 1)]; -# else - unsigned int rd_key[4 * (AES_MAXNR + 1)]; -# endif - int rounds; -}; -typedef struct aes_key_st AES_KEY; - -const char *AES_options(void); - -int AES_set_encrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); -int AES_set_decrypt_key(const unsigned char *userKey, const int bits, - AES_KEY *key); - -void AES_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); -void AES_decrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key); - -void AES_ecb_encrypt(const unsigned char *in, unsigned char *out, - const AES_KEY *key, const int enc); -void AES_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -void AES_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num, const int enc); -void AES_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, int *num); -/* NB: the IV is _two_ blocks long */ -void AES_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - unsigned char *ivec, const int enc); -/* NB: the IV is _four_ blocks long */ -void AES_bi_ige_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const AES_KEY *key, - const AES_KEY *key2, const unsigned char *ivec, - const int enc); - -int AES_wrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, unsigned int inlen); -int AES_unwrap_key(AES_KEY *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, unsigned int inlen); - - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/asn1.h b/openSSL/lin64/include/openssl/asn1.h deleted file mode 100644 index 9522eec..0000000 --- a/openSSL/lin64/include/openssl/asn1.h +++ /dev/null @@ -1,886 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ASN1_H -# define HEADER_ASN1_H - -# include -# include -# include -# include -# include -# include -# include - -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define V_ASN1_UNIVERSAL 0x00 -# define V_ASN1_APPLICATION 0x40 -# define V_ASN1_CONTEXT_SPECIFIC 0x80 -# define V_ASN1_PRIVATE 0xc0 - -# define V_ASN1_CONSTRUCTED 0x20 -# define V_ASN1_PRIMITIVE_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 */ -# define V_ASN1_ANY -4/* used in ASN1 template code */ - -# define V_ASN1_UNDEF -1 -/* ASN.1 tag values */ -# define V_ASN1_EOC 0 -# define V_ASN1_BOOLEAN 1 /**/ -# define V_ASN1_INTEGER 2 -# define V_ASN1_BIT_STRING 3 -# define V_ASN1_OCTET_STRING 4 -# define V_ASN1_NULL 5 -# define V_ASN1_OBJECT 6 -# define V_ASN1_OBJECT_DESCRIPTOR 7 -# define V_ASN1_EXTERNAL 8 -# define V_ASN1_REAL 9 -# define V_ASN1_ENUMERATED 10 -# define V_ASN1_UTF8STRING 12 -# define V_ASN1_SEQUENCE 16 -# define V_ASN1_SET 17 -# define V_ASN1_NUMERICSTRING 18 /**/ -# define V_ASN1_PRINTABLESTRING 19 -# define V_ASN1_T61STRING 20 -# define V_ASN1_TELETEXSTRING 20/* alias */ -# define V_ASN1_VIDEOTEXSTRING 21 /**/ -# define V_ASN1_IA5STRING 22 -# define V_ASN1_UTCTIME 23 -# define V_ASN1_GENERALIZEDTIME 24 /**/ -# define V_ASN1_GRAPHICSTRING 25 /**/ -# define V_ASN1_ISO64STRING 26 /**/ -# define V_ASN1_VISIBLESTRING 26/* alias */ -# define V_ASN1_GENERALSTRING 27 /**/ -# define V_ASN1_UNIVERSALSTRING 28 /**/ -# define V_ASN1_BMPSTRING 30 - -/* - * NB the constants below are used internally by ASN1_INTEGER - * and ASN1_ENUMERATED to indicate the sign. They are *not* on - * the wire tag values. - */ - -# define V_ASN1_NEG 0x100 -# define V_ASN1_NEG_INTEGER (2 | V_ASN1_NEG) -# define V_ASN1_NEG_ENUMERATED (10 | V_ASN1_NEG) - -/* For use with d2i_ASN1_type_bytes() */ -# define B_ASN1_NUMERICSTRING 0x0001 -# define B_ASN1_PRINTABLESTRING 0x0002 -# define B_ASN1_T61STRING 0x0004 -# define B_ASN1_TELETEXSTRING 0x0004 -# define B_ASN1_VIDEOTEXSTRING 0x0008 -# define B_ASN1_IA5STRING 0x0010 -# define B_ASN1_GRAPHICSTRING 0x0020 -# define B_ASN1_ISO64STRING 0x0040 -# define B_ASN1_VISIBLESTRING 0x0040 -# define B_ASN1_GENERALSTRING 0x0080 -# define B_ASN1_UNIVERSALSTRING 0x0100 -# define B_ASN1_OCTET_STRING 0x0200 -# define B_ASN1_BIT_STRING 0x0400 -# define B_ASN1_BMPSTRING 0x0800 -# define B_ASN1_UNKNOWN 0x1000 -# define B_ASN1_UTF8STRING 0x2000 -# define B_ASN1_UTCTIME 0x4000 -# define B_ASN1_GENERALIZEDTIME 0x8000 -# define B_ASN1_SEQUENCE 0x10000 -/* For use with ASN1_mbstring_copy() */ -# define MBSTRING_FLAG 0x1000 -# define MBSTRING_UTF8 (MBSTRING_FLAG) -# define MBSTRING_ASC (MBSTRING_FLAG|1) -# define MBSTRING_BMP (MBSTRING_FLAG|2) -# define MBSTRING_UNIV (MBSTRING_FLAG|4) -# define SMIME_OLDMIME 0x400 -# define SMIME_CRLFEOL 0x800 -# define SMIME_STREAM 0x1000 - struct X509_algor_st; -DEFINE_STACK_OF(X509_ALGOR) - -# define ASN1_STRING_FLAG_BITS_LEFT 0x08/* Set if 0x07 has bits left value */ -/* - * This indicates that the ASN1_STRING is not a real value but just a place - * holder for the location where indefinite length constructed data should be - * inserted in the memory buffer - */ -# define ASN1_STRING_FLAG_NDEF 0x010 - -/* - * This flag is used by the CMS code to indicate that a string is not - * complete and is a place holder for content when it had all been accessed. - * The flag will be reset when content has been written to it. - */ - -# define ASN1_STRING_FLAG_CONT 0x020 -/* - * This flag is used by ASN1 code to indicate an ASN1_STRING is an MSTRING - * type. - */ -# 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; - int type; - unsigned char *data; - /* - * The value of the following field depends on the type being held. It - * is mostly being used for BIT_STRING so if the input data has a - * non-zero 'unused bits' value, it will be handled correctly - */ - long flags; -}; - -/* - * ASN1_ENCODING structure: this is used to save the received encoding of an - * ASN1 type. This is useful to get round problems with invalid encodings - * which can break signatures. - */ - -typedef struct ASN1_ENCODING_st { - unsigned char *enc; /* DER encoding */ - long len; /* Length of encoding */ - int modified; /* set to 1 if 'enc' is invalid */ -} ASN1_ENCODING; - -/* Used with ASN1 LONG type: if a long is set to this it is omitted */ -# define ASN1_LONG_UNDEF 0x7fffffffL - -# define STABLE_FLAGS_MALLOC 0x01 -/* - * A zero passed to ASN1_STRING_TABLE_new_add for the flags is interpreted - * as "don't change" and STABLE_FLAGS_MALLOC is always set. By setting - * STABLE_FLAGS_MALLOC only we can clear the existing value. Use the alias - * STABLE_FLAGS_CLEAR to reflect this. - */ -# define STABLE_FLAGS_CLEAR STABLE_FLAGS_MALLOC -# define STABLE_NO_MASK 0x02 -# define DIRSTRING_TYPE \ - (B_ASN1_PRINTABLESTRING|B_ASN1_T61STRING|B_ASN1_BMPSTRING|B_ASN1_UTF8STRING) -# define PKCS9STRING_TYPE (DIRSTRING_TYPE|B_ASN1_IA5STRING) - -typedef struct asn1_string_table_st { - int nid; - long minsize; - long maxsize; - unsigned long mask; - unsigned long flags; -} ASN1_STRING_TABLE; - -DEFINE_STACK_OF(ASN1_STRING_TABLE) - -/* size limits: this stuff is taken straight from RFC2459 */ - -# define ub_name 32768 -# define ub_common_name 64 -# define ub_locality_name 128 -# define ub_state_name 128 -# define ub_organization_name 64 -# define ub_organization_unit_name 64 -# define ub_title 64 -# define ub_email_address 128 - -/* - * Declarations for template structures: for full definitions see asn1t.h - */ -typedef struct ASN1_TEMPLATE_st ASN1_TEMPLATE; -typedef struct ASN1_TLC_st ASN1_TLC; -/* This is just an opaque pointer */ -typedef struct ASN1_VALUE_st ASN1_VALUE; - -/* Declare ASN1 functions: the implement macro in in asn1t.h */ - -# define DECLARE_ASN1_FUNCTIONS(type) DECLARE_ASN1_FUNCTIONS_name(type, type) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS(type) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, type) - -# define DECLARE_ASN1_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, name, name) - -# define DECLARE_ASN1_FUNCTIONS_fname(type, itname, name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS(type, itname, name) \ - type *d2i_##name(type **a, const unsigned char **in, long len); \ - int i2d_##name(type *a, unsigned char **out); \ - DECLARE_ASN1_ITEM(itname) - -# define DECLARE_ASN1_ENCODE_FUNCTIONS_const(type, name) \ - type *d2i_##name(type **a, const unsigned char **in, long len); \ - int i2d_##name(const type *a, unsigned char **out); \ - DECLARE_ASN1_ITEM(name) - -# define DECLARE_ASN1_NDEF_FUNCTION(name) \ - int i2d_##name##_NDEF(name *a, unsigned char **out); - -# define DECLARE_ASN1_FUNCTIONS_const(name) \ - DECLARE_ASN1_ALLOC_FUNCTIONS(name) \ - DECLARE_ASN1_ENCODE_FUNCTIONS_const(name, name) - -# define DECLARE_ASN1_ALLOC_FUNCTIONS_name(type, name) \ - type *name##_new(void); \ - void name##_free(type *a); - -# define DECLARE_ASN1_PRINT_FUNCTION(stname) \ - DECLARE_ASN1_PRINT_FUNCTION_fname(stname, stname) - -# define DECLARE_ASN1_PRINT_FUNCTION_fname(stname, fname) \ - int fname##_print_ctx(BIO *out, stname *x, int indent, \ - const ASN1_PCTX *pctx); - -# define D2I_OF(type) type *(*)(type **,const unsigned char **,long) -# define I2D_OF(type) int (*)(type *,unsigned char **) -# define I2D_OF_const(type) int (*)(const type *,unsigned char **) - -# define CHECKED_D2I_OF(type, d2i) \ - ((d2i_of_void*) (1 ? d2i : ((D2I_OF(type))0))) -# define CHECKED_I2D_OF(type, i2d) \ - ((i2d_of_void*) (1 ? i2d : ((I2D_OF(type))0))) -# define CHECKED_NEW_OF(type, xnew) \ - ((void *(*)(void)) (1 ? xnew : ((type *(*)(void))0))) -# define CHECKED_PTR_OF(type, p) \ - ((void*) (1 ? p : (type*)0)) -# define CHECKED_PPTR_OF(type, p) \ - ((void**) (1 ? p : (type**)0)) - -# define TYPEDEF_D2I_OF(type) typedef type *d2i_of_##type(type **,const unsigned char **,long) -# define TYPEDEF_I2D_OF(type) typedef int i2d_of_##type(type *,unsigned char **) -# define TYPEDEF_D2I2D_OF(type) TYPEDEF_D2I_OF(type); TYPEDEF_I2D_OF(type) - -TYPEDEF_D2I2D_OF(void); - -/*- - * The following macros and typedefs allow an ASN1_ITEM - * to be embedded in a structure and referenced. Since - * the ASN1_ITEM pointers need to be globally accessible - * (possibly from shared libraries) they may exist in - * different forms. On platforms that support it the - * ASN1_ITEM structure itself will be globally exported. - * Other platforms will export a function that returns - * an ASN1_ITEM pointer. - * - * To handle both cases transparently the macros below - * should be used instead of hard coding an ASN1_ITEM - * pointer in a structure. - * - * The structure will look like this: - * - * typedef struct SOMETHING_st { - * ... - * ASN1_ITEM_EXP *iptr; - * ... - * } SOMETHING; - * - * It would be initialised as e.g.: - * - * SOMETHING somevar = {...,ASN1_ITEM_ref(X509),...}; - * - * and the actual pointer extracted with: - * - * const ASN1_ITEM *it = ASN1_ITEM_ptr(somevar.iptr); - * - * Finally an ASN1_ITEM pointer can be extracted from an - * appropriate reference with: ASN1_ITEM_rptr(X509). This - * would be used when a function takes an ASN1_ITEM * argument. - * - */ - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM ASN1_ITEM_EXP; - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -# define ASN1_ITEM_ptr(iptr) (iptr) - -/* Macro to include ASN1_ITEM pointer from base type */ -# define ASN1_ITEM_ref(iptr) (&(iptr##_it)) - -# define ASN1_ITEM_rptr(ref) (&(ref##_it)) - -# define DECLARE_ASN1_ITEM(name) \ - OPENSSL_EXTERN const ASN1_ITEM name##_it; - -# else - -/* - * Platforms that can't easily handle shared global variables are declared as - * functions returning ASN1_ITEM pointers. - */ - -/* ASN1_ITEM pointer exported type */ -typedef const ASN1_ITEM *ASN1_ITEM_EXP (void); - -/* Macro to obtain ASN1_ITEM pointer from exported type */ -# define ASN1_ITEM_ptr(iptr) (iptr()) - -/* Macro to include ASN1_ITEM pointer from base type */ -# define ASN1_ITEM_ref(iptr) (iptr##_it) - -# define ASN1_ITEM_rptr(ref) (ref##_it()) - -# define DECLARE_ASN1_ITEM(name) \ - const ASN1_ITEM * name##_it(void); - -# endif - -/* Parameters used by ASN1_STRING_print_ex() */ - -/* - * These determine which characters to escape: RFC2253 special characters, - * control characters and MSB set characters - */ - -# define ASN1_STRFLGS_ESC_2253 1 -# define ASN1_STRFLGS_ESC_CTRL 2 -# define ASN1_STRFLGS_ESC_MSB 4 - -/* - * This flag determines how we do escaping: normally RC2253 backslash only, - * set this to use backslash and quote. - */ - -# define ASN1_STRFLGS_ESC_QUOTE 8 - -/* These three flags are internal use only. */ - -/* Character is a valid PrintableString character */ -# define CHARTYPE_PRINTABLESTRING 0x10 -/* Character needs escaping if it is the first character */ -# define CHARTYPE_FIRST_ESC_2253 0x20 -/* Character needs escaping if it is the last character */ -# define CHARTYPE_LAST_ESC_2253 0x40 - -/* - * NB the internal flags are safely reused below by flags handled at the top - * level. - */ - -/* - * If this is set we convert all character strings to UTF8 first - */ - -# define ASN1_STRFLGS_UTF8_CONVERT 0x10 - -/* - * If this is set we don't attempt to interpret content: just assume all - * strings are 1 byte per character. This will produce some pretty odd - * looking output! - */ - -# define ASN1_STRFLGS_IGNORE_TYPE 0x20 - -/* If this is set we include the string type in the output */ -# define ASN1_STRFLGS_SHOW_TYPE 0x40 - -/* - * This determines which strings to display and which to 'dump' (hex dump of - * content octets or DER encoding). We can only dump non character strings or - * everything. If we don't dump 'unknown' they are interpreted as character - * strings with 1 octet per character and are subject to the usual escaping - * options. - */ - -# define ASN1_STRFLGS_DUMP_ALL 0x80 -# define ASN1_STRFLGS_DUMP_UNKNOWN 0x100 - -/* - * These determine what 'dumping' does, we can dump the content octets or the - * DER encoding: both use the RFC2253 #XXXXX notation. - */ - -# define ASN1_STRFLGS_DUMP_DER 0x200 - -/* - * This flag specifies that RC2254 escaping shall be performed. - */ -#define ASN1_STRFLGS_ESC_2254 0x400 - -/* - * All the string flags consistent with RFC2253, escaping control characters - * isn't essential in RFC2253 but it is advisable anyway. - */ - -# define ASN1_STRFLGS_RFC2253 (ASN1_STRFLGS_ESC_2253 | \ - ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - ASN1_STRFLGS_UTF8_CONVERT | \ - ASN1_STRFLGS_DUMP_UNKNOWN | \ - ASN1_STRFLGS_DUMP_DER) - -DEFINE_STACK_OF(ASN1_INTEGER) - -DEFINE_STACK_OF(ASN1_GENERALSTRING) - -DEFINE_STACK_OF(ASN1_UTF8STRING) - -typedef struct asn1_type_st { - int type; - union { - char *ptr; - ASN1_BOOLEAN boolean; - ASN1_STRING *asn1_string; - ASN1_OBJECT *object; - ASN1_INTEGER *integer; - ASN1_ENUMERATED *enumerated; - ASN1_BIT_STRING *bit_string; - ASN1_OCTET_STRING *octet_string; - ASN1_PRINTABLESTRING *printablestring; - ASN1_T61STRING *t61string; - ASN1_IA5STRING *ia5string; - ASN1_GENERALSTRING *generalstring; - ASN1_BMPSTRING *bmpstring; - ASN1_UNIVERSALSTRING *universalstring; - ASN1_UTCTIME *utctime; - ASN1_GENERALIZEDTIME *generalizedtime; - ASN1_VISIBLESTRING *visiblestring; - ASN1_UTF8STRING *utf8string; - /* - * set and sequence are left complete and still contain the set or - * sequence bytes - */ - ASN1_STRING *set; - ASN1_STRING *sequence; - ASN1_VALUE *asn1_value; - } value; -} ASN1_TYPE; - -DEFINE_STACK_OF(ASN1_TYPE) - -typedef STACK_OF(ASN1_TYPE) ASN1_SEQUENCE_ANY; - -DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SEQUENCE_ANY) -DECLARE_ASN1_ENCODE_FUNCTIONS_const(ASN1_SEQUENCE_ANY, ASN1_SET_ANY) - -/* This is used to contain a list of bit names */ -typedef struct BIT_STRING_BITNAME_st { - int bitnum; - const char *lname; - const char *sname; -} BIT_STRING_BITNAME; - -# define B_ASN1_TIME \ - B_ASN1_UTCTIME | \ - B_ASN1_GENERALIZEDTIME - -# define B_ASN1_PRINTABLE \ - B_ASN1_NUMERICSTRING| \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_T61STRING| \ - B_ASN1_IA5STRING| \ - B_ASN1_BIT_STRING| \ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING|\ - B_ASN1_SEQUENCE|\ - B_ASN1_UNKNOWN - -# define B_ASN1_DIRECTORYSTRING \ - B_ASN1_PRINTABLESTRING| \ - B_ASN1_TELETEXSTRING|\ - B_ASN1_BMPSTRING|\ - B_ASN1_UNIVERSALSTRING|\ - B_ASN1_UTF8STRING - -# define B_ASN1_DISPLAYTEXT \ - B_ASN1_IA5STRING| \ - B_ASN1_VISIBLESTRING| \ - B_ASN1_BMPSTRING|\ - B_ASN1_UTF8STRING - -DECLARE_ASN1_FUNCTIONS_fname(ASN1_TYPE, ASN1_ANY, ASN1_TYPE) - -int ASN1_TYPE_get(const ASN1_TYPE *a); -void ASN1_TYPE_set(ASN1_TYPE *a, int type, void *value); -int ASN1_TYPE_set1(ASN1_TYPE *a, int type, const void *value); -int ASN1_TYPE_cmp(const ASN1_TYPE *a, const ASN1_TYPE *b); - -ASN1_TYPE *ASN1_TYPE_pack_sequence(const ASN1_ITEM *it, void *s, ASN1_TYPE **t); -void *ASN1_TYPE_unpack_sequence(const ASN1_ITEM *it, const ASN1_TYPE *t); - -ASN1_OBJECT *ASN1_OBJECT_new(void); -void ASN1_OBJECT_free(ASN1_OBJECT *a); -int i2d_ASN1_OBJECT(const ASN1_OBJECT *a, unsigned char **pp); -ASN1_OBJECT *d2i_ASN1_OBJECT(ASN1_OBJECT **a, const unsigned char **pp, - long length); - -DECLARE_ASN1_ITEM(ASN1_OBJECT) - -DEFINE_STACK_OF(ASN1_OBJECT) - -ASN1_STRING *ASN1_STRING_new(void); -void ASN1_STRING_free(ASN1_STRING *a); -void ASN1_STRING_clear_free(ASN1_STRING *a); -int ASN1_STRING_copy(ASN1_STRING *dst, const ASN1_STRING *str); -ASN1_STRING *ASN1_STRING_dup(const ASN1_STRING *a); -ASN1_STRING *ASN1_STRING_type_new(int type); -int ASN1_STRING_cmp(const ASN1_STRING *a, const ASN1_STRING *b); - /* - * Since this is used to store all sorts of things, via macros, for now, - * make its data void * - */ -int ASN1_STRING_set(ASN1_STRING *str, const void *data, int len); -void ASN1_STRING_set0(ASN1_STRING *str, void *data, int len); -int ASN1_STRING_length(const ASN1_STRING *x); -void ASN1_STRING_length_set(ASN1_STRING *x, int n); -int ASN1_STRING_type(const ASN1_STRING *x); -DEPRECATEDIN_1_1_0(unsigned char *ASN1_STRING_data(ASN1_STRING *x)) -const unsigned char *ASN1_STRING_get0_data(const ASN1_STRING *x); - -DECLARE_ASN1_FUNCTIONS(ASN1_BIT_STRING) -int ASN1_BIT_STRING_set(ASN1_BIT_STRING *a, unsigned char *d, int length); -int ASN1_BIT_STRING_set_bit(ASN1_BIT_STRING *a, int n, int value); -int ASN1_BIT_STRING_get_bit(const ASN1_BIT_STRING *a, int n); -int ASN1_BIT_STRING_check(const ASN1_BIT_STRING *a, - const unsigned char *flags, int flags_len); - -int ASN1_BIT_STRING_name_print(BIO *out, ASN1_BIT_STRING *bs, - BIT_STRING_BITNAME *tbl, int indent); -int ASN1_BIT_STRING_num_asc(const char *name, BIT_STRING_BITNAME *tbl); -int ASN1_BIT_STRING_set_asc(ASN1_BIT_STRING *bs, const char *name, int value, - BIT_STRING_BITNAME *tbl); - -DECLARE_ASN1_FUNCTIONS(ASN1_INTEGER) -ASN1_INTEGER *d2i_ASN1_UINTEGER(ASN1_INTEGER **a, const unsigned char **pp, - long length); -ASN1_INTEGER *ASN1_INTEGER_dup(const ASN1_INTEGER *x); -int ASN1_INTEGER_cmp(const ASN1_INTEGER *x, const ASN1_INTEGER *y); - -DECLARE_ASN1_FUNCTIONS(ASN1_ENUMERATED) - -int ASN1_UTCTIME_check(const ASN1_UTCTIME *a); -ASN1_UTCTIME *ASN1_UTCTIME_set(ASN1_UTCTIME *s, time_t t); -ASN1_UTCTIME *ASN1_UTCTIME_adj(ASN1_UTCTIME *s, time_t t, - int offset_day, long offset_sec); -int ASN1_UTCTIME_set_string(ASN1_UTCTIME *s, const char *str); -int ASN1_UTCTIME_cmp_time_t(const ASN1_UTCTIME *s, time_t t); - -int ASN1_GENERALIZEDTIME_check(const ASN1_GENERALIZEDTIME *a); -ASN1_GENERALIZEDTIME *ASN1_GENERALIZEDTIME_set(ASN1_GENERALIZEDTIME *s, - time_t t); -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); - -DECLARE_ASN1_FUNCTIONS(ASN1_OCTET_STRING) -ASN1_OCTET_STRING *ASN1_OCTET_STRING_dup(const ASN1_OCTET_STRING *a); -int ASN1_OCTET_STRING_cmp(const ASN1_OCTET_STRING *a, - const ASN1_OCTET_STRING *b); -int ASN1_OCTET_STRING_set(ASN1_OCTET_STRING *str, const unsigned char *data, - int len); - -DECLARE_ASN1_FUNCTIONS(ASN1_VISIBLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UNIVERSALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTF8STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_NULL) -DECLARE_ASN1_FUNCTIONS(ASN1_BMPSTRING) - -int UTF8_getc(const unsigned char *str, int len, unsigned long *val); -int UTF8_putc(unsigned char *str, int len, unsigned long value); - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, ASN1_PRINTABLE) - -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DIRECTORYSTRING) -DECLARE_ASN1_FUNCTIONS_name(ASN1_STRING, DISPLAYTEXT) -DECLARE_ASN1_FUNCTIONS(ASN1_PRINTABLESTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_T61STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_IA5STRING) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALSTRING) -DECLARE_ASN1_FUNCTIONS(ASN1_UTCTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_GENERALIZEDTIME) -DECLARE_ASN1_FUNCTIONS(ASN1_TIME) - -DECLARE_ASN1_ITEM(ASN1_OCTET_STRING_NDEF) - -ASN1_TIME *ASN1_TIME_set(ASN1_TIME *s, time_t t); -ASN1_TIME *ASN1_TIME_adj(ASN1_TIME *s, time_t t, - int offset_day, long offset_sec); -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); -int i2a_ASN1_ENUMERATED(BIO *bp, const ASN1_ENUMERATED *a); -int a2i_ASN1_ENUMERATED(BIO *bp, ASN1_ENUMERATED *bs, char *buf, int size); -int i2a_ASN1_OBJECT(BIO *bp, const ASN1_OBJECT *a); -int a2i_ASN1_STRING(BIO *bp, ASN1_STRING *bs, char *buf, int size); -int i2a_ASN1_STRING(BIO *bp, const ASN1_STRING *a, int type); -int i2t_ASN1_OBJECT(char *buf, int buf_len, const ASN1_OBJECT *a); - -int a2d_ASN1_OBJECT(unsigned char *out, int olen, const char *buf, int num); -ASN1_OBJECT *ASN1_OBJECT_create(int nid, unsigned char *data, int len, - const char *sn, const char *ln); - -int ASN1_INTEGER_get_int64(int64_t *pr, const ASN1_INTEGER *a); -int ASN1_INTEGER_set_int64(ASN1_INTEGER *a, int64_t r); -int ASN1_INTEGER_get_uint64(uint64_t *pr, const ASN1_INTEGER *a); -int ASN1_INTEGER_set_uint64(ASN1_INTEGER *a, uint64_t r); - -int ASN1_INTEGER_set(ASN1_INTEGER *a, long v); -long ASN1_INTEGER_get(const ASN1_INTEGER *a); -ASN1_INTEGER *BN_to_ASN1_INTEGER(const BIGNUM *bn, ASN1_INTEGER *ai); -BIGNUM *ASN1_INTEGER_to_BN(const ASN1_INTEGER *ai, BIGNUM *bn); - -int ASN1_ENUMERATED_get_int64(int64_t *pr, const ASN1_ENUMERATED *a); -int ASN1_ENUMERATED_set_int64(ASN1_ENUMERATED *a, int64_t r); - - -int ASN1_ENUMERATED_set(ASN1_ENUMERATED *a, long v); -long ASN1_ENUMERATED_get(const ASN1_ENUMERATED *a); -ASN1_ENUMERATED *BN_to_ASN1_ENUMERATED(const BIGNUM *bn, ASN1_ENUMERATED *ai); -BIGNUM *ASN1_ENUMERATED_to_BN(const ASN1_ENUMERATED *ai, BIGNUM *bn); - -/* General */ -/* given a string, return the correct type, max is the maximum length */ -int ASN1_PRINTABLE_type(const unsigned char *s, int max); - -unsigned long ASN1_tag2bit(int tag); - -/* SPECIALS */ -int ASN1_get_object(const unsigned char **pp, long *plength, int *ptag, - int *pclass, long omax); -int ASN1_check_infinite_end(unsigned char **p, long len); -int ASN1_const_check_infinite_end(const unsigned char **p, long len); -void ASN1_put_object(unsigned char **pp, int constructed, int length, - int tag, int xclass); -int ASN1_put_eoc(unsigned char **pp); -int ASN1_object_size(int constructed, int length, int tag); - -/* Used to implement other functions */ -void *ASN1_dup(i2d_of_void *i2d, d2i_of_void *d2i, void *x); - -# define ASN1_dup_of(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_dup_of_const(type,i2d,d2i,x) \ - ((type*)ASN1_dup(CHECKED_I2D_OF(const type, i2d), \ - CHECKED_D2I_OF(type, d2i), \ - CHECKED_PTR_OF(const type, x))) - -void *ASN1_item_dup(const ASN1_ITEM *it, void *x); - -/* ASN1 alloc/free macros for when a type is only used internally */ - -# define M_ASN1_new_of(type) (type *)ASN1_item_new(ASN1_ITEM_rptr(type)) -# define M_ASN1_free_of(x, type) \ - ASN1_item_free(CHECKED_PTR_OF(type, x), ASN1_ITEM_rptr(type)) - -# ifndef OPENSSL_NO_STDIO -void *ASN1_d2i_fp(void *(*xnew) (void), d2i_of_void *d2i, FILE *in, void **x); - -# define ASN1_d2i_fp_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_fp(CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_fp(const ASN1_ITEM *it, FILE *in, void *x); -int ASN1_i2d_fp(i2d_of_void *i2d, FILE *out, void *x); - -# define ASN1_i2d_fp_of(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_i2d_fp_of_const(type,i2d,out,x) \ - (ASN1_i2d_fp(CHECKED_I2D_OF(const type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_fp(const ASN1_ITEM *it, FILE *out, void *x); -int ASN1_STRING_print_ex_fp(FILE *fp, const ASN1_STRING *str, unsigned long flags); -# endif - -int ASN1_STRING_to_UTF8(unsigned char **out, const ASN1_STRING *in); - -void *ASN1_d2i_bio(void *(*xnew) (void), d2i_of_void *d2i, BIO *in, void **x); - -# define ASN1_d2i_bio_of(type,xnew,d2i,in,x) \ - ((type*)ASN1_d2i_bio( CHECKED_NEW_OF(type, xnew), \ - CHECKED_D2I_OF(type, d2i), \ - in, \ - CHECKED_PPTR_OF(type, x))) - -void *ASN1_item_d2i_bio(const ASN1_ITEM *it, BIO *in, void *x); -int ASN1_i2d_bio(i2d_of_void *i2d, BIO *out, unsigned char *x); - -# define ASN1_i2d_bio_of(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(type, i2d), \ - out, \ - CHECKED_PTR_OF(type, x))) - -# define ASN1_i2d_bio_of_const(type,i2d,out,x) \ - (ASN1_i2d_bio(CHECKED_I2D_OF(const type, i2d), \ - out, \ - CHECKED_PTR_OF(const type, x))) - -int ASN1_item_i2d_bio(const ASN1_ITEM *it, BIO *out, void *x); -int ASN1_UTCTIME_print(BIO *fp, const ASN1_UTCTIME *a); -int ASN1_GENERALIZEDTIME_print(BIO *fp, const ASN1_GENERALIZEDTIME *a); -int ASN1_TIME_print(BIO *fp, const ASN1_TIME *a); -int ASN1_STRING_print(BIO *bp, const ASN1_STRING *v); -int ASN1_STRING_print_ex(BIO *out, const ASN1_STRING *str, unsigned long flags); -int ASN1_buf_print(BIO *bp, const unsigned char *buf, size_t buflen, int off); -int ASN1_bn_print(BIO *bp, const char *number, const BIGNUM *num, - unsigned char *buf, int off); -int ASN1_parse(BIO *bp, const unsigned char *pp, long len, int indent); -int ASN1_parse_dump(BIO *bp, const unsigned char *pp, long len, int indent, - int dump); -const char *ASN1_tag2str(int tag); - -/* Used to load and write Netscape format cert */ - -int ASN1_UNIVERSALSTRING_to_string(ASN1_UNIVERSALSTRING *s); - -int ASN1_TYPE_set_octetstring(ASN1_TYPE *a, unsigned char *data, int len); -int ASN1_TYPE_get_octetstring(const ASN1_TYPE *a, unsigned char *data, int max_len); -int ASN1_TYPE_set_int_octetstring(ASN1_TYPE *a, long num, - unsigned char *data, int len); -int ASN1_TYPE_get_int_octetstring(const ASN1_TYPE *a, long *num, - unsigned char *data, int max_len); - -void *ASN1_item_unpack(const ASN1_STRING *oct, const ASN1_ITEM *it); - -ASN1_STRING *ASN1_item_pack(void *obj, const ASN1_ITEM *it, - ASN1_OCTET_STRING **oct); - -void ASN1_STRING_set_default_mask(unsigned long mask); -int ASN1_STRING_set_default_mask_asc(const char *p); -unsigned long ASN1_STRING_get_default_mask(void); -int ASN1_mbstring_copy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask); -int ASN1_mbstring_ncopy(ASN1_STRING **out, const unsigned char *in, int len, - int inform, unsigned long mask, - long minsize, long maxsize); - -ASN1_STRING *ASN1_STRING_set_by_NID(ASN1_STRING **out, - const unsigned char *in, int inlen, - int inform, int nid); -ASN1_STRING_TABLE *ASN1_STRING_TABLE_get(int nid); -int ASN1_STRING_TABLE_add(int, long, long, unsigned long, unsigned long); -void ASN1_STRING_TABLE_cleanup(void); - -/* ASN1 template functions */ - -/* Old API compatible functions */ -ASN1_VALUE *ASN1_item_new(const ASN1_ITEM *it); -void ASN1_item_free(ASN1_VALUE *val, const ASN1_ITEM *it); -ASN1_VALUE *ASN1_item_d2i(ASN1_VALUE **val, const unsigned char **in, - long len, const ASN1_ITEM *it); -int ASN1_item_i2d(ASN1_VALUE *val, unsigned char **out, const ASN1_ITEM *it); -int ASN1_item_ndef_i2d(ASN1_VALUE *val, unsigned char **out, - const ASN1_ITEM *it); - -void ASN1_add_oid_module(void); -void ASN1_add_stable_module(void); - -ASN1_TYPE *ASN1_generate_nconf(const char *str, CONF *nconf); -ASN1_TYPE *ASN1_generate_v3(const char *str, X509V3_CTX *cnf); -int ASN1_str2mask(const char *str, unsigned long *pmask); - -/* ASN1 Print flags */ - -/* Indicate missing OPTIONAL fields */ -# define ASN1_PCTX_FLAGS_SHOW_ABSENT 0x001 -/* Mark start and end of SEQUENCE */ -# define ASN1_PCTX_FLAGS_SHOW_SEQUENCE 0x002 -/* Mark start and end of SEQUENCE/SET OF */ -# define ASN1_PCTX_FLAGS_SHOW_SSOF 0x004 -/* Show the ASN1 type of primitives */ -# define ASN1_PCTX_FLAGS_SHOW_TYPE 0x008 -/* Don't show ASN1 type of ANY */ -# define ASN1_PCTX_FLAGS_NO_ANY_TYPE 0x010 -/* Don't show ASN1 type of MSTRINGs */ -# define ASN1_PCTX_FLAGS_NO_MSTRING_TYPE 0x020 -/* Don't show field names in SEQUENCE */ -# define ASN1_PCTX_FLAGS_NO_FIELD_NAME 0x040 -/* Show structure names of each SEQUENCE field */ -# define ASN1_PCTX_FLAGS_SHOW_FIELD_STRUCT_NAME 0x080 -/* Don't show structure name even at top level */ -# define ASN1_PCTX_FLAGS_NO_STRUCT_NAME 0x100 - -int ASN1_item_print(BIO *out, ASN1_VALUE *ifld, int indent, - const ASN1_ITEM *it, const ASN1_PCTX *pctx); -ASN1_PCTX *ASN1_PCTX_new(void); -void ASN1_PCTX_free(ASN1_PCTX *p); -unsigned long ASN1_PCTX_get_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_nm_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_nm_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_cert_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_cert_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_oid_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_oid_flags(ASN1_PCTX *p, unsigned long flags); -unsigned long ASN1_PCTX_get_str_flags(const ASN1_PCTX *p); -void ASN1_PCTX_set_str_flags(ASN1_PCTX *p, unsigned long flags); - -ASN1_SCTX *ASN1_SCTX_new(int (*scan_cb) (ASN1_SCTX *ctx)); -void ASN1_SCTX_free(ASN1_SCTX *p); -const ASN1_ITEM *ASN1_SCTX_get_item(ASN1_SCTX *p); -const ASN1_TEMPLATE *ASN1_SCTX_get_template(ASN1_SCTX *p); -unsigned long ASN1_SCTX_get_flags(ASN1_SCTX *p); -void ASN1_SCTX_set_app_data(ASN1_SCTX *p, void *data); -void *ASN1_SCTX_get_app_data(ASN1_SCTX *p); - -const BIO_METHOD *BIO_f_asn1(void); - -BIO *BIO_new_NDEF(BIO *out, ASN1_VALUE *val, const ASN1_ITEM *it); - -int i2d_ASN1_bio_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const ASN1_ITEM *it); -int PEM_write_bio_ASN1_stream(BIO *out, ASN1_VALUE *val, BIO *in, int flags, - const char *hdr, const ASN1_ITEM *it); -int SMIME_write_ASN1(BIO *bio, ASN1_VALUE *val, BIO *data, int flags, - int ctype_nid, int econt_nid, - STACK_OF(X509_ALGOR) *mdalgs, const ASN1_ITEM *it); -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); - -const ASN1_ITEM *ASN1_ITEM_lookup(const char *name); -const ASN1_ITEM *ASN1_ITEM_get(size_t i); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/asn1_mac.h b/openSSL/lin64/include/openssl/asn1_mac.h deleted file mode 100644 index 7ac1782..0000000 --- a/openSSL/lin64/include/openssl/asn1_mac.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2015-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 - */ - -#error "This file is obsolete; please update your software." diff --git a/openSSL/lin64/include/openssl/asn1err.h b/openSSL/lin64/include/openssl/asn1err.h deleted file mode 100644 index e1ad1fe..0000000 --- a/openSSL/lin64/include/openssl/asn1err.h +++ /dev/null @@ -1,256 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# include - -# 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_EX_I2D 144 -# 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_BAD_TEMPLATE 230 -# 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/openSSL/lin64/include/openssl/asn1t.h b/openSSL/lin64/include/openssl/asn1t.h deleted file mode 100644 index a450ba0..0000000 --- a/openSSL/lin64/include/openssl/asn1t.h +++ /dev/null @@ -1,945 +0,0 @@ -/* - * Copyright 2000-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_ASN1T_H -# define HEADER_ASN1T_H - -# include -# include -# include - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -/* ASN1 template defines, structures and functions */ - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)(iptr)) - -/* Macros for start and end of ASN1_ITEM definition */ - -# define ASN1_ITEM_start(itname) \ - const ASN1_ITEM itname##_it = { - -# define static_ASN1_ITEM_start(itname) \ - static const ASN1_ITEM itname##_it = { - -# define ASN1_ITEM_end(itname) \ - }; - -# else - -/* Macro to obtain ASN1_ADB pointer from a type (only used internally) */ -# define ASN1_ADB_ptr(iptr) ((const ASN1_ADB *)((iptr)())) - -/* Macros for start and end of ASN1_ITEM definition */ - -# define ASN1_ITEM_start(itname) \ - const ASN1_ITEM * itname##_it(void) \ - { \ - static const ASN1_ITEM local_it = { - -# define static_ASN1_ITEM_start(itname) \ - static ASN1_ITEM_start(itname) - -# define ASN1_ITEM_end(itname) \ - }; \ - return &local_it; \ - } - -# endif - -/* Macros to aid ASN1 template writing */ - -# define ASN1_ITEM_TEMPLATE(tname) \ - static const ASN1_TEMPLATE tname##_item_tt - -# define ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_ITEM_TEMPLATE_END(tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_PRIMITIVE,\ - -1,\ - &tname##_item_tt,\ - 0,\ - NULL,\ - 0,\ - #tname \ - ASN1_ITEM_end(tname) - -/* This is a ASN1 type which just embeds a template */ - -/*- - * This pair helps declare a SEQUENCE. We can do: - * - * ASN1_SEQUENCE(stname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END(stname) - * - * This will produce an ASN1_ITEM called stname_it - * for a structure called stname. - * - * If you want the same structure but a different - * name then use: - * - * ASN1_SEQUENCE(itname) = { - * ... SEQUENCE components ... - * } ASN1_SEQUENCE_END_name(stname, itname) - * - * This will create an item called itname_it using - * a structure called stname. - */ - -# define ASN1_SEQUENCE(tname) \ - static const ASN1_TEMPLATE tname##_seq_tt[] - -# define ASN1_SEQUENCE_END(stname) ASN1_SEQUENCE_END_name(stname, stname) - -# define static_ASN1_SEQUENCE_END(stname) static_ASN1_SEQUENCE_END_name(stname, stname) - -# define ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #tname \ - ASN1_ITEM_end(tname) - -# define static_ASN1_SEQUENCE_END_name(stname, tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE(tname) \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_cb(tname, cb) \ - ASN1_SEQUENCE_cb(tname, cb) - -# define ASN1_SEQUENCE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_BROKEN_SEQUENCE(tname) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_BROKEN, 0, 0, 0, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_ref(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_REFCOUNT, offsetof(tname, references), offsetof(tname, lock), cb, 0}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_SEQUENCE_enc(tname, enc, cb) \ - static const ASN1_AUX tname##_aux = {NULL, ASN1_AFLG_ENCODING, 0, 0, cb, offsetof(tname, enc)}; \ - ASN1_SEQUENCE(tname) - -# define ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_NDEF_SEQUENCE_END(tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(tname),\ - #tname \ - ASN1_ITEM_end(tname) - -# define ASN1_BROKEN_SEQUENCE_END(stname) ASN1_SEQUENCE_END_ref(stname, stname) -# define static_ASN1_BROKEN_SEQUENCE_END(stname) \ - static_ASN1_SEQUENCE_END_ref(stname, stname) - -# define ASN1_SEQUENCE_END_enc(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_cb(stname, tname) ASN1_SEQUENCE_END_ref(stname, tname) -# define static_ASN1_SEQUENCE_END_cb(stname, tname) static_ASN1_SEQUENCE_END_ref(stname, tname) - -# define ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #tname \ - ASN1_ITEM_end(tname) -# define static_ASN1_SEQUENCE_END_ref(stname, tname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_NDEF_SEQUENCE_END_cb(stname, tname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_NDEF_SEQUENCE,\ - V_ASN1_SEQUENCE,\ - tname##_seq_tt,\ - sizeof(tname##_seq_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/*- - * This pair helps declare a CHOICE type. We can do: - * - * ASN1_CHOICE(chname) = { - * ... CHOICE options ... - * ASN1_CHOICE_END(chname) - * - * This will produce an ASN1_ITEM called chname_it - * for a structure called chname. The structure - * definition must look like this: - * typedef struct { - * int type; - * union { - * ASN1_SOMETHING *opt1; - * ASN1_SOMEOTHER *opt2; - * } value; - * } chname; - * - * the name of the selector must be 'type'. - * to use an alternative selector name use the - * ASN1_CHOICE_END_selector() version. - */ - -# define ASN1_CHOICE(tname) \ - static const ASN1_TEMPLATE tname##_ch_tt[] - -# define ASN1_CHOICE_cb(tname, cb) \ - static const ASN1_AUX tname##_aux = {NULL, 0, 0, 0, cb, 0}; \ - ASN1_CHOICE(tname) - -# define ASN1_CHOICE_END(stname) ASN1_CHOICE_END_name(stname, stname) - -# define static_ASN1_CHOICE_END(stname) static_ASN1_CHOICE_END_name(stname, stname) - -# define ASN1_CHOICE_END_name(stname, tname) ASN1_CHOICE_END_selector(stname, tname, type) - -# define static_ASN1_CHOICE_END_name(stname, tname) static_ASN1_CHOICE_END_selector(stname, tname, type) - -# define ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define static_ASN1_CHOICE_END_selector(stname, tname, selname) \ - ;\ - static_ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - NULL,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -# define ASN1_CHOICE_END_cb(stname, tname, selname) \ - ;\ - ASN1_ITEM_start(tname) \ - ASN1_ITYPE_CHOICE,\ - offsetof(stname,selname) ,\ - tname##_ch_tt,\ - sizeof(tname##_ch_tt) / sizeof(ASN1_TEMPLATE),\ - &tname##_aux,\ - sizeof(stname),\ - #stname \ - ASN1_ITEM_end(tname) - -/* This helps with the template wrapper form of ASN1_ITEM */ - -# define ASN1_EX_TEMPLATE_TYPE(flags, tag, name, type) { \ - (flags), (tag), 0,\ - #name, ASN1_ITEM_ref(type) } - -/* These help with SEQUENCE or CHOICE components */ - -/* used to declare other types */ - -# define ASN1_EX_TYPE(flags, tag, stname, field, type) { \ - (flags), (tag), offsetof(stname, field),\ - #field, ASN1_ITEM_ref(type) } - -/* 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) - -# define ASN1_EXP_EX(stname, field, type, tag, ex) \ - ASN1_EX_TYPE(ASN1_TFLG_EXPLICIT | (ex), tag, stname, field, type) - -/* Any defined by macros: the field used is in the table itself */ - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } -# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, (const ASN1_ITEM *)&(tblname##_adb) } -# else -# define ASN1_ADB_OBJECT(tblname) { ASN1_TFLG_ADB_OID, -1, 0, #tblname, tblname##_adb } -# define ASN1_ADB_INTEGER(tblname) { ASN1_TFLG_ADB_INT, -1, 0, #tblname, tblname##_adb } -# endif -/* Plain simple type */ -# define ASN1_SIMPLE(stname, field, type) ASN1_EX_TYPE(0,0, stname, field, type) -/* Embedded simple type */ -# define ASN1_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_EMBED,0, stname, field, type) - -/* OPTIONAL simple type */ -# define ASN1_OPT(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL, 0, stname, field, type) -# define ASN1_OPT_EMBED(stname, field, type) ASN1_EX_TYPE(ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED, 0, stname, field, type) - -/* IMPLICIT tagged simple type */ -# define ASN1_IMP(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, 0) -# define ASN1_IMP_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) - -/* IMPLICIT tagged OPTIONAL simple type */ -# define ASN1_IMP_OPT(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) -# define ASN1_IMP_OPT_EMBED(stname, field, type, tag) ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) - -/* Same as above but EXPLICIT */ - -# define ASN1_EXP(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, 0) -# define ASN1_EXP_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_EMBED) -# define ASN1_EXP_OPT(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL) -# define ASN1_EXP_OPT_EMBED(stname, field, type, tag) ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_EMBED) - -/* SEQUENCE OF type */ -# define ASN1_SEQUENCE_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF, 0, stname, field, type) - -/* OPTIONAL SEQUENCE OF */ -# define ASN1_SEQUENCE_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Same as above but for SET OF */ - -# define ASN1_SET_OF(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF, 0, stname, field, type) - -# define ASN1_SET_OF_OPT(stname, field, type) \ - ASN1_EX_TYPE(ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL, 0, stname, field, type) - -/* Finally compound types of SEQUENCE, SET, IMPLICIT, EXPLICIT and OPTIONAL */ - -# define ASN1_IMP_SET_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_EXP_SET_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF) - -# define ASN1_IMP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SET_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SET_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_IMP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_IMP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_IMP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -# define ASN1_EXP_SEQUENCE_OF(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF) - -# define ASN1_EXP_SEQUENCE_OF_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_SEQUENCE_OF|ASN1_TFLG_OPTIONAL) - -/* EXPLICIT using indefinite length constructed form */ -# define ASN1_NDEF_EXP(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_NDEF) - -/* EXPLICIT OPTIONAL using indefinite length constructed form */ -# define ASN1_NDEF_EXP_OPT(stname, field, type, tag) \ - ASN1_EXP_EX(stname, field, type, tag, ASN1_TFLG_OPTIONAL|ASN1_TFLG_NDEF) - -/* Macros for the ASN1_ADB structure */ - -# define ASN1_ADB(name) \ - static const ASN1_ADB_TABLE name##_adbtbl[] - -# ifndef OPENSSL_EXPORT_VAR_AS_FUNCTION - -# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ - ;\ - static const ASN1_ADB name##_adb = {\ - flags,\ - offsetof(name, field),\ - adb_cb,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - } - -# else - -# define ASN1_ADB_END(name, flags, field, adb_cb, def, none) \ - ;\ - static const ASN1_ITEM *name##_adb(void) \ - { \ - static const ASN1_ADB internal_adb = \ - {\ - flags,\ - offsetof(name, field),\ - adb_cb,\ - name##_adbtbl,\ - sizeof(name##_adbtbl) / sizeof(ASN1_ADB_TABLE),\ - def,\ - none\ - }; \ - return (const ASN1_ITEM *) &internal_adb; \ - } \ - void dummy_function(void) - -# endif - -# define ADB_ENTRY(val, template) {val, template} - -# define ASN1_ADB_TEMPLATE(name) \ - static const ASN1_TEMPLATE name##_tt - -/* - * This is the ASN1 template structure that defines a wrapper round the - * actual type. It determines the actual position of the field in the value - * structure, various flags such as OPTIONAL and the field name. - */ - -struct ASN1_TEMPLATE_st { - unsigned long flags; /* Various flags */ - long tag; /* tag, not used if no tagging */ - unsigned long offset; /* Offset of this field in structure */ - const char *field_name; /* Field name */ - ASN1_ITEM_EXP *item; /* Relevant ASN1_ITEM or ASN1_ADB */ -}; - -/* Macro to extract ASN1_ITEM and ASN1_ADB pointer from ASN1_TEMPLATE */ - -# define ASN1_TEMPLATE_item(t) (t->item_ptr) -# define ASN1_TEMPLATE_adb(t) (t->item_ptr) - -typedef struct ASN1_ADB_TABLE_st ASN1_ADB_TABLE; -typedef struct ASN1_ADB_st ASN1_ADB; - -struct ASN1_ADB_st { - unsigned long flags; /* Various flags */ - unsigned long offset; /* Offset of selector field */ - int (*adb_cb)(long *psel); /* Application callback */ - const ASN1_ADB_TABLE *tbl; /* Table of possible types */ - long tblcount; /* Number of entries in tbl */ - const ASN1_TEMPLATE *default_tt; /* Type to use if no match */ - const ASN1_TEMPLATE *null_tt; /* Type to use if selector is NULL */ -}; - -struct ASN1_ADB_TABLE_st { - long value; /* NID for an object or value for an int */ - const ASN1_TEMPLATE tt; /* item for this value */ -}; - -/* template flags */ - -/* Field is optional */ -# define ASN1_TFLG_OPTIONAL (0x1) - -/* Field is a SET OF */ -# define ASN1_TFLG_SET_OF (0x1 << 1) - -/* Field is a SEQUENCE OF */ -# define ASN1_TFLG_SEQUENCE_OF (0x2 << 1) - -/* - * Special case: this refers to a SET OF that will be sorted into DER order - * when encoded *and* the corresponding STACK will be modified to match the - * new order. - */ -# define ASN1_TFLG_SET_ORDER (0x3 << 1) - -/* Mask for SET OF or SEQUENCE OF */ -# define ASN1_TFLG_SK_MASK (0x3 << 1) - -/* - * These flags mean the tag should be taken from the tag field. If EXPLICIT - * then the underlying type is used for the inner tag. - */ - -/* IMPLICIT tagging */ -# define ASN1_TFLG_IMPTAG (0x1 << 3) - -/* EXPLICIT tagging, inner tag from underlying type */ -# define ASN1_TFLG_EXPTAG (0x2 << 3) - -# define ASN1_TFLG_TAG_MASK (0x3 << 3) - -/* context specific IMPLICIT */ -# define ASN1_TFLG_IMPLICIT (ASN1_TFLG_IMPTAG|ASN1_TFLG_CONTEXT) - -/* context specific EXPLICIT */ -# define ASN1_TFLG_EXPLICIT (ASN1_TFLG_EXPTAG|ASN1_TFLG_CONTEXT) - -/* - * If tagging is in force these determine the type of tag to use. Otherwise - * the tag is determined by the underlying type. These values reflect the - * actual octet format. - */ - -/* Universal tag */ -# define ASN1_TFLG_UNIVERSAL (0x0<<6) -/* Application tag */ -# define ASN1_TFLG_APPLICATION (0x1<<6) -/* Context specific tag */ -# define ASN1_TFLG_CONTEXT (0x2<<6) -/* Private tag */ -# define ASN1_TFLG_PRIVATE (0x3<<6) - -# define ASN1_TFLG_TAG_CLASS (0x3<<6) - -/* - * These are for ANY DEFINED BY type. In this case the 'item' field points to - * an ASN1_ADB structure which contains a table of values to decode the - * relevant type - */ - -# define ASN1_TFLG_ADB_MASK (0x3<<8) - -# define ASN1_TFLG_ADB_OID (0x1<<8) - -# define ASN1_TFLG_ADB_INT (0x1<<9) - -/* - * This flag when present in a SEQUENCE OF, SET OF or EXPLICIT causes - * indefinite length constructed encoding to be used if required. - */ - -# define ASN1_TFLG_NDEF (0x1<<11) - -/* Field is embedded and not a pointer */ -# define ASN1_TFLG_EMBED (0x1 << 12) - -/* This is the actual ASN1 item itself */ - -struct ASN1_ITEM_st { - char itype; /* The item type, primitive, SEQUENCE, CHOICE - * or extern */ - long utype; /* underlying type */ - const ASN1_TEMPLATE *templates; /* If SEQUENCE or CHOICE this contains - * the contents */ - long tcount; /* Number of templates if SEQUENCE or CHOICE */ - const void *funcs; /* functions that handle this type */ - long size; /* Structure size (usually) */ - const char *sname; /* Structure name */ -}; - -/*- - * These are values for the itype field and - * determine how the type is interpreted. - * - * For PRIMITIVE types the underlying type - * determines the behaviour if items is NULL. - * - * Otherwise templates must contain a single - * template and the type is treated in the - * same way as the type specified in the template. - * - * For SEQUENCE types the templates field points - * to the members, the size field is the - * structure size. - * - * For CHOICE types the templates field points - * to each possible member (typically a union) - * and the 'size' field is the offset of the - * selector. - * - * The 'funcs' field is used for application - * specific functions. - * - * The EXTERN type uses a new style d2i/i2d. - * The new style should be used where possible - * because it avoids things like the d2i IMPLICIT - * hack. - * - * MSTRING is a multiple string type, it is used - * for a CHOICE of character strings where the - * actual strings all occupy an ASN1_STRING - * structure. In this case the 'utype' field - * has a special meaning, it is used as a mask - * of acceptable types using the B_ASN1 constants. - * - * NDEF_SEQUENCE is the same as SEQUENCE except - * that it will use indefinite length constructed - * encoding if requested. - * - */ - -# define ASN1_ITYPE_PRIMITIVE 0x0 - -# define ASN1_ITYPE_SEQUENCE 0x1 - -# define ASN1_ITYPE_CHOICE 0x2 - -# define ASN1_ITYPE_EXTERN 0x4 - -# define ASN1_ITYPE_MSTRING 0x5 - -# define ASN1_ITYPE_NDEF_SEQUENCE 0x6 - -/* - * Cache for ASN1 tag and length, so we don't keep re-reading it for things - * like CHOICE - */ - -struct ASN1_TLC_st { - char valid; /* Values below are valid */ - int ret; /* return value */ - long plen; /* length */ - int ptag; /* class value */ - int pclass; /* class value */ - int hdrlen; /* header length */ -}; - -/* Typedefs for ASN1 function pointers */ -typedef int ASN1_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -typedef int ASN1_ex_i2d(ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); -typedef int ASN1_ex_new_func(ASN1_VALUE **pval, const ASN1_ITEM *it); -typedef void ASN1_ex_free_func(ASN1_VALUE **pval, const ASN1_ITEM *it); - -typedef int ASN1_ex_print_func(BIO *out, ASN1_VALUE **pval, - int indent, const char *fname, - const ASN1_PCTX *pctx); - -typedef int ASN1_primitive_i2c(ASN1_VALUE **pval, unsigned char *cont, - int *putype, const ASN1_ITEM *it); -typedef int ASN1_primitive_c2i(ASN1_VALUE **pval, const unsigned char *cont, - int len, int utype, char *free_cont, - const ASN1_ITEM *it); -typedef int ASN1_primitive_print(BIO *out, ASN1_VALUE **pval, - const ASN1_ITEM *it, int indent, - const ASN1_PCTX *pctx); - -typedef struct ASN1_EXTERN_FUNCS_st { - void *app_data; - ASN1_ex_new_func *asn1_ex_new; - ASN1_ex_free_func *asn1_ex_free; - ASN1_ex_free_func *asn1_ex_clear; - ASN1_ex_d2i *asn1_ex_d2i; - ASN1_ex_i2d *asn1_ex_i2d; - ASN1_ex_print_func *asn1_ex_print; -} ASN1_EXTERN_FUNCS; - -typedef struct ASN1_PRIMITIVE_FUNCS_st { - void *app_data; - unsigned long flags; - ASN1_ex_new_func *prim_new; - ASN1_ex_free_func *prim_free; - ASN1_ex_free_func *prim_clear; - ASN1_primitive_c2i *prim_c2i; - ASN1_primitive_i2c *prim_i2c; - ASN1_primitive_print *prim_print; -} ASN1_PRIMITIVE_FUNCS; - -/* - * This is the ASN1_AUX structure: it handles various miscellaneous - * requirements. For example the use of reference counts and an informational - * callback. The "informational callback" is called at various points during - * the ASN1 encoding and decoding. It can be used to provide minor - * customisation of the structures used. This is most useful where the - * supplied routines *almost* do the right thing but need some extra help at - * a few points. If the callback returns zero then it is assumed a fatal - * error has occurred and the main operation should be abandoned. If major - * changes in the default behaviour are required then an external type is - * more appropriate. - */ - -typedef int ASN1_aux_cb(int operation, ASN1_VALUE **in, const ASN1_ITEM *it, - void *exarg); - -typedef struct ASN1_AUX_st { - void *app_data; - int flags; - int ref_offset; /* Offset of reference value */ - int ref_lock; /* Lock type to use */ - ASN1_aux_cb *asn1_cb; - int enc_offset; /* Offset of ASN1_ENCODING structure */ -} ASN1_AUX; - -/* For print related callbacks exarg points to this structure */ -typedef struct ASN1_PRINT_ARG_st { - BIO *out; - int indent; - const ASN1_PCTX *pctx; -} ASN1_PRINT_ARG; - -/* For streaming related callbacks exarg points to this structure */ -typedef struct ASN1_STREAM_ARG_st { - /* BIO to stream through */ - BIO *out; - /* BIO with filters appended */ - BIO *ndef_bio; - /* Streaming I/O boundary */ - unsigned char **boundary; -} ASN1_STREAM_ARG; - -/* Flags in ASN1_AUX */ - -/* Use a reference count */ -# define ASN1_AFLG_REFCOUNT 1 -/* Save the encoding of structure (useful for signatures) */ -# define ASN1_AFLG_ENCODING 2 -/* The Sequence length is invalid */ -# define ASN1_AFLG_BROKEN 4 - -/* operation values for asn1_cb */ - -# define ASN1_OP_NEW_PRE 0 -# define ASN1_OP_NEW_POST 1 -# define ASN1_OP_FREE_PRE 2 -# define ASN1_OP_FREE_POST 3 -# define ASN1_OP_D2I_PRE 4 -# define ASN1_OP_D2I_POST 5 -# define ASN1_OP_I2D_PRE 6 -# define ASN1_OP_I2D_POST 7 -# define ASN1_OP_PRINT_PRE 8 -# define ASN1_OP_PRINT_POST 9 -# define ASN1_OP_STREAM_PRE 10 -# define ASN1_OP_STREAM_POST 11 -# define ASN1_OP_DETACHED_PRE 12 -# define ASN1_OP_DETACHED_POST 13 - -/* Macro to implement a primitive type */ -# define IMPLEMENT_ASN1_TYPE(stname) IMPLEMENT_ASN1_TYPE_ex(stname, stname, 0) -# define IMPLEMENT_ASN1_TYPE_ex(itname, vname, ex) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_PRIMITIVE, V_##vname, NULL, 0, NULL, ex, #itname \ - ASN1_ITEM_end(itname) - -/* Macro to implement a multi string type */ -# define IMPLEMENT_ASN1_MSTRING(itname, mask) \ - ASN1_ITEM_start(itname) \ - ASN1_ITYPE_MSTRING, mask, NULL, 0, NULL, sizeof(ASN1_STRING), #itname \ - ASN1_ITEM_end(itname) - -# define IMPLEMENT_EXTERN_ASN1(sname, tag, fptrs) \ - ASN1_ITEM_start(sname) \ - ASN1_ITYPE_EXTERN, \ - tag, \ - NULL, \ - 0, \ - &fptrs, \ - 0, \ - #sname \ - ASN1_ITEM_end(sname) - -/* Macro to implement standard functions in terms of ASN1_ITEM structures */ - -# define IMPLEMENT_ASN1_FUNCTIONS(stname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_FUNCTIONS_name(stname, itname) IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, itname) - -# define IMPLEMENT_ASN1_FUNCTIONS_ENCODE_name(stname, itname) \ - IMPLEMENT_ASN1_FUNCTIONS_ENCODE_fname(stname, itname, itname) - -# define IMPLEMENT_STATIC_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(static, stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS(stname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_pfname(pre, stname, itname, fname) \ - pre stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - pre void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) \ - stname *fname##_new(void) \ - { \ - return (stname *)ASN1_item_new(ASN1_ITEM_rptr(itname)); \ - } \ - void fname##_free(stname *a) \ - { \ - ASN1_item_free((ASN1_VALUE *)a, ASN1_ITEM_rptr(itname)); \ - } - -# define IMPLEMENT_ASN1_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -# define IMPLEMENT_ASN1_NDEF_FUNCTION(stname) \ - int i2d_##stname##_NDEF(stname *a, unsigned char **out) \ - { \ - return ASN1_item_ndef_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(stname));\ - } - -# define IMPLEMENT_STATIC_ASN1_ENCODE_FUNCTIONS(stname) \ - static stname *d2i_##stname(stname **a, \ - const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, \ - ASN1_ITEM_rptr(stname)); \ - } \ - static int i2d_##stname(stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, \ - ASN1_ITEM_rptr(stname)); \ - } - -/* - * This includes evil casts to remove const: they will go away when full ASN1 - * constification is done. - */ -# define IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - stname *d2i_##fname(stname **a, const unsigned char **in, long len) \ - { \ - return (stname *)ASN1_item_d2i((ASN1_VALUE **)a, in, len, ASN1_ITEM_rptr(itname));\ - } \ - int i2d_##fname(const stname *a, unsigned char **out) \ - { \ - return ASN1_item_i2d((ASN1_VALUE *)a, out, ASN1_ITEM_rptr(itname));\ - } - -# define IMPLEMENT_ASN1_DUP_FUNCTION(stname) \ - stname * stname##_dup(stname *x) \ - { \ - return ASN1_item_dup(ASN1_ITEM_rptr(stname), x); \ - } - -# define IMPLEMENT_ASN1_PRINT_FUNCTION(stname) \ - IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, stname, stname) - -# define IMPLEMENT_ASN1_PRINT_FUNCTION_fname(stname, itname, fname) \ - int fname##_print_ctx(BIO *out, stname *x, int indent, \ - const ASN1_PCTX *pctx) \ - { \ - return ASN1_item_print(out, (ASN1_VALUE *)x, indent, \ - ASN1_ITEM_rptr(itname), pctx); \ - } - -# define IMPLEMENT_ASN1_FUNCTIONS_const(name) \ - IMPLEMENT_ASN1_FUNCTIONS_const_fname(name, name, name) - -# define IMPLEMENT_ASN1_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ENCODE_FUNCTIONS_const_fname(stname, itname, fname) \ - IMPLEMENT_ASN1_ALLOC_FUNCTIONS_fname(stname, itname, fname) - -/* external definitions for primitive types */ - -DECLARE_ASN1_ITEM(ASN1_BOOLEAN) -DECLARE_ASN1_ITEM(ASN1_TBOOLEAN) -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) - -/* Functions used internally by the ASN1 code */ - -int ASN1_item_ex_new(ASN1_VALUE **pval, const ASN1_ITEM *it); -void ASN1_item_ex_free(ASN1_VALUE **pval, const ASN1_ITEM *it); - -int ASN1_item_ex_d2i(ASN1_VALUE **pval, const unsigned char **in, long len, - const ASN1_ITEM *it, int tag, int aclass, char opt, - ASN1_TLC *ctx); - -int ASN1_item_ex_i2d(ASN1_VALUE **pval, unsigned char **out, - const ASN1_ITEM *it, int tag, int aclass); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin64/include/openssl/async.h b/openSSL/lin64/include/openssl/async.h deleted file mode 100644 index 7052b89..0000000 --- a/openSSL/lin64/include/openssl/async.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#include - -#ifndef HEADER_ASYNC_H -# define HEADER_ASYNC_H - -#if defined(_WIN32) -# if defined(BASETYPES) || defined(_WINDEF_H) -/* application has to include to use this */ -#define OSSL_ASYNC_FD HANDLE -#define OSSL_BAD_ASYNC_FD INVALID_HANDLE_VALUE -# endif -#else -#define OSSL_ASYNC_FD int -#define OSSL_BAD_ASYNC_FD -1 -#endif -# include - - -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct async_job_st ASYNC_JOB; -typedef struct async_wait_ctx_st ASYNC_WAIT_CTX; - -#define ASYNC_ERR 0 -#define ASYNC_NO_JOBS 1 -#define ASYNC_PAUSE 2 -#define ASYNC_FINISH 3 - -int ASYNC_init_thread(size_t max_size, size_t init_size); -void ASYNC_cleanup_thread(void); - -#ifdef OSSL_ASYNC_FD -ASYNC_WAIT_CTX *ASYNC_WAIT_CTX_new(void); -void ASYNC_WAIT_CTX_free(ASYNC_WAIT_CTX *ctx); -int ASYNC_WAIT_CTX_set_wait_fd(ASYNC_WAIT_CTX *ctx, const void *key, - OSSL_ASYNC_FD fd, - void *custom_data, - void (*cleanup)(ASYNC_WAIT_CTX *, const void *, - OSSL_ASYNC_FD, void *)); -int ASYNC_WAIT_CTX_get_fd(ASYNC_WAIT_CTX *ctx, const void *key, - OSSL_ASYNC_FD *fd, void **custom_data); -int ASYNC_WAIT_CTX_get_all_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *fd, - size_t *numfds); -int ASYNC_WAIT_CTX_get_changed_fds(ASYNC_WAIT_CTX *ctx, OSSL_ASYNC_FD *addfd, - size_t *numaddfds, OSSL_ASYNC_FD *delfd, - size_t *numdelfds); -int ASYNC_WAIT_CTX_clear_fd(ASYNC_WAIT_CTX *ctx, const void *key); -#endif - -int ASYNC_is_capable(void); - -int ASYNC_start_job(ASYNC_JOB **job, ASYNC_WAIT_CTX *ctx, int *ret, - int (*func)(void *), void *args, size_t size); -int ASYNC_pause_job(void); - -ASYNC_JOB *ASYNC_get_current_job(void); -ASYNC_WAIT_CTX *ASYNC_get_wait_ctx(ASYNC_JOB *job); -void ASYNC_block_pause(void); -void ASYNC_unblock_pause(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/asyncerr.h b/openSSL/lin64/include/openssl/asyncerr.h deleted file mode 100644 index 91afbbb..0000000 --- a/openSSL/lin64/include/openssl/asyncerr.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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_ASYNCERR_H -# define HEADER_ASYNCERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/bio.h b/openSSL/lin64/include/openssl/bio.h deleted file mode 100644 index ae559a5..0000000 --- a/openSSL/lin64/include/openssl/bio.h +++ /dev/null @@ -1,801 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_BIO_H -# define HEADER_BIO_H - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* There are the classes of BIOs */ -# define BIO_TYPE_DESCRIPTOR 0x0100 /* socket, fd, connect or accept */ -# define BIO_TYPE_FILTER 0x0200 -# define BIO_TYPE_SOURCE_SINK 0x0400 - -/* These are the 'types' of BIOs */ -# define BIO_TYPE_NONE 0 -# define BIO_TYPE_MEM ( 1|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_FILE ( 2|BIO_TYPE_SOURCE_SINK) - -# define BIO_TYPE_FD ( 4|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_SOCKET ( 5|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_NULL ( 6|BIO_TYPE_SOURCE_SINK) -# define BIO_TYPE_SSL ( 7|BIO_TYPE_FILTER) -# define BIO_TYPE_MD ( 8|BIO_TYPE_FILTER) -# define BIO_TYPE_BUFFER ( 9|BIO_TYPE_FILTER) -# define BIO_TYPE_CIPHER (10|BIO_TYPE_FILTER) -# define BIO_TYPE_BASE64 (11|BIO_TYPE_FILTER) -# define BIO_TYPE_CONNECT (12|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_ACCEPT (13|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) - -# define BIO_TYPE_NBIO_TEST (16|BIO_TYPE_FILTER)/* server proxy BIO */ -# define BIO_TYPE_NULL_FILTER (17|BIO_TYPE_FILTER) -# define BIO_TYPE_BIO (19|BIO_TYPE_SOURCE_SINK)/* half a BIO pair */ -# define BIO_TYPE_LINEBUFFER (20|BIO_TYPE_FILTER) -# define BIO_TYPE_DGRAM (21|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# define BIO_TYPE_ASN1 (22|BIO_TYPE_FILTER) -# define BIO_TYPE_COMP (23|BIO_TYPE_FILTER) -# ifndef OPENSSL_NO_SCTP -# define BIO_TYPE_DGRAM_SCTP (24|BIO_TYPE_SOURCE_SINK|BIO_TYPE_DESCRIPTOR) -# endif - -#define BIO_TYPE_START 128 - -/* - * BIO_FILENAME_READ|BIO_CLOSE to open or close on free. - * BIO_set_fp(in,stdin,BIO_NOCLOSE); - */ -# define BIO_NOCLOSE 0x00 -# define BIO_CLOSE 0x01 - -/* - * These are used in the following macros and are passed to BIO_ctrl() - */ -# define BIO_CTRL_RESET 1/* opt - rewind/zero etc */ -# define BIO_CTRL_EOF 2/* opt - are we at the eof */ -# define BIO_CTRL_INFO 3/* opt - extra tit-bits */ -# define BIO_CTRL_SET 4/* man - set the 'IO' type */ -# define BIO_CTRL_GET 5/* man - get the 'IO' type */ -# define BIO_CTRL_PUSH 6/* opt - internal, used to signify change */ -# define BIO_CTRL_POP 7/* opt - internal, used to signify change */ -# define BIO_CTRL_GET_CLOSE 8/* man - set the 'close' on free */ -# define BIO_CTRL_SET_CLOSE 9/* man - set the 'close' on free */ -# define BIO_CTRL_PENDING 10/* opt - is their more data buffered */ -# define BIO_CTRL_FLUSH 11/* opt - 'flush' buffered output */ -# define BIO_CTRL_DUP 12/* man - extra stuff for 'duped' BIO */ -# define BIO_CTRL_WPENDING 13/* opt - number of bytes still to write */ -# 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 */ -# define BIO_CTRL_DGRAM_CONNECT 31/* BIO dgram special */ -# define BIO_CTRL_DGRAM_SET_CONNECTED 32/* allow for an externally connected - * socket to be passed in */ -# define BIO_CTRL_DGRAM_SET_RECV_TIMEOUT 33/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_RECV_TIMEOUT 34/* getsockopt, essentially */ -# define BIO_CTRL_DGRAM_SET_SEND_TIMEOUT 35/* setsockopt, essentially */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMEOUT 36/* getsockopt, essentially */ - -# define BIO_CTRL_DGRAM_GET_RECV_TIMER_EXP 37/* flag whether the last */ -# define BIO_CTRL_DGRAM_GET_SEND_TIMER_EXP 38/* I/O operation tiemd out */ - -/* #ifdef IP_MTU_DISCOVER */ -# define BIO_CTRL_DGRAM_MTU_DISCOVER 39/* set DF bit on egress packets */ -/* #endif */ - -# define BIO_CTRL_DGRAM_QUERY_MTU 40/* as kernel for current MTU */ -# define BIO_CTRL_DGRAM_GET_FALLBACK_MTU 47 -# define BIO_CTRL_DGRAM_GET_MTU 41/* get cached value for MTU */ -# define BIO_CTRL_DGRAM_SET_MTU 42/* set cached value for MTU. - * want to use this if asking - * the kernel fails */ - -# define BIO_CTRL_DGRAM_MTU_EXCEEDED 43/* check whether the MTU was - * exceed in the previous write - * operation */ - -# define BIO_CTRL_DGRAM_GET_PEER 46 -# define BIO_CTRL_DGRAM_SET_PEER 44/* Destination for the data */ - -# define BIO_CTRL_DGRAM_SET_NEXT_TIMEOUT 45/* Next DTLS handshake timeout - * to adjust socket timeouts */ -# define BIO_CTRL_DGRAM_SET_DONT_FRAG 48 - -# define BIO_CTRL_DGRAM_GET_MTU_OVERHEAD 49 - -/* Deliberately outside of OPENSSL_NO_SCTP - used in bss_dgram.c */ -# define BIO_CTRL_DGRAM_SCTP_SET_IN_HANDSHAKE 50 -# ifndef OPENSSL_NO_SCTP -/* SCTP stuff */ -# define BIO_CTRL_DGRAM_SCTP_ADD_AUTH_KEY 51 -# define BIO_CTRL_DGRAM_SCTP_NEXT_AUTH_KEY 52 -# define BIO_CTRL_DGRAM_SCTP_AUTH_CCS_RCVD 53 -# define BIO_CTRL_DGRAM_SCTP_GET_SNDINFO 60 -# define BIO_CTRL_DGRAM_SCTP_SET_SNDINFO 61 -# define BIO_CTRL_DGRAM_SCTP_GET_RCVINFO 62 -# define BIO_CTRL_DGRAM_SCTP_SET_RCVINFO 63 -# define BIO_CTRL_DGRAM_SCTP_GET_PRINFO 64 -# define BIO_CTRL_DGRAM_SCTP_SET_PRINFO 65 -# define BIO_CTRL_DGRAM_SCTP_SAVE_SHUTDOWN 70 -# endif - -# define BIO_CTRL_DGRAM_SET_PEEK_MODE 71 - -/* modifiers */ -# define BIO_FP_READ 0x02 -# define BIO_FP_WRITE 0x04 -# define BIO_FP_APPEND 0x08 -# define BIO_FP_TEXT 0x10 - -# define BIO_FLAGS_READ 0x01 -# define BIO_FLAGS_WRITE 0x02 -# define BIO_FLAGS_IO_SPECIAL 0x04 -# define BIO_FLAGS_RWS (BIO_FLAGS_READ|BIO_FLAGS_WRITE|BIO_FLAGS_IO_SPECIAL) -# define BIO_FLAGS_SHOULD_RETRY 0x08 -# ifndef BIO_FLAGS_UPLINK -/* - * "UPLINK" flag denotes file descriptors provided by application. It - * defaults to 0, as most platforms don't require UPLINK interface. - */ -# define BIO_FLAGS_UPLINK 0 -# endif - -# define BIO_FLAGS_BASE64_NO_NL 0x100 - -/* - * This is used with memory BIOs: - * BIO_FLAGS_MEM_RDONLY means we shouldn't free up or change the data in any way; - * BIO_FLAGS_NONCLEAR_RST means we shouldn't clear data on reset. - */ -# define BIO_FLAGS_MEM_RDONLY 0x200 -# define BIO_FLAGS_NONCLEAR_RST 0x400 -# define BIO_FLAGS_IN_EOF 0x800 - -typedef union bio_addr_st BIO_ADDR; -typedef struct bio_addrinfo_st BIO_ADDRINFO; - -int BIO_get_new_index(void); -void BIO_set_flags(BIO *b, int flags); -int BIO_test_flags(const BIO *b, int flags); -void BIO_clear_flags(BIO *b, int flags); - -# define BIO_get_flags(b) BIO_test_flags(b, ~(0x0)) -# define BIO_set_retry_special(b) \ - BIO_set_flags(b, (BIO_FLAGS_IO_SPECIAL|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_read(b) \ - BIO_set_flags(b, (BIO_FLAGS_READ|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_set_retry_write(b) \ - BIO_set_flags(b, (BIO_FLAGS_WRITE|BIO_FLAGS_SHOULD_RETRY)) - -/* These are normally used internally in BIOs */ -# define BIO_clear_retry_flags(b) \ - BIO_clear_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) -# define BIO_get_retry_flags(b) \ - BIO_test_flags(b, (BIO_FLAGS_RWS|BIO_FLAGS_SHOULD_RETRY)) - -/* These should be used by the application to tell why we should retry */ -# define BIO_should_read(a) BIO_test_flags(a, BIO_FLAGS_READ) -# define BIO_should_write(a) BIO_test_flags(a, BIO_FLAGS_WRITE) -# define BIO_should_io_special(a) BIO_test_flags(a, BIO_FLAGS_IO_SPECIAL) -# define BIO_retry_type(a) BIO_test_flags(a, BIO_FLAGS_RWS) -# define BIO_should_retry(a) BIO_test_flags(a, BIO_FLAGS_SHOULD_RETRY) - -/* - * The next three are used in conjunction with the BIO_should_io_special() - * condition. After this returns true, BIO *BIO_get_retry_BIO(BIO *bio, int - * *reason); will walk the BIO stack and return the 'reason' for the special - * and the offending BIO. Given a BIO, BIO_get_retry_reason(bio) will return - * the code. - */ -/* - * Returned from the SSL bio when the certificate retrieval code had an error - */ -# define BIO_RR_SSL_X509_LOOKUP 0x01 -/* Returned from the connect BIO when a connect would have blocked */ -# define BIO_RR_CONNECT 0x02 -/* Returned from the accept BIO when an accept would have blocked */ -# define BIO_RR_ACCEPT 0x03 - -/* These are passed by the BIO callback */ -# define BIO_CB_FREE 0x01 -# define BIO_CB_READ 0x02 -# define BIO_CB_WRITE 0x03 -# define BIO_CB_PUTS 0x04 -# define BIO_CB_GETS 0x05 -# define BIO_CB_CTRL 0x06 - -/* - * The callback is called before and after the underling operation, The - * BIO_CB_RETURN flag indicates if it is after the call - */ -# define BIO_CB_RETURN 0x80 -# define BIO_CB_return(a) ((a)|BIO_CB_RETURN) -# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN)) -# define BIO_cb_post(a) ((a)&BIO_CB_RETURN) - -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); - -typedef struct bio_method_st BIO_METHOD; - -const char *BIO_method_name(const BIO *b); -int BIO_method_type(const BIO *b); - -typedef int BIO_info_cb(BIO *, int, int); -typedef BIO_info_cb bio_info_cb; /* backward compatibility */ - -DEFINE_STACK_OF(BIO) - -/* Prefix and suffix callback in ASN1 BIO */ -typedef int asn1_ps_func (BIO *b, unsigned char **pbuf, int *plen, - void *parg); - -# ifndef OPENSSL_NO_SCTP -/* SCTP parameter structs */ -struct bio_dgram_sctp_sndinfo { - uint16_t snd_sid; - uint16_t snd_flags; - uint32_t snd_ppid; - uint32_t snd_context; -}; - -struct bio_dgram_sctp_rcvinfo { - uint16_t rcv_sid; - uint16_t rcv_ssn; - uint16_t rcv_flags; - uint32_t rcv_ppid; - uint32_t rcv_tsn; - uint32_t rcv_cumtsn; - uint32_t rcv_context; -}; - -struct bio_dgram_sctp_prinfo { - uint16_t pr_policy; - uint32_t pr_value; -}; -# endif - -/* - * #define BIO_CONN_get_param_hostname BIO_ctrl - */ - -# define BIO_C_SET_CONNECT 100 -# define BIO_C_DO_STATE_MACHINE 101 -# define BIO_C_SET_NBIO 102 -/* # define BIO_C_SET_PROXY_PARAM 103 */ -# define BIO_C_SET_FD 104 -# define BIO_C_GET_FD 105 -# define BIO_C_SET_FILE_PTR 106 -# define BIO_C_GET_FILE_PTR 107 -# define BIO_C_SET_FILENAME 108 -# define BIO_C_SET_SSL 109 -# define BIO_C_GET_SSL 110 -# define BIO_C_SET_MD 111 -# define BIO_C_GET_MD 112 -# define BIO_C_GET_CIPHER_STATUS 113 -# define BIO_C_SET_BUF_MEM 114 -# define BIO_C_GET_BUF_MEM_PTR 115 -# define BIO_C_GET_BUFF_NUM_LINES 116 -# define BIO_C_SET_BUFF_SIZE 117 -# define BIO_C_SET_ACCEPT 118 -# define BIO_C_SSL_MODE 119 -# define BIO_C_GET_MD_CTX 120 -/* # define BIO_C_GET_PROXY_PARAM 121 */ -# define BIO_C_SET_BUFF_READ_DATA 122/* data to read first */ -# define BIO_C_GET_CONNECT 123 -# define BIO_C_GET_ACCEPT 124 -# define BIO_C_SET_SSL_RENEGOTIATE_BYTES 125 -# define BIO_C_GET_SSL_NUM_RENEGOTIATES 126 -# define BIO_C_SET_SSL_RENEGOTIATE_TIMEOUT 127 -# define BIO_C_FILE_SEEK 128 -# define BIO_C_GET_CIPHER_CTX 129 -# define BIO_C_SET_BUF_MEM_EOF_RETURN 130/* return end of input - * value */ -# define BIO_C_SET_BIND_MODE 131 -# define BIO_C_GET_BIND_MODE 132 -# define BIO_C_FILE_TELL 133 -# define BIO_C_GET_SOCKS 134 -# define BIO_C_SET_SOCKS 135 - -# define BIO_C_SET_WRITE_BUF_SIZE 136/* for BIO_s_bio */ -# define BIO_C_GET_WRITE_BUF_SIZE 137 -# define BIO_C_MAKE_BIO_PAIR 138 -# define BIO_C_DESTROY_BIO_PAIR 139 -# define BIO_C_GET_WRITE_GUARANTEE 140 -# define BIO_C_GET_READ_REQUEST 141 -# define BIO_C_SHUTDOWN_WR 142 -# define BIO_C_NREAD0 143 -# define BIO_C_NREAD 144 -# define BIO_C_NWRITE0 145 -# define BIO_C_NWRITE 146 -# define BIO_C_RESET_READ_REQUEST 147 -# define BIO_C_SET_MD_CTX 148 - -# define BIO_C_SET_PREFIX 149 -# define BIO_C_GET_PREFIX 150 -# define BIO_C_SET_SUFFIX 151 -# define BIO_C_GET_SUFFIX 152 - -# define BIO_C_SET_EX_ARG 153 -# define BIO_C_GET_EX_ARG 154 - -# define BIO_C_SET_CONNECT_MODE 155 - -# define BIO_set_app_data(s,arg) BIO_set_ex_data(s,0,arg) -# define BIO_get_app_data(s) BIO_get_ex_data(s,0) - -# define BIO_set_nbio(b,n) BIO_ctrl(b,BIO_C_SET_NBIO,(n),NULL) - -# ifndef OPENSSL_NO_SOCK -/* IP families we support, for BIO_s_connect() and BIO_s_accept() */ -/* Note: the underlying operating system may not support some of them */ -# define BIO_FAMILY_IPV4 4 -# define BIO_FAMILY_IPV6 6 -# 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_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)) -# define BIO_get_conn_address(b) ((const BIO_ADDR *)BIO_ptr_ctrl(b,BIO_C_GET_CONNECT,2)) -# define BIO_get_conn_ip_family(b) BIO_ctrl(b,BIO_C_GET_CONNECT,3,NULL) -# 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_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_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) - -/* Aliases kept for backward compatibility */ -# define BIO_BIND_NORMAL 0 -# define BIO_BIND_REUSEADDR BIO_SOCK_REUSEADDR -# define BIO_BIND_REUSEADDR_IF_UNUSED BIO_SOCK_REUSEADDR -# define BIO_set_bind_mode(b,mode) BIO_ctrl(b,BIO_C_SET_BIND_MODE,mode,NULL) -# define BIO_get_bind_mode(b) BIO_ctrl(b,BIO_C_GET_BIND_MODE,0,NULL) - -/* BIO_s_accept() and BIO_s_connect() */ -# define BIO_do_connect(b) BIO_do_handshake(b) -# define BIO_do_accept(b) BIO_do_handshake(b) -# endif /* OPENSSL_NO_SOCK */ - -# define BIO_do_handshake(b) BIO_ctrl(b,BIO_C_DO_STATE_MACHINE,0,NULL) - -/* 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)) - -/* 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)) - -/* BIO_s_fd() and BIO_s_file() */ -# define BIO_seek(b,ofs) (int)BIO_ctrl(b,BIO_C_FILE_SEEK,ofs,NULL) -# define BIO_tell(b) (int)BIO_ctrl(b,BIO_C_FILE_TELL,0,NULL) - -/* - * name is cast to lose const, but might be better to route through a - * function so we can do it safely - */ -# ifdef CONST_STRICT -/* - * If you are wondering why this isn't defined, its because CONST_STRICT is - * purely a compile-time kludge to allow const to be checked. - */ -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)) -# endif -# define BIO_write_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_WRITE,name) -# define BIO_append_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_APPEND,name) -# define BIO_rw_filename(b,name) (int)BIO_ctrl(b,BIO_C_SET_FILENAME, \ - BIO_CLOSE|BIO_FP_READ|BIO_FP_WRITE,name) - -/* - * WARNING WARNING, this ups the reference count on the read bio of the SSL - * structure. This is because the ssl read BIO is now pointed to by the - * 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_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) -# define BIO_get_num_renegotiates(b) \ - BIO_ctrl(b,BIO_C_GET_SSL_NUM_RENEGOTIATES,0,NULL) -# define BIO_set_ssl_renegotiate_timeout(b,seconds) \ - 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_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) - -/* For the BIO_f_buffer() type */ -# define BIO_get_buffer_num_lines(b) BIO_ctrl(b,BIO_C_GET_BUFF_NUM_LINES,0,NULL) -# define BIO_set_buffer_size(b,size) BIO_ctrl(b,BIO_C_SET_BUFF_SIZE,size,NULL) -# define BIO_set_read_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,0) -# define BIO_set_write_buffer_size(b,size) BIO_int_ctrl(b,BIO_C_SET_BUFF_SIZE,size,1) -# define BIO_set_buffer_read_data(b,buf,num) BIO_ctrl(b,BIO_C_SET_BUFF_READ_DATA,num,buf) - -/* Don't use the next one unless you know what you are doing :-) */ -# define BIO_dup_state(b,ret) BIO_ctrl(b,BIO_CTRL_DUP,0,(char *)(ret)) - -# define BIO_reset(b) (int)BIO_ctrl(b,BIO_CTRL_RESET,0,NULL) -# define BIO_eof(b) (int)BIO_ctrl(b,BIO_CTRL_EOF,0,NULL) -# define BIO_set_close(b,c) (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL) -# define BIO_get_close(b) (int)BIO_ctrl(b,BIO_CTRL_GET_CLOSE,0,NULL) -# define BIO_pending(b) (int)BIO_ctrl(b,BIO_CTRL_PENDING,0,NULL) -# define BIO_wpending(b) (int)BIO_ctrl(b,BIO_CTRL_WPENDING,0,NULL) -/* ...pending macros have inappropriate return type */ -size_t BIO_ctrl_pending(BIO *b); -size_t BIO_ctrl_wpending(BIO *b); -# define BIO_flush(b) (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL) -# define BIO_get_info_callback(b,cbp) (int)BIO_ctrl(b,BIO_CTRL_GET_CALLBACK,0, \ - cbp) -# define BIO_set_info_callback(b,cb) (int)BIO_callback_ctrl(b,BIO_CTRL_SET_CALLBACK,cb) - -/* 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) -# define BIO_get_write_buf_size(b,size) (size_t)BIO_ctrl(b,BIO_C_GET_WRITE_BUF_SIZE,size,NULL) -# define BIO_make_bio_pair(b1,b2) (int)BIO_ctrl(b1,BIO_C_MAKE_BIO_PAIR,0,b2) -# define BIO_destroy_bio_pair(b) (int)BIO_ctrl(b,BIO_C_DESTROY_BIO_PAIR,0,NULL) -# define BIO_shutdown_wr(b) (int)BIO_ctrl(b, BIO_C_SHUTDOWN_WR, 0, NULL) -/* macros with inappropriate type -- but ...pending macros use int too: */ -# define BIO_get_write_guarantee(b) (int)BIO_ctrl(b,BIO_C_GET_WRITE_GUARANTEE,0,NULL) -# define BIO_get_read_request(b) (int)BIO_ctrl(b,BIO_C_GET_READ_REQUEST,0,NULL) -size_t BIO_ctrl_get_write_guarantee(BIO *b); -size_t BIO_ctrl_get_read_request(BIO *b); -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)) -# define BIO_ctrl_set_connected(b,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)) -# define BIO_dgram_set_peer(b,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) - -#define BIO_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_BIO, l, p, newf, dupf, freef) -int BIO_set_ex_data(BIO *bio, int idx, void *data); -void *BIO_get_ex_data(BIO *bio, int idx); -uint64_t BIO_number_read(BIO *bio); -uint64_t BIO_number_written(BIO *bio); - -/* For BIO_f_asn1() */ -int BIO_asn1_set_prefix(BIO *b, asn1_ps_func *prefix, - asn1_ps_func *prefix_free); -int BIO_asn1_get_prefix(BIO *b, asn1_ps_func **pprefix, - asn1_ps_func **pprefix_free); -int BIO_asn1_set_suffix(BIO *b, asn1_ps_func *suffix, - asn1_ps_func *suffix_free); -int BIO_asn1_get_suffix(BIO *b, asn1_ps_func **psuffix, - asn1_ps_func **psuffix_free); - -const BIO_METHOD *BIO_s_file(void); -BIO *BIO_new_file(const char *filename, const char *mode); -# ifndef OPENSSL_NO_STDIO -BIO *BIO_new_fp(FILE *stream, int close_flag); -# endif -BIO *BIO_new(const BIO_METHOD *type); -int BIO_free(BIO *a); -void BIO_set_data(BIO *a, void *ptr); -void *BIO_get_data(BIO *a); -void BIO_set_init(BIO *a, int init); -int BIO_get_init(BIO *a); -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 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 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); -long BIO_callback_ctrl(BIO *b, int cmd, BIO_info_cb *fp); -void *BIO_ptr_ctrl(BIO *bp, int cmd, long larg); -long BIO_int_ctrl(BIO *bp, int cmd, long larg, int iarg); -BIO *BIO_push(BIO *b, BIO *append); -BIO *BIO_pop(BIO *b); -void BIO_free_all(BIO *a); -BIO *BIO_find_type(BIO *b, int bio_type); -BIO *BIO_next(BIO *b); -void BIO_set_next(BIO *b, BIO *next); -BIO *BIO_get_retry_BIO(BIO *bio, int *reason); -int BIO_get_retry_reason(BIO *bio); -void BIO_set_retry_reason(BIO *bio, int reason); -BIO *BIO_dup_chain(BIO *in); - -int BIO_nread0(BIO *bio, char **buf); -int BIO_nread(BIO *bio, char **buf, int num); -int BIO_nwrite0(BIO *bio, char **buf); -int BIO_nwrite(BIO *bio, char **buf, int num); - -long BIO_debug_callback(BIO *bio, int cmd, const char *argp, int argi, - long argl, long ret); - -const BIO_METHOD *BIO_s_mem(void); -const BIO_METHOD *BIO_s_secmem(void); -BIO *BIO_new_mem_buf(const void *buf, int len); -# ifndef OPENSSL_NO_SOCK -const BIO_METHOD *BIO_s_socket(void); -const BIO_METHOD *BIO_s_connect(void); -const BIO_METHOD *BIO_s_accept(void); -# endif -const BIO_METHOD *BIO_s_fd(void); -const BIO_METHOD *BIO_s_log(void); -const BIO_METHOD *BIO_s_bio(void); -const BIO_METHOD *BIO_s_null(void); -const BIO_METHOD *BIO_f_null(void); -const BIO_METHOD *BIO_f_buffer(void); -const BIO_METHOD *BIO_f_linebuffer(void); -const BIO_METHOD *BIO_f_nbio_test(void); -# ifndef OPENSSL_NO_DGRAM -const BIO_METHOD *BIO_s_datagram(void); -int BIO_dgram_non_fatal_error(int error); -BIO *BIO_new_dgram(int fd, int close_flag); -# ifndef OPENSSL_NO_SCTP -const BIO_METHOD *BIO_s_datagram_sctp(void); -BIO *BIO_new_dgram_sctp(int fd, int close_flag); -int BIO_dgram_is_sctp(BIO *bio); -int BIO_dgram_sctp_notification_cb(BIO *b, - void (*handle_notifications) (BIO *bio, - void *context, - void *buf), - void *context); -int BIO_dgram_sctp_wait_for_dry(BIO *b); -int BIO_dgram_sctp_msg_waiting(BIO *b); -# endif -# endif - -# ifndef OPENSSL_NO_SOCK -int BIO_sock_should_retry(int i); -int BIO_sock_non_fatal_error(int error); -# endif - -int BIO_fd_should_retry(int i); -int BIO_fd_non_fatal_error(int error); -int BIO_dump_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const char *s, int len); -int BIO_dump_indent_cb(int (*cb) (const void *data, size_t len, void *u), - void *u, const char *s, int len, int indent); -int BIO_dump(BIO *b, const char *bytes, int len); -int BIO_dump_indent(BIO *b, const char *bytes, int len, int indent); -# ifndef OPENSSL_NO_STDIO -int BIO_dump_fp(FILE *fp, const char *s, int len); -int BIO_dump_indent_fp(FILE *fp, const char *s, int len, int indent); -# endif -int BIO_hex_string(BIO *out, int indent, int width, unsigned char *data, - int datalen); - -# ifndef OPENSSL_NO_SOCK -BIO_ADDR *BIO_ADDR_new(void); -int BIO_ADDR_rawmake(BIO_ADDR *ap, int family, - const void *where, size_t wherelen, unsigned short port); -void BIO_ADDR_free(BIO_ADDR *); -void BIO_ADDR_clear(BIO_ADDR *ap); -int BIO_ADDR_family(const BIO_ADDR *ap); -int BIO_ADDR_rawaddress(const BIO_ADDR *ap, void *p, size_t *l); -unsigned short BIO_ADDR_rawport(const BIO_ADDR *ap); -char *BIO_ADDR_hostname_string(const BIO_ADDR *ap, int numeric); -char *BIO_ADDR_service_string(const BIO_ADDR *ap, int numeric); -char *BIO_ADDR_path_string(const BIO_ADDR *ap); - -const BIO_ADDRINFO *BIO_ADDRINFO_next(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_family(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_socktype(const BIO_ADDRINFO *bai); -int BIO_ADDRINFO_protocol(const BIO_ADDRINFO *bai); -const BIO_ADDR *BIO_ADDRINFO_address(const BIO_ADDRINFO *bai); -void BIO_ADDRINFO_free(BIO_ADDRINFO *bai); - -enum BIO_hostserv_priorities { - BIO_PARSE_PRIO_HOST, BIO_PARSE_PRIO_SERV -}; -int BIO_parse_hostserv(const char *hostserv, char **host, char **service, - enum BIO_hostserv_priorities hostserv_prio); -enum BIO_lookup_type { - BIO_LOOKUP_CLIENT, BIO_LOOKUP_SERVER -}; -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); -int BIO_sock_init(void); -# if OPENSSL_API_COMPAT < 0x10100000L -# define BIO_sock_cleanup() while(0) continue -# endif -int BIO_set_tcp_ndelay(int sock, int turn_on); - -DEPRECATEDIN_1_1_0(struct hostent *BIO_gethostbyname(const char *name)) -DEPRECATEDIN_1_1_0(int BIO_get_port(const char *str, unsigned short *port_ptr)) -DEPRECATEDIN_1_1_0(int BIO_get_host_ip(const char *str, unsigned char *ip)) -DEPRECATEDIN_1_1_0(int BIO_get_accept_socket(char *host_port, int mode)) -DEPRECATEDIN_1_1_0(int BIO_accept(int sock, char **ip_port)) - -union BIO_sock_info_u { - BIO_ADDR *addr; -}; -enum BIO_sock_info_type { - BIO_SOCK_INFO_ADDRESS -}; -int BIO_sock_info(int sock, - enum BIO_sock_info_type type, union BIO_sock_info_u *info); - -# define BIO_SOCK_REUSEADDR 0x01 -# define BIO_SOCK_V6_ONLY 0x02 -# define BIO_SOCK_KEEPALIVE 0x04 -# define BIO_SOCK_NONBLOCK 0x08 -# define BIO_SOCK_NODELAY 0x10 - -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); - -BIO *BIO_new_socket(int sock, int close_flag); -BIO *BIO_new_connect(const char *host_port); -BIO *BIO_new_accept(const char *host_port); -# endif /* OPENSSL_NO_SOCK*/ - -BIO *BIO_new_fd(int fd, int close_flag); - -int BIO_new_bio_pair(BIO **bio1, size_t writebuf1, - BIO **bio2, size_t writebuf2); -/* - * If successful, returns 1 and in *bio1, *bio2 two BIO pair endpoints. - * Otherwise returns 0 and sets *bio1 and *bio2 to NULL. Size 0 uses default - * value. - */ - -void BIO_copy_next_retry(BIO *b); - -/* - * long BIO_ghbn_ctrl(int cmd,int iarg,char *parg); - */ - -# 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, ...) -ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 3))); -int BIO_vprintf(BIO *bio, const char *format, va_list args) -ossl_bio__attr__((__format__(ossl_bio__printf__, 2, 0))); -int BIO_snprintf(char *buf, size_t n, const char *format, ...) -ossl_bio__attr__((__format__(ossl_bio__printf__, 3, 4))); -int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) -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 *)); -int (*BIO_meth_get_gets(const BIO_METHOD *biom)) (BIO *, char *, int); -int BIO_meth_set_gets(BIO_METHOD *biom, - int (*gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(const BIO_METHOD *biom)) (BIO *, int, long, void *); -int BIO_meth_set_ctrl(BIO_METHOD *biom, - long (*ctrl) (BIO *, int, long, void *)); -int (*BIO_meth_get_create(const BIO_METHOD *bion)) (BIO *); -int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(const BIO_METHOD *biom)) (BIO *); -int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(const BIO_METHOD *biom)) - (BIO *, int, BIO_info_cb *); -int BIO_meth_set_callback_ctrl(BIO_METHOD *biom, - long (*callback_ctrl) (BIO *, int, - BIO_info_cb *)); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/bioerr.h b/openSSL/lin64/include/openssl/bioerr.h deleted file mode 100644 index 46e2c96..0000000 --- a/openSSL/lin64/include/openssl/bioerr.h +++ /dev/null @@ -1,124 +0,0 @@ -/* - * 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_BIOERR_H -# define HEADER_BIOERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/blowfish.h b/openSSL/lin64/include/openssl/blowfish.h deleted file mode 100644 index cd3e460..0000000 --- a/openSSL/lin64/include/openssl/blowfish.h +++ /dev/null @@ -1,61 +0,0 @@ -/* - * Copyright 1995-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_BLOWFISH_H -# define HEADER_BLOWFISH_H - -# include - -# ifndef OPENSSL_NO_BF -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define BF_ENCRYPT 1 -# define BF_DECRYPT 0 - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! BF_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define BF_LONG unsigned int - -# define BF_ROUNDS 16 -# define BF_BLOCK 8 - -typedef struct bf_key_st { - BF_LONG P[BF_ROUNDS + 2]; - BF_LONG S[4 * 256]; -} BF_KEY; - -void BF_set_key(BF_KEY *key, int len, const unsigned char *data); - -void BF_encrypt(BF_LONG *data, const BF_KEY *key); -void BF_decrypt(BF_LONG *data, const BF_KEY *key); - -void BF_ecb_encrypt(const unsigned char *in, unsigned char *out, - const BF_KEY *key, int enc); -void BF_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - const BF_KEY *schedule, unsigned char *ivec, int enc); -void BF_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void BF_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const BF_KEY *schedule, - unsigned char *ivec, int *num); -const char *BF_options(void); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/bn.h b/openSSL/lin64/include/openssl/bn.h deleted file mode 100644 index d877660..0000000 --- a/openSSL/lin64/include/openssl/bn.h +++ /dev/null @@ -1,539 +0,0 @@ -/* - * Copyright 1995-2020 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_BN_H -# define HEADER_BN_H - -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * 64-bit processor with LP64 ABI - */ -# ifdef SIXTY_FOUR_BIT_LONG -# define BN_ULONG unsigned long -# define BN_BYTES 8 -# endif - -/* - * 64-bit processor other than LP64 ABI - */ -# ifdef SIXTY_FOUR_BIT -# define BN_ULONG unsigned long long -# define BN_BYTES 8 -# endif - -# ifdef THIRTY_TWO_BIT -# define BN_ULONG unsigned int -# define BN_BYTES 4 -# endif - -# define BN_BITS2 (BN_BYTES * 8) -# define BN_BITS (BN_BITS2 * 2) -# define BN_TBIT ((BN_ULONG)1 << (BN_BITS2 - 1)) - -# define BN_FLG_MALLOCED 0x01 -# define BN_FLG_STATIC_DATA 0x02 - -/* - * avoid leaking exponent information through timing, - * BN_mod_exp_mont() will call BN_mod_exp_mont_consttime, - * BN_div() will call BN_div_no_branch, - * BN_mod_inverse() will call bn_mod_inverse_no_branch. - */ -# define BN_FLG_CONSTTIME 0x04 -# define BN_FLG_SECURE 0x08 - -# if OPENSSL_API_COMPAT < 0x00908000L -/* deprecated name for the flag */ -# define BN_FLG_EXP_CONSTTIME BN_FLG_CONSTTIME -# define BN_FLG_FREE 0x8000 /* used for debugging */ -# endif - -void BN_set_flags(BIGNUM *b, int n); -int BN_get_flags(const BIGNUM *b, int n); - -/* Values for |top| in BN_rand() */ -#define BN_RAND_TOP_ANY -1 -#define BN_RAND_TOP_ONE 0 -#define BN_RAND_TOP_TWO 1 - -/* Values for |bottom| in BN_rand() */ -#define BN_RAND_BOTTOM_ANY 0 -#define BN_RAND_BOTTOM_ODD 1 - -/* - * get a clone of a BIGNUM with changed flags, for *temporary* use only (the - * two BIGNUMs cannot be used in parallel!). Also only for *read only* use. The - * value |dest| should be a newly allocated BIGNUM obtained via BN_new() that - * has not been otherwise initialised or used. - */ -void BN_with_flags(BIGNUM *dest, const BIGNUM *b, int flags); - -/* Wrapper function to make using BN_GENCB easier */ -int BN_GENCB_call(BN_GENCB *cb, int a, int b); - -BN_GENCB *BN_GENCB_new(void); -void BN_GENCB_free(BN_GENCB *cb); - -/* Populate a BN_GENCB structure with an "old"-style callback */ -void BN_GENCB_set_old(BN_GENCB *gencb, void (*callback) (int, int, void *), - void *cb_arg); - -/* Populate a BN_GENCB structure with a "new"-style callback */ -void BN_GENCB_set(BN_GENCB *gencb, int (*callback) (int, int, BN_GENCB *), - void *cb_arg); - -void *BN_GENCB_get_arg(BN_GENCB *cb); - -# define BN_prime_checks 0 /* default: select number of iterations based - * on the size of the number */ - -/* - * BN_prime_checks_for_size() returns the number of Miller-Rabin iterations - * that will be done for checking that a random number is probably prime. The - * error rate for accepting a composite number as prime depends on the size of - * the prime |b|. The error rates used are for calculating an RSA key with 2 primes, - * and so the level is what you would expect for a key of double the size of the - * prime. - * - * This table is generated using the algorithm of FIPS PUB 186-4 - * Digital Signature Standard (DSS), section F.1, page 117. - * (https://dx.doi.org/10.6028/NIST.FIPS.186-4) - * - * The following magma script was used to generate the output: - * securitybits:=125; - * k:=1024; - * for t:=1 to 65 do - * for M:=3 to Floor(2*Sqrt(k-1)-1) do - * S:=0; - * // Sum over m - * for m:=3 to M do - * s:=0; - * // Sum over j - * for j:=2 to m do - * s+:=(RealField(32)!2)^-(j+(k-1)/j); - * end for; - * S+:=2^(m-(m-1)*t)*s; - * end for; - * A:=2^(k-2-M*t); - * B:=8*(Pi(RealField(32))^2-6)/3*2^(k-2)*S; - * pkt:=2.00743*Log(2)*k*2^-k*(A+B); - * seclevel:=Floor(-Log(2,pkt)); - * if seclevel ge securitybits then - * printf "k: %5o, security: %o bits (t: %o, M: %o)\n",k,seclevel,t,M; - * break; - * end if; - * end for; - * if seclevel ge securitybits then break; end if; - * end for; - * - * It can be run online at: - * http://magma.maths.usyd.edu.au/calc - * - * And will output: - * k: 1024, security: 129 bits (t: 6, M: 23) - * - * k is the number of bits of the prime, securitybits is the level we want to - * reach. - * - * prime length | RSA key size | # MR tests | security level - * -------------+--------------|------------+--------------- - * (b) >= 6394 | >= 12788 | 3 | 256 bit - * (b) >= 3747 | >= 7494 | 3 | 192 bit - * (b) >= 1345 | >= 2690 | 4 | 128 bit - * (b) >= 1080 | >= 2160 | 5 | 128 bit - * (b) >= 852 | >= 1704 | 5 | 112 bit - * (b) >= 476 | >= 952 | 5 | 80 bit - * (b) >= 400 | >= 800 | 6 | 80 bit - * (b) >= 347 | >= 694 | 7 | 80 bit - * (b) >= 308 | >= 616 | 8 | 80 bit - * (b) >= 55 | >= 110 | 27 | 64 bit - * (b) >= 6 | >= 12 | 34 | 64 bit - */ - -# define BN_prime_checks_for_size(b) ((b) >= 3747 ? 3 : \ - (b) >= 1345 ? 4 : \ - (b) >= 476 ? 5 : \ - (b) >= 400 ? 6 : \ - (b) >= 347 ? 7 : \ - (b) >= 308 ? 8 : \ - (b) >= 55 ? 27 : \ - /* b >= 6 */ 34) - -# define BN_num_bytes(a) ((BN_num_bits(a)+7)/8) - -int BN_abs_is_word(const BIGNUM *a, const BN_ULONG w); -int BN_is_zero(const BIGNUM *a); -int BN_is_one(const BIGNUM *a); -int BN_is_word(const BIGNUM *a, const BN_ULONG w); -int BN_is_odd(const BIGNUM *a); - -# define BN_one(a) (BN_set_word((a),1)) - -void BN_zero_ex(BIGNUM *a); - -# if OPENSSL_API_COMPAT >= 0x00908000L -# define BN_zero(a) BN_zero_ex(a) -# else -# define BN_zero(a) (BN_set_word((a),0)) -# endif - -const BIGNUM *BN_value_one(void); -char *BN_options(void); -BN_CTX *BN_CTX_new(void); -BN_CTX *BN_CTX_secure_new(void); -void BN_CTX_free(BN_CTX *c); -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_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); -int BN_security_bits(int L, int N); -BIGNUM *BN_new(void); -BIGNUM *BN_secure_new(void); -void BN_clear_free(BIGNUM *a); -BIGNUM *BN_copy(BIGNUM *a, const BIGNUM *b); -void BN_swap(BIGNUM *a, BIGNUM *b); -BIGNUM *BN_bin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2bin(const BIGNUM *a, unsigned char *to); -int BN_bn2binpad(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_lebin2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2lebinpad(const BIGNUM *a, unsigned char *to, int tolen); -BIGNUM *BN_mpi2bn(const unsigned char *s, int len, BIGNUM *ret); -int BN_bn2mpi(const BIGNUM *a, unsigned char *to); -int BN_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_usub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_uadd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -int BN_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_sqr(BIGNUM *r, const BIGNUM *a, BN_CTX *ctx); -/** BN_set_negative sets sign of a BIGNUM - * \param b pointer to the BIGNUM object - * \param n 0 if the BIGNUM b should be positive and a value != 0 otherwise - */ -void BN_set_negative(BIGNUM *b, int n); -/** BN_is_negative returns 1 if the BIGNUM is negative - * \param b pointer to the BIGNUM object - * \return 1 if a < 0 and 0 otherwise - */ -int BN_is_negative(const BIGNUM *b); - -int BN_div(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, const BIGNUM *d, - BN_CTX *ctx); -# define BN_mod(rem,m,d,ctx) BN_div(NULL,(rem),(m),(d),(ctx)) -int BN_nnmod(BIGNUM *r, const BIGNUM *m, const BIGNUM *d, BN_CTX *ctx); -int BN_mod_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_add_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_sub(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sub_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *m); -int BN_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1(BIGNUM *r, const BIGNUM *a, const BIGNUM *m, BN_CTX *ctx); -int BN_mod_lshift1_quick(BIGNUM *r, const BIGNUM *a, const BIGNUM *m); -int BN_mod_lshift(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m, - BN_CTX *ctx); -int BN_mod_lshift_quick(BIGNUM *r, const BIGNUM *a, int n, const BIGNUM *m); - -BN_ULONG BN_mod_word(const BIGNUM *a, BN_ULONG w); -BN_ULONG BN_div_word(BIGNUM *a, BN_ULONG w); -int BN_mul_word(BIGNUM *a, BN_ULONG w); -int BN_add_word(BIGNUM *a, BN_ULONG w); -int BN_sub_word(BIGNUM *a, BN_ULONG w); -int BN_set_word(BIGNUM *a, BN_ULONG w); -BN_ULONG BN_get_word(const BIGNUM *a); - -int BN_cmp(const BIGNUM *a, const BIGNUM *b); -void BN_free(BIGNUM *a); -int BN_is_bit_set(const BIGNUM *a, int n); -int BN_lshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_lshift1(BIGNUM *r, const BIGNUM *a); -int BN_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -int BN_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_mod_exp_mont(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_mont_consttime(BIGNUM *rr, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, - BN_MONT_CTX *in_mont); -int BN_mod_exp_mont_word(BIGNUM *r, BN_ULONG a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp2_mont(BIGNUM *r, const BIGNUM *a1, const BIGNUM *p1, - const BIGNUM *a2, const BIGNUM *p2, const BIGNUM *m, - BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int BN_mod_exp_simple(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); - -int BN_mask_bits(BIGNUM *a, int n); -# ifndef OPENSSL_NO_STDIO -int BN_print_fp(FILE *fp, const BIGNUM *a); -# endif -int BN_print(BIO *bio, const BIGNUM *a); -int BN_reciprocal(BIGNUM *r, const BIGNUM *m, int len, BN_CTX *ctx); -int BN_rshift(BIGNUM *r, const BIGNUM *a, int n); -int BN_rshift1(BIGNUM *r, const BIGNUM *a); -void BN_clear(BIGNUM *a); -BIGNUM *BN_dup(const BIGNUM *a); -int BN_ucmp(const BIGNUM *a, const BIGNUM *b); -int BN_set_bit(BIGNUM *a, int n); -int BN_clear_bit(BIGNUM *a, int n); -char *BN_bn2hex(const BIGNUM *a); -char *BN_bn2dec(const BIGNUM *a); -int BN_hex2bn(BIGNUM **a, const char *str); -int BN_dec2bn(BIGNUM **a, const char *str); -int BN_asc2bn(BIGNUM **a, const char *str); -int BN_gcd(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); -int BN_kronecker(const BIGNUM *a, const BIGNUM *b, BN_CTX *ctx); /* returns - * -2 for - * error */ -BIGNUM *BN_mod_inverse(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); -BIGNUM *BN_mod_sqrt(BIGNUM *ret, - const BIGNUM *a, const BIGNUM *n, BN_CTX *ctx); - -void BN_consttime_swap(BN_ULONG swap, BIGNUM *a, BIGNUM *b, int nwords); - -/* Deprecated versions */ -DEPRECATEDIN_0_9_8(BIGNUM *BN_generate_prime(BIGNUM *ret, int bits, int safe, - const BIGNUM *add, - const BIGNUM *rem, - void (*callback) (int, int, - void *), - void *cb_arg)) -DEPRECATEDIN_0_9_8(int - BN_is_prime(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg)) -DEPRECATEDIN_0_9_8(int - BN_is_prime_fasttest(const BIGNUM *p, int nchecks, - void (*callback) (int, int, void *), - BN_CTX *ctx, void *cb_arg, - int do_trial_division)) - -/* Newer versions */ -int BN_generate_prime_ex(BIGNUM *ret, int bits, int safe, const BIGNUM *add, - const BIGNUM *rem, BN_GENCB *cb); -int BN_is_prime_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, BN_GENCB *cb); -int BN_is_prime_fasttest_ex(const BIGNUM *p, int nchecks, BN_CTX *ctx, - int do_trial_division, BN_GENCB *cb); - -int BN_X931_generate_Xpq(BIGNUM *Xp, BIGNUM *Xq, int nbits, BN_CTX *ctx); - -int BN_X931_derive_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, - const BIGNUM *Xp, const BIGNUM *Xp1, - const BIGNUM *Xp2, const BIGNUM *e, BN_CTX *ctx, - BN_GENCB *cb); -int BN_X931_generate_prime_ex(BIGNUM *p, BIGNUM *p1, BIGNUM *p2, BIGNUM *Xp1, - BIGNUM *Xp2, const BIGNUM *Xp, const BIGNUM *e, - BN_CTX *ctx, BN_GENCB *cb); - -BN_MONT_CTX *BN_MONT_CTX_new(void); -int BN_mod_mul_montgomery(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - BN_MONT_CTX *mont, BN_CTX *ctx); -int BN_to_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, - BN_CTX *ctx); -int BN_from_montgomery(BIGNUM *r, const BIGNUM *a, BN_MONT_CTX *mont, - BN_CTX *ctx); -void BN_MONT_CTX_free(BN_MONT_CTX *mont); -int BN_MONT_CTX_set(BN_MONT_CTX *mont, const BIGNUM *mod, BN_CTX *ctx); -BN_MONT_CTX *BN_MONT_CTX_copy(BN_MONT_CTX *to, BN_MONT_CTX *from); -BN_MONT_CTX *BN_MONT_CTX_set_locked(BN_MONT_CTX **pmont, CRYPTO_RWLOCK *lock, - const BIGNUM *mod, BN_CTX *ctx); - -/* BN_BLINDING flags */ -# define BN_BLINDING_NO_UPDATE 0x00000001 -# define BN_BLINDING_NO_RECREATE 0x00000002 - -BN_BLINDING *BN_BLINDING_new(const BIGNUM *A, const BIGNUM *Ai, BIGNUM *mod); -void BN_BLINDING_free(BN_BLINDING *b); -int BN_BLINDING_update(BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_invert(BIGNUM *n, BN_BLINDING *b, BN_CTX *ctx); -int BN_BLINDING_convert_ex(BIGNUM *n, BIGNUM *r, BN_BLINDING *b, BN_CTX *); -int BN_BLINDING_invert_ex(BIGNUM *n, const BIGNUM *r, BN_BLINDING *b, - BN_CTX *); - -int BN_BLINDING_is_current_thread(BN_BLINDING *b); -void BN_BLINDING_set_current_thread(BN_BLINDING *b); -int BN_BLINDING_lock(BN_BLINDING *b); -int BN_BLINDING_unlock(BN_BLINDING *b); - -unsigned long BN_BLINDING_get_flags(const BN_BLINDING *); -void BN_BLINDING_set_flags(BN_BLINDING *, unsigned long); -BN_BLINDING *BN_BLINDING_create_param(BN_BLINDING *b, - const BIGNUM *e, BIGNUM *m, BN_CTX *ctx, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx), - BN_MONT_CTX *m_ctx); - -DEPRECATEDIN_0_9_8(void BN_set_params(int mul, int high, int low, int mont)) -DEPRECATEDIN_0_9_8(int BN_get_params(int which)) /* 0, mul, 1 high, 2 low, 3 - * mont */ - -BN_RECP_CTX *BN_RECP_CTX_new(void); -void BN_RECP_CTX_free(BN_RECP_CTX *recp); -int BN_RECP_CTX_set(BN_RECP_CTX *recp, const BIGNUM *rdiv, BN_CTX *ctx); -int BN_mod_mul_reciprocal(BIGNUM *r, const BIGNUM *x, const BIGNUM *y, - BN_RECP_CTX *recp, BN_CTX *ctx); -int BN_mod_exp_recp(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - const BIGNUM *m, BN_CTX *ctx); -int BN_div_recp(BIGNUM *dv, BIGNUM *rem, const BIGNUM *m, - BN_RECP_CTX *recp, BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M - -/* - * Functions for arithmetic over binary polynomials represented by BIGNUMs. - * The BIGNUM::neg property of BIGNUMs representing binary polynomials is - * ignored. Note that input arguments are not const so that their bit arrays - * can be expanded to the appropriate size if needed. - */ - -/* - * r = a + b - */ -int BN_GF2m_add(BIGNUM *r, const BIGNUM *a, const BIGNUM *b); -# define BN_GF2m_sub(r, a, b) BN_GF2m_add(r, a, b) -/* - * r=a mod p - */ -int BN_GF2m_mod(BIGNUM *r, const BIGNUM *a, const BIGNUM *p); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv(BIGNUM *r, const BIGNUM *b, const BIGNUM *p, BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const BIGNUM *p, BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, - BN_CTX *ctx); -# define BN_GF2m_cmp(a, b) BN_ucmp((a), (b)) -/*- - * Some functions allow for representation of the irreducible polynomials - * as an unsigned int[], say p. The irreducible f(t) is then of the form: - * t^p[0] + t^p[1] + ... + t^p[k] - * where m = p[0] > p[1] > ... > p[k] = 0. - */ -/* r = a mod p */ -int BN_GF2m_mod_arr(BIGNUM *r, const BIGNUM *a, const int p[]); -/* r = (a * b) mod p */ -int BN_GF2m_mod_mul_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a * a) mod p */ -int BN_GF2m_mod_sqr_arr(BIGNUM *r, const BIGNUM *a, const int p[], - BN_CTX *ctx); -/* r = (1 / b) mod p */ -int BN_GF2m_mod_inv_arr(BIGNUM *r, const BIGNUM *b, const int p[], - BN_CTX *ctx); -/* r = (a / b) mod p */ -int BN_GF2m_mod_div_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = (a ^ b) mod p */ -int BN_GF2m_mod_exp_arr(BIGNUM *r, const BIGNUM *a, const BIGNUM *b, - const int p[], BN_CTX *ctx); -/* r = sqrt(a) mod p */ -int BN_GF2m_mod_sqrt_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -/* r^2 + r = a mod p */ -int BN_GF2m_mod_solve_quad_arr(BIGNUM *r, const BIGNUM *a, - const int p[], BN_CTX *ctx); -int BN_GF2m_poly2arr(const BIGNUM *a, int p[], int max); -int BN_GF2m_arr2poly(const int p[], BIGNUM *a); - -# endif - -/* - * faster mod functions for the 'NIST primes' 0 <= a < p^2 - */ -int BN_nist_mod_192(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_224(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_256(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_384(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); -int BN_nist_mod_521(BIGNUM *r, const BIGNUM *a, const BIGNUM *p, BN_CTX *ctx); - -const BIGNUM *BN_get0_nist_prime_192(void); -const BIGNUM *BN_get0_nist_prime_224(void); -const BIGNUM *BN_get0_nist_prime_256(void); -const BIGNUM *BN_get0_nist_prime_384(void); -const BIGNUM *BN_get0_nist_prime_521(void); - -int (*BN_nist_mod_func(const BIGNUM *p)) (BIGNUM *r, const BIGNUM *a, - const BIGNUM *field, BN_CTX *ctx); - -int BN_generate_dsa_nonce(BIGNUM *out, const BIGNUM *range, - const BIGNUM *priv, const unsigned char *message, - size_t message_len, BN_CTX *ctx); - -/* Primes from RFC 2409 */ -BIGNUM *BN_get_rfc2409_prime_768(BIGNUM *bn); -BIGNUM *BN_get_rfc2409_prime_1024(BIGNUM *bn); - -/* Primes from RFC 3526 */ -BIGNUM *BN_get_rfc3526_prime_1536(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_2048(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_3072(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_4096(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_6144(BIGNUM *bn); -BIGNUM *BN_get_rfc3526_prime_8192(BIGNUM *bn); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define get_rfc2409_prime_768 BN_get_rfc2409_prime_768 -# define get_rfc2409_prime_1024 BN_get_rfc2409_prime_1024 -# define get_rfc3526_prime_1536 BN_get_rfc3526_prime_1536 -# define get_rfc3526_prime_2048 BN_get_rfc3526_prime_2048 -# define get_rfc3526_prime_3072 BN_get_rfc3526_prime_3072 -# define get_rfc3526_prime_4096 BN_get_rfc3526_prime_4096 -# define get_rfc3526_prime_6144 BN_get_rfc3526_prime_6144 -# define get_rfc3526_prime_8192 BN_get_rfc3526_prime_8192 -# endif - -int BN_bntest_rand(BIGNUM *rnd, int bits, int top, int bottom); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/bnerr.h b/openSSL/lin64/include/openssl/bnerr.h deleted file mode 100644 index 9f3c7cf..0000000 --- a/openSSL/lin64/include/openssl/bnerr.h +++ /dev/null @@ -1,100 +0,0 @@ -/* - * 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_BNERR_H -# define HEADER_BNERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/buffer.h b/openSSL/lin64/include/openssl/buffer.h deleted file mode 100644 index d276576..0000000 --- a/openSSL/lin64/include/openssl/buffer.h +++ /dev/null @@ -1,58 +0,0 @@ -/* - * 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_BUFFER_H -# define HEADER_BUFFER_H - -# include -# ifndef HEADER_CRYPTO_H -# include -# endif -# include - - -#ifdef __cplusplus -extern "C" { -#endif - -# include -# include - -/* - * These names are outdated as of OpenSSL 1.1; a future release - * will move them to be deprecated. - */ -# define BUF_strdup(s) OPENSSL_strdup(s) -# define BUF_strndup(s, size) OPENSSL_strndup(s, size) -# define BUF_memdup(data, size) OPENSSL_memdup(data, size) -# define BUF_strlcpy(dst, src, size) OPENSSL_strlcpy(dst, src, size) -# define BUF_strlcat(dst, src, size) OPENSSL_strlcat(dst, src, size) -# define BUF_strnlen(str, maxlen) OPENSSL_strnlen(str, maxlen) - -struct buf_mem_st { - size_t length; /* current number of bytes */ - char *data; - size_t max; /* size of buffer */ - unsigned long flags; -}; - -# define BUF_MEM_FLAG_SECURE 0x01 - -BUF_MEM *BUF_MEM_new(void); -BUF_MEM *BUF_MEM_new_ex(unsigned long flags); -void BUF_MEM_free(BUF_MEM *a); -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); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/buffererr.h b/openSSL/lin64/include/openssl/buffererr.h deleted file mode 100644 index 04f6ff7..0000000 --- a/openSSL/lin64/include/openssl/buffererr.h +++ /dev/null @@ -1,34 +0,0 @@ -/* - * 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_BUFERR_H -# define HEADER_BUFERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/camellia.h b/openSSL/lin64/include/openssl/camellia.h deleted file mode 100644 index 151f3c1..0000000 --- a/openSSL/lin64/include/openssl/camellia.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * Copyright 2006-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_CAMELLIA_H -# define HEADER_CAMELLIA_H - -# include - -# ifndef OPENSSL_NO_CAMELLIA -# include -#ifdef __cplusplus -extern "C" { -#endif - -# define CAMELLIA_ENCRYPT 1 -# define CAMELLIA_DECRYPT 0 - -/* - * Because array size can't be a const in C, the following two are macros. - * Both sizes are in bytes. - */ - -/* This should be a hidden type, but EVP requires that the size be known */ - -# define CAMELLIA_BLOCK_SIZE 16 -# define CAMELLIA_TABLE_BYTE_LEN 272 -# define CAMELLIA_TABLE_WORD_LEN (CAMELLIA_TABLE_BYTE_LEN / 4) - -typedef unsigned int KEY_TABLE_TYPE[CAMELLIA_TABLE_WORD_LEN]; /* to match - * with WORD */ - -struct camellia_key_st { - union { - double d; /* ensures 64-bit align */ - KEY_TABLE_TYPE rd_key; - } u; - int grand_rounds; -}; -typedef struct camellia_key_st CAMELLIA_KEY; - -int Camellia_set_key(const unsigned char *userKey, const int bits, - CAMELLIA_KEY *key); - -void Camellia_encrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key); -void Camellia_decrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key); - -void Camellia_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAMELLIA_KEY *key, const int enc); -void Camellia_cbc_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, const int enc); -void Camellia_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_cfb1_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_cfb8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num, const int enc); -void Camellia_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char *ivec, int *num); -void Camellia_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const CAMELLIA_KEY *key, - unsigned char ivec[CAMELLIA_BLOCK_SIZE], - unsigned char ecount_buf[CAMELLIA_BLOCK_SIZE], - unsigned int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/cast.h b/openSSL/lin64/include/openssl/cast.h deleted file mode 100644 index 2cc89ae..0000000 --- a/openSSL/lin64/include/openssl/cast.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Copyright 1995-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_CAST_H -# define HEADER_CAST_H - -# include - -# ifndef OPENSSL_NO_CAST -# ifdef __cplusplus -extern "C" { -# endif - -# define CAST_ENCRYPT 1 -# define CAST_DECRYPT 0 - -# define CAST_LONG unsigned int - -# define CAST_BLOCK 8 -# define CAST_KEY_LENGTH 16 - -typedef struct cast_key_st { - CAST_LONG data[32]; - int short_key; /* Use reduced rounds for short key */ -} CAST_KEY; - -void CAST_set_key(CAST_KEY *key, int len, const unsigned char *data); -void CAST_ecb_encrypt(const unsigned char *in, unsigned char *out, - const CAST_KEY *key, int enc); -void CAST_encrypt(CAST_LONG *data, const CAST_KEY *key); -void CAST_decrypt(CAST_LONG *data, const CAST_KEY *key); -void CAST_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *ks, unsigned char *iv, - int enc); -void CAST_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void CAST_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, const CAST_KEY *schedule, - unsigned char *ivec, int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/cmac.h b/openSSL/lin64/include/openssl/cmac.h deleted file mode 100644 index 3535a9a..0000000 --- a/openSSL/lin64/include/openssl/cmac.h +++ /dev/null @@ -1,41 +0,0 @@ -/* - * Copyright 2010-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_CMAC_H -# define HEADER_CMAC_H - -# ifndef OPENSSL_NO_CMAC - -#ifdef __cplusplus -extern "C" { -#endif - -# include - -/* Opaque */ -typedef struct CMAC_CTX_st CMAC_CTX; - -CMAC_CTX *CMAC_CTX_new(void); -void CMAC_CTX_cleanup(CMAC_CTX *ctx); -void CMAC_CTX_free(CMAC_CTX *ctx); -EVP_CIPHER_CTX *CMAC_CTX_get0_cipher_ctx(CMAC_CTX *ctx); -int CMAC_CTX_copy(CMAC_CTX *out, const CMAC_CTX *in); - -int CMAC_Init(CMAC_CTX *ctx, const void *key, size_t keylen, - const EVP_CIPHER *cipher, ENGINE *impl); -int CMAC_Update(CMAC_CTX *ctx, const void *data, size_t dlen); -int CMAC_Final(CMAC_CTX *ctx, unsigned char *out, size_t *poutlen); -int CMAC_resume(CMAC_CTX *ctx); - -#ifdef __cplusplus -} -#endif - -# endif -#endif diff --git a/openSSL/lin64/include/openssl/cms.h b/openSSL/lin64/include/openssl/cms.h deleted file mode 100644 index c762796..0000000 --- a/openSSL/lin64/include/openssl/cms.h +++ /dev/null @@ -1,339 +0,0 @@ -/* - * Copyright 2008-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_CMS_H -# define HEADER_CMS_H - -# include - -# ifndef OPENSSL_NO_CMS -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct CMS_ContentInfo_st CMS_ContentInfo; -typedef struct CMS_SignerInfo_st CMS_SignerInfo; -typedef struct CMS_CertificateChoices CMS_CertificateChoices; -typedef struct CMS_RevocationInfoChoice_st CMS_RevocationInfoChoice; -typedef struct CMS_RecipientInfo_st CMS_RecipientInfo; -typedef struct CMS_ReceiptRequest_st CMS_ReceiptRequest; -typedef struct CMS_Receipt_st CMS_Receipt; -typedef struct CMS_RecipientEncryptedKey_st CMS_RecipientEncryptedKey; -typedef struct CMS_OtherKeyAttribute_st CMS_OtherKeyAttribute; - -DEFINE_STACK_OF(CMS_SignerInfo) -DEFINE_STACK_OF(CMS_RecipientEncryptedKey) -DEFINE_STACK_OF(CMS_RecipientInfo) -DEFINE_STACK_OF(CMS_RevocationInfoChoice) -DECLARE_ASN1_FUNCTIONS(CMS_ContentInfo) -DECLARE_ASN1_FUNCTIONS(CMS_ReceiptRequest) -DECLARE_ASN1_PRINT_FUNCTION(CMS_ContentInfo) - -# define CMS_SIGNERINFO_ISSUER_SERIAL 0 -# define CMS_SIGNERINFO_KEYIDENTIFIER 1 - -# define CMS_RECIPINFO_NONE -1 -# define CMS_RECIPINFO_TRANS 0 -# define CMS_RECIPINFO_AGREE 1 -# define CMS_RECIPINFO_KEK 2 -# define CMS_RECIPINFO_PASS 3 -# define CMS_RECIPINFO_OTHER 4 - -/* S/MIME related flags */ - -# define CMS_TEXT 0x1 -# define CMS_NOCERTS 0x2 -# define CMS_NO_CONTENT_VERIFY 0x4 -# define CMS_NO_ATTR_VERIFY 0x8 -# define CMS_NOSIGS \ - (CMS_NO_CONTENT_VERIFY|CMS_NO_ATTR_VERIFY) -# define CMS_NOINTERN 0x10 -# define CMS_NO_SIGNER_CERT_VERIFY 0x20 -# define CMS_NOVERIFY 0x20 -# define CMS_DETACHED 0x40 -# define CMS_BINARY 0x80 -# define CMS_NOATTR 0x100 -# define CMS_NOSMIMECAP 0x200 -# define CMS_NOOLDMIMETYPE 0x400 -# define CMS_CRLFEOL 0x800 -# define CMS_STREAM 0x1000 -# define CMS_NOCRL 0x2000 -# define CMS_PARTIAL 0x4000 -# define CMS_REUSE_DIGEST 0x8000 -# define CMS_USE_KEYID 0x10000 -# define CMS_DEBUG_DECRYPT 0x20000 -# define CMS_KEY_PARAM 0x40000 -# define CMS_ASCIICRLF 0x80000 - -const ASN1_OBJECT *CMS_get0_type(const CMS_ContentInfo *cms); - -BIO *CMS_dataInit(CMS_ContentInfo *cms, BIO *icont); -int CMS_dataFinal(CMS_ContentInfo *cms, BIO *bio); - -ASN1_OCTET_STRING **CMS_get0_content(CMS_ContentInfo *cms); -int CMS_is_detached(CMS_ContentInfo *cms); -int CMS_set_detached(CMS_ContentInfo *cms, int detached); - -# ifdef HEADER_PEM_H -DECLARE_PEM_rw_const(CMS, CMS_ContentInfo) -# endif -int CMS_stream(unsigned char ***boundary, CMS_ContentInfo *cms); -CMS_ContentInfo *d2i_CMS_bio(BIO *bp, CMS_ContentInfo **cms); -int i2d_CMS_bio(BIO *bp, CMS_ContentInfo *cms); - -BIO *BIO_new_CMS(BIO *out, CMS_ContentInfo *cms); -int i2d_CMS_bio_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, int flags); -int PEM_write_bio_CMS_stream(BIO *out, CMS_ContentInfo *cms, BIO *in, - int flags); -CMS_ContentInfo *SMIME_read_CMS(BIO *bio, BIO **bcont); -int SMIME_write_CMS(BIO *bio, CMS_ContentInfo *cms, BIO *data, int flags); - -int CMS_final(CMS_ContentInfo *cms, BIO *data, BIO *dcont, - unsigned int flags); - -CMS_ContentInfo *CMS_sign(X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, BIO *data, - unsigned int flags); - -CMS_ContentInfo *CMS_sign_receipt(CMS_SignerInfo *si, - X509 *signcert, EVP_PKEY *pkey, - STACK_OF(X509) *certs, unsigned int flags); - -int CMS_data(CMS_ContentInfo *cms, BIO *out, unsigned int flags); -CMS_ContentInfo *CMS_data_create(BIO *in, unsigned int flags); - -int CMS_digest_verify(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_digest_create(BIO *in, const EVP_MD *md, - unsigned int flags); - -int CMS_EncryptedData_decrypt(CMS_ContentInfo *cms, - const unsigned char *key, size_t keylen, - BIO *dcont, BIO *out, unsigned int flags); - -CMS_ContentInfo *CMS_EncryptedData_encrypt(BIO *in, const EVP_CIPHER *cipher, - const unsigned char *key, - size_t keylen, unsigned int flags); - -int CMS_EncryptedData_set1_key(CMS_ContentInfo *cms, const EVP_CIPHER *ciph, - const unsigned char *key, size_t keylen); - -int CMS_verify(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - X509_STORE *store, BIO *dcont, BIO *out, unsigned int flags); - -int CMS_verify_receipt(CMS_ContentInfo *rcms, CMS_ContentInfo *ocms, - STACK_OF(X509) *certs, - X509_STORE *store, unsigned int flags); - -STACK_OF(X509) *CMS_get0_signers(CMS_ContentInfo *cms); - -CMS_ContentInfo *CMS_encrypt(STACK_OF(X509) *certs, BIO *in, - const EVP_CIPHER *cipher, unsigned int flags); - -int CMS_decrypt(CMS_ContentInfo *cms, EVP_PKEY *pkey, X509 *cert, - BIO *dcont, BIO *out, unsigned int flags); - -int CMS_decrypt_set1_pkey(CMS_ContentInfo *cms, EVP_PKEY *pk, X509 *cert); -int CMS_decrypt_set1_key(CMS_ContentInfo *cms, - unsigned char *key, size_t keylen, - const unsigned char *id, size_t idlen); -int CMS_decrypt_set1_password(CMS_ContentInfo *cms, - unsigned char *pass, ossl_ssize_t passlen); - -STACK_OF(CMS_RecipientInfo) *CMS_get0_RecipientInfos(CMS_ContentInfo *cms); -int CMS_RecipientInfo_type(CMS_RecipientInfo *ri); -EVP_PKEY_CTX *CMS_RecipientInfo_get0_pkey_ctx(CMS_RecipientInfo *ri); -CMS_ContentInfo *CMS_EnvelopedData_create(const EVP_CIPHER *cipher); -CMS_RecipientInfo *CMS_add1_recipient_cert(CMS_ContentInfo *cms, - X509 *recip, unsigned int flags); -int CMS_RecipientInfo_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pkey); -int CMS_RecipientInfo_ktri_cert_cmp(CMS_RecipientInfo *ri, X509 *cert); -int CMS_RecipientInfo_ktri_get0_algs(CMS_RecipientInfo *ri, - EVP_PKEY **pk, X509 **recip, - X509_ALGOR **palg); -int CMS_RecipientInfo_ktri_get0_signer_id(CMS_RecipientInfo *ri, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -CMS_RecipientInfo *CMS_add0_recipient_key(CMS_ContentInfo *cms, int nid, - unsigned char *key, size_t keylen, - unsigned char *id, size_t idlen, - ASN1_GENERALIZEDTIME *date, - ASN1_OBJECT *otherTypeId, - ASN1_TYPE *otherType); - -int CMS_RecipientInfo_kekri_get0_id(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pid, - ASN1_GENERALIZEDTIME **pdate, - ASN1_OBJECT **potherid, - ASN1_TYPE **pothertype); - -int CMS_RecipientInfo_set0_key(CMS_RecipientInfo *ri, - unsigned char *key, size_t keylen); - -int CMS_RecipientInfo_kekri_id_cmp(CMS_RecipientInfo *ri, - const unsigned char *id, size_t idlen); - -int CMS_RecipientInfo_set0_password(CMS_RecipientInfo *ri, - unsigned char *pass, - ossl_ssize_t passlen); - -CMS_RecipientInfo *CMS_add0_recipient_password(CMS_ContentInfo *cms, - int iter, int wrap_nid, - int pbe_nid, - unsigned char *pass, - ossl_ssize_t passlen, - const EVP_CIPHER *kekciph); - -int CMS_RecipientInfo_decrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); -int CMS_RecipientInfo_encrypt(CMS_ContentInfo *cms, CMS_RecipientInfo *ri); - -int CMS_uncompress(CMS_ContentInfo *cms, BIO *dcont, BIO *out, - unsigned int flags); -CMS_ContentInfo *CMS_compress(BIO *in, int comp_nid, unsigned int flags); - -int CMS_set1_eContentType(CMS_ContentInfo *cms, const ASN1_OBJECT *oid); -const ASN1_OBJECT *CMS_get0_eContentType(CMS_ContentInfo *cms); - -CMS_CertificateChoices *CMS_add0_CertificateChoices(CMS_ContentInfo *cms); -int CMS_add0_cert(CMS_ContentInfo *cms, X509 *cert); -int CMS_add1_cert(CMS_ContentInfo *cms, X509 *cert); -STACK_OF(X509) *CMS_get1_certs(CMS_ContentInfo *cms); - -CMS_RevocationInfoChoice *CMS_add0_RevocationInfoChoice(CMS_ContentInfo *cms); -int CMS_add0_crl(CMS_ContentInfo *cms, X509_CRL *crl); -int CMS_add1_crl(CMS_ContentInfo *cms, X509_CRL *crl); -STACK_OF(X509_CRL) *CMS_get1_crls(CMS_ContentInfo *cms); - -int CMS_SignedData_init(CMS_ContentInfo *cms); -CMS_SignerInfo *CMS_add1_signer(CMS_ContentInfo *cms, - X509 *signer, EVP_PKEY *pk, const EVP_MD *md, - unsigned int flags); -EVP_PKEY_CTX *CMS_SignerInfo_get0_pkey_ctx(CMS_SignerInfo *si); -EVP_MD_CTX *CMS_SignerInfo_get0_md_ctx(CMS_SignerInfo *si); -STACK_OF(CMS_SignerInfo) *CMS_get0_SignerInfos(CMS_ContentInfo *cms); - -void CMS_SignerInfo_set1_signer_cert(CMS_SignerInfo *si, X509 *signer); -int CMS_SignerInfo_get0_signer_id(CMS_SignerInfo *si, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_SignerInfo_cert_cmp(CMS_SignerInfo *si, X509 *cert); -int CMS_set1_signers_certs(CMS_ContentInfo *cms, STACK_OF(X509) *certs, - unsigned int flags); -void CMS_SignerInfo_get0_algs(CMS_SignerInfo *si, EVP_PKEY **pk, - X509 **signer, X509_ALGOR **pdig, - X509_ALGOR **psig); -ASN1_OCTET_STRING *CMS_SignerInfo_get0_signature(CMS_SignerInfo *si); -int CMS_SignerInfo_sign(CMS_SignerInfo *si); -int CMS_SignerInfo_verify(CMS_SignerInfo *si); -int CMS_SignerInfo_verify_content(CMS_SignerInfo *si, BIO *chain); - -int CMS_add_smimecap(CMS_SignerInfo *si, STACK_OF(X509_ALGOR) *algs); -int CMS_add_simple_smimecap(STACK_OF(X509_ALGOR) **algs, - int algnid, int keysize); -int CMS_add_standard_smimecap(STACK_OF(X509_ALGOR) **smcap); - -int CMS_signed_get_attr_count(const CMS_SignerInfo *si); -int CMS_signed_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_signed_get_attr_by_OBJ(const CMS_SignerInfo *si, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *CMS_signed_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_signed_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_signed_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_signed_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_signed_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_signed_get0_data_by_OBJ(CMS_SignerInfo *si, const ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_unsigned_get_attr_count(const CMS_SignerInfo *si); -int CMS_unsigned_get_attr_by_NID(const CMS_SignerInfo *si, int nid, - int lastpos); -int CMS_unsigned_get_attr_by_OBJ(const CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *CMS_unsigned_get_attr(const CMS_SignerInfo *si, int loc); -X509_ATTRIBUTE *CMS_unsigned_delete_attr(CMS_SignerInfo *si, int loc); -int CMS_unsigned_add1_attr(CMS_SignerInfo *si, X509_ATTRIBUTE *attr); -int CMS_unsigned_add1_attr_by_OBJ(CMS_SignerInfo *si, - const ASN1_OBJECT *obj, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_NID(CMS_SignerInfo *si, - int nid, int type, - const void *bytes, int len); -int CMS_unsigned_add1_attr_by_txt(CMS_SignerInfo *si, - const char *attrname, int type, - const void *bytes, int len); -void *CMS_unsigned_get0_data_by_OBJ(CMS_SignerInfo *si, ASN1_OBJECT *oid, - int lastpos, int type); - -int CMS_get1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest **prr); -CMS_ReceiptRequest *CMS_ReceiptRequest_create0(unsigned char *id, int idlen, - int allorfirst, - STACK_OF(GENERAL_NAMES) - *receiptList, STACK_OF(GENERAL_NAMES) - *receiptsTo); -int CMS_add1_ReceiptRequest(CMS_SignerInfo *si, CMS_ReceiptRequest *rr); -void CMS_ReceiptRequest_get0_values(CMS_ReceiptRequest *rr, - ASN1_STRING **pcid, - int *pallorfirst, - STACK_OF(GENERAL_NAMES) **plist, - STACK_OF(GENERAL_NAMES) **prto); -int CMS_RecipientInfo_kari_get0_alg(CMS_RecipientInfo *ri, - X509_ALGOR **palg, - ASN1_OCTET_STRING **pukm); -STACK_OF(CMS_RecipientEncryptedKey) -*CMS_RecipientInfo_kari_get0_reks(CMS_RecipientInfo *ri); - -int CMS_RecipientInfo_kari_get0_orig_id(CMS_RecipientInfo *ri, - X509_ALGOR **pubalg, - ASN1_BIT_STRING **pubkey, - ASN1_OCTET_STRING **keyid, - X509_NAME **issuer, - ASN1_INTEGER **sno); - -int CMS_RecipientInfo_kari_orig_id_cmp(CMS_RecipientInfo *ri, X509 *cert); - -int CMS_RecipientEncryptedKey_get0_id(CMS_RecipientEncryptedKey *rek, - ASN1_OCTET_STRING **keyid, - ASN1_GENERALIZEDTIME **tm, - CMS_OtherKeyAttribute **other, - X509_NAME **issuer, ASN1_INTEGER **sno); -int CMS_RecipientEncryptedKey_cert_cmp(CMS_RecipientEncryptedKey *rek, - X509 *cert); -int CMS_RecipientInfo_kari_set0_pkey(CMS_RecipientInfo *ri, EVP_PKEY *pk); -EVP_CIPHER_CTX *CMS_RecipientInfo_kari_get0_ctx(CMS_RecipientInfo *ri); -int CMS_RecipientInfo_kari_decrypt(CMS_ContentInfo *cms, - CMS_RecipientInfo *ri, - CMS_RecipientEncryptedKey *rek); - -int CMS_SharedInfo_encode(unsigned char **pder, X509_ALGOR *kekalg, - ASN1_OCTET_STRING *ukm, int keylen); - -/* 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 -} -# endif -# endif -#endif diff --git a/openSSL/lin64/include/openssl/cmserr.h b/openSSL/lin64/include/openssl/cmserr.h deleted file mode 100644 index 7dbc13d..0000000 --- a/openSSL/lin64/include/openssl/cmserr.h +++ /dev/null @@ -1,202 +0,0 @@ -/* - * 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_CMSERR_H -# define HEADER_CMSERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_SI_CHECK_ATTRIBUTES 183 -# 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_ATTRIBUTE_ERROR 161 -# 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/openSSL/lin64/include/openssl/comp.h b/openSSL/lin64/include/openssl/comp.h deleted file mode 100644 index d814d3c..0000000 --- a/openSSL/lin64/include/openssl/comp.h +++ /dev/null @@ -1,53 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_COMP_H -# define HEADER_COMP_H - -# include - -# ifndef OPENSSL_NO_COMP -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - - - -COMP_CTX *COMP_CTX_new(COMP_METHOD *meth); -const COMP_METHOD *COMP_CTX_get_method(const COMP_CTX *ctx); -int COMP_CTX_get_type(const COMP_CTX* comp); -int COMP_get_type(const COMP_METHOD *meth); -const char *COMP_get_name(const COMP_METHOD *meth); -void COMP_CTX_free(COMP_CTX *ctx); - -int COMP_compress_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); -int COMP_expand_block(COMP_CTX *ctx, unsigned char *out, int olen, - unsigned char *in, int ilen); - -COMP_METHOD *COMP_zlib(void); - -#if OPENSSL_API_COMPAT < 0x10100000L -#define COMP_zlib_cleanup() while(0) continue -#endif - -# ifdef HEADER_BIO_H -# ifdef ZLIB -const BIO_METHOD *BIO_f_zlib(void); -# endif -# endif - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin64/include/openssl/comperr.h b/openSSL/lin64/include/openssl/comperr.h deleted file mode 100644 index 90231e9..0000000 --- a/openSSL/lin64/include/openssl/comperr.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * 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_COMPERR_H -# define HEADER_COMPERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/conf.h b/openSSL/lin64/include/openssl/conf.h deleted file mode 100644 index 7336cd2..0000000 --- a/openSSL/lin64/include/openssl/conf.h +++ /dev/null @@ -1,168 +0,0 @@ -/* - * 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_CONF_H -# define HEADER_CONF_H - -# include -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct { - char *section; - char *name; - char *value; -} CONF_VALUE; - -DEFINE_STACK_OF(CONF_VALUE) -DEFINE_LHASH_OF(CONF_VALUE); - -struct conf_st; -struct conf_method_st; -typedef struct conf_method_st CONF_METHOD; - -struct conf_method_st { - const char *name; - CONF *(*create) (CONF_METHOD *meth); - int (*init) (CONF *conf); - int (*destroy) (CONF *conf); - int (*destroy_data) (CONF *conf); - int (*load_bio) (CONF *conf, BIO *bp, long *eline); - int (*dump) (const CONF *conf, BIO *bp); - int (*is_number) (const CONF *conf, char c); - int (*to_int) (const CONF *conf, char c); - int (*load) (CONF *conf, const char *name, long *eline); -}; - -/* Module definitions */ - -typedef struct conf_imodule_st CONF_IMODULE; -typedef struct conf_module_st CONF_MODULE; - -DEFINE_STACK_OF(CONF_MODULE) -DEFINE_STACK_OF(CONF_IMODULE) - -/* DSO module function typedefs */ -typedef int conf_init_func (CONF_IMODULE *md, const CONF *cnf); -typedef void conf_finish_func (CONF_IMODULE *md); - -# define CONF_MFLAGS_IGNORE_ERRORS 0x1 -# define CONF_MFLAGS_IGNORE_RETURN_CODES 0x2 -# define CONF_MFLAGS_SILENT 0x4 -# define CONF_MFLAGS_NO_DSO 0x8 -# define CONF_MFLAGS_IGNORE_MISSING_FILE 0x10 -# define CONF_MFLAGS_DEFAULT_SECTION 0x20 - -int CONF_set_default_method(CONF_METHOD *meth); -void CONF_set_nconf(CONF *conf, LHASH_OF(CONF_VALUE) *hash); -LHASH_OF(CONF_VALUE) *CONF_load(LHASH_OF(CONF_VALUE) *conf, const char *file, - long *eline); -# ifndef OPENSSL_NO_STDIO -LHASH_OF(CONF_VALUE) *CONF_load_fp(LHASH_OF(CONF_VALUE) *conf, FILE *fp, - long *eline); -# endif -LHASH_OF(CONF_VALUE) *CONF_load_bio(LHASH_OF(CONF_VALUE) *conf, BIO *bp, - long *eline); -STACK_OF(CONF_VALUE) *CONF_get_section(LHASH_OF(CONF_VALUE) *conf, - const char *section); -char *CONF_get_string(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -long CONF_get_number(LHASH_OF(CONF_VALUE) *conf, const char *group, - const char *name); -void CONF_free(LHASH_OF(CONF_VALUE) *conf); -#ifndef OPENSSL_NO_STDIO -int CONF_dump_fp(LHASH_OF(CONF_VALUE) *conf, FILE *out); -#endif -int CONF_dump_bio(LHASH_OF(CONF_VALUE) *conf, BIO *out); - -DEPRECATEDIN_1_1_0(void OPENSSL_config(const char *config_name)) - -#if OPENSSL_API_COMPAT < 0x10100000L -# define OPENSSL_no_config() \ - OPENSSL_init_crypto(OPENSSL_INIT_NO_LOAD_CONFIG, NULL) -#endif - -/* - * New conf code. The semantics are different from the functions above. If - * that wasn't the case, the above functions would have been replaced - */ - -struct conf_st { - CONF_METHOD *meth; - void *meth_data; - LHASH_OF(CONF_VALUE) *data; -}; - -CONF *NCONF_new(CONF_METHOD *meth); -CONF_METHOD *NCONF_default(void); -CONF_METHOD *NCONF_WIN32(void); -void NCONF_free(CONF *conf); -void NCONF_free_data(CONF *conf); - -int NCONF_load(CONF *conf, const char *file, long *eline); -# ifndef OPENSSL_NO_STDIO -int NCONF_load_fp(CONF *conf, FILE *fp, long *eline); -# endif -int NCONF_load_bio(CONF *conf, BIO *bp, long *eline); -STACK_OF(CONF_VALUE) *NCONF_get_section(const CONF *conf, - const char *section); -char *NCONF_get_string(const CONF *conf, const char *group, const char *name); -int NCONF_get_number_e(const CONF *conf, const char *group, const char *name, - long *result); -#ifndef OPENSSL_NO_STDIO -int NCONF_dump_fp(const CONF *conf, FILE *out); -#endif -int NCONF_dump_bio(const CONF *conf, BIO *out); - -#define NCONF_get_number(c,g,n,r) NCONF_get_number_e(c,g,n,r) - -/* Module functions */ - -int CONF_modules_load(const CONF *cnf, const char *appname, - unsigned long flags); -int CONF_modules_load_file(const char *filename, const char *appname, - unsigned long flags); -void CONF_modules_unload(int all); -void CONF_modules_finish(void); -#if OPENSSL_API_COMPAT < 0x10100000L -# define CONF_modules_free() while(0) continue -#endif -int CONF_module_add(const char *name, conf_init_func *ifunc, - conf_finish_func *ffunc); - -const char *CONF_imodule_get_name(const CONF_IMODULE *md); -const char *CONF_imodule_get_value(const CONF_IMODULE *md); -void *CONF_imodule_get_usr_data(const CONF_IMODULE *md); -void CONF_imodule_set_usr_data(CONF_IMODULE *md, void *usr_data); -CONF_MODULE *CONF_imodule_get_module(const CONF_IMODULE *md); -unsigned long CONF_imodule_get_flags(const CONF_IMODULE *md); -void CONF_imodule_set_flags(CONF_IMODULE *md, unsigned long flags); -void *CONF_module_get_usr_data(CONF_MODULE *pmod); -void CONF_module_set_usr_data(CONF_MODULE *pmod, void *usr_data); - -char *CONF_get1_default_config_file(void); - -int CONF_parse_list(const char *list, int sep, int nospc, - int (*list_cb) (const char *elem, int len, void *usr), - void *arg); - -void OPENSSL_load_builtin_modules(void); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/conf_api.h b/openSSL/lin64/include/openssl/conf_api.h deleted file mode 100644 index a0275ad..0000000 --- a/openSSL/lin64/include/openssl/conf_api.h +++ /dev/null @@ -1,40 +0,0 @@ -/* - * Copyright 1995-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_CONF_API_H -# define HEADER_CONF_API_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Up until OpenSSL 0.9.5a, this was new_section */ -CONF_VALUE *_CONF_new_section(CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was get_section */ -CONF_VALUE *_CONF_get_section(const CONF *conf, const char *section); -/* Up until OpenSSL 0.9.5a, this was CONF_get_section */ -STACK_OF(CONF_VALUE) *_CONF_get_section_values(const CONF *conf, - const char *section); - -int _CONF_add_string(CONF *conf, CONF_VALUE *section, CONF_VALUE *value); -char *_CONF_get_string(const CONF *conf, const char *section, - const char *name); -long _CONF_get_number(const CONF *conf, const char *section, - const char *name); - -int _CONF_new_data(CONF *conf); -void _CONF_free_data(CONF *conf); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin64/include/openssl/conferr.h b/openSSL/lin64/include/openssl/conferr.h deleted file mode 100644 index 32b9229..0000000 --- a/openSSL/lin64/include/openssl/conferr.h +++ /dev/null @@ -1,76 +0,0 @@ -/* - * 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_CONFERR_H -# define HEADER_CONFERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/crypto.h b/openSSL/lin64/include/openssl/crypto.h deleted file mode 100644 index 7d0b526..0000000 --- a/openSSL/lin64/include/openssl/crypto.h +++ /dev/null @@ -1,445 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CRYPTO_H -# define HEADER_CRYPTO_H - -# include -# include - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif - -# include -# include -# include -# include -# include - -# ifdef CHARSET_EBCDIC -# include -# endif - -/* - * Resolve problems on some operating systems with symbol names that clash - * one way or another - */ -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSLeay OpenSSL_version_num -# define SSLeay_version OpenSSL_version -# define SSLEAY_VERSION_NUMBER OPENSSL_VERSION_NUMBER -# define SSLEAY_VERSION OPENSSL_VERSION -# define SSLEAY_CFLAGS OPENSSL_CFLAGS -# define SSLEAY_BUILT_ON OPENSSL_BUILT_ON -# define SSLEAY_PLATFORM OPENSSL_PLATFORM -# define SSLEAY_DIR OPENSSL_DIR - -/* - * Old type for allocating dynamic locks. No longer used. Use the new thread - * API instead. - */ -typedef struct { - int dummy; -} CRYPTO_dynlock; - -# endif /* OPENSSL_API_COMPAT */ - -typedef void CRYPTO_RWLOCK; - -CRYPTO_RWLOCK *CRYPTO_THREAD_lock_new(void); -int CRYPTO_THREAD_read_lock(CRYPTO_RWLOCK *lock); -int CRYPTO_THREAD_write_lock(CRYPTO_RWLOCK *lock); -int CRYPTO_THREAD_unlock(CRYPTO_RWLOCK *lock); -void CRYPTO_THREAD_lock_free(CRYPTO_RWLOCK *lock); - -int CRYPTO_atomic_add(int *val, int amount, int *ret, CRYPTO_RWLOCK *lock); - -/* - * The following can be used to detect memory leaks in the library. If - * used, it turns on malloc checking - */ -# define CRYPTO_MEM_CHECK_OFF 0x0 /* Control only */ -# define CRYPTO_MEM_CHECK_ON 0x1 /* Control and mode bit */ -# define CRYPTO_MEM_CHECK_ENABLE 0x2 /* Control and mode bit */ -# define CRYPTO_MEM_CHECK_DISABLE 0x3 /* Control only */ - -struct crypto_ex_data_st { - STACK_OF(void) *sk; -}; -DEFINE_STACK_OF(void) - -/* - * Per class, we have a STACK of function pointers. - */ -# define CRYPTO_EX_INDEX_SSL 0 -# define CRYPTO_EX_INDEX_SSL_CTX 1 -# define CRYPTO_EX_INDEX_SSL_SESSION 2 -# define CRYPTO_EX_INDEX_X509 3 -# define CRYPTO_EX_INDEX_X509_STORE 4 -# define CRYPTO_EX_INDEX_X509_STORE_CTX 5 -# define CRYPTO_EX_INDEX_DH 6 -# define CRYPTO_EX_INDEX_DSA 7 -# define CRYPTO_EX_INDEX_EC_KEY 8 -# define CRYPTO_EX_INDEX_RSA 9 -# define CRYPTO_EX_INDEX_ENGINE 10 -# define CRYPTO_EX_INDEX_UI 11 -# define CRYPTO_EX_INDEX_BIO 12 -# define CRYPTO_EX_INDEX_APP 13 -# define CRYPTO_EX_INDEX_UI_METHOD 14 -# define CRYPTO_EX_INDEX_DRBG 15 -# define CRYPTO_EX_INDEX__COUNT 16 - -/* No longer needed, so this is a no-op */ -#define OPENSSL_malloc_init() while(0) continue - -int CRYPTO_mem_ctrl(int mode); - -# define OPENSSL_malloc(num) \ - CRYPTO_malloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_zalloc(num) \ - CRYPTO_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_realloc(addr, num) \ - CRYPTO_realloc(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_realloc(addr, old_num, num) \ - CRYPTO_clear_realloc(addr, old_num, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_clear_free(addr, num) \ - CRYPTO_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_free(addr) \ - CRYPTO_free(addr, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_memdup(str, s) \ - CRYPTO_memdup((str), s, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_strdup(str) \ - CRYPTO_strdup(str, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_strndup(str, n) \ - CRYPTO_strndup(str, n, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_malloc(num) \ - CRYPTO_secure_malloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_zalloc(num) \ - CRYPTO_secure_zalloc(num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_free(addr) \ - CRYPTO_secure_free(addr, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_clear_free(addr, num) \ - CRYPTO_secure_clear_free(addr, num, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_secure_actual_size(ptr) \ - CRYPTO_secure_actual_size(ptr) - -size_t OPENSSL_strlcpy(char *dst, const char *src, size_t siz); -size_t OPENSSL_strlcat(char *dst, const char *src, size_t siz); -size_t OPENSSL_strnlen(const char *str, size_t maxlen); -char *OPENSSL_buf2hexstr(const unsigned char *buffer, long len); -unsigned char *OPENSSL_hexstr2buf(const char *str, long *len); -int OPENSSL_hexchar2int(unsigned char c); - -# define OPENSSL_MALLOC_MAX_NELEMS(type) (((1U<<(sizeof(int)*8-1))-1)/sizeof(type)) - -unsigned long OpenSSL_version_num(void); -const char *OpenSSL_version(int type); -# define OPENSSL_VERSION 0 -# define OPENSSL_CFLAGS 1 -# define OPENSSL_BUILT_ON 2 -# define OPENSSL_PLATFORM 3 -# define OPENSSL_DIR 4 -# define OPENSSL_ENGINES_DIR 5 - -int OPENSSL_issetugid(void); - -typedef void CRYPTO_EX_new (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef void CRYPTO_EX_free (void *parent, void *ptr, CRYPTO_EX_DATA *ad, - int idx, long argl, void *argp); -typedef int CRYPTO_EX_dup (CRYPTO_EX_DATA *to, const CRYPTO_EX_DATA *from, - void *from_d, int idx, long argl, void *argp); -__owur int CRYPTO_get_ex_new_index(int class_index, long argl, void *argp, - CRYPTO_EX_new *new_func, CRYPTO_EX_dup *dup_func, - CRYPTO_EX_free *free_func); -/* No longer use an index. */ -int CRYPTO_free_ex_index(int class_index, int idx); - -/* - * Initialise/duplicate/free CRYPTO_EX_DATA variables corresponding to a - * given class (invokes whatever per-class callbacks are applicable) - */ -int CRYPTO_new_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); -int CRYPTO_dup_ex_data(int class_index, CRYPTO_EX_DATA *to, - const CRYPTO_EX_DATA *from); - -void CRYPTO_free_ex_data(int class_index, void *obj, CRYPTO_EX_DATA *ad); - -/* - * Get/set data in a CRYPTO_EX_DATA variable corresponding to a particular - * index (relative to the class type involved) - */ -int CRYPTO_set_ex_data(CRYPTO_EX_DATA *ad, int idx, void *val); -void *CRYPTO_get_ex_data(const CRYPTO_EX_DATA *ad, int idx); - -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * This function cleans up all "ex_data" state. It mustn't be called under - * potential race-conditions. - */ -# define CRYPTO_cleanup_all_ex_data() while(0) continue - -/* - * 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 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, - * the callback management functions can be safely replaced with no-op macros. - */ -# define CRYPTO_num_locks() (1) -# define CRYPTO_set_locking_callback(func) -# define CRYPTO_get_locking_callback() (NULL) -# define CRYPTO_set_add_lock_callback(func) -# define CRYPTO_get_add_lock_callback() (NULL) - -/* - * These defines where used in combination with the old locking callbacks, - * they are not called anymore, but old code that's not called might still - * use them. - */ -# define CRYPTO_LOCK 1 -# define CRYPTO_UNLOCK 2 -# define CRYPTO_READ 4 -# define CRYPTO_WRITE 8 - -/* This structure is no longer used */ -typedef struct crypto_threadid_st { - int dummy; -} CRYPTO_THREADID; -/* Only use CRYPTO_THREADID_set_[numeric|pointer]() within callbacks */ -# define CRYPTO_THREADID_set_numeric(id, val) -# define CRYPTO_THREADID_set_pointer(id, ptr) -# define CRYPTO_THREADID_set_callback(threadid_func) (0) -# define CRYPTO_THREADID_get_callback() (NULL) -# define CRYPTO_THREADID_current(id) -# define CRYPTO_THREADID_cmp(a, b) (-1) -# define CRYPTO_THREADID_cpy(dest, src) -# define CRYPTO_THREADID_hash(id) (0UL) - -# if OPENSSL_API_COMPAT < 0x10000000L -# define CRYPTO_set_id_callback(func) -# define CRYPTO_get_id_callback() (NULL) -# define CRYPTO_thread_id() (0UL) -# endif /* OPENSSL_API_COMPAT < 0x10000000L */ - -# define CRYPTO_set_dynlock_create_callback(dyn_create_function) -# define CRYPTO_set_dynlock_lock_callback(dyn_lock_function) -# define CRYPTO_set_dynlock_destroy_callback(dyn_destroy_function) -# define CRYPTO_get_dynlock_create_callback() (NULL) -# define CRYPTO_get_dynlock_lock_callback() (NULL) -# define CRYPTO_get_dynlock_destroy_callback() (NULL) -# endif /* OPENSSL_API_COMPAT < 0x10100000L */ - -int CRYPTO_set_mem_functions( - void *(*m) (size_t, const char *, int), - void *(*r) (void *, size_t, const char *, int), - void (*f) (void *, const char *, int)); -int CRYPTO_set_mem_debug(int flag); -void CRYPTO_get_mem_functions( - void *(**m) (size_t, const char *, int), - void *(**r) (void *, size_t, const char *, int), - void (**f) (void *, const char *, int)); - -void *CRYPTO_malloc(size_t num, const char *file, int line); -void *CRYPTO_zalloc(size_t num, const char *file, int line); -void *CRYPTO_memdup(const void *str, size_t siz, const char *file, int line); -char *CRYPTO_strdup(const char *str, const char *file, int line); -char *CRYPTO_strndup(const char *str, size_t s, const char *file, int line); -void CRYPTO_free(void *ptr, const char *file, int line); -void CRYPTO_clear_free(void *ptr, size_t num, const char *file, int line); -void *CRYPTO_realloc(void *addr, size_t num, const char *file, int line); -void *CRYPTO_clear_realloc(void *addr, size_t old_num, size_t num, - const char *file, int line); - -int CRYPTO_secure_malloc_init(size_t sz, int minsize); -int CRYPTO_secure_malloc_done(void); -void *CRYPTO_secure_malloc(size_t num, const char *file, int line); -void *CRYPTO_secure_zalloc(size_t num, const char *file, int line); -void CRYPTO_secure_free(void *ptr, const char *file, int line); -void CRYPTO_secure_clear_free(void *ptr, size_t num, - const char *file, int line); -int CRYPTO_secure_allocated(const void *ptr); -int CRYPTO_secure_malloc_initialized(void); -size_t CRYPTO_secure_actual_size(void *ptr); -size_t CRYPTO_secure_used(void); - -void OPENSSL_cleanse(void *ptr, size_t len); - -# ifndef OPENSSL_NO_CRYPTO_MDEBUG -# define OPENSSL_mem_debug_push(info) \ - CRYPTO_mem_debug_push(info, OPENSSL_FILE, OPENSSL_LINE) -# define OPENSSL_mem_debug_pop() \ - 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)) - * The flag argument has the following significance: - * 0: called before the actual memory allocation has taken place - * 1: called after the actual memory allocation has taken place - */ -void CRYPTO_mem_debug_malloc(void *addr, size_t num, int flag, - const char *file, int line); -void CRYPTO_mem_debug_realloc(void *addr1, void *addr2, size_t num, int flag, - const char *file, int line); -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 -int CRYPTO_mem_leaks(BIO *bio); -# endif - -/* die if we have to */ -ossl_noreturn void OPENSSL_die(const char *assertion, const char *file, int line); -# if OPENSSL_API_COMPAT < 0x10100000L -# define OpenSSLDie(f,l,a) OPENSSL_die((a),(f),(l)) -# endif -# define OPENSSL_assert(e) \ - (void)((e) ? 0 : (OPENSSL_die("assertion failed: " #e, OPENSSL_FILE, OPENSSL_LINE), 1)) - -int OPENSSL_isservice(void); - -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); -int OPENSSL_gmtime_diff(int *pday, int *psec, - const struct tm *from, const struct tm *to); - -/* - * CRYPTO_memcmp returns zero iff the |len| bytes at |a| and |b| are equal. - * It takes an amount of time dependent on |len|, but independent of the - * contents of |a| and |b|. Unlike memcmp, it cannot be used to put elements - * into a defined order as the return value when a != b is undefined, other - * than to be non-zero. - */ -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 -# define OPENSSL_INIT_LOAD_CRYPTO_STRINGS 0x00000002L -# define OPENSSL_INIT_ADD_ALL_CIPHERS 0x00000004L -# define OPENSSL_INIT_ADD_ALL_DIGESTS 0x00000008L -# define OPENSSL_INIT_NO_ADD_ALL_CIPHERS 0x00000010L -# define OPENSSL_INIT_NO_ADD_ALL_DIGESTS 0x00000020L -# define OPENSSL_INIT_LOAD_CONFIG 0x00000040L -# define OPENSSL_INIT_NO_LOAD_CONFIG 0x00000080L -# define OPENSSL_INIT_ASYNC 0x00000100L -# define OPENSSL_INIT_ENGINE_RDRAND 0x00000200L -# define OPENSSL_INIT_ENGINE_DYNAMIC 0x00000400L -# define OPENSSL_INIT_ENGINE_OPENSSL 0x00000800L -# define OPENSSL_INIT_ENGINE_CRYPTODEV 0x00001000L -# define OPENSSL_INIT_ENGINE_CAPI 0x00002000L -# define OPENSSL_INIT_ENGINE_PADLOCK 0x00004000L -# define OPENSSL_INIT_ENGINE_AFALG 0x00008000L -/* OPENSSL_INIT_ZLIB 0x00010000L */ -# 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 */ - -/* openssl and dasync not counted as builtin */ -# define OPENSSL_INIT_ENGINE_ALL_BUILTIN \ - (OPENSSL_INIT_ENGINE_RDRAND | OPENSSL_INIT_ENGINE_DYNAMIC \ - | OPENSSL_INIT_ENGINE_CRYPTODEV | OPENSSL_INIT_ENGINE_CAPI | \ - OPENSSL_INIT_ENGINE_PADLOCK) - - -/* Library initialisation functions */ -void OPENSSL_cleanup(void); -int OPENSSL_init_crypto(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); -int OPENSSL_atexit(void (*handler)(void)); -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_appname); -# endif -void OPENSSL_INIT_free(OPENSSL_INIT_SETTINGS *settings); - -# if defined(OPENSSL_THREADS) && !defined(CRYPTO_TDEBUG) -# if defined(_WIN32) -# if defined(BASETYPES) || defined(_WINDEF_H) -/* application has to include in order to use this */ -typedef DWORD CRYPTO_THREAD_LOCAL; -typedef DWORD CRYPTO_THREAD_ID; - -typedef LONG CRYPTO_ONCE; -# define CRYPTO_ONCE_STATIC_INIT 0 -# endif -# else -# include -typedef pthread_once_t CRYPTO_ONCE; -typedef pthread_key_t CRYPTO_THREAD_LOCAL; -typedef pthread_t CRYPTO_THREAD_ID; - -# define CRYPTO_ONCE_STATIC_INIT PTHREAD_ONCE_INIT -# endif -# endif - -# if !defined(CRYPTO_ONCE_STATIC_INIT) -typedef unsigned int CRYPTO_ONCE; -typedef unsigned int CRYPTO_THREAD_LOCAL; -typedef unsigned int CRYPTO_THREAD_ID; -# define CRYPTO_ONCE_STATIC_INIT 0 -# endif - -int CRYPTO_THREAD_run_once(CRYPTO_ONCE *once, void (*init)(void)); - -int CRYPTO_THREAD_init_local(CRYPTO_THREAD_LOCAL *key, void (*cleanup)(void *)); -void *CRYPTO_THREAD_get_local(CRYPTO_THREAD_LOCAL *key); -int CRYPTO_THREAD_set_local(CRYPTO_THREAD_LOCAL *key, void *val); -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); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/cryptoerr.h b/openSSL/lin64/include/openssl/cryptoerr.h deleted file mode 100644 index 3db5a4e..0000000 --- a/openSSL/lin64/include/openssl/cryptoerr.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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_CRYPTOERR_H -# define HEADER_CRYPTOERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# ifdef __cplusplus -extern "C" -# endif -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/openSSL/lin64/include/openssl/ct.h b/openSSL/lin64/include/openssl/ct.h deleted file mode 100644 index ebdba34..0000000 --- a/openSSL/lin64/include/openssl/ct.h +++ /dev/null @@ -1,474 +0,0 @@ -/* - * 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_CT_H -# define HEADER_CT_H - -# include - -# ifndef OPENSSL_NO_CT -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - - -/* Minimum RSA key size, from RFC6962 */ -# define SCT_MIN_RSA_BITS 2048 - -/* All hashes are SHA256 in v1 of Certificate Transparency */ -# define CT_V1_HASHLEN SHA256_DIGEST_LENGTH - -typedef enum { - CT_LOG_ENTRY_TYPE_NOT_SET = -1, - CT_LOG_ENTRY_TYPE_X509 = 0, - CT_LOG_ENTRY_TYPE_PRECERT = 1 -} ct_log_entry_type_t; - -typedef enum { - SCT_VERSION_NOT_SET = -1, - SCT_VERSION_V1 = 0 -} sct_version_t; - -typedef enum { - SCT_SOURCE_UNKNOWN, - SCT_SOURCE_TLS_EXTENSION, - SCT_SOURCE_X509V3_EXTENSION, - SCT_SOURCE_OCSP_STAPLED_RESPONSE -} sct_source_t; - -typedef enum { - SCT_VALIDATION_STATUS_NOT_SET, - SCT_VALIDATION_STATUS_UNKNOWN_LOG, - SCT_VALIDATION_STATUS_VALID, - SCT_VALIDATION_STATUS_INVALID, - SCT_VALIDATION_STATUS_UNVERIFIED, - SCT_VALIDATION_STATUS_UNKNOWN_VERSION -} sct_validation_status_t; - -DEFINE_STACK_OF(SCT) -DEFINE_STACK_OF(CTLOG) - -/****************************************** - * CT policy evaluation context functions * - ******************************************/ - -/* - * Creates a new, empty policy evaluation context. - * The caller is responsible for calling CT_POLICY_EVAL_CTX_free when finished - * with the CT_POLICY_EVAL_CTX. - */ -CT_POLICY_EVAL_CTX *CT_POLICY_EVAL_CTX_new(void); - -/* Deletes a policy evaluation context and anything it owns. */ -void CT_POLICY_EVAL_CTX_free(CT_POLICY_EVAL_CTX *ctx); - -/* Gets the peer certificate that the SCTs are for */ -X509* CT_POLICY_EVAL_CTX_get0_cert(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the certificate associated with the received SCTs. - * Increments the reference count of cert. - * Returns 1 on success, 0 otherwise. - */ -int CT_POLICY_EVAL_CTX_set1_cert(CT_POLICY_EVAL_CTX *ctx, X509 *cert); - -/* Gets the issuer of the aforementioned certificate */ -X509* CT_POLICY_EVAL_CTX_get0_issuer(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the issuer of the certificate associated with the received SCTs. - * Increments the reference count of issuer. - * Returns 1 on success, 0 otherwise. - */ -int CT_POLICY_EVAL_CTX_set1_issuer(CT_POLICY_EVAL_CTX *ctx, X509 *issuer); - -/* Gets the CT logs that are trusted sources of SCTs */ -const CTLOG_STORE *CT_POLICY_EVAL_CTX_get0_log_store(const CT_POLICY_EVAL_CTX *ctx); - -/* Sets the log store that is in use. It must outlive the CT_POLICY_EVAL_CTX. */ -void CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE(CT_POLICY_EVAL_CTX *ctx, - CTLOG_STORE *log_store); - -/* - * Gets the time, in milliseconds since the Unix epoch, that will be used as the - * current time when checking whether an SCT was issued in the future. - * Such SCTs will fail validation, as required by RFC6962. - */ -uint64_t CT_POLICY_EVAL_CTX_get_time(const CT_POLICY_EVAL_CTX *ctx); - -/* - * Sets the time to evaluate SCTs against, in milliseconds since the Unix epoch. - * If an SCT's timestamp is after this time, it will be interpreted as having - * been issued in the future. RFC6962 states that "TLS clients MUST reject SCTs - * whose timestamp is in the future", so an SCT will not validate in this case. - */ -void CT_POLICY_EVAL_CTX_set_time(CT_POLICY_EVAL_CTX *ctx, uint64_t time_in_ms); - -/***************** - * SCT functions * - *****************/ - -/* - * Creates a new, blank SCT. - * The caller is responsible for calling SCT_free when finished with the SCT. - */ -SCT *SCT_new(void); - -/* - * Creates a new SCT from some base64-encoded strings. - * The caller is responsible for calling SCT_free when finished with the SCT. - */ -SCT *SCT_new_from_base64(unsigned char version, - const char *logid_base64, - ct_log_entry_type_t entry_type, - uint64_t timestamp, - const char *extensions_base64, - const char *signature_base64); - -/* - * Frees the SCT and the underlying data structures. - */ -void SCT_free(SCT *sct); - -/* - * Free a stack of SCTs, and the underlying SCTs themselves. - * Intended to be compatible with X509V3_EXT_FREE. - */ -void SCT_LIST_free(STACK_OF(SCT) *a); - -/* - * Returns the version of the SCT. - */ -sct_version_t SCT_get_version(const SCT *sct); - -/* - * Set the version of an SCT. - * Returns 1 on success, 0 if the version is unrecognized. - */ -__owur int SCT_set_version(SCT *sct, sct_version_t version); - -/* - * Returns the log entry type of the SCT. - */ -ct_log_entry_type_t SCT_get_log_entry_type(const SCT *sct); - -/* - * Set the log entry type of an SCT. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_log_entry_type(SCT *sct, ct_log_entry_type_t entry_type); - -/* - * Gets the ID of the log that an SCT came from. - * Ownership of the log ID remains with the SCT. - * Returns the length of the log ID. - */ -size_t SCT_get0_log_id(const SCT *sct, unsigned char **log_id); - -/* - * Set the log ID of an SCT to point directly to the *log_id specified. - * The SCT takes ownership of the specified pointer. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set0_log_id(SCT *sct, unsigned char *log_id, size_t log_id_len); - -/* - * Set the log ID of an SCT. - * This makes a copy of the log_id. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_log_id(SCT *sct, const unsigned char *log_id, - size_t log_id_len); - -/* - * Returns the timestamp for the SCT (epoch time in milliseconds). - */ -uint64_t SCT_get_timestamp(const SCT *sct); - -/* - * Set the timestamp of an SCT (epoch time in milliseconds). - */ -void SCT_set_timestamp(SCT *sct, uint64_t timestamp); - -/* - * Return the NID for the signature used by the SCT. - * For CT v1, this will be either NID_sha256WithRSAEncryption or - * NID_ecdsa_with_SHA256 (or NID_undef if incorrect/unset). - */ -int SCT_get_signature_nid(const SCT *sct); - -/* - * Set the signature type of an SCT - * For CT v1, this should be either NID_sha256WithRSAEncryption or - * NID_ecdsa_with_SHA256. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_signature_nid(SCT *sct, int nid); - -/* - * Set *ext to point to the extension data for the SCT. ext must not be NULL. - * The SCT retains ownership of this pointer. - * Returns length of the data pointed to. - */ -size_t SCT_get0_extensions(const SCT *sct, unsigned char **ext); - -/* - * Set the extensions of an SCT to point directly to the *ext specified. - * The SCT takes ownership of the specified pointer. - */ -void SCT_set0_extensions(SCT *sct, unsigned char *ext, size_t ext_len); - -/* - * Set the extensions of an SCT. - * This takes a copy of the ext. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_extensions(SCT *sct, const unsigned char *ext, - size_t ext_len); - -/* - * Set *sig to point to the signature for the SCT. sig must not be NULL. - * The SCT retains ownership of this pointer. - * Returns length of the data pointed to. - */ -size_t SCT_get0_signature(const SCT *sct, unsigned char **sig); - -/* - * Set the signature of an SCT to point directly to the *sig specified. - * The SCT takes ownership of the specified pointer. - */ -void SCT_set0_signature(SCT *sct, unsigned char *sig, size_t sig_len); - -/* - * Set the signature of an SCT to be a copy of the *sig specified. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set1_signature(SCT *sct, const unsigned char *sig, - size_t sig_len); - -/* - * The origin of this SCT, e.g. TLS extension, OCSP response, etc. - */ -sct_source_t SCT_get_source(const SCT *sct); - -/* - * Set the origin of this SCT, e.g. TLS extension, OCSP response, etc. - * Returns 1 on success, 0 otherwise. - */ -__owur int SCT_set_source(SCT *sct, sct_source_t source); - -/* - * Returns a text string describing the validation status of |sct|. - */ -const char *SCT_validation_status_string(const SCT *sct); - -/* - * Pretty-prints an |sct| to |out|. - * It will be indented by the number of spaces specified by |indent|. - * If |logs| is not NULL, it will be used to lookup the CT log that the SCT came - * from, so that the log name can be printed. - */ -void SCT_print(const SCT *sct, BIO *out, int indent, const CTLOG_STORE *logs); - -/* - * Pretty-prints an |sct_list| to |out|. - * It will be indented by the number of spaces specified by |indent|. - * SCTs will be delimited by |separator|. - * If |logs| is not NULL, it will be used to lookup the CT log that each SCT - * came from, so that the log names can be printed. - */ -void SCT_LIST_print(const STACK_OF(SCT) *sct_list, BIO *out, int indent, - const char *separator, const CTLOG_STORE *logs); - -/* - * Gets the last result of validating this SCT. - * If it has not been validated yet, returns SCT_VALIDATION_STATUS_NOT_SET. - */ -sct_validation_status_t SCT_get_validation_status(const SCT *sct); - -/* - * Validates the given SCT with the provided context. - * Sets the "validation_status" field of the SCT. - * Returns 1 if the SCT is valid and the signature verifies. - * Returns 0 if the SCT is invalid or could not be verified. - * Returns -1 if an error occurs. - */ -__owur int SCT_validate(SCT *sct, const CT_POLICY_EVAL_CTX *ctx); - -/* - * Validates the given list of SCTs with the provided context. - * Sets the "validation_status" field of each SCT. - * Returns 1 if there are no invalid SCTs and all signatures verify. - * Returns 0 if at least one SCT is invalid or could not be verified. - * Returns a negative integer if an error occurs. - */ -__owur int SCT_LIST_validate(const STACK_OF(SCT) *scts, - CT_POLICY_EVAL_CTX *ctx); - - -/********************************* - * SCT parsing and serialisation * - *********************************/ - -/* - * Serialize (to TLS format) a stack of SCTs and return the length. - * "a" must not be NULL. - * If "pp" is NULL, just return the length of what would have been serialized. - * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer - * for data that caller is responsible for freeing (only if function returns - * successfully). - * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring - * that "*pp" is large enough to accept all of the serialized data. - * Returns < 0 on error, >= 0 indicating bytes written (or would have been) - * on success. - */ -__owur int i2o_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); - -/* - * Convert TLS format SCT list to a stack of SCTs. - * If "a" or "*a" is NULL, a new stack will be created that the caller is - * responsible for freeing (by calling SCT_LIST_free). - * "**pp" and "*pp" must not be NULL. - * Upon success, "*pp" will point to after the last bytes read, and a stack - * will be returned. - * Upon failure, a NULL pointer will be returned, and the position of "*pp" is - * not defined. - */ -STACK_OF(SCT) *o2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, - size_t len); - -/* - * Serialize (to DER format) a stack of SCTs and return the length. - * "a" must not be NULL. - * If "pp" is NULL, just returns the length of what would have been serialized. - * If "pp" is not NULL and "*pp" is null, function will allocate a new pointer - * for data that caller is responsible for freeing (only if function returns - * successfully). - * If "pp" is NULL and "*pp" is not NULL, caller is responsible for ensuring - * that "*pp" is large enough to accept all of the serialized data. - * Returns < 0 on error, >= 0 indicating bytes written (or would have been) - * on success. - */ -__owur int i2d_SCT_LIST(const STACK_OF(SCT) *a, unsigned char **pp); - -/* - * Parses an SCT list in DER format and returns it. - * If "a" or "*a" is NULL, a new stack will be created that the caller is - * responsible for freeing (by calling SCT_LIST_free). - * "**pp" and "*pp" must not be NULL. - * Upon success, "*pp" will point to after the last bytes read, and a stack - * will be returned. - * Upon failure, a NULL pointer will be returned, and the position of "*pp" is - * not defined. - */ -STACK_OF(SCT) *d2i_SCT_LIST(STACK_OF(SCT) **a, const unsigned char **pp, - long len); - -/* - * Serialize (to TLS format) an |sct| and write it to |out|. - * If |out| is null, no SCT will be output but the length will still be returned. - * If |out| points to a null pointer, a string will be allocated to hold the - * TLS-format SCT. It is the responsibility of the caller to free it. - * If |out| points to an allocated string, the TLS-format SCT will be written - * to it. - * The length of the SCT in TLS format will be returned. - */ -__owur int i2o_SCT(const SCT *sct, unsigned char **out); - -/* - * Parses an SCT in TLS format and returns it. - * If |psct| is not null, it will end up pointing to the parsed SCT. If it - * already points to a non-null pointer, the pointer will be free'd. - * |in| should be a pointer to a string containing the TLS-format SCT. - * |in| will be advanced to the end of the SCT if parsing succeeds. - * |len| should be the length of the SCT in |in|. - * Returns NULL if an error occurs. - * If the SCT is an unsupported version, only the SCT's 'sct' and 'sct_len' - * fields will be populated (with |in| and |len| respectively). - */ -SCT *o2i_SCT(SCT **psct, const unsigned char **in, size_t len); - -/******************** - * CT log functions * - ********************/ - -/* - * Creates a new CT log instance with the given |public_key| and |name|. - * Takes ownership of |public_key| but copies |name|. - * Returns NULL if malloc fails or if |public_key| cannot be converted to DER. - * Should be deleted by the caller using CTLOG_free when no longer needed. - */ -CTLOG *CTLOG_new(EVP_PKEY *public_key, const char *name); - -/* - * Creates a new CTLOG instance with the base64-encoded SubjectPublicKeyInfo DER - * in |pkey_base64|. The |name| is a string to help users identify this log. - * Returns 1 on success, 0 on failure. - * Should be deleted by the caller using CTLOG_free when no longer needed. - */ -int CTLOG_new_from_base64(CTLOG ** ct_log, - const char *pkey_base64, const char *name); - -/* - * Deletes a CT log instance and its fields. - */ -void CTLOG_free(CTLOG *log); - -/* Gets the name of the CT log */ -const char *CTLOG_get0_name(const CTLOG *log); -/* Gets the ID of the CT log */ -void CTLOG_get0_log_id(const CTLOG *log, const uint8_t **log_id, - size_t *log_id_len); -/* Gets the public key of the CT log */ -EVP_PKEY *CTLOG_get0_public_key(const CTLOG *log); - -/************************** - * CT log store functions * - **************************/ - -/* - * Creates a new CT log store. - * Should be deleted by the caller using CTLOG_STORE_free when no longer needed. - */ -CTLOG_STORE *CTLOG_STORE_new(void); - -/* - * Deletes a CT log store and all of the CT log instances held within. - */ -void CTLOG_STORE_free(CTLOG_STORE *store); - -/* - * Finds a CT log in the store based on its log ID. - * Returns the CT log, or NULL if no match is found. - */ -const CTLOG *CTLOG_STORE_get0_log_by_id(const CTLOG_STORE *store, - const uint8_t *log_id, - size_t log_id_len); - -/* - * Loads a CT log list into a |store| from a |file|. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_file(CTLOG_STORE *store, const char *file); - -/* - * Loads the default CT log list into a |store|. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin64/include/openssl/cterr.h b/openSSL/lin64/include/openssl/cterr.h deleted file mode 100644 index feb7bc5..0000000 --- a/openSSL/lin64/include/openssl/cterr.h +++ /dev/null @@ -1,80 +0,0 @@ -/* - * 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_CTERR_H -# define HEADER_CTERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/des.h b/openSSL/lin64/include/openssl/des.h deleted file mode 100644 index be4abbd..0000000 --- a/openSSL/lin64/include/openssl/des.h +++ /dev/null @@ -1,174 +0,0 @@ -/* - * Copyright 1995-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_DES_H -# define HEADER_DES_H - -# include - -# ifndef OPENSSL_NO_DES -# ifdef __cplusplus -extern "C" { -# endif -# include - -typedef unsigned int DES_LONG; - -# ifdef OPENSSL_BUILD_SHLIBCRYPTO -# undef OPENSSL_EXTERN -# define OPENSSL_EXTERN OPENSSL_EXPORT -# endif - -typedef unsigned char DES_cblock[8]; -typedef /* const */ unsigned char const_DES_cblock[8]; -/* - * With "const", gcc 2.8.1 on Solaris thinks that DES_cblock * and - * const_DES_cblock * are incompatible pointer types. - */ - -typedef struct DES_ks { - union { - DES_cblock cblock; - /* - * make sure things are correct size on machines with 8 byte longs - */ - DES_LONG deslong[2]; - } ks[16]; -} DES_key_schedule; - -# define DES_KEY_SZ (sizeof(DES_cblock)) -# define DES_SCHEDULE_SZ (sizeof(DES_key_schedule)) - -# define DES_ENCRYPT 1 -# define DES_DECRYPT 0 - -# define DES_CBC_MODE 0 -# define DES_PCBC_MODE 1 - -# define DES_ecb2_encrypt(i,o,k1,k2,e) \ - DES_ecb3_encrypt((i),(o),(k1),(k2),(k1),(e)) - -# define DES_ede2_cbc_encrypt(i,o,l,k1,k2,iv,e) \ - DES_ede3_cbc_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(e)) - -# define DES_ede2_cfb64_encrypt(i,o,l,k1,k2,iv,n,e) \ - DES_ede3_cfb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n),(e)) - -# define DES_ede2_ofb64_encrypt(i,o,l,k1,k2,iv,n) \ - DES_ede3_ofb64_encrypt((i),(o),(l),(k1),(k2),(k1),(iv),(n)) - -OPENSSL_DECLARE_GLOBAL(int, DES_check_key); /* defaults to false */ -# define DES_check_key OPENSSL_GLOBAL_REF(DES_check_key) - -const char *DES_options(void); -void DES_ecb3_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, int enc); -DES_LONG DES_cbc_cksum(const unsigned char *input, DES_cblock *output, - long length, DES_key_schedule *schedule, - const_DES_cblock *ivec); -/* DES_cbc_encrypt does not update the IV! Use DES_ncbc_encrypt instead. */ -void DES_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_ncbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_xcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, const_DES_cblock *inw, - const_DES_cblock *outw, int enc); -void DES_cfb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -void DES_ecb_encrypt(const_DES_cblock *input, DES_cblock *output, - DES_key_schedule *ks, int enc); - -/* - * This is the DES encryption function that gets called by just about every - * other DES routine in the library. You should not use this function except - * to implement 'modes' of DES. I say this because the functions that call - * this routine do the conversion from 'char *' to long, and this needs to be - * done to make sure 'non-aligned' memory access do not occur. The - * characters are loaded 'little endian'. Data is a pointer to 2 unsigned - * long's and ks is the DES_key_schedule to use. enc, is non zero specifies - * encryption, zero if decryption. - */ -void DES_encrypt1(DES_LONG *data, DES_key_schedule *ks, int enc); - -/* - * This functions is the same as DES_encrypt1() except that the DES initial - * permutation (IP) and final permutation (FP) have been left out. As for - * DES_encrypt1(), you should not use this function. It is used by the - * routines in the library that implement triple DES. IP() DES_encrypt2() - * DES_encrypt2() DES_encrypt2() FP() is the same as DES_encrypt1() - * DES_encrypt1() DES_encrypt1() except faster :-). - */ -void DES_encrypt2(DES_LONG *data, DES_key_schedule *ks, int enc); - -void DES_encrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_decrypt3(DES_LONG *data, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3); -void DES_ede3_cbc_encrypt(const unsigned char *input, unsigned char *output, - long length, - DES_key_schedule *ks1, DES_key_schedule *ks2, - DES_key_schedule *ks3, DES_cblock *ivec, int enc); -void DES_ede3_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num, int enc); -void DES_ede3_cfb_encrypt(const unsigned char *in, unsigned char *out, - int numbits, long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int enc); -void DES_ede3_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *ks1, - DES_key_schedule *ks2, DES_key_schedule *ks3, - DES_cblock *ivec, int *num); -char *DES_fcrypt(const char *buf, const char *salt, char *ret); -char *DES_crypt(const char *buf, const char *salt); -void DES_ofb_encrypt(const unsigned char *in, unsigned char *out, int numbits, - long length, DES_key_schedule *schedule, - DES_cblock *ivec); -void DES_pcbc_encrypt(const unsigned char *input, unsigned char *output, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int enc); -DES_LONG DES_quad_cksum(const unsigned char *input, DES_cblock output[], - long length, int out_count, DES_cblock *seed); -int DES_random_key(DES_cblock *ret); -void DES_set_odd_parity(DES_cblock *key); -int DES_check_key_parity(const_DES_cblock *key); -int DES_is_weak_key(const_DES_cblock *key); -/* - * DES_set_key (= set_key = DES_key_sched = key_sched) calls - * DES_set_key_checked if global variable DES_check_key is set, - * DES_set_key_unchecked otherwise. - */ -int DES_set_key(const_DES_cblock *key, DES_key_schedule *schedule); -int DES_key_sched(const_DES_cblock *key, DES_key_schedule *schedule); -int DES_set_key_checked(const_DES_cblock *key, DES_key_schedule *schedule); -void DES_set_key_unchecked(const_DES_cblock *key, DES_key_schedule *schedule); -void DES_string_to_key(const char *str, DES_cblock *key); -void DES_string_to_2keys(const char *str, DES_cblock *key1, DES_cblock *key2); -void DES_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num, int enc); -void DES_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, DES_key_schedule *schedule, - DES_cblock *ivec, int *num); - -# define DES_fixup_key_parity DES_set_odd_parity - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/dh.h b/openSSL/lin64/include/openssl/dh.h deleted file mode 100644 index 3527540..0000000 --- a/openSSL/lin64/include/openssl/dh.h +++ /dev/null @@ -1,340 +0,0 @@ -/* - * 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_DH_H -# define HEADER_DH_H - -# include - -# ifndef OPENSSL_NO_DH -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include - -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_DH_MAX_MODULUS_BITS -# define OPENSSL_DH_MAX_MODULUS_BITS 10000 -# endif - -# define OPENSSL_DH_FIPS_MIN_MODULUS_BITS 1024 - -# define DH_FLAG_CACHE_MONT_P 0x01 - -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define DH_FLAG_NO_EXP_CONSTTIME 0x00 -# endif - -/* - * If this flag is set the DH method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define DH_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DH_FLAG_NON_FIPS_ALLOW 0x0400 - -/* Already defined in ossl_typ.h */ -/* typedef struct dh_st DH; */ -/* typedef struct dh_method DH_METHOD; */ - -DECLARE_ASN1_ITEM(DHparams) - -# define DH_GENERATOR_2 2 -/* #define DH_GENERATOR_3 3 */ -# define DH_GENERATOR_5 5 - -/* DH_check error codes */ -# define DH_CHECK_P_NOT_PRIME 0x01 -# define DH_CHECK_P_NOT_SAFE_PRIME 0x02 -# define DH_UNABLE_TO_CHECK_GENERATOR 0x04 -# define DH_NOT_SUITABLE_GENERATOR 0x08 -# define DH_CHECK_Q_NOT_PRIME 0x10 -# define DH_CHECK_INVALID_Q_VALUE 0x20 -# define DH_CHECK_INVALID_J_VALUE 0x40 - -/* DH_check_pub_key error codes */ -# define DH_CHECK_PUBKEY_TOO_SMALL 0x01 -# define DH_CHECK_PUBKEY_TOO_LARGE 0x02 -# define DH_CHECK_PUBKEY_INVALID 0x04 - -/* - * primes p where (p-1)/2 is prime too are called "safe"; we define this for - * backward compatibility: - */ -# define DH_CHECK_P_NOT_STRONG_PRIME DH_CHECK_P_NOT_SAFE_PRIME - -# define d2i_DHparams_fp(fp,x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHparams_fp(fp,x) \ - ASN1_i2d_fp(i2d_DHparams,(fp), (unsigned char *)(x)) -# define d2i_DHparams_bio(bp,x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHparams, bp, x) -# define i2d_DHparams_bio(bp,x) \ - ASN1_i2d_bio_of_const(DH,i2d_DHparams,bp,x) - -# define d2i_DHxparams_fp(fp,x) \ - (DH *)ASN1_d2i_fp((char *(*)())DH_new, \ - (char *(*)())d2i_DHxparams, \ - (fp), \ - (unsigned char **)(x)) -# define i2d_DHxparams_fp(fp,x) \ - ASN1_i2d_fp(i2d_DHxparams,(fp), (unsigned char *)(x)) -# define d2i_DHxparams_bio(bp,x) \ - ASN1_d2i_bio_of(DH, DH_new, d2i_DHxparams, bp, x) -# define i2d_DHxparams_bio(bp,x) \ - ASN1_i2d_bio_of_const(DH, i2d_DHxparams, bp, x) - -DH *DHparams_dup(DH *); - -const DH_METHOD *DH_OpenSSL(void); - -void DH_set_default_method(const DH_METHOD *meth); -const DH_METHOD *DH_get_default_method(void); -int DH_set_method(DH *dh, const DH_METHOD *meth); -DH *DH_new_method(ENGINE *engine); - -DH *DH_new(void); -void DH_free(DH *dh); -int DH_up_ref(DH *dh); -int DH_bits(const DH *dh); -int DH_size(const DH *dh); -int DH_security_bits(const DH *dh); -#define DH_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DH, l, p, newf, dupf, freef) -int DH_set_ex_data(DH *d, int idx, void *arg); -void *DH_get_ex_data(DH *d, int idx); - -/* Deprecated version */ -DEPRECATEDIN_0_9_8(DH *DH_generate_parameters(int prime_len, int generator, - void (*callback) (int, int, - void *), - void *cb_arg)) - -/* New version */ -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); -int DH_generate_key(DH *dh); -int DH_compute_key(unsigned char *key, const BIGNUM *pub_key, DH *dh); -int DH_compute_key_padded(unsigned char *key, const BIGNUM *pub_key, DH *dh); -DH *d2i_DHparams(DH **a, const unsigned char **pp, long length); -int i2d_DHparams(const DH *a, unsigned char **pp); -DH *d2i_DHxparams(DH **a, const unsigned char **pp, long length); -int i2d_DHxparams(const DH *a, unsigned char **pp); -# ifndef OPENSSL_NO_STDIO -int DHparams_print_fp(FILE *fp, const DH *x); -# endif -int DHparams_print(BIO *bp, const DH *x); - -/* RFC 5114 parameters */ -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, - const unsigned char *Z, size_t Zlen, - ASN1_OBJECT *key_oid, - const unsigned char *ukm, size_t ukmlen, const EVP_MD *md); -# endif - -void DH_get0_pqg(const DH *dh, - const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); -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); -ENGINE *DH_get0_engine(DH *d); -long DH_get_length(const DH *dh); -int DH_set_length(DH *dh, long length); - -DH_METHOD *DH_meth_new(const char *name, int flags); -void DH_meth_free(DH_METHOD *dhm); -DH_METHOD *DH_meth_dup(const DH_METHOD *dhm); -const char *DH_meth_get0_name(const DH_METHOD *dhm); -int DH_meth_set1_name(DH_METHOD *dhm, const char *name); -int DH_meth_get_flags(const DH_METHOD *dhm); -int DH_meth_set_flags(DH_METHOD *dhm, int flags); -void *DH_meth_get0_app_data(const DH_METHOD *dhm); -int DH_meth_set0_app_data(DH_METHOD *dhm, void *app_data); -int (*DH_meth_get_generate_key(const DH_METHOD *dhm)) (DH *); -int DH_meth_set_generate_key(DH_METHOD *dhm, int (*generate_key) (DH *)); -int (*DH_meth_get_compute_key(const DH_METHOD *dhm)) - (unsigned char *key, const BIGNUM *pub_key, DH *dh); -int DH_meth_set_compute_key(DH_METHOD *dhm, - int (*compute_key) (unsigned char *key, const BIGNUM *pub_key, DH *dh)); -int (*DH_meth_get_bn_mod_exp(const DH_METHOD *dhm)) - (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - BN_CTX *, BN_MONT_CTX *); -int DH_meth_set_bn_mod_exp(DH_METHOD *dhm, - int (*bn_mod_exp) (const DH *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); -int (*DH_meth_get_init(const DH_METHOD *dhm))(DH *); -int DH_meth_set_init(DH_METHOD *dhm, int (*init)(DH *)); -int (*DH_meth_get_finish(const DH_METHOD *dhm)) (DH *); -int DH_meth_set_finish(DH_METHOD *dhm, int (*finish) (DH *)); -int (*DH_meth_get_generate_params(const DH_METHOD *dhm)) - (DH *, int, int, BN_GENCB *); -int DH_meth_set_generate_params(DH_METHOD *dhm, - int (*generate_params) (DH *, int, int, BN_GENCB *)); - - -# define EVP_PKEY_CTX_set_dh_paramgen_prime_len(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_PRIME_LEN, len, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_subprime_len(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN, len, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_type(ctx, typ) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_TYPE, typ, NULL) - -# define EVP_PKEY_CTX_set_dh_paramgen_generator(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DH, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_PARAMGEN_GENERATOR, gen, NULL) - -# define EVP_PKEY_CTX_set_dh_rfc5114(ctx, gen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DH_RFC5114, gen, NULL) - -# define EVP_PKEY_CTX_set_dhx_rfc5114(ctx, gen) \ - 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, \ - EVP_PKEY_CTRL_DH_KDF_TYPE, kdf, NULL) - -# define EVP_PKEY_CTX_get_dh_kdf_type(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_TYPE, -2, NULL) - -# 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)) - -# 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)) - -# 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)) - -# 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)) - -# define EVP_PKEY_CTX_set_dh_kdf_outlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DHX, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_DH_KDF_OUTLEN, len, NULL) - -# 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)) - -# 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)) - -# 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)) - -# 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) -# define EVP_PKEY_CTRL_DH_RFC5114 (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_DH_PARAMGEN_SUBPRIME_LEN (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_DH_PARAMGEN_TYPE (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_DH_KDF_TYPE (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_DH_KDF_MD (EVP_PKEY_ALG_CTRL + 8) -# define EVP_PKEY_CTRL_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_GET_DH_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 10) -# define EVP_PKEY_CTRL_DH_KDF_UKM (EVP_PKEY_ALG_CTRL + 11) -# 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 -# ifndef OPENSSL_NO_CMS -# define EVP_PKEY_DH_KDF_X9_42 2 -# endif - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin64/include/openssl/dherr.h b/openSSL/lin64/include/openssl/dherr.h deleted file mode 100644 index 916b3be..0000000 --- a/openSSL/lin64/include/openssl/dherr.h +++ /dev/null @@ -1,88 +0,0 @@ -/* - * 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_DHERR_H -# define HEADER_DHERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/dsa.h b/openSSL/lin64/include/openssl/dsa.h deleted file mode 100644 index 6d8a18a..0000000 --- a/openSSL/lin64/include/openssl/dsa.h +++ /dev/null @@ -1,244 +0,0 @@ -/* - * 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_DSA_H -# define HEADER_DSA_H - -# include - -# ifndef OPENSSL_NO_DSA -# ifdef __cplusplus -extern "C" { -# endif -# 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 -# endif - -# define OPENSSL_DSA_FIPS_MIN_MODULUS_BITS 1024 - -# define DSA_FLAG_CACHE_MONT_P 0x01 -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define DSA_FLAG_NO_EXP_CONSTTIME 0x00 -# endif - -/* - * If this flag is set the DSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define DSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define DSA_FLAG_NON_FIPS_ALLOW 0x0400 -# define DSA_FLAG_FIPS_CHECKED 0x0800 - -/* Already defined in ossl_typ.h */ -/* typedef struct dsa_st DSA; */ -/* typedef struct dsa_method DSA_METHOD; */ - -typedef struct DSA_SIG_st DSA_SIG; - -# define d2i_DSAparams_fp(fp,x) (DSA *)ASN1_d2i_fp((char *(*)())DSA_new, \ - (char *(*)())d2i_DSAparams,(fp),(unsigned char **)(x)) -# define i2d_DSAparams_fp(fp,x) ASN1_i2d_fp(i2d_DSAparams,(fp), \ - (unsigned char *)(x)) -# define d2i_DSAparams_bio(bp,x) ASN1_d2i_bio_of(DSA,DSA_new,d2i_DSAparams,bp,x) -# define i2d_DSAparams_bio(bp,x) ASN1_i2d_bio_of_const(DSA,i2d_DSAparams,bp,x) - -DSA *DSAparams_dup(DSA *x); -DSA_SIG *DSA_SIG_new(void); -void DSA_SIG_free(DSA_SIG *a); -int i2d_DSA_SIG(const DSA_SIG *a, unsigned char **pp); -DSA_SIG *d2i_DSA_SIG(DSA_SIG **v, const unsigned char **pp, long length); -void DSA_SIG_get0(const DSA_SIG *sig, const BIGNUM **pr, const BIGNUM **ps); -int DSA_SIG_set0(DSA_SIG *sig, BIGNUM *r, BIGNUM *s); - -DSA_SIG *DSA_do_sign(const unsigned char *dgst, int dlen, DSA *dsa); -int DSA_do_verify(const unsigned char *dgst, int dgst_len, - DSA_SIG *sig, DSA *dsa); - -const DSA_METHOD *DSA_OpenSSL(void); - -void DSA_set_default_method(const DSA_METHOD *); -const DSA_METHOD *DSA_get_default_method(void); -int DSA_set_method(DSA *dsa, const DSA_METHOD *); -const DSA_METHOD *DSA_get_method(DSA *d); - -DSA *DSA_new(void); -DSA *DSA_new_method(ENGINE *engine); -void DSA_free(DSA *r); -/* "up" the DSA object's reference count */ -int DSA_up_ref(DSA *r); -int DSA_size(const DSA *); -int DSA_bits(const DSA *d); -int DSA_security_bits(const DSA *d); - /* next 4 return -1 on error */ -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, - const unsigned char *sigbuf, int siglen, DSA *dsa); -#define DSA_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_DSA, l, p, newf, dupf, freef) -int DSA_set_ex_data(DSA *d, int idx, void *arg); -void *DSA_get_ex_data(DSA *d, int idx); - -DSA *d2i_DSAPublicKey(DSA **a, const unsigned char **pp, long length); -DSA *d2i_DSAPrivateKey(DSA **a, const unsigned char **pp, long length); -DSA *d2i_DSAparams(DSA **a, const unsigned char **pp, long length); - -/* Deprecated version */ -DEPRECATEDIN_0_9_8(DSA *DSA_generate_parameters(int bits, - unsigned char *seed, - int seed_len, - int *counter_ret, - unsigned long *h_ret, void - (*callback) (int, int, - void *), - void *cb_arg)) - -/* New version */ -int DSA_generate_parameters_ex(DSA *dsa, int bits, - const unsigned char *seed, int seed_len, - int *counter_ret, unsigned long *h_ret, - BN_GENCB *cb); - -int DSA_generate_key(DSA *a); -int i2d_DSAPublicKey(const DSA *a, unsigned char **pp); -int i2d_DSAPrivateKey(const DSA *a, unsigned char **pp); -int i2d_DSAparams(const DSA *a, unsigned char **pp); - -int DSAparams_print(BIO *bp, const DSA *x); -int DSA_print(BIO *bp, const DSA *x, int off); -# ifndef OPENSSL_NO_STDIO -int DSAparams_print_fp(FILE *fp, const DSA *x); -int DSA_print_fp(FILE *bp, const DSA *x, int off); -# endif - -# define DSS_prime_checks 64 -/* - * Primality test according to FIPS PUB 186-4, Appendix C.3. Since we only - * have one value here we set the number of checks to 64 which is the 128 bit - * security level that is the highest level and valid for creating a 3072 bit - * DSA key. - */ -# define DSA_is_prime(n, callback, cb_arg) \ - BN_is_prime(n, DSS_prime_checks, callback, NULL, cb_arg) - -# ifndef OPENSSL_NO_DH -/* - * Convert DSA structure (key or just parameters) into DH structure (be - * careful to avoid small subgroup attacks when using this!) - */ -DH *DSA_dup_DH(const DSA *r); -# endif - -# define EVP_PKEY_CTX_set_dsa_paramgen_bits(ctx, nbits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DSA_PARAMGEN_BITS, nbits, NULL) -# define EVP_PKEY_CTX_set_dsa_paramgen_q_bits(ctx, qbits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS, qbits, NULL) -# define EVP_PKEY_CTX_set_dsa_paramgen_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_DSA, EVP_PKEY_OP_PARAMGEN, \ - EVP_PKEY_CTRL_DSA_PARAMGEN_MD, 0, (void *)(md)) - -# define EVP_PKEY_CTRL_DSA_PARAMGEN_BITS (EVP_PKEY_ALG_CTRL + 1) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_Q_BITS (EVP_PKEY_ALG_CTRL + 2) -# define EVP_PKEY_CTRL_DSA_PARAMGEN_MD (EVP_PKEY_ALG_CTRL + 3) - -void DSA_get0_pqg(const DSA *d, - const BIGNUM **p, const BIGNUM **q, const BIGNUM **g); -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); -ENGINE *DSA_get0_engine(DSA *d); - -DSA_METHOD *DSA_meth_new(const char *name, int flags); -void DSA_meth_free(DSA_METHOD *dsam); -DSA_METHOD *DSA_meth_dup(const DSA_METHOD *dsam); -const char *DSA_meth_get0_name(const DSA_METHOD *dsam); -int DSA_meth_set1_name(DSA_METHOD *dsam, const char *name); -int DSA_meth_get_flags(const DSA_METHOD *dsam); -int DSA_meth_set_flags(DSA_METHOD *dsam, int flags); -void *DSA_meth_get0_app_data(const DSA_METHOD *dsam); -int DSA_meth_set0_app_data(DSA_METHOD *dsam, void *app_data); -DSA_SIG *(*DSA_meth_get_sign(const DSA_METHOD *dsam)) - (const unsigned char *, int, DSA *); -int DSA_meth_set_sign(DSA_METHOD *dsam, - DSA_SIG *(*sign) (const unsigned char *, int, DSA *)); -int (*DSA_meth_get_sign_setup(const DSA_METHOD *dsam)) - (DSA *, BN_CTX *, BIGNUM **, BIGNUM **); -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 *); -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)) - (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, const BIGNUM *, BN_CTX *, BN_MONT_CTX *); -int DSA_meth_set_mod_exp(DSA_METHOD *dsam, - int (*mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, const BIGNUM *, const BIGNUM *, BN_CTX *, - BN_MONT_CTX *)); -int (*DSA_meth_get_bn_mod_exp(const DSA_METHOD *dsam)) - (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, const BIGNUM *, - BN_CTX *, BN_MONT_CTX *); -int DSA_meth_set_bn_mod_exp(DSA_METHOD *dsam, - int (*bn_mod_exp) (DSA *, BIGNUM *, const BIGNUM *, const BIGNUM *, - const BIGNUM *, BN_CTX *, BN_MONT_CTX *)); -int (*DSA_meth_get_init(const DSA_METHOD *dsam))(DSA *); -int DSA_meth_set_init(DSA_METHOD *dsam, int (*init)(DSA *)); -int (*DSA_meth_get_finish(const DSA_METHOD *dsam)) (DSA *); -int DSA_meth_set_finish(DSA_METHOD *dsam, int (*finish) (DSA *)); -int (*DSA_meth_get_paramgen(const DSA_METHOD *dsam)) - (DSA *, int, const unsigned char *, int, int *, unsigned long *, - BN_GENCB *); -int DSA_meth_set_paramgen(DSA_METHOD *dsam, - int (*paramgen) (DSA *, int, const unsigned char *, int, int *, - unsigned long *, BN_GENCB *)); -int (*DSA_meth_get_keygen(const DSA_METHOD *dsam)) (DSA *); -int DSA_meth_set_keygen(DSA_METHOD *dsam, int (*keygen) (DSA *)); - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin64/include/openssl/dsaerr.h b/openSSL/lin64/include/openssl/dsaerr.h deleted file mode 100644 index 495a1ac..0000000 --- a/openSSL/lin64/include/openssl/dsaerr.h +++ /dev/null @@ -1,72 +0,0 @@ -/* - * 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_DSAERR_H -# define HEADER_DSAERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_MISSING_PRIVATE_KEY 111 -# 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/openSSL/lin64/include/openssl/dtls1.h b/openSSL/lin64/include/openssl/dtls1.h deleted file mode 100644 index d55ca9c..0000000 --- a/openSSL/lin64/include/openssl/dtls1.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_DTLS1_H -# define HEADER_DTLS1_H - -#ifdef __cplusplus -extern "C" { -#endif - -# define DTLS1_VERSION 0xFEFF -# define DTLS1_2_VERSION 0xFEFD -# define DTLS_MIN_VERSION DTLS1_VERSION -# define DTLS_MAX_VERSION DTLS1_2_VERSION -# define DTLS1_VERSION_MAJOR 0xFE - -# define DTLS1_BAD_VER 0x0100 - -/* Special value for method supporting multiple versions */ -# 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 - -# define DTLS1_HM_HEADER_LENGTH 12 - -# define DTLS1_HM_BAD_FRAGMENT -2 -# define DTLS1_HM_FRAGMENT_RETRY -3 - -# define DTLS1_CCS_HEADER_LENGTH 1 - -# define DTLS1_AL_HEADER_LENGTH 2 - -/* Timeout multipliers */ -# define DTLS1_TMO_READ_COUNT 2 -# define DTLS1_TMO_WRITE_COUNT 2 - -# define DTLS1_TMO_ALERT_COUNT 12 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin64/include/openssl/e_os2.h b/openSSL/lin64/include/openssl/e_os2.h deleted file mode 100644 index 5c88e51..0000000 --- a/openSSL/lin64/include/openssl/e_os2.h +++ /dev/null @@ -1,301 +0,0 @@ -/* - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_E_OS2_H -# define HEADER_E_OS2_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/****************************************************************************** - * Detect operating systems. This probably needs completing. - * The result is that at least one OPENSSL_SYS_os macro should be defined. - * However, if none is defined, Unix is assumed. - **/ - -# define OPENSSL_SYS_UNIX - -/* --------------------- Microsoft operating systems ---------------------- */ - -/* - * Note that MSDOS actually denotes 32-bit environments running on top of - * MS-DOS, such as DJGPP one. - */ -# if defined(OPENSSL_SYS_MSDOS) -# undef OPENSSL_SYS_UNIX -# endif - -/* - * For 32 bit environment, there seems to be the CygWin environment and then - * all the others that try to do the same thing Microsoft does... - */ -/* - * UEFI lives here because it might be built with a Microsoft toolchain and - * we need to avoid the false positive match on Windows. - */ -# if defined(OPENSSL_SYS_UEFI) -# undef OPENSSL_SYS_UNIX -# elif defined(OPENSSL_SYS_UWIN) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WIN32_UWIN -# else -# if defined(__CYGWIN__) || defined(OPENSSL_SYS_CYGWIN) -# define OPENSSL_SYS_WIN32_CYGWIN -# else -# if defined(_WIN32) || defined(OPENSSL_SYS_WIN32) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN32) -# define OPENSSL_SYS_WIN32 -# endif -# endif -# if defined(_WIN64) || defined(OPENSSL_SYS_WIN64) -# undef OPENSSL_SYS_UNIX -# if !defined(OPENSSL_SYS_WIN64) -# define OPENSSL_SYS_WIN64 -# endif -# endif -# if defined(OPENSSL_SYS_WINNT) -# undef OPENSSL_SYS_UNIX -# endif -# if defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# endif -# endif -# endif - -/* Anything that tries to look like Microsoft is "Windows" */ -# if defined(OPENSSL_SYS_WIN32) || defined(OPENSSL_SYS_WIN64) || defined(OPENSSL_SYS_WINNT) || defined(OPENSSL_SYS_WINCE) -# undef OPENSSL_SYS_UNIX -# define OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_SYS_MSDOS -# define OPENSSL_SYS_MSDOS -# endif -# endif - -/* - * DLL settings. This part is a bit tough, because it's up to the - * application implementor how he or she will link the application, so it - * requires some macro to be used. - */ -# ifdef OPENSSL_SYS_WINDOWS -# ifndef OPENSSL_OPT_WINDLL -# if defined(_WINDLL) /* This is used when building OpenSSL to - * indicate that DLL linkage should be used */ -# define OPENSSL_OPT_WINDLL -# endif -# endif -# endif - -/* ------------------------------- OpenVMS -------------------------------- */ -# if defined(__VMS) || defined(VMS) || defined(OPENSSL_SYS_VMS) -# if !defined(OPENSSL_SYS_VMS) -# undef OPENSSL_SYS_UNIX -# endif -# define OPENSSL_SYS_VMS -# if defined(__DECC) -# define OPENSSL_SYS_VMS_DECC -# elif defined(__DECCXX) -# define OPENSSL_SYS_VMS_DECC -# define OPENSSL_SYS_VMS_DECCXX -# else -# define OPENSSL_SYS_VMS_NODECC -# endif -# endif - -/* -------------------------------- Unix ---------------------------------- */ -# ifdef OPENSSL_SYS_UNIX -# if defined(linux) || defined(__linux__) && !defined(OPENSSL_SYS_LINUX) -# define OPENSSL_SYS_LINUX -# endif -# if defined(_AIX) && !defined(OPENSSL_SYS_AIX) -# define OPENSSL_SYS_AIX -# endif -# endif - -/* -------------------------------- VOS ----------------------------------- */ -# if defined(__VOS__) && !defined(OPENSSL_SYS_VOS) -# define OPENSSL_SYS_VOS -# ifdef __HPPA__ -# define OPENSSL_SYS_VOS_HPPA -# endif -# ifdef __IA32__ -# define OPENSSL_SYS_VOS_IA32 -# endif -# endif - -/** - * That's it for OS-specific stuff - *****************************************************************************/ - -/* Specials for I/O an exit */ -# ifdef OPENSSL_SYS_MSDOS -# define OPENSSL_UNISTD_IO -# define OPENSSL_DECLARE_EXIT extern void exit(int); -# else -# define OPENSSL_UNISTD_IO OPENSSL_UNISTD -# define OPENSSL_DECLARE_EXIT /* declared in unistd.h */ -# endif - -/*- - * 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 and OPENSSL_EXTERN - * have some generally sensible values. - */ - -# if defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) -# define OPENSSL_EXPORT extern __declspec(dllexport) -# define OPENSSL_EXTERN extern __declspec(dllimport) -# else -# define OPENSSL_EXPORT extern -# define OPENSSL_EXTERN extern -# endif - -/*- - * Macros to allow global variables to be reached through function calls when - * required (if a shared library version requires it, for example. - * The way it's done allows definitions like this: - * - * // in foobar.c - * OPENSSL_IMPLEMENT_GLOBAL(int,foobar,0) - * // in foobar.h - * OPENSSL_DECLARE_GLOBAL(int,foobar); - * #define foobar OPENSSL_GLOBAL_REF(foobar) - */ -# ifdef OPENSSL_EXPORT_VAR_AS_FUNCTION -# define OPENSSL_IMPLEMENT_GLOBAL(type,name,value) \ - type *_shadow_##name(void) \ - { static type _hide_##name=value; return &_hide_##name; } -# 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) type _shadow_##name=value; -# define OPENSSL_DECLARE_GLOBAL(type,name) OPENSSL_EXPORT type _shadow_##name -# define OPENSSL_GLOBAL_REF(name) _shadow_##name -# endif - -# ifdef _WIN32 -# ifdef _WIN64 -# define ossl_ssize_t __int64 -# define OSSL_SSIZE_MAX _I64_MAX -# else -# define ossl_ssize_t int -# define OSSL_SSIZE_MAX INT_MAX -# endif -# endif - -# if defined(OPENSSL_SYS_UEFI) && !defined(ossl_ssize_t) -# define ossl_ssize_t INTN -# define OSSL_SSIZE_MAX MAX_INTN -# endif - -# ifndef ossl_ssize_t -# define ossl_ssize_t ssize_t -# if defined(SSIZE_MAX) -# 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 - -# ifdef DEBUG_UNUSED -# define __owur __attribute__((__warn_unused_result__)) -# else -# define __owur -# endif - -/* Standard integer types */ -# if defined(OPENSSL_SYS_UEFI) -typedef INT8 int8_t; -typedef UINT8 uint8_t; -typedef INT16 int16_t; -typedef UINT16 uint16_t; -typedef INT32 int32_t; -typedef UINT32 uint32_t; -typedef INT64 int64_t; -typedef UINT64 uint64_t; -# elif (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \ - defined(__osf__) || defined(__sgi) || defined(__hpux) || \ - defined(OPENSSL_SYS_VMS) || defined (__OpenBSD__) -# include -# elif defined(_MSC_VER) && _MSC_VER<1600 -/* - * minimally required typdefs for systems not supporting inttypes.h or - * stdint.h: currently just older VC++ - */ -typedef signed char int8_t; -typedef unsigned char uint8_t; -typedef short int16_t; -typedef unsigned short uint16_t; -typedef int int32_t; -typedef unsigned int uint32_t; -typedef __int64 int64_t; -typedef unsigned __int64 uint64_t; -# else -# include -# endif - -/* ossl_inline: portable inline definition usable in public headers */ -# if !defined(inline) && !defined(__cplusplus) -# if defined(__STDC_VERSION__) && __STDC_VERSION__>=199901L - /* just use inline */ -# define ossl_inline inline -# elif defined(__GNUC__) && __GNUC__>=2 -# define ossl_inline __inline__ -# elif defined(_MSC_VER) - /* - * Visual Studio: inline is available in C++ only, however - * __inline is available for C, see - * http://msdn.microsoft.com/en-us/library/z8y1yy88.aspx - */ -# define ossl_inline __inline -# else -# define ossl_inline -# endif -# else -# define ossl_inline inline -# endif - -# if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L && \ - !defined(__cplusplus) -# define ossl_noreturn _Noreturn -# elif defined(__GNUC__) && __GNUC__ >= 2 -# define ossl_noreturn __attribute__((noreturn)) -# else -# 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 -#endif diff --git a/openSSL/lin64/include/openssl/ebcdic.h b/openSSL/lin64/include/openssl/ebcdic.h deleted file mode 100644 index aa01285..0000000 --- a/openSSL/lin64/include/openssl/ebcdic.h +++ /dev/null @@ -1,33 +0,0 @@ -/* - * Copyright 1999-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_EBCDIC_H -# define HEADER_EBCDIC_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Avoid name clashes with other applications */ -# define os_toascii _openssl_os_toascii -# define os_toebcdic _openssl_os_toebcdic -# define ebcdic2ascii _openssl_ebcdic2ascii -# define ascii2ebcdic _openssl_ascii2ebcdic - -extern const unsigned char os_toascii[256]; -extern const unsigned char os_toebcdic[256]; -void *ebcdic2ascii(void *dest, const void *srce, size_t count); -void *ascii2ebcdic(void *dest, const void *srce, size_t count); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin64/include/openssl/ec.h b/openSSL/lin64/include/openssl/ec.h deleted file mode 100644 index 24baf53..0000000 --- a/openSSL/lin64/include/openssl/ec.h +++ /dev/null @@ -1,1484 +0,0 @@ -/* - * Copyright 2002-2021 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_EC_H -# define HEADER_EC_H - -# include - -# ifndef OPENSSL_NO_EC -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# ifdef __cplusplus -extern "C" { -# endif - -# ifndef OPENSSL_ECC_MAX_FIELD_BITS -# define OPENSSL_ECC_MAX_FIELD_BITS 661 -# endif - -/** Enum for the point conversion form as defined in X9.62 (ECDSA) - * for the encoding of a elliptic curve point (x,y) */ -typedef enum { - /** the point is encoded as z||x, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_COMPRESSED = 2, - /** the point is encoded as z||x||y, where z is the octet 0x04 */ - POINT_CONVERSION_UNCOMPRESSED = 4, - /** the point is encoded as z||x||y, where the octet z specifies - * which solution of the quadratic equation y is */ - POINT_CONVERSION_HYBRID = 6 -} point_conversion_form_t; - -typedef struct ec_method_st EC_METHOD; -typedef struct ec_group_st EC_GROUP; -typedef struct ec_point_st EC_POINT; -typedef struct ecpk_parameters_st ECPKPARAMETERS; -typedef struct ec_parameters_st ECPARAMETERS; - -/********************************************************************/ -/* EC_METHODs for curves over GF(p) */ -/********************************************************************/ - -/** Returns the basic GFp ec methods which provides the basis for the - * optimized methods. - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_simple_method(void); - -/** Returns GFp methods using montgomery multiplication. - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_mont_method(void); - -/** Returns GFp methods using optimized methods for NIST recommended curves - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nist_method(void); - -# ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -/** Returns 64-bit optimized methods for nistp224 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp224_method(void); - -/** Returns 64-bit optimized methods for nistp256 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp256_method(void); - -/** Returns 64-bit optimized methods for nistp521 - * \return EC_METHOD object - */ -const EC_METHOD *EC_GFp_nistp521_method(void); -# endif - -# ifndef OPENSSL_NO_EC2M -/********************************************************************/ -/* EC_METHOD for curves over GF(2^m) */ -/********************************************************************/ - -/** Returns the basic GF2m ec method - * \return EC_METHOD object - */ -const EC_METHOD *EC_GF2m_simple_method(void); - -# endif - -/********************************************************************/ -/* EC_GROUP functions */ -/********************************************************************/ - -/** Creates a new EC_GROUP object - * \param meth EC_METHOD to use - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_new(const EC_METHOD *meth); - -/** Frees a EC_GROUP object - * \param group EC_GROUP object to be freed. - */ -void EC_GROUP_free(EC_GROUP *group); - -/** Clears and frees a EC_GROUP object - * \param group EC_GROUP object to be cleared and freed. - */ -void EC_GROUP_clear_free(EC_GROUP *group); - -/** Copies EC_GROUP objects. Note: both EC_GROUPs must use the same EC_METHOD. - * \param dst destination EC_GROUP object - * \param src source EC_GROUP object - * \return 1 on success and 0 if an error occurred. - */ -int EC_GROUP_copy(EC_GROUP *dst, const EC_GROUP *src); - -/** Creates a new EC_GROUP object and copies the copies the content - * form src to the newly created EC_KEY object - * \param src source EC_GROUP object - * \return newly created EC_GROUP object or NULL in case of an error. - */ -EC_GROUP *EC_GROUP_dup(const EC_GROUP *src); - -/** Returns the EC_METHOD of the EC_GROUP object. - * \param group EC_GROUP object - * \return EC_METHOD used in this EC_GROUP object. - */ -const EC_METHOD *EC_GROUP_method_of(const EC_GROUP *group); - -/** Returns the field type of the EC_METHOD. - * \param meth EC_METHOD object - * \return NID of the underlying field type OID. - */ -int EC_METHOD_get_field_type(const EC_METHOD *meth); - -/** Sets the generator and its order/cofactor of a EC_GROUP object. - * \param group EC_GROUP object - * \param generator EC_POINT object with the generator. - * \param order the order of the group generated by the generator. - * \param cofactor the index of the sub-group generated by the generator - * in the group of all points on the elliptic curve. - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_generator(EC_GROUP *group, const EC_POINT *generator, - const BIGNUM *order, const BIGNUM *cofactor); - -/** Returns the generator of a EC_GROUP object. - * \param group EC_GROUP object - * \return the currently used generator (possibly NULL). - */ -const EC_POINT *EC_GROUP_get0_generator(const EC_GROUP *group); - -/** Returns the montgomery data for order(Generator) - * \param group EC_GROUP object - * \return the currently used montgomery data (possibly NULL). -*/ -BN_MONT_CTX *EC_GROUP_get_mont_data(const EC_GROUP *group); - -/** Gets the order of a EC_GROUP - * \param group EC_GROUP object - * \param order BIGNUM to which the order is copied - * \param ctx unused - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_order(const EC_GROUP *group, BIGNUM *order, BN_CTX *ctx); - -/** Gets the order of an EC_GROUP - * \param group EC_GROUP object - * \return the group order - */ -const BIGNUM *EC_GROUP_get0_order(const EC_GROUP *group); - -/** Gets the number of bits of the order of an EC_GROUP - * \param group EC_GROUP object - * \return number of bits of group order. - */ -int EC_GROUP_order_bits(const EC_GROUP *group); - -/** Gets the cofactor of a EC_GROUP - * \param group EC_GROUP object - * \param cofactor BIGNUM to which the cofactor is copied - * \param ctx unused - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_cofactor(const EC_GROUP *group, BIGNUM *cofactor, - BN_CTX *ctx); - -/** Gets the cofactor of an EC_GROUP - * \param group EC_GROUP object - * \return the group cofactor - */ -const BIGNUM *EC_GROUP_get0_cofactor(const EC_GROUP *group); - -/** Sets the name of a EC_GROUP object - * \param group EC_GROUP object - * \param nid NID of the curve name OID - */ -void EC_GROUP_set_curve_name(EC_GROUP *group, int nid); - -/** Returns the curve name of a EC_GROUP object - * \param group EC_GROUP object - * \return NID of the curve name OID or 0 if not set. - */ -int EC_GROUP_get_curve_name(const EC_GROUP *group); - -void EC_GROUP_set_asn1_flag(EC_GROUP *group, int flag); -int EC_GROUP_get_asn1_flag(const EC_GROUP *group); - -void EC_GROUP_set_point_conversion_form(EC_GROUP *group, - point_conversion_form_t form); -point_conversion_form_t EC_GROUP_get_point_conversion_form(const EC_GROUP *); - -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 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 (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(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** 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 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(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 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_GF2m(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_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 - * \return number of bits needed to represent a field element - */ -int EC_GROUP_get_degree(const EC_GROUP *group); - -/** Checks whether the parameter in the EC_GROUP define a valid ec group - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if group is a valid ec group and 0 otherwise - */ -int EC_GROUP_check(const EC_GROUP *group, BN_CTX *ctx); - -/** Checks whether the discriminant of the elliptic curve is zero or not - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 if the discriminant is not zero and 0 otherwise - */ -int EC_GROUP_check_discriminant(const EC_GROUP *group, BN_CTX *ctx); - -/** Compares two EC_GROUP objects - * \param a first EC_GROUP object - * \param b second EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 0 if the groups are equal, 1 if not, or -1 on error - */ -int EC_GROUP_cmp(const EC_GROUP *a, const EC_GROUP *b, BN_CTX *ctx); - -/* - * EC_GROUP_new_GF*() calls EC_GROUP_new() and EC_GROUP_set_GF*() after - * choosing an appropriate EC_METHOD - */ - -/** Creates a new EC_GROUP object with the specified parameters defined - * over GFp (defined by the equation y^2 = x^3 + a*x + b) - * \param p BIGNUM with the prime number - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GFp(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Creates a new EC_GROUP object with the specified parameters defined - * over GF2m (defined by the equation y^2 + x*y = x^3 + a*x^2 + b) - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with the parameter a of the equation - * \param b BIGNUM with the parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return newly created EC_GROUP object with the specified parameters - */ -EC_GROUP *EC_GROUP_new_curve_GF2m(const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); -# endif - -/** Creates a EC_GROUP object with a curve specified by a NID - * \param nid NID of the OID of the curve name - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_by_curve_name(int nid); - -/** Creates a new EC_GROUP object from an ECPARAMETERS object - * \param params pointer to the ECPARAMETERS object - * \return newly created EC_GROUP object with specified curve or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_ecparameters(const ECPARAMETERS *params); - -/** 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 - * if an error occurred. - */ -ECPARAMETERS *EC_GROUP_get_ecparameters(const EC_GROUP *group, - ECPARAMETERS *params); - -/** Creates a new EC_GROUP object from an ECPKPARAMETERS object - * \param params pointer to an existing ECPKPARAMETERS object, or NULL - * \return newly created EC_GROUP object with specified curve, or NULL - * if an error occurred - */ -EC_GROUP *EC_GROUP_new_from_ecpkparameters(const ECPKPARAMETERS *params); - -/** 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 - * if an error occurred. - */ -ECPKPARAMETERS *EC_GROUP_get_ecpkparameters(const EC_GROUP *group, - ECPKPARAMETERS *params); - -/********************************************************************/ -/* handling of internal curves */ -/********************************************************************/ - -typedef struct { - int nid; - const char *comment; -} EC_builtin_curve; - -/* - * EC_builtin_curves(EC_builtin_curve *r, size_t size) returns number of all - * available curves or zero if a error occurred. In case r is not zero, - * nitems EC_builtin_curve structures are filled with the data of the first - * nitems internal groups - */ -size_t EC_get_builtin_curves(EC_builtin_curve *r, size_t nitems); - -const char *EC_curve_nid2nist(int nid); -int EC_curve_nist2nid(const char *name); - -/********************************************************************/ -/* EC_POINT functions */ -/********************************************************************/ - -/** Creates a new EC_POINT object for the specified EC_GROUP - * \param group EC_GROUP the underlying EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_new(const EC_GROUP *group); - -/** Frees a EC_POINT object - * \param point EC_POINT object to be freed - */ -void EC_POINT_free(EC_POINT *point); - -/** Clears and frees a EC_POINT object - * \param point EC_POINT object to be cleared and freed - */ -void EC_POINT_clear_free(EC_POINT *point); - -/** Copies EC_POINT object - * \param dst destination EC_POINT object - * \param src source EC_POINT object - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_copy(EC_POINT *dst, const EC_POINT *src); - -/** Creates a new EC_POINT object and copies the content of the supplied - * EC_POINT - * \param src source EC_POINT object - * \param group underlying the EC_GROUP object - * \return newly created EC_POINT object or NULL if an error occurred - */ -EC_POINT *EC_POINT_dup(const EC_POINT *src, const EC_GROUP *group); - -/** Returns the EC_METHOD used in EC_POINT object - * \param point EC_POINT object - * \return the EC_METHOD used - */ -const EC_METHOD *EC_POINT_method_of(const EC_POINT *point); - -/** Sets a point to infinity (neutral element) - * \param group underlying EC_GROUP object - * \param point EC_POINT to set to infinity - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_to_infinity(const EC_GROUP *group, EC_POINT *point); - -/** Sets the jacobian projective coordinates of a EC_POINT over GFp - * \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 z BIGNUM with the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_Jprojective_coordinates_GFp(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - const BIGNUM *y, const BIGNUM *z, - BN_CTX *ctx); - -/** Gets the jacobian projective 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 z BIGNUM for the z-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_get_Jprojective_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BIGNUM *z, - BN_CTX *ctx); - -/** 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 - * \param y BIGNUM with the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -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); - -/** 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 - * \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 - */ -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 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_GF2m(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_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. 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 - * \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 - */ -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 - * \param p EC_POINT object - * \param form point conversion form - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2oct(const EC_GROUP *group, const EC_POINT *p, - point_conversion_form_t form, - unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Decodes a EC_POINT from a octet string - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_oct2point(const EC_GROUP *group, EC_POINT *p, - const unsigned char *buf, size_t len, BN_CTX *ctx); - -/** Encodes an EC_POINT object to an allocated octet string - * \param group underlying EC_GROUP object - * \param point EC_POINT object - * \param form point conversion form - * \param pbuf returns pointer to allocated buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_POINT_point2buf(const EC_GROUP *group, const EC_POINT *point, - point_conversion_form_t form, - unsigned char **pbuf, BN_CTX *ctx); - -/* other interfaces to point2oct/oct2point: */ -BIGNUM *EC_POINT_point2bn(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BIGNUM *, BN_CTX *); -EC_POINT *EC_POINT_bn2point(const EC_GROUP *, const BIGNUM *, - EC_POINT *, BN_CTX *); -char *EC_POINT_point2hex(const EC_GROUP *, const EC_POINT *, - point_conversion_form_t form, BN_CTX *); -EC_POINT *EC_POINT_hex2point(const EC_GROUP *, const char *, - EC_POINT *, BN_CTX *); - -/********************************************************************/ -/* functions for doing EC_POINT arithmetic */ -/********************************************************************/ - -/** Computes the sum of two EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = a + b) - * \param a EC_POINT object with the first summand - * \param b EC_POINT object with the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_add(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - const EC_POINT *b, BN_CTX *ctx); - -/** Computes the double of a EC_POINT - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result (r = 2 * a) - * \param a EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_dbl(const EC_GROUP *group, EC_POINT *r, const EC_POINT *a, - BN_CTX *ctx); - -/** Computes the inverse of a EC_POINT - * \param group underlying EC_GROUP object - * \param a EC_POINT object to be inverted (it's used for the result as well) - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_invert(const EC_GROUP *group, EC_POINT *a, BN_CTX *ctx); - -/** Checks whether the point is the neutral element of the group - * \param group the underlying EC_GROUP object - * \param p EC_POINT object - * \return 1 if the point is the neutral element and 0 otherwise - */ -int EC_POINT_is_at_infinity(const EC_GROUP *group, const EC_POINT *p); - -/** Checks whether the point is on the curve - * \param group underlying EC_GROUP object - * \param point EC_POINT object to check - * \param ctx BN_CTX object (optional) - * \return 1 if the point is on the curve, 0 if not, or -1 on error - */ -int EC_POINT_is_on_curve(const EC_GROUP *group, const EC_POINT *point, - BN_CTX *ctx); - -/** Compares two EC_POINTs - * \param group underlying EC_GROUP object - * \param a first EC_POINT object - * \param b second EC_POINT object - * \param ctx BN_CTX object (optional) - * \return 1 if the points are not equal, 0 if they are, or -1 on error - */ -int EC_POINT_cmp(const EC_GROUP *group, const EC_POINT *a, const EC_POINT *b, - BN_CTX *ctx); - -int EC_POINT_make_affine(const EC_GROUP *group, EC_POINT *point, BN_CTX *ctx); -int EC_POINTs_make_affine(const EC_GROUP *group, size_t num, - EC_POINT *points[], BN_CTX *ctx); - -/** Computes r = generator * n + sum_{i=0}^{num-1} p[i] * m[i] - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param num number further summands - * \param p array of size num of EC_POINT objects - * \param m array of size num of BIGNUM objects - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINTs_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, - size_t num, const EC_POINT *p[], const BIGNUM *m[], - BN_CTX *ctx); - -/** Computes r = generator * n + q * m - * \param group underlying EC_GROUP object - * \param r EC_POINT object for the result - * \param n BIGNUM with the multiplier for the group generator (optional) - * \param q EC_POINT object with the first factor of the second summand - * \param m BIGNUM with the second factor of the second summand - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_mul(const EC_GROUP *group, EC_POINT *r, const BIGNUM *n, - const EC_POINT *q, const BIGNUM *m, BN_CTX *ctx); - -/** Stores multiples of generator for faster point multiplication - * \param group EC_GROUP object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_precompute_mult(EC_GROUP *group, BN_CTX *ctx); - -/** Reports whether a precomputation has been done - * \param group EC_GROUP object - * \return 1 if a pre-computation has been done and 0 otherwise - */ -int EC_GROUP_have_precompute_mult(const EC_GROUP *group); - -/********************************************************************/ -/* ASN1 stuff */ -/********************************************************************/ - -DECLARE_ASN1_ITEM(ECPKPARAMETERS) -DECLARE_ASN1_ALLOC_FUNCTIONS(ECPKPARAMETERS) -DECLARE_ASN1_ITEM(ECPARAMETERS) -DECLARE_ASN1_ALLOC_FUNCTIONS(ECPARAMETERS) - -/* - * EC_GROUP_get_basis_type() returns the NID of the basis type used to - * represent the field elements - */ -int EC_GROUP_get_basis_type(const EC_GROUP *); -# ifndef OPENSSL_NO_EC2M -int EC_GROUP_get_trinomial_basis(const EC_GROUP *, unsigned int *k); -int EC_GROUP_get_pentanomial_basis(const EC_GROUP *, unsigned int *k1, - unsigned int *k2, unsigned int *k3); -# endif - -# define OPENSSL_EC_EXPLICIT_CURVE 0x000 -# define OPENSSL_EC_NAMED_CURVE 0x001 - -EC_GROUP *d2i_ECPKParameters(EC_GROUP **, const unsigned char **in, long len); -int i2d_ECPKParameters(const EC_GROUP *, unsigned char **out); - -# define d2i_ECPKParameters_bio(bp,x) \ - ASN1_d2i_bio_of(EC_GROUP, NULL, d2i_ECPKParameters, bp, x) -# define i2d_ECPKParameters_bio(bp,x) \ - ASN1_i2d_bio_of_const(EC_GROUP, i2d_ECPKParameters, bp, x) -# define d2i_ECPKParameters_fp(fp,x) \ - (EC_GROUP *)ASN1_d2i_fp(NULL, (d2i_of_void *)d2i_ECPKParameters, (fp), \ - (void **)(x)) -# define i2d_ECPKParameters_fp(fp,x) \ - ASN1_i2d_fp((i2d_of_void *)i2d_ECPKParameters, (fp), (void *)(x)) - -int ECPKParameters_print(BIO *bp, const EC_GROUP *x, int off); -# ifndef OPENSSL_NO_STDIO -int ECPKParameters_print_fp(FILE *fp, const EC_GROUP *x, int off); -# endif - -/********************************************************************/ -/* EC_KEY functions */ -/********************************************************************/ - -/* some values for the encoding_flag */ -# define EC_PKEY_NO_PARAMETERS 0x001 -# define EC_PKEY_NO_PUBKEY 0x002 - -/* some values for the flags field */ -# define EC_FLAG_NON_FIPS_ALLOW 0x1 -# define EC_FLAG_FIPS_CHECKED 0x2 -# define EC_FLAG_COFACTOR_ECDH 0x1000 - -/** Creates a new EC_KEY object. - * \return EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_new(void); - -int EC_KEY_get_flags(const EC_KEY *key); - -void EC_KEY_set_flags(EC_KEY *key, int flags); - -void EC_KEY_clear_flags(EC_KEY *key, int flags); - -int EC_KEY_decoded_from_explicit_params(const EC_KEY *key); - -/** Creates a new EC_KEY object using a named curve as underlying - * EC_GROUP object. - * \param nid NID of the named curve. - * \return EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_new_by_curve_name(int nid); - -/** Frees a EC_KEY object. - * \param key EC_KEY object to be freed. - */ -void EC_KEY_free(EC_KEY *key); - -/** Copies a EC_KEY object. - * \param dst destination EC_KEY object - * \param src src EC_KEY object - * \return dst or NULL if an error occurred. - */ -EC_KEY *EC_KEY_copy(EC_KEY *dst, const EC_KEY *src); - -/** Creates a new EC_KEY object and copies the content from src to it. - * \param src the source EC_KEY object - * \return newly created EC_KEY object or NULL if an error occurred. - */ -EC_KEY *EC_KEY_dup(const EC_KEY *src); - -/** Increases the internal reference count of a EC_KEY object. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -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). - */ -const EC_GROUP *EC_KEY_get0_group(const EC_KEY *key); - -/** Sets the EC_GROUP of a EC_KEY object. - * \param key EC_KEY object - * \param group EC_GROUP to use in the EC_KEY object (note: the EC_KEY - * object will use an own copy of the EC_GROUP). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_group(EC_KEY *key, const EC_GROUP *group); - -/** Returns the private key of a EC_KEY object. - * \param key EC_KEY object - * \return a BIGNUM with the private key (possibly NULL). - */ -const BIGNUM *EC_KEY_get0_private_key(const EC_KEY *key); - -/** Sets the private key of a EC_KEY object. - * \param key EC_KEY object - * \param prv BIGNUM with the private key (note: the EC_KEY object - * will use an own copy of the BIGNUM). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_private_key(EC_KEY *key, const BIGNUM *prv); - -/** Returns the public key of a EC_KEY object. - * \param key the EC_KEY object - * \return a EC_POINT object with the public key (possibly NULL) - */ -const EC_POINT *EC_KEY_get0_public_key(const EC_KEY *key); - -/** Sets the public key of a EC_KEY object. - * \param key EC_KEY object - * \param pub EC_POINT object with the public key (note: the EC_KEY object - * will use an own copy of the EC_POINT object). - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_set_public_key(EC_KEY *key, const EC_POINT *pub); - -unsigned EC_KEY_get_enc_flags(const EC_KEY *key); -void EC_KEY_set_enc_flags(EC_KEY *eckey, unsigned int flags); -point_conversion_form_t EC_KEY_get_conv_form(const EC_KEY *key); -void EC_KEY_set_conv_form(EC_KEY *eckey, point_conversion_form_t cform); - -#define EC_KEY_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_EC_KEY, l, p, newf, dupf, freef) -int EC_KEY_set_ex_data(EC_KEY *key, int idx, void *arg); -void *EC_KEY_get_ex_data(const EC_KEY *key, int idx); - -/* wrapper functions for the underlying EC_GROUP object */ -void EC_KEY_set_asn1_flag(EC_KEY *eckey, int asn1_flag); - -/** Creates a table of pre-computed multiples of the generator to - * accelerate further EC_KEY operations. - * \param key EC_KEY object - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_precompute_mult(EC_KEY *key, BN_CTX *ctx); - -/** Creates a new ec private (and optional a new public) key. - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred. - */ -int EC_KEY_generate_key(EC_KEY *key); - -/** Verifies that a private and/or public key is valid. - * \param key the EC_KEY object - * \return 1 on success and 0 otherwise. - */ -int EC_KEY_check_key(const EC_KEY *key); - -/** Indicates if an EC_KEY can be used for signing. - * \param eckey the EC_KEY object - * \return 1 if can can sign and 0 otherwise. - */ -int EC_KEY_can_sign(const EC_KEY *eckey); - -/** Sets a public key from affine coordinates performing - * necessary NIST PKV tests. - * \param key the EC_KEY object - * \param x public key x coordinate - * \param y public key y coordinate - * \return 1 on success and 0 otherwise. - */ -int EC_KEY_set_public_key_affine_coordinates(EC_KEY *key, BIGNUM *x, - BIGNUM *y); - -/** Encodes an EC_KEY public key to an allocated octet string - * \param key key to encode - * \param form point conversion form - * \param pbuf returns pointer to allocated buffer - * \param ctx BN_CTX object (optional) - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_KEY_key2buf(const EC_KEY *key, point_conversion_form_t form, - unsigned char **pbuf, BN_CTX *ctx); - -/** Decodes a EC_KEY public key from a octet string - * \param key key to decode - * \param buf memory buffer with the encoded ec point - * \param len length of the encoded ec point - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ - -int EC_KEY_oct2key(EC_KEY *key, const unsigned char *buf, size_t len, - BN_CTX *ctx); - -/** Decodes an EC_KEY private key from an octet string - * \param key key to decode - * \param buf memory buffer with the encoded private key - * \param len length of the encoded key - * \return 1 on success and 0 if an error occurred - */ - -int EC_KEY_oct2priv(EC_KEY *key, const unsigned char *buf, size_t len); - -/** Encodes a EC_KEY private key to an octet string - * \param key key to encode - * \param buf memory buffer for the result. If NULL the function returns - * required buffer size. - * \param len length of the memory buffer - * \return the length of the encoded octet string or 0 if an error occurred - */ - -size_t EC_KEY_priv2oct(const EC_KEY *key, unsigned char *buf, size_t len); - -/** Encodes an EC_KEY private key to an allocated octet string - * \param eckey key to encode - * \param pbuf returns pointer to allocated buffer - * \return the length of the encoded octet string or 0 if an error occurred - */ -size_t EC_KEY_priv2buf(const EC_KEY *eckey, unsigned char **pbuf); - -/********************************************************************/ -/* de- and encoding functions for SEC1 ECPrivateKey */ -/********************************************************************/ - -/** Decodes a private key from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded private key - * \param len length of the DER encoded private key - * \return the decoded private key or NULL if an error occurred. - */ -EC_KEY *d2i_ECPrivateKey(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes a private key object and stores the result in a buffer. - * \param key the EC_KEY object to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -int i2d_ECPrivateKey(EC_KEY *key, unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC parameters */ -/********************************************************************/ - -/** Decodes ec parameter from a memory buffer. - * \param key a pointer to a EC_KEY object which should be used (or NULL) - * \param in pointer to memory with the DER encoded ec parameters - * \param len length of the DER encoded ec parameters - * \return a EC_KEY object with the decoded parameters or NULL if an error - * occurred. - */ -EC_KEY *d2i_ECParameters(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes ec parameter and stores the result in a buffer. - * \param key the EC_KEY object with ec parameters to encode - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred. - */ -int i2d_ECParameters(EC_KEY *key, unsigned char **out); - -/********************************************************************/ -/* de- and encoding functions for EC public key */ -/* (octet string, not DER -- hence 'o2i' and 'i2o') */ -/********************************************************************/ - -/** Decodes a ec public key from a octet string. - * \param key a pointer to a EC_KEY object which should be used - * \param in memory buffer with the encoded public key - * \param len length of the encoded public key - * \return EC_KEY object with decoded public key or NULL if an error - * occurred. - */ -EC_KEY *o2i_ECPublicKey(EC_KEY **key, const unsigned char **in, long len); - -/** Encodes a ec public key in an octet string. - * \param key the EC_KEY object with the public key - * \param out the buffer for the result (if NULL the function returns number - * of bytes needed). - * \return 1 on success and 0 if an error occurred - */ -int i2o_ECPublicKey(const EC_KEY *key, unsigned char **out); - -/** Prints out the ec parameters on human readable form. - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -int ECParameters_print(BIO *bp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param bp BIO object to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -int EC_KEY_print(BIO *bp, const EC_KEY *key, int off); - -# ifndef OPENSSL_NO_STDIO -/** Prints out the ec parameters on human readable form. - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \return 1 on success and 0 if an error occurred - */ -int ECParameters_print_fp(FILE *fp, const EC_KEY *key); - -/** Prints out the contents of a EC_KEY object - * \param fp file descriptor to which the information is printed - * \param key EC_KEY object - * \param off line offset - * \return 1 on success and 0 if an error occurred - */ -int EC_KEY_print_fp(FILE *fp, const EC_KEY *key, int off); - -# endif - -const EC_KEY_METHOD *EC_KEY_OpenSSL(void); -const EC_KEY_METHOD *EC_KEY_get_default_method(void); -void EC_KEY_set_default_method(const EC_KEY_METHOD *meth); -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, - const EVP_MD *md); - -int ECDH_compute_key(void *out, size_t outlen, const EC_POINT *pub_key, - const EC_KEY *ecdh, - void *(*KDF) (const void *in, size_t inlen, - void *out, size_t *outlen)); - -typedef struct ECDSA_SIG_st ECDSA_SIG; - -/** Allocates and initialize a ECDSA_SIG structure - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_SIG_new(void); - -/** frees a ECDSA_SIG structure - * \param sig pointer to the ECDSA_SIG structure - */ -void ECDSA_SIG_free(ECDSA_SIG *sig); - -/** DER encode content of ECDSA_SIG object (note: this function modifies *pp - * (*pp += length of the DER encoded signature)). - * \param sig pointer to the ECDSA_SIG object - * \param pp pointer to a unsigned char pointer for the output or NULL - * \return the length of the DER encoded ECDSA_SIG object or a negative value - * on error - */ -int i2d_ECDSA_SIG(const ECDSA_SIG *sig, unsigned char **pp); - -/** Decodes a DER encoded ECDSA signature (note: this function changes *pp - * (*pp += len)). - * \param sig pointer to ECDSA_SIG pointer (may be NULL) - * \param pp memory buffer with the DER encoded signature - * \param len length of the buffer - * \return pointer to the decoded ECDSA_SIG structure (or NULL) - */ -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 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 structure - * \param r pointer to BIGNUM for r (may be NULL) - * \param s pointer to BIGNUM for s (may be NULL) - */ -int ECDSA_SIG_set0(ECDSA_SIG *sig, BIGNUM *r, BIGNUM *s); - -/** Computes the ECDSA signature of the given hash value using - * the supplied private key and returns the created signature. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_do_sign(const unsigned char *dgst, int dgst_len, - EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optional), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return pointer to a ECDSA_SIG structure or NULL if an error occurred - */ -ECDSA_SIG *ECDSA_do_sign_ex(const unsigned char *dgst, int dgstlen, - const BIGNUM *kinv, const BIGNUM *rp, - EC_KEY *eckey); - -/** Verifies that the supplied signature is a valid ECDSA - * signature of the supplied hash value using the supplied public key. - * \param dgst pointer to the hash value - * \param dgst_len length of the hash value - * \param sig ECDSA_SIG structure - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -int ECDSA_do_verify(const unsigned char *dgst, int dgst_len, - const ECDSA_SIG *sig, EC_KEY *eckey); - -/** Precompute parts of the signing operation - * \param eckey EC_KEY object containing a private EC key - * \param ctx BN_CTX object (optional) - * \param kinv BIGNUM pointer for the inverse of k - * \param rp BIGNUM pointer for x coordinate of k * generator - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign_setup(EC_KEY *eckey, BN_CTX *ctx, BIGNUM **kinv, BIGNUM **rp); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig memory for the DER encoded created signature - * \param siglen pointer to the length of the returned signature - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign(int type, const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, EC_KEY *eckey); - -/** Computes ECDSA signature of a given hash value using the supplied - * private key (note: sig must point to ECDSA_size(eckey) bytes of memory). - * \param type this parameter is ignored - * \param dgst pointer to the hash value to sign - * \param dgstlen length of the hash value - * \param sig buffer to hold the DER encoded signature - * \param siglen pointer to the length of the returned signature - * \param kinv BIGNUM with a pre-computed inverse k (optional) - * \param rp BIGNUM with a pre-computed rp value (optional), - * see ECDSA_sign_setup - * \param eckey EC_KEY object containing a private EC key - * \return 1 on success and 0 otherwise - */ -int ECDSA_sign_ex(int type, const unsigned char *dgst, int dgstlen, - unsigned char *sig, unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *rp, EC_KEY *eckey); - -/** Verifies that the given signature is valid ECDSA signature - * of the supplied hash value using the specified public key. - * \param type this parameter is ignored - * \param dgst pointer to the hash value - * \param dgstlen length of the hash value - * \param sig pointer to the DER encoded signature - * \param siglen length of the DER encoded signature - * \param eckey EC_KEY object containing a public EC key - * \return 1 if the signature is valid, 0 if the signature is invalid - * and -1 on error - */ -int ECDSA_verify(int type, const unsigned char *dgst, int dgstlen, - const unsigned char *sig, int siglen, EC_KEY *eckey); - -/** Returns the maximum length of the DER encoded signature - * \param eckey EC_KEY object - * \return numbers of bytes required for the DER encoded signature - */ -int ECDSA_size(const EC_KEY *eckey); - -/********************************************************************/ -/* EC_KEY_METHOD constructors, destructors, writers and accessors */ -/********************************************************************/ - -EC_KEY_METHOD *EC_KEY_METHOD_new(const EC_KEY_METHOD *meth); -void EC_KEY_METHOD_free(EC_KEY_METHOD *meth); -void EC_KEY_METHOD_set_init(EC_KEY_METHOD *meth, - int (*init)(EC_KEY *key), - void (*finish)(EC_KEY *key), - int (*copy)(EC_KEY *dest, const EC_KEY *src), - int (*set_group)(EC_KEY *key, const EC_GROUP *grp), - int (*set_private)(EC_KEY *key, - const BIGNUM *priv_key), - int (*set_public)(EC_KEY *key, - const EC_POINT *pub_key)); - -void EC_KEY_METHOD_set_keygen(EC_KEY_METHOD *meth, - int (*keygen)(EC_KEY *key)); - -void EC_KEY_METHOD_set_compute_key(EC_KEY_METHOD *meth, - int (*ckey)(unsigned char **psec, - size_t *pseclen, - const EC_POINT *pub_key, - const EC_KEY *ecdh)); - -void EC_KEY_METHOD_set_sign(EC_KEY_METHOD *meth, - int (*sign)(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *r, - EC_KEY *eckey), - int (*sign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp), - ECDSA_SIG *(*sign_sig)(const unsigned char *dgst, - int dgst_len, - const BIGNUM *in_kinv, - const BIGNUM *in_r, - EC_KEY *eckey)); - -void EC_KEY_METHOD_set_verify(EC_KEY_METHOD *meth, - int (*verify)(int type, const unsigned - char *dgst, int dgst_len, - const unsigned char *sigbuf, - int sig_len, EC_KEY *eckey), - int (*verify_sig)(const unsigned char *dgst, - int dgst_len, - const ECDSA_SIG *sig, - EC_KEY *eckey)); - -void EC_KEY_METHOD_get_init(const EC_KEY_METHOD *meth, - int (**pinit)(EC_KEY *key), - void (**pfinish)(EC_KEY *key), - int (**pcopy)(EC_KEY *dest, const EC_KEY *src), - int (**pset_group)(EC_KEY *key, - const EC_GROUP *grp), - int (**pset_private)(EC_KEY *key, - const BIGNUM *priv_key), - int (**pset_public)(EC_KEY *key, - const EC_POINT *pub_key)); - -void EC_KEY_METHOD_get_keygen(const EC_KEY_METHOD *meth, - int (**pkeygen)(EC_KEY *key)); - -void EC_KEY_METHOD_get_compute_key(const EC_KEY_METHOD *meth, - int (**pck)(unsigned char **psec, - size_t *pseclen, - const EC_POINT *pub_key, - const EC_KEY *ecdh)); - -void EC_KEY_METHOD_get_sign(const EC_KEY_METHOD *meth, - int (**psign)(int type, const unsigned char *dgst, - int dlen, unsigned char *sig, - unsigned int *siglen, - const BIGNUM *kinv, const BIGNUM *r, - EC_KEY *eckey), - int (**psign_setup)(EC_KEY *eckey, BN_CTX *ctx_in, - BIGNUM **kinvp, BIGNUM **rp), - ECDSA_SIG *(**psign_sig)(const unsigned char *dgst, - int dgst_len, - const BIGNUM *in_kinv, - const BIGNUM *in_r, - EC_KEY *eckey)); - -void EC_KEY_METHOD_get_verify(const EC_KEY_METHOD *meth, - int (**pverify)(int type, const unsigned - char *dgst, int dgst_len, - const unsigned char *sigbuf, - int sig_len, EC_KEY *eckey), - int (**pverify_sig)(const unsigned char *dgst, - int dgst_len, - const ECDSA_SIG *sig, - EC_KEY *eckey)); - -# define ECParameters_dup(x) ASN1_dup_of(EC_KEY,i2d_ECParameters,d2i_ECParameters,x) - -# ifndef __cplusplus -# if defined(__SUNPRO_C) -# if __SUNPRO_C >= 0x520 -# pragma error_messages (default,E_ARRAY_OF_INCOMPLETE_NONAME,E_ARRAY_OF_INCOMPLETE) -# endif -# endif -# endif - -# define EVP_PKEY_CTX_set_ec_paramgen_curve_nid(ctx, nid) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_EC_PARAMGEN_CURVE_NID, nid, NULL) - -# define EVP_PKEY_CTX_set_ec_param_enc(ctx, flag) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_PARAMGEN|EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_EC_PARAM_ENC, flag, NULL) - -# define EVP_PKEY_CTX_set_ecdh_cofactor_mode(ctx, flag) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_ECDH_COFACTOR, flag, NULL) - -# define EVP_PKEY_CTX_get_ecdh_cofactor_mode(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_ECDH_COFACTOR, -2, NULL) - -# define EVP_PKEY_CTX_set_ecdh_kdf_type(ctx, kdf) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_TYPE, kdf, NULL) - -# define EVP_PKEY_CTX_get_ecdh_kdf_type(ctx) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_TYPE, -2, NULL) - -# 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)) - -# 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)) - -# define EVP_PKEY_CTX_set_ecdh_kdf_outlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_EC, \ - EVP_PKEY_OP_DERIVE, \ - EVP_PKEY_CTRL_EC_KDF_OUTLEN, len, NULL) - -# 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)) - -# 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)) - -# 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)) - -/* 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) -# define EVP_PKEY_CTRL_EC_ECDH_COFACTOR (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_EC_KDF_TYPE (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 5) -# define EVP_PKEY_CTRL_GET_EC_KDF_MD (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_EC_KDF_OUTLEN (EVP_PKEY_ALG_CTRL + 7) -# 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_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 - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin64/include/openssl/ecdh.h b/openSSL/lin64/include/openssl/ecdh.h deleted file mode 100644 index 681f3d5..0000000 --- a/openSSL/lin64/include/openssl/ecdh.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2002-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 - */ - -#include diff --git a/openSSL/lin64/include/openssl/ecdsa.h b/openSSL/lin64/include/openssl/ecdsa.h deleted file mode 100644 index 681f3d5..0000000 --- a/openSSL/lin64/include/openssl/ecdsa.h +++ /dev/null @@ -1,10 +0,0 @@ -/* - * Copyright 2002-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 - */ - -#include diff --git a/openSSL/lin64/include/openssl/ecerr.h b/openSSL/lin64/include/openssl/ecerr.h deleted file mode 100644 index 5173811..0000000 --- a/openSSL/lin64/include/openssl/ecerr.h +++ /dev/null @@ -1,276 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_OID 167 -# 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/openSSL/lin64/include/openssl/engine.h b/openSSL/lin64/include/openssl/engine.h deleted file mode 100644 index d707eae..0000000 --- a/openSSL/lin64/include/openssl/engine.h +++ /dev/null @@ -1,752 +0,0 @@ -/* - * Copyright 2000-2022 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_ENGINE_H -# define HEADER_ENGINE_H - -# include - -# ifndef OPENSSL_NO_ENGINE -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# include -# include -# include -# include -# include -# endif -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* - * These flags are used to control combinations of algorithm (methods) by - * bitwise "OR"ing. - */ -# define ENGINE_METHOD_RSA (unsigned int)0x0001 -# define ENGINE_METHOD_DSA (unsigned int)0x0002 -# define ENGINE_METHOD_DH (unsigned int)0x0004 -# define ENGINE_METHOD_RAND (unsigned int)0x0008 -# define ENGINE_METHOD_CIPHERS (unsigned int)0x0040 -# define ENGINE_METHOD_DIGESTS (unsigned int)0x0080 -# define ENGINE_METHOD_PKEY_METHS (unsigned int)0x0200 -# define ENGINE_METHOD_PKEY_ASN1_METHS (unsigned int)0x0400 -# define ENGINE_METHOD_EC (unsigned int)0x0800 -/* Obvious all-or-nothing cases. */ -# define ENGINE_METHOD_ALL (unsigned int)0xFFFF -# define ENGINE_METHOD_NONE (unsigned int)0x0000 - -/* - * This(ese) flag(s) controls behaviour of the ENGINE_TABLE mechanism used - * internally to control registration of ENGINE implementations, and can be - * set by ENGINE_set_table_flags(). The "NOINIT" flag prevents attempts to - * initialise registered ENGINEs if they are not already initialised. - */ -# define ENGINE_TABLE_FLAG_NOINIT (unsigned int)0x0001 - -/* ENGINE flags that can be set by ENGINE_set_flags(). */ -/* Not used */ -/* #define ENGINE_FLAGS_MALLOCED 0x0001 */ - -/* - * This flag is for ENGINEs that wish to handle the various 'CMD'-related - * control commands on their own. Without this flag, ENGINE_ctrl() handles - * these control commands on behalf of the ENGINE using their "cmd_defns" - * data. - */ -# define ENGINE_FLAGS_MANUAL_CMD_CTRL (int)0x0002 - -/* - * This flag is for ENGINEs who return new duplicate structures when found - * via "ENGINE_by_id()". When an ENGINE must store state (eg. if - * ENGINE_ctrl() commands are called in sequence as part of some stateful - * process like key-generation setup and execution), it can set this flag - - * then each attempt to obtain the ENGINE will result in it being copied into - * a new structure. Normally, ENGINEs don't declare this flag so - * ENGINE_by_id() just increments the existing ENGINE's structural reference - * count. - */ -# define ENGINE_FLAGS_BY_ID_COPY (int)0x0004 - -/* - * This flag if for an ENGINE that does not want its methods registered as - * part of ENGINE_register_all_complete() for example if the methods are not - * usable as default methods. - */ - -# define ENGINE_FLAGS_NO_REGISTER_ALL (int)0x0008 - -/* - * ENGINEs can support their own command types, and these flags are used in - * ENGINE_CTRL_GET_CMD_FLAGS to indicate to the caller what kind of input - * each command expects. Currently only numeric and string input is - * supported. If a control command supports none of the _NUMERIC, _STRING, or - * _NO_INPUT options, then it is regarded as an "internal" control command - - * and not for use in config setting situations. As such, they're not - * available to the ENGINE_ctrl_cmd_string() function, only raw ENGINE_ctrl() - * access. Changes to this list of 'command types' should be reflected - * carefully in ENGINE_cmd_is_executable() and ENGINE_ctrl_cmd_string(). - */ - -/* accepts a 'long' input value (3rd parameter to ENGINE_ctrl) */ -# define ENGINE_CMD_FLAG_NUMERIC (unsigned int)0x0001 -/* - * accepts string input (cast from 'void*' to 'const char *', 4th parameter - * to ENGINE_ctrl) - */ -# define ENGINE_CMD_FLAG_STRING (unsigned int)0x0002 -/* - * Indicates that the control command takes *no* input. Ie. the control - * command is unparameterised. - */ -# define ENGINE_CMD_FLAG_NO_INPUT (unsigned int)0x0004 -/* - * Indicates that the control command is internal. This control command won't - * be shown in any output, and is only usable through the ENGINE_ctrl_cmd() - * function. - */ -# define ENGINE_CMD_FLAG_INTERNAL (unsigned int)0x0008 - -/* - * NB: These 3 control commands are deprecated and should not be used. - * ENGINEs relying on these commands should compile conditional support for - * compatibility (eg. if these symbols are defined) but should also migrate - * the same functionality to their own ENGINE-specific control functions that - * can be "discovered" by calling applications. The fact these control - * commands wouldn't be "executable" (ie. usable by text-based config) - * doesn't change the fact that application code can find and use them - * without requiring per-ENGINE hacking. - */ - -/* - * These flags are used to tell the ctrl function what should be done. All - * command numbers are shared between all engines, even if some don't make - * sense to some engines. In such a case, they do nothing but return the - * error ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED. - */ -# define ENGINE_CTRL_SET_LOGSTREAM 1 -# define ENGINE_CTRL_SET_PASSWORD_CALLBACK 2 -# define ENGINE_CTRL_HUP 3/* Close and reinitialise - * any handles/connections - * etc. */ -# define ENGINE_CTRL_SET_USER_INTERFACE 4/* Alternative to callback */ -# define ENGINE_CTRL_SET_CALLBACK_DATA 5/* User-specific data, used - * when calling the password - * callback and the user - * interface */ -# define ENGINE_CTRL_LOAD_CONFIGURATION 6/* Load a configuration, - * given a string that - * represents a file name - * or so */ -# define ENGINE_CTRL_LOAD_SECTION 7/* Load data from a given - * section in the already - * loaded configuration */ - -/* - * These control commands allow an application to deal with an arbitrary - * engine in a dynamic way. Warn: Negative return values indicate errors FOR - * THESE COMMANDS because zero is used to indicate 'end-of-list'. Other - * commands, including ENGINE-specific command types, return zero for an - * error. An ENGINE can choose to implement these ctrl functions, and can - * internally manage things however it chooses - it does so by setting the - * ENGINE_FLAGS_MANUAL_CMD_CTRL flag (using ENGINE_set_flags()). Otherwise - * the ENGINE_ctrl() code handles this on the ENGINE's behalf using the - * cmd_defns data (set using ENGINE_set_cmd_defns()). This means an ENGINE's - * ctrl() handler need only implement its own commands - the above "meta" - * commands will be taken care of. - */ - -/* - * Returns non-zero if the supplied ENGINE has a ctrl() handler. If "not", - * then all the remaining control commands will return failure, so it is - * worth checking this first if the caller is trying to "discover" the - * engine's capabilities and doesn't want errors generated unnecessarily. - */ -# define ENGINE_CTRL_HAS_CTRL_FUNCTION 10 -/* - * Returns a positive command number for the first command supported by the - * engine. Returns zero if no ctrl commands are supported. - */ -# define ENGINE_CTRL_GET_FIRST_CMD_TYPE 11 -/* - * The 'long' argument specifies a command implemented by the engine, and the - * return value is the next command supported, or zero if there are no more. - */ -# define ENGINE_CTRL_GET_NEXT_CMD_TYPE 12 -/* - * The 'void*' argument is a command name (cast from 'const char *'), and the - * return value is the command that corresponds to it. - */ -# define ENGINE_CTRL_GET_CMD_FROM_NAME 13 -/* - * The next two allow a command to be converted into its corresponding string - * form. In each case, the 'long' argument supplies the command. In the - * NAME_LEN case, the return value is the length of the command name (not - * counting a trailing EOL). In the NAME case, the 'void*' argument must be a - * string buffer large enough, and it will be populated with the name of the - * command (WITH a trailing EOL). - */ -# define ENGINE_CTRL_GET_NAME_LEN_FROM_CMD 14 -# define ENGINE_CTRL_GET_NAME_FROM_CMD 15 -/* The next two are similar but give a "short description" of a command. */ -# define ENGINE_CTRL_GET_DESC_LEN_FROM_CMD 16 -# define ENGINE_CTRL_GET_DESC_FROM_CMD 17 -/* - * With this command, the return value is the OR'd combination of - * ENGINE_CMD_FLAG_*** values that indicate what kind of input a given - * engine-specific ctrl command expects. - */ -# define ENGINE_CTRL_GET_CMD_FLAGS 18 - -/* - * ENGINE implementations should start the numbering of their own control - * commands from this value. (ie. ENGINE_CMD_BASE, ENGINE_CMD_BASE + 1, etc). - */ -# define ENGINE_CMD_BASE 200 - -/* - * NB: These 2 nCipher "chil" control commands are deprecated, and their - * functionality is now available through ENGINE-specific control commands - * (exposed through the above-mentioned 'CMD'-handling). Code using these 2 - * commands should be migrated to the more general command handling before - * these are removed. - */ - -/* Flags specific to the nCipher "chil" engine */ -# define ENGINE_CTRL_CHIL_SET_FORKCHECK 100 - /* - * Depending on the value of the (long)i argument, this sets or - * unsets the SimpleForkCheck flag in the CHIL API to enable or - * disable checking and workarounds for applications that fork(). - */ -# define ENGINE_CTRL_CHIL_NO_LOCKING 101 - /* - * This prevents the initialisation function from providing mutex - * callbacks to the nCipher library. - */ - -/* - * If an ENGINE supports its own specific control commands and wishes the - * framework to handle the above 'ENGINE_CMD_***'-manipulation commands on - * its behalf, it should supply a null-terminated array of ENGINE_CMD_DEFN - * entries to ENGINE_set_cmd_defns(). It should also implement a ctrl() - * handler that supports the stated commands (ie. the "cmd_num" entries as - * described by the array). NB: The array must be ordered in increasing order - * of cmd_num. "null-terminated" means that the last ENGINE_CMD_DEFN element - * has cmd_num set to zero and/or cmd_name set to NULL. - */ -typedef struct ENGINE_CMD_DEFN_st { - unsigned int cmd_num; /* The command number */ - const char *cmd_name; /* The command name itself */ - const char *cmd_desc; /* A short description of the command */ - unsigned int cmd_flags; /* The input the command expects */ -} ENGINE_CMD_DEFN; - -/* Generic function pointer */ -typedef int (*ENGINE_GEN_FUNC_PTR) (void); -/* Generic function pointer taking no arguments */ -typedef int (*ENGINE_GEN_INT_FUNC_PTR) (ENGINE *); -/* Specific control function pointer */ -typedef int (*ENGINE_CTRL_FUNC_PTR) (ENGINE *, int, long, void *, - void (*f) (void)); -/* Generic load_key function pointer */ -typedef EVP_PKEY *(*ENGINE_LOAD_KEY_PTR)(ENGINE *, const char *, - UI_METHOD *ui_method, - void *callback_data); -typedef int (*ENGINE_SSL_CLIENT_CERT_PTR) (ENGINE *, SSL *ssl, - STACK_OF(X509_NAME) *ca_dn, - X509 **pcert, EVP_PKEY **pkey, - STACK_OF(X509) **pother, - UI_METHOD *ui_method, - void *callback_data); -/*- - * These callback types are for an ENGINE's handler for cipher and digest logic. - * These handlers have these prototypes; - * int foo(ENGINE *e, const EVP_CIPHER **cipher, const int **nids, int nid); - * int foo(ENGINE *e, const EVP_MD **digest, const int **nids, int nid); - * Looking at how to implement these handlers in the case of cipher support, if - * the framework wants the EVP_CIPHER for 'nid', it will call; - * foo(e, &p_evp_cipher, NULL, nid); (return zero for failure) - * If the framework wants a list of supported 'nid's, it will call; - * foo(e, NULL, &p_nids, 0); (returns number of 'nids' or -1 for error) - */ -/* - * Returns to a pointer to the array of supported cipher 'nid's. If the - * second parameter is non-NULL it is set to the size of the returned array. - */ -typedef int (*ENGINE_CIPHERS_PTR) (ENGINE *, const EVP_CIPHER **, - const int **, int); -typedef int (*ENGINE_DIGESTS_PTR) (ENGINE *, const EVP_MD **, const int **, - int); -typedef int (*ENGINE_PKEY_METHS_PTR) (ENGINE *, EVP_PKEY_METHOD **, - const int **, int); -typedef int (*ENGINE_PKEY_ASN1_METHS_PTR) (ENGINE *, EVP_PKEY_ASN1_METHOD **, - const int **, int); -/* - * STRUCTURE functions ... all of these functions deal with pointers to - * ENGINE structures where the pointers have a "structural reference". This - * means that their reference is to allowed access to the structure but it - * does not imply that the structure is functional. To simply increment or - * decrement the structural reference count, use ENGINE_by_id and - * ENGINE_free. NB: This is not required when iterating using ENGINE_get_next - * as it will automatically decrement the structural reference count of the - * "current" ENGINE and increment the structural reference count of the - * ENGINE it returns (unless it is NULL). - */ - -/* Get the first/last "ENGINE" type available. */ -ENGINE *ENGINE_get_first(void); -ENGINE *ENGINE_get_last(void); -/* Iterate to the next/previous "ENGINE" type (NULL = end of the list). */ -ENGINE *ENGINE_get_next(ENGINE *e); -ENGINE *ENGINE_get_prev(ENGINE *e); -/* Add another "ENGINE" type into the array. */ -int ENGINE_add(ENGINE *e); -/* Remove an existing "ENGINE" type from the array. */ -int ENGINE_remove(ENGINE *e); -/* Retrieve an engine from the list by its unique "id" value. */ -ENGINE *ENGINE_by_id(const char *id); - -#if OPENSSL_API_COMPAT < 0x10100000L -# define ENGINE_load_openssl() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_OPENSSL, NULL) -# define ENGINE_load_dynamic() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_DYNAMIC, NULL) -# ifndef OPENSSL_NO_STATIC_ENGINE -# define ENGINE_load_padlock() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_PADLOCK, NULL) -# define ENGINE_load_capi() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CAPI, NULL) -# define ENGINE_load_afalg() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_AFALG, NULL) -# endif -# define ENGINE_load_cryptodev() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_CRYPTODEV, NULL) -# define ENGINE_load_rdrand() \ - OPENSSL_init_crypto(OPENSSL_INIT_ENGINE_RDRAND, NULL) -#endif -void ENGINE_load_builtin_engines(void); - -/* - * Get and set global flags (ENGINE_TABLE_FLAG_***) for the implementation - * "registry" handling. - */ -unsigned int ENGINE_get_table_flags(void); -void ENGINE_set_table_flags(unsigned int flags); - -/*- Manage registration of ENGINEs per "table". For each type, there are 3 - * functions; - * ENGINE_register_***(e) - registers the implementation from 'e' (if it has one) - * ENGINE_unregister_***(e) - unregister the implementation from 'e' - * ENGINE_register_all_***() - call ENGINE_register_***() for each 'e' in the list - * Cleanup is automatically registered from each table when required. - */ - -int ENGINE_register_RSA(ENGINE *e); -void ENGINE_unregister_RSA(ENGINE *e); -void ENGINE_register_all_RSA(void); - -int ENGINE_register_DSA(ENGINE *e); -void ENGINE_unregister_DSA(ENGINE *e); -void ENGINE_register_all_DSA(void); - -int ENGINE_register_EC(ENGINE *e); -void ENGINE_unregister_EC(ENGINE *e); -void ENGINE_register_all_EC(void); - -int ENGINE_register_DH(ENGINE *e); -void ENGINE_unregister_DH(ENGINE *e); -void ENGINE_register_all_DH(void); - -int ENGINE_register_RAND(ENGINE *e); -void ENGINE_unregister_RAND(ENGINE *e); -void ENGINE_register_all_RAND(void); - -int ENGINE_register_ciphers(ENGINE *e); -void ENGINE_unregister_ciphers(ENGINE *e); -void ENGINE_register_all_ciphers(void); - -int ENGINE_register_digests(ENGINE *e); -void ENGINE_unregister_digests(ENGINE *e); -void ENGINE_register_all_digests(void); - -int ENGINE_register_pkey_meths(ENGINE *e); -void ENGINE_unregister_pkey_meths(ENGINE *e); -void ENGINE_register_all_pkey_meths(void); - -int ENGINE_register_pkey_asn1_meths(ENGINE *e); -void ENGINE_unregister_pkey_asn1_meths(ENGINE *e); -void ENGINE_register_all_pkey_asn1_meths(void); - -/* - * These functions register all support from the above categories. Note, use - * of these functions can result in static linkage of code your application - * may not need. If you only need a subset of functionality, consider using - * more selective initialisation. - */ -int ENGINE_register_complete(ENGINE *e); -int ENGINE_register_all_complete(void); - -/* - * 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 - * (rather than functional) reference to an engine, but many control commands - * may require the engine be functional. The caller should be aware of trying - * commands that require an operational ENGINE, and only use functional - * references in such situations. - */ -int ENGINE_ctrl(ENGINE *e, int cmd, long i, void *p, void (*f) (void)); - -/* - * This function tests if an ENGINE-specific command is usable as a - * "setting". Eg. in an application's config file that gets processed through - * ENGINE_ctrl_cmd_string(). If this returns zero, it is not available to - * ENGINE_ctrl_cmd_string(), only ENGINE_ctrl(). - */ -int ENGINE_cmd_is_executable(ENGINE *e, int cmd); - -/* - * This function works like ENGINE_ctrl() with the exception of taking a - * command name instead of a command number, and can handle optional - * commands. See the comment on ENGINE_ctrl_cmd_string() for an explanation - * on how to use the cmd_name and cmd_optional. - */ -int ENGINE_ctrl_cmd(ENGINE *e, const char *cmd_name, - long i, void *p, void (*f) (void), int cmd_optional); - -/* - * This function passes a command-name and argument to an ENGINE. The - * cmd_name is converted to a command number and the control command is - * called using 'arg' as an argument (unless the ENGINE doesn't support such - * a command, in which case no control command is called). The command is - * checked for input flags, and if necessary the argument will be converted - * to a numeric value. If cmd_optional is non-zero, then if the ENGINE - * doesn't support the given cmd_name the return value will be success - * anyway. This function is intended for applications to use so that users - * (or config files) can supply engine-specific config data to the ENGINE at - * run-time to control behaviour of specific engines. As such, it shouldn't - * be used for calling ENGINE_ctrl() functions that return data, deal with - * binary data, or that are otherwise supposed to be used directly through - * ENGINE_ctrl() in application code. Any "return" data from an ENGINE_ctrl() - * operation in this function will be lost - the return value is interpreted - * as failure if the return value is zero, success otherwise, and this - * function returns a boolean value as a result. In other words, vendors of - * 'ENGINE'-enabled devices should write ENGINE implementations with - * parameterisations that work in this scheme, so that compliant ENGINE-based - * applications can work consistently with the same configuration for the - * same ENGINE-enabled devices, across applications. - */ -int ENGINE_ctrl_cmd_string(ENGINE *e, const char *cmd_name, const char *arg, - int cmd_optional); - -/* - * These functions are useful for manufacturing new ENGINE structures. They - * don't address reference counting at all - one uses them to populate an - * ENGINE structure with personalised implementations of things prior to - * using it directly or adding it to the builtin ENGINE list in OpenSSL. - * These are also here so that the ENGINE structure doesn't have to be - * exposed and break binary compatibility! - */ -ENGINE *ENGINE_new(void); -int ENGINE_free(ENGINE *e); -int ENGINE_up_ref(ENGINE *e); -int ENGINE_set_id(ENGINE *e, const char *id); -int ENGINE_set_name(ENGINE *e, const char *name); -int ENGINE_set_RSA(ENGINE *e, const RSA_METHOD *rsa_meth); -int ENGINE_set_DSA(ENGINE *e, const DSA_METHOD *dsa_meth); -int ENGINE_set_EC(ENGINE *e, const EC_KEY_METHOD *ecdsa_meth); -int ENGINE_set_DH(ENGINE *e, const DH_METHOD *dh_meth); -int ENGINE_set_RAND(ENGINE *e, const RAND_METHOD *rand_meth); -int ENGINE_set_destroy_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR destroy_f); -int ENGINE_set_init_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR init_f); -int ENGINE_set_finish_function(ENGINE *e, ENGINE_GEN_INT_FUNC_PTR finish_f); -int ENGINE_set_ctrl_function(ENGINE *e, ENGINE_CTRL_FUNC_PTR ctrl_f); -int ENGINE_set_load_privkey_function(ENGINE *e, - ENGINE_LOAD_KEY_PTR loadpriv_f); -int ENGINE_set_load_pubkey_function(ENGINE *e, ENGINE_LOAD_KEY_PTR loadpub_f); -int ENGINE_set_load_ssl_client_cert_function(ENGINE *e, - ENGINE_SSL_CLIENT_CERT_PTR - loadssl_f); -int ENGINE_set_ciphers(ENGINE *e, ENGINE_CIPHERS_PTR f); -int ENGINE_set_digests(ENGINE *e, ENGINE_DIGESTS_PTR f); -int ENGINE_set_pkey_meths(ENGINE *e, ENGINE_PKEY_METHS_PTR f); -int ENGINE_set_pkey_asn1_meths(ENGINE *e, ENGINE_PKEY_ASN1_METHS_PTR f); -int ENGINE_set_flags(ENGINE *e, int flags); -int ENGINE_set_cmd_defns(ENGINE *e, const ENGINE_CMD_DEFN *defns); -/* These functions allow control over any per-structure ENGINE data. */ -#define ENGINE_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_ENGINE, l, p, newf, dupf, freef) -int ENGINE_set_ex_data(ENGINE *e, int idx, void *arg); -void *ENGINE_get_ex_data(const ENGINE *e, int idx); - -#if OPENSSL_API_COMPAT < 0x10100000L -/* - * This function previously cleaned up anything that needs it. Auto-deinit will - * now take care of it so it is no longer required to call this function. - */ -# define ENGINE_cleanup() while(0) continue -#endif - -/* - * These return values from within the ENGINE structure. These can be useful - * with functional references as well as structural references - it depends - * which you obtained. Using the result for functional purposes if you only - * obtained a structural reference may be problematic! - */ -const char *ENGINE_get_id(const ENGINE *e); -const char *ENGINE_get_name(const ENGINE *e); -const RSA_METHOD *ENGINE_get_RSA(const ENGINE *e); -const DSA_METHOD *ENGINE_get_DSA(const ENGINE *e); -const EC_KEY_METHOD *ENGINE_get_EC(const ENGINE *e); -const DH_METHOD *ENGINE_get_DH(const ENGINE *e); -const RAND_METHOD *ENGINE_get_RAND(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_destroy_function(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_init_function(const ENGINE *e); -ENGINE_GEN_INT_FUNC_PTR ENGINE_get_finish_function(const ENGINE *e); -ENGINE_CTRL_FUNC_PTR ENGINE_get_ctrl_function(const ENGINE *e); -ENGINE_LOAD_KEY_PTR ENGINE_get_load_privkey_function(const ENGINE *e); -ENGINE_LOAD_KEY_PTR ENGINE_get_load_pubkey_function(const ENGINE *e); -ENGINE_SSL_CLIENT_CERT_PTR ENGINE_get_ssl_client_cert_function(const ENGINE - *e); -ENGINE_CIPHERS_PTR ENGINE_get_ciphers(const ENGINE *e); -ENGINE_DIGESTS_PTR ENGINE_get_digests(const ENGINE *e); -ENGINE_PKEY_METHS_PTR ENGINE_get_pkey_meths(const ENGINE *e); -ENGINE_PKEY_ASN1_METHS_PTR ENGINE_get_pkey_asn1_meths(const ENGINE *e); -const EVP_CIPHER *ENGINE_get_cipher(ENGINE *e, int nid); -const EVP_MD *ENGINE_get_digest(ENGINE *e, int nid); -const EVP_PKEY_METHOD *ENGINE_get_pkey_meth(ENGINE *e, int nid); -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth(ENGINE *e, int nid); -const EVP_PKEY_ASN1_METHOD *ENGINE_get_pkey_asn1_meth_str(ENGINE *e, - const char *str, - int len); -const EVP_PKEY_ASN1_METHOD *ENGINE_pkey_asn1_find_str(ENGINE **pe, - const char *str, - int len); -const ENGINE_CMD_DEFN *ENGINE_get_cmd_defns(const ENGINE *e); -int ENGINE_get_flags(const ENGINE *e); - -/* - * FUNCTIONAL functions. These functions deal with ENGINE structures that - * have (or will) be initialised for use. Broadly speaking, the structural - * functions are useful for iterating the list of available engine types, - * creating new engine types, and other "list" operations. These functions - * actually deal with ENGINEs that are to be used. As such these functions - * can fail (if applicable) when particular engines are unavailable - eg. if - * a hardware accelerator is not attached or not functioning correctly. Each - * ENGINE has 2 reference counts; structural and functional. Every time a - * functional reference is obtained or released, a corresponding structural - * reference is automatically obtained or released too. - */ - -/* - * Initialise a engine type for use (or up its reference count if it's - * already in use). This will fail if the engine is not currently operational - * and cannot initialise. - */ -int ENGINE_init(ENGINE *e); -/* - * Free a functional reference to a engine type. This does not require a - * corresponding call to ENGINE_free as it also releases a structural - * reference. - */ -int ENGINE_finish(ENGINE *e); - -/* - * The following functions handle keys that are stored in some secondary - * location, handled by the engine. The storage may be on a card or - * whatever. - */ -EVP_PKEY *ENGINE_load_private_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -EVP_PKEY *ENGINE_load_public_key(ENGINE *e, const char *key_id, - UI_METHOD *ui_method, void *callback_data); -int ENGINE_load_ssl_client_cert(ENGINE *e, SSL *s, - STACK_OF(X509_NAME) *ca_dn, X509 **pcert, - EVP_PKEY **ppkey, STACK_OF(X509) **pother, - UI_METHOD *ui_method, void *callback_data); - -/* - * This returns a pointer for the current ENGINE structure that is (by - * default) performing any RSA operations. The value returned is an - * incremented reference, so it should be free'd (ENGINE_finish) before it is - * discarded. - */ -ENGINE *ENGINE_get_default_RSA(void); -/* Same for the other "methods" */ -ENGINE *ENGINE_get_default_DSA(void); -ENGINE *ENGINE_get_default_EC(void); -ENGINE *ENGINE_get_default_DH(void); -ENGINE *ENGINE_get_default_RAND(void); -/* - * These functions can be used to get a functional reference to perform - * ciphering or digesting corresponding to "nid". - */ -ENGINE *ENGINE_get_cipher_engine(int nid); -ENGINE *ENGINE_get_digest_engine(int nid); -ENGINE *ENGINE_get_pkey_meth_engine(int nid); -ENGINE *ENGINE_get_pkey_asn1_meth_engine(int nid); - -/* - * This sets a new default ENGINE structure for performing RSA operations. If - * the result is non-zero (success) then the ENGINE structure will have had - * its reference count up'd so the caller should still free their own - * reference 'e'. - */ -int ENGINE_set_default_RSA(ENGINE *e); -int ENGINE_set_default_string(ENGINE *e, const char *def_list); -/* Same for the other "methods" */ -int ENGINE_set_default_DSA(ENGINE *e); -int ENGINE_set_default_EC(ENGINE *e); -int ENGINE_set_default_DH(ENGINE *e); -int ENGINE_set_default_RAND(ENGINE *e); -int ENGINE_set_default_ciphers(ENGINE *e); -int ENGINE_set_default_digests(ENGINE *e); -int ENGINE_set_default_pkey_meths(ENGINE *e); -int ENGINE_set_default_pkey_asn1_meths(ENGINE *e); - -/* - * The combination "set" - the flags are bitwise "OR"d from the - * ENGINE_METHOD_*** defines above. As with the "ENGINE_register_complete()" - * function, this function can result in unnecessary static linkage. If your - * application requires only specific functionality, consider using more - * selective functions. - */ -int ENGINE_set_default(ENGINE *e, unsigned int flags); - -void ENGINE_add_conf_module(void); - -/* Deprecated functions ... */ -/* int ENGINE_clear_defaults(void); */ - -/**************************/ -/* DYNAMIC ENGINE SUPPORT */ -/**************************/ - -/* Binary/behaviour compatibility levels */ -# define OSSL_DYNAMIC_VERSION (unsigned long)0x00030000 -/* - * Binary versions older than this are too old for us (whether we're a loader - * or a loadee) - */ -# define OSSL_DYNAMIC_OLDEST (unsigned long)0x00030000 - -/* - * When compiling an ENGINE entirely as an external shared library, loadable - * by the "dynamic" ENGINE, these types are needed. The 'dynamic_fns' - * structure type provides the calling application's (or library's) error - * functionality and memory management function pointers to the loaded - * library. These should be used/set in the loaded library code so that the - * loading application's 'state' will be used/changed in all operations. The - * 'static_state' pointer allows the loaded library to know if it shares the - * same static data as the calling application (or library), and thus whether - * these callbacks need to be set or not. - */ -typedef void *(*dyn_MEM_malloc_fn) (size_t, const char *, int); -typedef void *(*dyn_MEM_realloc_fn) (void *, size_t, const char *, int); -typedef void (*dyn_MEM_free_fn) (void *, const char *, int); -typedef struct st_dynamic_MEM_fns { - dyn_MEM_malloc_fn malloc_fn; - dyn_MEM_realloc_fn realloc_fn; - dyn_MEM_free_fn free_fn; -} dynamic_MEM_fns; -/* - * FIXME: Perhaps the memory and locking code (crypto.h) should declare and - * use these types so we (and any other dependent code) can simplify a bit?? - */ -/* The top-level structure */ -typedef struct st_dynamic_fns { - void *static_state; - dynamic_MEM_fns mem_fns; -} dynamic_fns; - -/* - * The version checking function should be of this prototype. NB: The - * ossl_version value passed in is the OSSL_DYNAMIC_VERSION of the loading - * code. If this function returns zero, it indicates a (potential) version - * incompatibility and the loaded library doesn't believe it can proceed. - * Otherwise, the returned value is the (latest) version supported by the - * loading library. The loader may still decide that the loaded code's - * version is unsatisfactory and could veto the load. The function is - * expected to be implemented with the symbol name "v_check", and a default - * implementation can be fully instantiated with - * IMPLEMENT_DYNAMIC_CHECK_FN(). - */ -typedef unsigned long (*dynamic_v_check_fn) (unsigned long ossl_version); -# define IMPLEMENT_DYNAMIC_CHECK_FN() \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v); \ - OPENSSL_EXPORT unsigned long v_check(unsigned long v) { \ - if (v >= OSSL_DYNAMIC_OLDEST) return OSSL_DYNAMIC_VERSION; \ - return 0; } - -/* - * This function is passed the ENGINE structure to initialise with its own - * function and command settings. It should not adjust the structural or - * functional reference counts. If this function returns zero, (a) the load - * will be aborted, (b) the previous ENGINE state will be memcpy'd back onto - * the structure, and (c) the shared library will be unloaded. So - * implementations should do their own internal cleanup in failure - * circumstances otherwise they could leak. The 'id' parameter, if non-NULL, - * represents the ENGINE id that the loader is looking for. If this is NULL, - * the shared library can choose to return failure or to initialise a - * 'default' ENGINE. If non-NULL, the shared library must initialise only an - * ENGINE matching the passed 'id'. The function is expected to be - * implemented with the symbol name "bind_engine". A standard implementation - * can be instantiated with IMPLEMENT_DYNAMIC_BIND_FN(fn) where the parameter - * 'fn' is a callback function that populates the ENGINE structure and - * returns an int value (zero for failure). 'fn' should have prototype; - * [static] int fn(ENGINE *e, const char *id); - */ -typedef int (*dynamic_bind_engine) (ENGINE *e, const char *id, - const dynamic_fns *fns); -# define IMPLEMENT_DYNAMIC_BIND_FN(fn) \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns); \ - OPENSSL_EXPORT \ - int bind_engine(ENGINE *e, const char *id, const dynamic_fns *fns) { \ - if (ENGINE_get_static_state() == fns->static_state) goto skip_cbs; \ - CRYPTO_set_mem_functions(fns->mem_fns.malloc_fn, \ - fns->mem_fns.realloc_fn, \ - fns->mem_fns.free_fn); \ - OPENSSL_init_crypto(OPENSSL_INIT_NO_ATEXIT, NULL); \ - skip_cbs: \ - if (!fn(e, id)) return 0; \ - return 1; } - -/* - * If the loading application (or library) and the loaded ENGINE library - * share the same static data (eg. they're both dynamically linked to the - * same libcrypto.so) we need a way to avoid trying to set system callbacks - - * this would fail, and for the same reason that it's unnecessary to try. If - * the loaded ENGINE has (or gets from through the loader) its own copy of - * the libcrypto static data, we will need to set the callbacks. The easiest - * way to detect this is to have a function that returns a pointer to some - * static data and let the loading application and loaded ENGINE compare - * their respective values. - */ -void *ENGINE_get_static_state(void); - -# if defined(__OpenBSD__) || defined(__FreeBSD__) || defined(__DragonFly__) -DEPRECATEDIN_1_1_0(void ENGINE_setup_bsd_cryptodev(void)) -# endif - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin64/include/openssl/engineerr.h b/openSSL/lin64/include/openssl/engineerr.h deleted file mode 100644 index 05e84bd..0000000 --- a/openSSL/lin64/include/openssl/engineerr.h +++ /dev/null @@ -1,111 +0,0 @@ -/* - * 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_ENGINEERR_H -# define HEADER_ENGINEERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/err.h b/openSSL/lin64/include/openssl/err.h deleted file mode 100644 index b49f881..0000000 --- a/openSSL/lin64/include/openssl/err.h +++ /dev/null @@ -1,274 +0,0 @@ -/* - * 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_ERR_H -# define HEADER_ERR_H - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# include -# endif - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# ifndef OPENSSL_NO_ERR -# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,d,e) -# else -# define ERR_PUT_error(a,b,c,d,e) ERR_put_error(a,b,c,NULL,0) -# endif - -# include - -# define ERR_TXT_MALLOCED 0x01 -# 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 { - int err_flags[ERR_NUM_ERRORS]; - unsigned long err_buffer[ERR_NUM_ERRORS]; - char *err_data[ERR_NUM_ERRORS]; - int err_data_flags[ERR_NUM_ERRORS]; - const char *err_file[ERR_NUM_ERRORS]; - int err_line[ERR_NUM_ERRORS]; - int top, bottom; -} ERR_STATE; - -/* library */ -# define ERR_LIB_NONE 1 -# define ERR_LIB_SYS 2 -# define ERR_LIB_BN 3 -# define ERR_LIB_RSA 4 -# define ERR_LIB_DH 5 -# define ERR_LIB_EVP 6 -# define ERR_LIB_BUF 7 -# define ERR_LIB_OBJ 8 -# define ERR_LIB_PEM 9 -# define ERR_LIB_DSA 10 -# define ERR_LIB_X509 11 -/* #define ERR_LIB_METH 12 */ -# define ERR_LIB_ASN1 13 -# define ERR_LIB_CONF 14 -# define ERR_LIB_CRYPTO 15 -# define ERR_LIB_EC 16 -# define ERR_LIB_SSL 20 -/* #define ERR_LIB_SSL23 21 */ -/* #define ERR_LIB_SSL2 22 */ -/* #define ERR_LIB_SSL3 23 */ -/* #define ERR_LIB_RSAREF 30 */ -/* #define ERR_LIB_PROXY 31 */ -# define ERR_LIB_BIO 32 -# define ERR_LIB_PKCS7 33 -# define ERR_LIB_X509V3 34 -# define ERR_LIB_PKCS12 35 -# define ERR_LIB_RAND 36 -# define ERR_LIB_DSO 37 -# define ERR_LIB_ENGINE 38 -# define ERR_LIB_OCSP 39 -# define ERR_LIB_UI 40 -# define ERR_LIB_COMP 41 -# define ERR_LIB_ECDSA 42 -# define ERR_LIB_ECDH 43 -# define ERR_LIB_OSSL_STORE 44 -# define ERR_LIB_FIPS 45 -# define ERR_LIB_CMS 46 -# define ERR_LIB_TS 47 -# define ERR_LIB_HMAC 48 -/* # define ERR_LIB_JPAKE 49 */ -# 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 - -# define SYSerr(f,r) ERR_PUT_error(ERR_LIB_SYS,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define BNerr(f,r) ERR_PUT_error(ERR_LIB_BN,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define RSAerr(f,r) ERR_PUT_error(ERR_LIB_RSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define DHerr(f,r) ERR_PUT_error(ERR_LIB_DH,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define EVPerr(f,r) ERR_PUT_error(ERR_LIB_EVP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define BUFerr(f,r) ERR_PUT_error(ERR_LIB_BUF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define OBJerr(f,r) ERR_PUT_error(ERR_LIB_OBJ,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define PEMerr(f,r) ERR_PUT_error(ERR_LIB_PEM,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define DSAerr(f,r) ERR_PUT_error(ERR_LIB_DSA,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define X509err(f,r) ERR_PUT_error(ERR_LIB_X509,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ASN1err(f,r) ERR_PUT_error(ERR_LIB_ASN1,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define CONFerr(f,r) ERR_PUT_error(ERR_LIB_CONF,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define CRYPTOerr(f,r) ERR_PUT_error(ERR_LIB_CRYPTO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ECerr(f,r) ERR_PUT_error(ERR_LIB_EC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define SSLerr(f,r) ERR_PUT_error(ERR_LIB_SSL,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define BIOerr(f,r) ERR_PUT_error(ERR_LIB_BIO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define PKCS7err(f,r) ERR_PUT_error(ERR_LIB_PKCS7,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define X509V3err(f,r) ERR_PUT_error(ERR_LIB_X509V3,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define PKCS12err(f,r) ERR_PUT_error(ERR_LIB_PKCS12,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define RANDerr(f,r) ERR_PUT_error(ERR_LIB_RAND,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define DSOerr(f,r) ERR_PUT_error(ERR_LIB_DSO,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define ENGINEerr(f,r) ERR_PUT_error(ERR_LIB_ENGINE,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define OCSPerr(f,r) ERR_PUT_error(ERR_LIB_OCSP,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# define UIerr(f,r) ERR_PUT_error(ERR_LIB_UI,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# 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 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) -# define HMACerr(f,r) ERR_PUT_error(ERR_LIB_HMAC,(f),(r),OPENSSL_FILE,OPENSSL_LINE) -# 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) | \ - (((unsigned int)(f) & 0xFFF) << 12L) | \ - (((unsigned int)(r) & 0xFFF) ) ) -# define ERR_GET_LIB(l) (int)(((l) >> 24L) & 0x0FFL) -# define ERR_GET_FUNC(l) (int)(((l) >> 12L) & 0xFFFL) -# define ERR_GET_REASON(l) (int)( (l) & 0xFFFL) -# define ERR_FATAL_ERROR(l) (int)( (l) & ERR_R_FATAL) - -/* OS functions */ -# define SYS_F_FOPEN 1 -# define SYS_F_CONNECT 2 -# define SYS_F_GETSERVBYNAME 3 -# define SYS_F_SOCKET 4 -# define SYS_F_IOCTLSOCKET 5 -# define SYS_F_BIND 6 -# define SYS_F_LISTEN 7 -# define SYS_F_ACCEPT 8 -# define SYS_F_WSASTARTUP 9/* Winsock stuff */ -# define SYS_F_OPENDIR 10 -# define SYS_F_FREAD 11 -# define SYS_F_GETADDRINFO 12 -# define SYS_F_GETNAMEINFO 13 -# define SYS_F_SETSOCKOPT 14 -# define SYS_F_GETSOCKOPT 15 -# 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 */ -# define ERR_R_BN_LIB ERR_LIB_BN/* 3 */ -# define ERR_R_RSA_LIB ERR_LIB_RSA/* 4 */ -# define ERR_R_DH_LIB ERR_LIB_DH/* 5 */ -# define ERR_R_EVP_LIB ERR_LIB_EVP/* 6 */ -# define ERR_R_BUF_LIB ERR_LIB_BUF/* 7 */ -# define ERR_R_OBJ_LIB ERR_LIB_OBJ/* 8 */ -# define ERR_R_PEM_LIB ERR_LIB_PEM/* 9 */ -# define ERR_R_DSA_LIB ERR_LIB_DSA/* 10 */ -# define ERR_R_X509_LIB ERR_LIB_X509/* 11 */ -# define ERR_R_ASN1_LIB ERR_LIB_ASN1/* 13 */ -# define ERR_R_EC_LIB ERR_LIB_EC/* 16 */ -# define ERR_R_BIO_LIB ERR_LIB_BIO/* 32 */ -# 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 - -/* fatal error */ -# define ERR_R_FATAL 64 -# define ERR_R_MALLOC_FAILURE (1|ERR_R_FATAL) -# define ERR_R_SHOULD_NOT_HAVE_BEEN_CALLED (2|ERR_R_FATAL) -# define ERR_R_PASSED_NULL_PARAMETER (3|ERR_R_FATAL) -# define ERR_R_INTERNAL_ERROR (4|ERR_R_FATAL) -# 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 - * the individual libraries - */ - -typedef struct ERR_string_data_st { - unsigned long error; - const char *string; -} ERR_STRING_DATA; - -DEFINE_LHASH_OF(ERR_STRING_DATA); - -void ERR_put_error(int lib, int func, int reason, const char *file, int line); -void ERR_set_error_data(char *data, int flags); - -unsigned long ERR_get_error(void); -unsigned long ERR_get_error_line(const char **file, int *line); -unsigned long ERR_get_error_line_data(const char **file, int *line, - const char **data, int *flags); -unsigned long ERR_peek_error(void); -unsigned long ERR_peek_error_line(const char **file, int *line); -unsigned long ERR_peek_error_line_data(const char **file, int *line, - const char **data, int *flags); -unsigned long ERR_peek_last_error(void); -unsigned long ERR_peek_last_error_line(const char **file, int *line); -unsigned long ERR_peek_last_error_line_data(const char **file, int *line, - const char **data, int *flags); -void ERR_clear_error(void); -char *ERR_error_string(unsigned long e, char *buf); -void ERR_error_string_n(unsigned long e, char *buf, size_t len); -const char *ERR_lib_error_string(unsigned long e); -const char *ERR_func_error_string(unsigned long e); -const char *ERR_reason_error_string(unsigned long e); -void ERR_print_errors_cb(int (*cb) (const char *str, size_t len, void *u), - void *u); -# ifndef OPENSSL_NO_STDIO -void ERR_print_errors_fp(FILE *fp); -# endif -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_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 -# define ERR_load_crypto_strings() \ - OPENSSL_init_crypto(OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -# define ERR_free_strings() while(0) continue -#endif - -DEPRECATEDIN_1_1_0(void ERR_remove_thread_state(void *)) -DEPRECATEDIN_1_0_0(void ERR_remove_state(unsigned long pid)) -ERR_STATE *ERR_get_state(void); - -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 -} -#endif - -#endif diff --git a/openSSL/lin64/include/openssl/evp.h b/openSSL/lin64/include/openssl/evp.h deleted file mode 100644 index a411f3f..0000000 --- a/openSSL/lin64/include/openssl/evp.h +++ /dev/null @@ -1,1666 +0,0 @@ -/* - * 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_ENVELOPE_H -# define HEADER_ENVELOPE_H - -# include -# include -# include -# include -# include - -# define EVP_MAX_MD_SIZE 64/* longest known is SHA512 */ -# define EVP_MAX_KEY_LENGTH 64 -# define EVP_MAX_IV_LENGTH 16 -# define EVP_MAX_BLOCK_LENGTH 32 - -# define PKCS5_SALT_LEN 8 -/* Default PKCS#5 iteration count */ -# define PKCS5_DEFAULT_ITER 2048 - -# include - -# define EVP_PK_RSA 0x0001 -# define EVP_PK_DSA 0x0002 -# define EVP_PK_DH 0x0004 -# define EVP_PK_EC 0x0008 -# define EVP_PKT_SIGN 0x0010 -# define EVP_PKT_ENC 0x0020 -# define EVP_PKT_EXCH 0x0040 -# define EVP_PKS_RSA 0x0100 -# define EVP_PKS_DSA 0x0200 -# define EVP_PKS_EC 0x0400 - -# 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 -# define EVP_PKEY_DSA3 NID_dsaWithSHA1 -# define EVP_PKEY_DSA4 NID_dsaWithSHA1_2 -# 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" { -#endif - -# define EVP_PKEY_MO_SIGN 0x0001 -# define EVP_PKEY_MO_VERIFY 0x0002 -# define EVP_PKEY_MO_ENCRYPT 0x0004 -# define EVP_PKEY_MO_DECRYPT 0x0008 - -# ifndef EVP_MD -EVP_MD *EVP_MD_meth_new(int md_type, int pkey_type); -EVP_MD *EVP_MD_meth_dup(const EVP_MD *md); -void EVP_MD_meth_free(EVP_MD *md); - -int EVP_MD_meth_set_input_blocksize(EVP_MD *md, int blocksize); -int EVP_MD_meth_set_result_size(EVP_MD *md, int resultsize); -int EVP_MD_meth_set_app_datasize(EVP_MD *md, int datasize); -int EVP_MD_meth_set_flags(EVP_MD *md, unsigned long flags); -int EVP_MD_meth_set_init(EVP_MD *md, int (*init)(EVP_MD_CTX *ctx)); -int EVP_MD_meth_set_update(EVP_MD *md, int (*update)(EVP_MD_CTX *ctx, - const void *data, - size_t count)); -int EVP_MD_meth_set_final(EVP_MD *md, int (*final)(EVP_MD_CTX *ctx, - unsigned char *md)); -int EVP_MD_meth_set_copy(EVP_MD *md, int (*copy)(EVP_MD_CTX *to, - const EVP_MD_CTX *from)); -int EVP_MD_meth_set_cleanup(EVP_MD *md, int (*cleanup)(EVP_MD_CTX *ctx)); -int EVP_MD_meth_set_ctrl(EVP_MD *md, int (*ctrl)(EVP_MD_CTX *ctx, int cmd, - int p1, void *p2)); - -int EVP_MD_meth_get_input_blocksize(const EVP_MD *md); -int EVP_MD_meth_get_result_size(const EVP_MD *md); -int EVP_MD_meth_get_app_datasize(const EVP_MD *md); -unsigned long EVP_MD_meth_get_flags(const EVP_MD *md); -int (*EVP_MD_meth_get_init(const EVP_MD *md))(EVP_MD_CTX *ctx); -int (*EVP_MD_meth_get_update(const EVP_MD *md))(EVP_MD_CTX *ctx, - const void *data, - size_t count); -int (*EVP_MD_meth_get_final(const EVP_MD *md))(EVP_MD_CTX *ctx, - unsigned char *md); -int (*EVP_MD_meth_get_copy(const EVP_MD *md))(EVP_MD_CTX *to, - const EVP_MD_CTX *from); -int (*EVP_MD_meth_get_cleanup(const EVP_MD *md))(EVP_MD_CTX *ctx); -int (*EVP_MD_meth_get_ctrl(const EVP_MD *md))(EVP_MD_CTX *ctx, int cmd, - int p1, void *p2); - -/* 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 - -/* NULL or absent parameter accepted. Use NULL */ - -# define EVP_MD_FLAG_DIGALGID_NULL 0x0000 - -/* NULL or absent parameter accepted. Use NULL for PKCS#1 otherwise absent */ - -# define EVP_MD_FLAG_DIGALGID_ABSENT 0x0008 - -/* Custom handling via ctrl */ - -# define EVP_MD_FLAG_DIGALGID_CUSTOM 0x0018 - -/* Note if suitable for use in FIPS mode */ -# define EVP_MD_FLAG_FIPS 0x0400 - -/* Digest ctrls */ - -# define EVP_MD_CTRL_DIGALGID 0x1 -# define EVP_MD_CTRL_MICALG 0x2 -# define EVP_MD_CTRL_XOF_LEN 0x3 - -/* Minimum Algorithm specific ctrl value */ - -# define EVP_MD_CTRL_ALG_CTRL 0x1000 - -# endif /* !EVP_MD */ - -/* values for EVP_MD_CTX flags */ - -# define EVP_MD_CTX_FLAG_ONESHOT 0x0001/* digest update will be - * called once only */ -# define EVP_MD_CTX_FLAG_CLEANED 0x0002/* context has already been - * cleaned */ -# define EVP_MD_CTX_FLAG_REUSE 0x0004/* Don't free up ctx->md_data - * in EVP_MD_CTX_reset */ -/* - * FIPS and pad options are ignored in 1.0.0, definitions are here so we - * don't accidentally reuse the values for other purposes. - */ - -# define EVP_MD_CTX_FLAG_NON_FIPS_ALLOW 0x0008/* Allow use of non FIPS - * digest in FIPS mode */ - -/* - * The following PAD options are also currently ignored in 1.0.0, digest - * parameters are handled through EVP_DigestSign*() and EVP_DigestVerify*() - * instead. - */ -# define EVP_MD_CTX_FLAG_PAD_MASK 0xF0/* RSA mode to use */ -# define EVP_MD_CTX_FLAG_PAD_PKCS1 0x00/* PKCS#1 v1.5 mode */ -# define EVP_MD_CTX_FLAG_PAD_X931 0x10/* X9.31 mode */ -# define EVP_MD_CTX_FLAG_PAD_PSS 0x20/* PSS mode */ - -# define EVP_MD_CTX_FLAG_NO_INIT 0x0100/* Don't initialize md_data */ -/* - * Some functions such as EVP_DigestSign only finalise copies of internal - * contexts so additional data can be included after the finalisation call. - * This is inefficient if this functionality is not required: it is disabled - * if the following flag is set. - */ -# define EVP_MD_CTX_FLAG_FINALISE 0x0200 -/* NOTE: 0x0400 is reserved for internal usage */ - -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); -void EVP_CIPHER_meth_free(EVP_CIPHER *cipher); - -int EVP_CIPHER_meth_set_iv_length(EVP_CIPHER *cipher, int iv_len); -int EVP_CIPHER_meth_set_flags(EVP_CIPHER *cipher, unsigned long flags); -int EVP_CIPHER_meth_set_impl_ctx_size(EVP_CIPHER *cipher, int ctx_size); -int EVP_CIPHER_meth_set_init(EVP_CIPHER *cipher, - int (*init) (EVP_CIPHER_CTX *ctx, - const unsigned char *key, - const unsigned char *iv, - int enc)); -int EVP_CIPHER_meth_set_do_cipher(EVP_CIPHER *cipher, - int (*do_cipher) (EVP_CIPHER_CTX *ctx, - unsigned char *out, - const unsigned char *in, - size_t inl)); -int EVP_CIPHER_meth_set_cleanup(EVP_CIPHER *cipher, - int (*cleanup) (EVP_CIPHER_CTX *)); -int EVP_CIPHER_meth_set_set_asn1_params(EVP_CIPHER *cipher, - int (*set_asn1_parameters) (EVP_CIPHER_CTX *, - ASN1_TYPE *)); -int EVP_CIPHER_meth_set_get_asn1_params(EVP_CIPHER *cipher, - int (*get_asn1_parameters) (EVP_CIPHER_CTX *, - ASN1_TYPE *)); -int EVP_CIPHER_meth_set_ctrl(EVP_CIPHER *cipher, - int (*ctrl) (EVP_CIPHER_CTX *, int type, - int arg, void *ptr)); - -int (*EVP_CIPHER_meth_get_init(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, - const unsigned char *key, - const unsigned char *iv, - int enc); -int (*EVP_CIPHER_meth_get_do_cipher(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *ctx, - unsigned char *out, - const unsigned char *in, - size_t inl); -int (*EVP_CIPHER_meth_get_cleanup(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *); -int (*EVP_CIPHER_meth_get_set_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - ASN1_TYPE *); -int (*EVP_CIPHER_meth_get_get_asn1_params(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - ASN1_TYPE *); -int (*EVP_CIPHER_meth_get_ctrl(const EVP_CIPHER *cipher))(EVP_CIPHER_CTX *, - int type, int arg, - void *ptr); - -/* Values for cipher flags */ - -/* Modes for ciphers */ - -# define EVP_CIPH_STREAM_CIPHER 0x0 -# define EVP_CIPH_ECB_MODE 0x1 -# define EVP_CIPH_CBC_MODE 0x2 -# define EVP_CIPH_CFB_MODE 0x3 -# define EVP_CIPH_OFB_MODE 0x4 -# define EVP_CIPH_CTR_MODE 0x5 -# define EVP_CIPH_GCM_MODE 0x6 -# define EVP_CIPH_CCM_MODE 0x7 -# define EVP_CIPH_XTS_MODE 0x10001 -# define EVP_CIPH_WRAP_MODE 0x10002 -# define EVP_CIPH_OCB_MODE 0x10003 -# define EVP_CIPH_MODE 0xF0007 -/* Set if variable length cipher */ -# define EVP_CIPH_VARIABLE_LENGTH 0x8 -/* Set if the iv handling should be done by the cipher itself */ -# define EVP_CIPH_CUSTOM_IV 0x10 -/* Set if the cipher's init() function should be called if key is NULL */ -# define EVP_CIPH_ALWAYS_CALL_INIT 0x20 -/* Call ctrl() to init cipher parameters */ -# define EVP_CIPH_CTRL_INIT 0x40 -/* Don't use standard key length function */ -# define EVP_CIPH_CUSTOM_KEY_LENGTH 0x80 -/* Don't use standard block padding */ -# define EVP_CIPH_NO_PADDING 0x100 -/* cipher handles random key generation */ -# define EVP_CIPH_RAND_KEY 0x200 -/* cipher has its own additional copying logic */ -# define EVP_CIPH_CUSTOM_COPY 0x400 -/* Don't use standard iv length function */ -# define EVP_CIPH_CUSTOM_IV_LENGTH 0x800 -/* Allow use default ASN1 get/set iv */ -# define EVP_CIPH_FLAG_DEFAULT_ASN1 0x1000 -/* Buffer length in bits not bytes: CFB1 mode only */ -# define EVP_CIPH_FLAG_LENGTH_BITS 0x2000 -/* Note if suitable for use in FIPS mode */ -# define EVP_CIPH_FLAG_FIPS 0x4000 -/* Allow non FIPS cipher in FIPS mode */ -# define EVP_CIPH_FLAG_NON_FIPS_ALLOW 0x8000 -/* - * Cipher handles any and all padding logic as well as finalisation. - */ -# define EVP_CIPH_FLAG_CUSTOM_CIPHER 0x100000 -# define EVP_CIPH_FLAG_AEAD_CIPHER 0x200000 -# define EVP_CIPH_FLAG_TLS1_1_MULTIBLOCK 0x400000 -/* Cipher can handle pipeline operations */ -# define EVP_CIPH_FLAG_PIPELINE 0X800000 - -/* - * Cipher context flag to indicate we can handle wrap mode: if allowed in - * older applications it could overflow buffers. - */ - -# define EVP_CIPHER_CTX_FLAG_WRAP_ALLOW 0x1 - -/* ctrl() values */ - -# define EVP_CTRL_INIT 0x0 -# define EVP_CTRL_SET_KEY_LENGTH 0x1 -# define EVP_CTRL_GET_RC2_KEY_BITS 0x2 -# define EVP_CTRL_SET_RC2_KEY_BITS 0x3 -# define EVP_CTRL_GET_RC5_ROUNDS 0x4 -# define EVP_CTRL_SET_RC5_ROUNDS 0x5 -# define EVP_CTRL_RAND_KEY 0x6 -# define EVP_CTRL_PBE_PRF_NID 0x7 -# define EVP_CTRL_COPY 0x8 -# define EVP_CTRL_AEAD_SET_IVLEN 0x9 -# define EVP_CTRL_AEAD_GET_TAG 0x10 -# define EVP_CTRL_AEAD_SET_TAG 0x11 -# define EVP_CTRL_AEAD_SET_IV_FIXED 0x12 -# define EVP_CTRL_GCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN -# define EVP_CTRL_GCM_GET_TAG EVP_CTRL_AEAD_GET_TAG -# define EVP_CTRL_GCM_SET_TAG EVP_CTRL_AEAD_SET_TAG -# define EVP_CTRL_GCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED -# define EVP_CTRL_GCM_IV_GEN 0x13 -# define EVP_CTRL_CCM_SET_IVLEN EVP_CTRL_AEAD_SET_IVLEN -# define EVP_CTRL_CCM_GET_TAG EVP_CTRL_AEAD_GET_TAG -# define EVP_CTRL_CCM_SET_TAG EVP_CTRL_AEAD_SET_TAG -# define EVP_CTRL_CCM_SET_IV_FIXED EVP_CTRL_AEAD_SET_IV_FIXED -# define EVP_CTRL_CCM_SET_L 0x14 -# define EVP_CTRL_CCM_SET_MSGLEN 0x15 -/* - * AEAD cipher deduces payload length and returns number of bytes required to - * store MAC and eventual padding. Subsequent call to EVP_Cipher even - * appends/verifies MAC. - */ -# define EVP_CTRL_AEAD_TLS1_AAD 0x16 -/* Used by composite AEAD ciphers, no-op in GCM, CCM... */ -# define EVP_CTRL_AEAD_SET_MAC_KEY 0x17 -/* Set the GCM invocation field, decrypt only */ -# define EVP_CTRL_GCM_SET_IV_INV 0x18 - -# define EVP_CTRL_TLS1_1_MULTIBLOCK_AAD 0x19 -# define EVP_CTRL_TLS1_1_MULTIBLOCK_ENCRYPT 0x1a -# define EVP_CTRL_TLS1_1_MULTIBLOCK_DECRYPT 0x1b -# define EVP_CTRL_TLS1_1_MULTIBLOCK_MAX_BUFSIZE 0x1c - -# define EVP_CTRL_SSL3_MASTER_SECRET 0x1d - -/* EVP_CTRL_SET_SBOX takes the char * specifying S-boxes */ -# define EVP_CTRL_SET_SBOX 0x1e -/* - * EVP_CTRL_SBOX_USED takes a 'size_t' and 'char *', pointing at a - * pre-allocated buffer with specified size - */ -# define EVP_CTRL_SBOX_USED 0x1f -/* EVP_CTRL_KEY_MESH takes 'size_t' number of bytes to mesh the key after, - * 0 switches meshing off - */ -# define EVP_CTRL_KEY_MESH 0x20 -/* EVP_CTRL_BLOCK_PADDING_MODE takes the padding mode */ -# define EVP_CTRL_BLOCK_PADDING_MODE 0x21 - -/* Set the output buffers to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_OUTPUT_BUFS 0x22 -/* Set the input buffers to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_INPUT_BUFS 0x23 -/* Set the input buffer lengths to use for a pipelined operation */ -# define EVP_CTRL_SET_PIPELINE_INPUT_LENS 0x24 - -# define EVP_CTRL_GET_IVLEN 0x25 - -/* Padding modes */ -#define EVP_PADDING_PKCS7 1 -#define EVP_PADDING_ISO7816_4 2 -#define EVP_PADDING_ANSI923 3 -#define EVP_PADDING_ISO10126 4 -#define EVP_PADDING_ZERO 5 - -/* RFC 5246 defines additional data to be 13 bytes in length */ -# define EVP_AEAD_TLS1_AAD_LEN 13 - -typedef struct { - unsigned char *out; - const unsigned char *inp; - size_t len; - unsigned int interleave; -} EVP_CTRL_TLS1_1_MULTIBLOCK_PARAM; - -/* GCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# define EVP_GCM_TLS_FIXED_IV_LEN 4 -/* Length of explicit part of IV part of TLS records */ -# define EVP_GCM_TLS_EXPLICIT_IV_LEN 8 -/* Length of tag for TLS */ -# define EVP_GCM_TLS_TAG_LEN 16 - -/* CCM TLS constants */ -/* Length of fixed part of IV derived from PRF */ -# 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; - unsigned char iv[EVP_MAX_IV_LENGTH]; -} EVP_CIPHER_INFO; - - -/* Password based encryption function */ -typedef int (EVP_PBE_KEYGEN) (EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *cipher, const EVP_MD *md, - int en_de); - -# ifndef OPENSSL_NO_RSA -# define EVP_PKEY_assign_RSA(pkey,rsa) EVP_PKEY_assign((pkey),EVP_PKEY_RSA,\ - (char *)(rsa)) -# endif - -# ifndef OPENSSL_NO_DSA -# define EVP_PKEY_assign_DSA(pkey,dsa) EVP_PKEY_assign((pkey),EVP_PKEY_DSA,\ - (char *)(dsa)) -# endif - -# ifndef OPENSSL_NO_DH -# define EVP_PKEY_assign_DH(pkey,dh) EVP_PKEY_assign((pkey),EVP_PKEY_DH,\ - (char *)(dh)) -# endif - -# ifndef OPENSSL_NO_EC -# 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)) -# define EVP_get_digestbyobj(a) EVP_get_digestbynid(OBJ_obj2nid(a)) -# define EVP_get_cipherbynid(a) EVP_get_cipherbyname(OBJ_nid2sn(a)) -# define EVP_get_cipherbyobj(a) EVP_get_cipherbynid(OBJ_obj2nid(a)) - -int EVP_MD_type(const EVP_MD *md); -# define EVP_MD_nid(e) EVP_MD_type(e) -# define EVP_MD_name(e) OBJ_nid2sn(EVP_MD_nid(e)) -int EVP_MD_pkey_type(const EVP_MD *md); -int EVP_MD_size(const EVP_MD *md); -int EVP_MD_block_size(const EVP_MD *md); -unsigned long EVP_MD_flags(const EVP_MD *md); - -const EVP_MD *EVP_MD_CTX_md(const EVP_MD_CTX *ctx); -int (*EVP_MD_CTX_update_fn(EVP_MD_CTX *ctx))(EVP_MD_CTX *ctx, - const void *data, size_t count); -void EVP_MD_CTX_set_update_fn(EVP_MD_CTX *ctx, - int (*update) (EVP_MD_CTX *ctx, - const void *data, size_t count)); -# define EVP_MD_CTX_size(e) EVP_MD_size(EVP_MD_CTX_md(e)) -# 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); -# define EVP_CIPHER_name(e) OBJ_nid2sn(EVP_CIPHER_nid(e)) -int EVP_CIPHER_block_size(const EVP_CIPHER *cipher); -int EVP_CIPHER_impl_ctx_size(const EVP_CIPHER *cipher); -int EVP_CIPHER_key_length(const EVP_CIPHER *cipher); -int EVP_CIPHER_iv_length(const EVP_CIPHER *cipher); -unsigned long EVP_CIPHER_flags(const EVP_CIPHER *cipher); -# define EVP_CIPHER_mode(e) (EVP_CIPHER_flags(e) & EVP_CIPH_MODE) - -const EVP_CIPHER *EVP_CIPHER_CTX_cipher(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_encrypting(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_nid(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_block_size(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_key_length(const EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_iv_length(const EVP_CIPHER_CTX *ctx); -const unsigned char *EVP_CIPHER_CTX_iv(const EVP_CIPHER_CTX *ctx); -const unsigned char *EVP_CIPHER_CTX_original_iv(const EVP_CIPHER_CTX *ctx); -unsigned char *EVP_CIPHER_CTX_iv_noconst(EVP_CIPHER_CTX *ctx); -unsigned char *EVP_CIPHER_CTX_buf_noconst(EVP_CIPHER_CTX *ctx); -int EVP_CIPHER_CTX_num(const EVP_CIPHER_CTX *ctx); -void EVP_CIPHER_CTX_set_num(EVP_CIPHER_CTX *ctx, int num); -int EVP_CIPHER_CTX_copy(EVP_CIPHER_CTX *out, const EVP_CIPHER_CTX *in); -void *EVP_CIPHER_CTX_get_app_data(const EVP_CIPHER_CTX *ctx); -void EVP_CIPHER_CTX_set_app_data(EVP_CIPHER_CTX *ctx, void *data); -void *EVP_CIPHER_CTX_get_cipher_data(const EVP_CIPHER_CTX *ctx); -void *EVP_CIPHER_CTX_set_cipher_data(EVP_CIPHER_CTX *ctx, void *cipher_data); -# define EVP_CIPHER_CTX_type(c) EVP_CIPHER_type(EVP_CIPHER_CTX_cipher(c)) -# if OPENSSL_API_COMPAT < 0x10100000L -# define EVP_CIPHER_CTX_flags(c) EVP_CIPHER_flags(EVP_CIPHER_CTX_cipher(c)) -# 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_SignInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_SignInit(a,b) EVP_DigestInit(a,b) -# define EVP_SignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_VerifyInit_ex(a,b,c) EVP_DigestInit_ex(a,b,c) -# define EVP_VerifyInit(a,b) EVP_DigestInit(a,b) -# define EVP_VerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_OpenUpdate(a,b,c,d,e) EVP_DecryptUpdate(a,b,c,d,e) -# define EVP_SealUpdate(a,b,c,d,e) EVP_EncryptUpdate(a,b,c,d,e) -# define EVP_DigestSignUpdate(a,b,c) EVP_DigestUpdate(a,b,c) -# define EVP_DigestVerifyUpdate(a,b,c) EVP_DigestUpdate(a,b,c) - -# 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)) -# 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)) - -/*__owur*/ int EVP_Cipher(EVP_CIPHER_CTX *c, - unsigned char *out, - const unsigned char *in, unsigned int inl); - -# define EVP_add_cipher_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_add_digest_alias(n,alias) \ - OBJ_NAME_add((alias),OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS,(n)) -# define EVP_delete_cipher_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_CIPHER_METH|OBJ_NAME_ALIAS); -# define EVP_delete_digest_alias(alias) \ - OBJ_NAME_remove(alias,OBJ_NAME_TYPE_MD_METH|OBJ_NAME_ALIAS); - -int EVP_MD_CTX_ctrl(EVP_MD_CTX *ctx, int cmd, int p1, void *p2); -EVP_MD_CTX *EVP_MD_CTX_new(void); -int EVP_MD_CTX_reset(EVP_MD_CTX *ctx); -void EVP_MD_CTX_free(EVP_MD_CTX *ctx); -# define EVP_MD_CTX_create() EVP_MD_CTX_new() -# define EVP_MD_CTX_init(ctx) EVP_MD_CTX_reset((ctx)) -# define EVP_MD_CTX_destroy(ctx) EVP_MD_CTX_free((ctx)) -__owur int EVP_MD_CTX_copy_ex(EVP_MD_CTX *out, const EVP_MD_CTX *in); -void EVP_MD_CTX_set_flags(EVP_MD_CTX *ctx, int flags); -void EVP_MD_CTX_clear_flags(EVP_MD_CTX *ctx, int flags); -int EVP_MD_CTX_test_flags(const EVP_MD_CTX *ctx, int flags); -__owur int EVP_DigestInit_ex(EVP_MD_CTX *ctx, const EVP_MD *type, - ENGINE *impl); -__owur int EVP_DigestUpdate(EVP_MD_CTX *ctx, const void *d, - size_t cnt); -__owur int EVP_DigestFinal_ex(EVP_MD_CTX *ctx, unsigned char *md, - unsigned int *s); -__owur int EVP_Digest(const void *data, size_t count, - unsigned char *md, unsigned int *size, - const EVP_MD *type, ENGINE *impl); - -__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); - -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); - -__owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, - const unsigned char *salt, - const unsigned char *data, int datal, int count, - unsigned char *key, unsigned char *iv); - -void EVP_CIPHER_CTX_set_flags(EVP_CIPHER_CTX *ctx, int flags); -void EVP_CIPHER_CTX_clear_flags(EVP_CIPHER_CTX *ctx, int flags); -int EVP_CIPHER_CTX_test_flags(const EVP_CIPHER_CTX *ctx, int flags); - -__owur int EVP_EncryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -/*__owur*/ int EVP_EncryptInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv); -/*__owur*/ int EVP_EncryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -/*__owur*/ int EVP_EncryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl); -/*__owur*/ int EVP_EncryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl); - -__owur int EVP_DecryptInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv); -/*__owur*/ int EVP_DecryptInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv); -/*__owur*/ int EVP_DecryptUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_DecryptFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); -/*__owur*/ int EVP_DecryptFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); - -__owur int EVP_CipherInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *cipher, - const unsigned char *key, const unsigned char *iv, - int enc); -/*__owur*/ int EVP_CipherInit_ex(EVP_CIPHER_CTX *ctx, - const EVP_CIPHER *cipher, ENGINE *impl, - const unsigned char *key, - const unsigned char *iv, int enc); -__owur int EVP_CipherUpdate(EVP_CIPHER_CTX *ctx, unsigned char *out, - int *outl, const unsigned char *in, int inl); -__owur int EVP_CipherFinal(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); -__owur int EVP_CipherFinal_ex(EVP_CIPHER_CTX *ctx, unsigned char *outm, - int *outl); - -__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); -__owur int EVP_DigestSignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - size_t *siglen); - -__owur int EVP_DigestVerifyInit(EVP_MD_CTX *ctx, EVP_PKEY_CTX **pctx, - const EVP_MD *type, ENGINE *e, - EVP_PKEY *pkey); -__owur int EVP_DigestVerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sig, - size_t siglen); - -# ifndef OPENSSL_NO_RSA -__owur int EVP_OpenInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - const unsigned char *ek, int ekl, - const unsigned char *iv, EVP_PKEY *priv); -__owur int EVP_OpenFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); - -__owur int EVP_SealInit(EVP_CIPHER_CTX *ctx, const EVP_CIPHER *type, - unsigned char **ek, int *ekl, unsigned char *iv, - EVP_PKEY **pubk, int npubk); -__owur int EVP_SealFinal(EVP_CIPHER_CTX *ctx, unsigned char *out, int *outl); -# endif - -EVP_ENCODE_CTX *EVP_ENCODE_CTX_new(void); -void EVP_ENCODE_CTX_free(EVP_ENCODE_CTX *ctx); -int EVP_ENCODE_CTX_copy(EVP_ENCODE_CTX *dctx, EVP_ENCODE_CTX *sctx); -int EVP_ENCODE_CTX_num(EVP_ENCODE_CTX *ctx); -void EVP_EncodeInit(EVP_ENCODE_CTX *ctx); -int EVP_EncodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -void EVP_EncodeFinal(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl); -int EVP_EncodeBlock(unsigned char *t, const unsigned char *f, int n); - -void EVP_DecodeInit(EVP_ENCODE_CTX *ctx); -int EVP_DecodeUpdate(EVP_ENCODE_CTX *ctx, unsigned char *out, int *outl, - const unsigned char *in, int inl); -int EVP_DecodeFinal(EVP_ENCODE_CTX *ctx, unsigned - char *out, int *outl); -int EVP_DecodeBlock(unsigned char *t, const unsigned char *f, int n); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define EVP_CIPHER_CTX_init(c) EVP_CIPHER_CTX_reset(c) -# define EVP_CIPHER_CTX_cleanup(c) EVP_CIPHER_CTX_reset(c) -# endif -EVP_CIPHER_CTX *EVP_CIPHER_CTX_new(void); -int EVP_CIPHER_CTX_reset(EVP_CIPHER_CTX *c); -void EVP_CIPHER_CTX_free(EVP_CIPHER_CTX *c); -int EVP_CIPHER_CTX_set_key_length(EVP_CIPHER_CTX *x, int keylen); -int EVP_CIPHER_CTX_set_padding(EVP_CIPHER_CTX *c, int pad); -int EVP_CIPHER_CTX_ctrl(EVP_CIPHER_CTX *ctx, int type, int arg, void *ptr); -int EVP_CIPHER_CTX_rand_key(EVP_CIPHER_CTX *ctx, unsigned char *key); - -const BIO_METHOD *BIO_f_md(void); -const BIO_METHOD *BIO_f_base64(void); -const BIO_METHOD *BIO_f_cipher(void); -const BIO_METHOD *BIO_f_reliable(void); -__owur int BIO_set_cipher(BIO *b, const EVP_CIPHER *c, const unsigned char *k, - const unsigned char *i, int enc); - -const EVP_MD *EVP_md_null(void); -# ifndef OPENSSL_NO_MD2 -const EVP_MD *EVP_md2(void); -# endif -# ifndef OPENSSL_NO_MD4 -const EVP_MD *EVP_md4(void); -# endif -# ifndef OPENSSL_NO_MD5 -const EVP_MD *EVP_md5(void); -const EVP_MD *EVP_md5_sha1(void); -# endif -# ifndef OPENSSL_NO_BLAKE2 -const EVP_MD *EVP_blake2b512(void); -const EVP_MD *EVP_blake2s256(void); -# endif -const EVP_MD *EVP_sha1(void); -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 -# ifndef OPENSSL_NO_RMD160 -const EVP_MD *EVP_ripemd160(void); -# endif -# 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); -const EVP_CIPHER *EVP_des_ede(void); -const EVP_CIPHER *EVP_des_ede3(void); -const EVP_CIPHER *EVP_des_ede_ecb(void); -const EVP_CIPHER *EVP_des_ede3_ecb(void); -const EVP_CIPHER *EVP_des_cfb64(void); -# define EVP_des_cfb EVP_des_cfb64 -const EVP_CIPHER *EVP_des_cfb1(void); -const EVP_CIPHER *EVP_des_cfb8(void); -const EVP_CIPHER *EVP_des_ede_cfb64(void); -# define EVP_des_ede_cfb EVP_des_ede_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb64(void); -# define EVP_des_ede3_cfb EVP_des_ede3_cfb64 -const EVP_CIPHER *EVP_des_ede3_cfb1(void); -const EVP_CIPHER *EVP_des_ede3_cfb8(void); -const EVP_CIPHER *EVP_des_ofb(void); -const EVP_CIPHER *EVP_des_ede_ofb(void); -const EVP_CIPHER *EVP_des_ede3_ofb(void); -const EVP_CIPHER *EVP_des_cbc(void); -const EVP_CIPHER *EVP_des_ede_cbc(void); -const EVP_CIPHER *EVP_des_ede3_cbc(void); -const EVP_CIPHER *EVP_desx_cbc(void); -const EVP_CIPHER *EVP_des_ede3_wrap(void); -/* - * This should now be supported through the dev_crypto ENGINE. But also, why - * are rc4 and md5 declarations made here inside a "NO_DES" precompiler - * branch? - */ -# endif -# ifndef OPENSSL_NO_RC4 -const EVP_CIPHER *EVP_rc4(void); -const EVP_CIPHER *EVP_rc4_40(void); -# ifndef OPENSSL_NO_MD5 -const EVP_CIPHER *EVP_rc4_hmac_md5(void); -# endif -# endif -# ifndef OPENSSL_NO_IDEA -const EVP_CIPHER *EVP_idea_ecb(void); -const EVP_CIPHER *EVP_idea_cfb64(void); -# define EVP_idea_cfb EVP_idea_cfb64 -const EVP_CIPHER *EVP_idea_ofb(void); -const EVP_CIPHER *EVP_idea_cbc(void); -# endif -# ifndef OPENSSL_NO_RC2 -const EVP_CIPHER *EVP_rc2_ecb(void); -const EVP_CIPHER *EVP_rc2_cbc(void); -const EVP_CIPHER *EVP_rc2_40_cbc(void); -const EVP_CIPHER *EVP_rc2_64_cbc(void); -const EVP_CIPHER *EVP_rc2_cfb64(void); -# define EVP_rc2_cfb EVP_rc2_cfb64 -const EVP_CIPHER *EVP_rc2_ofb(void); -# endif -# ifndef OPENSSL_NO_BF -const EVP_CIPHER *EVP_bf_ecb(void); -const EVP_CIPHER *EVP_bf_cbc(void); -const EVP_CIPHER *EVP_bf_cfb64(void); -# define EVP_bf_cfb EVP_bf_cfb64 -const EVP_CIPHER *EVP_bf_ofb(void); -# endif -# ifndef OPENSSL_NO_CAST -const EVP_CIPHER *EVP_cast5_ecb(void); -const EVP_CIPHER *EVP_cast5_cbc(void); -const EVP_CIPHER *EVP_cast5_cfb64(void); -# define EVP_cast5_cfb EVP_cast5_cfb64 -const EVP_CIPHER *EVP_cast5_ofb(void); -# endif -# ifndef OPENSSL_NO_RC5 -const EVP_CIPHER *EVP_rc5_32_12_16_cbc(void); -const EVP_CIPHER *EVP_rc5_32_12_16_ecb(void); -const EVP_CIPHER *EVP_rc5_32_12_16_cfb64(void); -# define EVP_rc5_32_12_16_cfb EVP_rc5_32_12_16_cfb64 -const EVP_CIPHER *EVP_rc5_32_12_16_ofb(void); -# endif -const EVP_CIPHER *EVP_aes_128_ecb(void); -const EVP_CIPHER *EVP_aes_128_cbc(void); -const EVP_CIPHER *EVP_aes_128_cfb1(void); -const EVP_CIPHER *EVP_aes_128_cfb8(void); -const EVP_CIPHER *EVP_aes_128_cfb128(void); -# define EVP_aes_128_cfb EVP_aes_128_cfb128 -const EVP_CIPHER *EVP_aes_128_ofb(void); -const EVP_CIPHER *EVP_aes_128_ctr(void); -const EVP_CIPHER *EVP_aes_128_ccm(void); -const EVP_CIPHER *EVP_aes_128_gcm(void); -const EVP_CIPHER *EVP_aes_128_xts(void); -const EVP_CIPHER *EVP_aes_128_wrap(void); -const EVP_CIPHER *EVP_aes_128_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_128_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_192_ecb(void); -const EVP_CIPHER *EVP_aes_192_cbc(void); -const EVP_CIPHER *EVP_aes_192_cfb1(void); -const EVP_CIPHER *EVP_aes_192_cfb8(void); -const EVP_CIPHER *EVP_aes_192_cfb128(void); -# define EVP_aes_192_cfb EVP_aes_192_cfb128 -const EVP_CIPHER *EVP_aes_192_ofb(void); -const EVP_CIPHER *EVP_aes_192_ctr(void); -const EVP_CIPHER *EVP_aes_192_ccm(void); -const EVP_CIPHER *EVP_aes_192_gcm(void); -const EVP_CIPHER *EVP_aes_192_wrap(void); -const EVP_CIPHER *EVP_aes_192_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_192_ocb(void); -# endif -const EVP_CIPHER *EVP_aes_256_ecb(void); -const EVP_CIPHER *EVP_aes_256_cbc(void); -const EVP_CIPHER *EVP_aes_256_cfb1(void); -const EVP_CIPHER *EVP_aes_256_cfb8(void); -const EVP_CIPHER *EVP_aes_256_cfb128(void); -# define EVP_aes_256_cfb EVP_aes_256_cfb128 -const EVP_CIPHER *EVP_aes_256_ofb(void); -const EVP_CIPHER *EVP_aes_256_ctr(void); -const EVP_CIPHER *EVP_aes_256_ccm(void); -const EVP_CIPHER *EVP_aes_256_gcm(void); -const EVP_CIPHER *EVP_aes_256_xts(void); -const EVP_CIPHER *EVP_aes_256_wrap(void); -const EVP_CIPHER *EVP_aes_256_wrap_pad(void); -# ifndef OPENSSL_NO_OCB -const EVP_CIPHER *EVP_aes_256_ocb(void); -# endif -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); -const EVP_CIPHER *EVP_camellia_128_cfb1(void); -const EVP_CIPHER *EVP_camellia_128_cfb8(void); -const EVP_CIPHER *EVP_camellia_128_cfb128(void); -# define EVP_camellia_128_cfb EVP_camellia_128_cfb128 -const EVP_CIPHER *EVP_camellia_128_ofb(void); -const EVP_CIPHER *EVP_camellia_128_ctr(void); -const EVP_CIPHER *EVP_camellia_192_ecb(void); -const EVP_CIPHER *EVP_camellia_192_cbc(void); -const EVP_CIPHER *EVP_camellia_192_cfb1(void); -const EVP_CIPHER *EVP_camellia_192_cfb8(void); -const EVP_CIPHER *EVP_camellia_192_cfb128(void); -# define EVP_camellia_192_cfb EVP_camellia_192_cfb128 -const EVP_CIPHER *EVP_camellia_192_ofb(void); -const EVP_CIPHER *EVP_camellia_192_ctr(void); -const EVP_CIPHER *EVP_camellia_256_ecb(void); -const EVP_CIPHER *EVP_camellia_256_cbc(void); -const EVP_CIPHER *EVP_camellia_256_cfb1(void); -const EVP_CIPHER *EVP_camellia_256_cfb8(void); -const EVP_CIPHER *EVP_camellia_256_cfb128(void); -# define EVP_camellia_256_cfb EVP_camellia_256_cfb128 -const EVP_CIPHER *EVP_camellia_256_ofb(void); -const EVP_CIPHER *EVP_camellia_256_ctr(void); -# endif -# ifndef OPENSSL_NO_CHACHA -const EVP_CIPHER *EVP_chacha20(void); -# ifndef OPENSSL_NO_POLY1305 -const EVP_CIPHER *EVP_chacha20_poly1305(void); -# endif -# endif - -# ifndef OPENSSL_NO_SEED -const EVP_CIPHER *EVP_seed_ecb(void); -const EVP_CIPHER *EVP_seed_cbc(void); -const EVP_CIPHER *EVP_seed_cfb128(void); -# define EVP_seed_cfb EVP_seed_cfb128 -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 \ - | OPENSSL_INIT_ADD_ALL_DIGESTS \ - | OPENSSL_INIT_LOAD_CONFIG, NULL) -# define OPENSSL_add_all_algorithms_noconf() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) - -# ifdef OPENSSL_LOAD_CONF -# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_conf() -# else -# define OpenSSL_add_all_algorithms() OPENSSL_add_all_algorithms_noconf() -# endif - -# define OpenSSL_add_all_ciphers() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS, NULL) -# define OpenSSL_add_all_digests() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) - -# define EVP_cleanup() while(0) continue -# endif - -int EVP_add_cipher(const EVP_CIPHER *cipher); -int EVP_add_digest(const EVP_MD *digest); - -const EVP_CIPHER *EVP_get_cipherbyname(const char *name); -const EVP_MD *EVP_get_digestbyname(const char *name); - -void EVP_CIPHER_do_all(void (*fn) (const EVP_CIPHER *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_CIPHER_do_all_sorted(void (*fn) - (const EVP_CIPHER *ciph, const char *from, - const char *to, void *x), void *arg); - -void EVP_MD_do_all(void (*fn) (const EVP_MD *ciph, - const char *from, const char *to, void *x), - void *arg); -void EVP_MD_do_all_sorted(void (*fn) - (const EVP_MD *ciph, const char *from, - const char *to, void *x), void *arg); - -int EVP_PKEY_decrypt_old(unsigned char *dec_key, - const unsigned char *enc_key, int enc_key_len, - EVP_PKEY *private_key); -int EVP_PKEY_encrypt_old(unsigned char *enc_key, - const unsigned char *key, int key_len, - EVP_PKEY *pub_key); -int EVP_PKEY_type(int type); -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(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; -int EVP_PKEY_set1_RSA(EVP_PKEY *pkey, struct rsa_st *key); -struct rsa_st *EVP_PKEY_get0_RSA(EVP_PKEY *pkey); -struct rsa_st *EVP_PKEY_get1_RSA(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_DSA -struct dsa_st; -int EVP_PKEY_set1_DSA(EVP_PKEY *pkey, struct dsa_st *key); -struct dsa_st *EVP_PKEY_get0_DSA(EVP_PKEY *pkey); -struct dsa_st *EVP_PKEY_get1_DSA(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_DH -struct dh_st; -int EVP_PKEY_set1_DH(EVP_PKEY *pkey, struct dh_st *key); -struct dh_st *EVP_PKEY_get0_DH(EVP_PKEY *pkey); -struct dh_st *EVP_PKEY_get1_DH(EVP_PKEY *pkey); -# endif -# ifndef OPENSSL_NO_EC -struct ec_key_st; -int EVP_PKEY_set1_EC_KEY(EVP_PKEY *pkey, struct ec_key_st *key); -struct ec_key_st *EVP_PKEY_get0_EC_KEY(EVP_PKEY *pkey); -struct ec_key_st *EVP_PKEY_get1_EC_KEY(EVP_PKEY *pkey); -# endif - -EVP_PKEY *EVP_PKEY_new(void); -int EVP_PKEY_up_ref(EVP_PKEY *pkey); -void EVP_PKEY_free(EVP_PKEY *pkey); - -EVP_PKEY *d2i_PublicKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PublicKey(EVP_PKEY *a, unsigned char **pp); - -EVP_PKEY *d2i_PrivateKey(int type, EVP_PKEY **a, const unsigned char **pp, - long length); -EVP_PKEY *d2i_AutoPrivateKey(EVP_PKEY **a, const unsigned char **pp, - long length); -int i2d_PrivateKey(EVP_PKEY *a, unsigned char **pp); - -int EVP_PKEY_copy_parameters(EVP_PKEY *to, const EVP_PKEY *from); -int EVP_PKEY_missing_parameters(const EVP_PKEY *pkey); -int EVP_PKEY_save_parameters(EVP_PKEY *pkey, int mode); -int EVP_PKEY_cmp_parameters(const EVP_PKEY *a, const EVP_PKEY *b); - -int EVP_PKEY_cmp(const EVP_PKEY *a, const EVP_PKEY *b); - -int EVP_PKEY_print_public(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_private(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); -int EVP_PKEY_print_params(BIO *out, const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx); - -int EVP_PKEY_get_default_digest_nid(EVP_PKEY *pkey, int *pnid); - -int EVP_PKEY_set1_tls_encodedpoint(EVP_PKEY *pkey, - const unsigned char *pt, size_t ptlen); -size_t EVP_PKEY_get1_tls_encodedpoint(EVP_PKEY *pkey, unsigned char **ppt); - -int EVP_CIPHER_type(const EVP_CIPHER *ctx); - -/* calls methods */ -int EVP_CIPHER_param_to_asn1(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_asn1_to_param(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* These are used by EVP_CIPHER methods */ -int EVP_CIPHER_set_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); -int EVP_CIPHER_get_asn1_iv(EVP_CIPHER_CTX *c, ASN1_TYPE *type); - -/* PKCS5 password based encryption */ -int PKCS5_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); -int PKCS5_PBKDF2_HMAC_SHA1(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - int keylen, unsigned char *out); -int PKCS5_PBKDF2_HMAC(const char *pass, int passlen, - const unsigned char *salt, int saltlen, int iter, - const EVP_MD *digest, int keylen, unsigned char *out); -int PKCS5_v2_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md, int en_de); - -#ifndef OPENSSL_NO_SCRYPT -int EVP_PBE_scrypt(const char *pass, size_t passlen, - const unsigned char *salt, size_t saltlen, - uint64_t N, uint64_t r, uint64_t p, uint64_t maxmem, - unsigned char *key, size_t keylen); - -int PKCS5_v2_scrypt_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, - int passlen, ASN1_TYPE *param, - const EVP_CIPHER *c, const EVP_MD *md, int en_de); -#endif - -void PKCS5_PBE_add(void); - -int EVP_PBE_CipherInit(ASN1_OBJECT *pbe_obj, const char *pass, int passlen, - ASN1_TYPE *param, EVP_CIPHER_CTX *ctx, int en_de); - -/* PBE type */ - -/* Can appear as the outermost AlgorithmIdentifier */ -# define EVP_PBE_TYPE_OUTER 0x0 -/* Is an PRF type OID */ -# define EVP_PBE_TYPE_PRF 0x1 -/* Is a PKCS#5 v2.0 KDF */ -# define EVP_PBE_TYPE_KDF 0x2 - -int EVP_PBE_alg_add_type(int pbe_type, int pbe_nid, int cipher_nid, - int md_nid, EVP_PBE_KEYGEN *keygen); -int EVP_PBE_alg_add(int nid, const EVP_CIPHER *cipher, const EVP_MD *md, - EVP_PBE_KEYGEN *keygen); -int EVP_PBE_find(int type, int pbe_nid, int *pcnid, int *pmnid, - EVP_PBE_KEYGEN **pkeygen); -void EVP_PBE_cleanup(void); -int EVP_PBE_get(int *ptype, int *ppbe_nid, size_t num); - -# define ASN1_PKEY_ALIAS 0x1 -# define ASN1_PKEY_DYNAMIC 0x2 -# define ASN1_PKEY_SIGPARAM_NULL 0x4 - -# define ASN1_PKEY_CTRL_PKCS7_SIGN 0x1 -# define ASN1_PKEY_CTRL_PKCS7_ENCRYPT 0x2 -# define ASN1_PKEY_CTRL_DEFAULT_MD_NID 0x3 -# define ASN1_PKEY_CTRL_CMS_SIGN 0x5 -# define ASN1_PKEY_CTRL_CMS_ENVELOPE 0x7 -# define ASN1_PKEY_CTRL_CMS_RI_TYPE 0x8 - -# define ASN1_PKEY_CTRL_SET1_TLS_ENCPT 0x9 -# define ASN1_PKEY_CTRL_GET1_TLS_ENCPT 0xa - -int EVP_PKEY_asn1_get_count(void); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_get0(int idx); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find(ENGINE **pe, int type); -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_find_str(ENGINE **pe, - const char *str, int len); -int EVP_PKEY_asn1_add0(const EVP_PKEY_ASN1_METHOD *ameth); -int EVP_PKEY_asn1_add_alias(int to, int from); -int EVP_PKEY_asn1_get0_info(int *ppkey_id, int *pkey_base_id, - int *ppkey_flags, const char **pinfo, - const char **ppem_str, - const EVP_PKEY_ASN1_METHOD *ameth); - -const EVP_PKEY_ASN1_METHOD *EVP_PKEY_get0_asn1(const EVP_PKEY *pkey); -EVP_PKEY_ASN1_METHOD *EVP_PKEY_asn1_new(int id, int flags, - const char *pem_str, - const char *info); -void EVP_PKEY_asn1_copy(EVP_PKEY_ASN1_METHOD *dst, - const EVP_PKEY_ASN1_METHOD *src); -void EVP_PKEY_asn1_free(EVP_PKEY_ASN1_METHOD *ameth); -void EVP_PKEY_asn1_set_public(EVP_PKEY_ASN1_METHOD *ameth, - int (*pub_decode) (EVP_PKEY *pk, - X509_PUBKEY *pub), - int (*pub_encode) (X509_PUBKEY *pub, - const EVP_PKEY *pk), - int (*pub_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*pub_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, ASN1_PCTX *pctx), - int (*pkey_size) (const EVP_PKEY *pk), - int (*pkey_bits) (const EVP_PKEY *pk)); -void EVP_PKEY_asn1_set_private(EVP_PKEY_ASN1_METHOD *ameth, - int (*priv_decode) (EVP_PKEY *pk, - const PKCS8_PRIV_KEY_INFO - *p8inf), - int (*priv_encode) (PKCS8_PRIV_KEY_INFO *p8, - const EVP_PKEY *pk), - int (*priv_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); -void EVP_PKEY_asn1_set_param(EVP_PKEY_ASN1_METHOD *ameth, - int (*param_decode) (EVP_PKEY *pkey, - const unsigned char **pder, - int derlen), - int (*param_encode) (const EVP_PKEY *pkey, - unsigned char **pder), - int (*param_missing) (const EVP_PKEY *pk), - int (*param_copy) (EVP_PKEY *to, - const EVP_PKEY *from), - int (*param_cmp) (const EVP_PKEY *a, - const EVP_PKEY *b), - int (*param_print) (BIO *out, - const EVP_PKEY *pkey, - int indent, - ASN1_PCTX *pctx)); - -void EVP_PKEY_asn1_set_free(EVP_PKEY_ASN1_METHOD *ameth, - void (*pkey_free) (EVP_PKEY *pkey)); -void EVP_PKEY_asn1_set_ctrl(EVP_PKEY_ASN1_METHOD *ameth, - int (*pkey_ctrl) (EVP_PKEY *pkey, int op, - long arg1, void *arg2)); -void EVP_PKEY_asn1_set_item(EVP_PKEY_ASN1_METHOD *ameth, - int (*item_verify) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - void *asn, - X509_ALGOR *a, - ASN1_BIT_STRING *sig, - EVP_PKEY *pkey), - int (*item_sign) (EVP_MD_CTX *ctx, - const ASN1_ITEM *it, - void *asn, - X509_ALGOR *alg1, - 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)); - -# define EVP_PKEY_OP_UNDEFINED 0 -# define EVP_PKEY_OP_PARAMGEN (1<<1) -# define EVP_PKEY_OP_KEYGEN (1<<2) -# define EVP_PKEY_OP_SIGN (1<<3) -# define EVP_PKEY_OP_VERIFY (1<<4) -# define EVP_PKEY_OP_VERIFYRECOVER (1<<5) -# define EVP_PKEY_OP_SIGNCTX (1<<6) -# define EVP_PKEY_OP_VERIFYCTX (1<<7) -# define EVP_PKEY_OP_ENCRYPT (1<<8) -# define EVP_PKEY_OP_DECRYPT (1<<9) -# define EVP_PKEY_OP_DERIVE (1<<10) - -# define EVP_PKEY_OP_TYPE_SIG \ - (EVP_PKEY_OP_SIGN | EVP_PKEY_OP_VERIFY | EVP_PKEY_OP_VERIFYRECOVER \ - | EVP_PKEY_OP_SIGNCTX | EVP_PKEY_OP_VERIFYCTX) - -# define EVP_PKEY_OP_TYPE_CRYPT \ - (EVP_PKEY_OP_ENCRYPT | EVP_PKEY_OP_DECRYPT) - -# define EVP_PKEY_OP_TYPE_NOGEN \ - (EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT | EVP_PKEY_OP_DERIVE) - -# define EVP_PKEY_OP_TYPE_GEN \ - (EVP_PKEY_OP_PARAMGEN | EVP_PKEY_OP_KEYGEN) - -# 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)) - -# 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)) - -# 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)) - -# define EVP_PKEY_CTRL_MD 1 -# define EVP_PKEY_CTRL_PEER_KEY 2 - -# define EVP_PKEY_CTRL_PKCS7_ENCRYPT 3 -# define EVP_PKEY_CTRL_PKCS7_DECRYPT 4 - -# define EVP_PKEY_CTRL_PKCS7_SIGN 5 - -# define EVP_PKEY_CTRL_SET_MAC_KEY 6 - -# define EVP_PKEY_CTRL_DIGESTINIT 7 - -/* Used by GOST key encryption in TLS */ -# define EVP_PKEY_CTRL_SET_IV 8 - -# define EVP_PKEY_CTRL_CMS_ENCRYPT 9 -# define EVP_PKEY_CTRL_CMS_DECRYPT 10 -# define EVP_PKEY_CTRL_CMS_SIGN 11 - -# define EVP_PKEY_CTRL_CIPHER 12 - -# 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 -/* - * Method handles all operations: don't assume any digest related defaults. - */ -# define EVP_PKEY_FLAG_SIGCTX_CUSTOM 4 - -const EVP_PKEY_METHOD *EVP_PKEY_meth_find(int type); -EVP_PKEY_METHOD *EVP_PKEY_meth_new(int id, int flags); -void EVP_PKEY_meth_get0_info(int *ppkey_id, int *pflags, - const EVP_PKEY_METHOD *meth); -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); -EVP_PKEY_CTX *EVP_PKEY_CTX_dup(EVP_PKEY_CTX *ctx); -void EVP_PKEY_CTX_free(EVP_PKEY_CTX *ctx); - -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); -EVP_PKEY *EVP_PKEY_CTX_get0_pkey(EVP_PKEY_CTX *ctx); - -EVP_PKEY *EVP_PKEY_CTX_get0_peerkey(EVP_PKEY_CTX *ctx); - -void EVP_PKEY_CTX_set_app_data(EVP_PKEY_CTX *ctx, void *data); -void *EVP_PKEY_CTX_get_app_data(EVP_PKEY_CTX *ctx); - -int EVP_PKEY_sign_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_sign(EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify(EVP_PKEY_CTX *ctx, - const unsigned char *sig, size_t siglen, - const unsigned char *tbs, size_t tbslen); -int EVP_PKEY_verify_recover_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_verify_recover(EVP_PKEY_CTX *ctx, - unsigned char *rout, size_t *routlen, - const unsigned char *sig, size_t siglen); -int EVP_PKEY_encrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_encrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); -int EVP_PKEY_decrypt_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_decrypt(EVP_PKEY_CTX *ctx, - unsigned char *out, size_t *outlen, - const unsigned char *in, size_t inlen); - -int EVP_PKEY_derive_init(EVP_PKEY_CTX *ctx); -int EVP_PKEY_derive_set_peer(EVP_PKEY_CTX *ctx, EVP_PKEY *peer); -int EVP_PKEY_derive(EVP_PKEY_CTX *ctx, unsigned char *key, size_t *keylen); - -typedef int EVP_PKEY_gen_cb(EVP_PKEY_CTX *ctx); - -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); - -int EVP_PKEY_CTX_get_keygen_info(EVP_PKEY_CTX *ctx, int idx); - -void EVP_PKEY_meth_set_init(EVP_PKEY_METHOD *pmeth, - int (*init) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_set_copy(EVP_PKEY_METHOD *pmeth, - int (*copy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_set_cleanup(EVP_PKEY_METHOD *pmeth, - void (*cleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_set_paramgen(EVP_PKEY_METHOD *pmeth, - int (*paramgen_init) (EVP_PKEY_CTX *ctx), - int (*paramgen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_keygen(EVP_PKEY_METHOD *pmeth, - int (*keygen_init) (EVP_PKEY_CTX *ctx), - int (*keygen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_set_sign(EVP_PKEY_METHOD *pmeth, - int (*sign_init) (EVP_PKEY_CTX *ctx), - int (*sign) (EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_verify(EVP_PKEY_METHOD *pmeth, - int (*verify_init) (EVP_PKEY_CTX *ctx), - int (*verify) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_verify_recover(EVP_PKEY_METHOD *pmeth, - int (*verify_recover_init) (EVP_PKEY_CTX - *ctx), - int (*verify_recover) (EVP_PKEY_CTX - *ctx, - unsigned char - *sig, - size_t *siglen, - const unsigned - char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_signctx(EVP_PKEY_METHOD *pmeth, - int (*signctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*signctx) (EVP_PKEY_CTX *ctx, - unsigned char *sig, - size_t *siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_set_verifyctx(EVP_PKEY_METHOD *pmeth, - int (*verifyctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (*verifyctx) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - int siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_set_encrypt(EVP_PKEY_METHOD *pmeth, - int (*encrypt_init) (EVP_PKEY_CTX *ctx), - int (*encryptfn) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_set_decrypt(EVP_PKEY_METHOD *pmeth, - int (*decrypt_init) (EVP_PKEY_CTX *ctx), - int (*decrypt) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_set_derive(EVP_PKEY_METHOD *pmeth, - int (*derive_init) (EVP_PKEY_CTX *ctx), - int (*derive) (EVP_PKEY_CTX *ctx, - unsigned char *key, - size_t *keylen)); - -void EVP_PKEY_meth_set_ctrl(EVP_PKEY_METHOD *pmeth, - int (*ctrl) (EVP_PKEY_CTX *ctx, int type, int p1, - void *p2), - int (*ctrl_str) (EVP_PKEY_CTX *ctx, - const char *type, - const char *value)); - -void EVP_PKEY_meth_set_digestsign(EVP_PKEY_METHOD *pmeth, - int (*digestsign) (EVP_MD_CTX *ctx, - unsigned char *sig, - size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_set_digestverify(EVP_PKEY_METHOD *pmeth, - int (*digestverify) (EVP_MD_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -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)); - -void EVP_PKEY_meth_get_copy(const EVP_PKEY_METHOD *pmeth, - int (**pcopy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_get_cleanup(const EVP_PKEY_METHOD *pmeth, - void (**pcleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_paramgen(const EVP_PKEY_METHOD *pmeth, - int (**pparamgen_init) (EVP_PKEY_CTX *ctx), - int (**pparamgen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_keygen(const EVP_PKEY_METHOD *pmeth, - int (**pkeygen_init) (EVP_PKEY_CTX *ctx), - int (**pkeygen) (EVP_PKEY_CTX *ctx, - EVP_PKEY *pkey)); - -void EVP_PKEY_meth_get_sign(const EVP_PKEY_METHOD *pmeth, - int (**psign_init) (EVP_PKEY_CTX *ctx), - int (**psign) (EVP_PKEY_CTX *ctx, - unsigned char *sig, size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_verify(const EVP_PKEY_METHOD *pmeth, - int (**pverify_init) (EVP_PKEY_CTX *ctx), - int (**pverify) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_verify_recover(const EVP_PKEY_METHOD *pmeth, - int (**pverify_recover_init) (EVP_PKEY_CTX - *ctx), - int (**pverify_recover) (EVP_PKEY_CTX - *ctx, - unsigned char - *sig, - size_t *siglen, - const unsigned - char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_signctx(const EVP_PKEY_METHOD *pmeth, - int (**psignctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (**psignctx) (EVP_PKEY_CTX *ctx, - unsigned char *sig, - size_t *siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_get_verifyctx(const EVP_PKEY_METHOD *pmeth, - int (**pverifyctx_init) (EVP_PKEY_CTX *ctx, - EVP_MD_CTX *mctx), - int (**pverifyctx) (EVP_PKEY_CTX *ctx, - const unsigned char *sig, - int siglen, - EVP_MD_CTX *mctx)); - -void EVP_PKEY_meth_get_encrypt(const EVP_PKEY_METHOD *pmeth, - int (**pencrypt_init) (EVP_PKEY_CTX *ctx), - int (**pencryptfn) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_get_decrypt(const EVP_PKEY_METHOD *pmeth, - int (**pdecrypt_init) (EVP_PKEY_CTX *ctx), - int (**pdecrypt) (EVP_PKEY_CTX *ctx, - unsigned char *out, - size_t *outlen, - const unsigned char *in, - size_t inlen)); - -void EVP_PKEY_meth_get_derive(const EVP_PKEY_METHOD *pmeth, - int (**pderive_init) (EVP_PKEY_CTX *ctx), - int (**pderive) (EVP_PKEY_CTX *ctx, - unsigned char *key, - size_t *keylen)); - -void EVP_PKEY_meth_get_ctrl(const EVP_PKEY_METHOD *pmeth, - int (**pctrl) (EVP_PKEY_CTX *ctx, int type, int p1, - void *p2), - int (**pctrl_str) (EVP_PKEY_CTX *ctx, - const char *type, - const char *value)); - -void EVP_PKEY_meth_get_digestsign(EVP_PKEY_METHOD *pmeth, - int (**digestsign) (EVP_MD_CTX *ctx, - unsigned char *sig, - size_t *siglen, - const unsigned char *tbs, - size_t tbslen)); - -void EVP_PKEY_meth_get_digestverify(EVP_PKEY_METHOD *pmeth, - int (**digestverify) (EVP_MD_CTX *ctx, - const unsigned char *sig, - size_t siglen, - const unsigned char *tbs, - size_t tbslen)); - -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); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/evperr.h b/openSSL/lin64/include/openssl/evperr.h deleted file mode 100644 index b4ea90a..0000000 --- a/openSSL/lin64/include/openssl/evperr.h +++ /dev/null @@ -1,204 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# include - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_EVP_strings(void); - -/* - * EVP function codes. - */ -# define EVP_F_AESNI_INIT_KEY 165 -# define EVP_F_AESNI_XTS_INIT_KEY 207 -# 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_T4_XTS_INIT_KEY 208 -# define EVP_F_AES_WRAP_CIPHER 170 -# define EVP_F_AES_XTS_INIT_KEY 209 -# 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_R_32_12_16_INIT_KEY 242 -# 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_BAD_KEY_LENGTH 195 -# 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_IV_LENGTH 194 -# 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_OUTPUT_WOULD_OVERFLOW 184 -# 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 -# define EVP_R_XTS_DUPLICATED_KEYS 183 - -#endif diff --git a/openSSL/lin64/include/openssl/hmac.h b/openSSL/lin64/include/openssl/hmac.h deleted file mode 100644 index 458efc1..0000000 --- a/openSSL/lin64/include/openssl/hmac.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * 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_HMAC_H -# define HEADER_HMAC_H - -# include - -# include - -# if OPENSSL_API_COMPAT < 0x10200000L -# define HMAC_MAX_MD_CBLOCK 128 /* Deprecated */ -# endif - -#ifdef __cplusplus -extern "C" { -#endif - -size_t HMAC_size(const HMAC_CTX *e); -HMAC_CTX *HMAC_CTX_new(void); -int HMAC_CTX_reset(HMAC_CTX *ctx); -void HMAC_CTX_free(HMAC_CTX *ctx); - -DEPRECATEDIN_1_1_0(__owur int HMAC_Init(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md)) - -/*__owur*/ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len, - const EVP_MD *md, ENGINE *impl); -/*__owur*/ int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, - size_t len); -/*__owur*/ int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, - unsigned int *len); -unsigned char *HMAC(const EVP_MD *evp_md, const void *key, int key_len, - const unsigned char *d, size_t n, unsigned char *md, - unsigned int *md_len); -__owur int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx); - -void HMAC_CTX_set_flags(HMAC_CTX *ctx, unsigned long flags); -const EVP_MD *HMAC_CTX_get_md(const HMAC_CTX *ctx); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin64/include/openssl/idea.h b/openSSL/lin64/include/openssl/idea.h deleted file mode 100644 index 4334f3e..0000000 --- a/openSSL/lin64/include/openssl/idea.h +++ /dev/null @@ -1,64 +0,0 @@ -/* - * Copyright 1995-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_IDEA_H -# define HEADER_IDEA_H - -# include - -# ifndef OPENSSL_NO_IDEA -# ifdef __cplusplus -extern "C" { -# endif - -typedef unsigned int IDEA_INT; - -# define IDEA_ENCRYPT 1 -# define IDEA_DECRYPT 0 - -# define IDEA_BLOCK 8 -# define IDEA_KEY_LENGTH 16 - -typedef struct idea_key_st { - IDEA_INT data[9][6]; -} IDEA_KEY_SCHEDULE; - -const char *IDEA_options(void); -void IDEA_ecb_encrypt(const unsigned char *in, unsigned char *out, - IDEA_KEY_SCHEDULE *ks); -void IDEA_set_encrypt_key(const unsigned char *key, IDEA_KEY_SCHEDULE *ks); -void IDEA_set_decrypt_key(IDEA_KEY_SCHEDULE *ek, IDEA_KEY_SCHEDULE *dk); -void IDEA_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int enc); -void IDEA_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int *num, int enc); -void IDEA_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, IDEA_KEY_SCHEDULE *ks, unsigned char *iv, - int *num); -void IDEA_encrypt(unsigned long *in, IDEA_KEY_SCHEDULE *ks); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define idea_options IDEA_options -# define idea_ecb_encrypt IDEA_ecb_encrypt -# define idea_set_encrypt_key IDEA_set_encrypt_key -# define idea_set_decrypt_key IDEA_set_decrypt_key -# define idea_cbc_encrypt IDEA_cbc_encrypt -# define idea_cfb64_encrypt IDEA_cfb64_encrypt -# define idea_ofb64_encrypt IDEA_ofb64_encrypt -# define idea_encrypt IDEA_encrypt -# endif - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/kdf.h b/openSSL/lin64/include/openssl/kdf.h deleted file mode 100644 index 5abd4c3..0000000 --- a/openSSL/lin64/include/openssl/kdf.h +++ /dev/null @@ -1,97 +0,0 @@ -/* - * 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_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_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)) - -# 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)) - -# 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)) - -# 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)) - -# 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)) - -# 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)) - -# 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)) - -# 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) - -# 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)) - -# 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)) - -# 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) - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/kdferr.h b/openSSL/lin64/include/openssl/kdferr.h deleted file mode 100644 index 3f51bd0..0000000 --- a/openSSL/lin64/include/openssl/kdferr.h +++ /dev/null @@ -1,55 +0,0 @@ -/* - * 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_KDFERR_H -# define HEADER_KDFERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/lhash.h b/openSSL/lin64/include/openssl/lhash.h deleted file mode 100644 index 2e42d72..0000000 --- a/openSSL/lin64/include/openssl/lhash.h +++ /dev/null @@ -1,241 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - */ - -/* - * Header for dynamic hash table routines Author - Eric Young - */ - -#ifndef HEADER_LHASH_H -# define HEADER_LHASH_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct lhash_node_st OPENSSL_LH_NODE; -typedef int (*OPENSSL_LH_COMPFUNC) (const void *, const void *); -typedef unsigned long (*OPENSSL_LH_HASHFUNC) (const void *); -typedef void (*OPENSSL_LH_DOALL_FUNC) (void *); -typedef void (*OPENSSL_LH_DOALL_FUNCARG) (void *, void *); -typedef struct lhash_st OPENSSL_LHASH; - -/* - * Macros for declaring and implementing type-safe wrappers for LHASH - * callbacks. This way, callbacks can be provided to LHASH structures without - * function pointer casting and the macro-defined callbacks provide - * per-variable casting before deferring to the underlying type-specific - * callbacks. NB: It is possible to place a "static" in front of both the - * DECLARE and IMPLEMENT macros if the functions are strictly internal. - */ - -/* First: "hash" functions */ -# define DECLARE_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *); -# define IMPLEMENT_LHASH_HASH_FN(name, o_type) \ - unsigned long name##_LHASH_HASH(const void *arg) { \ - const o_type *a = arg; \ - return name##_hash(a); } -# define LHASH_HASH_FN(name) name##_LHASH_HASH - -/* Second: "compare" functions */ -# define DECLARE_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *, const void *); -# define IMPLEMENT_LHASH_COMP_FN(name, o_type) \ - int name##_LHASH_COMP(const void *arg1, const void *arg2) { \ - const o_type *a = arg1; \ - const o_type *b = arg2; \ - return name##_cmp(a,b); } -# define LHASH_COMP_FN(name) name##_LHASH_COMP - -/* Fourth: "doall_arg" functions */ -# define DECLARE_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *, void *); -# define IMPLEMENT_LHASH_DOALL_ARG_FN(name, o_type, a_type) \ - void name##_LHASH_DOALL_ARG(void *arg1, void *arg2) { \ - o_type *a = arg1; \ - a_type *b = arg2; \ - name##_doall_arg(a, b); } -# define LHASH_DOALL_ARG_FN(name) name##_LHASH_DOALL_ARG - - -# define LH_LOAD_MULT 256 - -int OPENSSL_LH_error(OPENSSL_LHASH *lh); -OPENSSL_LHASH *OPENSSL_LH_new(OPENSSL_LH_HASHFUNC h, OPENSSL_LH_COMPFUNC c); -void OPENSSL_LH_free(OPENSSL_LHASH *lh); -void *OPENSSL_LH_insert(OPENSSL_LHASH *lh, void *data); -void *OPENSSL_LH_delete(OPENSSL_LHASH *lh, const void *data); -void *OPENSSL_LH_retrieve(OPENSSL_LHASH *lh, const void *data); -void OPENSSL_LH_doall(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNC func); -void OPENSSL_LH_doall_arg(OPENSSL_LHASH *lh, OPENSSL_LH_DOALL_FUNCARG func, void *arg); -unsigned long OPENSSL_LH_strhash(const char *c); -unsigned long OPENSSL_LH_num_items(const OPENSSL_LHASH *lh); -unsigned long OPENSSL_LH_get_down_load(const OPENSSL_LHASH *lh); -void OPENSSL_LH_set_down_load(OPENSSL_LHASH *lh, unsigned long down_load); - -# ifndef OPENSSL_NO_STDIO -void OPENSSL_LH_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_stats(const OPENSSL_LHASH *lh, FILE *fp); -void OPENSSL_LH_node_usage_stats(const OPENSSL_LHASH *lh, FILE *fp); -# endif -void OPENSSL_LH_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_stats_bio(const OPENSSL_LHASH *lh, BIO *out); -void OPENSSL_LH_node_usage_stats_bio(const OPENSSL_LHASH *lh, BIO *out); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define _LHASH OPENSSL_LHASH -# define LHASH_NODE OPENSSL_LH_NODE -# define lh_error OPENSSL_LH_error -# define lh_new OPENSSL_LH_new -# define lh_free OPENSSL_LH_free -# define lh_insert OPENSSL_LH_insert -# define lh_delete OPENSSL_LH_delete -# define lh_retrieve OPENSSL_LH_retrieve -# define lh_doall OPENSSL_LH_doall -# define lh_doall_arg OPENSSL_LH_doall_arg -# define lh_strhash OPENSSL_LH_strhash -# define lh_num_items OPENSSL_LH_num_items -# ifndef OPENSSL_NO_STDIO -# define lh_stats OPENSSL_LH_stats -# define lh_node_stats OPENSSL_LH_node_stats -# define lh_node_usage_stats OPENSSL_LH_node_usage_stats -# endif -# define lh_stats_bio OPENSSL_LH_stats_bio -# define lh_node_stats_bio OPENSSL_LH_node_stats_bio -# define lh_node_usage_stats_bio OPENSSL_LH_node_usage_stats_bio -# endif - -/* Type checking... */ - -# define LHASH_OF(type) struct lhash_st_##type - -# define DEFINE_LHASH_OF(type) \ - LHASH_OF(type) { union lh_##type##_dummy { void* d1; unsigned long d2; int d3; } dummy; }; \ - static ossl_unused ossl_inline LHASH_OF(type) *lh_##type##_new(unsigned long (*hfn)(const type *), \ - int (*cfn)(const type *, const type *)) \ - { \ - return (LHASH_OF(type) *) \ - OPENSSL_LH_new((OPENSSL_LH_HASHFUNC)hfn, (OPENSSL_LH_COMPFUNC)cfn); \ - } \ - static ossl_unused ossl_inline void lh_##type##_free(LHASH_OF(type) *lh) \ - { \ - OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ - } \ - 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_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_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_unused ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_error((OPENSSL_LHASH *)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_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_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_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_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_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_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); \ - } \ - LHASH_OF(type) - -#define IMPLEMENT_LHASH_DOALL_ARG_CONST(type, argtype) \ - int_implement_lhash_doall(type, argtype, const type) - -#define IMPLEMENT_LHASH_DOALL_ARG(type, argtype) \ - int_implement_lhash_doall(type, argtype, type) - -#define int_implement_lhash_doall(type, argtype, cbargtype) \ - static ossl_unused ossl_inline void \ - lh_##type##_doall_##argtype(LHASH_OF(type) *lh, \ - void (*fn)(cbargtype *, argtype *), \ - argtype *arg) \ - { \ - OPENSSL_LH_doall_arg((OPENSSL_LHASH *)lh, (OPENSSL_LH_DOALL_FUNCARG)fn, (void *)arg); \ - } \ - LHASH_OF(type) - -DEFINE_LHASH_OF(OPENSSL_STRING); -# ifdef _MSC_VER -/* - * push and pop this warning: - * warning C4090: 'function': different 'const' qualifiers - */ -# pragma warning (push) -# pragma warning (disable: 4090) -# endif - -DEFINE_LHASH_OF(OPENSSL_CSTRING); - -# ifdef _MSC_VER -# 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 - -#endif diff --git a/openSSL/lin64/include/openssl/md2.h b/openSSL/lin64/include/openssl/md2.h deleted file mode 100644 index 7faf8e3..0000000 --- a/openSSL/lin64/include/openssl/md2.h +++ /dev/null @@ -1,44 +0,0 @@ -/* - * Copyright 1995-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_MD2_H -# define HEADER_MD2_H - -# include - -# ifndef OPENSSL_NO_MD2 -# include -# ifdef __cplusplus -extern "C" { -# endif - -typedef unsigned char MD2_INT; - -# define MD2_DIGEST_LENGTH 16 -# define MD2_BLOCK 16 - -typedef struct MD2state_st { - unsigned int num; - unsigned char data[MD2_BLOCK]; - MD2_INT cksm[MD2_BLOCK]; - MD2_INT state[MD2_BLOCK]; -} MD2_CTX; - -const char *MD2_options(void); -int MD2_Init(MD2_CTX *c); -int MD2_Update(MD2_CTX *c, const unsigned char *data, size_t len); -int MD2_Final(unsigned char *md, MD2_CTX *c); -unsigned char *MD2(const unsigned char *d, size_t n, unsigned char *md); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/md4.h b/openSSL/lin64/include/openssl/md4.h deleted file mode 100644 index 940e29d..0000000 --- a/openSSL/lin64/include/openssl/md4.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 1995-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_MD4_H -# define HEADER_MD4_H - -# include - -# ifndef OPENSSL_NO_MD4 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD4_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define MD4_LONG unsigned int - -# define MD4_CBLOCK 64 -# define MD4_LBLOCK (MD4_CBLOCK/4) -# define MD4_DIGEST_LENGTH 16 - -typedef struct MD4state_st { - MD4_LONG A, B, C, D; - MD4_LONG Nl, Nh; - MD4_LONG data[MD4_LBLOCK]; - unsigned int num; -} MD4_CTX; - -int MD4_Init(MD4_CTX *c); -int MD4_Update(MD4_CTX *c, const void *data, size_t len); -int MD4_Final(unsigned char *md, MD4_CTX *c); -unsigned char *MD4(const unsigned char *d, size_t n, unsigned char *md); -void MD4_Transform(MD4_CTX *c, const unsigned char *b); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/md5.h b/openSSL/lin64/include/openssl/md5.h deleted file mode 100644 index 2deb772..0000000 --- a/openSSL/lin64/include/openssl/md5.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 1995-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_MD5_H -# define HEADER_MD5_H - -# include - -# ifndef OPENSSL_NO_MD5 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! MD5_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define MD5_LONG unsigned int - -# define MD5_CBLOCK 64 -# define MD5_LBLOCK (MD5_CBLOCK/4) -# define MD5_DIGEST_LENGTH 16 - -typedef struct MD5state_st { - MD5_LONG A, B, C, D; - MD5_LONG Nl, Nh; - MD5_LONG data[MD5_LBLOCK]; - unsigned int num; -} MD5_CTX; - -int MD5_Init(MD5_CTX *c); -int MD5_Update(MD5_CTX *c, const void *data, size_t len); -int MD5_Final(unsigned char *md, MD5_CTX *c); -unsigned char *MD5(const unsigned char *d, size_t n, unsigned char *md); -void MD5_Transform(MD5_CTX *c, const unsigned char *b); -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/mdc2.h b/openSSL/lin64/include/openssl/mdc2.h deleted file mode 100644 index aabd2bf..0000000 --- a/openSSL/lin64/include/openssl/mdc2.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * Copyright 1995-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_MDC2_H -# define HEADER_MDC2_H - -# include - -#ifndef OPENSSL_NO_MDC2 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define MDC2_BLOCK 8 -# define MDC2_DIGEST_LENGTH 16 - -typedef struct mdc2_ctx_st { - unsigned int num; - unsigned char data[MDC2_BLOCK]; - DES_cblock h, hh; - int pad_type; /* either 1 or 2, default 1 */ -} MDC2_CTX; - -int MDC2_Init(MDC2_CTX *c); -int MDC2_Update(MDC2_CTX *c, const unsigned char *data, size_t len); -int MDC2_Final(unsigned char *md, MDC2_CTX *c); -unsigned char *MDC2(const unsigned char *d, size_t n, unsigned char *md); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/modes.h b/openSSL/lin64/include/openssl/modes.h deleted file mode 100644 index d544f98..0000000 --- a/openSSL/lin64/include/openssl/modes.h +++ /dev/null @@ -1,208 +0,0 @@ -/* - * Copyright 2008-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_MODES_H -# define HEADER_MODES_H - -# include - -# ifdef __cplusplus -extern "C" { -# endif -typedef void (*block128_f) (const unsigned char in[16], - unsigned char out[16], const void *key); - -typedef void (*cbc128_f) (const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int enc); - -typedef void (*ctr128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16]); - -typedef void (*ccm128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - const unsigned char ivec[16], - unsigned char cmac[16]); - -void CRYPTO_cbc128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); -void CRYPTO_cbc128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], block128_f block); - -void CRYPTO_ctr128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], unsigned int *num, - block128_f block); - -void CRYPTO_ctr128_encrypt_ctr32(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], - unsigned char ecount_buf[16], - unsigned int *num, ctr128_f ctr); - -void CRYPTO_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - block128_f block); - -void CRYPTO_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_8_encrypt(const unsigned char *in, unsigned char *out, - size_t length, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); -void CRYPTO_cfb128_1_encrypt(const unsigned char *in, unsigned char *out, - size_t bits, const void *key, - unsigned char ivec[16], int *num, - int enc, block128_f block); - -size_t CRYPTO_cts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_cts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, unsigned char ivec[16], - block128_f block); -size_t CRYPTO_cts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -size_t CRYPTO_nistcts128_encrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); -size_t CRYPTO_nistcts128_decrypt_block(const unsigned char *in, - unsigned char *out, size_t len, - const void *key, - unsigned char ivec[16], - block128_f block); -size_t CRYPTO_nistcts128_decrypt(const unsigned char *in, unsigned char *out, - size_t len, const void *key, - unsigned char ivec[16], cbc128_f cbc); - -typedef struct gcm128_context GCM128_CONTEXT; - -GCM128_CONTEXT *CRYPTO_gcm128_new(void *key, block128_f block); -void CRYPTO_gcm128_init(GCM128_CONTEXT *ctx, void *key, block128_f block); -void CRYPTO_gcm128_setiv(GCM128_CONTEXT *ctx, const unsigned char *iv, - size_t len); -int CRYPTO_gcm128_aad(GCM128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_gcm128_encrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_decrypt(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len); -int CRYPTO_gcm128_encrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_decrypt_ctr32(GCM128_CONTEXT *ctx, - const unsigned char *in, unsigned char *out, - size_t len, ctr128_f stream); -int CRYPTO_gcm128_finish(GCM128_CONTEXT *ctx, const unsigned char *tag, - size_t len); -void CRYPTO_gcm128_tag(GCM128_CONTEXT *ctx, unsigned char *tag, size_t len); -void CRYPTO_gcm128_release(GCM128_CONTEXT *ctx); - -typedef struct ccm128_context CCM128_CONTEXT; - -void CRYPTO_ccm128_init(CCM128_CONTEXT *ctx, - unsigned int M, unsigned int L, void *key, - block128_f block); -int CRYPTO_ccm128_setiv(CCM128_CONTEXT *ctx, const unsigned char *nonce, - size_t nlen, size_t mlen); -void CRYPTO_ccm128_aad(CCM128_CONTEXT *ctx, const unsigned char *aad, - size_t alen); -int CRYPTO_ccm128_encrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_decrypt(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len); -int CRYPTO_ccm128_encrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -int CRYPTO_ccm128_decrypt_ccm64(CCM128_CONTEXT *ctx, const unsigned char *inp, - unsigned char *out, size_t len, - ccm128_f stream); -size_t CRYPTO_ccm128_tag(CCM128_CONTEXT *ctx, unsigned char *tag, size_t len); - -typedef struct xts128_context XTS128_CONTEXT; - -int CRYPTO_xts128_encrypt(const XTS128_CONTEXT *ctx, - const unsigned char iv[16], - const unsigned char *inp, unsigned char *out, - size_t len, int enc); - -size_t CRYPTO_128_wrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); - -size_t CRYPTO_128_unwrap(void *key, const unsigned char *iv, - unsigned char *out, - const unsigned char *in, size_t inlen, - block128_f block); -size_t CRYPTO_128_wrap_pad(void *key, const unsigned char *icv, - unsigned char *out, const unsigned char *in, - size_t inlen, block128_f block); -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 -typedef struct ocb128_context OCB128_CONTEXT; - -typedef void (*ocb128_f) (const unsigned char *in, unsigned char *out, - size_t blocks, const void *key, - size_t start_block_num, - unsigned char offset_i[16], - const unsigned char L_[][16], - unsigned char checksum[16]); - -OCB128_CONTEXT *CRYPTO_ocb128_new(void *keyenc, void *keydec, - block128_f encrypt, block128_f decrypt, - ocb128_f stream); -int CRYPTO_ocb128_init(OCB128_CONTEXT *ctx, void *keyenc, void *keydec, - block128_f encrypt, block128_f decrypt, - ocb128_f stream); -int CRYPTO_ocb128_copy_ctx(OCB128_CONTEXT *dest, OCB128_CONTEXT *src, - void *keyenc, void *keydec); -int CRYPTO_ocb128_setiv(OCB128_CONTEXT *ctx, const unsigned char *iv, - size_t len, size_t taglen); -int CRYPTO_ocb128_aad(OCB128_CONTEXT *ctx, const unsigned char *aad, - size_t len); -int CRYPTO_ocb128_encrypt(OCB128_CONTEXT *ctx, const unsigned char *in, - unsigned char *out, size_t len); -int CRYPTO_ocb128_decrypt(OCB128_CONTEXT *ctx, const unsigned char *in, - unsigned char *out, size_t len); -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 */ - -# ifdef __cplusplus -} -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/obj_mac.h b/openSSL/lin64/include/openssl/obj_mac.h deleted file mode 100644 index 53516a0..0000000 --- a/openSSL/lin64/include/openssl/obj_mac.h +++ /dev/null @@ -1,5198 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by crypto/objects/objects.pl - * - * Copyright 2000-2022 The OpenSSL Project Authors. All Rights Reserved. - * 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 SN_undef "UNDEF" -#define LN_undef "undefined" -#define NID_undef 0 -#define OBJ_undef 0L - -#define SN_itu_t "ITU-T" -#define LN_itu_t "itu-t" -#define NID_itu_t 645 -#define OBJ_itu_t 0L - -#define NID_ccitt 404 -#define OBJ_ccitt OBJ_itu_t - -#define SN_iso "ISO" -#define LN_iso "iso" -#define NID_iso 181 -#define OBJ_iso 1L - -#define SN_joint_iso_itu_t "JOINT-ISO-ITU-T" -#define LN_joint_iso_itu_t "joint-iso-itu-t" -#define NID_joint_iso_itu_t 646 -#define OBJ_joint_iso_itu_t 2L - -#define NID_joint_iso_ccitt 393 -#define OBJ_joint_iso_ccitt OBJ_joint_iso_itu_t - -#define SN_member_body "member-body" -#define LN_member_body "ISO Member Body" -#define NID_member_body 182 -#define OBJ_member_body OBJ_iso,2L - -#define SN_identified_organization "identified-organization" -#define NID_identified_organization 676 -#define OBJ_identified_organization OBJ_iso,3L - -#define SN_hmac_md5 "HMAC-MD5" -#define LN_hmac_md5 "hmac-md5" -#define NID_hmac_md5 780 -#define OBJ_hmac_md5 OBJ_identified_organization,6L,1L,5L,5L,8L,1L,1L - -#define SN_hmac_sha1 "HMAC-SHA1" -#define LN_hmac_sha1 "hmac-sha1" -#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 -#define OBJ_international_organizations OBJ_joint_iso_itu_t,23L - -#define SN_wap "wap" -#define NID_wap 678 -#define OBJ_wap OBJ_international_organizations,43L - -#define SN_wap_wsg "wap-wsg" -#define NID_wap_wsg 679 -#define OBJ_wap_wsg OBJ_wap,1L - -#define SN_selected_attribute_types "selected-attribute-types" -#define LN_selected_attribute_types "Selected Attribute Types" -#define NID_selected_attribute_types 394 -#define OBJ_selected_attribute_types OBJ_joint_iso_itu_t,5L,1L,5L - -#define SN_clearance "clearance" -#define NID_clearance 395 -#define OBJ_clearance OBJ_selected_attribute_types,55L - -#define SN_ISO_US "ISO-US" -#define LN_ISO_US "ISO US Member Body" -#define NID_ISO_US 183 -#define OBJ_ISO_US OBJ_member_body,840L - -#define SN_X9_57 "X9-57" -#define LN_X9_57 "X9.57" -#define NID_X9_57 184 -#define OBJ_X9_57 OBJ_ISO_US,10040L - -#define SN_X9cm "X9cm" -#define LN_X9cm "X9.57 CM ?" -#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 -#define OBJ_dsa OBJ_X9cm,1L - -#define SN_dsaWithSHA1 "DSA-SHA1" -#define LN_dsaWithSHA1 "dsaWithSHA1" -#define NID_dsaWithSHA1 113 -#define OBJ_dsaWithSHA1 OBJ_X9cm,3L - -#define SN_ansi_X9_62 "ansi-X9-62" -#define LN_ansi_X9_62 "ANSI X9.62" -#define NID_ansi_X9_62 405 -#define OBJ_ansi_X9_62 OBJ_ISO_US,10045L - -#define OBJ_X9_62_id_fieldType OBJ_ansi_X9_62,1L - -#define SN_X9_62_prime_field "prime-field" -#define NID_X9_62_prime_field 406 -#define OBJ_X9_62_prime_field OBJ_X9_62_id_fieldType,1L - -#define SN_X9_62_characteristic_two_field "characteristic-two-field" -#define NID_X9_62_characteristic_two_field 407 -#define OBJ_X9_62_characteristic_two_field OBJ_X9_62_id_fieldType,2L - -#define SN_X9_62_id_characteristic_two_basis "id-characteristic-two-basis" -#define NID_X9_62_id_characteristic_two_basis 680 -#define OBJ_X9_62_id_characteristic_two_basis OBJ_X9_62_characteristic_two_field,3L - -#define SN_X9_62_onBasis "onBasis" -#define NID_X9_62_onBasis 681 -#define OBJ_X9_62_onBasis OBJ_X9_62_id_characteristic_two_basis,1L - -#define SN_X9_62_tpBasis "tpBasis" -#define NID_X9_62_tpBasis 682 -#define OBJ_X9_62_tpBasis OBJ_X9_62_id_characteristic_two_basis,2L - -#define SN_X9_62_ppBasis "ppBasis" -#define NID_X9_62_ppBasis 683 -#define OBJ_X9_62_ppBasis OBJ_X9_62_id_characteristic_two_basis,3L - -#define OBJ_X9_62_id_publicKeyType OBJ_ansi_X9_62,2L - -#define SN_X9_62_id_ecPublicKey "id-ecPublicKey" -#define NID_X9_62_id_ecPublicKey 408 -#define OBJ_X9_62_id_ecPublicKey OBJ_X9_62_id_publicKeyType,1L - -#define OBJ_X9_62_ellipticCurve OBJ_ansi_X9_62,3L - -#define OBJ_X9_62_c_TwoCurve OBJ_X9_62_ellipticCurve,0L - -#define SN_X9_62_c2pnb163v1 "c2pnb163v1" -#define NID_X9_62_c2pnb163v1 684 -#define OBJ_X9_62_c2pnb163v1 OBJ_X9_62_c_TwoCurve,1L - -#define SN_X9_62_c2pnb163v2 "c2pnb163v2" -#define NID_X9_62_c2pnb163v2 685 -#define OBJ_X9_62_c2pnb163v2 OBJ_X9_62_c_TwoCurve,2L - -#define SN_X9_62_c2pnb163v3 "c2pnb163v3" -#define NID_X9_62_c2pnb163v3 686 -#define OBJ_X9_62_c2pnb163v3 OBJ_X9_62_c_TwoCurve,3L - -#define SN_X9_62_c2pnb176v1 "c2pnb176v1" -#define NID_X9_62_c2pnb176v1 687 -#define OBJ_X9_62_c2pnb176v1 OBJ_X9_62_c_TwoCurve,4L - -#define SN_X9_62_c2tnb191v1 "c2tnb191v1" -#define NID_X9_62_c2tnb191v1 688 -#define OBJ_X9_62_c2tnb191v1 OBJ_X9_62_c_TwoCurve,5L - -#define SN_X9_62_c2tnb191v2 "c2tnb191v2" -#define NID_X9_62_c2tnb191v2 689 -#define OBJ_X9_62_c2tnb191v2 OBJ_X9_62_c_TwoCurve,6L - -#define SN_X9_62_c2tnb191v3 "c2tnb191v3" -#define NID_X9_62_c2tnb191v3 690 -#define OBJ_X9_62_c2tnb191v3 OBJ_X9_62_c_TwoCurve,7L - -#define SN_X9_62_c2onb191v4 "c2onb191v4" -#define NID_X9_62_c2onb191v4 691 -#define OBJ_X9_62_c2onb191v4 OBJ_X9_62_c_TwoCurve,8L - -#define SN_X9_62_c2onb191v5 "c2onb191v5" -#define NID_X9_62_c2onb191v5 692 -#define OBJ_X9_62_c2onb191v5 OBJ_X9_62_c_TwoCurve,9L - -#define SN_X9_62_c2pnb208w1 "c2pnb208w1" -#define NID_X9_62_c2pnb208w1 693 -#define OBJ_X9_62_c2pnb208w1 OBJ_X9_62_c_TwoCurve,10L - -#define SN_X9_62_c2tnb239v1 "c2tnb239v1" -#define NID_X9_62_c2tnb239v1 694 -#define OBJ_X9_62_c2tnb239v1 OBJ_X9_62_c_TwoCurve,11L - -#define SN_X9_62_c2tnb239v2 "c2tnb239v2" -#define NID_X9_62_c2tnb239v2 695 -#define OBJ_X9_62_c2tnb239v2 OBJ_X9_62_c_TwoCurve,12L - -#define SN_X9_62_c2tnb239v3 "c2tnb239v3" -#define NID_X9_62_c2tnb239v3 696 -#define OBJ_X9_62_c2tnb239v3 OBJ_X9_62_c_TwoCurve,13L - -#define SN_X9_62_c2onb239v4 "c2onb239v4" -#define NID_X9_62_c2onb239v4 697 -#define OBJ_X9_62_c2onb239v4 OBJ_X9_62_c_TwoCurve,14L - -#define SN_X9_62_c2onb239v5 "c2onb239v5" -#define NID_X9_62_c2onb239v5 698 -#define OBJ_X9_62_c2onb239v5 OBJ_X9_62_c_TwoCurve,15L - -#define SN_X9_62_c2pnb272w1 "c2pnb272w1" -#define NID_X9_62_c2pnb272w1 699 -#define OBJ_X9_62_c2pnb272w1 OBJ_X9_62_c_TwoCurve,16L - -#define SN_X9_62_c2pnb304w1 "c2pnb304w1" -#define NID_X9_62_c2pnb304w1 700 -#define OBJ_X9_62_c2pnb304w1 OBJ_X9_62_c_TwoCurve,17L - -#define SN_X9_62_c2tnb359v1 "c2tnb359v1" -#define NID_X9_62_c2tnb359v1 701 -#define OBJ_X9_62_c2tnb359v1 OBJ_X9_62_c_TwoCurve,18L - -#define SN_X9_62_c2pnb368w1 "c2pnb368w1" -#define NID_X9_62_c2pnb368w1 702 -#define OBJ_X9_62_c2pnb368w1 OBJ_X9_62_c_TwoCurve,19L - -#define SN_X9_62_c2tnb431r1 "c2tnb431r1" -#define NID_X9_62_c2tnb431r1 703 -#define OBJ_X9_62_c2tnb431r1 OBJ_X9_62_c_TwoCurve,20L - -#define OBJ_X9_62_primeCurve OBJ_X9_62_ellipticCurve,1L - -#define SN_X9_62_prime192v1 "prime192v1" -#define NID_X9_62_prime192v1 409 -#define OBJ_X9_62_prime192v1 OBJ_X9_62_primeCurve,1L - -#define SN_X9_62_prime192v2 "prime192v2" -#define NID_X9_62_prime192v2 410 -#define OBJ_X9_62_prime192v2 OBJ_X9_62_primeCurve,2L - -#define SN_X9_62_prime192v3 "prime192v3" -#define NID_X9_62_prime192v3 411 -#define OBJ_X9_62_prime192v3 OBJ_X9_62_primeCurve,3L - -#define SN_X9_62_prime239v1 "prime239v1" -#define NID_X9_62_prime239v1 412 -#define OBJ_X9_62_prime239v1 OBJ_X9_62_primeCurve,4L - -#define SN_X9_62_prime239v2 "prime239v2" -#define NID_X9_62_prime239v2 413 -#define OBJ_X9_62_prime239v2 OBJ_X9_62_primeCurve,5L - -#define SN_X9_62_prime239v3 "prime239v3" -#define NID_X9_62_prime239v3 414 -#define OBJ_X9_62_prime239v3 OBJ_X9_62_primeCurve,6L - -#define SN_X9_62_prime256v1 "prime256v1" -#define NID_X9_62_prime256v1 415 -#define OBJ_X9_62_prime256v1 OBJ_X9_62_primeCurve,7L - -#define OBJ_X9_62_id_ecSigType OBJ_ansi_X9_62,4L - -#define SN_ecdsa_with_SHA1 "ecdsa-with-SHA1" -#define NID_ecdsa_with_SHA1 416 -#define OBJ_ecdsa_with_SHA1 OBJ_X9_62_id_ecSigType,1L - -#define SN_ecdsa_with_Recommended "ecdsa-with-Recommended" -#define NID_ecdsa_with_Recommended 791 -#define OBJ_ecdsa_with_Recommended OBJ_X9_62_id_ecSigType,2L - -#define SN_ecdsa_with_Specified "ecdsa-with-Specified" -#define NID_ecdsa_with_Specified 792 -#define OBJ_ecdsa_with_Specified OBJ_X9_62_id_ecSigType,3L - -#define SN_ecdsa_with_SHA224 "ecdsa-with-SHA224" -#define NID_ecdsa_with_SHA224 793 -#define OBJ_ecdsa_with_SHA224 OBJ_ecdsa_with_Specified,1L - -#define SN_ecdsa_with_SHA256 "ecdsa-with-SHA256" -#define NID_ecdsa_with_SHA256 794 -#define OBJ_ecdsa_with_SHA256 OBJ_ecdsa_with_Specified,2L - -#define SN_ecdsa_with_SHA384 "ecdsa-with-SHA384" -#define NID_ecdsa_with_SHA384 795 -#define OBJ_ecdsa_with_SHA384 OBJ_ecdsa_with_Specified,3L - -#define SN_ecdsa_with_SHA512 "ecdsa-with-SHA512" -#define NID_ecdsa_with_SHA512 796 -#define OBJ_ecdsa_with_SHA512 OBJ_ecdsa_with_Specified,4L - -#define OBJ_secg_ellipticCurve OBJ_certicom_arc,0L - -#define SN_secp112r1 "secp112r1" -#define NID_secp112r1 704 -#define OBJ_secp112r1 OBJ_secg_ellipticCurve,6L - -#define SN_secp112r2 "secp112r2" -#define NID_secp112r2 705 -#define OBJ_secp112r2 OBJ_secg_ellipticCurve,7L - -#define SN_secp128r1 "secp128r1" -#define NID_secp128r1 706 -#define OBJ_secp128r1 OBJ_secg_ellipticCurve,28L - -#define SN_secp128r2 "secp128r2" -#define NID_secp128r2 707 -#define OBJ_secp128r2 OBJ_secg_ellipticCurve,29L - -#define SN_secp160k1 "secp160k1" -#define NID_secp160k1 708 -#define OBJ_secp160k1 OBJ_secg_ellipticCurve,9L - -#define SN_secp160r1 "secp160r1" -#define NID_secp160r1 709 -#define OBJ_secp160r1 OBJ_secg_ellipticCurve,8L - -#define SN_secp160r2 "secp160r2" -#define NID_secp160r2 710 -#define OBJ_secp160r2 OBJ_secg_ellipticCurve,30L - -#define SN_secp192k1 "secp192k1" -#define NID_secp192k1 711 -#define OBJ_secp192k1 OBJ_secg_ellipticCurve,31L - -#define SN_secp224k1 "secp224k1" -#define NID_secp224k1 712 -#define OBJ_secp224k1 OBJ_secg_ellipticCurve,32L - -#define SN_secp224r1 "secp224r1" -#define NID_secp224r1 713 -#define OBJ_secp224r1 OBJ_secg_ellipticCurve,33L - -#define SN_secp256k1 "secp256k1" -#define NID_secp256k1 714 -#define OBJ_secp256k1 OBJ_secg_ellipticCurve,10L - -#define SN_secp384r1 "secp384r1" -#define NID_secp384r1 715 -#define OBJ_secp384r1 OBJ_secg_ellipticCurve,34L - -#define SN_secp521r1 "secp521r1" -#define NID_secp521r1 716 -#define OBJ_secp521r1 OBJ_secg_ellipticCurve,35L - -#define SN_sect113r1 "sect113r1" -#define NID_sect113r1 717 -#define OBJ_sect113r1 OBJ_secg_ellipticCurve,4L - -#define SN_sect113r2 "sect113r2" -#define NID_sect113r2 718 -#define OBJ_sect113r2 OBJ_secg_ellipticCurve,5L - -#define SN_sect131r1 "sect131r1" -#define NID_sect131r1 719 -#define OBJ_sect131r1 OBJ_secg_ellipticCurve,22L - -#define SN_sect131r2 "sect131r2" -#define NID_sect131r2 720 -#define OBJ_sect131r2 OBJ_secg_ellipticCurve,23L - -#define SN_sect163k1 "sect163k1" -#define NID_sect163k1 721 -#define OBJ_sect163k1 OBJ_secg_ellipticCurve,1L - -#define SN_sect163r1 "sect163r1" -#define NID_sect163r1 722 -#define OBJ_sect163r1 OBJ_secg_ellipticCurve,2L - -#define SN_sect163r2 "sect163r2" -#define NID_sect163r2 723 -#define OBJ_sect163r2 OBJ_secg_ellipticCurve,15L - -#define SN_sect193r1 "sect193r1" -#define NID_sect193r1 724 -#define OBJ_sect193r1 OBJ_secg_ellipticCurve,24L - -#define SN_sect193r2 "sect193r2" -#define NID_sect193r2 725 -#define OBJ_sect193r2 OBJ_secg_ellipticCurve,25L - -#define SN_sect233k1 "sect233k1" -#define NID_sect233k1 726 -#define OBJ_sect233k1 OBJ_secg_ellipticCurve,26L - -#define SN_sect233r1 "sect233r1" -#define NID_sect233r1 727 -#define OBJ_sect233r1 OBJ_secg_ellipticCurve,27L - -#define SN_sect239k1 "sect239k1" -#define NID_sect239k1 728 -#define OBJ_sect239k1 OBJ_secg_ellipticCurve,3L - -#define SN_sect283k1 "sect283k1" -#define NID_sect283k1 729 -#define OBJ_sect283k1 OBJ_secg_ellipticCurve,16L - -#define SN_sect283r1 "sect283r1" -#define NID_sect283r1 730 -#define OBJ_sect283r1 OBJ_secg_ellipticCurve,17L - -#define SN_sect409k1 "sect409k1" -#define NID_sect409k1 731 -#define OBJ_sect409k1 OBJ_secg_ellipticCurve,36L - -#define SN_sect409r1 "sect409r1" -#define NID_sect409r1 732 -#define OBJ_sect409r1 OBJ_secg_ellipticCurve,37L - -#define SN_sect571k1 "sect571k1" -#define NID_sect571k1 733 -#define OBJ_sect571k1 OBJ_secg_ellipticCurve,38L - -#define SN_sect571r1 "sect571r1" -#define NID_sect571r1 734 -#define OBJ_sect571r1 OBJ_secg_ellipticCurve,39L - -#define OBJ_wap_wsg_idm_ecid OBJ_wap_wsg,4L - -#define SN_wap_wsg_idm_ecid_wtls1 "wap-wsg-idm-ecid-wtls1" -#define NID_wap_wsg_idm_ecid_wtls1 735 -#define OBJ_wap_wsg_idm_ecid_wtls1 OBJ_wap_wsg_idm_ecid,1L - -#define SN_wap_wsg_idm_ecid_wtls3 "wap-wsg-idm-ecid-wtls3" -#define NID_wap_wsg_idm_ecid_wtls3 736 -#define OBJ_wap_wsg_idm_ecid_wtls3 OBJ_wap_wsg_idm_ecid,3L - -#define SN_wap_wsg_idm_ecid_wtls4 "wap-wsg-idm-ecid-wtls4" -#define NID_wap_wsg_idm_ecid_wtls4 737 -#define OBJ_wap_wsg_idm_ecid_wtls4 OBJ_wap_wsg_idm_ecid,4L - -#define SN_wap_wsg_idm_ecid_wtls5 "wap-wsg-idm-ecid-wtls5" -#define NID_wap_wsg_idm_ecid_wtls5 738 -#define OBJ_wap_wsg_idm_ecid_wtls5 OBJ_wap_wsg_idm_ecid,5L - -#define SN_wap_wsg_idm_ecid_wtls6 "wap-wsg-idm-ecid-wtls6" -#define NID_wap_wsg_idm_ecid_wtls6 739 -#define OBJ_wap_wsg_idm_ecid_wtls6 OBJ_wap_wsg_idm_ecid,6L - -#define SN_wap_wsg_idm_ecid_wtls7 "wap-wsg-idm-ecid-wtls7" -#define NID_wap_wsg_idm_ecid_wtls7 740 -#define OBJ_wap_wsg_idm_ecid_wtls7 OBJ_wap_wsg_idm_ecid,7L - -#define SN_wap_wsg_idm_ecid_wtls8 "wap-wsg-idm-ecid-wtls8" -#define NID_wap_wsg_idm_ecid_wtls8 741 -#define OBJ_wap_wsg_idm_ecid_wtls8 OBJ_wap_wsg_idm_ecid,8L - -#define SN_wap_wsg_idm_ecid_wtls9 "wap-wsg-idm-ecid-wtls9" -#define NID_wap_wsg_idm_ecid_wtls9 742 -#define OBJ_wap_wsg_idm_ecid_wtls9 OBJ_wap_wsg_idm_ecid,9L - -#define SN_wap_wsg_idm_ecid_wtls10 "wap-wsg-idm-ecid-wtls10" -#define NID_wap_wsg_idm_ecid_wtls10 743 -#define OBJ_wap_wsg_idm_ecid_wtls10 OBJ_wap_wsg_idm_ecid,10L - -#define SN_wap_wsg_idm_ecid_wtls11 "wap-wsg-idm-ecid-wtls11" -#define NID_wap_wsg_idm_ecid_wtls11 744 -#define OBJ_wap_wsg_idm_ecid_wtls11 OBJ_wap_wsg_idm_ecid,11L - -#define SN_wap_wsg_idm_ecid_wtls12 "wap-wsg-idm-ecid-wtls12" -#define NID_wap_wsg_idm_ecid_wtls12 745 -#define OBJ_wap_wsg_idm_ecid_wtls12 OBJ_wap_wsg_idm_ecid,12L - -#define SN_cast5_cbc "CAST5-CBC" -#define LN_cast5_cbc "cast5-cbc" -#define NID_cast5_cbc 108 -#define OBJ_cast5_cbc OBJ_ISO_US,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 OBJ_ISO_US,113533L,7L,66L,12L - -#define SN_id_PasswordBasedMAC "id-PasswordBasedMAC" -#define LN_id_PasswordBasedMAC "password based MAC" -#define NID_id_PasswordBasedMAC 782 -#define OBJ_id_PasswordBasedMAC OBJ_ISO_US,113533L,7L,66L,13L - -#define SN_id_DHBasedMac "id-DHBasedMac" -#define LN_id_DHBasedMac "Diffie-Hellman based MAC" -#define NID_id_DHBasedMac 783 -#define OBJ_id_DHBasedMac OBJ_ISO_US,113533L,7L,66L,30L - -#define SN_rsadsi "rsadsi" -#define LN_rsadsi "RSA Data Security, Inc." -#define NID_rsadsi 1 -#define OBJ_rsadsi OBJ_ISO_US,113549L - -#define SN_pkcs "pkcs" -#define LN_pkcs "RSA Data Security, Inc. PKCS" -#define NID_pkcs 2 -#define OBJ_pkcs OBJ_rsadsi,1L - -#define SN_pkcs1 "pkcs1" -#define NID_pkcs1 186 -#define OBJ_pkcs1 OBJ_pkcs,1L - -#define LN_rsaEncryption "rsaEncryption" -#define NID_rsaEncryption 6 -#define OBJ_rsaEncryption OBJ_pkcs1,1L - -#define SN_md2WithRSAEncryption "RSA-MD2" -#define LN_md2WithRSAEncryption "md2WithRSAEncryption" -#define NID_md2WithRSAEncryption 7 -#define OBJ_md2WithRSAEncryption OBJ_pkcs1,2L - -#define SN_md4WithRSAEncryption "RSA-MD4" -#define LN_md4WithRSAEncryption "md4WithRSAEncryption" -#define NID_md4WithRSAEncryption 396 -#define OBJ_md4WithRSAEncryption OBJ_pkcs1,3L - -#define SN_md5WithRSAEncryption "RSA-MD5" -#define LN_md5WithRSAEncryption "md5WithRSAEncryption" -#define NID_md5WithRSAEncryption 8 -#define OBJ_md5WithRSAEncryption OBJ_pkcs1,4L - -#define SN_sha1WithRSAEncryption "RSA-SHA1" -#define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -#define NID_sha1WithRSAEncryption 65 -#define OBJ_sha1WithRSAEncryption OBJ_pkcs1,5L - -#define SN_rsaesOaep "RSAES-OAEP" -#define LN_rsaesOaep "rsaesOaep" -#define NID_rsaesOaep 919 -#define OBJ_rsaesOaep OBJ_pkcs1,7L - -#define SN_mgf1 "MGF1" -#define LN_mgf1 "mgf1" -#define NID_mgf1 911 -#define OBJ_mgf1 OBJ_pkcs1,8L - -#define SN_pSpecified "PSPECIFIED" -#define LN_pSpecified "pSpecified" -#define NID_pSpecified 935 -#define OBJ_pSpecified OBJ_pkcs1,9L - -#define SN_rsassaPss "RSASSA-PSS" -#define LN_rsassaPss "rsassaPss" -#define NID_rsassaPss 912 -#define OBJ_rsassaPss OBJ_pkcs1,10L - -#define SN_sha256WithRSAEncryption "RSA-SHA256" -#define LN_sha256WithRSAEncryption "sha256WithRSAEncryption" -#define NID_sha256WithRSAEncryption 668 -#define OBJ_sha256WithRSAEncryption OBJ_pkcs1,11L - -#define SN_sha384WithRSAEncryption "RSA-SHA384" -#define LN_sha384WithRSAEncryption "sha384WithRSAEncryption" -#define NID_sha384WithRSAEncryption 669 -#define OBJ_sha384WithRSAEncryption OBJ_pkcs1,12L - -#define SN_sha512WithRSAEncryption "RSA-SHA512" -#define LN_sha512WithRSAEncryption "sha512WithRSAEncryption" -#define NID_sha512WithRSAEncryption 670 -#define OBJ_sha512WithRSAEncryption OBJ_pkcs1,13L - -#define SN_sha224WithRSAEncryption "RSA-SHA224" -#define LN_sha224WithRSAEncryption "sha224WithRSAEncryption" -#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 - -#define LN_dhKeyAgreement "dhKeyAgreement" -#define NID_dhKeyAgreement 28 -#define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -#define SN_pkcs5 "pkcs5" -#define NID_pkcs5 187 -#define OBJ_pkcs5 OBJ_pkcs,5L - -#define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -#define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -#define NID_pbeWithMD2AndDES_CBC 9 -#define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs5,1L - -#define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -#define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -#define NID_pbeWithMD5AndDES_CBC 10 -#define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs5,3L - -#define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -#define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -#define NID_pbeWithMD2AndRC2_CBC 168 -#define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs5,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_pkcs5,6L - -#define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -#define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -#define NID_pbeWithSHA1AndDES_CBC 170 -#define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs5,10L - -#define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -#define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -#define NID_pbeWithSHA1AndRC2_CBC 68 -#define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs5,11L - -#define LN_id_pbkdf2 "PBKDF2" -#define NID_id_pbkdf2 69 -#define OBJ_id_pbkdf2 OBJ_pkcs5,12L - -#define LN_pbes2 "PBES2" -#define NID_pbes2 161 -#define OBJ_pbes2 OBJ_pkcs5,13L - -#define LN_pbmac1 "PBMAC1" -#define NID_pbmac1 162 -#define OBJ_pbmac1 OBJ_pkcs5,14L - -#define SN_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 SN_pkcs9 "pkcs9" -#define NID_pkcs9 47 -#define OBJ_pkcs9 OBJ_pkcs,9L - -#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_ext_req "extReq" -#define LN_ext_req "Extension Request" -#define NID_ext_req 172 -#define OBJ_ext_req OBJ_pkcs9,14L - -#define SN_SMIMECapabilities "SMIME-CAPS" -#define LN_SMIMECapabilities "S/MIME Capabilities" -#define NID_SMIMECapabilities 167 -#define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -#define SN_SMIME "SMIME" -#define LN_SMIME "S/MIME" -#define NID_SMIME 188 -#define OBJ_SMIME OBJ_pkcs9,16L - -#define SN_id_smime_mod "id-smime-mod" -#define NID_id_smime_mod 189 -#define OBJ_id_smime_mod OBJ_SMIME,0L - -#define SN_id_smime_ct "id-smime-ct" -#define NID_id_smime_ct 190 -#define OBJ_id_smime_ct OBJ_SMIME,1L - -#define SN_id_smime_aa "id-smime-aa" -#define NID_id_smime_aa 191 -#define OBJ_id_smime_aa OBJ_SMIME,2L - -#define SN_id_smime_alg "id-smime-alg" -#define NID_id_smime_alg 192 -#define OBJ_id_smime_alg OBJ_SMIME,3L - -#define SN_id_smime_cd "id-smime-cd" -#define NID_id_smime_cd 193 -#define OBJ_id_smime_cd OBJ_SMIME,4L - -#define SN_id_smime_spq "id-smime-spq" -#define NID_id_smime_spq 194 -#define OBJ_id_smime_spq OBJ_SMIME,5L - -#define SN_id_smime_cti "id-smime-cti" -#define NID_id_smime_cti 195 -#define OBJ_id_smime_cti OBJ_SMIME,6L - -#define SN_id_smime_mod_cms "id-smime-mod-cms" -#define NID_id_smime_mod_cms 196 -#define OBJ_id_smime_mod_cms OBJ_id_smime_mod,1L - -#define SN_id_smime_mod_ess "id-smime-mod-ess" -#define NID_id_smime_mod_ess 197 -#define OBJ_id_smime_mod_ess OBJ_id_smime_mod,2L - -#define SN_id_smime_mod_oid "id-smime-mod-oid" -#define NID_id_smime_mod_oid 198 -#define OBJ_id_smime_mod_oid OBJ_id_smime_mod,3L - -#define SN_id_smime_mod_msg_v3 "id-smime-mod-msg-v3" -#define NID_id_smime_mod_msg_v3 199 -#define OBJ_id_smime_mod_msg_v3 OBJ_id_smime_mod,4L - -#define SN_id_smime_mod_ets_eSignature_88 "id-smime-mod-ets-eSignature-88" -#define NID_id_smime_mod_ets_eSignature_88 200 -#define OBJ_id_smime_mod_ets_eSignature_88 OBJ_id_smime_mod,5L - -#define SN_id_smime_mod_ets_eSignature_97 "id-smime-mod-ets-eSignature-97" -#define NID_id_smime_mod_ets_eSignature_97 201 -#define OBJ_id_smime_mod_ets_eSignature_97 OBJ_id_smime_mod,6L - -#define SN_id_smime_mod_ets_eSigPolicy_88 "id-smime-mod-ets-eSigPolicy-88" -#define NID_id_smime_mod_ets_eSigPolicy_88 202 -#define OBJ_id_smime_mod_ets_eSigPolicy_88 OBJ_id_smime_mod,7L - -#define SN_id_smime_mod_ets_eSigPolicy_97 "id-smime-mod-ets-eSigPolicy-97" -#define NID_id_smime_mod_ets_eSigPolicy_97 203 -#define OBJ_id_smime_mod_ets_eSigPolicy_97 OBJ_id_smime_mod,8L - -#define SN_id_smime_ct_receipt "id-smime-ct-receipt" -#define NID_id_smime_ct_receipt 204 -#define OBJ_id_smime_ct_receipt OBJ_id_smime_ct,1L - -#define SN_id_smime_ct_authData "id-smime-ct-authData" -#define NID_id_smime_ct_authData 205 -#define OBJ_id_smime_ct_authData OBJ_id_smime_ct,2L - -#define SN_id_smime_ct_publishCert "id-smime-ct-publishCert" -#define NID_id_smime_ct_publishCert 206 -#define OBJ_id_smime_ct_publishCert OBJ_id_smime_ct,3L - -#define SN_id_smime_ct_TSTInfo "id-smime-ct-TSTInfo" -#define NID_id_smime_ct_TSTInfo 207 -#define OBJ_id_smime_ct_TSTInfo OBJ_id_smime_ct,4L - -#define SN_id_smime_ct_TDTInfo "id-smime-ct-TDTInfo" -#define NID_id_smime_ct_TDTInfo 208 -#define OBJ_id_smime_ct_TDTInfo OBJ_id_smime_ct,5L - -#define SN_id_smime_ct_contentInfo "id-smime-ct-contentInfo" -#define NID_id_smime_ct_contentInfo 209 -#define OBJ_id_smime_ct_contentInfo OBJ_id_smime_ct,6L - -#define SN_id_smime_ct_DVCSRequestData "id-smime-ct-DVCSRequestData" -#define NID_id_smime_ct_DVCSRequestData 210 -#define OBJ_id_smime_ct_DVCSRequestData OBJ_id_smime_ct,7L - -#define SN_id_smime_ct_DVCSResponseData "id-smime-ct-DVCSResponseData" -#define NID_id_smime_ct_DVCSResponseData 211 -#define OBJ_id_smime_ct_DVCSResponseData OBJ_id_smime_ct,8L - -#define SN_id_smime_ct_compressedData "id-smime-ct-compressedData" -#define NID_id_smime_ct_compressedData 786 -#define OBJ_id_smime_ct_compressedData OBJ_id_smime_ct,9L - -#define SN_id_smime_ct_contentCollection "id-smime-ct-contentCollection" -#define NID_id_smime_ct_contentCollection 1058 -#define OBJ_id_smime_ct_contentCollection OBJ_id_smime_ct,19L - -#define SN_id_smime_ct_authEnvelopedData "id-smime-ct-authEnvelopedData" -#define NID_id_smime_ct_authEnvelopedData 1059 -#define OBJ_id_smime_ct_authEnvelopedData OBJ_id_smime_ct,23L - -#define SN_id_ct_asciiTextWithCRLF "id-ct-asciiTextWithCRLF" -#define NID_id_ct_asciiTextWithCRLF 787 -#define OBJ_id_ct_asciiTextWithCRLF OBJ_id_smime_ct,27L - -#define SN_id_ct_xml "id-ct-xml" -#define NID_id_ct_xml 1060 -#define OBJ_id_ct_xml OBJ_id_smime_ct,28L - -#define SN_id_smime_aa_receiptRequest "id-smime-aa-receiptRequest" -#define NID_id_smime_aa_receiptRequest 212 -#define OBJ_id_smime_aa_receiptRequest OBJ_id_smime_aa,1L - -#define SN_id_smime_aa_securityLabel "id-smime-aa-securityLabel" -#define NID_id_smime_aa_securityLabel 213 -#define OBJ_id_smime_aa_securityLabel OBJ_id_smime_aa,2L - -#define SN_id_smime_aa_mlExpandHistory "id-smime-aa-mlExpandHistory" -#define NID_id_smime_aa_mlExpandHistory 214 -#define OBJ_id_smime_aa_mlExpandHistory OBJ_id_smime_aa,3L - -#define SN_id_smime_aa_contentHint "id-smime-aa-contentHint" -#define NID_id_smime_aa_contentHint 215 -#define OBJ_id_smime_aa_contentHint OBJ_id_smime_aa,4L - -#define SN_id_smime_aa_msgSigDigest "id-smime-aa-msgSigDigest" -#define NID_id_smime_aa_msgSigDigest 216 -#define OBJ_id_smime_aa_msgSigDigest OBJ_id_smime_aa,5L - -#define SN_id_smime_aa_encapContentType "id-smime-aa-encapContentType" -#define NID_id_smime_aa_encapContentType 217 -#define OBJ_id_smime_aa_encapContentType OBJ_id_smime_aa,6L - -#define SN_id_smime_aa_contentIdentifier "id-smime-aa-contentIdentifier" -#define NID_id_smime_aa_contentIdentifier 218 -#define OBJ_id_smime_aa_contentIdentifier OBJ_id_smime_aa,7L - -#define SN_id_smime_aa_macValue "id-smime-aa-macValue" -#define NID_id_smime_aa_macValue 219 -#define OBJ_id_smime_aa_macValue OBJ_id_smime_aa,8L - -#define SN_id_smime_aa_equivalentLabels "id-smime-aa-equivalentLabels" -#define NID_id_smime_aa_equivalentLabels 220 -#define OBJ_id_smime_aa_equivalentLabels OBJ_id_smime_aa,9L - -#define SN_id_smime_aa_contentReference "id-smime-aa-contentReference" -#define NID_id_smime_aa_contentReference 221 -#define OBJ_id_smime_aa_contentReference OBJ_id_smime_aa,10L - -#define SN_id_smime_aa_encrypKeyPref "id-smime-aa-encrypKeyPref" -#define NID_id_smime_aa_encrypKeyPref 222 -#define OBJ_id_smime_aa_encrypKeyPref OBJ_id_smime_aa,11L - -#define SN_id_smime_aa_signingCertificate "id-smime-aa-signingCertificate" -#define NID_id_smime_aa_signingCertificate 223 -#define OBJ_id_smime_aa_signingCertificate OBJ_id_smime_aa,12L - -#define SN_id_smime_aa_smimeEncryptCerts "id-smime-aa-smimeEncryptCerts" -#define NID_id_smime_aa_smimeEncryptCerts 224 -#define OBJ_id_smime_aa_smimeEncryptCerts OBJ_id_smime_aa,13L - -#define SN_id_smime_aa_timeStampToken "id-smime-aa-timeStampToken" -#define NID_id_smime_aa_timeStampToken 225 -#define OBJ_id_smime_aa_timeStampToken OBJ_id_smime_aa,14L - -#define SN_id_smime_aa_ets_sigPolicyId "id-smime-aa-ets-sigPolicyId" -#define NID_id_smime_aa_ets_sigPolicyId 226 -#define OBJ_id_smime_aa_ets_sigPolicyId OBJ_id_smime_aa,15L - -#define SN_id_smime_aa_ets_commitmentType "id-smime-aa-ets-commitmentType" -#define NID_id_smime_aa_ets_commitmentType 227 -#define OBJ_id_smime_aa_ets_commitmentType OBJ_id_smime_aa,16L - -#define SN_id_smime_aa_ets_signerLocation "id-smime-aa-ets-signerLocation" -#define NID_id_smime_aa_ets_signerLocation 228 -#define OBJ_id_smime_aa_ets_signerLocation OBJ_id_smime_aa,17L - -#define SN_id_smime_aa_ets_signerAttr "id-smime-aa-ets-signerAttr" -#define NID_id_smime_aa_ets_signerAttr 229 -#define OBJ_id_smime_aa_ets_signerAttr OBJ_id_smime_aa,18L - -#define SN_id_smime_aa_ets_otherSigCert "id-smime-aa-ets-otherSigCert" -#define NID_id_smime_aa_ets_otherSigCert 230 -#define OBJ_id_smime_aa_ets_otherSigCert OBJ_id_smime_aa,19L - -#define SN_id_smime_aa_ets_contentTimestamp "id-smime-aa-ets-contentTimestamp" -#define NID_id_smime_aa_ets_contentTimestamp 231 -#define OBJ_id_smime_aa_ets_contentTimestamp OBJ_id_smime_aa,20L - -#define SN_id_smime_aa_ets_CertificateRefs "id-smime-aa-ets-CertificateRefs" -#define NID_id_smime_aa_ets_CertificateRefs 232 -#define OBJ_id_smime_aa_ets_CertificateRefs OBJ_id_smime_aa,21L - -#define SN_id_smime_aa_ets_RevocationRefs "id-smime-aa-ets-RevocationRefs" -#define NID_id_smime_aa_ets_RevocationRefs 233 -#define OBJ_id_smime_aa_ets_RevocationRefs OBJ_id_smime_aa,22L - -#define SN_id_smime_aa_ets_certValues "id-smime-aa-ets-certValues" -#define NID_id_smime_aa_ets_certValues 234 -#define OBJ_id_smime_aa_ets_certValues OBJ_id_smime_aa,23L - -#define SN_id_smime_aa_ets_revocationValues "id-smime-aa-ets-revocationValues" -#define NID_id_smime_aa_ets_revocationValues 235 -#define OBJ_id_smime_aa_ets_revocationValues OBJ_id_smime_aa,24L - -#define SN_id_smime_aa_ets_escTimeStamp "id-smime-aa-ets-escTimeStamp" -#define NID_id_smime_aa_ets_escTimeStamp 236 -#define OBJ_id_smime_aa_ets_escTimeStamp OBJ_id_smime_aa,25L - -#define SN_id_smime_aa_ets_certCRLTimestamp "id-smime-aa-ets-certCRLTimestamp" -#define NID_id_smime_aa_ets_certCRLTimestamp 237 -#define OBJ_id_smime_aa_ets_certCRLTimestamp OBJ_id_smime_aa,26L - -#define SN_id_smime_aa_ets_archiveTimeStamp "id-smime-aa-ets-archiveTimeStamp" -#define NID_id_smime_aa_ets_archiveTimeStamp 238 -#define OBJ_id_smime_aa_ets_archiveTimeStamp OBJ_id_smime_aa,27L - -#define SN_id_smime_aa_signatureType "id-smime-aa-signatureType" -#define NID_id_smime_aa_signatureType 239 -#define OBJ_id_smime_aa_signatureType OBJ_id_smime_aa,28L - -#define SN_id_smime_aa_dvcs_dvc "id-smime-aa-dvcs-dvc" -#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 - -#define SN_id_smime_alg_ESDHwithRC2 "id-smime-alg-ESDHwithRC2" -#define NID_id_smime_alg_ESDHwithRC2 242 -#define OBJ_id_smime_alg_ESDHwithRC2 OBJ_id_smime_alg,2L - -#define SN_id_smime_alg_3DESwrap "id-smime-alg-3DESwrap" -#define NID_id_smime_alg_3DESwrap 243 -#define OBJ_id_smime_alg_3DESwrap OBJ_id_smime_alg,3L - -#define SN_id_smime_alg_RC2wrap "id-smime-alg-RC2wrap" -#define NID_id_smime_alg_RC2wrap 244 -#define OBJ_id_smime_alg_RC2wrap OBJ_id_smime_alg,4L - -#define SN_id_smime_alg_ESDH "id-smime-alg-ESDH" -#define NID_id_smime_alg_ESDH 245 -#define OBJ_id_smime_alg_ESDH OBJ_id_smime_alg,5L - -#define SN_id_smime_alg_CMS3DESwrap "id-smime-alg-CMS3DESwrap" -#define NID_id_smime_alg_CMS3DESwrap 246 -#define OBJ_id_smime_alg_CMS3DESwrap OBJ_id_smime_alg,6L - -#define SN_id_smime_alg_CMSRC2wrap "id-smime-alg-CMSRC2wrap" -#define NID_id_smime_alg_CMSRC2wrap 247 -#define OBJ_id_smime_alg_CMSRC2wrap OBJ_id_smime_alg,7L - -#define SN_id_alg_PWRI_KEK "id-alg-PWRI-KEK" -#define NID_id_alg_PWRI_KEK 893 -#define OBJ_id_alg_PWRI_KEK OBJ_id_smime_alg,9L - -#define SN_id_smime_cd_ldap "id-smime-cd-ldap" -#define NID_id_smime_cd_ldap 248 -#define OBJ_id_smime_cd_ldap OBJ_id_smime_cd,1L - -#define SN_id_smime_spq_ets_sqt_uri "id-smime-spq-ets-sqt-uri" -#define NID_id_smime_spq_ets_sqt_uri 249 -#define OBJ_id_smime_spq_ets_sqt_uri OBJ_id_smime_spq,1L - -#define SN_id_smime_spq_ets_sqt_unotice "id-smime-spq-ets-sqt-unotice" -#define NID_id_smime_spq_ets_sqt_unotice 250 -#define OBJ_id_smime_spq_ets_sqt_unotice OBJ_id_smime_spq,2L - -#define SN_id_smime_cti_ets_proofOfOrigin "id-smime-cti-ets-proofOfOrigin" -#define NID_id_smime_cti_ets_proofOfOrigin 251 -#define OBJ_id_smime_cti_ets_proofOfOrigin OBJ_id_smime_cti,1L - -#define SN_id_smime_cti_ets_proofOfReceipt "id-smime-cti-ets-proofOfReceipt" -#define NID_id_smime_cti_ets_proofOfReceipt 252 -#define OBJ_id_smime_cti_ets_proofOfReceipt OBJ_id_smime_cti,2L - -#define SN_id_smime_cti_ets_proofOfDelivery "id-smime-cti-ets-proofOfDelivery" -#define NID_id_smime_cti_ets_proofOfDelivery 253 -#define OBJ_id_smime_cti_ets_proofOfDelivery OBJ_id_smime_cti,3L - -#define SN_id_smime_cti_ets_proofOfSender "id-smime-cti-ets-proofOfSender" -#define NID_id_smime_cti_ets_proofOfSender 254 -#define OBJ_id_smime_cti_ets_proofOfSender OBJ_id_smime_cti,4L - -#define SN_id_smime_cti_ets_proofOfApproval "id-smime-cti-ets-proofOfApproval" -#define NID_id_smime_cti_ets_proofOfApproval 255 -#define OBJ_id_smime_cti_ets_proofOfApproval OBJ_id_smime_cti,5L - -#define SN_id_smime_cti_ets_proofOfCreation "id-smime-cti-ets-proofOfCreation" -#define NID_id_smime_cti_ets_proofOfCreation 256 -#define OBJ_id_smime_cti_ets_proofOfCreation OBJ_id_smime_cti,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 SN_ms_csp_name "CSPName" -#define LN_ms_csp_name "Microsoft CSP Name" -#define NID_ms_csp_name 417 -#define OBJ_ms_csp_name 1L,3L,6L,1L,4L,1L,311L,17L,1L - -#define SN_LocalKeySet "LocalKeySet" -#define LN_LocalKeySet "Microsoft Local Key set" -#define NID_LocalKeySet 856 -#define OBJ_LocalKeySet 1L,3L,6L,1L,4L,1L,311L,17L,2L - -#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 - -#define OBJ_pkcs12 OBJ_pkcs,12L - -#define OBJ_pkcs12_pbeids OBJ_pkcs12,1L - -#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 SN_md2 "MD2" -#define LN_md2 "md2" -#define NID_md2 3 -#define OBJ_md2 OBJ_rsadsi,2L,2L - -#define SN_md4 "MD4" -#define LN_md4 "md4" -#define NID_md4 257 -#define OBJ_md4 OBJ_rsadsi,2L,4L - -#define SN_md5 "MD5" -#define LN_md5 "md5" -#define NID_md5 4 -#define OBJ_md5 OBJ_rsadsi,2L,5L - -#define SN_md5_sha1 "MD5-SHA1" -#define LN_md5_sha1 "md5-sha1" -#define NID_md5_sha1 114 - -#define LN_hmacWithMD5 "hmacWithMD5" -#define NID_hmacWithMD5 797 -#define OBJ_hmacWithMD5 OBJ_rsadsi,2L,6L - -#define LN_hmacWithSHA1 "hmacWithSHA1" -#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 - -#define LN_hmacWithSHA256 "hmacWithSHA256" -#define NID_hmacWithSHA256 799 -#define OBJ_hmacWithSHA256 OBJ_rsadsi,2L,9L - -#define LN_hmacWithSHA384 "hmacWithSHA384" -#define NID_hmacWithSHA384 800 -#define OBJ_hmacWithSHA384 OBJ_rsadsi,2L,10L - -#define LN_hmacWithSHA512 "hmacWithSHA512" -#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 -#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_rc2_40_cbc "RC2-40-CBC" -#define LN_rc2_40_cbc "rc2-40-cbc" -#define NID_rc2_40_cbc 98 - -#define SN_rc2_64_cbc "RC2-64-CBC" -#define LN_rc2_64_cbc "rc2-64-cbc" -#define NID_rc2_64_cbc 166 - -#define SN_rc4 "RC4" -#define LN_rc4 "rc4" -#define NID_rc4 5 -#define OBJ_rc4 OBJ_rsadsi,3L,4L - -#define SN_rc4_40 "RC4-40" -#define LN_rc4_40 "rc4-40" -#define NID_rc4_40 97 - -#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_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_ms_ext_req "msExtReq" -#define LN_ms_ext_req "Microsoft Extension Request" -#define NID_ms_ext_req 171 -#define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -#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 - -#define SN_ms_smartcard_login "msSmartcardLogin" -#define LN_ms_smartcard_login "Microsoft Smartcard Login" -#define NID_ms_smartcard_login 648 -#define OBJ_ms_smartcard_login 1L,3L,6L,1L,4L,1L,311L,20L,2L,2L - -#define SN_ms_upn "msUPN" -#define LN_ms_upn "Microsoft User Principal Name" -#define NID_ms_upn 649 -#define OBJ_ms_upn 1L,3L,6L,1L,4L,1L,311L,20L,2L,3L - -#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_ecb "IDEA-ECB" -#define LN_idea_ecb "idea-ecb" -#define NID_idea_ecb 36 - -#define SN_idea_cfb64 "IDEA-CFB" -#define LN_idea_cfb64 "idea-cfb" -#define NID_idea_cfb64 35 - -#define SN_idea_ofb64 "IDEA-OFB" -#define LN_idea_ofb64 "idea-ofb" -#define NID_idea_ofb64 46 - -#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_id_pkix "PKIX" -#define NID_id_pkix 127 -#define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -#define SN_id_pkix_mod "id-pkix-mod" -#define NID_id_pkix_mod 258 -#define OBJ_id_pkix_mod OBJ_id_pkix,0L - -#define SN_id_pe "id-pe" -#define NID_id_pe 175 -#define OBJ_id_pe OBJ_id_pkix,1L - -#define SN_id_qt "id-qt" -#define NID_id_qt 259 -#define OBJ_id_qt OBJ_id_pkix,2L - -#define SN_id_kp "id-kp" -#define NID_id_kp 128 -#define OBJ_id_kp OBJ_id_pkix,3L - -#define SN_id_it "id-it" -#define NID_id_it 260 -#define OBJ_id_it OBJ_id_pkix,4L - -#define SN_id_pkip "id-pkip" -#define NID_id_pkip 261 -#define OBJ_id_pkip OBJ_id_pkix,5L - -#define SN_id_alg "id-alg" -#define NID_id_alg 262 -#define OBJ_id_alg OBJ_id_pkix,6L - -#define SN_id_cmc "id-cmc" -#define NID_id_cmc 263 -#define OBJ_id_cmc OBJ_id_pkix,7L - -#define SN_id_on "id-on" -#define NID_id_on 264 -#define OBJ_id_on OBJ_id_pkix,8L - -#define SN_id_pda "id-pda" -#define NID_id_pda 265 -#define OBJ_id_pda OBJ_id_pkix,9L - -#define SN_id_aca "id-aca" -#define NID_id_aca 266 -#define OBJ_id_aca OBJ_id_pkix,10L - -#define SN_id_qcs "id-qcs" -#define NID_id_qcs 267 -#define OBJ_id_qcs OBJ_id_pkix,11L - -#define SN_id_cct "id-cct" -#define NID_id_cct 268 -#define OBJ_id_cct OBJ_id_pkix,12L - -#define SN_id_ppl "id-ppl" -#define NID_id_ppl 662 -#define OBJ_id_ppl OBJ_id_pkix,21L - -#define SN_id_ad "id-ad" -#define NID_id_ad 176 -#define OBJ_id_ad OBJ_id_pkix,48L - -#define SN_id_pkix1_explicit_88 "id-pkix1-explicit-88" -#define NID_id_pkix1_explicit_88 269 -#define OBJ_id_pkix1_explicit_88 OBJ_id_pkix_mod,1L - -#define SN_id_pkix1_implicit_88 "id-pkix1-implicit-88" -#define NID_id_pkix1_implicit_88 270 -#define OBJ_id_pkix1_implicit_88 OBJ_id_pkix_mod,2L - -#define SN_id_pkix1_explicit_93 "id-pkix1-explicit-93" -#define NID_id_pkix1_explicit_93 271 -#define OBJ_id_pkix1_explicit_93 OBJ_id_pkix_mod,3L - -#define SN_id_pkix1_implicit_93 "id-pkix1-implicit-93" -#define NID_id_pkix1_implicit_93 272 -#define OBJ_id_pkix1_implicit_93 OBJ_id_pkix_mod,4L - -#define SN_id_mod_crmf "id-mod-crmf" -#define NID_id_mod_crmf 273 -#define OBJ_id_mod_crmf OBJ_id_pkix_mod,5L - -#define SN_id_mod_cmc "id-mod-cmc" -#define NID_id_mod_cmc 274 -#define OBJ_id_mod_cmc OBJ_id_pkix_mod,6L - -#define SN_id_mod_kea_profile_88 "id-mod-kea-profile-88" -#define NID_id_mod_kea_profile_88 275 -#define OBJ_id_mod_kea_profile_88 OBJ_id_pkix_mod,7L - -#define SN_id_mod_kea_profile_93 "id-mod-kea-profile-93" -#define NID_id_mod_kea_profile_93 276 -#define OBJ_id_mod_kea_profile_93 OBJ_id_pkix_mod,8L - -#define SN_id_mod_cmp "id-mod-cmp" -#define NID_id_mod_cmp 277 -#define OBJ_id_mod_cmp OBJ_id_pkix_mod,9L - -#define SN_id_mod_qualified_cert_88 "id-mod-qualified-cert-88" -#define NID_id_mod_qualified_cert_88 278 -#define OBJ_id_mod_qualified_cert_88 OBJ_id_pkix_mod,10L - -#define SN_id_mod_qualified_cert_93 "id-mod-qualified-cert-93" -#define NID_id_mod_qualified_cert_93 279 -#define OBJ_id_mod_qualified_cert_93 OBJ_id_pkix_mod,11L - -#define SN_id_mod_attribute_cert "id-mod-attribute-cert" -#define NID_id_mod_attribute_cert 280 -#define OBJ_id_mod_attribute_cert OBJ_id_pkix_mod,12L - -#define SN_id_mod_timestamp_protocol "id-mod-timestamp-protocol" -#define NID_id_mod_timestamp_protocol 281 -#define OBJ_id_mod_timestamp_protocol OBJ_id_pkix_mod,13L - -#define SN_id_mod_ocsp "id-mod-ocsp" -#define NID_id_mod_ocsp 282 -#define OBJ_id_mod_ocsp OBJ_id_pkix_mod,14L - -#define SN_id_mod_dvcs "id-mod-dvcs" -#define NID_id_mod_dvcs 283 -#define OBJ_id_mod_dvcs OBJ_id_pkix_mod,15L - -#define SN_id_mod_cmp2000 "id-mod-cmp2000" -#define NID_id_mod_cmp2000 284 -#define OBJ_id_mod_cmp2000 OBJ_id_pkix_mod,16L - -#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_biometricInfo "biometricInfo" -#define LN_biometricInfo "Biometric Info" -#define NID_biometricInfo 285 -#define OBJ_biometricInfo OBJ_id_pe,2L - -#define SN_qcStatements "qcStatements" -#define NID_qcStatements 286 -#define OBJ_qcStatements OBJ_id_pe,3L - -#define SN_ac_auditEntity "ac-auditEntity" -#define NID_ac_auditEntity 287 -#define OBJ_ac_auditEntity OBJ_id_pe,4L - -#define SN_ac_targeting "ac-targeting" -#define NID_ac_targeting 288 -#define OBJ_ac_targeting OBJ_id_pe,5L - -#define SN_aaControls "aaControls" -#define NID_aaControls 289 -#define OBJ_aaControls OBJ_id_pe,6L - -#define SN_sbgp_ipAddrBlock "sbgp-ipAddrBlock" -#define NID_sbgp_ipAddrBlock 290 -#define OBJ_sbgp_ipAddrBlock OBJ_id_pe,7L - -#define SN_sbgp_autonomousSysNum "sbgp-autonomousSysNum" -#define NID_sbgp_autonomousSysNum 291 -#define OBJ_sbgp_autonomousSysNum OBJ_id_pe,8L - -#define SN_sbgp_routerIdentifier "sbgp-routerIdentifier" -#define NID_sbgp_routerIdentifier 292 -#define OBJ_sbgp_routerIdentifier OBJ_id_pe,9L - -#define SN_ac_proxying "ac-proxying" -#define NID_ac_proxying 397 -#define OBJ_ac_proxying OBJ_id_pe,10L - -#define SN_sinfo_access "subjectInfoAccess" -#define LN_sinfo_access "Subject Information Access" -#define NID_sinfo_access 398 -#define OBJ_sinfo_access OBJ_id_pe,11L - -#define SN_proxyCertInfo "proxyCertInfo" -#define LN_proxyCertInfo "Proxy Certificate Information" -#define NID_proxyCertInfo 663 -#define OBJ_proxyCertInfo OBJ_id_pe,14L - -#define SN_tlsfeature "tlsfeature" -#define LN_tlsfeature "TLS Feature" -#define NID_tlsfeature 1020 -#define OBJ_tlsfeature OBJ_id_pe,24L - -#define SN_id_qt_cps "id-qt-cps" -#define LN_id_qt_cps "Policy Qualifier CPS" -#define NID_id_qt_cps 164 -#define OBJ_id_qt_cps OBJ_id_qt,1L - -#define SN_id_qt_unotice "id-qt-unotice" -#define LN_id_qt_unotice "Policy Qualifier User Notice" -#define NID_id_qt_unotice 165 -#define OBJ_id_qt_unotice OBJ_id_qt,2L - -#define SN_textNotice "textNotice" -#define NID_textNotice 293 -#define OBJ_textNotice OBJ_id_qt,3L - -#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_ipsecEndSystem "ipsecEndSystem" -#define LN_ipsecEndSystem "IPSec End System" -#define NID_ipsecEndSystem 294 -#define OBJ_ipsecEndSystem OBJ_id_kp,5L - -#define SN_ipsecTunnel "ipsecTunnel" -#define LN_ipsecTunnel "IPSec Tunnel" -#define NID_ipsecTunnel 295 -#define OBJ_ipsecTunnel OBJ_id_kp,6L - -#define SN_ipsecUser "ipsecUser" -#define LN_ipsecUser "IPSec User" -#define NID_ipsecUser 296 -#define OBJ_ipsecUser OBJ_id_kp,7L - -#define SN_time_stamp "timeStamping" -#define LN_time_stamp "Time Stamping" -#define NID_time_stamp 133 -#define OBJ_time_stamp OBJ_id_kp,8L - -#define SN_OCSP_sign "OCSPSigning" -#define LN_OCSP_sign "OCSP Signing" -#define NID_OCSP_sign 180 -#define OBJ_OCSP_sign OBJ_id_kp,9L - -#define SN_dvcs "DVCS" -#define LN_dvcs "dvcs" -#define NID_dvcs 297 -#define OBJ_dvcs OBJ_id_kp,10L - -#define SN_ipsec_IKE "ipsecIKE" -#define LN_ipsec_IKE "ipsec Internet Key Exchange" -#define NID_ipsec_IKE 1022 -#define OBJ_ipsec_IKE OBJ_id_kp,17L - -#define SN_capwapAC "capwapAC" -#define LN_capwapAC "Ctrl/provision WAP Access" -#define NID_capwapAC 1023 -#define OBJ_capwapAC OBJ_id_kp,18L - -#define SN_capwapWTP "capwapWTP" -#define LN_capwapWTP "Ctrl/Provision WAP Termination" -#define NID_capwapWTP 1024 -#define OBJ_capwapWTP OBJ_id_kp,19L - -#define SN_sshClient "secureShellClient" -#define LN_sshClient "SSH Client" -#define NID_sshClient 1025 -#define OBJ_sshClient OBJ_id_kp,21L - -#define SN_sshServer "secureShellServer" -#define LN_sshServer "SSH Server" -#define NID_sshServer 1026 -#define OBJ_sshServer OBJ_id_kp,22L - -#define SN_sendRouter "sendRouter" -#define LN_sendRouter "Send Router" -#define NID_sendRouter 1027 -#define OBJ_sendRouter OBJ_id_kp,23L - -#define SN_sendProxiedRouter "sendProxiedRouter" -#define LN_sendProxiedRouter "Send Proxied Router" -#define NID_sendProxiedRouter 1028 -#define OBJ_sendProxiedRouter OBJ_id_kp,24L - -#define SN_sendOwner "sendOwner" -#define LN_sendOwner "Send Owner" -#define NID_sendOwner 1029 -#define OBJ_sendOwner OBJ_id_kp,25L - -#define SN_sendProxiedOwner "sendProxiedOwner" -#define LN_sendProxiedOwner "Send Proxied Owner" -#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 - -#define SN_id_it_signKeyPairTypes "id-it-signKeyPairTypes" -#define NID_id_it_signKeyPairTypes 299 -#define OBJ_id_it_signKeyPairTypes OBJ_id_it,2L - -#define SN_id_it_encKeyPairTypes "id-it-encKeyPairTypes" -#define NID_id_it_encKeyPairTypes 300 -#define OBJ_id_it_encKeyPairTypes OBJ_id_it,3L - -#define SN_id_it_preferredSymmAlg "id-it-preferredSymmAlg" -#define NID_id_it_preferredSymmAlg 301 -#define OBJ_id_it_preferredSymmAlg OBJ_id_it,4L - -#define SN_id_it_caKeyUpdateInfo "id-it-caKeyUpdateInfo" -#define NID_id_it_caKeyUpdateInfo 302 -#define OBJ_id_it_caKeyUpdateInfo OBJ_id_it,5L - -#define SN_id_it_currentCRL "id-it-currentCRL" -#define NID_id_it_currentCRL 303 -#define OBJ_id_it_currentCRL OBJ_id_it,6L - -#define SN_id_it_unsupportedOIDs "id-it-unsupportedOIDs" -#define NID_id_it_unsupportedOIDs 304 -#define OBJ_id_it_unsupportedOIDs OBJ_id_it,7L - -#define SN_id_it_subscriptionRequest "id-it-subscriptionRequest" -#define NID_id_it_subscriptionRequest 305 -#define OBJ_id_it_subscriptionRequest OBJ_id_it,8L - -#define SN_id_it_subscriptionResponse "id-it-subscriptionResponse" -#define NID_id_it_subscriptionResponse 306 -#define OBJ_id_it_subscriptionResponse OBJ_id_it,9L - -#define SN_id_it_keyPairParamReq "id-it-keyPairParamReq" -#define NID_id_it_keyPairParamReq 307 -#define OBJ_id_it_keyPairParamReq OBJ_id_it,10L - -#define SN_id_it_keyPairParamRep "id-it-keyPairParamRep" -#define NID_id_it_keyPairParamRep 308 -#define OBJ_id_it_keyPairParamRep OBJ_id_it,11L - -#define SN_id_it_revPassphrase "id-it-revPassphrase" -#define NID_id_it_revPassphrase 309 -#define OBJ_id_it_revPassphrase OBJ_id_it,12L - -#define SN_id_it_implicitConfirm "id-it-implicitConfirm" -#define NID_id_it_implicitConfirm 310 -#define OBJ_id_it_implicitConfirm OBJ_id_it,13L - -#define SN_id_it_confirmWaitTime "id-it-confirmWaitTime" -#define NID_id_it_confirmWaitTime 311 -#define OBJ_id_it_confirmWaitTime OBJ_id_it,14L - -#define SN_id_it_origPKIMessage "id-it-origPKIMessage" -#define NID_id_it_origPKIMessage 312 -#define OBJ_id_it_origPKIMessage OBJ_id_it,15L - -#define SN_id_it_suppLangTags "id-it-suppLangTags" -#define NID_id_it_suppLangTags 784 -#define OBJ_id_it_suppLangTags OBJ_id_it,16L - -#define SN_id_regCtrl "id-regCtrl" -#define NID_id_regCtrl 313 -#define OBJ_id_regCtrl OBJ_id_pkip,1L - -#define SN_id_regInfo "id-regInfo" -#define NID_id_regInfo 314 -#define OBJ_id_regInfo OBJ_id_pkip,2L - -#define SN_id_regCtrl_regToken "id-regCtrl-regToken" -#define NID_id_regCtrl_regToken 315 -#define OBJ_id_regCtrl_regToken OBJ_id_regCtrl,1L - -#define SN_id_regCtrl_authenticator "id-regCtrl-authenticator" -#define NID_id_regCtrl_authenticator 316 -#define OBJ_id_regCtrl_authenticator OBJ_id_regCtrl,2L - -#define SN_id_regCtrl_pkiPublicationInfo "id-regCtrl-pkiPublicationInfo" -#define NID_id_regCtrl_pkiPublicationInfo 317 -#define OBJ_id_regCtrl_pkiPublicationInfo OBJ_id_regCtrl,3L - -#define SN_id_regCtrl_pkiArchiveOptions "id-regCtrl-pkiArchiveOptions" -#define NID_id_regCtrl_pkiArchiveOptions 318 -#define OBJ_id_regCtrl_pkiArchiveOptions OBJ_id_regCtrl,4L - -#define SN_id_regCtrl_oldCertID "id-regCtrl-oldCertID" -#define NID_id_regCtrl_oldCertID 319 -#define OBJ_id_regCtrl_oldCertID OBJ_id_regCtrl,5L - -#define SN_id_regCtrl_protocolEncrKey "id-regCtrl-protocolEncrKey" -#define NID_id_regCtrl_protocolEncrKey 320 -#define OBJ_id_regCtrl_protocolEncrKey OBJ_id_regCtrl,6L - -#define SN_id_regInfo_utf8Pairs "id-regInfo-utf8Pairs" -#define NID_id_regInfo_utf8Pairs 321 -#define OBJ_id_regInfo_utf8Pairs OBJ_id_regInfo,1L - -#define SN_id_regInfo_certReq "id-regInfo-certReq" -#define NID_id_regInfo_certReq 322 -#define OBJ_id_regInfo_certReq OBJ_id_regInfo,2L - -#define SN_id_alg_des40 "id-alg-des40" -#define NID_id_alg_des40 323 -#define OBJ_id_alg_des40 OBJ_id_alg,1L - -#define SN_id_alg_noSignature "id-alg-noSignature" -#define NID_id_alg_noSignature 324 -#define OBJ_id_alg_noSignature OBJ_id_alg,2L - -#define SN_id_alg_dh_sig_hmac_sha1 "id-alg-dh-sig-hmac-sha1" -#define NID_id_alg_dh_sig_hmac_sha1 325 -#define OBJ_id_alg_dh_sig_hmac_sha1 OBJ_id_alg,3L - -#define SN_id_alg_dh_pop "id-alg-dh-pop" -#define NID_id_alg_dh_pop 326 -#define OBJ_id_alg_dh_pop OBJ_id_alg,4L - -#define SN_id_cmc_statusInfo "id-cmc-statusInfo" -#define NID_id_cmc_statusInfo 327 -#define OBJ_id_cmc_statusInfo OBJ_id_cmc,1L - -#define SN_id_cmc_identification "id-cmc-identification" -#define NID_id_cmc_identification 328 -#define OBJ_id_cmc_identification OBJ_id_cmc,2L - -#define SN_id_cmc_identityProof "id-cmc-identityProof" -#define NID_id_cmc_identityProof 329 -#define OBJ_id_cmc_identityProof OBJ_id_cmc,3L - -#define SN_id_cmc_dataReturn "id-cmc-dataReturn" -#define NID_id_cmc_dataReturn 330 -#define OBJ_id_cmc_dataReturn OBJ_id_cmc,4L - -#define SN_id_cmc_transactionId "id-cmc-transactionId" -#define NID_id_cmc_transactionId 331 -#define OBJ_id_cmc_transactionId OBJ_id_cmc,5L - -#define SN_id_cmc_senderNonce "id-cmc-senderNonce" -#define NID_id_cmc_senderNonce 332 -#define OBJ_id_cmc_senderNonce OBJ_id_cmc,6L - -#define SN_id_cmc_recipientNonce "id-cmc-recipientNonce" -#define NID_id_cmc_recipientNonce 333 -#define OBJ_id_cmc_recipientNonce OBJ_id_cmc,7L - -#define SN_id_cmc_addExtensions "id-cmc-addExtensions" -#define NID_id_cmc_addExtensions 334 -#define OBJ_id_cmc_addExtensions OBJ_id_cmc,8L - -#define SN_id_cmc_encryptedPOP "id-cmc-encryptedPOP" -#define NID_id_cmc_encryptedPOP 335 -#define OBJ_id_cmc_encryptedPOP OBJ_id_cmc,9L - -#define SN_id_cmc_decryptedPOP "id-cmc-decryptedPOP" -#define NID_id_cmc_decryptedPOP 336 -#define OBJ_id_cmc_decryptedPOP OBJ_id_cmc,10L - -#define SN_id_cmc_lraPOPWitness "id-cmc-lraPOPWitness" -#define NID_id_cmc_lraPOPWitness 337 -#define OBJ_id_cmc_lraPOPWitness OBJ_id_cmc,11L - -#define SN_id_cmc_getCert "id-cmc-getCert" -#define NID_id_cmc_getCert 338 -#define OBJ_id_cmc_getCert OBJ_id_cmc,15L - -#define SN_id_cmc_getCRL "id-cmc-getCRL" -#define NID_id_cmc_getCRL 339 -#define OBJ_id_cmc_getCRL OBJ_id_cmc,16L - -#define SN_id_cmc_revokeRequest "id-cmc-revokeRequest" -#define NID_id_cmc_revokeRequest 340 -#define OBJ_id_cmc_revokeRequest OBJ_id_cmc,17L - -#define SN_id_cmc_regInfo "id-cmc-regInfo" -#define NID_id_cmc_regInfo 341 -#define OBJ_id_cmc_regInfo OBJ_id_cmc,18L - -#define SN_id_cmc_responseInfo "id-cmc-responseInfo" -#define NID_id_cmc_responseInfo 342 -#define OBJ_id_cmc_responseInfo OBJ_id_cmc,19L - -#define SN_id_cmc_queryPending "id-cmc-queryPending" -#define NID_id_cmc_queryPending 343 -#define OBJ_id_cmc_queryPending OBJ_id_cmc,21L - -#define SN_id_cmc_popLinkRandom "id-cmc-popLinkRandom" -#define NID_id_cmc_popLinkRandom 344 -#define OBJ_id_cmc_popLinkRandom OBJ_id_cmc,22L - -#define SN_id_cmc_popLinkWitness "id-cmc-popLinkWitness" -#define NID_id_cmc_popLinkWitness 345 -#define OBJ_id_cmc_popLinkWitness OBJ_id_cmc,23L - -#define SN_id_cmc_confirmCertAcceptance "id-cmc-confirmCertAcceptance" -#define NID_id_cmc_confirmCertAcceptance 346 -#define OBJ_id_cmc_confirmCertAcceptance OBJ_id_cmc,24L - -#define SN_id_on_personalData "id-on-personalData" -#define NID_id_on_personalData 347 -#define OBJ_id_on_personalData OBJ_id_on,1L - -#define SN_id_on_permanentIdentifier "id-on-permanentIdentifier" -#define LN_id_on_permanentIdentifier "Permanent Identifier" -#define NID_id_on_permanentIdentifier 858 -#define OBJ_id_on_permanentIdentifier OBJ_id_on,3L - -#define SN_id_pda_dateOfBirth "id-pda-dateOfBirth" -#define NID_id_pda_dateOfBirth 348 -#define OBJ_id_pda_dateOfBirth OBJ_id_pda,1L - -#define SN_id_pda_placeOfBirth "id-pda-placeOfBirth" -#define NID_id_pda_placeOfBirth 349 -#define OBJ_id_pda_placeOfBirth OBJ_id_pda,2L - -#define SN_id_pda_gender "id-pda-gender" -#define NID_id_pda_gender 351 -#define OBJ_id_pda_gender OBJ_id_pda,3L - -#define SN_id_pda_countryOfCitizenship "id-pda-countryOfCitizenship" -#define NID_id_pda_countryOfCitizenship 352 -#define OBJ_id_pda_countryOfCitizenship OBJ_id_pda,4L - -#define SN_id_pda_countryOfResidence "id-pda-countryOfResidence" -#define NID_id_pda_countryOfResidence 353 -#define OBJ_id_pda_countryOfResidence OBJ_id_pda,5L - -#define SN_id_aca_authenticationInfo "id-aca-authenticationInfo" -#define NID_id_aca_authenticationInfo 354 -#define OBJ_id_aca_authenticationInfo OBJ_id_aca,1L - -#define SN_id_aca_accessIdentity "id-aca-accessIdentity" -#define NID_id_aca_accessIdentity 355 -#define OBJ_id_aca_accessIdentity OBJ_id_aca,2L - -#define SN_id_aca_chargingIdentity "id-aca-chargingIdentity" -#define NID_id_aca_chargingIdentity 356 -#define OBJ_id_aca_chargingIdentity OBJ_id_aca,3L - -#define SN_id_aca_group "id-aca-group" -#define NID_id_aca_group 357 -#define OBJ_id_aca_group OBJ_id_aca,4L - -#define SN_id_aca_role "id-aca-role" -#define NID_id_aca_role 358 -#define OBJ_id_aca_role OBJ_id_aca,5L - -#define SN_id_aca_encAttrs "id-aca-encAttrs" -#define NID_id_aca_encAttrs 399 -#define OBJ_id_aca_encAttrs OBJ_id_aca,6L - -#define SN_id_qcs_pkixQCSyntax_v1 "id-qcs-pkixQCSyntax-v1" -#define NID_id_qcs_pkixQCSyntax_v1 359 -#define OBJ_id_qcs_pkixQCSyntax_v1 OBJ_id_qcs,1L - -#define SN_id_cct_crs "id-cct-crs" -#define NID_id_cct_crs 360 -#define OBJ_id_cct_crs OBJ_id_cct,1L - -#define SN_id_cct_PKIData "id-cct-PKIData" -#define NID_id_cct_PKIData 361 -#define OBJ_id_cct_PKIData OBJ_id_cct,2L - -#define SN_id_cct_PKIResponse "id-cct-PKIResponse" -#define NID_id_cct_PKIResponse 362 -#define OBJ_id_cct_PKIResponse OBJ_id_cct,3L - -#define SN_id_ppl_anyLanguage "id-ppl-anyLanguage" -#define LN_id_ppl_anyLanguage "Any language" -#define NID_id_ppl_anyLanguage 664 -#define OBJ_id_ppl_anyLanguage OBJ_id_ppl,0L - -#define SN_id_ppl_inheritAll "id-ppl-inheritAll" -#define LN_id_ppl_inheritAll "Inherit all" -#define NID_id_ppl_inheritAll 665 -#define OBJ_id_ppl_inheritAll OBJ_id_ppl,1L - -#define SN_Independent "id-ppl-independent" -#define LN_Independent "Independent" -#define NID_Independent 667 -#define OBJ_Independent OBJ_id_ppl,2L - -#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_ad_timeStamping "ad_timestamping" -#define LN_ad_timeStamping "AD Time Stamping" -#define NID_ad_timeStamping 363 -#define OBJ_ad_timeStamping OBJ_id_ad,3L - -#define SN_ad_dvcs "AD_DVCS" -#define LN_ad_dvcs "ad dvcs" -#define NID_ad_dvcs 364 -#define OBJ_ad_dvcs OBJ_id_ad,4L - -#define SN_caRepository "caRepository" -#define LN_caRepository "CA Repository" -#define NID_caRepository 785 -#define OBJ_caRepository OBJ_id_ad,5L - -#define OBJ_id_pkix_OCSP OBJ_ad_OCSP - -#define SN_id_pkix_OCSP_basic "basicOCSPResponse" -#define LN_id_pkix_OCSP_basic "Basic OCSP Response" -#define NID_id_pkix_OCSP_basic 365 -#define OBJ_id_pkix_OCSP_basic OBJ_id_pkix_OCSP,1L - -#define SN_id_pkix_OCSP_Nonce "Nonce" -#define LN_id_pkix_OCSP_Nonce "OCSP Nonce" -#define NID_id_pkix_OCSP_Nonce 366 -#define OBJ_id_pkix_OCSP_Nonce OBJ_id_pkix_OCSP,2L - -#define SN_id_pkix_OCSP_CrlID "CrlID" -#define LN_id_pkix_OCSP_CrlID "OCSP CRL ID" -#define NID_id_pkix_OCSP_CrlID 367 -#define OBJ_id_pkix_OCSP_CrlID OBJ_id_pkix_OCSP,3L - -#define SN_id_pkix_OCSP_acceptableResponses "acceptableResponses" -#define LN_id_pkix_OCSP_acceptableResponses "Acceptable OCSP Responses" -#define NID_id_pkix_OCSP_acceptableResponses 368 -#define OBJ_id_pkix_OCSP_acceptableResponses OBJ_id_pkix_OCSP,4L - -#define SN_id_pkix_OCSP_noCheck "noCheck" -#define LN_id_pkix_OCSP_noCheck "OCSP No Check" -#define NID_id_pkix_OCSP_noCheck 369 -#define OBJ_id_pkix_OCSP_noCheck OBJ_id_pkix_OCSP,5L - -#define SN_id_pkix_OCSP_archiveCutoff "archiveCutoff" -#define LN_id_pkix_OCSP_archiveCutoff "OCSP Archive Cutoff" -#define NID_id_pkix_OCSP_archiveCutoff 370 -#define OBJ_id_pkix_OCSP_archiveCutoff OBJ_id_pkix_OCSP,6L - -#define SN_id_pkix_OCSP_serviceLocator "serviceLocator" -#define LN_id_pkix_OCSP_serviceLocator "OCSP Service Locator" -#define NID_id_pkix_OCSP_serviceLocator 371 -#define OBJ_id_pkix_OCSP_serviceLocator OBJ_id_pkix_OCSP,7L - -#define SN_id_pkix_OCSP_extendedStatus "extendedStatus" -#define LN_id_pkix_OCSP_extendedStatus "Extended OCSP Status" -#define NID_id_pkix_OCSP_extendedStatus 372 -#define OBJ_id_pkix_OCSP_extendedStatus OBJ_id_pkix_OCSP,8L - -#define SN_id_pkix_OCSP_valid "valid" -#define NID_id_pkix_OCSP_valid 373 -#define OBJ_id_pkix_OCSP_valid OBJ_id_pkix_OCSP,9L - -#define SN_id_pkix_OCSP_path "path" -#define NID_id_pkix_OCSP_path 374 -#define OBJ_id_pkix_OCSP_path OBJ_id_pkix_OCSP,10L - -#define SN_id_pkix_OCSP_trustRoot "trustRoot" -#define LN_id_pkix_OCSP_trustRoot "Trust Root" -#define NID_id_pkix_OCSP_trustRoot 375 -#define OBJ_id_pkix_OCSP_trustRoot OBJ_id_pkix_OCSP,11L - -#define SN_algorithm "algorithm" -#define LN_algorithm "algorithm" -#define NID_algorithm 376 -#define OBJ_algorithm 1L,3L,14L,3L,2L - -#define SN_md5WithRSA "RSA-NP-MD5" -#define LN_md5WithRSA "md5WithRSA" -#define NID_md5WithRSA 104 -#define OBJ_md5WithRSA OBJ_algorithm,3L - -#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_cbc "DES-CBC" -#define LN_des_cbc "des-cbc" -#define NID_des_cbc 31 -#define OBJ_des_cbc OBJ_algorithm,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_des_cfb64 "DES-CFB" -#define LN_des_cfb64 "des-cfb" -#define NID_des_cfb64 30 -#define OBJ_des_cfb64 OBJ_algorithm,9L - -#define SN_rsaSignature "rsaSignature" -#define NID_rsaSignature 377 -#define OBJ_rsaSignature OBJ_algorithm,11L - -#define SN_dsa_2 "DSA-old" -#define LN_dsa_2 "dsaEncryption-old" -#define NID_dsa_2 67 -#define OBJ_dsa_2 OBJ_algorithm,12L - -#define SN_dsaWithSHA "DSA-SHA" -#define LN_dsaWithSHA "dsaWithSHA" -#define NID_dsaWithSHA 66 -#define OBJ_dsaWithSHA OBJ_algorithm,13L - -#define SN_shaWithRSAEncryption "RSA-SHA" -#define LN_shaWithRSAEncryption "shaWithRSAEncryption" -#define NID_shaWithRSAEncryption 42 -#define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -#define SN_des_ede_ecb "DES-EDE" -#define LN_des_ede_ecb "des-ede" -#define NID_des_ede_ecb 32 -#define OBJ_des_ede_ecb OBJ_algorithm,17L - -#define SN_des_ede3_ecb "DES-EDE3" -#define LN_des_ede3_ecb "des-ede3" -#define NID_des_ede3_ecb 33 - -#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_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 - -#define SN_desx_cbc "DESX-CBC" -#define LN_desx_cbc "desx-cbc" -#define NID_desx_cbc 80 - -#define SN_sha "SHA" -#define LN_sha "sha" -#define NID_sha 41 -#define OBJ_sha OBJ_algorithm,18L - -#define SN_sha1 "SHA1" -#define LN_sha1 "sha1" -#define NID_sha1 64 -#define OBJ_sha1 OBJ_algorithm,26L - -#define SN_dsaWithSHA1_2 "DSA-SHA1-old" -#define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -#define NID_dsaWithSHA1_2 70 -#define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -#define SN_sha1WithRSA "RSA-SHA1-2" -#define LN_sha1WithRSA "sha1WithRSA" -#define NID_sha1WithRSA 115 -#define OBJ_sha1WithRSA OBJ_algorithm,29L - -#define SN_ripemd160 "RIPEMD160" -#define LN_ripemd160 "ripemd160" -#define NID_ripemd160 117 -#define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -#define SN_ripemd160WithRSA "RSA-RIPEMD160" -#define LN_ripemd160WithRSA "ripemd160WithRSA" -#define NID_ripemd160WithRSA 119 -#define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -#define SN_blake2b512 "BLAKE2b512" -#define LN_blake2b512 "blake2b512" -#define NID_blake2b512 1056 -#define OBJ_blake2b512 1L,3L,6L,1L,4L,1L,1722L,12L,2L,1L,16L - -#define SN_blake2s256 "BLAKE2s256" -#define LN_blake2s256 "blake2s256" -#define NID_blake2s256 1057 -#define OBJ_blake2s256 1L,3L,6L,1L,4L,1L,1722L,12L,2L,2L,8L - -#define SN_sxnet "SXNetID" -#define LN_sxnet "Strong Extranet ID" -#define NID_sxnet 143 -#define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -#define SN_X500 "X500" -#define LN_X500 "directory services (X.500)" -#define NID_X500 11 -#define OBJ_X500 2L,5L - -#define SN_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_surname "SN" -#define LN_surname "surname" -#define NID_surname 100 -#define OBJ_surname OBJ_X509,4L - -#define LN_serialNumber "serialNumber" -#define NID_serialNumber 105 -#define OBJ_serialNumber OBJ_X509,5L - -#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 - -#define SN_stateOrProvinceName "ST" -#define LN_stateOrProvinceName "stateOrProvinceName" -#define NID_stateOrProvinceName 16 -#define OBJ_stateOrProvinceName OBJ_X509,8L - -#define SN_streetAddress "street" -#define LN_streetAddress "streetAddress" -#define NID_streetAddress 660 -#define OBJ_streetAddress OBJ_X509,9L - -#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_title "title" -#define LN_title "title" -#define NID_title 106 -#define OBJ_title OBJ_X509,12L - -#define LN_description "description" -#define NID_description 107 -#define OBJ_description OBJ_X509,13L - -#define LN_searchGuide "searchGuide" -#define NID_searchGuide 859 -#define OBJ_searchGuide OBJ_X509,14L - -#define LN_businessCategory "businessCategory" -#define NID_businessCategory 860 -#define OBJ_businessCategory OBJ_X509,15L - -#define LN_postalAddress "postalAddress" -#define NID_postalAddress 861 -#define OBJ_postalAddress OBJ_X509,16L - -#define LN_postalCode "postalCode" -#define NID_postalCode 661 -#define OBJ_postalCode OBJ_X509,17L - -#define LN_postOfficeBox "postOfficeBox" -#define NID_postOfficeBox 862 -#define OBJ_postOfficeBox OBJ_X509,18L - -#define LN_physicalDeliveryOfficeName "physicalDeliveryOfficeName" -#define NID_physicalDeliveryOfficeName 863 -#define OBJ_physicalDeliveryOfficeName OBJ_X509,19L - -#define LN_telephoneNumber "telephoneNumber" -#define NID_telephoneNumber 864 -#define OBJ_telephoneNumber OBJ_X509,20L - -#define LN_telexNumber "telexNumber" -#define NID_telexNumber 865 -#define OBJ_telexNumber OBJ_X509,21L - -#define LN_teletexTerminalIdentifier "teletexTerminalIdentifier" -#define NID_teletexTerminalIdentifier 866 -#define OBJ_teletexTerminalIdentifier OBJ_X509,22L - -#define LN_facsimileTelephoneNumber "facsimileTelephoneNumber" -#define NID_facsimileTelephoneNumber 867 -#define OBJ_facsimileTelephoneNumber OBJ_X509,23L - -#define LN_x121Address "x121Address" -#define NID_x121Address 868 -#define OBJ_x121Address OBJ_X509,24L - -#define LN_internationaliSDNNumber "internationaliSDNNumber" -#define NID_internationaliSDNNumber 869 -#define OBJ_internationaliSDNNumber OBJ_X509,25L - -#define LN_registeredAddress "registeredAddress" -#define NID_registeredAddress 870 -#define OBJ_registeredAddress OBJ_X509,26L - -#define LN_destinationIndicator "destinationIndicator" -#define NID_destinationIndicator 871 -#define OBJ_destinationIndicator OBJ_X509,27L - -#define LN_preferredDeliveryMethod "preferredDeliveryMethod" -#define NID_preferredDeliveryMethod 872 -#define OBJ_preferredDeliveryMethod OBJ_X509,28L - -#define LN_presentationAddress "presentationAddress" -#define NID_presentationAddress 873 -#define OBJ_presentationAddress OBJ_X509,29L - -#define LN_supportedApplicationContext "supportedApplicationContext" -#define NID_supportedApplicationContext 874 -#define OBJ_supportedApplicationContext OBJ_X509,30L - -#define SN_member "member" -#define NID_member 875 -#define OBJ_member OBJ_X509,31L - -#define SN_owner "owner" -#define NID_owner 876 -#define OBJ_owner OBJ_X509,32L - -#define LN_roleOccupant "roleOccupant" -#define NID_roleOccupant 877 -#define OBJ_roleOccupant OBJ_X509,33L - -#define SN_seeAlso "seeAlso" -#define NID_seeAlso 878 -#define OBJ_seeAlso OBJ_X509,34L - -#define LN_userPassword "userPassword" -#define NID_userPassword 879 -#define OBJ_userPassword OBJ_X509,35L - -#define LN_userCertificate "userCertificate" -#define NID_userCertificate 880 -#define OBJ_userCertificate OBJ_X509,36L - -#define LN_cACertificate "cACertificate" -#define NID_cACertificate 881 -#define OBJ_cACertificate OBJ_X509,37L - -#define LN_authorityRevocationList "authorityRevocationList" -#define NID_authorityRevocationList 882 -#define OBJ_authorityRevocationList OBJ_X509,38L - -#define LN_certificateRevocationList "certificateRevocationList" -#define NID_certificateRevocationList 883 -#define OBJ_certificateRevocationList OBJ_X509,39L - -#define LN_crossCertificatePair "crossCertificatePair" -#define NID_crossCertificatePair 884 -#define OBJ_crossCertificatePair OBJ_X509,40L - -#define SN_name "name" -#define LN_name "name" -#define NID_name 173 -#define OBJ_name OBJ_X509,41L - -#define SN_givenName "GN" -#define LN_givenName "givenName" -#define NID_givenName 99 -#define OBJ_givenName OBJ_X509,42L - -#define SN_initials "initials" -#define LN_initials "initials" -#define NID_initials 101 -#define OBJ_initials OBJ_X509,43L - -#define LN_generationQualifier "generationQualifier" -#define NID_generationQualifier 509 -#define OBJ_generationQualifier OBJ_X509,44L - -#define LN_x500UniqueIdentifier "x500UniqueIdentifier" -#define NID_x500UniqueIdentifier 503 -#define OBJ_x500UniqueIdentifier OBJ_X509,45L - -#define SN_dnQualifier "dnQualifier" -#define LN_dnQualifier "dnQualifier" -#define NID_dnQualifier 174 -#define OBJ_dnQualifier OBJ_X509,46L - -#define LN_enhancedSearchGuide "enhancedSearchGuide" -#define NID_enhancedSearchGuide 885 -#define OBJ_enhancedSearchGuide OBJ_X509,47L - -#define LN_protocolInformation "protocolInformation" -#define NID_protocolInformation 886 -#define OBJ_protocolInformation OBJ_X509,48L - -#define LN_distinguishedName "distinguishedName" -#define NID_distinguishedName 887 -#define OBJ_distinguishedName OBJ_X509,49L - -#define LN_uniqueMember "uniqueMember" -#define NID_uniqueMember 888 -#define OBJ_uniqueMember OBJ_X509,50L - -#define LN_houseIdentifier "houseIdentifier" -#define NID_houseIdentifier 889 -#define OBJ_houseIdentifier OBJ_X509,51L - -#define LN_supportedAlgorithms "supportedAlgorithms" -#define NID_supportedAlgorithms 890 -#define OBJ_supportedAlgorithms OBJ_X509,52L - -#define LN_deltaRevocationList "deltaRevocationList" -#define NID_deltaRevocationList 891 -#define OBJ_deltaRevocationList OBJ_X509,53L - -#define SN_dmdName "dmdName" -#define NID_dmdName 892 -#define OBJ_dmdName OBJ_X509,54L - -#define LN_pseudonym "pseudonym" -#define NID_pseudonym 510 -#define OBJ_pseudonym OBJ_X509,65L - -#define SN_role "role" -#define LN_role "role" -#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 -#define OBJ_X500algorithms OBJ_X500,8L - -#define SN_rsa "RSA" -#define LN_rsa "rsa" -#define NID_rsa 19 -#define OBJ_rsa OBJ_X500algorithms,1L,1L - -#define SN_mdc2WithRSA "RSA-MDC2" -#define LN_mdc2WithRSA "mdc2WithRSA" -#define NID_mdc2WithRSA 96 -#define OBJ_mdc2WithRSA OBJ_X500algorithms,3L,100L - -#define SN_mdc2 "MDC2" -#define LN_mdc2 "mdc2" -#define NID_mdc2 95 -#define OBJ_mdc2 OBJ_X500algorithms,3L,101L - -#define SN_id_ce "id-ce" -#define NID_id_ce 81 -#define OBJ_id_ce OBJ_X500,29L - -#define SN_subject_directory_attributes "subjectDirectoryAttributes" -#define LN_subject_directory_attributes "X509v3 Subject Directory Attributes" -#define NID_subject_directory_attributes 769 -#define OBJ_subject_directory_attributes OBJ_id_ce,9L - -#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_crl_reason "CRLReason" -#define LN_crl_reason "X509v3 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_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_issuing_distribution_point "issuingDistributionPoint" -#define LN_issuing_distribution_point "X509v3 Issuing Distribution Point" -#define NID_issuing_distribution_point 770 -#define OBJ_issuing_distribution_point OBJ_id_ce,28L - -#define SN_certificate_issuer "certificateIssuer" -#define LN_certificate_issuer "X509v3 Certificate Issuer" -#define NID_certificate_issuer 771 -#define OBJ_certificate_issuer OBJ_id_ce,29L - -#define SN_name_constraints "nameConstraints" -#define LN_name_constraints "X509v3 Name Constraints" -#define NID_name_constraints 666 -#define OBJ_name_constraints OBJ_id_ce,30L - -#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_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_any_policy "anyPolicy" -#define LN_any_policy "X509v3 Any Policy" -#define NID_any_policy 746 -#define OBJ_any_policy OBJ_certificate_policies,0L - -#define SN_policy_mappings "policyMappings" -#define LN_policy_mappings "X509v3 Policy Mappings" -#define NID_policy_mappings 747 -#define OBJ_policy_mappings OBJ_id_ce,33L - -#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_policy_constraints "policyConstraints" -#define LN_policy_constraints "X509v3 Policy Constraints" -#define NID_policy_constraints 401 -#define OBJ_policy_constraints OBJ_id_ce,36L - -#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,37L - -#define SN_freshest_crl "freshestCRL" -#define LN_freshest_crl "X509v3 Freshest CRL" -#define NID_freshest_crl 857 -#define OBJ_freshest_crl OBJ_id_ce,46L - -#define SN_inhibit_any_policy "inhibitAnyPolicy" -#define LN_inhibit_any_policy "X509v3 Inhibit Any Policy" -#define NID_inhibit_any_policy 748 -#define OBJ_inhibit_any_policy OBJ_id_ce,54L - -#define SN_target_information "targetInformation" -#define LN_target_information "X509v3 AC Targeting" -#define NID_target_information 402 -#define OBJ_target_information OBJ_id_ce,55L - -#define SN_no_rev_avail "noRevAvail" -#define LN_no_rev_avail "X509v3 No Revocation Available" -#define NID_no_rev_avail 403 -#define OBJ_no_rev_avail OBJ_id_ce,56L - -#define SN_anyExtendedKeyUsage "anyExtendedKeyUsage" -#define LN_anyExtendedKeyUsage "Any Extended Key Usage" -#define NID_anyExtendedKeyUsage 910 -#define OBJ_anyExtendedKeyUsage OBJ_ext_key_usage,0L - -#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_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_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_org "ORG" -#define LN_org "org" -#define NID_org 379 -#define OBJ_org OBJ_iso,3L - -#define SN_dod "DOD" -#define LN_dod "dod" -#define NID_dod 380 -#define OBJ_dod OBJ_org,6L - -#define SN_iana "IANA" -#define LN_iana "iana" -#define NID_iana 381 -#define OBJ_iana OBJ_dod,1L - -#define OBJ_internet OBJ_iana - -#define SN_Directory "directory" -#define LN_Directory "Directory" -#define NID_Directory 382 -#define OBJ_Directory OBJ_internet,1L - -#define SN_Management "mgmt" -#define LN_Management "Management" -#define NID_Management 383 -#define OBJ_Management OBJ_internet,2L - -#define SN_Experimental "experimental" -#define LN_Experimental "Experimental" -#define NID_Experimental 384 -#define OBJ_Experimental OBJ_internet,3L - -#define SN_Private "private" -#define LN_Private "Private" -#define NID_Private 385 -#define OBJ_Private OBJ_internet,4L - -#define SN_Security "security" -#define LN_Security "Security" -#define NID_Security 386 -#define OBJ_Security OBJ_internet,5L - -#define SN_SNMPv2 "snmpv2" -#define LN_SNMPv2 "SNMPv2" -#define NID_SNMPv2 387 -#define OBJ_SNMPv2 OBJ_internet,6L - -#define LN_Mail "Mail" -#define NID_Mail 388 -#define OBJ_Mail OBJ_internet,7L - -#define SN_Enterprises "enterprises" -#define LN_Enterprises "Enterprises" -#define NID_Enterprises 389 -#define OBJ_Enterprises OBJ_Private,1L - -#define SN_dcObject "dcobject" -#define LN_dcObject "dcObject" -#define NID_dcObject 390 -#define OBJ_dcObject OBJ_Enterprises,1466L,344L - -#define SN_mime_mhs "mime-mhs" -#define LN_mime_mhs "MIME MHS" -#define NID_mime_mhs 504 -#define OBJ_mime_mhs OBJ_Mail,1L - -#define SN_mime_mhs_headings "mime-mhs-headings" -#define LN_mime_mhs_headings "mime-mhs-headings" -#define NID_mime_mhs_headings 505 -#define OBJ_mime_mhs_headings OBJ_mime_mhs,1L - -#define SN_mime_mhs_bodies "mime-mhs-bodies" -#define LN_mime_mhs_bodies "mime-mhs-bodies" -#define NID_mime_mhs_bodies 506 -#define OBJ_mime_mhs_bodies OBJ_mime_mhs,2L - -#define SN_id_hex_partial_message "id-hex-partial-message" -#define LN_id_hex_partial_message "id-hex-partial-message" -#define NID_id_hex_partial_message 507 -#define OBJ_id_hex_partial_message OBJ_mime_mhs_headings,1L - -#define SN_id_hex_multipart_message "id-hex-multipart-message" -#define LN_id_hex_multipart_message "id-hex-multipart-message" -#define NID_id_hex_multipart_message 508 -#define OBJ_id_hex_multipart_message OBJ_mime_mhs_headings,2L - -#define SN_zlib_compression "ZLIB" -#define LN_zlib_compression "zlib compression" -#define NID_zlib_compression 125 -#define OBJ_zlib_compression OBJ_id_smime_alg,8L - -#define OBJ_csor 2L,16L,840L,1L,101L,3L - -#define OBJ_nistAlgorithms OBJ_csor,4L - -#define OBJ_aes OBJ_nistAlgorithms,1L - -#define SN_aes_128_ecb "AES-128-ECB" -#define LN_aes_128_ecb "aes-128-ecb" -#define NID_aes_128_ecb 418 -#define OBJ_aes_128_ecb OBJ_aes,1L - -#define SN_aes_128_cbc "AES-128-CBC" -#define LN_aes_128_cbc "aes-128-cbc" -#define NID_aes_128_cbc 419 -#define OBJ_aes_128_cbc OBJ_aes,2L - -#define SN_aes_128_ofb128 "AES-128-OFB" -#define LN_aes_128_ofb128 "aes-128-ofb" -#define NID_aes_128_ofb128 420 -#define OBJ_aes_128_ofb128 OBJ_aes,3L - -#define SN_aes_128_cfb128 "AES-128-CFB" -#define LN_aes_128_cfb128 "aes-128-cfb" -#define NID_aes_128_cfb128 421 -#define OBJ_aes_128_cfb128 OBJ_aes,4L - -#define SN_id_aes128_wrap "id-aes128-wrap" -#define NID_id_aes128_wrap 788 -#define OBJ_id_aes128_wrap OBJ_aes,5L - -#define SN_aes_128_gcm "id-aes128-GCM" -#define LN_aes_128_gcm "aes-128-gcm" -#define NID_aes_128_gcm 895 -#define OBJ_aes_128_gcm OBJ_aes,6L - -#define SN_aes_128_ccm "id-aes128-CCM" -#define LN_aes_128_ccm "aes-128-ccm" -#define NID_aes_128_ccm 896 -#define OBJ_aes_128_ccm OBJ_aes,7L - -#define SN_id_aes128_wrap_pad "id-aes128-wrap-pad" -#define NID_id_aes128_wrap_pad 897 -#define OBJ_id_aes128_wrap_pad OBJ_aes,8L - -#define SN_aes_192_ecb "AES-192-ECB" -#define LN_aes_192_ecb "aes-192-ecb" -#define NID_aes_192_ecb 422 -#define OBJ_aes_192_ecb OBJ_aes,21L - -#define SN_aes_192_cbc "AES-192-CBC" -#define LN_aes_192_cbc "aes-192-cbc" -#define NID_aes_192_cbc 423 -#define OBJ_aes_192_cbc OBJ_aes,22L - -#define SN_aes_192_ofb128 "AES-192-OFB" -#define LN_aes_192_ofb128 "aes-192-ofb" -#define NID_aes_192_ofb128 424 -#define OBJ_aes_192_ofb128 OBJ_aes,23L - -#define SN_aes_192_cfb128 "AES-192-CFB" -#define LN_aes_192_cfb128 "aes-192-cfb" -#define NID_aes_192_cfb128 425 -#define OBJ_aes_192_cfb128 OBJ_aes,24L - -#define SN_id_aes192_wrap "id-aes192-wrap" -#define NID_id_aes192_wrap 789 -#define OBJ_id_aes192_wrap OBJ_aes,25L - -#define SN_aes_192_gcm "id-aes192-GCM" -#define LN_aes_192_gcm "aes-192-gcm" -#define NID_aes_192_gcm 898 -#define OBJ_aes_192_gcm OBJ_aes,26L - -#define SN_aes_192_ccm "id-aes192-CCM" -#define LN_aes_192_ccm "aes-192-ccm" -#define NID_aes_192_ccm 899 -#define OBJ_aes_192_ccm OBJ_aes,27L - -#define SN_id_aes192_wrap_pad "id-aes192-wrap-pad" -#define NID_id_aes192_wrap_pad 900 -#define OBJ_id_aes192_wrap_pad OBJ_aes,28L - -#define SN_aes_256_ecb "AES-256-ECB" -#define LN_aes_256_ecb "aes-256-ecb" -#define NID_aes_256_ecb 426 -#define OBJ_aes_256_ecb OBJ_aes,41L - -#define SN_aes_256_cbc "AES-256-CBC" -#define LN_aes_256_cbc "aes-256-cbc" -#define NID_aes_256_cbc 427 -#define OBJ_aes_256_cbc OBJ_aes,42L - -#define SN_aes_256_ofb128 "AES-256-OFB" -#define LN_aes_256_ofb128 "aes-256-ofb" -#define NID_aes_256_ofb128 428 -#define OBJ_aes_256_ofb128 OBJ_aes,43L - -#define SN_aes_256_cfb128 "AES-256-CFB" -#define LN_aes_256_cfb128 "aes-256-cfb" -#define NID_aes_256_cfb128 429 -#define OBJ_aes_256_cfb128 OBJ_aes,44L - -#define SN_id_aes256_wrap "id-aes256-wrap" -#define NID_id_aes256_wrap 790 -#define OBJ_id_aes256_wrap OBJ_aes,45L - -#define SN_aes_256_gcm "id-aes256-GCM" -#define LN_aes_256_gcm "aes-256-gcm" -#define NID_aes_256_gcm 901 -#define OBJ_aes_256_gcm OBJ_aes,46L - -#define SN_aes_256_ccm "id-aes256-CCM" -#define LN_aes_256_ccm "aes-256-ccm" -#define NID_aes_256_ccm 902 -#define OBJ_aes_256_ccm OBJ_aes,47L - -#define SN_id_aes256_wrap_pad "id-aes256-wrap-pad" -#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 - -#define SN_aes_192_cfb1 "AES-192-CFB1" -#define LN_aes_192_cfb1 "aes-192-cfb1" -#define NID_aes_192_cfb1 651 - -#define SN_aes_256_cfb1 "AES-256-CFB1" -#define LN_aes_256_cfb1 "aes-256-cfb1" -#define NID_aes_256_cfb1 652 - -#define SN_aes_128_cfb8 "AES-128-CFB8" -#define LN_aes_128_cfb8 "aes-128-cfb8" -#define NID_aes_128_cfb8 653 - -#define SN_aes_192_cfb8 "AES-192-CFB8" -#define LN_aes_192_cfb8 "aes-192-cfb8" -#define NID_aes_192_cfb8 654 - -#define SN_aes_256_cfb8 "AES-256-CFB8" -#define LN_aes_256_cfb8 "aes-256-cfb8" -#define NID_aes_256_cfb8 655 - -#define SN_aes_128_ctr "AES-128-CTR" -#define LN_aes_128_ctr "aes-128-ctr" -#define NID_aes_128_ctr 904 - -#define SN_aes_192_ctr "AES-192-CTR" -#define LN_aes_192_ctr "aes-192-ctr" -#define NID_aes_192_ctr 905 - -#define SN_aes_256_ctr "AES-256-CTR" -#define LN_aes_256_ctr "aes-256-ctr" -#define NID_aes_256_ctr 906 - -#define SN_aes_128_ocb "AES-128-OCB" -#define LN_aes_128_ocb "aes-128-ocb" -#define NID_aes_128_ocb 958 - -#define SN_aes_192_ocb "AES-192-OCB" -#define LN_aes_192_ocb "aes-192-ocb" -#define NID_aes_192_ocb 959 - -#define SN_aes_256_ocb "AES-256-OCB" -#define LN_aes_256_ocb "aes-256-ocb" -#define NID_aes_256_ocb 960 - -#define SN_des_cfb1 "DES-CFB1" -#define LN_des_cfb1 "des-cfb1" -#define NID_des_cfb1 656 - -#define SN_des_cfb8 "DES-CFB8" -#define LN_des_cfb8 "des-cfb8" -#define NID_des_cfb8 657 - -#define SN_des_ede3_cfb1 "DES-EDE3-CFB1" -#define LN_des_ede3_cfb1 "des-ede3-cfb1" -#define NID_des_ede3_cfb1 658 - -#define SN_des_ede3_cfb8 "DES-EDE3-CFB8" -#define LN_des_ede3_cfb8 "des-ede3-cfb8" -#define NID_des_ede3_cfb8 659 - -#define OBJ_nist_hashalgs OBJ_nistAlgorithms,2L - -#define SN_sha256 "SHA256" -#define LN_sha256 "sha256" -#define NID_sha256 672 -#define OBJ_sha256 OBJ_nist_hashalgs,1L - -#define SN_sha384 "SHA384" -#define LN_sha384 "sha384" -#define NID_sha384 673 -#define OBJ_sha384 OBJ_nist_hashalgs,2L - -#define SN_sha512 "SHA512" -#define LN_sha512 "sha512" -#define NID_sha512 674 -#define OBJ_sha512 OBJ_nist_hashalgs,3L - -#define SN_sha224 "SHA224" -#define LN_sha224 "sha224" -#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" -#define NID_dsa_with_SHA224 802 -#define OBJ_dsa_with_SHA224 OBJ_dsa_with_sha2,1L - -#define SN_dsa_with_SHA256 "dsa_with_SHA256" -#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 -#define OBJ_hold_instruction_code OBJ_id_ce,23L - -#define OBJ_holdInstruction OBJ_X9_57,2L - -#define SN_hold_instruction_none "holdInstructionNone" -#define LN_hold_instruction_none "Hold Instruction None" -#define NID_hold_instruction_none 431 -#define OBJ_hold_instruction_none OBJ_holdInstruction,1L - -#define SN_hold_instruction_call_issuer "holdInstructionCallIssuer" -#define LN_hold_instruction_call_issuer "Hold Instruction Call Issuer" -#define NID_hold_instruction_call_issuer 432 -#define OBJ_hold_instruction_call_issuer OBJ_holdInstruction,2L - -#define SN_hold_instruction_reject "holdInstructionReject" -#define LN_hold_instruction_reject "Hold Instruction Reject" -#define NID_hold_instruction_reject 433 -#define OBJ_hold_instruction_reject OBJ_holdInstruction,3L - -#define SN_data "data" -#define NID_data 434 -#define OBJ_data OBJ_itu_t,9L - -#define SN_pss "pss" -#define NID_pss 435 -#define OBJ_pss OBJ_data,2342L - -#define SN_ucl "ucl" -#define NID_ucl 436 -#define OBJ_ucl OBJ_pss,19200300L - -#define SN_pilot "pilot" -#define NID_pilot 437 -#define OBJ_pilot OBJ_ucl,100L - -#define LN_pilotAttributeType "pilotAttributeType" -#define NID_pilotAttributeType 438 -#define OBJ_pilotAttributeType OBJ_pilot,1L - -#define LN_pilotAttributeSyntax "pilotAttributeSyntax" -#define NID_pilotAttributeSyntax 439 -#define OBJ_pilotAttributeSyntax OBJ_pilot,3L - -#define LN_pilotObjectClass "pilotObjectClass" -#define NID_pilotObjectClass 440 -#define OBJ_pilotObjectClass OBJ_pilot,4L - -#define LN_pilotGroups "pilotGroups" -#define NID_pilotGroups 441 -#define OBJ_pilotGroups OBJ_pilot,10L - -#define LN_iA5StringSyntax "iA5StringSyntax" -#define NID_iA5StringSyntax 442 -#define OBJ_iA5StringSyntax OBJ_pilotAttributeSyntax,4L - -#define LN_caseIgnoreIA5StringSyntax "caseIgnoreIA5StringSyntax" -#define NID_caseIgnoreIA5StringSyntax 443 -#define OBJ_caseIgnoreIA5StringSyntax OBJ_pilotAttributeSyntax,5L - -#define LN_pilotObject "pilotObject" -#define NID_pilotObject 444 -#define OBJ_pilotObject OBJ_pilotObjectClass,3L - -#define LN_pilotPerson "pilotPerson" -#define NID_pilotPerson 445 -#define OBJ_pilotPerson OBJ_pilotObjectClass,4L - -#define SN_account "account" -#define NID_account 446 -#define OBJ_account OBJ_pilotObjectClass,5L - -#define SN_document "document" -#define NID_document 447 -#define OBJ_document OBJ_pilotObjectClass,6L - -#define SN_room "room" -#define NID_room 448 -#define OBJ_room OBJ_pilotObjectClass,7L - -#define LN_documentSeries "documentSeries" -#define NID_documentSeries 449 -#define OBJ_documentSeries OBJ_pilotObjectClass,9L - -#define SN_Domain "domain" -#define LN_Domain "Domain" -#define NID_Domain 392 -#define OBJ_Domain OBJ_pilotObjectClass,13L - -#define LN_rFC822localPart "rFC822localPart" -#define NID_rFC822localPart 450 -#define OBJ_rFC822localPart OBJ_pilotObjectClass,14L - -#define LN_dNSDomain "dNSDomain" -#define NID_dNSDomain 451 -#define OBJ_dNSDomain OBJ_pilotObjectClass,15L - -#define LN_domainRelatedObject "domainRelatedObject" -#define NID_domainRelatedObject 452 -#define OBJ_domainRelatedObject OBJ_pilotObjectClass,17L - -#define LN_friendlyCountry "friendlyCountry" -#define NID_friendlyCountry 453 -#define OBJ_friendlyCountry OBJ_pilotObjectClass,18L - -#define LN_simpleSecurityObject "simpleSecurityObject" -#define NID_simpleSecurityObject 454 -#define OBJ_simpleSecurityObject OBJ_pilotObjectClass,19L - -#define LN_pilotOrganization "pilotOrganization" -#define NID_pilotOrganization 455 -#define OBJ_pilotOrganization OBJ_pilotObjectClass,20L - -#define LN_pilotDSA "pilotDSA" -#define NID_pilotDSA 456 -#define OBJ_pilotDSA OBJ_pilotObjectClass,21L - -#define LN_qualityLabelledData "qualityLabelledData" -#define NID_qualityLabelledData 457 -#define OBJ_qualityLabelledData OBJ_pilotObjectClass,22L - -#define SN_userId "UID" -#define LN_userId "userId" -#define NID_userId 458 -#define OBJ_userId OBJ_pilotAttributeType,1L - -#define LN_textEncodedORAddress "textEncodedORAddress" -#define NID_textEncodedORAddress 459 -#define OBJ_textEncodedORAddress OBJ_pilotAttributeType,2L - -#define SN_rfc822Mailbox "mail" -#define LN_rfc822Mailbox "rfc822Mailbox" -#define NID_rfc822Mailbox 460 -#define OBJ_rfc822Mailbox OBJ_pilotAttributeType,3L - -#define SN_info "info" -#define NID_info 461 -#define OBJ_info OBJ_pilotAttributeType,4L - -#define LN_favouriteDrink "favouriteDrink" -#define NID_favouriteDrink 462 -#define OBJ_favouriteDrink OBJ_pilotAttributeType,5L - -#define LN_roomNumber "roomNumber" -#define NID_roomNumber 463 -#define OBJ_roomNumber OBJ_pilotAttributeType,6L - -#define SN_photo "photo" -#define NID_photo 464 -#define OBJ_photo OBJ_pilotAttributeType,7L - -#define LN_userClass "userClass" -#define NID_userClass 465 -#define OBJ_userClass OBJ_pilotAttributeType,8L - -#define SN_host "host" -#define NID_host 466 -#define OBJ_host OBJ_pilotAttributeType,9L - -#define SN_manager "manager" -#define NID_manager 467 -#define OBJ_manager OBJ_pilotAttributeType,10L - -#define LN_documentIdentifier "documentIdentifier" -#define NID_documentIdentifier 468 -#define OBJ_documentIdentifier OBJ_pilotAttributeType,11L - -#define LN_documentTitle "documentTitle" -#define NID_documentTitle 469 -#define OBJ_documentTitle OBJ_pilotAttributeType,12L - -#define LN_documentVersion "documentVersion" -#define NID_documentVersion 470 -#define OBJ_documentVersion OBJ_pilotAttributeType,13L - -#define LN_documentAuthor "documentAuthor" -#define NID_documentAuthor 471 -#define OBJ_documentAuthor OBJ_pilotAttributeType,14L - -#define LN_documentLocation "documentLocation" -#define NID_documentLocation 472 -#define OBJ_documentLocation OBJ_pilotAttributeType,15L - -#define LN_homeTelephoneNumber "homeTelephoneNumber" -#define NID_homeTelephoneNumber 473 -#define OBJ_homeTelephoneNumber OBJ_pilotAttributeType,20L - -#define SN_secretary "secretary" -#define NID_secretary 474 -#define OBJ_secretary OBJ_pilotAttributeType,21L - -#define LN_otherMailbox "otherMailbox" -#define NID_otherMailbox 475 -#define OBJ_otherMailbox OBJ_pilotAttributeType,22L - -#define LN_lastModifiedTime "lastModifiedTime" -#define NID_lastModifiedTime 476 -#define OBJ_lastModifiedTime OBJ_pilotAttributeType,23L - -#define LN_lastModifiedBy "lastModifiedBy" -#define NID_lastModifiedBy 477 -#define OBJ_lastModifiedBy OBJ_pilotAttributeType,24L - -#define SN_domainComponent "DC" -#define LN_domainComponent "domainComponent" -#define NID_domainComponent 391 -#define OBJ_domainComponent OBJ_pilotAttributeType,25L - -#define LN_aRecord "aRecord" -#define NID_aRecord 478 -#define OBJ_aRecord OBJ_pilotAttributeType,26L - -#define LN_pilotAttributeType27 "pilotAttributeType27" -#define NID_pilotAttributeType27 479 -#define OBJ_pilotAttributeType27 OBJ_pilotAttributeType,27L - -#define LN_mXRecord "mXRecord" -#define NID_mXRecord 480 -#define OBJ_mXRecord OBJ_pilotAttributeType,28L - -#define LN_nSRecord "nSRecord" -#define NID_nSRecord 481 -#define OBJ_nSRecord OBJ_pilotAttributeType,29L - -#define LN_sOARecord "sOARecord" -#define NID_sOARecord 482 -#define OBJ_sOARecord OBJ_pilotAttributeType,30L - -#define LN_cNAMERecord "cNAMERecord" -#define NID_cNAMERecord 483 -#define OBJ_cNAMERecord OBJ_pilotAttributeType,31L - -#define LN_associatedDomain "associatedDomain" -#define NID_associatedDomain 484 -#define OBJ_associatedDomain OBJ_pilotAttributeType,37L - -#define LN_associatedName "associatedName" -#define NID_associatedName 485 -#define OBJ_associatedName OBJ_pilotAttributeType,38L - -#define LN_homePostalAddress "homePostalAddress" -#define NID_homePostalAddress 486 -#define OBJ_homePostalAddress OBJ_pilotAttributeType,39L - -#define LN_personalTitle "personalTitle" -#define NID_personalTitle 487 -#define OBJ_personalTitle OBJ_pilotAttributeType,40L - -#define LN_mobileTelephoneNumber "mobileTelephoneNumber" -#define NID_mobileTelephoneNumber 488 -#define OBJ_mobileTelephoneNumber OBJ_pilotAttributeType,41L - -#define LN_pagerTelephoneNumber "pagerTelephoneNumber" -#define NID_pagerTelephoneNumber 489 -#define OBJ_pagerTelephoneNumber OBJ_pilotAttributeType,42L - -#define LN_friendlyCountryName "friendlyCountryName" -#define NID_friendlyCountryName 490 -#define OBJ_friendlyCountryName OBJ_pilotAttributeType,43L - -#define SN_uniqueIdentifier "uid" -#define LN_uniqueIdentifier "uniqueIdentifier" -#define NID_uniqueIdentifier 102 -#define OBJ_uniqueIdentifier OBJ_pilotAttributeType,44L - -#define LN_organizationalStatus "organizationalStatus" -#define NID_organizationalStatus 491 -#define OBJ_organizationalStatus OBJ_pilotAttributeType,45L - -#define LN_janetMailbox "janetMailbox" -#define NID_janetMailbox 492 -#define OBJ_janetMailbox OBJ_pilotAttributeType,46L - -#define LN_mailPreferenceOption "mailPreferenceOption" -#define NID_mailPreferenceOption 493 -#define OBJ_mailPreferenceOption OBJ_pilotAttributeType,47L - -#define LN_buildingName "buildingName" -#define NID_buildingName 494 -#define OBJ_buildingName OBJ_pilotAttributeType,48L - -#define LN_dSAQuality "dSAQuality" -#define NID_dSAQuality 495 -#define OBJ_dSAQuality OBJ_pilotAttributeType,49L - -#define LN_singleLevelQuality "singleLevelQuality" -#define NID_singleLevelQuality 496 -#define OBJ_singleLevelQuality OBJ_pilotAttributeType,50L - -#define LN_subtreeMinimumQuality "subtreeMinimumQuality" -#define NID_subtreeMinimumQuality 497 -#define OBJ_subtreeMinimumQuality OBJ_pilotAttributeType,51L - -#define LN_subtreeMaximumQuality "subtreeMaximumQuality" -#define NID_subtreeMaximumQuality 498 -#define OBJ_subtreeMaximumQuality OBJ_pilotAttributeType,52L - -#define LN_personalSignature "personalSignature" -#define NID_personalSignature 499 -#define OBJ_personalSignature OBJ_pilotAttributeType,53L - -#define LN_dITRedirect "dITRedirect" -#define NID_dITRedirect 500 -#define OBJ_dITRedirect OBJ_pilotAttributeType,54L - -#define SN_audio "audio" -#define NID_audio 501 -#define OBJ_audio OBJ_pilotAttributeType,55L - -#define LN_documentPublisher "documentPublisher" -#define NID_documentPublisher 502 -#define OBJ_documentPublisher OBJ_pilotAttributeType,56L - -#define SN_id_set "id-set" -#define LN_id_set "Secure Electronic Transactions" -#define NID_id_set 512 -#define OBJ_id_set OBJ_international_organizations,42L - -#define SN_set_ctype "set-ctype" -#define LN_set_ctype "content types" -#define NID_set_ctype 513 -#define OBJ_set_ctype OBJ_id_set,0L - -#define SN_set_msgExt "set-msgExt" -#define LN_set_msgExt "message extensions" -#define NID_set_msgExt 514 -#define OBJ_set_msgExt OBJ_id_set,1L - -#define SN_set_attr "set-attr" -#define NID_set_attr 515 -#define OBJ_set_attr OBJ_id_set,3L - -#define SN_set_policy "set-policy" -#define NID_set_policy 516 -#define OBJ_set_policy OBJ_id_set,5L - -#define SN_set_certExt "set-certExt" -#define LN_set_certExt "certificate extensions" -#define NID_set_certExt 517 -#define OBJ_set_certExt OBJ_id_set,7L - -#define SN_set_brand "set-brand" -#define NID_set_brand 518 -#define OBJ_set_brand OBJ_id_set,8L - -#define SN_setct_PANData "setct-PANData" -#define NID_setct_PANData 519 -#define OBJ_setct_PANData OBJ_set_ctype,0L - -#define SN_setct_PANToken "setct-PANToken" -#define NID_setct_PANToken 520 -#define OBJ_setct_PANToken OBJ_set_ctype,1L - -#define SN_setct_PANOnly "setct-PANOnly" -#define NID_setct_PANOnly 521 -#define OBJ_setct_PANOnly OBJ_set_ctype,2L - -#define SN_setct_OIData "setct-OIData" -#define NID_setct_OIData 522 -#define OBJ_setct_OIData OBJ_set_ctype,3L - -#define SN_setct_PI "setct-PI" -#define NID_setct_PI 523 -#define OBJ_setct_PI OBJ_set_ctype,4L - -#define SN_setct_PIData "setct-PIData" -#define NID_setct_PIData 524 -#define OBJ_setct_PIData OBJ_set_ctype,5L - -#define SN_setct_PIDataUnsigned "setct-PIDataUnsigned" -#define NID_setct_PIDataUnsigned 525 -#define OBJ_setct_PIDataUnsigned OBJ_set_ctype,6L - -#define SN_setct_HODInput "setct-HODInput" -#define NID_setct_HODInput 526 -#define OBJ_setct_HODInput OBJ_set_ctype,7L - -#define SN_setct_AuthResBaggage "setct-AuthResBaggage" -#define NID_setct_AuthResBaggage 527 -#define OBJ_setct_AuthResBaggage OBJ_set_ctype,8L - -#define SN_setct_AuthRevReqBaggage "setct-AuthRevReqBaggage" -#define NID_setct_AuthRevReqBaggage 528 -#define OBJ_setct_AuthRevReqBaggage OBJ_set_ctype,9L - -#define SN_setct_AuthRevResBaggage "setct-AuthRevResBaggage" -#define NID_setct_AuthRevResBaggage 529 -#define OBJ_setct_AuthRevResBaggage OBJ_set_ctype,10L - -#define SN_setct_CapTokenSeq "setct-CapTokenSeq" -#define NID_setct_CapTokenSeq 530 -#define OBJ_setct_CapTokenSeq OBJ_set_ctype,11L - -#define SN_setct_PInitResData "setct-PInitResData" -#define NID_setct_PInitResData 531 -#define OBJ_setct_PInitResData OBJ_set_ctype,12L - -#define SN_setct_PI_TBS "setct-PI-TBS" -#define NID_setct_PI_TBS 532 -#define OBJ_setct_PI_TBS OBJ_set_ctype,13L - -#define SN_setct_PResData "setct-PResData" -#define NID_setct_PResData 533 -#define OBJ_setct_PResData OBJ_set_ctype,14L - -#define SN_setct_AuthReqTBS "setct-AuthReqTBS" -#define NID_setct_AuthReqTBS 534 -#define OBJ_setct_AuthReqTBS OBJ_set_ctype,16L - -#define SN_setct_AuthResTBS "setct-AuthResTBS" -#define NID_setct_AuthResTBS 535 -#define OBJ_setct_AuthResTBS OBJ_set_ctype,17L - -#define SN_setct_AuthResTBSX "setct-AuthResTBSX" -#define NID_setct_AuthResTBSX 536 -#define OBJ_setct_AuthResTBSX OBJ_set_ctype,18L - -#define SN_setct_AuthTokenTBS "setct-AuthTokenTBS" -#define NID_setct_AuthTokenTBS 537 -#define OBJ_setct_AuthTokenTBS OBJ_set_ctype,19L - -#define SN_setct_CapTokenData "setct-CapTokenData" -#define NID_setct_CapTokenData 538 -#define OBJ_setct_CapTokenData OBJ_set_ctype,20L - -#define SN_setct_CapTokenTBS "setct-CapTokenTBS" -#define NID_setct_CapTokenTBS 539 -#define OBJ_setct_CapTokenTBS OBJ_set_ctype,21L - -#define SN_setct_AcqCardCodeMsg "setct-AcqCardCodeMsg" -#define NID_setct_AcqCardCodeMsg 540 -#define OBJ_setct_AcqCardCodeMsg OBJ_set_ctype,22L - -#define SN_setct_AuthRevReqTBS "setct-AuthRevReqTBS" -#define NID_setct_AuthRevReqTBS 541 -#define OBJ_setct_AuthRevReqTBS OBJ_set_ctype,23L - -#define SN_setct_AuthRevResData "setct-AuthRevResData" -#define NID_setct_AuthRevResData 542 -#define OBJ_setct_AuthRevResData OBJ_set_ctype,24L - -#define SN_setct_AuthRevResTBS "setct-AuthRevResTBS" -#define NID_setct_AuthRevResTBS 543 -#define OBJ_setct_AuthRevResTBS OBJ_set_ctype,25L - -#define SN_setct_CapReqTBS "setct-CapReqTBS" -#define NID_setct_CapReqTBS 544 -#define OBJ_setct_CapReqTBS OBJ_set_ctype,26L - -#define SN_setct_CapReqTBSX "setct-CapReqTBSX" -#define NID_setct_CapReqTBSX 545 -#define OBJ_setct_CapReqTBSX OBJ_set_ctype,27L - -#define SN_setct_CapResData "setct-CapResData" -#define NID_setct_CapResData 546 -#define OBJ_setct_CapResData OBJ_set_ctype,28L - -#define SN_setct_CapRevReqTBS "setct-CapRevReqTBS" -#define NID_setct_CapRevReqTBS 547 -#define OBJ_setct_CapRevReqTBS OBJ_set_ctype,29L - -#define SN_setct_CapRevReqTBSX "setct-CapRevReqTBSX" -#define NID_setct_CapRevReqTBSX 548 -#define OBJ_setct_CapRevReqTBSX OBJ_set_ctype,30L - -#define SN_setct_CapRevResData "setct-CapRevResData" -#define NID_setct_CapRevResData 549 -#define OBJ_setct_CapRevResData OBJ_set_ctype,31L - -#define SN_setct_CredReqTBS "setct-CredReqTBS" -#define NID_setct_CredReqTBS 550 -#define OBJ_setct_CredReqTBS OBJ_set_ctype,32L - -#define SN_setct_CredReqTBSX "setct-CredReqTBSX" -#define NID_setct_CredReqTBSX 551 -#define OBJ_setct_CredReqTBSX OBJ_set_ctype,33L - -#define SN_setct_CredResData "setct-CredResData" -#define NID_setct_CredResData 552 -#define OBJ_setct_CredResData OBJ_set_ctype,34L - -#define SN_setct_CredRevReqTBS "setct-CredRevReqTBS" -#define NID_setct_CredRevReqTBS 553 -#define OBJ_setct_CredRevReqTBS OBJ_set_ctype,35L - -#define SN_setct_CredRevReqTBSX "setct-CredRevReqTBSX" -#define NID_setct_CredRevReqTBSX 554 -#define OBJ_setct_CredRevReqTBSX OBJ_set_ctype,36L - -#define SN_setct_CredRevResData "setct-CredRevResData" -#define NID_setct_CredRevResData 555 -#define OBJ_setct_CredRevResData OBJ_set_ctype,37L - -#define SN_setct_PCertReqData "setct-PCertReqData" -#define NID_setct_PCertReqData 556 -#define OBJ_setct_PCertReqData OBJ_set_ctype,38L - -#define SN_setct_PCertResTBS "setct-PCertResTBS" -#define NID_setct_PCertResTBS 557 -#define OBJ_setct_PCertResTBS OBJ_set_ctype,39L - -#define SN_setct_BatchAdminReqData "setct-BatchAdminReqData" -#define NID_setct_BatchAdminReqData 558 -#define OBJ_setct_BatchAdminReqData OBJ_set_ctype,40L - -#define SN_setct_BatchAdminResData "setct-BatchAdminResData" -#define NID_setct_BatchAdminResData 559 -#define OBJ_setct_BatchAdminResData OBJ_set_ctype,41L - -#define SN_setct_CardCInitResTBS "setct-CardCInitResTBS" -#define NID_setct_CardCInitResTBS 560 -#define OBJ_setct_CardCInitResTBS OBJ_set_ctype,42L - -#define SN_setct_MeAqCInitResTBS "setct-MeAqCInitResTBS" -#define NID_setct_MeAqCInitResTBS 561 -#define OBJ_setct_MeAqCInitResTBS OBJ_set_ctype,43L - -#define SN_setct_RegFormResTBS "setct-RegFormResTBS" -#define NID_setct_RegFormResTBS 562 -#define OBJ_setct_RegFormResTBS OBJ_set_ctype,44L - -#define SN_setct_CertReqData "setct-CertReqData" -#define NID_setct_CertReqData 563 -#define OBJ_setct_CertReqData OBJ_set_ctype,45L - -#define SN_setct_CertReqTBS "setct-CertReqTBS" -#define NID_setct_CertReqTBS 564 -#define OBJ_setct_CertReqTBS OBJ_set_ctype,46L - -#define SN_setct_CertResData "setct-CertResData" -#define NID_setct_CertResData 565 -#define OBJ_setct_CertResData OBJ_set_ctype,47L - -#define SN_setct_CertInqReqTBS "setct-CertInqReqTBS" -#define NID_setct_CertInqReqTBS 566 -#define OBJ_setct_CertInqReqTBS OBJ_set_ctype,48L - -#define SN_setct_ErrorTBS "setct-ErrorTBS" -#define NID_setct_ErrorTBS 567 -#define OBJ_setct_ErrorTBS OBJ_set_ctype,49L - -#define SN_setct_PIDualSignedTBE "setct-PIDualSignedTBE" -#define NID_setct_PIDualSignedTBE 568 -#define OBJ_setct_PIDualSignedTBE OBJ_set_ctype,50L - -#define SN_setct_PIUnsignedTBE "setct-PIUnsignedTBE" -#define NID_setct_PIUnsignedTBE 569 -#define OBJ_setct_PIUnsignedTBE OBJ_set_ctype,51L - -#define SN_setct_AuthReqTBE "setct-AuthReqTBE" -#define NID_setct_AuthReqTBE 570 -#define OBJ_setct_AuthReqTBE OBJ_set_ctype,52L - -#define SN_setct_AuthResTBE "setct-AuthResTBE" -#define NID_setct_AuthResTBE 571 -#define OBJ_setct_AuthResTBE OBJ_set_ctype,53L - -#define SN_setct_AuthResTBEX "setct-AuthResTBEX" -#define NID_setct_AuthResTBEX 572 -#define OBJ_setct_AuthResTBEX OBJ_set_ctype,54L - -#define SN_setct_AuthTokenTBE "setct-AuthTokenTBE" -#define NID_setct_AuthTokenTBE 573 -#define OBJ_setct_AuthTokenTBE OBJ_set_ctype,55L - -#define SN_setct_CapTokenTBE "setct-CapTokenTBE" -#define NID_setct_CapTokenTBE 574 -#define OBJ_setct_CapTokenTBE OBJ_set_ctype,56L - -#define SN_setct_CapTokenTBEX "setct-CapTokenTBEX" -#define NID_setct_CapTokenTBEX 575 -#define OBJ_setct_CapTokenTBEX OBJ_set_ctype,57L - -#define SN_setct_AcqCardCodeMsgTBE "setct-AcqCardCodeMsgTBE" -#define NID_setct_AcqCardCodeMsgTBE 576 -#define OBJ_setct_AcqCardCodeMsgTBE OBJ_set_ctype,58L - -#define SN_setct_AuthRevReqTBE "setct-AuthRevReqTBE" -#define NID_setct_AuthRevReqTBE 577 -#define OBJ_setct_AuthRevReqTBE OBJ_set_ctype,59L - -#define SN_setct_AuthRevResTBE "setct-AuthRevResTBE" -#define NID_setct_AuthRevResTBE 578 -#define OBJ_setct_AuthRevResTBE OBJ_set_ctype,60L - -#define SN_setct_AuthRevResTBEB "setct-AuthRevResTBEB" -#define NID_setct_AuthRevResTBEB 579 -#define OBJ_setct_AuthRevResTBEB OBJ_set_ctype,61L - -#define SN_setct_CapReqTBE "setct-CapReqTBE" -#define NID_setct_CapReqTBE 580 -#define OBJ_setct_CapReqTBE OBJ_set_ctype,62L - -#define SN_setct_CapReqTBEX "setct-CapReqTBEX" -#define NID_setct_CapReqTBEX 581 -#define OBJ_setct_CapReqTBEX OBJ_set_ctype,63L - -#define SN_setct_CapResTBE "setct-CapResTBE" -#define NID_setct_CapResTBE 582 -#define OBJ_setct_CapResTBE OBJ_set_ctype,64L - -#define SN_setct_CapRevReqTBE "setct-CapRevReqTBE" -#define NID_setct_CapRevReqTBE 583 -#define OBJ_setct_CapRevReqTBE OBJ_set_ctype,65L - -#define SN_setct_CapRevReqTBEX "setct-CapRevReqTBEX" -#define NID_setct_CapRevReqTBEX 584 -#define OBJ_setct_CapRevReqTBEX OBJ_set_ctype,66L - -#define SN_setct_CapRevResTBE "setct-CapRevResTBE" -#define NID_setct_CapRevResTBE 585 -#define OBJ_setct_CapRevResTBE OBJ_set_ctype,67L - -#define SN_setct_CredReqTBE "setct-CredReqTBE" -#define NID_setct_CredReqTBE 586 -#define OBJ_setct_CredReqTBE OBJ_set_ctype,68L - -#define SN_setct_CredReqTBEX "setct-CredReqTBEX" -#define NID_setct_CredReqTBEX 587 -#define OBJ_setct_CredReqTBEX OBJ_set_ctype,69L - -#define SN_setct_CredResTBE "setct-CredResTBE" -#define NID_setct_CredResTBE 588 -#define OBJ_setct_CredResTBE OBJ_set_ctype,70L - -#define SN_setct_CredRevReqTBE "setct-CredRevReqTBE" -#define NID_setct_CredRevReqTBE 589 -#define OBJ_setct_CredRevReqTBE OBJ_set_ctype,71L - -#define SN_setct_CredRevReqTBEX "setct-CredRevReqTBEX" -#define NID_setct_CredRevReqTBEX 590 -#define OBJ_setct_CredRevReqTBEX OBJ_set_ctype,72L - -#define SN_setct_CredRevResTBE "setct-CredRevResTBE" -#define NID_setct_CredRevResTBE 591 -#define OBJ_setct_CredRevResTBE OBJ_set_ctype,73L - -#define SN_setct_BatchAdminReqTBE "setct-BatchAdminReqTBE" -#define NID_setct_BatchAdminReqTBE 592 -#define OBJ_setct_BatchAdminReqTBE OBJ_set_ctype,74L - -#define SN_setct_BatchAdminResTBE "setct-BatchAdminResTBE" -#define NID_setct_BatchAdminResTBE 593 -#define OBJ_setct_BatchAdminResTBE OBJ_set_ctype,75L - -#define SN_setct_RegFormReqTBE "setct-RegFormReqTBE" -#define NID_setct_RegFormReqTBE 594 -#define OBJ_setct_RegFormReqTBE OBJ_set_ctype,76L - -#define SN_setct_CertReqTBE "setct-CertReqTBE" -#define NID_setct_CertReqTBE 595 -#define OBJ_setct_CertReqTBE OBJ_set_ctype,77L - -#define SN_setct_CertReqTBEX "setct-CertReqTBEX" -#define NID_setct_CertReqTBEX 596 -#define OBJ_setct_CertReqTBEX OBJ_set_ctype,78L - -#define SN_setct_CertResTBE "setct-CertResTBE" -#define NID_setct_CertResTBE 597 -#define OBJ_setct_CertResTBE OBJ_set_ctype,79L - -#define SN_setct_CRLNotificationTBS "setct-CRLNotificationTBS" -#define NID_setct_CRLNotificationTBS 598 -#define OBJ_setct_CRLNotificationTBS OBJ_set_ctype,80L - -#define SN_setct_CRLNotificationResTBS "setct-CRLNotificationResTBS" -#define NID_setct_CRLNotificationResTBS 599 -#define OBJ_setct_CRLNotificationResTBS OBJ_set_ctype,81L - -#define SN_setct_BCIDistributionTBS "setct-BCIDistributionTBS" -#define NID_setct_BCIDistributionTBS 600 -#define OBJ_setct_BCIDistributionTBS OBJ_set_ctype,82L - -#define SN_setext_genCrypt "setext-genCrypt" -#define LN_setext_genCrypt "generic cryptogram" -#define NID_setext_genCrypt 601 -#define OBJ_setext_genCrypt OBJ_set_msgExt,1L - -#define SN_setext_miAuth "setext-miAuth" -#define LN_setext_miAuth "merchant initiated auth" -#define NID_setext_miAuth 602 -#define OBJ_setext_miAuth OBJ_set_msgExt,3L - -#define SN_setext_pinSecure "setext-pinSecure" -#define NID_setext_pinSecure 603 -#define OBJ_setext_pinSecure OBJ_set_msgExt,4L - -#define SN_setext_pinAny "setext-pinAny" -#define NID_setext_pinAny 604 -#define OBJ_setext_pinAny OBJ_set_msgExt,5L - -#define SN_setext_track2 "setext-track2" -#define NID_setext_track2 605 -#define OBJ_setext_track2 OBJ_set_msgExt,7L - -#define SN_setext_cv "setext-cv" -#define LN_setext_cv "additional verification" -#define NID_setext_cv 606 -#define OBJ_setext_cv OBJ_set_msgExt,8L - -#define SN_set_policy_root "set-policy-root" -#define NID_set_policy_root 607 -#define OBJ_set_policy_root OBJ_set_policy,0L - -#define SN_setCext_hashedRoot "setCext-hashedRoot" -#define NID_setCext_hashedRoot 608 -#define OBJ_setCext_hashedRoot OBJ_set_certExt,0L - -#define SN_setCext_certType "setCext-certType" -#define NID_setCext_certType 609 -#define OBJ_setCext_certType OBJ_set_certExt,1L - -#define SN_setCext_merchData "setCext-merchData" -#define NID_setCext_merchData 610 -#define OBJ_setCext_merchData OBJ_set_certExt,2L - -#define SN_setCext_cCertRequired "setCext-cCertRequired" -#define NID_setCext_cCertRequired 611 -#define OBJ_setCext_cCertRequired OBJ_set_certExt,3L - -#define SN_setCext_tunneling "setCext-tunneling" -#define NID_setCext_tunneling 612 -#define OBJ_setCext_tunneling OBJ_set_certExt,4L - -#define SN_setCext_setExt "setCext-setExt" -#define NID_setCext_setExt 613 -#define OBJ_setCext_setExt OBJ_set_certExt,5L - -#define SN_setCext_setQualf "setCext-setQualf" -#define NID_setCext_setQualf 614 -#define OBJ_setCext_setQualf OBJ_set_certExt,6L - -#define SN_setCext_PGWYcapabilities "setCext-PGWYcapabilities" -#define NID_setCext_PGWYcapabilities 615 -#define OBJ_setCext_PGWYcapabilities OBJ_set_certExt,7L - -#define SN_setCext_TokenIdentifier "setCext-TokenIdentifier" -#define NID_setCext_TokenIdentifier 616 -#define OBJ_setCext_TokenIdentifier OBJ_set_certExt,8L - -#define SN_setCext_Track2Data "setCext-Track2Data" -#define NID_setCext_Track2Data 617 -#define OBJ_setCext_Track2Data OBJ_set_certExt,9L - -#define SN_setCext_TokenType "setCext-TokenType" -#define NID_setCext_TokenType 618 -#define OBJ_setCext_TokenType OBJ_set_certExt,10L - -#define SN_setCext_IssuerCapabilities "setCext-IssuerCapabilities" -#define NID_setCext_IssuerCapabilities 619 -#define OBJ_setCext_IssuerCapabilities OBJ_set_certExt,11L - -#define SN_setAttr_Cert "setAttr-Cert" -#define NID_setAttr_Cert 620 -#define OBJ_setAttr_Cert OBJ_set_attr,0L - -#define SN_setAttr_PGWYcap "setAttr-PGWYcap" -#define LN_setAttr_PGWYcap "payment gateway capabilities" -#define NID_setAttr_PGWYcap 621 -#define OBJ_setAttr_PGWYcap OBJ_set_attr,1L - -#define SN_setAttr_TokenType "setAttr-TokenType" -#define NID_setAttr_TokenType 622 -#define OBJ_setAttr_TokenType OBJ_set_attr,2L - -#define SN_setAttr_IssCap "setAttr-IssCap" -#define LN_setAttr_IssCap "issuer capabilities" -#define NID_setAttr_IssCap 623 -#define OBJ_setAttr_IssCap OBJ_set_attr,3L - -#define SN_set_rootKeyThumb "set-rootKeyThumb" -#define NID_set_rootKeyThumb 624 -#define OBJ_set_rootKeyThumb OBJ_setAttr_Cert,0L - -#define SN_set_addPolicy "set-addPolicy" -#define NID_set_addPolicy 625 -#define OBJ_set_addPolicy OBJ_setAttr_Cert,1L - -#define SN_setAttr_Token_EMV "setAttr-Token-EMV" -#define NID_setAttr_Token_EMV 626 -#define OBJ_setAttr_Token_EMV OBJ_setAttr_TokenType,1L - -#define SN_setAttr_Token_B0Prime "setAttr-Token-B0Prime" -#define NID_setAttr_Token_B0Prime 627 -#define OBJ_setAttr_Token_B0Prime OBJ_setAttr_TokenType,2L - -#define SN_setAttr_IssCap_CVM "setAttr-IssCap-CVM" -#define NID_setAttr_IssCap_CVM 628 -#define OBJ_setAttr_IssCap_CVM OBJ_setAttr_IssCap,3L - -#define SN_setAttr_IssCap_T2 "setAttr-IssCap-T2" -#define NID_setAttr_IssCap_T2 629 -#define OBJ_setAttr_IssCap_T2 OBJ_setAttr_IssCap,4L - -#define SN_setAttr_IssCap_Sig "setAttr-IssCap-Sig" -#define NID_setAttr_IssCap_Sig 630 -#define OBJ_setAttr_IssCap_Sig OBJ_setAttr_IssCap,5L - -#define SN_setAttr_GenCryptgrm "setAttr-GenCryptgrm" -#define LN_setAttr_GenCryptgrm "generate cryptogram" -#define NID_setAttr_GenCryptgrm 631 -#define OBJ_setAttr_GenCryptgrm OBJ_setAttr_IssCap_CVM,1L - -#define SN_setAttr_T2Enc "setAttr-T2Enc" -#define LN_setAttr_T2Enc "encrypted track 2" -#define NID_setAttr_T2Enc 632 -#define OBJ_setAttr_T2Enc OBJ_setAttr_IssCap_T2,1L - -#define SN_setAttr_T2cleartxt "setAttr-T2cleartxt" -#define LN_setAttr_T2cleartxt "cleartext track 2" -#define NID_setAttr_T2cleartxt 633 -#define OBJ_setAttr_T2cleartxt OBJ_setAttr_IssCap_T2,2L - -#define SN_setAttr_TokICCsig "setAttr-TokICCsig" -#define LN_setAttr_TokICCsig "ICC or token signature" -#define NID_setAttr_TokICCsig 634 -#define OBJ_setAttr_TokICCsig OBJ_setAttr_IssCap_Sig,1L - -#define SN_setAttr_SecDevSig "setAttr-SecDevSig" -#define LN_setAttr_SecDevSig "secure device signature" -#define NID_setAttr_SecDevSig 635 -#define OBJ_setAttr_SecDevSig OBJ_setAttr_IssCap_Sig,2L - -#define SN_set_brand_IATA_ATA "set-brand-IATA-ATA" -#define NID_set_brand_IATA_ATA 636 -#define OBJ_set_brand_IATA_ATA OBJ_set_brand,1L - -#define SN_set_brand_Diners "set-brand-Diners" -#define NID_set_brand_Diners 637 -#define OBJ_set_brand_Diners OBJ_set_brand,30L - -#define SN_set_brand_AmericanExpress "set-brand-AmericanExpress" -#define NID_set_brand_AmericanExpress 638 -#define OBJ_set_brand_AmericanExpress OBJ_set_brand,34L - -#define SN_set_brand_JCB "set-brand-JCB" -#define NID_set_brand_JCB 639 -#define OBJ_set_brand_JCB OBJ_set_brand,35L - -#define SN_set_brand_Visa "set-brand-Visa" -#define NID_set_brand_Visa 640 -#define OBJ_set_brand_Visa OBJ_set_brand,4L - -#define SN_set_brand_MasterCard "set-brand-MasterCard" -#define NID_set_brand_MasterCard 641 -#define OBJ_set_brand_MasterCard OBJ_set_brand,5L - -#define SN_set_brand_Novus "set-brand-Novus" -#define NID_set_brand_Novus 642 -#define OBJ_set_brand_Novus OBJ_set_brand,6011L - -#define SN_des_cdmf "DES-CDMF" -#define LN_des_cdmf "des-cdmf" -#define NID_des_cdmf 643 -#define OBJ_des_cdmf OBJ_rsadsi,3L,10L - -#define SN_rsaOAEPEncryptionSET "rsaOAEPEncryptionSET" -#define NID_rsaOAEPEncryptionSET 644 -#define OBJ_rsaOAEPEncryptionSET OBJ_rsadsi,1L,1L,6L - -#define SN_ipsec3 "Oakley-EC2N-3" -#define LN_ipsec3 "ipsec3" -#define NID_ipsec3 749 - -#define SN_ipsec4 "Oakley-EC2N-4" -#define LN_ipsec4 "ipsec4" -#define NID_ipsec4 750 - -#define SN_whirlpool "whirlpool" -#define NID_whirlpool 804 -#define OBJ_whirlpool OBJ_iso,0L,10118L,3L,0L,55L - -#define SN_cryptopro "cryptopro" -#define NID_cryptopro 805 -#define OBJ_cryptopro OBJ_member_body,643L,2L,2L - -#define SN_cryptocom "cryptocom" -#define NID_cryptocom 806 -#define OBJ_cryptocom OBJ_member_body,643L,2L,9L - -#define SN_id_tc26 "id-tc26" -#define NID_id_tc26 974 -#define OBJ_id_tc26 OBJ_member_body,643L,7L,1L - -#define SN_id_GostR3411_94_with_GostR3410_2001 "id-GostR3411-94-with-GostR3410-2001" -#define LN_id_GostR3411_94_with_GostR3410_2001 "GOST R 34.11-94 with GOST R 34.10-2001" -#define NID_id_GostR3411_94_with_GostR3410_2001 807 -#define OBJ_id_GostR3411_94_with_GostR3410_2001 OBJ_cryptopro,3L - -#define SN_id_GostR3411_94_with_GostR3410_94 "id-GostR3411-94-with-GostR3410-94" -#define LN_id_GostR3411_94_with_GostR3410_94 "GOST R 34.11-94 with GOST R 34.10-94" -#define NID_id_GostR3411_94_with_GostR3410_94 808 -#define OBJ_id_GostR3411_94_with_GostR3410_94 OBJ_cryptopro,4L - -#define SN_id_GostR3411_94 "md_gost94" -#define LN_id_GostR3411_94 "GOST R 34.11-94" -#define NID_id_GostR3411_94 809 -#define OBJ_id_GostR3411_94 OBJ_cryptopro,9L - -#define SN_id_HMACGostR3411_94 "id-HMACGostR3411-94" -#define LN_id_HMACGostR3411_94 "HMAC GOST 34.11-94" -#define NID_id_HMACGostR3411_94 810 -#define OBJ_id_HMACGostR3411_94 OBJ_cryptopro,10L - -#define SN_id_GostR3410_2001 "gost2001" -#define LN_id_GostR3410_2001 "GOST R 34.10-2001" -#define NID_id_GostR3410_2001 811 -#define OBJ_id_GostR3410_2001 OBJ_cryptopro,19L - -#define SN_id_GostR3410_94 "gost94" -#define LN_id_GostR3410_94 "GOST R 34.10-94" -#define NID_id_GostR3410_94 812 -#define OBJ_id_GostR3410_94 OBJ_cryptopro,20L - -#define SN_id_Gost28147_89 "gost89" -#define LN_id_Gost28147_89 "GOST 28147-89" -#define NID_id_Gost28147_89 813 -#define OBJ_id_Gost28147_89 OBJ_cryptopro,21L - -#define SN_gost89_cnt "gost89-cnt" -#define NID_gost89_cnt 814 - -#define SN_gost89_cnt_12 "gost89-cnt-12" -#define NID_gost89_cnt_12 975 - -#define SN_gost89_cbc "gost89-cbc" -#define NID_gost89_cbc 1009 - -#define SN_gost89_ecb "gost89-ecb" -#define NID_gost89_ecb 1010 - -#define SN_gost89_ctr "gost89-ctr" -#define NID_gost89_ctr 1011 - -#define SN_id_Gost28147_89_MAC "gost-mac" -#define LN_id_Gost28147_89_MAC "GOST 28147-89 MAC" -#define NID_id_Gost28147_89_MAC 815 -#define OBJ_id_Gost28147_89_MAC OBJ_cryptopro,22L - -#define SN_gost_mac_12 "gost-mac-12" -#define NID_gost_mac_12 976 - -#define SN_id_GostR3411_94_prf "prf-gostr3411-94" -#define LN_id_GostR3411_94_prf "GOST R 34.11-94 PRF" -#define NID_id_GostR3411_94_prf 816 -#define OBJ_id_GostR3411_94_prf OBJ_cryptopro,23L - -#define SN_id_GostR3410_2001DH "id-GostR3410-2001DH" -#define LN_id_GostR3410_2001DH "GOST R 34.10-2001 DH" -#define NID_id_GostR3410_2001DH 817 -#define OBJ_id_GostR3410_2001DH OBJ_cryptopro,98L - -#define SN_id_GostR3410_94DH "id-GostR3410-94DH" -#define LN_id_GostR3410_94DH "GOST R 34.10-94 DH" -#define NID_id_GostR3410_94DH 818 -#define OBJ_id_GostR3410_94DH OBJ_cryptopro,99L - -#define SN_id_Gost28147_89_CryptoPro_KeyMeshing "id-Gost28147-89-CryptoPro-KeyMeshing" -#define NID_id_Gost28147_89_CryptoPro_KeyMeshing 819 -#define OBJ_id_Gost28147_89_CryptoPro_KeyMeshing OBJ_cryptopro,14L,1L - -#define SN_id_Gost28147_89_None_KeyMeshing "id-Gost28147-89-None-KeyMeshing" -#define NID_id_Gost28147_89_None_KeyMeshing 820 -#define OBJ_id_Gost28147_89_None_KeyMeshing OBJ_cryptopro,14L,0L - -#define SN_id_GostR3411_94_TestParamSet "id-GostR3411-94-TestParamSet" -#define NID_id_GostR3411_94_TestParamSet 821 -#define OBJ_id_GostR3411_94_TestParamSet OBJ_cryptopro,30L,0L - -#define SN_id_GostR3411_94_CryptoProParamSet "id-GostR3411-94-CryptoProParamSet" -#define NID_id_GostR3411_94_CryptoProParamSet 822 -#define OBJ_id_GostR3411_94_CryptoProParamSet OBJ_cryptopro,30L,1L - -#define SN_id_Gost28147_89_TestParamSet "id-Gost28147-89-TestParamSet" -#define NID_id_Gost28147_89_TestParamSet 823 -#define OBJ_id_Gost28147_89_TestParamSet OBJ_cryptopro,31L,0L - -#define SN_id_Gost28147_89_CryptoPro_A_ParamSet "id-Gost28147-89-CryptoPro-A-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_A_ParamSet 824 -#define OBJ_id_Gost28147_89_CryptoPro_A_ParamSet OBJ_cryptopro,31L,1L - -#define SN_id_Gost28147_89_CryptoPro_B_ParamSet "id-Gost28147-89-CryptoPro-B-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_B_ParamSet 825 -#define OBJ_id_Gost28147_89_CryptoPro_B_ParamSet OBJ_cryptopro,31L,2L - -#define SN_id_Gost28147_89_CryptoPro_C_ParamSet "id-Gost28147-89-CryptoPro-C-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_C_ParamSet 826 -#define OBJ_id_Gost28147_89_CryptoPro_C_ParamSet OBJ_cryptopro,31L,3L - -#define SN_id_Gost28147_89_CryptoPro_D_ParamSet "id-Gost28147-89-CryptoPro-D-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_D_ParamSet 827 -#define OBJ_id_Gost28147_89_CryptoPro_D_ParamSet OBJ_cryptopro,31L,4L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet 828 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_1_ParamSet OBJ_cryptopro,31L,5L - -#define SN_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet "id-Gost28147-89-CryptoPro-Oscar-1-0-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet 829 -#define OBJ_id_Gost28147_89_CryptoPro_Oscar_1_0_ParamSet OBJ_cryptopro,31L,6L - -#define SN_id_Gost28147_89_CryptoPro_RIC_1_ParamSet "id-Gost28147-89-CryptoPro-RIC-1-ParamSet" -#define NID_id_Gost28147_89_CryptoPro_RIC_1_ParamSet 830 -#define OBJ_id_Gost28147_89_CryptoPro_RIC_1_ParamSet OBJ_cryptopro,31L,7L - -#define SN_id_GostR3410_94_TestParamSet "id-GostR3410-94-TestParamSet" -#define NID_id_GostR3410_94_TestParamSet 831 -#define OBJ_id_GostR3410_94_TestParamSet OBJ_cryptopro,32L,0L - -#define SN_id_GostR3410_94_CryptoPro_A_ParamSet "id-GostR3410-94-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_A_ParamSet 832 -#define OBJ_id_GostR3410_94_CryptoPro_A_ParamSet OBJ_cryptopro,32L,2L - -#define SN_id_GostR3410_94_CryptoPro_B_ParamSet "id-GostR3410-94-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_B_ParamSet 833 -#define OBJ_id_GostR3410_94_CryptoPro_B_ParamSet OBJ_cryptopro,32L,3L - -#define SN_id_GostR3410_94_CryptoPro_C_ParamSet "id-GostR3410-94-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_C_ParamSet 834 -#define OBJ_id_GostR3410_94_CryptoPro_C_ParamSet OBJ_cryptopro,32L,4L - -#define SN_id_GostR3410_94_CryptoPro_D_ParamSet "id-GostR3410-94-CryptoPro-D-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_D_ParamSet 835 -#define OBJ_id_GostR3410_94_CryptoPro_D_ParamSet OBJ_cryptopro,32L,5L - -#define SN_id_GostR3410_94_CryptoPro_XchA_ParamSet "id-GostR3410-94-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchA_ParamSet 836 -#define OBJ_id_GostR3410_94_CryptoPro_XchA_ParamSet OBJ_cryptopro,33L,1L - -#define SN_id_GostR3410_94_CryptoPro_XchB_ParamSet "id-GostR3410-94-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchB_ParamSet 837 -#define OBJ_id_GostR3410_94_CryptoPro_XchB_ParamSet OBJ_cryptopro,33L,2L - -#define SN_id_GostR3410_94_CryptoPro_XchC_ParamSet "id-GostR3410-94-CryptoPro-XchC-ParamSet" -#define NID_id_GostR3410_94_CryptoPro_XchC_ParamSet 838 -#define OBJ_id_GostR3410_94_CryptoPro_XchC_ParamSet OBJ_cryptopro,33L,3L - -#define SN_id_GostR3410_2001_TestParamSet "id-GostR3410-2001-TestParamSet" -#define NID_id_GostR3410_2001_TestParamSet 839 -#define OBJ_id_GostR3410_2001_TestParamSet OBJ_cryptopro,35L,0L - -#define SN_id_GostR3410_2001_CryptoPro_A_ParamSet "id-GostR3410-2001-CryptoPro-A-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_A_ParamSet 840 -#define OBJ_id_GostR3410_2001_CryptoPro_A_ParamSet OBJ_cryptopro,35L,1L - -#define SN_id_GostR3410_2001_CryptoPro_B_ParamSet "id-GostR3410-2001-CryptoPro-B-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_B_ParamSet 841 -#define OBJ_id_GostR3410_2001_CryptoPro_B_ParamSet OBJ_cryptopro,35L,2L - -#define SN_id_GostR3410_2001_CryptoPro_C_ParamSet "id-GostR3410-2001-CryptoPro-C-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_C_ParamSet 842 -#define OBJ_id_GostR3410_2001_CryptoPro_C_ParamSet OBJ_cryptopro,35L,3L - -#define SN_id_GostR3410_2001_CryptoPro_XchA_ParamSet "id-GostR3410-2001-CryptoPro-XchA-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchA_ParamSet 843 -#define OBJ_id_GostR3410_2001_CryptoPro_XchA_ParamSet OBJ_cryptopro,36L,0L - -#define SN_id_GostR3410_2001_CryptoPro_XchB_ParamSet "id-GostR3410-2001-CryptoPro-XchB-ParamSet" -#define NID_id_GostR3410_2001_CryptoPro_XchB_ParamSet 844 -#define OBJ_id_GostR3410_2001_CryptoPro_XchB_ParamSet OBJ_cryptopro,36L,1L - -#define SN_id_GostR3410_94_a "id-GostR3410-94-a" -#define NID_id_GostR3410_94_a 845 -#define OBJ_id_GostR3410_94_a OBJ_id_GostR3410_94,1L - -#define SN_id_GostR3410_94_aBis "id-GostR3410-94-aBis" -#define NID_id_GostR3410_94_aBis 846 -#define OBJ_id_GostR3410_94_aBis OBJ_id_GostR3410_94,2L - -#define SN_id_GostR3410_94_b "id-GostR3410-94-b" -#define NID_id_GostR3410_94_b 847 -#define OBJ_id_GostR3410_94_b OBJ_id_GostR3410_94,3L - -#define SN_id_GostR3410_94_bBis "id-GostR3410-94-bBis" -#define NID_id_GostR3410_94_bBis 848 -#define OBJ_id_GostR3410_94_bBis OBJ_id_GostR3410_94,4L - -#define SN_id_Gost28147_89_cc "id-Gost28147-89-cc" -#define LN_id_Gost28147_89_cc "GOST 28147-89 Cryptocom ParamSet" -#define NID_id_Gost28147_89_cc 849 -#define OBJ_id_Gost28147_89_cc OBJ_cryptocom,1L,6L,1L - -#define SN_id_GostR3410_94_cc "gost94cc" -#define LN_id_GostR3410_94_cc "GOST 34.10-94 Cryptocom" -#define NID_id_GostR3410_94_cc 850 -#define OBJ_id_GostR3410_94_cc OBJ_cryptocom,1L,5L,3L - -#define SN_id_GostR3410_2001_cc "gost2001cc" -#define LN_id_GostR3410_2001_cc "GOST 34.10-2001 Cryptocom" -#define NID_id_GostR3410_2001_cc 851 -#define OBJ_id_GostR3410_2001_cc OBJ_cryptocom,1L,5L,4L - -#define SN_id_GostR3411_94_with_GostR3410_94_cc "id-GostR3411-94-with-GostR3410-94-cc" -#define LN_id_GostR3411_94_with_GostR3410_94_cc "GOST R 34.11-94 with GOST R 34.10-94 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_94_cc 852 -#define OBJ_id_GostR3411_94_with_GostR3410_94_cc OBJ_cryptocom,1L,3L,3L - -#define SN_id_GostR3411_94_with_GostR3410_2001_cc "id-GostR3411-94-with-GostR3410-2001-cc" -#define LN_id_GostR3411_94_with_GostR3410_2001_cc "GOST R 34.11-94 with GOST R 34.10-2001 Cryptocom" -#define NID_id_GostR3411_94_with_GostR3410_2001_cc 853 -#define OBJ_id_GostR3411_94_with_GostR3410_2001_cc OBJ_cryptocom,1L,3L,4L - -#define SN_id_GostR3410_2001_ParamSet_cc "id-GostR3410-2001-ParamSet-cc" -#define LN_id_GostR3410_2001_ParamSet_cc "GOST R 3410-2001 Parameter Set Cryptocom" -#define NID_id_GostR3410_2001_ParamSet_cc 854 -#define OBJ_id_GostR3410_2001_ParamSet_cc OBJ_cryptocom,1L,8L,1L - -#define SN_id_tc26_algorithms "id-tc26-algorithms" -#define NID_id_tc26_algorithms 977 -#define OBJ_id_tc26_algorithms OBJ_id_tc26,1L - -#define SN_id_tc26_sign "id-tc26-sign" -#define NID_id_tc26_sign 978 -#define OBJ_id_tc26_sign OBJ_id_tc26_algorithms,1L - -#define SN_id_GostR3410_2012_256 "gost2012_256" -#define LN_id_GostR3410_2012_256 "GOST R 34.10-2012 with 256 bit modulus" -#define NID_id_GostR3410_2012_256 979 -#define OBJ_id_GostR3410_2012_256 OBJ_id_tc26_sign,1L - -#define SN_id_GostR3410_2012_512 "gost2012_512" -#define LN_id_GostR3410_2012_512 "GOST R 34.10-2012 with 512 bit modulus" -#define NID_id_GostR3410_2012_512 980 -#define OBJ_id_GostR3410_2012_512 OBJ_id_tc26_sign,2L - -#define SN_id_tc26_digest "id-tc26-digest" -#define NID_id_tc26_digest 981 -#define OBJ_id_tc26_digest OBJ_id_tc26_algorithms,2L - -#define SN_id_GostR3411_2012_256 "md_gost12_256" -#define LN_id_GostR3411_2012_256 "GOST R 34.11-2012 with 256 bit hash" -#define NID_id_GostR3411_2012_256 982 -#define OBJ_id_GostR3411_2012_256 OBJ_id_tc26_digest,2L - -#define SN_id_GostR3411_2012_512 "md_gost12_512" -#define LN_id_GostR3411_2012_512 "GOST R 34.11-2012 with 512 bit hash" -#define NID_id_GostR3411_2012_512 983 -#define OBJ_id_GostR3411_2012_512 OBJ_id_tc26_digest,3L - -#define SN_id_tc26_signwithdigest "id-tc26-signwithdigest" -#define NID_id_tc26_signwithdigest 984 -#define OBJ_id_tc26_signwithdigest OBJ_id_tc26_algorithms,3L - -#define SN_id_tc26_signwithdigest_gost3410_2012_256 "id-tc26-signwithdigest-gost3410-2012-256" -#define LN_id_tc26_signwithdigest_gost3410_2012_256 "GOST R 34.10-2012 with GOST R 34.11-2012 (256 bit)" -#define NID_id_tc26_signwithdigest_gost3410_2012_256 985 -#define OBJ_id_tc26_signwithdigest_gost3410_2012_256 OBJ_id_tc26_signwithdigest,2L - -#define SN_id_tc26_signwithdigest_gost3410_2012_512 "id-tc26-signwithdigest-gost3410-2012-512" -#define LN_id_tc26_signwithdigest_gost3410_2012_512 "GOST R 34.10-2012 with GOST R 34.11-2012 (512 bit)" -#define NID_id_tc26_signwithdigest_gost3410_2012_512 986 -#define OBJ_id_tc26_signwithdigest_gost3410_2012_512 OBJ_id_tc26_signwithdigest,3L - -#define SN_id_tc26_mac "id-tc26-mac" -#define NID_id_tc26_mac 987 -#define OBJ_id_tc26_mac OBJ_id_tc26_algorithms,4L - -#define SN_id_tc26_hmac_gost_3411_2012_256 "id-tc26-hmac-gost-3411-2012-256" -#define LN_id_tc26_hmac_gost_3411_2012_256 "HMAC GOST 34.11-2012 256 bit" -#define NID_id_tc26_hmac_gost_3411_2012_256 988 -#define OBJ_id_tc26_hmac_gost_3411_2012_256 OBJ_id_tc26_mac,1L - -#define SN_id_tc26_hmac_gost_3411_2012_512 "id-tc26-hmac-gost-3411-2012-512" -#define LN_id_tc26_hmac_gost_3411_2012_512 "HMAC GOST 34.11-2012 512 bit" -#define NID_id_tc26_hmac_gost_3411_2012_512 989 -#define OBJ_id_tc26_hmac_gost_3411_2012_512 OBJ_id_tc26_mac,2L - -#define SN_id_tc26_cipher "id-tc26-cipher" -#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 - -#define SN_id_tc26_agreement_gost_3410_2012_256 "id-tc26-agreement-gost-3410-2012-256" -#define NID_id_tc26_agreement_gost_3410_2012_256 992 -#define OBJ_id_tc26_agreement_gost_3410_2012_256 OBJ_id_tc26_agreement,1L - -#define SN_id_tc26_agreement_gost_3410_2012_512 "id-tc26-agreement-gost-3410-2012-512" -#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 - -#define SN_id_tc26_sign_constants "id-tc26-sign-constants" -#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 - -#define SN_id_tc26_gost_3410_2012_512_paramSetTest "id-tc26-gost-3410-2012-512-paramSetTest" -#define LN_id_tc26_gost_3410_2012_512_paramSetTest "GOST R 34.10-2012 (512 bit) testing parameter set" -#define NID_id_tc26_gost_3410_2012_512_paramSetTest 997 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetTest OBJ_id_tc26_gost_3410_2012_512_constants,0L - -#define SN_id_tc26_gost_3410_2012_512_paramSetA "id-tc26-gost-3410-2012-512-paramSetA" -#define LN_id_tc26_gost_3410_2012_512_paramSetA "GOST R 34.10-2012 (512 bit) ParamSet A" -#define NID_id_tc26_gost_3410_2012_512_paramSetA 998 -#define OBJ_id_tc26_gost_3410_2012_512_paramSetA OBJ_id_tc26_gost_3410_2012_512_constants,1L - -#define SN_id_tc26_gost_3410_2012_512_paramSetB "id-tc26-gost-3410-2012-512-paramSetB" -#define LN_id_tc26_gost_3410_2012_512_paramSetB "GOST R 34.10-2012 (512 bit) ParamSet B" -#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 - -#define SN_id_tc26_cipher_constants "id-tc26-cipher-constants" -#define NID_id_tc26_cipher_constants 1001 -#define OBJ_id_tc26_cipher_constants OBJ_id_tc26_constants,5L - -#define SN_id_tc26_gost_28147_constants "id-tc26-gost-28147-constants" -#define NID_id_tc26_gost_28147_constants 1002 -#define OBJ_id_tc26_gost_28147_constants OBJ_id_tc26_cipher_constants,1L - -#define SN_id_tc26_gost_28147_param_Z "id-tc26-gost-28147-param-Z" -#define LN_id_tc26_gost_28147_param_Z "GOST 28147-89 TC26 parameter set" -#define NID_id_tc26_gost_28147_param_Z 1003 -#define OBJ_id_tc26_gost_28147_param_Z OBJ_id_tc26_gost_28147_constants,1L - -#define SN_INN "INN" -#define LN_INN "INN" -#define NID_INN 1004 -#define OBJ_INN OBJ_member_body,643L,3L,131L,1L,1L - -#define SN_OGRN "OGRN" -#define LN_OGRN "OGRN" -#define NID_OGRN 1005 -#define OBJ_OGRN OBJ_member_body,643L,100L,1L - -#define SN_SNILS "SNILS" -#define LN_SNILS "SNILS" -#define NID_SNILS 1006 -#define OBJ_SNILS OBJ_member_body,643L,100L,3L - -#define SN_subjectSignTool "subjectSignTool" -#define LN_subjectSignTool "Signing Tool of Subject" -#define NID_subjectSignTool 1007 -#define OBJ_subjectSignTool OBJ_member_body,643L,100L,111L - -#define SN_issuerSignTool "issuerSignTool" -#define LN_issuerSignTool "Signing Tool of Issuer" -#define NID_issuerSignTool 1008 -#define OBJ_issuerSignTool OBJ_member_body,643L,100L,112L - -#define SN_grasshopper_ecb "grasshopper-ecb" -#define NID_grasshopper_ecb 1012 - -#define SN_grasshopper_ctr "grasshopper-ctr" -#define NID_grasshopper_ctr 1013 - -#define SN_grasshopper_ofb "grasshopper-ofb" -#define NID_grasshopper_ofb 1014 - -#define SN_grasshopper_cbc "grasshopper-cbc" -#define NID_grasshopper_cbc 1015 - -#define SN_grasshopper_cfb "grasshopper-cfb" -#define NID_grasshopper_cfb 1016 - -#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 -#define OBJ_camellia_128_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,2L - -#define SN_camellia_192_cbc "CAMELLIA-192-CBC" -#define LN_camellia_192_cbc "camellia-192-cbc" -#define NID_camellia_192_cbc 752 -#define OBJ_camellia_192_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,3L - -#define SN_camellia_256_cbc "CAMELLIA-256-CBC" -#define LN_camellia_256_cbc "camellia-256-cbc" -#define NID_camellia_256_cbc 753 -#define OBJ_camellia_256_cbc 1L,2L,392L,200011L,61L,1L,1L,1L,4L - -#define SN_id_camellia128_wrap "id-camellia128-wrap" -#define NID_id_camellia128_wrap 907 -#define OBJ_id_camellia128_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,2L - -#define SN_id_camellia192_wrap "id-camellia192-wrap" -#define NID_id_camellia192_wrap 908 -#define OBJ_id_camellia192_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,3L - -#define SN_id_camellia256_wrap "id-camellia256-wrap" -#define NID_id_camellia256_wrap 909 -#define OBJ_id_camellia256_wrap 1L,2L,392L,200011L,61L,1L,1L,3L,4L - -#define OBJ_ntt_ds 0L,3L,4401L,5L - -#define OBJ_camellia OBJ_ntt_ds,3L,1L,9L - -#define SN_camellia_128_ecb "CAMELLIA-128-ECB" -#define LN_camellia_128_ecb "camellia-128-ecb" -#define NID_camellia_128_ecb 754 -#define OBJ_camellia_128_ecb OBJ_camellia,1L - -#define SN_camellia_128_ofb128 "CAMELLIA-128-OFB" -#define LN_camellia_128_ofb128 "camellia-128-ofb" -#define NID_camellia_128_ofb128 766 -#define OBJ_camellia_128_ofb128 OBJ_camellia,3L - -#define SN_camellia_128_cfb128 "CAMELLIA-128-CFB" -#define LN_camellia_128_cfb128 "camellia-128-cfb" -#define NID_camellia_128_cfb128 757 -#define OBJ_camellia_128_cfb128 OBJ_camellia,4L - -#define SN_camellia_128_gcm "CAMELLIA-128-GCM" -#define LN_camellia_128_gcm "camellia-128-gcm" -#define NID_camellia_128_gcm 961 -#define OBJ_camellia_128_gcm OBJ_camellia,6L - -#define SN_camellia_128_ccm "CAMELLIA-128-CCM" -#define LN_camellia_128_ccm "camellia-128-ccm" -#define NID_camellia_128_ccm 962 -#define OBJ_camellia_128_ccm OBJ_camellia,7L - -#define SN_camellia_128_ctr "CAMELLIA-128-CTR" -#define LN_camellia_128_ctr "camellia-128-ctr" -#define NID_camellia_128_ctr 963 -#define OBJ_camellia_128_ctr OBJ_camellia,9L - -#define SN_camellia_128_cmac "CAMELLIA-128-CMAC" -#define LN_camellia_128_cmac "camellia-128-cmac" -#define NID_camellia_128_cmac 964 -#define OBJ_camellia_128_cmac OBJ_camellia,10L - -#define SN_camellia_192_ecb "CAMELLIA-192-ECB" -#define LN_camellia_192_ecb "camellia-192-ecb" -#define NID_camellia_192_ecb 755 -#define OBJ_camellia_192_ecb OBJ_camellia,21L - -#define SN_camellia_192_ofb128 "CAMELLIA-192-OFB" -#define LN_camellia_192_ofb128 "camellia-192-ofb" -#define NID_camellia_192_ofb128 767 -#define OBJ_camellia_192_ofb128 OBJ_camellia,23L - -#define SN_camellia_192_cfb128 "CAMELLIA-192-CFB" -#define LN_camellia_192_cfb128 "camellia-192-cfb" -#define NID_camellia_192_cfb128 758 -#define OBJ_camellia_192_cfb128 OBJ_camellia,24L - -#define SN_camellia_192_gcm "CAMELLIA-192-GCM" -#define LN_camellia_192_gcm "camellia-192-gcm" -#define NID_camellia_192_gcm 965 -#define OBJ_camellia_192_gcm OBJ_camellia,26L - -#define SN_camellia_192_ccm "CAMELLIA-192-CCM" -#define LN_camellia_192_ccm "camellia-192-ccm" -#define NID_camellia_192_ccm 966 -#define OBJ_camellia_192_ccm OBJ_camellia,27L - -#define SN_camellia_192_ctr "CAMELLIA-192-CTR" -#define LN_camellia_192_ctr "camellia-192-ctr" -#define NID_camellia_192_ctr 967 -#define OBJ_camellia_192_ctr OBJ_camellia,29L - -#define SN_camellia_192_cmac "CAMELLIA-192-CMAC" -#define LN_camellia_192_cmac "camellia-192-cmac" -#define NID_camellia_192_cmac 968 -#define OBJ_camellia_192_cmac OBJ_camellia,30L - -#define SN_camellia_256_ecb "CAMELLIA-256-ECB" -#define LN_camellia_256_ecb "camellia-256-ecb" -#define NID_camellia_256_ecb 756 -#define OBJ_camellia_256_ecb OBJ_camellia,41L - -#define SN_camellia_256_ofb128 "CAMELLIA-256-OFB" -#define LN_camellia_256_ofb128 "camellia-256-ofb" -#define NID_camellia_256_ofb128 768 -#define OBJ_camellia_256_ofb128 OBJ_camellia,43L - -#define SN_camellia_256_cfb128 "CAMELLIA-256-CFB" -#define LN_camellia_256_cfb128 "camellia-256-cfb" -#define NID_camellia_256_cfb128 759 -#define OBJ_camellia_256_cfb128 OBJ_camellia,44L - -#define SN_camellia_256_gcm "CAMELLIA-256-GCM" -#define LN_camellia_256_gcm "camellia-256-gcm" -#define NID_camellia_256_gcm 969 -#define OBJ_camellia_256_gcm OBJ_camellia,46L - -#define SN_camellia_256_ccm "CAMELLIA-256-CCM" -#define LN_camellia_256_ccm "camellia-256-ccm" -#define NID_camellia_256_ccm 970 -#define OBJ_camellia_256_ccm OBJ_camellia,47L - -#define SN_camellia_256_ctr "CAMELLIA-256-CTR" -#define LN_camellia_256_ctr "camellia-256-ctr" -#define NID_camellia_256_ctr 971 -#define OBJ_camellia_256_ctr OBJ_camellia,49L - -#define SN_camellia_256_cmac "CAMELLIA-256-CMAC" -#define LN_camellia_256_cmac "camellia-256-cmac" -#define NID_camellia_256_cmac 972 -#define OBJ_camellia_256_cmac OBJ_camellia,50L - -#define SN_camellia_128_cfb1 "CAMELLIA-128-CFB1" -#define LN_camellia_128_cfb1 "camellia-128-cfb1" -#define NID_camellia_128_cfb1 760 - -#define SN_camellia_192_cfb1 "CAMELLIA-192-CFB1" -#define LN_camellia_192_cfb1 "camellia-192-cfb1" -#define NID_camellia_192_cfb1 761 - -#define SN_camellia_256_cfb1 "CAMELLIA-256-CFB1" -#define LN_camellia_256_cfb1 "camellia-256-cfb1" -#define NID_camellia_256_cfb1 762 - -#define SN_camellia_128_cfb8 "CAMELLIA-128-CFB8" -#define LN_camellia_128_cfb8 "camellia-128-cfb8" -#define NID_camellia_128_cfb8 763 - -#define SN_camellia_192_cfb8 "CAMELLIA-192-CFB8" -#define LN_camellia_192_cfb8 "camellia-192-cfb8" -#define NID_camellia_192_cfb8 764 - -#define SN_camellia_256_cfb8 "CAMELLIA-256-CFB8" -#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 -#define OBJ_kisa OBJ_member_body,410L,200004L - -#define SN_seed_ecb "SEED-ECB" -#define LN_seed_ecb "seed-ecb" -#define NID_seed_ecb 776 -#define OBJ_seed_ecb OBJ_kisa,1L,3L - -#define SN_seed_cbc "SEED-CBC" -#define LN_seed_cbc "seed-cbc" -#define NID_seed_cbc 777 -#define OBJ_seed_cbc OBJ_kisa,1L,4L - -#define SN_seed_cfb128 "SEED-CFB" -#define LN_seed_cfb128 "seed-cfb" -#define NID_seed_cfb128 779 -#define OBJ_seed_cfb128 OBJ_kisa,1L,5L - -#define SN_seed_ofb128 "SEED-OFB" -#define LN_seed_ofb128 "seed-ofb" -#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 - -#define SN_cmac "CMAC" -#define LN_cmac "cmac" -#define NID_cmac 894 - -#define SN_rc4_hmac_md5 "RC4-HMAC-MD5" -#define LN_rc4_hmac_md5 "rc4-hmac-md5" -#define NID_rc4_hmac_md5 915 - -#define SN_aes_128_cbc_hmac_sha1 "AES-128-CBC-HMAC-SHA1" -#define LN_aes_128_cbc_hmac_sha1 "aes-128-cbc-hmac-sha1" -#define NID_aes_128_cbc_hmac_sha1 916 - -#define SN_aes_192_cbc_hmac_sha1 "AES-192-CBC-HMAC-SHA1" -#define LN_aes_192_cbc_hmac_sha1 "aes-192-cbc-hmac-sha1" -#define NID_aes_192_cbc_hmac_sha1 917 - -#define SN_aes_256_cbc_hmac_sha1 "AES-256-CBC-HMAC-SHA1" -#define LN_aes_256_cbc_hmac_sha1 "aes-256-cbc-hmac-sha1" -#define NID_aes_256_cbc_hmac_sha1 918 - -#define SN_aes_128_cbc_hmac_sha256 "AES-128-CBC-HMAC-SHA256" -#define LN_aes_128_cbc_hmac_sha256 "aes-128-cbc-hmac-sha256" -#define NID_aes_128_cbc_hmac_sha256 948 - -#define SN_aes_192_cbc_hmac_sha256 "AES-192-CBC-HMAC-SHA256" -#define LN_aes_192_cbc_hmac_sha256 "aes-192-cbc-hmac-sha256" -#define NID_aes_192_cbc_hmac_sha256 949 - -#define SN_aes_256_cbc_hmac_sha256 "AES-256-CBC-HMAC-SHA256" -#define LN_aes_256_cbc_hmac_sha256 "aes-256-cbc-hmac-sha256" -#define NID_aes_256_cbc_hmac_sha256 950 - -#define SN_chacha20_poly1305 "ChaCha20-Poly1305" -#define LN_chacha20_poly1305 "chacha20-poly1305" -#define NID_chacha20_poly1305 1018 - -#define SN_chacha20 "ChaCha20" -#define LN_chacha20 "chacha20" -#define NID_chacha20 1019 - -#define SN_dhpublicnumber "dhpublicnumber" -#define LN_dhpublicnumber "X9.42 DH" -#define NID_dhpublicnumber 920 -#define OBJ_dhpublicnumber OBJ_ISO_US,10046L,2L,1L - -#define SN_brainpoolP160r1 "brainpoolP160r1" -#define NID_brainpoolP160r1 921 -#define OBJ_brainpoolP160r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,1L - -#define SN_brainpoolP160t1 "brainpoolP160t1" -#define NID_brainpoolP160t1 922 -#define OBJ_brainpoolP160t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,2L - -#define SN_brainpoolP192r1 "brainpoolP192r1" -#define NID_brainpoolP192r1 923 -#define OBJ_brainpoolP192r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,3L - -#define SN_brainpoolP192t1 "brainpoolP192t1" -#define NID_brainpoolP192t1 924 -#define OBJ_brainpoolP192t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,4L - -#define SN_brainpoolP224r1 "brainpoolP224r1" -#define NID_brainpoolP224r1 925 -#define OBJ_brainpoolP224r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,5L - -#define SN_brainpoolP224t1 "brainpoolP224t1" -#define NID_brainpoolP224t1 926 -#define OBJ_brainpoolP224t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,6L - -#define SN_brainpoolP256r1 "brainpoolP256r1" -#define NID_brainpoolP256r1 927 -#define OBJ_brainpoolP256r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,7L - -#define SN_brainpoolP256t1 "brainpoolP256t1" -#define NID_brainpoolP256t1 928 -#define OBJ_brainpoolP256t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,8L - -#define SN_brainpoolP320r1 "brainpoolP320r1" -#define NID_brainpoolP320r1 929 -#define OBJ_brainpoolP320r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,9L - -#define SN_brainpoolP320t1 "brainpoolP320t1" -#define NID_brainpoolP320t1 930 -#define OBJ_brainpoolP320t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,10L - -#define SN_brainpoolP384r1 "brainpoolP384r1" -#define NID_brainpoolP384r1 931 -#define OBJ_brainpoolP384r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,11L - -#define SN_brainpoolP384t1 "brainpoolP384t1" -#define NID_brainpoolP384t1 932 -#define OBJ_brainpoolP384t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,12L - -#define SN_brainpoolP512r1 "brainpoolP512r1" -#define NID_brainpoolP512r1 933 -#define OBJ_brainpoolP512r1 1L,3L,36L,3L,3L,2L,8L,1L,1L,13L - -#define SN_brainpoolP512t1 "brainpoolP512t1" -#define NID_brainpoolP512t1 934 -#define OBJ_brainpoolP512t1 1L,3L,36L,3L,3L,2L,8L,1L,1L,14L - -#define OBJ_x9_63_scheme 1L,3L,133L,16L,840L,63L,0L - -#define OBJ_secg_scheme OBJ_certicom_arc,1L - -#define SN_dhSinglePass_stdDH_sha1kdf_scheme "dhSinglePass-stdDH-sha1kdf-scheme" -#define NID_dhSinglePass_stdDH_sha1kdf_scheme 936 -#define OBJ_dhSinglePass_stdDH_sha1kdf_scheme OBJ_x9_63_scheme,2L - -#define SN_dhSinglePass_stdDH_sha224kdf_scheme "dhSinglePass-stdDH-sha224kdf-scheme" -#define NID_dhSinglePass_stdDH_sha224kdf_scheme 937 -#define OBJ_dhSinglePass_stdDH_sha224kdf_scheme OBJ_secg_scheme,11L,0L - -#define SN_dhSinglePass_stdDH_sha256kdf_scheme "dhSinglePass-stdDH-sha256kdf-scheme" -#define NID_dhSinglePass_stdDH_sha256kdf_scheme 938 -#define OBJ_dhSinglePass_stdDH_sha256kdf_scheme OBJ_secg_scheme,11L,1L - -#define SN_dhSinglePass_stdDH_sha384kdf_scheme "dhSinglePass-stdDH-sha384kdf-scheme" -#define NID_dhSinglePass_stdDH_sha384kdf_scheme 939 -#define OBJ_dhSinglePass_stdDH_sha384kdf_scheme OBJ_secg_scheme,11L,2L - -#define SN_dhSinglePass_stdDH_sha512kdf_scheme "dhSinglePass-stdDH-sha512kdf-scheme" -#define NID_dhSinglePass_stdDH_sha512kdf_scheme 940 -#define OBJ_dhSinglePass_stdDH_sha512kdf_scheme OBJ_secg_scheme,11L,3L - -#define SN_dhSinglePass_cofactorDH_sha1kdf_scheme "dhSinglePass-cofactorDH-sha1kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha1kdf_scheme 941 -#define OBJ_dhSinglePass_cofactorDH_sha1kdf_scheme OBJ_x9_63_scheme,3L - -#define SN_dhSinglePass_cofactorDH_sha224kdf_scheme "dhSinglePass-cofactorDH-sha224kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha224kdf_scheme 942 -#define OBJ_dhSinglePass_cofactorDH_sha224kdf_scheme OBJ_secg_scheme,14L,0L - -#define SN_dhSinglePass_cofactorDH_sha256kdf_scheme "dhSinglePass-cofactorDH-sha256kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha256kdf_scheme 943 -#define OBJ_dhSinglePass_cofactorDH_sha256kdf_scheme OBJ_secg_scheme,14L,1L - -#define SN_dhSinglePass_cofactorDH_sha384kdf_scheme "dhSinglePass-cofactorDH-sha384kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha384kdf_scheme 944 -#define OBJ_dhSinglePass_cofactorDH_sha384kdf_scheme OBJ_secg_scheme,14L,2L - -#define SN_dhSinglePass_cofactorDH_sha512kdf_scheme "dhSinglePass-cofactorDH-sha512kdf-scheme" -#define NID_dhSinglePass_cofactorDH_sha512kdf_scheme 945 -#define OBJ_dhSinglePass_cofactorDH_sha512kdf_scheme OBJ_secg_scheme,14L,3L - -#define SN_dh_std_kdf "dh-std-kdf" -#define NID_dh_std_kdf 946 - -#define SN_dh_cofactor_kdf "dh-cofactor-kdf" -#define NID_dh_cofactor_kdf 947 - -#define SN_ct_precert_scts "ct_precert_scts" -#define LN_ct_precert_scts "CT Precertificate SCTs" -#define NID_ct_precert_scts 951 -#define OBJ_ct_precert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,2L - -#define SN_ct_precert_poison "ct_precert_poison" -#define LN_ct_precert_poison "CT Precertificate Poison" -#define NID_ct_precert_poison 952 -#define OBJ_ct_precert_poison 1L,3L,6L,1L,4L,1L,11129L,2L,4L,3L - -#define SN_ct_precert_signer "ct_precert_signer" -#define LN_ct_precert_signer "CT Precertificate Signer" -#define NID_ct_precert_signer 953 -#define OBJ_ct_precert_signer 1L,3L,6L,1L,4L,1L,11129L,2L,4L,4L - -#define SN_ct_cert_scts "ct_cert_scts" -#define LN_ct_cert_scts "CT Certificate SCTs" -#define NID_ct_cert_scts 954 -#define OBJ_ct_cert_scts 1L,3L,6L,1L,4L,1L,11129L,2L,4L,5L - -#define SN_jurisdictionLocalityName "jurisdictionL" -#define LN_jurisdictionLocalityName "jurisdictionLocalityName" -#define NID_jurisdictionLocalityName 955 -#define OBJ_jurisdictionLocalityName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,1L - -#define SN_jurisdictionStateOrProvinceName "jurisdictionST" -#define LN_jurisdictionStateOrProvinceName "jurisdictionStateOrProvinceName" -#define NID_jurisdictionStateOrProvinceName 956 -#define OBJ_jurisdictionStateOrProvinceName 1L,3L,6L,1L,4L,1L,311L,60L,2L,1L,2L - -#define SN_jurisdictionCountryName "jurisdictionC" -#define LN_jurisdictionCountryName "jurisdictionCountryName" -#define NID_jurisdictionCountryName 957 -#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 - -#define SN_tls1_prf "TLS1-PRF" -#define LN_tls1_prf "tls1-prf" -#define NID_tls1_prf 1021 - -#define SN_hkdf "HKDF" -#define LN_hkdf "hkdf" -#define NID_hkdf 1036 - -#define SN_id_pkinit "id-pkinit" -#define NID_id_pkinit 1031 -#define OBJ_id_pkinit 1L,3L,6L,1L,5L,2L,3L - -#define SN_pkInitClientAuth "pkInitClientAuth" -#define LN_pkInitClientAuth "PKINIT Client Auth" -#define NID_pkInitClientAuth 1032 -#define OBJ_pkInitClientAuth OBJ_id_pkinit,4L - -#define SN_pkInitKDC "pkInitKDC" -#define LN_pkInitKDC "Signing KDC Response" -#define NID_pkInitKDC 1033 -#define OBJ_pkInitKDC OBJ_id_pkinit,5L - -#define SN_X25519 "X25519" -#define NID_X25519 1034 -#define OBJ_X25519 1L,3L,101L,110L - -#define SN_X448 "X448" -#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 - -#define SN_kx_ecdhe "KxECDHE" -#define LN_kx_ecdhe "kx-ecdhe" -#define NID_kx_ecdhe 1038 - -#define SN_kx_dhe "KxDHE" -#define LN_kx_dhe "kx-dhe" -#define NID_kx_dhe 1039 - -#define SN_kx_ecdhe_psk "KxECDHE-PSK" -#define LN_kx_ecdhe_psk "kx-ecdhe-psk" -#define NID_kx_ecdhe_psk 1040 - -#define SN_kx_dhe_psk "KxDHE-PSK" -#define LN_kx_dhe_psk "kx-dhe-psk" -#define NID_kx_dhe_psk 1041 - -#define SN_kx_rsa_psk "KxRSA_PSK" -#define LN_kx_rsa_psk "kx-rsa-psk" -#define NID_kx_rsa_psk 1042 - -#define SN_kx_psk "KxPSK" -#define LN_kx_psk "kx-psk" -#define NID_kx_psk 1043 - -#define SN_kx_srp "KxSRP" -#define LN_kx_srp "kx-srp" -#define NID_kx_srp 1044 - -#define SN_kx_gost "KxGOST" -#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 - -#define SN_auth_ecdsa "AuthECDSA" -#define LN_auth_ecdsa "auth-ecdsa" -#define NID_auth_ecdsa 1047 - -#define SN_auth_psk "AuthPSK" -#define LN_auth_psk "auth-psk" -#define NID_auth_psk 1048 - -#define SN_auth_dss "AuthDSS" -#define LN_auth_dss "auth-dss" -#define NID_auth_dss 1049 - -#define SN_auth_gost01 "AuthGOST01" -#define LN_auth_gost01 "auth-gost01" -#define NID_auth_gost01 1050 - -#define SN_auth_gost12 "AuthGOST12" -#define LN_auth_gost12 "auth-gost12" -#define NID_auth_gost12 1051 - -#define SN_auth_srp "AuthSRP" -#define LN_auth_srp "auth-srp" -#define NID_auth_srp 1052 - -#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/openSSL/lin64/include/openssl/objects.h b/openSSL/lin64/include/openssl/objects.h deleted file mode 100644 index 5e8b576..0000000 --- a/openSSL/lin64/include/openssl/objects.h +++ /dev/null @@ -1,175 +0,0 @@ -/* - * 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_OBJECTS_H -# define HEADER_OBJECTS_H - -# include -# include -# include -# include - -# define OBJ_NAME_TYPE_UNDEF 0x00 -# define OBJ_NAME_TYPE_MD_METH 0x01 -# define OBJ_NAME_TYPE_CIPHER_METH 0x02 -# define OBJ_NAME_TYPE_PKEY_METH 0x03 -# define OBJ_NAME_TYPE_COMP_METH 0x04 -# define OBJ_NAME_TYPE_NUM 0x05 - -# define OBJ_NAME_ALIAS 0x8000 - -# define OBJ_BSEARCH_VALUE_ON_NOMATCH 0x01 -# define OBJ_BSEARCH_FIRST_VALUE_ON_MATCH 0x02 - - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct obj_name_st { - int type; - int alias; - const char *name; - const char *data; -} OBJ_NAME; - -# define OBJ_create_and_add_object(a,b,c) OBJ_create(a,b,c) - -int OBJ_NAME_init(void); -int OBJ_NAME_new_index(unsigned long (*hash_func) (const char *), - int (*cmp_func) (const char *, const char *), - void (*free_func) (const char *, int, const char *)); -const char *OBJ_NAME_get(const char *name, int type); -int OBJ_NAME_add(const char *name, int type, const char *data); -int OBJ_NAME_remove(const char *name, int type); -void OBJ_NAME_cleanup(int type); /* -1 for everything */ -void OBJ_NAME_do_all(int type, void (*fn) (const OBJ_NAME *, void *arg), - void *arg); -void OBJ_NAME_do_all_sorted(int type, - void (*fn) (const OBJ_NAME *, void *arg), - void *arg); - -ASN1_OBJECT *OBJ_dup(const ASN1_OBJECT *o); -ASN1_OBJECT *OBJ_nid2obj(int n); -const char *OBJ_nid2ln(int n); -const char *OBJ_nid2sn(int n); -int OBJ_obj2nid(const ASN1_OBJECT *o); -ASN1_OBJECT *OBJ_txt2obj(const char *s, int no_name); -int OBJ_obj2txt(char *buf, int buf_len, const ASN1_OBJECT *a, int no_name); -int OBJ_txt2nid(const char *s); -int OBJ_ln2nid(const char *s); -int OBJ_sn2nid(const char *s); -int OBJ_cmp(const ASN1_OBJECT *a, const ASN1_OBJECT *b); -const void *OBJ_bsearch_(const void *key, const void *base, int num, int size, - int (*cmp) (const void *, const void *)); -const void *OBJ_bsearch_ex_(const void *key, const void *base, int num, - int size, - int (*cmp) (const void *, const void *), - int flags); - -# define _DECLARE_OBJ_BSEARCH_CMP_FN(scope, type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *, const void *); \ - static int nm##_cmp(type1 const *, type2 const *); \ - scope type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -# define DECLARE_OBJ_BSEARCH_CMP_FN(type1, type2, cmp) \ - _DECLARE_OBJ_BSEARCH_CMP_FN(static, type1, type2, cmp) -# define DECLARE_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - type2 * OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) - -/*- - * Unsolved problem: if a type is actually a pointer type, like - * nid_triple is, then its impossible to get a const where you need - * it. Consider: - * - * typedef int nid_triple[3]; - * const void *a_; - * const nid_triple const *a = a_; - * - * The assignment discards a const because what you really want is: - * - * const int const * const *a = a_; - * - * But if you do that, you lose the fact that a is an array of 3 ints, - * which breaks comparison functions. - * - * Thus we end up having to cast, sadly, or unpack the - * declarations. Or, as I finally did in this case, declare nid_triple - * to be a struct, which it should have been in the first place. - * - * Ben, August 2008. - * - * Also, strictly speaking not all types need be const, but handling - * the non-constness means a lot of complication, and in practice - * comparison routines do always not touch their arguments. - */ - -# define IMPLEMENT_OBJ_BSEARCH_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - static type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define IMPLEMENT_OBJ_BSEARCH_GLOBAL_CMP_FN(type1, type2, nm) \ - static int nm##_cmp_BSEARCH_CMP_FN(const void *a_, const void *b_) \ - { \ - type1 const *a = a_; \ - type2 const *b = b_; \ - return nm##_cmp(a,b); \ - } \ - type2 *OBJ_bsearch_##nm(type1 *key, type2 const *base, int num) \ - { \ - return (type2 *)OBJ_bsearch_(key, base, num, sizeof(type2), \ - nm##_cmp_BSEARCH_CMP_FN); \ - } \ - extern void dummy_prototype(void) - -# define OBJ_bsearch(type1,key,type2,base,num,cmp) \ - ((type2 *)OBJ_bsearch_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN))) - -# define OBJ_bsearch_ex(type1,key,type2,base,num,cmp,flags) \ - ((type2 *)OBJ_bsearch_ex_(CHECKED_PTR_OF(type1,key),CHECKED_PTR_OF(type2,base), \ - num,sizeof(type2), \ - ((void)CHECKED_PTR_OF(type1,cmp##_type_1), \ - (void)type_2=CHECKED_PTR_OF(type2,cmp##_type_2), \ - cmp##_BSEARCH_CMP_FN)),flags) - -int OBJ_new_nid(int num); -int OBJ_add_object(const ASN1_OBJECT *obj); -int OBJ_create(const char *oid, const char *sn, const char *ln); -#if OPENSSL_API_COMPAT < 0x10100000L -# define OBJ_cleanup() while(0) continue -#endif -int OBJ_create_objects(BIO *in); - -size_t OBJ_length(const ASN1_OBJECT *obj); -const unsigned char *OBJ_get0_data(const ASN1_OBJECT *obj); - -int OBJ_find_sigid_algs(int signid, int *pdig_nid, int *ppkey_nid); -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); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/objectserr.h b/openSSL/lin64/include/openssl/objectserr.h deleted file mode 100644 index 02e166f..0000000 --- a/openSSL/lin64/include/openssl/objectserr.h +++ /dev/null @@ -1,42 +0,0 @@ -/* - * 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_OBJERR_H -# define HEADER_OBJERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/ocsp.h b/openSSL/lin64/include/openssl/ocsp.h deleted file mode 100644 index 4d759a4..0000000 --- a/openSSL/lin64/include/openssl/ocsp.h +++ /dev/null @@ -1,352 +0,0 @@ -/* - * 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 - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OCSP_H -# define HEADER_OCSP_H - -#include - -/* - * These definitions are outside the OPENSSL_NO_OCSP guard because although for - * historical reasons they have OCSP_* names, they can actually be used - * independently of OCSP. E.g. see RFC5280 - */ -/*- - * CRLReason ::= ENUMERATED { - * unspecified (0), - * keyCompromise (1), - * cACompromise (2), - * affiliationChanged (3), - * superseded (4), - * cessationOfOperation (5), - * certificateHold (6), - * removeFromCRL (8) } - */ -# define OCSP_REVOKED_STATUS_NOSTATUS -1 -# define OCSP_REVOKED_STATUS_UNSPECIFIED 0 -# define OCSP_REVOKED_STATUS_KEYCOMPROMISE 1 -# define OCSP_REVOKED_STATUS_CACOMPROMISE 2 -# define OCSP_REVOKED_STATUS_AFFILIATIONCHANGED 3 -# define OCSP_REVOKED_STATUS_SUPERSEDED 4 -# define OCSP_REVOKED_STATUS_CESSATIONOFOPERATION 5 -# define OCSP_REVOKED_STATUS_CERTIFICATEHOLD 6 -# define OCSP_REVOKED_STATUS_REMOVEFROMCRL 8 - - -# ifndef OPENSSL_NO_OCSP - -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Various flags and values */ - -# define OCSP_DEFAULT_NONCE_LENGTH 16 - -# define OCSP_NOCERTS 0x1 -# define OCSP_NOINTERN 0x2 -# define OCSP_NOSIGS 0x4 -# define OCSP_NOCHAIN 0x8 -# define OCSP_NOVERIFY 0x10 -# define OCSP_NOEXPLICIT 0x20 -# define OCSP_NOCASIGN 0x40 -# define OCSP_NODELEGATED 0x80 -# define OCSP_NOCHECKS 0x100 -# define OCSP_TRUSTOTHER 0x200 -# define OCSP_RESPID_KEY 0x400 -# define OCSP_NOTIME 0x800 - -typedef struct ocsp_cert_id_st OCSP_CERTID; - -DEFINE_STACK_OF(OCSP_CERTID) - -typedef struct ocsp_one_request_st OCSP_ONEREQ; - -DEFINE_STACK_OF(OCSP_ONEREQ) - -typedef struct ocsp_req_info_st OCSP_REQINFO; -typedef struct ocsp_signature_st OCSP_SIGNATURE; -typedef struct ocsp_request_st OCSP_REQUEST; - -# define OCSP_RESPONSE_STATUS_SUCCESSFUL 0 -# define OCSP_RESPONSE_STATUS_MALFORMEDREQUEST 1 -# define OCSP_RESPONSE_STATUS_INTERNALERROR 2 -# define OCSP_RESPONSE_STATUS_TRYLATER 3 -# define OCSP_RESPONSE_STATUS_SIGREQUIRED 5 -# define OCSP_RESPONSE_STATUS_UNAUTHORIZED 6 - -typedef struct ocsp_resp_bytes_st OCSP_RESPBYTES; - -# define V_OCSP_RESPID_NAME 0 -# define V_OCSP_RESPID_KEY 1 - -DEFINE_STACK_OF(OCSP_RESPID) - -typedef struct ocsp_revoked_info_st OCSP_REVOKEDINFO; - -# define V_OCSP_CERTSTATUS_GOOD 0 -# define V_OCSP_CERTSTATUS_REVOKED 1 -# define V_OCSP_CERTSTATUS_UNKNOWN 2 - -typedef struct ocsp_cert_status_st OCSP_CERTSTATUS; -typedef struct ocsp_single_response_st OCSP_SINGLERESP; - -DEFINE_STACK_OF(OCSP_SINGLERESP) - -typedef struct ocsp_response_data_st OCSP_RESPDATA; - -typedef struct ocsp_basic_response_st OCSP_BASICRESP; - -typedef struct ocsp_crl_id_st OCSP_CRLID; -typedef struct ocsp_service_locator_st OCSP_SERVICELOC; - -# define PEM_STRING_OCSP_REQUEST "OCSP REQUEST" -# define PEM_STRING_OCSP_RESPONSE "OCSP RESPONSE" - -# define d2i_OCSP_REQUEST_bio(bp,p) ASN1_d2i_bio_of(OCSP_REQUEST,OCSP_REQUEST_new,d2i_OCSP_REQUEST,bp,p) - -# 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) - -# 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) - -# 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) - -# define i2d_OCSP_RESPONSE_bio(bp,o) ASN1_i2d_bio_of(OCSP_RESPONSE,i2d_OCSP_RESPONSE,bp,o) - -# define i2d_OCSP_REQUEST_bio(bp,o) ASN1_i2d_bio_of(OCSP_REQUEST,i2d_OCSP_REQUEST,bp,o) - -# define ASN1_BIT_STRING_digest(data,type,md,len) \ - ASN1_item_digest(ASN1_ITEM_rptr(ASN1_BIT_STRING),type,data,md,len) - -# define OCSP_CERTSTATUS_dup(cs)\ - (OCSP_CERTSTATUS*)ASN1_dup((int(*)())i2d_OCSP_CERTSTATUS,\ - (char *(*)())d2i_OCSP_CERTSTATUS,(char *)(cs)) - -OCSP_CERTID *OCSP_CERTID_dup(OCSP_CERTID *id); - -OCSP_RESPONSE *OCSP_sendreq_bio(BIO *b, const char *path, OCSP_REQUEST *req); -OCSP_REQ_CTX *OCSP_sendreq_new(BIO *io, const char *path, OCSP_REQUEST *req, - int maxline); -int OCSP_REQ_CTX_nbio(OCSP_REQ_CTX *rctx); -int OCSP_sendreq_nbio(OCSP_RESPONSE **presp, OCSP_REQ_CTX *rctx); -OCSP_REQ_CTX *OCSP_REQ_CTX_new(BIO *io, int maxline); -void OCSP_REQ_CTX_free(OCSP_REQ_CTX *rctx); -void OCSP_set_max_response_length(OCSP_REQ_CTX *rctx, unsigned long len); -int OCSP_REQ_CTX_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); -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_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, - const char *name, const char *value); - -OCSP_CERTID *OCSP_cert_to_id(const EVP_MD *dgst, const X509 *subject, - const X509 *issuer); - -OCSP_CERTID *OCSP_cert_id_new(const EVP_MD *dgst, - const X509_NAME *issuerName, - const ASN1_BIT_STRING *issuerKey, - const ASN1_INTEGER *serialNumber); - -OCSP_ONEREQ *OCSP_request_add0_id(OCSP_REQUEST *req, OCSP_CERTID *cid); - -int OCSP_request_add1_nonce(OCSP_REQUEST *req, unsigned char *val, int len); -int OCSP_basic_add1_nonce(OCSP_BASICRESP *resp, unsigned char *val, int len); -int OCSP_check_nonce(OCSP_REQUEST *req, OCSP_BASICRESP *bs); -int OCSP_copy_nonce(OCSP_BASICRESP *resp, OCSP_REQUEST *req); - -int OCSP_request_set1_name(OCSP_REQUEST *req, X509_NAME *nm); -int OCSP_request_add1_cert(OCSP_REQUEST *req, X509 *cert); - -int OCSP_request_sign(OCSP_REQUEST *req, - X509 *signer, - EVP_PKEY *key, - const EVP_MD *dgst, - STACK_OF(X509) *certs, unsigned long flags); - -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); - -int OCSP_resp_count(OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_resp_get0(OCSP_BASICRESP *bs, int idx); -const ASN1_GENERALIZEDTIME *OCSP_resp_get0_produced_at(const OCSP_BASICRESP* bs); -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, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_resp_find_status(OCSP_BASICRESP *bs, OCSP_CERTID *id, int *status, - int *reason, - ASN1_GENERALIZEDTIME **revtime, - ASN1_GENERALIZEDTIME **thisupd, - ASN1_GENERALIZEDTIME **nextupd); -int OCSP_check_validity(ASN1_GENERALIZEDTIME *thisupd, - ASN1_GENERALIZEDTIME *nextupd, long sec, long maxsec); - -int OCSP_request_verify(OCSP_REQUEST *req, STACK_OF(X509) *certs, - X509_STORE *store, unsigned long flags); - -int OCSP_parse_url(const char *url, char **phost, char **pport, char **ppath, - int *pssl); - -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); -OCSP_CERTID *OCSP_onereq_get0_id(OCSP_ONEREQ *one); -int OCSP_id_get0_info(ASN1_OCTET_STRING **piNameHash, ASN1_OBJECT **pmd, - ASN1_OCTET_STRING **pikeyHash, - ASN1_INTEGER **pserial, OCSP_CERTID *cid); -int OCSP_request_is_signed(OCSP_REQUEST *req); -OCSP_RESPONSE *OCSP_response_create(int status, OCSP_BASICRESP *bs); -OCSP_SINGLERESP *OCSP_basic_add1_status(OCSP_BASICRESP *rsp, - OCSP_CERTID *cid, - int status, int reason, - ASN1_TIME *revtime, - ASN1_TIME *thisupd, - ASN1_TIME *nextupd); -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); - -X509_EXTENSION *OCSP_crlID_new(const char *url, long *n, char *tim); - -X509_EXTENSION *OCSP_accept_responses_new(char **oids); - -X509_EXTENSION *OCSP_archive_cutoff_new(char *tim); - -X509_EXTENSION *OCSP_url_svcloc_new(X509_NAME *issuer, const char **urls); - -int OCSP_REQUEST_get_ext_count(OCSP_REQUEST *x); -int OCSP_REQUEST_get_ext_by_NID(OCSP_REQUEST *x, int nid, int lastpos); -int OCSP_REQUEST_get_ext_by_OBJ(OCSP_REQUEST *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_REQUEST_get_ext_by_critical(OCSP_REQUEST *x, int crit, int lastpos); -X509_EXTENSION *OCSP_REQUEST_get_ext(OCSP_REQUEST *x, int loc); -X509_EXTENSION *OCSP_REQUEST_delete_ext(OCSP_REQUEST *x, int loc); -void *OCSP_REQUEST_get1_ext_d2i(OCSP_REQUEST *x, int nid, int *crit, - int *idx); -int OCSP_REQUEST_add1_ext_i2d(OCSP_REQUEST *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_REQUEST_add_ext(OCSP_REQUEST *x, X509_EXTENSION *ex, int loc); - -int OCSP_ONEREQ_get_ext_count(OCSP_ONEREQ *x); -int OCSP_ONEREQ_get_ext_by_NID(OCSP_ONEREQ *x, int nid, int lastpos); -int OCSP_ONEREQ_get_ext_by_OBJ(OCSP_ONEREQ *x, const ASN1_OBJECT *obj, int lastpos); -int OCSP_ONEREQ_get_ext_by_critical(OCSP_ONEREQ *x, int crit, int lastpos); -X509_EXTENSION *OCSP_ONEREQ_get_ext(OCSP_ONEREQ *x, int loc); -X509_EXTENSION *OCSP_ONEREQ_delete_ext(OCSP_ONEREQ *x, int loc); -void *OCSP_ONEREQ_get1_ext_d2i(OCSP_ONEREQ *x, int nid, int *crit, int *idx); -int OCSP_ONEREQ_add1_ext_i2d(OCSP_ONEREQ *x, int nid, void *value, int crit, - unsigned long flags); -int OCSP_ONEREQ_add_ext(OCSP_ONEREQ *x, X509_EXTENSION *ex, int loc); - -int OCSP_BASICRESP_get_ext_count(OCSP_BASICRESP *x); -int OCSP_BASICRESP_get_ext_by_NID(OCSP_BASICRESP *x, int nid, int lastpos); -int OCSP_BASICRESP_get_ext_by_OBJ(OCSP_BASICRESP *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_BASICRESP_get_ext_by_critical(OCSP_BASICRESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_BASICRESP_get_ext(OCSP_BASICRESP *x, int loc); -X509_EXTENSION *OCSP_BASICRESP_delete_ext(OCSP_BASICRESP *x, int loc); -void *OCSP_BASICRESP_get1_ext_d2i(OCSP_BASICRESP *x, int nid, int *crit, - int *idx); -int OCSP_BASICRESP_add1_ext_i2d(OCSP_BASICRESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_BASICRESP_add_ext(OCSP_BASICRESP *x, X509_EXTENSION *ex, int loc); - -int OCSP_SINGLERESP_get_ext_count(OCSP_SINGLERESP *x); -int OCSP_SINGLERESP_get_ext_by_NID(OCSP_SINGLERESP *x, int nid, int lastpos); -int OCSP_SINGLERESP_get_ext_by_OBJ(OCSP_SINGLERESP *x, const ASN1_OBJECT *obj, - int lastpos); -int OCSP_SINGLERESP_get_ext_by_critical(OCSP_SINGLERESP *x, int crit, - int lastpos); -X509_EXTENSION *OCSP_SINGLERESP_get_ext(OCSP_SINGLERESP *x, int loc); -X509_EXTENSION *OCSP_SINGLERESP_delete_ext(OCSP_SINGLERESP *x, int loc); -void *OCSP_SINGLERESP_get1_ext_d2i(OCSP_SINGLERESP *x, int nid, int *crit, - int *idx); -int OCSP_SINGLERESP_add1_ext_i2d(OCSP_SINGLERESP *x, int nid, void *value, - int crit, unsigned long flags); -int OCSP_SINGLERESP_add_ext(OCSP_SINGLERESP *x, X509_EXTENSION *ex, int loc); -const OCSP_CERTID *OCSP_SINGLERESP_get0_id(const OCSP_SINGLERESP *x); - -DECLARE_ASN1_FUNCTIONS(OCSP_SINGLERESP) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTSTATUS) -DECLARE_ASN1_FUNCTIONS(OCSP_REVOKEDINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_BASICRESP) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPDATA) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPID) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPONSE) -DECLARE_ASN1_FUNCTIONS(OCSP_RESPBYTES) -DECLARE_ASN1_FUNCTIONS(OCSP_ONEREQ) -DECLARE_ASN1_FUNCTIONS(OCSP_CERTID) -DECLARE_ASN1_FUNCTIONS(OCSP_REQUEST) -DECLARE_ASN1_FUNCTIONS(OCSP_SIGNATURE) -DECLARE_ASN1_FUNCTIONS(OCSP_REQINFO) -DECLARE_ASN1_FUNCTIONS(OCSP_CRLID) -DECLARE_ASN1_FUNCTIONS(OCSP_SERVICELOC) - -const char *OCSP_response_status_str(long s); -const char *OCSP_cert_status_str(long s); -const char *OCSP_crl_reason_str(long s); - -int OCSP_REQUEST_print(BIO *bp, OCSP_REQUEST *a, unsigned long flags); -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); - - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin64/include/openssl/ocsperr.h b/openSSL/lin64/include/openssl/ocsperr.h deleted file mode 100644 index 8dd9e01..0000000 --- a/openSSL/lin64/include/openssl/ocsperr.h +++ /dev/null @@ -1,78 +0,0 @@ -/* - * 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_OCSPERR_H -# define HEADER_OCSPERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/opensslconf.h b/openSSL/lin64/include/openssl/opensslconf.h deleted file mode 100644 index ed4c3c2..0000000 --- a/openSSL/lin64/include/openssl/opensslconf.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by Makefile from include/openssl/opensslconf.h.in - * - * Copyright 2016-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_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_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_STATIC_ENGINE -# define OPENSSL_NO_STATIC_ENGINE -#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 -# elif defined(__SUNPRO_C) -# if (__SUNPRO_C >= 0x5130) -# 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/openSSL/lin64/include/openssl/opensslv.h b/openSSL/lin64/include/openssl/opensslv.h deleted file mode 100644 index fec5f57..0000000 --- a/openSSL/lin64/include/openssl/opensslv.h +++ /dev/null @@ -1,101 +0,0 @@ -/* - * Copyright 1999-2022 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_OPENSSLV_H -# define HEADER_OPENSSLV_H - -#ifdef __cplusplus -extern "C" { -#endif - -/*- - * Numeric release version identifier: - * MNNFFPPS: major minor fix patch status - * The status nibble has one of the values 0 for development, 1 to e for betas - * 1 to 14, and f for release. The patch level is exactly that. - * For example: - * 0.9.3-dev 0x00903000 - * 0.9.3-beta1 0x00903001 - * 0.9.3-beta2-dev 0x00903002 - * 0.9.3-beta2 0x00903002 (same as ...beta2-dev) - * 0.9.3 0x0090300f - * 0.9.3a 0x0090301f - * 0.9.4 0x0090400f - * 1.2.3z 0x102031af - * - * For continuity reasons (because 0.9.5 is already out, and is coded - * 0x00905100), between 0.9.5 and 0.9.6 the coding of the patch level - * part is slightly different, by setting the highest bit. This means - * that 0.9.5a looks like this: 0x0090581f. At 0.9.6, we can start - * with 0x0090600S... - * - * (Prior to 0.9.3-dev a different scheme was used: 0.9.2b is 0x0922.) - * (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for - * major minor fix final patch/beta) - */ -# define OPENSSL_VERSION_NUMBER 0x1010111fL -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.1q 5 Jul 2022" - -/*- - * The macros below are to be used for shared library (.so, .dll, ...) - * versioning. That kind of versioning works a bit differently between - * operating systems. The most usual scheme is to set a major and a minor - * number, and have the runtime loader check that the major number is equal - * to what it was at application link time, while the minor number has to - * be greater or equal to what it was at application link time. With this - * scheme, the version number is usually part of the file name, like this: - * - * libcrypto.so.0.9 - * - * Some unixen also make a softlink with the major version number only: - * - * libcrypto.so.0 - * - * On Tru64 and IRIX 6.x it works a little bit differently. There, the - * shared library version is stored in the file, and is actually a series - * of versions, separated by colons. The rightmost version present in the - * library when linking an application is stored in the application to be - * matched at run time. When the application is run, a check is done to - * see if the library version stored in the application matches any of the - * versions in the version string of the library itself. - * This version string can be constructed in any way, depending on what - * kind of matching is desired. However, to implement the same scheme as - * the one used in the other unixen, all compatible versions, from lowest - * to highest, should be part of the string. Consecutive builds would - * give the following versions strings: - * - * 3.0 - * 3.0:3.1 - * 3.0:3.1:3.2 - * 4.0 - * 4.0:4.1 - * - * Notice how version 4 is completely incompatible with version, and - * therefore give the breach you can see. - * - * There may be other schemes as well that I haven't yet discovered. - * - * So, here's the way it works here: first of all, the library version - * number doesn't need at all to match the overall OpenSSL version. - * However, it's nice and more understandable if it actually does. - * The current library version is stored in the macro SHLIB_VERSION_NUMBER, - * which is just a piece of text in the format "M.m.e" (Major, minor, edit). - * For the sake of Tru64, IRIX, and any other OS that behaves in similar ways, - * we need to keep a history of version numbers, which is done in the - * macro SHLIB_VERSION_HISTORY. The numbers are separated by colons and - * should only keep the versions that are binary compatible with the current. - */ -# define SHLIB_VERSION_HISTORY "" -# define SHLIB_VERSION_NUMBER "1.1" - - -#ifdef __cplusplus -} -#endif -#endif /* HEADER_OPENSSLV_H */ diff --git a/openSSL/lin64/include/openssl/ossl_typ.h b/openSSL/lin64/include/openssl/ossl_typ.h deleted file mode 100644 index e0edfaa..0000000 --- a/openSSL/lin64/include/openssl/ossl_typ.h +++ /dev/null @@ -1,197 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_OPENSSL_TYPES_H -# define HEADER_OPENSSL_TYPES_H - -#include - -#ifdef __cplusplus -extern "C" { -#endif - -# include - -# ifdef NO_ASN1_TYPEDEFS -# define ASN1_INTEGER ASN1_STRING -# define ASN1_ENUMERATED ASN1_STRING -# define ASN1_BIT_STRING ASN1_STRING -# define ASN1_OCTET_STRING ASN1_STRING -# define ASN1_PRINTABLESTRING ASN1_STRING -# define ASN1_T61STRING ASN1_STRING -# define ASN1_IA5STRING ASN1_STRING -# define ASN1_UTCTIME ASN1_STRING -# define ASN1_GENERALIZEDTIME ASN1_STRING -# define ASN1_TIME ASN1_STRING -# define ASN1_GENERALSTRING ASN1_STRING -# define ASN1_UNIVERSALSTRING ASN1_STRING -# define ASN1_BMPSTRING ASN1_STRING -# define ASN1_VISIBLESTRING ASN1_STRING -# define ASN1_UTF8STRING ASN1_STRING -# define ASN1_BOOLEAN int -# define ASN1_NULL int -# else -typedef struct asn1_string_st ASN1_INTEGER; -typedef struct asn1_string_st ASN1_ENUMERATED; -typedef struct asn1_string_st ASN1_BIT_STRING; -typedef struct asn1_string_st ASN1_OCTET_STRING; -typedef struct asn1_string_st ASN1_PRINTABLESTRING; -typedef struct asn1_string_st ASN1_T61STRING; -typedef struct asn1_string_st ASN1_IA5STRING; -typedef struct asn1_string_st ASN1_GENERALSTRING; -typedef struct asn1_string_st ASN1_UNIVERSALSTRING; -typedef struct asn1_string_st ASN1_BMPSTRING; -typedef struct asn1_string_st ASN1_UTCTIME; -typedef struct asn1_string_st ASN1_TIME; -typedef struct asn1_string_st ASN1_GENERALIZEDTIME; -typedef struct asn1_string_st ASN1_VISIBLESTRING; -typedef struct asn1_string_st ASN1_UTF8STRING; -typedef struct asn1_string_st ASN1_STRING; -typedef int ASN1_BOOLEAN; -typedef int ASN1_NULL; -# endif - -typedef struct asn1_object_st ASN1_OBJECT; - -typedef struct ASN1_ITEM_st ASN1_ITEM; -typedef struct asn1_pctx_st ASN1_PCTX; -typedef struct asn1_sctx_st ASN1_SCTX; - -# ifdef _WIN32 -# undef X509_NAME -# undef X509_EXTENSIONS -# undef PKCS7_ISSUER_AND_SERIAL -# undef PKCS7_SIGNER_INFO -# undef OCSP_REQUEST -# undef OCSP_RESPONSE -# endif - -# ifdef BIGNUM -# undef BIGNUM -# endif -struct dane_st; -typedef struct bio_st BIO; -typedef struct bignum_st BIGNUM; -typedef struct bignum_ctx BN_CTX; -typedef struct bn_blinding_st BN_BLINDING; -typedef struct bn_mont_ctx_st BN_MONT_CTX; -typedef struct bn_recp_ctx_st BN_RECP_CTX; -typedef struct bn_gencb_st BN_GENCB; - -typedef struct buf_mem_st BUF_MEM; - -typedef struct evp_cipher_st EVP_CIPHER; -typedef struct evp_cipher_ctx_st EVP_CIPHER_CTX; -typedef struct evp_md_st EVP_MD; -typedef struct evp_md_ctx_st EVP_MD_CTX; -typedef struct evp_pkey_st EVP_PKEY; - -typedef struct evp_pkey_asn1_method_st EVP_PKEY_ASN1_METHOD; - -typedef struct evp_pkey_method_st EVP_PKEY_METHOD; -typedef struct evp_pkey_ctx_st EVP_PKEY_CTX; - -typedef struct evp_Encode_Ctx_st EVP_ENCODE_CTX; - -typedef struct hmac_ctx_st HMAC_CTX; - -typedef struct dh_st DH; -typedef struct dh_method DH_METHOD; - -typedef struct dsa_st DSA; -typedef struct dsa_method DSA_METHOD; - -typedef struct rsa_st RSA; -typedef struct rsa_meth_st RSA_METHOD; -typedef struct rsa_pss_params_st RSA_PSS_PARAMS; - -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; -typedef struct X509_algor_st X509_ALGOR; -typedef struct X509_crl_st X509_CRL; -typedef struct x509_crl_method_st X509_CRL_METHOD; -typedef struct x509_revoked_st X509_REVOKED; -typedef struct X509_name_st X509_NAME; -typedef struct X509_pubkey_st X509_PUBKEY; -typedef struct x509_store_st X509_STORE; -typedef struct x509_store_ctx_st X509_STORE_CTX; - -typedef struct x509_object_st X509_OBJECT; -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; -typedef struct conf_st CONF; -typedef struct ossl_init_settings_st OPENSSL_INIT_SETTINGS; - -typedef struct ui_st UI; -typedef struct ui_method_st UI_METHOD; - -typedef struct engine_st ENGINE; -typedef struct ssl_st SSL; -typedef struct ssl_ctx_st SSL_CTX; - -typedef struct comp_ctx_st COMP_CTX; -typedef struct comp_method_st COMP_METHOD; - -typedef struct X509_POLICY_NODE_st X509_POLICY_NODE; -typedef struct X509_POLICY_LEVEL_st X509_POLICY_LEVEL; -typedef struct X509_POLICY_TREE_st X509_POLICY_TREE; -typedef struct X509_POLICY_CACHE_st X509_POLICY_CACHE; - -typedef struct AUTHORITY_KEYID_st AUTHORITY_KEYID; -typedef struct DIST_POINT_st DIST_POINT; -typedef struct ISSUING_DIST_POINT_st ISSUING_DIST_POINT; -typedef struct NAME_CONSTRAINTS_st NAME_CONSTRAINTS; - -typedef struct crypto_ex_data_st CRYPTO_EX_DATA; - -typedef struct ocsp_req_ctx_st OCSP_REQ_CTX; -typedef struct ocsp_response_st OCSP_RESPONSE; -typedef struct ocsp_responder_id_st OCSP_RESPID; - -typedef struct sct_st SCT; -typedef struct sct_ctx_st SCT_CTX; -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; -typedef uintmax_t ossl_uintmax_t; -#else -/* - * Not long long, because the C-library can only be expected to provide - * strtoll(), strtoull() at the same time as intmax_t and strtoimax(), - * strtoumax(). Since we use these for parsing arguments, we need the - * conversion functions, not just the sizes. - */ -typedef long ossl_intmax_t; -typedef unsigned long ossl_uintmax_t; -#endif - -#ifdef __cplusplus -} -#endif -#endif /* def HEADER_OPENSSL_TYPES_H */ diff --git a/openSSL/lin64/include/openssl/pem.h b/openSSL/lin64/include/openssl/pem.h deleted file mode 100644 index 2ef5b5d..0000000 --- a/openSSL/lin64/include/openssl/pem.h +++ /dev/null @@ -1,378 +0,0 @@ -/* - * 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_PEM_H -# define HEADER_PEM_H - -# include -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define PEM_BUFSIZE 1024 - -# define PEM_STRING_X509_OLD "X509 CERTIFICATE" -# define PEM_STRING_X509 "CERTIFICATE" -# define PEM_STRING_X509_TRUSTED "TRUSTED CERTIFICATE" -# define PEM_STRING_X509_REQ_OLD "NEW CERTIFICATE REQUEST" -# define PEM_STRING_X509_REQ "CERTIFICATE REQUEST" -# define PEM_STRING_X509_CRL "X509 CRL" -# define PEM_STRING_EVP_PKEY "ANY PRIVATE KEY" -# define PEM_STRING_PUBLIC "PUBLIC KEY" -# define PEM_STRING_RSA "RSA PRIVATE KEY" -# define PEM_STRING_RSA_PUBLIC "RSA PUBLIC KEY" -# define PEM_STRING_DSA "DSA PRIVATE KEY" -# define PEM_STRING_DSA_PUBLIC "DSA PUBLIC KEY" -# define PEM_STRING_PKCS7 "PKCS7" -# define PEM_STRING_PKCS7_SIGNED "PKCS #7 SIGNED DATA" -# define PEM_STRING_PKCS8 "ENCRYPTED PRIVATE KEY" -# define PEM_STRING_PKCS8INF "PRIVATE KEY" -# define PEM_STRING_DHPARAMS "DH PARAMETERS" -# define PEM_STRING_DHXPARAMS "X9.42 DH PARAMETERS" -# define PEM_STRING_SSL_SESSION "SSL SESSION PARAMETERS" -# define PEM_STRING_DSAPARAMS "DSA PARAMETERS" -# define PEM_STRING_ECDSA_PUBLIC "ECDSA PUBLIC KEY" -# define PEM_STRING_ECPARAMETERS "EC PARAMETERS" -# define PEM_STRING_ECPRIVATEKEY "EC PRIVATE KEY" -# define PEM_STRING_PARAMETERS "PARAMETERS" -# define PEM_STRING_CMS "CMS" - -# define PEM_TYPE_ENCRYPTED 10 -# define PEM_TYPE_MIC_ONLY 20 -# define PEM_TYPE_MIC_CLEAR 30 -# define PEM_TYPE_CLEAR 40 - -/* - * 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 - * IMPLEMENT_PEM_rw_cb(...) - */ - -# ifdef OPENSSL_NO_STDIO - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) /**/ -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) /**/ -# else - -# define IMPLEMENT_PEM_read_fp(name, type, str, asn1) \ -type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u)\ -{ \ -return PEM_ASN1_read((d2i_of_void *)d2i_##asn1, str,fp,(void **)x,cb,u); \ -} - -# define IMPLEMENT_PEM_write_fp(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x) \ -{ \ -return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, const type *x) \ -{ \ -return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,(void *)x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, \ - void *u) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) \ -int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, \ - void *u) \ - { \ - return PEM_ASN1_write((i2d_of_void *)i2d_##asn1,str,fp,x,enc,kstr,klen,cb,u); \ - } - -# endif - -# define IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ -type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u)\ -{ \ -return PEM_ASN1_read_bio((d2i_of_void *)d2i_##asn1, str,bp,(void **)x,cb,u); \ -} - -# define IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x) \ -{ \ -return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, const type *x) \ -{ \ -return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,NULL,NULL,0,NULL,NULL); \ -} - -# define IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ -int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u) \ - { \ - return PEM_ASN1_write_bio((i2d_of_void *)i2d_##asn1,str,bp,(void *)x,enc,kstr,klen,cb,u); \ - } - -# define IMPLEMENT_PEM_write(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_fp_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_write_cb_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_bio_const(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb_fp_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_read_bio(name, type, str, asn1) \ - IMPLEMENT_PEM_read_fp(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw_const(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_const(name, type, str, asn1) - -# define IMPLEMENT_PEM_rw_cb(name, type, str, asn1) \ - IMPLEMENT_PEM_read(name, type, str, asn1) \ - IMPLEMENT_PEM_write_cb(name, type, str, asn1) - -/* These are the same except they are for the declarations */ - -# if defined(OPENSSL_NO_STDIO) - -# define DECLARE_PEM_read_fp(name, type) /**/ -# define DECLARE_PEM_write_fp(name, type) /**/ -# define DECLARE_PEM_write_fp_const(name, type) /**/ -# define DECLARE_PEM_write_cb_fp(name, type) /**/ -# else - -# define DECLARE_PEM_read_fp(name, type) \ - type *PEM_read_##name(FILE *fp, type **x, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write_fp(name, type) \ - int PEM_write_##name(FILE *fp, type *x); - -# define DECLARE_PEM_write_fp_const(name, type) \ - int PEM_write_##name(FILE *fp, const type *x); - -# define DECLARE_PEM_write_cb_fp(name, type) \ - int PEM_write_##name(FILE *fp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u); - -# endif - -# define DECLARE_PEM_read_bio(name, type) \ - type *PEM_read_bio_##name(BIO *bp, type **x, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write_bio(name, type) \ - int PEM_write_bio_##name(BIO *bp, type *x); - -# define DECLARE_PEM_write_bio_const(name, type) \ - int PEM_write_bio_##name(BIO *bp, const type *x); - -# define DECLARE_PEM_write_cb_bio(name, type) \ - int PEM_write_bio_##name(BIO *bp, type *x, const EVP_CIPHER *enc, \ - unsigned char *kstr, int klen, pem_password_cb *cb, void *u); - -# define DECLARE_PEM_write(name, type) \ - DECLARE_PEM_write_bio(name, type) \ - DECLARE_PEM_write_fp(name, type) -# define DECLARE_PEM_write_const(name, type) \ - DECLARE_PEM_write_bio_const(name, type) \ - DECLARE_PEM_write_fp_const(name, type) -# define DECLARE_PEM_write_cb(name, type) \ - DECLARE_PEM_write_cb_bio(name, type) \ - DECLARE_PEM_write_cb_fp(name, type) -# define DECLARE_PEM_read(name, type) \ - DECLARE_PEM_read_bio(name, type) \ - DECLARE_PEM_read_fp(name, type) -# define DECLARE_PEM_rw(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write(name, type) -# define DECLARE_PEM_rw_const(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write_const(name, type) -# define DECLARE_PEM_rw_cb(name, type) \ - DECLARE_PEM_read(name, type) \ - DECLARE_PEM_write_cb(name, type) -typedef int pem_password_cb (char *buf, int size, int rwflag, void *userdata); - -int PEM_get_EVP_CIPHER_INFO(char *header, EVP_CIPHER_INFO *cipher); -int PEM_do_header(EVP_CIPHER_INFO *cipher, unsigned char *data, long *len, - pem_password_cb *callback, void *u); - -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, - const char *name, BIO *bp, pem_password_cb *cb, - void *u); -void *PEM_ASN1_read_bio(d2i_of_void *d2i, const char *name, BIO *bp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write_bio(i2d_of_void *i2d, const char *name, BIO *bp, void *x, - const EVP_CIPHER *enc, unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); - -STACK_OF(X509_INFO) *PEM_X509_INFO_read_bio(BIO *bp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -int PEM_X509_INFO_write_bio(BIO *bp, X509_INFO *xi, EVP_CIPHER *enc, - unsigned char *kstr, int klen, - pem_password_cb *cd, void *u); - -#ifndef OPENSSL_NO_STDIO -int PEM_read(FILE *fp, char **name, char **header, - unsigned char **data, long *len); -int PEM_write(FILE *fp, const char *name, const char *hdr, - const unsigned char *data, long len); -void *PEM_ASN1_read(d2i_of_void *d2i, const char *name, FILE *fp, void **x, - pem_password_cb *cb, void *u); -int PEM_ASN1_write(i2d_of_void *i2d, const char *name, FILE *fp, - void *x, const EVP_CIPHER *enc, unsigned char *kstr, - int klen, pem_password_cb *callback, void *u); -STACK_OF(X509_INFO) *PEM_X509_INFO_read(FILE *fp, STACK_OF(X509_INFO) *sk, - pem_password_cb *cb, void *u); -#endif - -int PEM_SignInit(EVP_MD_CTX *ctx, EVP_MD *type); -int PEM_SignUpdate(EVP_MD_CTX *ctx, unsigned char *d, unsigned int cnt); -int PEM_SignFinal(EVP_MD_CTX *ctx, unsigned char *sigret, - unsigned int *siglen, EVP_PKEY *pkey); - -/* The default pem_password_cb that's used internally */ -int PEM_def_callback(char *buf, int num, int rwflag, void *userdata); -void PEM_proc_type(char *buf, int type); -void PEM_dek_info(char *buf, const char *type, int len, char *str); - -# include - -DECLARE_PEM_rw(X509, X509) -DECLARE_PEM_rw(X509_AUX, X509) -DECLARE_PEM_rw(X509_REQ, X509_REQ) -DECLARE_PEM_write(X509_REQ_NEW, X509_REQ) -DECLARE_PEM_rw(X509_CRL, X509_CRL) -DECLARE_PEM_rw(PKCS7, PKCS7) -DECLARE_PEM_rw(NETSCAPE_CERT_SEQUENCE, NETSCAPE_CERT_SEQUENCE) -DECLARE_PEM_rw(PKCS8, X509_SIG) -DECLARE_PEM_rw(PKCS8_PRIV_KEY_INFO, PKCS8_PRIV_KEY_INFO) -# ifndef OPENSSL_NO_RSA -DECLARE_PEM_rw_cb(RSAPrivateKey, RSA) -DECLARE_PEM_rw_const(RSAPublicKey, RSA) -DECLARE_PEM_rw(RSA_PUBKEY, RSA) -# endif -# ifndef OPENSSL_NO_DSA -DECLARE_PEM_rw_cb(DSAPrivateKey, DSA) -DECLARE_PEM_rw(DSA_PUBKEY, DSA) -DECLARE_PEM_rw_const(DSAparams, DSA) -# endif -# ifndef OPENSSL_NO_EC -DECLARE_PEM_rw_const(ECPKParameters, EC_GROUP) -DECLARE_PEM_rw_cb(ECPrivateKey, EC_KEY) -DECLARE_PEM_rw(EC_PUBKEY, EC_KEY) -# endif -# ifndef OPENSSL_NO_DH -DECLARE_PEM_rw_const(DHparams, DH) -DECLARE_PEM_write_const(DHxparams, DH) -# endif -DECLARE_PEM_rw_cb(PrivateKey, EVP_PKEY) -DECLARE_PEM_rw(PUBKEY, EVP_PKEY) - -int PEM_write_bio_PrivateKey_traditional(BIO *bp, EVP_PKEY *x, - const EVP_CIPHER *enc, - unsigned char *kstr, int klen, - pem_password_cb *cb, void *u); - -int PEM_write_bio_PKCS8PrivateKey_nid(BIO *bp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_bio_PKCS8PrivateKey(BIO *, EVP_PKEY *, const EVP_CIPHER *, - char *, int, pem_password_cb *, void *); -int i2d_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_bio(BIO *bp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -EVP_PKEY *d2i_PKCS8PrivateKey_bio(BIO *bp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -# ifndef OPENSSL_NO_STDIO -int i2d_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int i2d_PKCS8PrivateKey_nid_fp(FILE *fp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); -int PEM_write_PKCS8PrivateKey_nid(FILE *fp, EVP_PKEY *x, int nid, - char *kstr, int klen, - pem_password_cb *cb, void *u); - -EVP_PKEY *d2i_PKCS8PrivateKey_fp(FILE *fp, EVP_PKEY **x, pem_password_cb *cb, - void *u); - -int PEM_write_PKCS8PrivateKey(FILE *fp, EVP_PKEY *x, const EVP_CIPHER *enc, - char *kstr, int klen, pem_password_cb *cd, - void *u); -# endif -EVP_PKEY *PEM_read_bio_Parameters(BIO *bp, EVP_PKEY **x); -int PEM_write_bio_Parameters(BIO *bp, EVP_PKEY *x); - -# ifndef OPENSSL_NO_DSA -EVP_PKEY *b2i_PrivateKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PublicKey(const unsigned char **in, long length); -EVP_PKEY *b2i_PrivateKey_bio(BIO *in); -EVP_PKEY *b2i_PublicKey_bio(BIO *in); -int i2b_PrivateKey_bio(BIO *out, EVP_PKEY *pk); -int i2b_PublicKey_bio(BIO *out, EVP_PKEY *pk); -# ifndef OPENSSL_NO_RC4 -EVP_PKEY *b2i_PVK_bio(BIO *in, pem_password_cb *cb, void *u); -int i2b_PVK_bio(BIO *out, EVP_PKEY *pk, int enclevel, - pem_password_cb *cb, void *u); -# endif -# endif - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/pem2.h b/openSSL/lin64/include/openssl/pem2.h deleted file mode 100644 index 038fe79..0000000 --- a/openSSL/lin64/include/openssl/pem2.h +++ /dev/null @@ -1,13 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_PEM2_H -# define HEADER_PEM2_H -# include -#endif diff --git a/openSSL/lin64/include/openssl/pemerr.h b/openSSL/lin64/include/openssl/pemerr.h deleted file mode 100644 index 4f7e357..0000000 --- a/openSSL/lin64/include/openssl/pemerr.h +++ /dev/null @@ -1,105 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_BIO_PRIVATEKEY_TRADITIONAL 147 -# 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 -# define PEM_R_UNSUPPORTED_PUBLIC_KEY_TYPE 110 - -#endif diff --git a/openSSL/lin64/include/openssl/pkcs12.h b/openSSL/lin64/include/openssl/pkcs12.h deleted file mode 100644 index 3f43dad..0000000 --- a/openSSL/lin64/include/openssl/pkcs12.h +++ /dev/null @@ -1,223 +0,0 @@ -/* - * Copyright 1999-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_PKCS12_H -# define HEADER_PKCS12_H - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define PKCS12_KEY_ID 1 -# define PKCS12_IV_ID 2 -# define PKCS12_MAC_ID 3 - -/* Default iteration count */ -# ifndef PKCS12_DEFAULT_ITER -# define PKCS12_DEFAULT_ITER PKCS5_DEFAULT_ITER -# endif - -# define PKCS12_MAC_KEY_LENGTH 20 - -# define PKCS12_SALT_LEN 8 - -/* It's not clear if these are actually needed... */ -# define PKCS12_key_gen PKCS12_key_gen_utf8 -# define PKCS12_add_friendlyname PKCS12_add_friendlyname_utf8 - -/* MS key usage constants */ - -# define KEY_EX 0x10 -# define KEY_SIG 0x80 - -typedef struct PKCS12_MAC_DATA_st PKCS12_MAC_DATA; - -typedef struct PKCS12_st PKCS12; - -typedef struct PKCS12_SAFEBAG_st PKCS12_SAFEBAG; - -DEFINE_STACK_OF(PKCS12_SAFEBAG) - -typedef struct pkcs12_bag_st PKCS12_BAGS; - -# define PKCS12_ERROR 0 -# define PKCS12_OK 1 - -/* Compatibility macros */ - -#if OPENSSL_API_COMPAT < 0x10100000L - -# define M_PKCS12_bag_type PKCS12_bag_type -# define M_PKCS12_cert_bag_type PKCS12_cert_bag_type -# define M_PKCS12_crl_bag_type PKCS12_cert_bag_type - -# define PKCS12_certbag2x509 PKCS12_SAFEBAG_get1_cert -# define PKCS12_certbag2scrl PKCS12_SAFEBAG_get1_crl -# define PKCS12_bag_type PKCS12_SAFEBAG_get_nid -# define PKCS12_cert_bag_type PKCS12_SAFEBAG_get_bag_nid -# define PKCS12_x5092certbag PKCS12_SAFEBAG_create_cert -# define PKCS12_x509crl2certbag PKCS12_SAFEBAG_create_crl -# define PKCS12_MAKE_KEYBAG PKCS12_SAFEBAG_create0_p8inf -# define PKCS12_MAKE_SHKEYBAG PKCS12_SAFEBAG_create_pkcs8_encrypt - -#endif - -DEPRECATEDIN_1_1_0(ASN1_TYPE *PKCS12_get_attr(const PKCS12_SAFEBAG *bag, int attr_nid)) - -ASN1_TYPE *PKCS8_get_attr(PKCS8_PRIV_KEY_INFO *p8, int attr_nid); -int PKCS12_mac_present(const PKCS12 *p12); -void PKCS12_get0_mac(const ASN1_OCTET_STRING **pmac, - const X509_ALGOR **pmacalg, - const ASN1_OCTET_STRING **psalt, - const ASN1_INTEGER **piter, - const PKCS12 *p12); - -const ASN1_TYPE *PKCS12_SAFEBAG_get0_attr(const PKCS12_SAFEBAG *bag, - int attr_nid); -const ASN1_OBJECT *PKCS12_SAFEBAG_get0_type(const PKCS12_SAFEBAG *bag); -int PKCS12_SAFEBAG_get_nid(const PKCS12_SAFEBAG *bag); -int PKCS12_SAFEBAG_get_bag_nid(const PKCS12_SAFEBAG *bag); - -X509 *PKCS12_SAFEBAG_get1_cert(const PKCS12_SAFEBAG *bag); -X509_CRL *PKCS12_SAFEBAG_get1_crl(const PKCS12_SAFEBAG *bag); -const STACK_OF(PKCS12_SAFEBAG) * -PKCS12_SAFEBAG_get0_safes(const PKCS12_SAFEBAG *bag); -const PKCS8_PRIV_KEY_INFO *PKCS12_SAFEBAG_get0_p8inf(const PKCS12_SAFEBAG *bag); -const X509_SIG *PKCS12_SAFEBAG_get0_pkcs8(const PKCS12_SAFEBAG *bag); - -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_cert(X509 *x509); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_crl(X509_CRL *crl); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_p8inf(PKCS8_PRIV_KEY_INFO *p8); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create0_pkcs8(X509_SIG *p8); -PKCS12_SAFEBAG *PKCS12_SAFEBAG_create_pkcs8_encrypt(int pbe_nid, - const char *pass, - int passlen, - unsigned char *salt, - int saltlen, int iter, - PKCS8_PRIV_KEY_INFO *p8inf); - -PKCS12_SAFEBAG *PKCS12_item_pack_safebag(void *obj, const ASN1_ITEM *it, - int nid1, int nid2); -PKCS8_PRIV_KEY_INFO *PKCS8_decrypt(const X509_SIG *p8, const char *pass, - int passlen); -PKCS8_PRIV_KEY_INFO *PKCS12_decrypt_skey(const PKCS12_SAFEBAG *bag, - const char *pass, int passlen); -X509_SIG *PKCS8_encrypt(int pbe_nid, const EVP_CIPHER *cipher, - const char *pass, int passlen, unsigned char *salt, - int saltlen, int iter, PKCS8_PRIV_KEY_INFO *p8); -X509_SIG *PKCS8_set0_pbe(const char *pass, int passlen, - PKCS8_PRIV_KEY_INFO *p8inf, X509_ALGOR *pbe); -PKCS7 *PKCS12_pack_p7data(STACK_OF(PKCS12_SAFEBAG) *sk); -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7data(PKCS7 *p7); -PKCS7 *PKCS12_pack_p7encdata(int pbe_nid, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - STACK_OF(PKCS12_SAFEBAG) *bags); -STACK_OF(PKCS12_SAFEBAG) *PKCS12_unpack_p7encdata(PKCS7 *p7, const char *pass, - int passlen); - -int PKCS12_pack_authsafes(PKCS12 *p12, STACK_OF(PKCS7) *safes); -STACK_OF(PKCS7) *PKCS12_unpack_authsafes(const PKCS12 *p12); - -int PKCS12_add_localkeyid(PKCS12_SAFEBAG *bag, unsigned char *name, - int namelen); -int PKCS12_add_friendlyname_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_utf8(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_CSPName_asc(PKCS12_SAFEBAG *bag, const char *name, - int namelen); -int PKCS12_add_friendlyname_uni(PKCS12_SAFEBAG *bag, - const unsigned char *name, int namelen); -int PKCS8_add_keyusage(PKCS8_PRIV_KEY_INFO *p8, int usage); -ASN1_TYPE *PKCS12_get_attr_gen(const STACK_OF(X509_ATTRIBUTE) *attrs, - int attr_nid); -char *PKCS12_get_friendlyname(PKCS12_SAFEBAG *bag); -const STACK_OF(X509_ATTRIBUTE) * -PKCS12_SAFEBAG_get0_attrs(const PKCS12_SAFEBAG *bag); -unsigned char *PKCS12_pbe_crypt(const X509_ALGOR *algor, - const char *pass, int passlen, - const unsigned char *in, int inlen, - unsigned char **data, int *datalen, - int en_de); -void *PKCS12_item_decrypt_d2i(const X509_ALGOR *algor, const ASN1_ITEM *it, - const char *pass, int passlen, - const ASN1_OCTET_STRING *oct, int zbuf); -ASN1_OCTET_STRING *PKCS12_item_i2d_encrypt(X509_ALGOR *algor, - const ASN1_ITEM *it, - const char *pass, int passlen, - void *obj, int zbuf); -PKCS12 *PKCS12_init(int mode); -int PKCS12_key_gen_asc(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_uni(unsigned char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_key_gen_utf8(const char *pass, int passlen, unsigned char *salt, - int saltlen, int id, int iter, int n, - unsigned char *out, const EVP_MD *md_type); -int PKCS12_PBE_keyivgen(EVP_CIPHER_CTX *ctx, const char *pass, int passlen, - ASN1_TYPE *param, const EVP_CIPHER *cipher, - const EVP_MD *md_type, int en_de); -int PKCS12_gen_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *mac, unsigned int *maclen); -int PKCS12_verify_mac(PKCS12 *p12, const char *pass, int passlen); -int PKCS12_set_mac(PKCS12 *p12, const char *pass, int passlen, - unsigned char *salt, int saltlen, int iter, - const EVP_MD *md_type); -int PKCS12_setup_mac(PKCS12 *p12, int iter, unsigned char *salt, - int saltlen, const EVP_MD *md_type); -unsigned char *OPENSSL_asc2uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2asc(const unsigned char *uni, int unilen); -unsigned char *OPENSSL_utf82uni(const char *asc, int asclen, - unsigned char **uni, int *unilen); -char *OPENSSL_uni2utf8(const unsigned char *uni, int unilen); - -DECLARE_ASN1_FUNCTIONS(PKCS12) -DECLARE_ASN1_FUNCTIONS(PKCS12_MAC_DATA) -DECLARE_ASN1_FUNCTIONS(PKCS12_SAFEBAG) -DECLARE_ASN1_FUNCTIONS(PKCS12_BAGS) - -DECLARE_ASN1_ITEM(PKCS12_SAFEBAGS) -DECLARE_ASN1_ITEM(PKCS12_AUTHSAFES) - -void PKCS12_PBE_add(void); -int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert, - STACK_OF(X509) **ca); -PKCS12 *PKCS12_create(const char *pass, const char *name, EVP_PKEY *pkey, - X509 *cert, STACK_OF(X509) *ca, int nid_key, int nid_cert, - int iter, int mac_iter, int keytype); - -PKCS12_SAFEBAG *PKCS12_add_cert(STACK_OF(PKCS12_SAFEBAG) **pbags, X509 *cert); -PKCS12_SAFEBAG *PKCS12_add_key(STACK_OF(PKCS12_SAFEBAG) **pbags, - EVP_PKEY *key, int key_usage, int iter, - int key_nid, const char *pass); -int PKCS12_add_safe(STACK_OF(PKCS7) **psafes, STACK_OF(PKCS12_SAFEBAG) *bags, - int safe_nid, int iter, const char *pass); -PKCS12 *PKCS12_add_safes(STACK_OF(PKCS7) *safes, int p7_nid); - -int i2d_PKCS12_bio(BIO *bp, PKCS12 *p12); -# ifndef OPENSSL_NO_STDIO -int i2d_PKCS12_fp(FILE *fp, PKCS12 *p12); -# endif -PKCS12 *d2i_PKCS12_bio(BIO *bp, PKCS12 **p12); -# ifndef OPENSSL_NO_STDIO -PKCS12 *d2i_PKCS12_fp(FILE *fp, PKCS12 **p12); -# endif -int PKCS12_newpass(PKCS12 *p12, const char *oldpass, const char *newpass); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/pkcs12err.h b/openSSL/lin64/include/openssl/pkcs12err.h deleted file mode 100644 index eff5eb2..0000000 --- a/openSSL/lin64/include/openssl/pkcs12err.h +++ /dev/null @@ -1,81 +0,0 @@ -/* - * 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_PKCS12ERR_H -# define HEADER_PKCS12ERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/pkcs7.h b/openSSL/lin64/include/openssl/pkcs7.h deleted file mode 100644 index 9b66e00..0000000 --- a/openSSL/lin64/include/openssl/pkcs7.h +++ /dev/null @@ -1,319 +0,0 @@ -/* - * Copyright 1995-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_PKCS7_H -# define HEADER_PKCS7_H - -# include -# include -# include - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/*- -Encryption_ID DES-CBC -Digest_ID MD5 -Digest_Encryption_ID rsaEncryption -Key_Encryption_ID rsaEncryption -*/ - -typedef struct pkcs7_issuer_and_serial_st { - X509_NAME *issuer; - ASN1_INTEGER *serial; -} PKCS7_ISSUER_AND_SERIAL; - -typedef struct pkcs7_signer_info_st { - ASN1_INTEGER *version; /* version 1 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *digest_alg; - STACK_OF(X509_ATTRIBUTE) *auth_attr; /* [ 0 ] */ - X509_ALGOR *digest_enc_alg; - ASN1_OCTET_STRING *enc_digest; - STACK_OF(X509_ATTRIBUTE) *unauth_attr; /* [ 1 ] */ - /* The private key to sign with */ - EVP_PKEY *pkey; -} PKCS7_SIGNER_INFO; - -DEFINE_STACK_OF(PKCS7_SIGNER_INFO) - -typedef struct pkcs7_recip_info_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ISSUER_AND_SERIAL *issuer_and_serial; - X509_ALGOR *key_enc_algor; - ASN1_OCTET_STRING *enc_key; - X509 *cert; /* get the pub-key from this */ -} PKCS7_RECIP_INFO; - -DEFINE_STACK_OF(PKCS7_RECIP_INFO) - -typedef struct pkcs7_signed_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - struct pkcs7_st *contents; -} PKCS7_SIGNED; -/* - * The above structure is very very similar to PKCS7_SIGN_ENVELOPE. How about - * merging the two - */ - -typedef struct pkcs7_enc_content_st { - ASN1_OBJECT *content_type; - X509_ALGOR *algorithm; - ASN1_OCTET_STRING *enc_data; /* [ 0 ] */ - const EVP_CIPHER *cipher; -} PKCS7_ENC_CONTENT; - -typedef struct pkcs7_enveloped_st { - ASN1_INTEGER *version; /* version 0 */ - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENVELOPE; - -typedef struct pkcs7_signedandenveloped_st { - ASN1_INTEGER *version; /* version 1 */ - STACK_OF(X509_ALGOR) *md_algs; /* md used */ - STACK_OF(X509) *cert; /* [ 0 ] */ - STACK_OF(X509_CRL) *crl; /* [ 1 ] */ - STACK_OF(PKCS7_SIGNER_INFO) *signer_info; - PKCS7_ENC_CONTENT *enc_data; - STACK_OF(PKCS7_RECIP_INFO) *recipientinfo; -} PKCS7_SIGN_ENVELOPE; - -typedef struct pkcs7_digest_st { - ASN1_INTEGER *version; /* version 0 */ - X509_ALGOR *md; /* md used */ - struct pkcs7_st *contents; - ASN1_OCTET_STRING *digest; -} PKCS7_DIGEST; - -typedef struct pkcs7_encrypted_st { - ASN1_INTEGER *version; /* version 0 */ - PKCS7_ENC_CONTENT *enc_data; -} PKCS7_ENCRYPT; - -typedef struct pkcs7_st { - /* - * The following is non NULL if it contains ASN1 encoding of this - * structure - */ - unsigned char *asn1; - long length; -# define PKCS7_S_HEADER 0 -# define PKCS7_S_BODY 1 -# define PKCS7_S_TAIL 2 - int state; /* used during processing */ - int detached; - ASN1_OBJECT *type; - /* content as defined by the type */ - /* - * all encryption/message digests are applied to the 'contents', leaving - * out the 'type' field. - */ - union { - char *ptr; - /* NID_pkcs7_data */ - ASN1_OCTET_STRING *data; - /* NID_pkcs7_signed */ - PKCS7_SIGNED *sign; - /* NID_pkcs7_enveloped */ - PKCS7_ENVELOPE *enveloped; - /* NID_pkcs7_signedAndEnveloped */ - PKCS7_SIGN_ENVELOPE *signed_and_enveloped; - /* NID_pkcs7_digest */ - PKCS7_DIGEST *digest; - /* NID_pkcs7_encrypted */ - PKCS7_ENCRYPT *encrypted; - /* Anything else */ - ASN1_TYPE *other; - } d; -} PKCS7; - -DEFINE_STACK_OF(PKCS7) - -# define PKCS7_OP_SET_DETACHED_SIGNATURE 1 -# define PKCS7_OP_GET_DETACHED_SIGNATURE 2 - -# define PKCS7_get_signed_attributes(si) ((si)->auth_attr) -# define PKCS7_get_attributes(si) ((si)->unauth_attr) - -# define PKCS7_type_is_signed(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_signed) -# define PKCS7_type_is_encrypted(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_encrypted) -# define PKCS7_type_is_enveloped(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_enveloped) -# define PKCS7_type_is_signedAndEnveloped(a) \ - (OBJ_obj2nid((a)->type) == NID_pkcs7_signedAndEnveloped) -# define PKCS7_type_is_data(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_data) -# define PKCS7_type_is_digest(a) (OBJ_obj2nid((a)->type) == NID_pkcs7_digest) - -# define PKCS7_set_detached(p,v) \ - PKCS7_ctrl(p,PKCS7_OP_SET_DETACHED_SIGNATURE,v,NULL) -# define PKCS7_get_detached(p) \ - PKCS7_ctrl(p,PKCS7_OP_GET_DETACHED_SIGNATURE,0,NULL) - -# define PKCS7_is_detached(p7) (PKCS7_type_is_signed(p7) && PKCS7_get_detached(p7)) - -/* S/MIME related flags */ - -# define PKCS7_TEXT 0x1 -# define PKCS7_NOCERTS 0x2 -# define PKCS7_NOSIGS 0x4 -# define PKCS7_NOCHAIN 0x8 -# define PKCS7_NOINTERN 0x10 -# define PKCS7_NOVERIFY 0x20 -# define PKCS7_DETACHED 0x40 -# define PKCS7_BINARY 0x80 -# define PKCS7_NOATTR 0x100 -# define PKCS7_NOSMIMECAP 0x200 -# define PKCS7_NOOLDMIMETYPE 0x400 -# define PKCS7_CRLFEOL 0x800 -# define PKCS7_STREAM 0x1000 -# define PKCS7_NOCRL 0x2000 -# define PKCS7_PARTIAL 0x4000 -# define PKCS7_REUSE_DIGEST 0x8000 -# define PKCS7_NO_DUAL_CONTENT 0x10000 - -/* Flags: for compatibility with older code */ - -# define SMIME_TEXT PKCS7_TEXT -# define SMIME_NOCERTS PKCS7_NOCERTS -# define SMIME_NOSIGS PKCS7_NOSIGS -# define SMIME_NOCHAIN PKCS7_NOCHAIN -# define SMIME_NOINTERN PKCS7_NOINTERN -# define SMIME_NOVERIFY PKCS7_NOVERIFY -# define SMIME_DETACHED PKCS7_DETACHED -# define SMIME_BINARY PKCS7_BINARY -# define SMIME_NOATTR PKCS7_NOATTR - -/* CRLF ASCII canonicalisation */ -# define SMIME_ASCIICRLF 0x80000 - -DECLARE_ASN1_FUNCTIONS(PKCS7_ISSUER_AND_SERIAL) - -int PKCS7_ISSUER_AND_SERIAL_digest(PKCS7_ISSUER_AND_SERIAL *data, - const EVP_MD *type, unsigned char *md, - unsigned int *len); -# ifndef OPENSSL_NO_STDIO -PKCS7 *d2i_PKCS7_fp(FILE *fp, PKCS7 **p7); -int i2d_PKCS7_fp(FILE *fp, PKCS7 *p7); -# endif -PKCS7 *PKCS7_dup(PKCS7 *p7); -PKCS7 *d2i_PKCS7_bio(BIO *bp, PKCS7 **p7); -int i2d_PKCS7_bio(BIO *bp, PKCS7 *p7); -int i2d_PKCS7_bio_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); -int PEM_write_bio_PKCS7_stream(BIO *out, PKCS7 *p7, BIO *in, int flags); - -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNER_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_RECIP_INFO) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGNED) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENC_CONTENT) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_SIGN_ENVELOPE) -DECLARE_ASN1_FUNCTIONS(PKCS7_DIGEST) -DECLARE_ASN1_FUNCTIONS(PKCS7_ENCRYPT) -DECLARE_ASN1_FUNCTIONS(PKCS7) - -DECLARE_ASN1_ITEM(PKCS7_ATTR_SIGN) -DECLARE_ASN1_ITEM(PKCS7_ATTR_VERIFY) - -DECLARE_ASN1_NDEF_FUNCTION(PKCS7) -DECLARE_ASN1_PRINT_FUNCTION(PKCS7) - -long PKCS7_ctrl(PKCS7 *p7, int cmd, long larg, char *parg); - -int PKCS7_set_type(PKCS7 *p7, int type); -int PKCS7_set0_type_other(PKCS7 *p7, int type, ASN1_TYPE *other); -int PKCS7_set_content(PKCS7 *p7, PKCS7 *p7_data); -int PKCS7_SIGNER_INFO_set(PKCS7_SIGNER_INFO *p7i, X509 *x509, EVP_PKEY *pkey, - const EVP_MD *dgst); -int PKCS7_SIGNER_INFO_sign(PKCS7_SIGNER_INFO *si); -int PKCS7_add_signer(PKCS7 *p7, PKCS7_SIGNER_INFO *p7i); -int PKCS7_add_certificate(PKCS7 *p7, X509 *x509); -int PKCS7_add_crl(PKCS7 *p7, X509_CRL *x509); -int PKCS7_content_new(PKCS7 *p7, int nid); -int PKCS7_dataVerify(X509_STORE *cert_store, X509_STORE_CTX *ctx, - BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_signatureVerify(BIO *bio, PKCS7 *p7, PKCS7_SIGNER_INFO *si, - X509 *x509); - -BIO *PKCS7_dataInit(PKCS7 *p7, BIO *bio); -int PKCS7_dataFinal(PKCS7 *p7, BIO *bio); -BIO *PKCS7_dataDecode(PKCS7 *p7, EVP_PKEY *pkey, BIO *in_bio, X509 *pcert); - -PKCS7_SIGNER_INFO *PKCS7_add_signature(PKCS7 *p7, X509 *x509, - EVP_PKEY *pkey, const EVP_MD *dgst); -X509 *PKCS7_cert_from_signer_info(PKCS7 *p7, PKCS7_SIGNER_INFO *si); -int PKCS7_set_digest(PKCS7 *p7, const EVP_MD *md); -STACK_OF(PKCS7_SIGNER_INFO) *PKCS7_get_signer_info(PKCS7 *p7); - -PKCS7_RECIP_INFO *PKCS7_add_recipient(PKCS7 *p7, X509 *x509); -void PKCS7_SIGNER_INFO_get0_algs(PKCS7_SIGNER_INFO *si, EVP_PKEY **pk, - X509_ALGOR **pdig, X509_ALGOR **psig); -void PKCS7_RECIP_INFO_get0_alg(PKCS7_RECIP_INFO *ri, X509_ALGOR **penc); -int PKCS7_add_recipient_info(PKCS7 *p7, PKCS7_RECIP_INFO *ri); -int PKCS7_RECIP_INFO_set(PKCS7_RECIP_INFO *p7i, X509 *x509); -int PKCS7_set_cipher(PKCS7 *p7, const EVP_CIPHER *cipher); -int PKCS7_stream(unsigned char ***boundary, PKCS7 *p7); - -PKCS7_ISSUER_AND_SERIAL *PKCS7_get_issuer_and_serial(PKCS7 *p7, int idx); -ASN1_OCTET_STRING *PKCS7_digest_from_attributes(STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_add_signed_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int type, - void *data); -int PKCS7_add_attribute(PKCS7_SIGNER_INFO *p7si, int nid, int atrtype, - void *value); -ASN1_TYPE *PKCS7_get_attribute(PKCS7_SIGNER_INFO *si, int nid); -ASN1_TYPE *PKCS7_get_signed_attribute(PKCS7_SIGNER_INFO *si, int nid); -int PKCS7_set_signed_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); -int PKCS7_set_attributes(PKCS7_SIGNER_INFO *p7si, - STACK_OF(X509_ATTRIBUTE) *sk); - -PKCS7 *PKCS7_sign(X509 *signcert, EVP_PKEY *pkey, STACK_OF(X509) *certs, - BIO *data, int flags); - -PKCS7_SIGNER_INFO *PKCS7_sign_add_signer(PKCS7 *p7, - X509 *signcert, EVP_PKEY *pkey, - const EVP_MD *md, int flags); - -int PKCS7_final(PKCS7 *p7, BIO *data, int flags); -int PKCS7_verify(PKCS7 *p7, STACK_OF(X509) *certs, X509_STORE *store, - BIO *indata, BIO *out, int flags); -STACK_OF(X509) *PKCS7_get0_signers(PKCS7 *p7, STACK_OF(X509) *certs, - int flags); -PKCS7 *PKCS7_encrypt(STACK_OF(X509) *certs, BIO *in, const EVP_CIPHER *cipher, - int flags); -int PKCS7_decrypt(PKCS7 *p7, EVP_PKEY *pkey, X509 *cert, BIO *data, - int flags); - -int PKCS7_add_attrib_smimecap(PKCS7_SIGNER_INFO *si, - STACK_OF(X509_ALGOR) *cap); -STACK_OF(X509_ALGOR) *PKCS7_get_smimecap(PKCS7_SIGNER_INFO *si); -int PKCS7_simple_smimecap(STACK_OF(X509_ALGOR) *sk, int nid, int arg); - -int PKCS7_add_attrib_content_type(PKCS7_SIGNER_INFO *si, ASN1_OBJECT *coid); -int PKCS7_add0_attrib_signing_time(PKCS7_SIGNER_INFO *si, ASN1_TIME *t); -int PKCS7_add1_attrib_digest(PKCS7_SIGNER_INFO *si, - const unsigned char *md, int mdlen); - -int SMIME_write_PKCS7(BIO *bio, PKCS7 *p7, BIO *data, int flags); -PKCS7 *SMIME_read_PKCS7(BIO *bio, BIO **bcont); - -BIO *BIO_new_PKCS7(BIO *out, PKCS7 *p7); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/pkcs7err.h b/openSSL/lin64/include/openssl/pkcs7err.h deleted file mode 100644 index 02e0299..0000000 --- a/openSSL/lin64/include/openssl/pkcs7err.h +++ /dev/null @@ -1,103 +0,0 @@ -/* - * 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_PKCS7ERR_H -# define HEADER_PKCS7ERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/rand.h b/openSSL/lin64/include/openssl/rand.h deleted file mode 100644 index 38a2a27..0000000 --- a/openSSL/lin64/include/openssl/rand.h +++ /dev/null @@ -1,77 +0,0 @@ -/* - * 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_RAND_H -# define HEADER_RAND_H - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -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 randomness); - int (*pseudorand) (unsigned char *buf, int num); - int (*status) (void); -}; - -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 -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); -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 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)) -/* 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 - - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin64/include/openssl/rand_drbg.h b/openSSL/lin64/include/openssl/rand_drbg.h deleted file mode 100644 index 45b731b..0000000 --- a/openSSL/lin64/include/openssl/rand_drbg.h +++ /dev/null @@ -1,130 +0,0 @@ -/* - * 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/openSSL/lin64/include/openssl/randerr.h b/openSSL/lin64/include/openssl/randerr.h deleted file mode 100644 index 79d5790..0000000 --- a/openSSL/lin64/include/openssl/randerr.h +++ /dev/null @@ -1,94 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# include - -# ifdef __cplusplus -extern "C" -# endif -int ERR_load_RAND_strings(void); - -/* - * RAND function codes. - */ -# define RAND_F_DATA_COLLECT_METHOD 127 -# 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_GROW 125 -# define RAND_F_RAND_POOL_NEW 116 -# define RAND_F_RAND_PSEUDO_BYTES 126 -# 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/openSSL/lin64/include/openssl/rc2.h b/openSSL/lin64/include/openssl/rc2.h deleted file mode 100644 index 585f9e4..0000000 --- a/openSSL/lin64/include/openssl/rc2.h +++ /dev/null @@ -1,51 +0,0 @@ -/* - * Copyright 1995-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_RC2_H -# define HEADER_RC2_H - -# include - -# ifndef OPENSSL_NO_RC2 -# ifdef __cplusplus -extern "C" { -# endif - -typedef unsigned int RC2_INT; - -# define RC2_ENCRYPT 1 -# define RC2_DECRYPT 0 - -# define RC2_BLOCK 8 -# define RC2_KEY_LENGTH 16 - -typedef struct rc2_key_st { - RC2_INT data[64]; -} RC2_KEY; - -void RC2_set_key(RC2_KEY *key, int len, const unsigned char *data, int bits); -void RC2_ecb_encrypt(const unsigned char *in, unsigned char *out, - RC2_KEY *key, int enc); -void RC2_encrypt(unsigned long *data, RC2_KEY *key); -void RC2_decrypt(unsigned long *data, RC2_KEY *key); -void RC2_cbc_encrypt(const unsigned char *in, unsigned char *out, long length, - RC2_KEY *ks, unsigned char *iv, int enc); -void RC2_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC2_KEY *schedule, unsigned char *ivec, - int *num, int enc); -void RC2_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC2_KEY *schedule, unsigned char *ivec, - int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/rc4.h b/openSSL/lin64/include/openssl/rc4.h deleted file mode 100644 index 86803b3..0000000 --- a/openSSL/lin64/include/openssl/rc4.h +++ /dev/null @@ -1,36 +0,0 @@ -/* - * Copyright 1995-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_RC4_H -# define HEADER_RC4_H - -# include - -# ifndef OPENSSL_NO_RC4 -# include -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct rc4_key_st { - RC4_INT x, y; - RC4_INT data[256]; -} RC4_KEY; - -const char *RC4_options(void); -void RC4_set_key(RC4_KEY *key, int len, const unsigned char *data); -void RC4(RC4_KEY *key, size_t len, const unsigned char *indata, - unsigned char *outdata); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/rc5.h b/openSSL/lin64/include/openssl/rc5.h deleted file mode 100644 index 793f88e..0000000 --- a/openSSL/lin64/include/openssl/rc5.h +++ /dev/null @@ -1,63 +0,0 @@ -/* - * Copyright 1995-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_RC5_H -# define HEADER_RC5_H - -# include - -# ifndef OPENSSL_NO_RC5 -# ifdef __cplusplus -extern "C" { -# endif - -# define RC5_ENCRYPT 1 -# define RC5_DECRYPT 0 - -# define RC5_32_INT unsigned int - -# define RC5_32_BLOCK 8 -# define RC5_32_KEY_LENGTH 16/* This is a default, max is 255 */ - -/* - * This are the only values supported. Tweak the code if you want more The - * most supported modes will be RC5-32/12/16 RC5-32/16/8 - */ -# define RC5_8_ROUNDS 8 -# define RC5_12_ROUNDS 12 -# define RC5_16_ROUNDS 16 - -typedef struct rc5_key_st { - /* Number of rounds */ - int rounds; - RC5_32_INT data[2 * (RC5_16_ROUNDS + 1)]; -} RC5_32_KEY; - -void RC5_32_set_key(RC5_32_KEY *key, int len, const unsigned char *data, - int rounds); -void RC5_32_ecb_encrypt(const unsigned char *in, unsigned char *out, - RC5_32_KEY *key, int enc); -void RC5_32_encrypt(unsigned long *data, RC5_32_KEY *key); -void RC5_32_decrypt(unsigned long *data, RC5_32_KEY *key); -void RC5_32_cbc_encrypt(const unsigned char *in, unsigned char *out, - long length, RC5_32_KEY *ks, unsigned char *iv, - int enc); -void RC5_32_cfb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC5_32_KEY *schedule, - unsigned char *ivec, int *num, int enc); -void RC5_32_ofb64_encrypt(const unsigned char *in, unsigned char *out, - long length, RC5_32_KEY *schedule, - unsigned char *ivec, int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/ripemd.h b/openSSL/lin64/include/openssl/ripemd.h deleted file mode 100644 index c42026a..0000000 --- a/openSSL/lin64/include/openssl/ripemd.h +++ /dev/null @@ -1,47 +0,0 @@ -/* - * Copyright 1995-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_RIPEMD_H -# define HEADER_RIPEMD_H - -# include - -#ifndef OPENSSL_NO_RMD160 -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define RIPEMD160_LONG unsigned int - -# define RIPEMD160_CBLOCK 64 -# define RIPEMD160_LBLOCK (RIPEMD160_CBLOCK/4) -# define RIPEMD160_DIGEST_LENGTH 20 - -typedef struct RIPEMD160state_st { - RIPEMD160_LONG A, B, C, D, E; - RIPEMD160_LONG Nl, Nh; - RIPEMD160_LONG data[RIPEMD160_LBLOCK]; - unsigned int num; -} RIPEMD160_CTX; - -int RIPEMD160_Init(RIPEMD160_CTX *c); -int RIPEMD160_Update(RIPEMD160_CTX *c, const void *data, size_t len); -int RIPEMD160_Final(unsigned char *md, RIPEMD160_CTX *c); -unsigned char *RIPEMD160(const unsigned char *d, size_t n, unsigned char *md); -void RIPEMD160_Transform(RIPEMD160_CTX *c, const unsigned char *b); - -# ifdef __cplusplus -} -# endif -# endif - - -#endif diff --git a/openSSL/lin64/include/openssl/rsa.h b/openSSL/lin64/include/openssl/rsa.h deleted file mode 100644 index 5e76365..0000000 --- a/openSSL/lin64/include/openssl/rsa.h +++ /dev/null @@ -1,513 +0,0 @@ -/* - * 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_RSA_H -# define HEADER_RSA_H - -# include - -# ifndef OPENSSL_NO_RSA -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# ifdef __cplusplus -extern "C" { -# endif - -/* The types RSA and RSA_METHOD are defined in ossl_typ.h */ - -# ifndef OPENSSL_RSA_MAX_MODULUS_BITS -# define OPENSSL_RSA_MAX_MODULUS_BITS 16384 -# endif - -# define OPENSSL_RSA_FIPS_MIN_MODULUS_BITS 1024 - -# ifndef OPENSSL_RSA_SMALL_MODULUS_BITS -# define OPENSSL_RSA_SMALL_MODULUS_BITS 3072 -# endif -# ifndef OPENSSL_RSA_MAX_PUBEXP_BITS - -/* exponent limit enforced for "large" modulus only */ -# define OPENSSL_RSA_MAX_PUBEXP_BITS 64 -# endif - -# 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 */ - -# define RSA_FLAG_CACHE_PUBLIC 0x0002 -# define RSA_FLAG_CACHE_PRIVATE 0x0004 -# define RSA_FLAG_BLINDING 0x0008 -# define RSA_FLAG_THREAD_SAFE 0x0010 -/* - * This flag means the private key operations will be handled by rsa_mod_exp - * and that they do not depend on the private key components being present: - * for example a key stored in external hardware. Without this flag - * bn_mod_exp gets called when private key components are absent. - */ -# define RSA_FLAG_EXT_PKEY 0x0020 - -/* - * new with 0.9.6j and 0.9.7b; the built-in - * RSA implementation now uses blinding by - * default (ignoring RSA_FLAG_BLINDING), - * but other engines might not need it - */ -# define RSA_FLAG_NO_BLINDING 0x0080 -# if OPENSSL_API_COMPAT < 0x10100000L -/* - * Does nothing. Previously this switched off constant time behaviour. - */ -# define RSA_FLAG_NO_CONSTTIME 0x0000 -# endif -# if OPENSSL_API_COMPAT < 0x00908000L -/* deprecated name for the flag*/ -/* - * new with 0.9.7h; the built-in RSA - * implementation now uses constant time - * modular exponentiation for secret exponents - * by default. This flag causes the - * faster variable sliding window method to - * be used for all exponents. - */ -# define RSA_FLAG_NO_EXP_CONSTTIME RSA_FLAG_NO_CONSTTIME -# endif - -# define EVP_PKEY_CTX_set_rsa_padding(ctx, pad) \ - RSA_pkey_ctx_ctrl(ctx, -1, EVP_PKEY_CTRL_RSA_PADDING, pad, NULL) - -# define EVP_PKEY_CTX_get_rsa_padding(ctx, 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) \ - 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) \ - 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) \ - 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) \ - RSA_pkey_ctx_ctrl(ctx, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) - -# 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_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) \ - 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)) - -# 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)) - -# 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) - -# define EVP_PKEY_CTRL_RSA_KEYGEN_BITS (EVP_PKEY_ALG_CTRL + 3) -# define EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP (EVP_PKEY_ALG_CTRL + 4) -# define EVP_PKEY_CTRL_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 5) - -# define EVP_PKEY_CTRL_GET_RSA_PADDING (EVP_PKEY_ALG_CTRL + 6) -# define EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN (EVP_PKEY_ALG_CTRL + 7) -# define EVP_PKEY_CTRL_GET_RSA_MGF1_MD (EVP_PKEY_ALG_CTRL + 8) - -# define EVP_PKEY_CTRL_RSA_OAEP_MD (EVP_PKEY_ALG_CTRL + 9) -# define EVP_PKEY_CTRL_RSA_OAEP_LABEL (EVP_PKEY_ALG_CTRL + 10) - -# 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 -# define RSA_PKCS1_OAEP_PADDING 4 -# define RSA_X931_PADDING 5 -/* EVP_PKEY_ only */ -# define RSA_PKCS1_PSS_PADDING 6 - -# define RSA_PKCS1_PADDING_SIZE 11 - -# define RSA_set_app_data(s,arg) RSA_set_ex_data(s,0,arg) -# define RSA_get_app_data(s) RSA_get_ex_data(s,0) - -RSA *RSA_new(void); -RSA *RSA_new_method(ENGINE *engine); -int RSA_bits(const RSA *rsa); -int RSA_size(const RSA *rsa); -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); -const RSA_PSS_PARAMS *RSA_get0_pss_params(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 */ -DEPRECATEDIN_0_9_8(RSA *RSA_generate_key(int bits, unsigned long e, void - (*callback) (int, int, void *), - void *cb_arg)) - -/* 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, - const BIGNUM *Xp, const BIGNUM *Xq1, const BIGNUM *Xq2, - const BIGNUM *Xq, const BIGNUM *e, BN_GENCB *cb); -int RSA_X931_generate_key_ex(RSA *rsa, int bits, const BIGNUM *e, - BN_GENCB *cb); - -int RSA_check_key(const RSA *); -int RSA_check_key_ex(const RSA *, BN_GENCB *cb); - /* next 4 return -1 on error */ -int RSA_public_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_private_encrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_public_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_private_decrypt(int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -void RSA_free(RSA *r); -/* "up" the RSA object's reference count */ -int RSA_up_ref(RSA *r); - -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); - -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) - -struct rsa_pss_params_st { - X509_ALGOR *hashAlgorithm; - X509_ALGOR *maskGenAlgorithm; - ASN1_INTEGER *saltLength; - ASN1_INTEGER *trailerField; - /* Decoded hash algorithm from maskGenAlgorithm */ - X509_ALGOR *maskHash; -}; - -DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) - -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) - -# ifndef OPENSSL_NO_STDIO -int RSA_print_fp(FILE *fp, const RSA *r, int offset); -# endif - -int RSA_print(BIO *bp, const RSA *r, int offset); - -/* - * The following 2 functions sign and verify a X509_SIG ASN1 object inside - * PKCS#1 padded RSA encryption - */ -int RSA_sign(int type, const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, RSA *rsa); -int RSA_verify(int type, const unsigned char *m, unsigned int m_length, - const unsigned char *sigbuf, unsigned int siglen, RSA *rsa); - -/* - * The following 2 function sign and verify a ASN1_OCTET_STRING object inside - * PKCS#1 padded RSA encryption - */ -int RSA_sign_ASN1_OCTET_STRING(int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - RSA *rsa); -int RSA_verify_ASN1_OCTET_STRING(int type, const unsigned char *m, - unsigned int m_length, unsigned char *sigbuf, - unsigned int siglen, RSA *rsa); - -int RSA_blinding_on(RSA *rsa, BN_CTX *ctx); -void RSA_blinding_off(RSA *rsa); -BN_BLINDING *RSA_setup_blinding(RSA *rsa, BN_CTX *ctx); - -int RSA_padding_add_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_PKCS1_type_1(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -int RSA_padding_add_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_PKCS1_type_2(unsigned char *to, int tlen, - const unsigned char *f, int fl, - int rsa_len); -int PKCS1_MGF1(unsigned char *mask, long len, const unsigned char *seed, - long seedlen, const EVP_MD *dgst); -int RSA_padding_add_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, - const unsigned char *p, int pl); -int RSA_padding_check_PKCS1_OAEP(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len, - const unsigned char *p, int pl); -int RSA_padding_add_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - const unsigned char *param, int plen, - const EVP_MD *md, const EVP_MD *mgf1md); -int RSA_padding_check_PKCS1_OAEP_mgf1(unsigned char *to, int tlen, - const unsigned char *from, int flen, - int num, const unsigned char *param, - int plen, const EVP_MD *md, - const EVP_MD *mgf1md); -int RSA_padding_add_SSLv23(unsigned char *to, int tlen, - const unsigned char *f, int fl); -int RSA_padding_check_SSLv23(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_padding_add_none(unsigned char *to, int tlen, const unsigned char *f, - int fl); -int RSA_padding_check_none(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_padding_add_X931(unsigned char *to, int tlen, const unsigned char *f, - int fl); -int RSA_padding_check_X931(unsigned char *to, int tlen, - const unsigned char *f, int fl, int rsa_len); -int RSA_X931_hash_id(int nid); - -int RSA_verify_PKCS1_PSS(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const unsigned char *EM, - int sLen); -int RSA_padding_add_PKCS1_PSS(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, const EVP_MD *Hash, - int sLen); - -int RSA_verify_PKCS1_PSS_mgf1(RSA *rsa, const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - const unsigned char *EM, int sLen); - -int RSA_padding_add_PKCS1_PSS_mgf1(RSA *rsa, unsigned char *EM, - const unsigned char *mHash, - const EVP_MD *Hash, const EVP_MD *mgf1Hash, - int sLen); - -#define RSA_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_RSA, l, p, newf, dupf, freef) -int RSA_set_ex_data(RSA *r, int idx, void *arg); -void *RSA_get_ex_data(const RSA *r, int idx); - -RSA *RSAPublicKey_dup(RSA *rsa); -RSA *RSAPrivateKey_dup(RSA *rsa); - -/* - * If this flag is set the RSA method is FIPS compliant and can be used in - * FIPS mode. This is set in the validated module method. If an application - * sets this flag in its own methods it is its responsibility to ensure the - * result is compliant. - */ - -# define RSA_FLAG_FIPS_METHOD 0x0400 - -/* - * If this flag is set the operations normally disabled in FIPS mode are - * permitted it is then the applications responsibility to ensure that the - * usage is compliant. - */ - -# define RSA_FLAG_NON_FIPS_ALLOW 0x0400 -/* - * Application has decided PRNG is good enough to generate a key: don't - * check. - */ -# define RSA_FLAG_CHECKED 0x0800 - -RSA_METHOD *RSA_meth_new(const char *name, int flags); -void RSA_meth_free(RSA_METHOD *meth); -RSA_METHOD *RSA_meth_dup(const RSA_METHOD *meth); -const char *RSA_meth_get0_name(const RSA_METHOD *meth); -int RSA_meth_set1_name(RSA_METHOD *meth, const char *name); -int RSA_meth_get_flags(const RSA_METHOD *meth); -int RSA_meth_set_flags(RSA_METHOD *meth, int flags); -void *RSA_meth_get0_app_data(const RSA_METHOD *meth); -int RSA_meth_set0_app_data(RSA_METHOD *meth, void *app_data); -int (*RSA_meth_get_pub_enc(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_pub_enc(RSA_METHOD *rsa, - int (*pub_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -int (*RSA_meth_get_pub_dec(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_pub_dec(RSA_METHOD *rsa, - int (*pub_dec) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -int (*RSA_meth_get_priv_enc(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_priv_enc(RSA_METHOD *rsa, - int (*priv_enc) (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, - int padding)); -int (*RSA_meth_get_priv_dec(const RSA_METHOD *meth)) - (int flen, const unsigned char *from, - unsigned char *to, RSA *rsa, int padding); -int RSA_meth_set_priv_dec(RSA_METHOD *rsa, - int (*priv_dec) (int flen, const unsigned char *from, - 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); -int RSA_meth_set_mod_exp(RSA_METHOD *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, - const BIGNUM *m, BN_CTX *ctx, BN_MONT_CTX *m_ctx); -int RSA_meth_set_bn_mod_exp(RSA_METHOD *rsa, - int (*bn_mod_exp) (BIGNUM *r, - const BIGNUM *a, - const BIGNUM *p, - const BIGNUM *m, - BN_CTX *ctx, - BN_MONT_CTX *m_ctx)); -int (*RSA_meth_get_init(const RSA_METHOD *meth)) (RSA *rsa); -int RSA_meth_set_init(RSA_METHOD *rsa, int (*init) (RSA *rsa)); -int (*RSA_meth_get_finish(const RSA_METHOD *meth)) (RSA *rsa); -int RSA_meth_set_finish(RSA_METHOD *rsa, int (*finish) (RSA *rsa)); -int (*RSA_meth_get_sign(const RSA_METHOD *meth)) - (int type, - const unsigned char *m, unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - const RSA *rsa); -int RSA_meth_set_sign(RSA_METHOD *rsa, - int (*sign) (int type, const unsigned char *m, - unsigned int m_length, - unsigned char *sigret, unsigned int *siglen, - const RSA *rsa)); -int (*RSA_meth_get_verify(const RSA_METHOD *meth)) - (int dtype, const unsigned char *m, - unsigned int m_length, const unsigned char *sigbuf, - unsigned int siglen, const RSA *rsa); -int RSA_meth_set_verify(RSA_METHOD *rsa, - int (*verify) (int dtype, const unsigned char *m, - unsigned int m_length, - const unsigned char *sigbuf, - unsigned int siglen, const RSA *rsa)); -int (*RSA_meth_get_keygen(const RSA_METHOD *meth)) - (RSA *rsa, int bits, BIGNUM *e, BN_GENCB *cb); -int RSA_meth_set_keygen(RSA_METHOD *rsa, - int (*keygen) (RSA *rsa, int bits, BIGNUM *e, - BN_GENCB *cb)); -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 -} -# endif -# endif -#endif diff --git a/openSSL/lin64/include/openssl/rsaerr.h b/openSSL/lin64/include/openssl/rsaerr.h deleted file mode 100644 index 59b15e1..0000000 --- a/openSSL/lin64/include/openssl/rsaerr.h +++ /dev/null @@ -1,167 +0,0 @@ -/* - * 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_RSAERR_H -# define HEADER_RSAERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_MISSING_PRIVATE_KEY 179 -# 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/openSSL/lin64/include/openssl/safestack.h b/openSSL/lin64/include/openssl/safestack.h deleted file mode 100644 index 38b5578..0000000 --- a/openSSL/lin64/include/openssl/safestack.h +++ /dev/null @@ -1,207 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SAFESTACK_H -# define HEADER_SAFESTACK_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define STACK_OF(type) struct stack_st_##type - -# define SKM_DEFINE_STACK_OF(t1, t2, t3) \ - STACK_OF(t1); \ - 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_unused ossl_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ - } \ - 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_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_unused ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ - } \ - 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_unused ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ - } \ - 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_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_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_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_unused ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ - } \ - static ossl_unused ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ - } \ - 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_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_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_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_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_unused ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_sort((OPENSSL_STACK *)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_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_unused ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ - sk_##t1##_copyfunc copyfunc, \ - sk_##t1##_freefunc freefunc) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_deep_copy((const OPENSSL_STACK *)sk, \ - (OPENSSL_sk_copyfunc)copyfunc, \ - (OPENSSL_sk_freefunc)freefunc); \ - } \ - 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); \ - } - -# define DEFINE_SPECIAL_STACK_OF(t1, t2) SKM_DEFINE_STACK_OF(t1, t2, t2) -# define DEFINE_STACK_OF(t) SKM_DEFINE_STACK_OF(t, t, t) -# define DEFINE_SPECIAL_STACK_OF_CONST(t1, t2) \ - SKM_DEFINE_STACK_OF(t1, const t2, t2) -# define DEFINE_STACK_OF_CONST(t) SKM_DEFINE_STACK_OF(t, const t, t) - -/*- - * Strings are special: normally an lhash entry will point to a single - * (somewhat) mutable object. In the case of strings: - * - * a) Instead of a single char, there is an array of chars, NUL-terminated. - * b) The string may have be immutable. - * - * So, they need their own declarations. Especially important for - * type-checking tools, such as Deputy. - * - * In practice, however, it appears to be hard to have a const - * string. For now, I'm settling for dealing with the fact it is a - * string at all. - */ -typedef char *OPENSSL_STRING; -typedef const char *OPENSSL_CSTRING; - -/*- - * Confusingly, LHASH_OF(STRING) deals with char ** throughout, but - * STACK_OF(STRING) is really more like STACK_OF(char), only, as mentioned - * above, instead of a single char each entry is a NUL-terminated array of - * chars. So, we have to implement STRING specially for STACK_OF. This is - * dealt with in the autogenerated macros below. - */ -DEFINE_SPECIAL_STACK_OF(OPENSSL_STRING, char) -DEFINE_SPECIAL_STACK_OF_CONST(OPENSSL_CSTRING, char) - -/* - * Similarly, we sometimes use a block of characters, NOT nul-terminated. - * These should also be distinguished from "normal" stacks. - */ -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 -#endif diff --git a/openSSL/lin64/include/openssl/seed.h b/openSSL/lin64/include/openssl/seed.h deleted file mode 100644 index de10b08..0000000 --- a/openSSL/lin64/include/openssl/seed.h +++ /dev/null @@ -1,96 +0,0 @@ -/* - * Copyright 2007-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 - */ - -/* - * Copyright (c) 2007 KISA(Korea Information Security Agency). All rights reserved. - * - * Redistribution and use in source and binary forms, with or without - * modification, are permitted provided that the following conditions - * are met: - * 1. Redistributions of source code must retain the above copyright - * notice, this list of conditions and the following disclaimer. - * 2. Neither the name of author nor the names of its contributors may - * be used to endorse or promote products derived from this software - * without specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY AUTHOR AND CONTRIBUTORS ``AS IS'' AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE - * ARE DISCLAIMED. IN NO EVENT SHALL AUTHOR OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS - * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) - * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT - * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY - * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF - * SUCH DAMAGE. - */ - -#ifndef HEADER_SEED_H -# define HEADER_SEED_H - -# include - -# ifndef OPENSSL_NO_SEED -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* look whether we need 'long' to get 32 bits */ -# ifdef AES_LONG -# ifndef SEED_LONG -# define SEED_LONG 1 -# endif -# endif - -# include - -# define SEED_BLOCK_SIZE 16 -# define SEED_KEY_LENGTH 16 - -typedef struct seed_key_st { -# ifdef SEED_LONG - unsigned long data[32]; -# else - unsigned int data[32]; -# endif -} SEED_KEY_SCHEDULE; - -void SEED_set_key(const unsigned char rawkey[SEED_KEY_LENGTH], - SEED_KEY_SCHEDULE *ks); - -void SEED_encrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); -void SEED_decrypt(const unsigned char s[SEED_BLOCK_SIZE], - unsigned char d[SEED_BLOCK_SIZE], - const SEED_KEY_SCHEDULE *ks); - -void SEED_ecb_encrypt(const unsigned char *in, unsigned char *out, - const SEED_KEY_SCHEDULE *ks, int enc); -void SEED_cbc_encrypt(const unsigned char *in, unsigned char *out, size_t len, - const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int enc); -void SEED_cfb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int *num, - int enc); -void SEED_ofb128_encrypt(const unsigned char *in, unsigned char *out, - size_t len, const SEED_KEY_SCHEDULE *ks, - unsigned char ivec[SEED_BLOCK_SIZE], int *num); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/sha.h b/openSSL/lin64/include/openssl/sha.h deleted file mode 100644 index 6a1eb0d..0000000 --- a/openSSL/lin64/include/openssl/sha.h +++ /dev/null @@ -1,119 +0,0 @@ -/* - * Copyright 1995-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_SHA_H -# define HEADER_SHA_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/*- - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - * ! SHA_LONG has to be at least 32 bits wide. ! - * !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - */ -# define SHA_LONG unsigned int - -# define SHA_LBLOCK 16 -# define SHA_CBLOCK (SHA_LBLOCK*4)/* SHA treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ -# define SHA_LAST_BLOCK (SHA_CBLOCK-8) -# define SHA_DIGEST_LENGTH 20 - -typedef struct SHAstate_st { - SHA_LONG h0, h1, h2, h3, h4; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num; -} SHA_CTX; - -int SHA1_Init(SHA_CTX *c); -int SHA1_Update(SHA_CTX *c, const void *data, size_t len); -int SHA1_Final(unsigned char *md, SHA_CTX *c); -unsigned char *SHA1(const unsigned char *d, size_t n, unsigned char *md); -void SHA1_Transform(SHA_CTX *c, const unsigned char *data); - -# define SHA256_CBLOCK (SHA_LBLOCK*4)/* SHA-256 treats input data as a - * contiguous array of 32 bit wide - * big-endian values. */ - -typedef struct SHA256state_st { - SHA_LONG h[8]; - SHA_LONG Nl, Nh; - SHA_LONG data[SHA_LBLOCK]; - unsigned int num, md_len; -} SHA256_CTX; - -int SHA224_Init(SHA256_CTX *c); -int SHA224_Update(SHA256_CTX *c, const void *data, size_t len); -int SHA224_Final(unsigned char *md, SHA256_CTX *c); -unsigned char *SHA224(const unsigned char *d, size_t n, unsigned char *md); -int SHA256_Init(SHA256_CTX *c); -int SHA256_Update(SHA256_CTX *c, const void *data, size_t len); -int SHA256_Final(unsigned char *md, SHA256_CTX *c); -unsigned char *SHA256(const unsigned char *d, size_t n, unsigned char *md); -void SHA256_Transform(SHA256_CTX *c, const unsigned char *data); - -# define SHA224_DIGEST_LENGTH 28 -# define SHA256_DIGEST_LENGTH 32 -# define SHA384_DIGEST_LENGTH 48 -# define SHA512_DIGEST_LENGTH 64 - -/* - * Unlike 32-bit digest algorithms, SHA-512 *relies* on SHA_LONG64 - * being exactly 64-bit wide. See Implementation Notes in sha512.c - * for further details. - */ -/* - * SHA-512 treats input data as a - * contiguous array of 64 bit - * wide big-endian values. - */ -# define SHA512_CBLOCK (SHA_LBLOCK*8) -# if (defined(_WIN32) || defined(_WIN64)) && !defined(__MINGW32__) -# define SHA_LONG64 unsigned __int64 -# define U64(C) C##UI64 -# elif defined(__arch64__) -# define SHA_LONG64 unsigned long -# define U64(C) C##UL -# else -# define SHA_LONG64 unsigned long long -# define U64(C) C##ULL -# endif - -typedef struct SHA512state_st { - SHA_LONG64 h[8]; - SHA_LONG64 Nl, Nh; - union { - SHA_LONG64 d[SHA_LBLOCK]; - unsigned char p[SHA512_CBLOCK]; - } u; - unsigned int num, md_len; -} SHA512_CTX; - -int SHA384_Init(SHA512_CTX *c); -int SHA384_Update(SHA512_CTX *c, const void *data, size_t len); -int SHA384_Final(unsigned char *md, SHA512_CTX *c); -unsigned char *SHA384(const unsigned char *d, size_t n, unsigned char *md); -int SHA512_Init(SHA512_CTX *c); -int SHA512_Update(SHA512_CTX *c, const void *data, size_t len); -int SHA512_Final(unsigned char *md, SHA512_CTX *c); -unsigned char *SHA512(const unsigned char *d, size_t n, unsigned char *md); -void SHA512_Transform(SHA512_CTX *c, const unsigned char *data); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin64/include/openssl/srp.h b/openSSL/lin64/include/openssl/srp.h deleted file mode 100644 index aaf1355..0000000 --- a/openSSL/lin64/include/openssl/srp.h +++ /dev/null @@ -1,135 +0,0 @@ -/* - * 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 -# define HEADER_SRP_H - -#include - -#ifndef OPENSSL_NO_SRP -# include -# include -# include -# include -# include - -# ifdef __cplusplus -extern "C" { -# endif - -typedef struct SRP_gN_cache_st { - char *b64_bn; - BIGNUM *bn; -} SRP_gN_cache; - - -DEFINE_STACK_OF(SRP_gN_cache) - -typedef struct SRP_user_pwd_st { - /* Owned by us. */ - char *id; - BIGNUM *s; - BIGNUM *v; - /* Not owned by us. */ - const BIGNUM *g; - const BIGNUM *N; - /* Owned by us. */ - char *info; -} SRP_user_pwd; - -void SRP_user_pwd_free(SRP_user_pwd *user_pwd); - -DEFINE_STACK_OF(SRP_user_pwd) - -typedef struct SRP_VBASE_st { - STACK_OF(SRP_user_pwd) *users_pwd; - STACK_OF(SRP_gN_cache) *gN_cache; -/* to simulate a user */ - char *seed_key; - const BIGNUM *default_g; - const BIGNUM *default_N; -} SRP_VBASE; - -/* - * Internal structure storing N and g pair - */ -typedef struct SRP_gN_st { - char *id; - const BIGNUM *g; - const BIGNUM *N; -} SRP_gN; - -DEFINE_STACK_OF(SRP_gN) - -SRP_VBASE *SRP_VBASE_new(char *seed_key); -void SRP_VBASE_free(SRP_VBASE *vb); -int SRP_VBASE_init(SRP_VBASE *vb, char *verifier_file); - -/* This method ignores the configured seed and fails for an unknown user. */ -DEPRECATEDIN_1_1_0(SRP_user_pwd *SRP_VBASE_get_by_user(SRP_VBASE *vb, char *username)) -/* NOTE: unlike in SRP_VBASE_get_by_user, caller owns the returned pointer.*/ -SRP_user_pwd *SRP_VBASE_get1_by_user(SRP_VBASE *vb, char *username); - -char *SRP_create_verifier(const char *user, const char *pass, char **salt, - char **verifier, const char *N, const char *g); -int SRP_create_verifier_BN(const char *user, const char *pass, BIGNUM **salt, - BIGNUM **verifier, const BIGNUM *N, - const BIGNUM *g); - -# define SRP_NO_ERROR 0 -# define SRP_ERR_VBASE_INCOMPLETE_FILE 1 -# define SRP_ERR_VBASE_BN_LIB 2 -# define SRP_ERR_OPEN_FILE 3 -# define SRP_ERR_MEMORY 4 - -# define DB_srptype 0 -# define DB_srpverifier 1 -# define DB_srpsalt 2 -# define DB_srpid 3 -# define DB_srpgN 4 -# define DB_srpinfo 5 -# undef DB_NUMBER -# define DB_NUMBER 6 - -# define DB_SRP_INDEX 'I' -# define DB_SRP_VALID 'V' -# define DB_SRP_REVOKED 'R' -# define DB_SRP_MODIF 'v' - -/* see srp.c */ -char *SRP_check_known_gN_param(const BIGNUM *g, const BIGNUM *N); -SRP_gN *SRP_get_default_gN(const char *id); - -/* server side .... */ -BIGNUM *SRP_Calc_server_key(const BIGNUM *A, const BIGNUM *v, const BIGNUM *u, - const BIGNUM *b, const BIGNUM *N); -BIGNUM *SRP_Calc_B(const BIGNUM *b, const BIGNUM *N, const BIGNUM *g, - const BIGNUM *v); -int SRP_Verify_A_mod_N(const BIGNUM *A, const BIGNUM *N); -BIGNUM *SRP_Calc_u(const BIGNUM *A, const BIGNUM *B, const BIGNUM *N); - -/* client side .... */ -BIGNUM *SRP_Calc_x(const BIGNUM *s, const char *user, const char *pass); -BIGNUM *SRP_Calc_A(const BIGNUM *a, const BIGNUM *N, const BIGNUM *g); -BIGNUM *SRP_Calc_client_key(const BIGNUM *N, const BIGNUM *B, const BIGNUM *g, - const BIGNUM *x, const BIGNUM *a, const BIGNUM *u); -int SRP_Verify_B_mod_N(const BIGNUM *B, const BIGNUM *N); - -# define SRP_MINIMAL_N 1024 - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/srtp.h b/openSSL/lin64/include/openssl/srtp.h deleted file mode 100644 index 0b57c23..0000000 --- a/openSSL/lin64/include/openssl/srtp.h +++ /dev/null @@ -1,50 +0,0 @@ -/* - * Copyright 2011-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 - */ - -/* - * DTLS code by Eric Rescorla - * - * Copyright (C) 2006, Network Resonance, Inc. Copyright (C) 2011, RTFM, Inc. - */ - -#ifndef HEADER_D1_SRTP_H -# define HEADER_D1_SRTP_H - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define SRTP_AES128_CM_SHA1_80 0x0001 -# define SRTP_AES128_CM_SHA1_32 0x0002 -# define SRTP_AES128_F8_SHA1_80 0x0003 -# define SRTP_AES128_F8_SHA1_32 0x0004 -# define SRTP_NULL_SHA1_80 0x0005 -# define SRTP_NULL_SHA1_32 0x0006 - -/* AEAD SRTP protection profiles from RFC 7714 */ -# define SRTP_AEAD_AES_128_GCM 0x0007 -# define SRTP_AEAD_AES_256_GCM 0x0008 - -# ifndef OPENSSL_NO_SRTP - -__owur int SSL_CTX_set_tlsext_use_srtp(SSL_CTX *ctx, const char *profiles); -__owur int SSL_set_tlsext_use_srtp(SSL *ssl, const char *profiles); - -__owur STACK_OF(SRTP_PROTECTION_PROFILE) *SSL_get_srtp_profiles(SSL *ssl); -__owur SRTP_PROTECTION_PROFILE *SSL_get_selected_srtp_profile(SSL *s); - -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin64/include/openssl/ssl.h b/openSSL/lin64/include/openssl/ssl.h deleted file mode 100644 index 9af0c89..0000000 --- a/openSSL/lin64/include/openssl/ssl.h +++ /dev/null @@ -1,2448 +0,0 @@ -/* - * Copyright 1995-2022 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SSL_H -# define HEADER_SSL_H - -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# endif -# include -# include -# include -# include - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* OpenSSL version number for ASN.1 encoding of the session information */ -/*- - * Version 0 - initial version - * Version 1 - added the optional peer certificate - */ -# define SSL_SESSION_ASN1_VERSION 0x0001 - -# define SSL_MAX_SSL_SESSION_ID_LENGTH 32 -# define SSL_MAX_SID_CTX_LENGTH 32 - -# define SSL_MIN_RSA_MODULUS_LENGTH_IN_BYTES (512/8) -# define SSL_MAX_KEY_ARG_LENGTH 8 -# define SSL_MAX_MASTER_KEY_LENGTH 48 - -/* The maximum number of encrypt/decrypt pipelines we can support */ -# define SSL_MAX_PIPELINES 32 - -/* text strings for the ciphers */ - -/* These are used to specify which ciphers to use and not to use */ - -# define SSL_TXT_LOW "LOW" -# define SSL_TXT_MEDIUM "MEDIUM" -# define SSL_TXT_HIGH "HIGH" -# define SSL_TXT_FIPS "FIPS" - -# define SSL_TXT_aNULL "aNULL" -# define SSL_TXT_eNULL "eNULL" -# define SSL_TXT_NULL "NULL" - -# define SSL_TXT_kRSA "kRSA" -# define SSL_TXT_kDHr "kDHr"/* this cipher class has been removed */ -# define SSL_TXT_kDHd "kDHd"/* this cipher class has been removed */ -# define SSL_TXT_kDH "kDH"/* this cipher class has been removed */ -# define SSL_TXT_kEDH "kEDH"/* alias for kDHE */ -# define SSL_TXT_kDHE "kDHE" -# define SSL_TXT_kECDHr "kECDHr"/* this cipher class has been removed */ -# define SSL_TXT_kECDHe "kECDHe"/* this cipher class has been removed */ -# define SSL_TXT_kECDH "kECDH"/* this cipher class has been removed */ -# define SSL_TXT_kEECDH "kEECDH"/* alias for kECDHE */ -# define SSL_TXT_kECDHE "kECDHE" -# define SSL_TXT_kPSK "kPSK" -# define SSL_TXT_kRSAPSK "kRSAPSK" -# define SSL_TXT_kECDHEPSK "kECDHEPSK" -# define SSL_TXT_kDHEPSK "kDHEPSK" -# define SSL_TXT_kGOST "kGOST" -# define SSL_TXT_kSRP "kSRP" - -# define SSL_TXT_aRSA "aRSA" -# define SSL_TXT_aDSS "aDSS" -# define SSL_TXT_aDH "aDH"/* this cipher class has been removed */ -# define SSL_TXT_aECDH "aECDH"/* this cipher class has been removed */ -# define SSL_TXT_aECDSA "aECDSA" -# define SSL_TXT_aPSK "aPSK" -# define SSL_TXT_aGOST94 "aGOST94" -# define SSL_TXT_aGOST01 "aGOST01" -# define SSL_TXT_aGOST12 "aGOST12" -# define SSL_TXT_aGOST "aGOST" -# define SSL_TXT_aSRP "aSRP" - -# define SSL_TXT_DSS "DSS" -# define SSL_TXT_DH "DH" -# define SSL_TXT_DHE "DHE"/* same as "kDHE:-ADH" */ -# define SSL_TXT_EDH "EDH"/* alias for DHE */ -# define SSL_TXT_ADH "ADH" -# define SSL_TXT_RSA "RSA" -# define SSL_TXT_ECDH "ECDH" -# define SSL_TXT_EECDH "EECDH"/* alias for ECDHE" */ -# define SSL_TXT_ECDHE "ECDHE"/* same as "kECDHE:-AECDH" */ -# define SSL_TXT_AECDH "AECDH" -# define SSL_TXT_ECDSA "ECDSA" -# define SSL_TXT_PSK "PSK" -# define SSL_TXT_SRP "SRP" - -# define SSL_TXT_DES "DES" -# define SSL_TXT_3DES "3DES" -# define SSL_TXT_RC4 "RC4" -# define SSL_TXT_RC2 "RC2" -# define SSL_TXT_IDEA "IDEA" -# define SSL_TXT_SEED "SEED" -# define SSL_TXT_AES128 "AES128" -# define SSL_TXT_AES256 "AES256" -# define SSL_TXT_AES "AES" -# define SSL_TXT_AES_GCM "AESGCM" -# define SSL_TXT_AES_CCM "AESCCM" -# define SSL_TXT_AES_CCM_8 "AESCCM8" -# define SSL_TXT_CAMELLIA128 "CAMELLIA128" -# define SSL_TXT_CAMELLIA256 "CAMELLIA256" -# 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" -# define SSL_TXT_SHA "SHA"/* same as "SHA1" */ -# define SSL_TXT_GOST94 "GOST94" -# define SSL_TXT_GOST89MAC "GOST89MAC" -# define SSL_TXT_GOST12 "GOST12" -# define SSL_TXT_GOST89MAC12 "GOST89MAC12" -# define SSL_TXT_SHA256 "SHA256" -# define SSL_TXT_SHA384 "SHA384" - -# define SSL_TXT_SSLV3 "SSLv3" -# define SSL_TXT_TLSV1 "TLSv1" -# define SSL_TXT_TLSV1_1 "TLSv1.1" -# define SSL_TXT_TLSV1_2 "TLSv1.2" - -# define SSL_TXT_ALL "ALL" - -/*- - * COMPLEMENTOF* definitions. These identifiers are used to (de-select) - * ciphers normally not being used. - * Example: "RC4" will activate all ciphers using RC4 including ciphers - * without authentication, which would normally disabled by DEFAULT (due - * the "!ADH" being part of default). Therefore "RC4:!COMPLEMENTOFDEFAULT" - * will make sure that it is also disabled in the specific selection. - * COMPLEMENTOF* identifiers are portable between version, as adjustments - * to the default cipher setup will also be included here. - * - * COMPLEMENTOFDEFAULT does not experience the same special treatment that - * DEFAULT gets, as only selection is being done and no sorting as needed - * for DEFAULT. - */ -# define SSL_TXT_CMPALL "COMPLEMENTOFALL" -# define SSL_TXT_CMPDEF "COMPLEMENTOFDEFAULT" - -/* - * 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 - * throwing out anonymous and unencrypted ciphersuites! (The latter are not - * actually enabled by ALL, but "ALL:RSA" would enable some of them.) - */ - -/* Used in SSL_set_shutdown()/SSL_get_shutdown(); */ -# define SSL_SENT_SHUTDOWN 1 -# define SSL_RECEIVED_SHUTDOWN 2 - -#ifdef __cplusplus -} -#endif - -#ifdef __cplusplus -extern "C" { -#endif - -# define SSL_FILETYPE_ASN1 X509_FILETYPE_ASN1 -# define SSL_FILETYPE_PEM X509_FILETYPE_PEM - -/* - * This is needed to stop compilers complaining about the 'struct ssl_st *' - * function parameters used to prototype callbacks in SSL_CTX. - */ -typedef struct ssl_st *ssl_crock_st; -typedef struct tls_session_ticket_ext_st TLS_SESSION_TICKET_EXT; -typedef struct ssl_method_st SSL_METHOD; -typedef struct ssl_cipher_st SSL_CIPHER; -typedef struct ssl_session_st SSL_SESSION; -typedef struct tls_sigalgs_st TLS_SIGALGS; -typedef struct ssl_conf_ctx_st SSL_CONF_CTX; -typedef struct ssl_comp_st SSL_COMP; - -STACK_OF(SSL_CIPHER); -STACK_OF(SSL_COMP); - -/* SRTP protection profiles for use with the use_srtp extension (RFC 5764)*/ -typedef struct srtp_protection_profile_st { - const char *name; - unsigned long id; -} SRTP_PROTECTION_PROFILE; - -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); - -/* 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 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 (*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 - * OpenSSL 0.9.6d. Usually (depending on the application protocol) the - * workaround is not needed. Unfortunately some broken SSL/TLS - * implementations cannot handle it at all, which is why we include it in - * SSL_OP_ALL. Added in 0.9.6e - */ -# define SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS 0x00000800U - -/* DTLS options */ -# define SSL_OP_NO_QUERY_MTU 0x00001000U -/* Turn on Cookie Exchange (on relevant for servers) */ -# define SSL_OP_COOKIE_EXCHANGE 0x00002000U -/* Don't use RFC4507 ticket extension */ -# define SSL_OP_NO_TICKET 0x00004000U -# ifndef OPENSSL_NO_DTLS1_METHOD -/* Use Cisco's "speshul" version of DTLS_BAD_VER - * (only with deprecated DTLSv1_client_method()) */ -# define SSL_OP_CISCO_ANYCONNECT 0x00008000U -# endif - -/* As server, disallow session resumption on renegotiation */ -# define SSL_OP_NO_SESSION_RESUMPTION_ON_RENEGOTIATION 0x00010000U -/* Don't use compression even if supported */ -# define SSL_OP_NO_COMPRESSION 0x00020000U -/* Permit unsafe legacy renegotiation */ -# 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 - */ -# define SSL_OP_CIPHER_SERVER_PREFERENCE 0x00400000U -/* - * If set, a server will allow a client to issue a SSLv3.0 version number as - * latest version supported in the premaster secret, even when TLSv1.0 - * (version 3.1) was announced in the client hello. Normally this is - * forbidden to prevent version rollback attacks. - */ -# 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_3) -# define SSL_OP_NO_DTLS_MASK (SSL_OP_NO_DTLSv1|SSL_OP_NO_DTLSv1_2) - -/* Disallow all renegotiation */ -# define SSL_OP_NO_RENEGOTIATION 0x40000000U - -/* - * Make server add server-hello extension from early version of cryptopro - * draft, when GOST ciphersuite is negotiated. Required for interoperability - * with CryptoPro CSP 3.x - */ -# define SSL_OP_CRYPTOPRO_TLSEXT_BUG 0x80000000U - -/* - * SSL_OP_ALL: various bug workarounds that should be rather harmless. - * This used to be 0x000FFFFFL before 0.9.7. - * This used to be 0x80000BFFU before 1.1.1. - */ -# define SSL_OP_ALL (SSL_OP_CRYPTOPRO_TLSEXT_BUG|\ - SSL_OP_DONT_INSERT_EMPTY_FRAGMENTS|\ - SSL_OP_LEGACY_SERVER_CONNECT|\ - SSL_OP_TLSEXT_PADDING|\ - SSL_OP_SAFARI_ECDHE_ECDSA_BUG) - -/* OBSOLETE OPTIONS: retained for compatibility */ - -/* Removed from OpenSSL 1.1.0. Was 0x00000001L */ -/* Related to removed SSLv2. */ -# define SSL_OP_MICROSOFT_SESS_ID_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000002L */ -/* Related to removed SSLv2. */ -# define SSL_OP_NETSCAPE_CHALLENGE_BUG 0x0 -/* Removed from OpenSSL 0.9.8q and 1.0.0c. Was 0x00000008L */ -/* Dead forever, see CVE-2010-4180 */ -# define SSL_OP_NETSCAPE_REUSE_CIPHER_CHANGE_BUG 0x0 -/* Removed from OpenSSL 1.0.1h and 1.0.2. Was 0x00000010L */ -/* Refers to ancient SSLREF and SSLv2. */ -# define SSL_OP_SSLREF2_REUSE_CERT_TYPE_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000020 */ -# define SSL_OP_MICROSOFT_BIG_SSLV3_BUFFER 0x0 -/* Removed from OpenSSL 0.9.7h and 0.9.8b. Was 0x00000040L */ -# define SSL_OP_MSIE_SSLV2_RSA_PADDING 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000080 */ -/* Ancient SSLeay version. */ -# define SSL_OP_SSLEAY_080_CLIENT_DH_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000100L */ -# define SSL_OP_TLS_D5_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00000200L */ -# define SSL_OP_TLS_BLOCK_PADDING_BUG 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00080000L */ -# define SSL_OP_SINGLE_ECDH_USE 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x00100000L */ -# define SSL_OP_SINGLE_DH_USE 0x0 -/* Removed from OpenSSL 1.0.1k and 1.0.2. Was 0x00200000L */ -# define SSL_OP_EPHEMERAL_RSA 0x0 -/* Removed from OpenSSL 1.1.0. Was 0x01000000L */ -# define SSL_OP_NO_SSLv2 0x0 -/* Removed from OpenSSL 1.0.1. Was 0x08000000L */ -# 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 */ -# 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 - -/* - * Allow SSL_write(..., n) to return r with 0 < r < n (i.e. report success - * when just a single record has been written): - */ -# define SSL_MODE_ENABLE_PARTIAL_WRITE 0x00000001U -/* - * Make it possible to retry SSL_write() with changed buffer location (buffer - * contents must stay the same!); this is not the default to avoid the - * misconception that non-blocking SSL_write() behaves like non-blocking - * write(): - */ -# define SSL_MODE_ACCEPT_MOVING_WRITE_BUFFER 0x00000002U -/* - * Never bother the application with retries if the transport is blocking: - */ -# define SSL_MODE_AUTO_RETRY 0x00000004U -/* Don't attempt to automatically build certificate chain */ -# 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 freed. - */ -# define SSL_MODE_RELEASE_BUFFERS 0x00000010U -/* - * Send the current time in the Random fields of the ClientHello and - * ServerHello records for compatibility with hypothetical implementations - * that require it. - */ -# define SSL_MODE_SEND_CLIENTHELLO_TIME 0x00000020U -# define SSL_MODE_SEND_SERVERHELLO_TIME 0x00000040U -/* - * Send TLS_FALLBACK_SCSV in the ClientHello. To be set only by applications - * that reconnect with a downgraded protocol version; see - * draft-ietf-tls-downgrade-scsv-00 for details. DO NOT ENABLE THIS if your - * application attempts a normal handshake. Only use this in explicit - * fallback retries, following the guidance in - * draft-ietf-tls-downgrade-scsv-00. - */ -# define SSL_MODE_SEND_FALLBACK_SCSV 0x00000080U -/* - * Support Asynchronous operation - */ -# 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 - * enforcing certificate chain algorithms. When this is set we enforce them. - */ -# define SSL_CERT_FLAG_TLS_STRICT 0x00000001U - -/* Suite B modes, takes same values as certificate verify flags */ -# define SSL_CERT_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define SSL_CERT_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define SSL_CERT_FLAG_SUITEB_128_LOS 0x30000 - -/* Perform all sorts of protocol violations for testing purposes */ -# define SSL_CERT_FLAG_BROKEN_PROTOCOL 0x10000000 - -/* Flags for building certificate chains */ -/* Treat any existing certificates as untrusted CAs */ -# define SSL_BUILD_CHAIN_FLAG_UNTRUSTED 0x1 -/* Don't include root CA in chain */ -# define SSL_BUILD_CHAIN_FLAG_NO_ROOT 0x2 -/* Just check certificates already there */ -# define SSL_BUILD_CHAIN_FLAG_CHECK 0x4 -/* Ignore verification errors */ -# define SSL_BUILD_CHAIN_FLAG_IGNORE_ERROR 0x8 -/* Clear verification errors from queue */ -# define SSL_BUILD_CHAIN_FLAG_CLEAR_ERROR 0x10 - -/* Flags returned by SSL_check_chain */ -/* Certificate can be used with this session */ -# define CERT_PKEY_VALID 0x1 -/* Certificate can also be used for signing */ -# define CERT_PKEY_SIGN 0x2 -/* EE certificate signing algorithm OK */ -# define CERT_PKEY_EE_SIGNATURE 0x10 -/* CA signature algorithms OK */ -# define CERT_PKEY_CA_SIGNATURE 0x20 -/* EE certificate parameters OK */ -# define CERT_PKEY_EE_PARAM 0x40 -/* CA certificate parameters OK */ -# define CERT_PKEY_CA_PARAM 0x80 -/* Signing explicitly allowed as opposed to SHA1 fallback */ -# define CERT_PKEY_EXPLICIT_SIGN 0x100 -/* Client CA issuer names match (always set for server cert) */ -# define CERT_PKEY_ISSUER_NAME 0x200 -/* Cert type matches client types (always set for server cert) */ -# define CERT_PKEY_CERT_TYPE 0x400 -/* Cert chain suitable to Suite B */ -# define CERT_PKEY_SUITEB 0x800 - -# define SSL_CONF_FLAG_CMDLINE 0x1 -# define SSL_CONF_FLAG_FILE 0x2 -# define SSL_CONF_FLAG_CLIENT 0x4 -# define SSL_CONF_FLAG_SERVER 0x8 -# define SSL_CONF_FLAG_SHOW_ERRORS 0x10 -# define SSL_CONF_FLAG_CERTIFICATE 0x20 -# define SSL_CONF_FLAG_REQUIRE_PRIVATE 0x40 -/* Configuration value types */ -# define SSL_CONF_TYPE_UNKNOWN 0x0 -# define SSL_CONF_TYPE_STRING 0x1 -# define SSL_CONF_TYPE_FILE 0x2 -# 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_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); -unsigned long SSL_set_options(SSL *s, unsigned long op); - -# define SSL_CTX_set_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,(op),NULL) -# define SSL_CTX_clear_mode(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_CTX_get_mode(ctx) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_MODE,0,NULL) -# define SSL_clear_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_MODE,(op),NULL) -# define SSL_set_mode(ssl,op) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,(op),NULL) -# define SSL_get_mode(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_MODE,0,NULL) -# define SSL_set_mtu(ssl, mtu) \ - SSL_ctrl((ssl),SSL_CTRL_SET_MTU,(mtu),NULL) -# define DTLS_set_link_mtu(ssl, mtu) \ - SSL_ctrl((ssl),DTLS_CTRL_SET_LINK_MTU,(mtu),NULL) -# define DTLS_get_link_min_mtu(ssl) \ - SSL_ctrl((ssl),DTLS_CTRL_GET_LINK_MIN_MTU,0,NULL) - -# define SSL_get_secure_renegotiation_support(ssl) \ - SSL_ctrl((ssl), SSL_CTRL_GET_RI_SUPPORT, 0, NULL) - -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_heartbeat(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT,0,NULL) -# endif - -# define SSL_CTX_set_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_set_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CERT_FLAGS,(op),NULL) -# define SSL_CTX_clear_cert_flags(ctx,op) \ - SSL_CTX_ctrl((ctx),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) -# define SSL_clear_cert_flags(s,op) \ - SSL_ctrl((s),SSL_CTRL_CLEAR_CERT_FLAGS,(op),NULL) - -void SSL_CTX_set_msg_callback(SSL_CTX *ctx, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -void SSL_set_msg_callback(SSL *ssl, - void (*cb) (int write_p, int version, - int content_type, const void *buf, - size_t len, SSL *ssl, void *arg)); -# define SSL_CTX_set_msg_callback_arg(ctx, arg) SSL_CTX_ctrl((ctx), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) -# define SSL_set_msg_callback_arg(ssl, arg) SSL_ctrl((ssl), SSL_CTRL_SET_MSG_CALLBACK_ARG, 0, (arg)) - -# define SSL_get_extms_support(s) \ - SSL_ctrl((s),SSL_CTRL_GET_EXTMS_SUPPORT,0,NULL) - -# ifndef OPENSSL_NO_SRP - -/* see tls_srp.c */ -__owur int SSL_SRP_CTX_init(SSL *s); -__owur int SSL_CTX_SRP_CTX_init(SSL_CTX *ctx); -int SSL_SRP_CTX_free(SSL *ctx); -int SSL_CTX_SRP_CTX_free(SSL_CTX *ctx); -__owur int SSL_srp_server_param_with_username(SSL *s, int *ad); -__owur int SRP_Calc_A_param(SSL *s); - -# endif - -/* 100k max cert list */ -# define SSL_MAX_CERT_LIST_DEFAULT 1024*100 - -# define SSL_SESSION_CACHE_MAX_SIZE_DEFAULT (1024*20) - -/* - * This callback type is used inside SSL_CTX, SSL, and in the functions that - * set them. It is used to override the generation of SSL/TLS session IDs in - * a server. Return value should be zero on an error, non-zero to proceed. - * Also, callbacks should themselves check if the id they generate is unique - * otherwise the SSL handshake will fail with an error - callbacks can do - * this using the 'ssl' value they're passed by; - * SSL_has_matching_session_id(ssl, id, *id_len) The length value passed in - * is set at the maximum size the session ID can be. In SSLv3/TLSv1 it is 32 - * 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) (SSL *ssl, unsigned char *id, - unsigned int *id_len); - -# define SSL_SESS_CACHE_OFF 0x0000 -# define SSL_SESS_CACHE_CLIENT 0x0001 -# define SSL_SESS_CACHE_SERVER 0x0002 -# define SSL_SESS_CACHE_BOTH (SSL_SESS_CACHE_CLIENT|SSL_SESS_CACHE_SERVER) -# define SSL_SESS_CACHE_NO_AUTO_CLEAR 0x0080 -/* enough comments already ... see SSL_CTX_set_session_cache_mode(3) */ -# define SSL_SESS_CACHE_NO_INTERNAL_LOOKUP 0x0100 -# define SSL_SESS_CACHE_NO_INTERNAL_STORE 0x0200 -# define SSL_SESS_CACHE_NO_INTERNAL \ - (SSL_SESS_CACHE_NO_INTERNAL_LOOKUP|SSL_SESS_CACHE_NO_INTERNAL_STORE) - -LHASH_OF(SSL_SESSION) *SSL_CTX_sessions(SSL_CTX *ctx); -# define SSL_CTX_sess_number(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_NUMBER,0,NULL) -# define SSL_CTX_sess_connect(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT,0,NULL) -# define SSL_CTX_sess_connect_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_GOOD,0,NULL) -# define SSL_CTX_sess_connect_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CONNECT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT,0,NULL) -# define SSL_CTX_sess_accept_renegotiate(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_RENEGOTIATE,0,NULL) -# define SSL_CTX_sess_accept_good(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_ACCEPT_GOOD,0,NULL) -# define SSL_CTX_sess_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_HIT,0,NULL) -# define SSL_CTX_sess_cb_hits(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CB_HIT,0,NULL) -# define SSL_CTX_sess_misses(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_MISSES,0,NULL) -# define SSL_CTX_sess_timeouts(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_TIMEOUTS,0,NULL) -# define SSL_CTX_sess_cache_full(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SESS_CACHE_FULL,0,NULL) - -void SSL_CTX_sess_set_new_cb(SSL_CTX *ctx, - int (*new_session_cb) (struct ssl_st *ssl, - SSL_SESSION *sess)); -int (*SSL_CTX_sess_get_new_cb(SSL_CTX *ctx)) (struct ssl_st *ssl, - SSL_SESSION *sess); -void SSL_CTX_sess_set_remove_cb(SSL_CTX *ctx, - void (*remove_session_cb) (struct ssl_ctx_st - *ctx, - 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, - SSL_SESSION *(*get_session_cb) (struct ssl_st - *ssl, - const unsigned char - *data, int len, - int *copy)); -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 (*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, - int (*client_cert_cb) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey)); -int (*SSL_CTX_get_client_cert_cb(SSL_CTX *ctx)) (SSL *ssl, X509 **x509, - EVP_PKEY **pkey); -# ifndef OPENSSL_NO_ENGINE -__owur int SSL_CTX_set_client_cert_engine(SSL_CTX *ctx, ENGINE *e); -# endif -void SSL_CTX_set_cookie_generate_cb(SSL_CTX *ctx, - int (*app_gen_cookie_cb) (SSL *ssl, - unsigned char - *cookie, - unsigned int - *cookie_len)); -void SSL_CTX_set_cookie_verify_cb(SSL_CTX *ctx, - int (*app_verify_cookie_cb) (SSL *ssl, - 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, - 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, - 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); - -# define OPENSSL_NPN_UNSUPPORTED 0 -# define OPENSSL_NPN_NEGOTIATED 1 -# define OPENSSL_NPN_NO_OVERLAP 2 - -__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); -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 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); - -# ifndef OPENSSL_NO_PSK -/* - * the maximum length of the buffer given to callbacks containing the - * resulting identity/psk - */ -# define PSK_MAX_IDENTITY_LEN 128 -# define PSK_MAX_PSK_LEN 256 -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_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, - SSL_custom_ext_parse_cb_ex parse_cb, - void *parse_arg); - -__owur int SSL_extension_supported(unsigned int ext_type); - -# define SSL_NOTHING 1 -# define SSL_WRITING 2 -# define SSL_READING 3 -# 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_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 - -# include -# include -# include /* This is mostly sslv3 with a few tweaks */ -# include /* Datagram TLS */ -# include /* Support for the use_srtp extension */ - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * These need to be after the above set of includes due to a compiler bug - * in VisualStudio 2015 - */ -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_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_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))) -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 - * type of message received). There are also two "special" states: - * TLS = TLS or DTLS state - * DTLS = DTLS specific state - * CR/SR = Client Read/Server Read - * CW/SW = Client Write/Server Write - * - * The "special" states are: - * TLS_ST_BEFORE = No handshake has been initiated yet - * TLS_ST_OK = A handshake has been successfully completed - */ -typedef enum { - TLS_ST_BEFORE, - TLS_ST_OK, - DTLS_ST_CR_HELLO_VERIFY_REQUEST, - TLS_ST_CR_SRVR_HELLO, - TLS_ST_CR_CERT, - TLS_ST_CR_CERT_STATUS, - TLS_ST_CR_KEY_EXCH, - TLS_ST_CR_CERT_REQ, - TLS_ST_CR_SRVR_DONE, - TLS_ST_CR_SESSION_TICKET, - TLS_ST_CR_CHANGE, - TLS_ST_CR_FINISHED, - TLS_ST_CW_CLNT_HELLO, - TLS_ST_CW_CERT, - TLS_ST_CW_KEY_EXCH, - TLS_ST_CW_CERT_VRFY, - TLS_ST_CW_CHANGE, - TLS_ST_CW_NEXT_PROTO, - TLS_ST_CW_FINISHED, - TLS_ST_SW_HELLO_REQ, - TLS_ST_SR_CLNT_HELLO, - DTLS_ST_SW_HELLO_VERIFY_REQUEST, - TLS_ST_SW_SRVR_HELLO, - TLS_ST_SW_CERT, - TLS_ST_SW_KEY_EXCH, - TLS_ST_SW_CERT_REQ, - TLS_ST_SW_SRVR_DONE, - TLS_ST_SR_CERT, - TLS_ST_SR_KEY_EXCH, - TLS_ST_SR_CERT_VRFY, - TLS_ST_SR_NEXT_PROTO, - TLS_ST_SR_CHANGE, - TLS_ST_SR_FINISHED, - TLS_ST_SW_SESSION_TICKET, - TLS_ST_SW_CERT_STATUS, - TLS_ST_SW_CHANGE, - 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; - -/* - * Most of the following state values are no longer used and are defined to be - * the closest equivalent value in the current state machine code. Not all - * defines have an equivalent and are set to a dummy value (-1). SSL_ST_CONNECT - * and SSL_ST_ACCEPT are still in use in the definition of SSL_CB_ACCEPT_LOOP, - * SSL_CB_ACCEPT_EXIT, SSL_CB_CONNECT_LOOP and SSL_CB_CONNECT_EXIT. - */ - -# define SSL_ST_CONNECT 0x1000 -# define SSL_ST_ACCEPT 0x2000 - -# define SSL_ST_MASK 0x0FFF - -# define SSL_CB_LOOP 0x01 -# define SSL_CB_EXIT 0x02 -# define SSL_CB_READ 0x04 -# define SSL_CB_WRITE 0x08 -# define SSL_CB_ALERT 0x4000/* used in callback */ -# define SSL_CB_READ_ALERT (SSL_CB_ALERT|SSL_CB_READ) -# define SSL_CB_WRITE_ALERT (SSL_CB_ALERT|SSL_CB_WRITE) -# define SSL_CB_ACCEPT_LOOP (SSL_ST_ACCEPT|SSL_CB_LOOP) -# define SSL_CB_ACCEPT_EXIT (SSL_ST_ACCEPT|SSL_CB_EXIT) -# define SSL_CB_CONNECT_LOOP (SSL_ST_CONNECT|SSL_CB_LOOP) -# define SSL_CB_CONNECT_EXIT (SSL_ST_CONNECT|SSL_CB_EXIT) -# define SSL_CB_HANDSHAKE_START 0x10 -# define SSL_CB_HANDSHAKE_DONE 0x20 - -/* 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(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 - * should not need these - */ -# define SSL_ST_READ_HEADER 0xF0 -# define SSL_ST_READ_BODY 0xF1 -# define SSL_ST_READ_DONE 0xF2 - -/*- - * Obtain latest Finished message - * -- that we sent (SSL_get_finished) - * -- that we expected from peer (SSL_get_peer_finished). - * Returns length (0 == no Finished so far), copies up to 'count' bytes. - */ -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 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() -# define SSLeay_add_ssl_algorithms() SSL_library_init() -# endif - -/* More backward compatibility */ -# define SSL_get_cipher(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_cipher_bits(s,np) \ - SSL_CIPHER_get_bits(SSL_get_current_cipher(s),np) -# define SSL_get_cipher_version(s) \ - SSL_CIPHER_get_version(SSL_get_current_cipher(s)) -# define SSL_get_cipher_name(s) \ - SSL_CIPHER_get_name(SSL_get_current_cipher(s)) -# define SSL_get_time(a) SSL_SESSION_get_time(a) -# define SSL_set_time(a,b) SSL_SESSION_set_time((a),(b)) -# define SSL_get_timeout(a) SSL_SESSION_get_timeout(a) -# define SSL_set_timeout(a,b) SSL_SESSION_set_timeout((a),(b)) - -# define d2i_SSL_SESSION_bio(bp,s_id) ASN1_d2i_bio_of(SSL_SESSION,SSL_SESSION_new,d2i_SSL_SESSION,bp,s_id) -# define i2d_SSL_SESSION_bio(bp,s_id) ASN1_i2d_bio_of(SSL_SESSION,i2d_SSL_SESSION,bp,s_id) - -DECLARE_PEM_rw(SSL_SESSION, SSL_SESSION) -# define SSL_AD_REASON_OFFSET 1000/* offset to get SSL_R_... value - * from SSL_AD_... */ -/* These alert types are for SSLv3 and TLSv1 */ -# define SSL_AD_CLOSE_NOTIFY SSL3_AD_CLOSE_NOTIFY -/* fatal */ -# define SSL_AD_UNEXPECTED_MESSAGE SSL3_AD_UNEXPECTED_MESSAGE -/* fatal */ -# define SSL_AD_BAD_RECORD_MAC SSL3_AD_BAD_RECORD_MAC -# define SSL_AD_DECRYPTION_FAILED TLS1_AD_DECRYPTION_FAILED -# define SSL_AD_RECORD_OVERFLOW TLS1_AD_RECORD_OVERFLOW -/* fatal */ -# define SSL_AD_DECOMPRESSION_FAILURE SSL3_AD_DECOMPRESSION_FAILURE -/* fatal */ -# define SSL_AD_HANDSHAKE_FAILURE SSL3_AD_HANDSHAKE_FAILURE -/* Not for TLS */ -# define SSL_AD_NO_CERTIFICATE SSL3_AD_NO_CERTIFICATE -# define SSL_AD_BAD_CERTIFICATE SSL3_AD_BAD_CERTIFICATE -# define SSL_AD_UNSUPPORTED_CERTIFICATE SSL3_AD_UNSUPPORTED_CERTIFICATE -# define SSL_AD_CERTIFICATE_REVOKED SSL3_AD_CERTIFICATE_REVOKED -# define SSL_AD_CERTIFICATE_EXPIRED SSL3_AD_CERTIFICATE_EXPIRED -# define SSL_AD_CERTIFICATE_UNKNOWN SSL3_AD_CERTIFICATE_UNKNOWN -/* fatal */ -# define SSL_AD_ILLEGAL_PARAMETER SSL3_AD_ILLEGAL_PARAMETER -/* fatal */ -# define SSL_AD_UNKNOWN_CA TLS1_AD_UNKNOWN_CA -/* fatal */ -# define SSL_AD_ACCESS_DENIED TLS1_AD_ACCESS_DENIED -/* fatal */ -# define SSL_AD_DECODE_ERROR TLS1_AD_DECODE_ERROR -# define SSL_AD_DECRYPT_ERROR TLS1_AD_DECRYPT_ERROR -/* fatal */ -# define SSL_AD_EXPORT_RESTRICTION TLS1_AD_EXPORT_RESTRICTION -/* fatal */ -# define SSL_AD_PROTOCOL_VERSION TLS1_AD_PROTOCOL_VERSION -/* fatal */ -# define SSL_AD_INSUFFICIENT_SECURITY TLS1_AD_INSUFFICIENT_SECURITY -/* fatal */ -# 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 -# define SSL_AD_BAD_CERTIFICATE_STATUS_RESPONSE TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE -# define SSL_AD_BAD_CERTIFICATE_HASH_VALUE TLS1_AD_BAD_CERTIFICATE_HASH_VALUE -/* fatal */ -# define SSL_AD_UNKNOWN_PSK_IDENTITY TLS1_AD_UNKNOWN_PSK_IDENTITY -/* fatal */ -# define SSL_AD_INAPPROPRIATE_FALLBACK TLS1_AD_INAPPROPRIATE_FALLBACK -# define SSL_AD_NO_APPLICATION_PROTOCOL TLS1_AD_NO_APPLICATION_PROTOCOL -# define SSL_ERROR_NONE 0 -# define SSL_ERROR_SSL 1 -# define SSL_ERROR_WANT_READ 2 -# define SSL_ERROR_WANT_WRITE 3 -# define SSL_ERROR_WANT_X509_LOOKUP 4 -# define SSL_ERROR_SYSCALL 5/* look at error stack/return - * value/errno */ -# define SSL_ERROR_ZERO_RETURN 6 -# define SSL_ERROR_WANT_CONNECT 7 -# 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 -# define SSL_CTRL_GET_CLIENT_CERT_REQUEST 9 -# define SSL_CTRL_GET_NUM_RENEGOTIATIONS 10 -# define SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS 11 -# define SSL_CTRL_GET_TOTAL_RENEGOTIATIONS 12 -# define SSL_CTRL_GET_FLAGS 13 -# define SSL_CTRL_EXTRA_CHAIN_CERT 14 -# define SSL_CTRL_SET_MSG_CALLBACK 15 -# define SSL_CTRL_SET_MSG_CALLBACK_ARG 16 -/* only applies to datagram connections */ -# define SSL_CTRL_SET_MTU 17 -/* Stats */ -# define SSL_CTRL_SESS_NUMBER 20 -# define SSL_CTRL_SESS_CONNECT 21 -# define SSL_CTRL_SESS_CONNECT_GOOD 22 -# define SSL_CTRL_SESS_CONNECT_RENEGOTIATE 23 -# define SSL_CTRL_SESS_ACCEPT 24 -# define SSL_CTRL_SESS_ACCEPT_GOOD 25 -# define SSL_CTRL_SESS_ACCEPT_RENEGOTIATE 26 -# define SSL_CTRL_SESS_HIT 27 -# define SSL_CTRL_SESS_CB_HIT 28 -# define SSL_CTRL_SESS_MISSES 29 -# define SSL_CTRL_SESS_TIMEOUTS 30 -# define SSL_CTRL_SESS_CACHE_FULL 31 -# define SSL_CTRL_MODE 33 -# define SSL_CTRL_GET_READ_AHEAD 40 -# define SSL_CTRL_SET_READ_AHEAD 41 -# define SSL_CTRL_SET_SESS_CACHE_SIZE 42 -# define SSL_CTRL_GET_SESS_CACHE_SIZE 43 -# define SSL_CTRL_SET_SESS_CACHE_MODE 44 -# define SSL_CTRL_GET_SESS_CACHE_MODE 45 -# define SSL_CTRL_GET_MAX_CERT_LIST 50 -# define SSL_CTRL_SET_MAX_CERT_LIST 51 -# define SSL_CTRL_SET_MAX_SEND_FRAGMENT 52 -/* see tls1.h for macros based on these */ -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_CB 53 -# define SSL_CTRL_SET_TLSEXT_SERVERNAME_ARG 54 -# define SSL_CTRL_SET_TLSEXT_HOSTNAME 55 -# define SSL_CTRL_SET_TLSEXT_DEBUG_CB 56 -# define SSL_CTRL_SET_TLSEXT_DEBUG_ARG 57 -# define SSL_CTRL_GET_TLSEXT_TICKET_KEYS 58 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEYS 59 -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT 60 */ -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB 61 */ -/*# define SSL_CTRL_SET_TLSEXT_OPAQUE_PRF_INPUT_CB_ARG 62 */ -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB 63 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG 64 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_TYPE 65 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_EXTS 66 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS 67 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS 68 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS 69 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP 70 -# define SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP 71 -# define SSL_CTRL_SET_TLSEXT_TICKET_KEY_CB 72 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME_CB 75 -# define SSL_CTRL_SET_SRP_VERIFY_PARAM_CB 76 -# define SSL_CTRL_SET_SRP_GIVE_CLIENT_PWD_CB 77 -# define SSL_CTRL_SET_SRP_ARG 78 -# define SSL_CTRL_SET_TLS_EXT_SRP_USERNAME 79 -# define SSL_CTRL_SET_TLS_EXT_SRP_STRENGTH 80 -# define SSL_CTRL_SET_TLS_EXT_SRP_PASSWORD 81 -# ifndef OPENSSL_NO_HEARTBEATS -# define SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT 85 -# define SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING 86 -# define SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS 87 -# endif -# define DTLS_CTRL_GET_TIMEOUT 73 -# define DTLS_CTRL_HANDLE_TIMEOUT 74 -# define SSL_CTRL_GET_RI_SUPPORT 76 -# define SSL_CTRL_CLEAR_MODE 78 -# define SSL_CTRL_SET_NOT_RESUMABLE_SESS_CB 79 -# define SSL_CTRL_GET_EXTRA_CHAIN_CERTS 82 -# define SSL_CTRL_CLEAR_EXTRA_CHAIN_CERTS 83 -# define SSL_CTRL_CHAIN 88 -# define SSL_CTRL_CHAIN_CERT 89 -# 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 -# define SSL_CTRL_CLEAR_CERT_FLAGS 100 -# define SSL_CTRL_SET_CLIENT_SIGALGS 101 -# define SSL_CTRL_SET_CLIENT_SIGALGS_LIST 102 -# define SSL_CTRL_GET_CLIENT_CERT_TYPES 103 -# define SSL_CTRL_SET_CLIENT_CERT_TYPES 104 -# define SSL_CTRL_BUILD_CERT_CHAIN 105 -# 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_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 -# define SSL_CTRL_SELECT_CURRENT_CERT 116 -# define SSL_CTRL_SET_CURRENT_CERT 117 -# define SSL_CTRL_SET_DH_AUTO 118 -# define DTLS_CTRL_SET_LINK_MTU 120 -# define DTLS_CTRL_GET_LINK_MIN_MTU 121 -# define SSL_CTRL_GET_EXTMS_SUPPORT 122 -# define SSL_CTRL_SET_MIN_PROTO_VERSION 123 -# define SSL_CTRL_SET_MAX_PROTO_VERSION 124 -# define SSL_CTRL_SET_SPLIT_SEND_FRAGMENT 125 -# define SSL_CTRL_SET_MAX_PIPELINES 126 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_TYPE 127 -# define SSL_CTRL_GET_TLSEXT_STATUS_REQ_CB 128 -# 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_CTRL_GET_VERIFY_CERT_STORE 137 -# define SSL_CTRL_GET_CHAIN_CERT_STORE 138 -# 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)) -# define DTLSv1_handle_timeout(ssl) \ - SSL_ctrl(ssl,DTLS_CTRL_HANDLE_TIMEOUT,0, NULL) -# define SSL_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_GET_NUM_RENEGOTIATIONS,0,NULL) -# define SSL_clear_num_renegotiations(ssl) \ - SSL_ctrl((ssl),SSL_CTRL_CLEAR_NUM_RENEGOTIATIONS,0,NULL) -# 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)) -# define SSL_CTX_set_tmp_ecdh(ctx,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)) -# define SSL_set_tmp_ecdh(ssl,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)) -# 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) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_EXTRA_CHAIN_CERTS,1,px509) -# 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)) -# define SSL_CTX_set1_chain(ctx,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)) -# define SSL_CTX_add1_chain_cert(ctx,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) \ - SSL_CTX_set0_chain(ctx,NULL) -# 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)) -# 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)) -# define SSL_CTX_set1_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) -# define SSL_CTX_get0_verify_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_CTX_set0_chain_cert_store(ctx,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)) -# define SSL_CTX_get0_chain_cert_store(ctx,st) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_set0_chain(s,sk) \ - SSL_ctrl(s,SSL_CTRL_CHAIN,0,(char *)(sk)) -# define SSL_set1_chain(s,sk) \ - SSL_ctrl(s,SSL_CTRL_CHAIN,1,(char *)(sk)) -# define SSL_add0_chain_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,0,(char *)(x509)) -# define SSL_add1_chain_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_CHAIN_CERT,1,(char *)(x509)) -# define SSL_get0_chain_certs(s,px509) \ - SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_clear_chain_certs(s) \ - SSL_set0_chain(s,NULL) -# define SSL_build_cert_chain(s, flags) \ - SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_select_current_cert(s,x509) \ - SSL_ctrl(s,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)(x509)) -# define SSL_set_current_cert(s,op) \ - SSL_ctrl(s,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)) -# define SSL_set1_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)(st)) -#define SSL_get0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_GET_VERIFY_CERT_STORE,0,(char *)(st)) -# define SSL_set0_chain_cert_store(s,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_get0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_GET_CHAIN_CERT_STORE,0,(char *)(st)) -# define SSL_get1_groups(s, glist) \ - SSL_ctrl(s,SSL_CTRL_GET_GROUPS,0,(int*)(glist)) -# define SSL_CTX_set1_groups(ctx, glist, glistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_GROUPS,glistlen,(int *)(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(s, glist, glistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_GROUPS,glistlen,(char *)(glist)) -# define SSL_set1_groups_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_GROUPS_LIST,0,(char *)(str)) -# 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)) -# define SSL_CTX_set1_sigalgs_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(s)) -# define SSL_set1_sigalgs(s, slist, slistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_SIGALGS,slistlen,(int *)(slist)) -# define SSL_set1_sigalgs_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)(str)) -# define SSL_CTX_set1_client_sigalgs(ctx, slist, slistlen) \ - 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)) -# define SSL_set1_client_sigalgs(s, slist, slistlen) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS,slistlen,(int *)(slist)) -# define SSL_set1_client_sigalgs_list(s, str) \ - SSL_ctrl(s,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)(str)) -# define SSL_get0_certificate_types(s, 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)) -# define SSL_set1_client_certificate_types(s, clist, clistlen) \ - 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_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) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -# 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) \ - SSL_CTX_ctrl(ctx, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -# 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) \ - SSL_ctrl(s, SSL_CTRL_SET_MIN_PROTO_VERSION, version, NULL) -# 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) \ - SSL_ctrl(s, SSL_CTRL_GET_MIN_PROTO_VERSION, 0, NULL) -# define SSL_get_max_proto_version(s) \ - SSL_ctrl(s, SSL_CTRL_GET_MAX_PROTO_VERSION, 0, NULL) - -/* 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) -/* - * 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 -__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); -__owur BIO *BIO_new_buffer_ssl_connect(SSL_CTX *ctx); -__owur int BIO_ssl_copy_session_id(BIO *to, BIO *from); -void BIO_ssl_shutdown(BIO *ssl_bio); - -__owur int SSL_CTX_set_cipher_list(SSL_CTX *, const char *str); -__owur SSL_CTX *SSL_CTX_new(const SSL_METHOD *meth); -int SSL_CTX_up_ref(SSL_CTX *ctx); -void SSL_CTX_free(SSL_CTX *); -__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); -__owur int SSL_get_rfd(const SSL *s); -__owur int SSL_get_wfd(const SSL *s); -__owur const char *SSL_get_cipher_list(const SSL *s, int n); -__owur char *SSL_get_shared_ciphers(const SSL *s, char *buf, int size); -__owur int SSL_get_read_ahead(const SSL *s); -__owur int SSL_pending(const SSL *s); -__owur int SSL_has_pending(const SSL *s); -# ifndef OPENSSL_NO_SOCK -__owur int SSL_set_fd(SSL *s, int fd); -__owur int SSL_set_rfd(SSL *s, int fd); -__owur int SSL_set_wfd(SSL *s, int fd); -# endif -void SSL_set0_rbio(SSL *s, BIO *rbio); -void SSL_set0_wbio(SSL *s, BIO *wbio); -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); -__owur SSL_verify_cb SSL_get_verify_callback(const SSL *s); -void SSL_set_verify(SSL *s, int mode, SSL_verify_cb callback); -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); -# 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); -__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); -__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 -__owur int SSL_use_RSAPrivateKey_file(SSL *ssl, const char *file, int type); -#endif - -__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); -#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); -/* 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); -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() \ - OPENSSL_init_ssl(OPENSSL_INIT_LOAD_SSL_STRINGS \ - | OPENSSL_INIT_LOAD_CRYPTO_STRINGS, NULL) -# endif - -__owur const char *SSL_state_string(const SSL *s); -__owur const char *SSL_rstate_string(const SSL *s); -__owur const char *SSL_state_string_long(const SSL *s); -__owur const char *SSL_rstate_string_long(const SSL *s); -__owur long SSL_SESSION_get_time(const SSL_SESSION *s); -__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); -__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(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); -__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); -# endif -int SSL_SESSION_print(BIO *fp, const SSL_SESSION *ses); -int SSL_SESSION_print_keylog(BIO *bp, const SSL_SESSION *x); -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 *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); - -# ifdef HEADER_X509_H -__owur X509 *SSL_get_peer_certificate(const SSL *s); -# endif - -__owur STACK_OF(X509) *SSL_get_peer_cert_chain(const SSL *s); - -__owur int SSL_CTX_get_verify_mode(const SSL_CTX *ctx); -__owur int SSL_CTX_get_verify_depth(const SSL_CTX *ctx); -__owur SSL_verify_cb SSL_CTX_get_verify_callback(const SSL_CTX *ctx); -void SSL_CTX_set_verify(SSL_CTX *ctx, int mode, SSL_verify_cb callback); -void SSL_CTX_set_verify_depth(SSL_CTX *ctx, int depth); -void SSL_CTX_set_cert_verify_callback(SSL_CTX *ctx, - int (*cb) (X509_STORE_CTX *, void *), - void *arg); -void SSL_CTX_set_cert_cb(SSL_CTX *c, int (*cb) (SSL *ssl, void *arg), - 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); -# 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); -__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); -__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); -pem_password_cb *SSL_CTX_get_default_passwd_cb(SSL_CTX *ctx); -void *SSL_CTX_get_default_passwd_cb_userdata(SSL_CTX *ctx); -void SSL_set_default_passwd_cb(SSL *s, pem_password_cb *cb); -void SSL_set_default_passwd_cb_userdata(SSL *s, void *u); -pem_password_cb *SSL_get_default_passwd_cb(SSL *s); -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); - -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); - -__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); -__owur const char *SSL_get0_peername(SSL *s); -void SSL_set_hostflags(SSL *s, unsigned int flags); - -__owur int SSL_CTX_dane_enable(SSL_CTX *ctx); -__owur int SSL_CTX_dane_mtype_set(SSL_CTX *ctx, const EVP_MD *md, - uint8_t mtype, uint8_t ord); -__owur int SSL_dane_enable(SSL *s, const char *basedomain); -__owur int SSL_dane_tlsa_add(SSL *s, uint8_t usage, uint8_t selector, - uint8_t mtype, unsigned const char *data, size_t dlen); -__owur int SSL_get0_dane_authority(SSL *s, X509 **mcert, EVP_PKEY **mspki); -__owur int SSL_get0_dane_tlsa(SSL *s, uint8_t *usage, uint8_t *selector, - uint8_t *mtype, unsigned const char **data, - size_t *dlen); -/* - * Bridge opacity barrier between libcrypt and libssl, also needed to support - * offline testing in test/danetest.c - */ -SSL_DANE *SSL_get0_dane(SSL *ssl); -/* - * DANE flags - */ -unsigned long SSL_CTX_dane_set_flags(SSL_CTX *ctx, unsigned long flags); -unsigned long SSL_CTX_dane_clear_flags(SSL_CTX *ctx, unsigned long flags); -unsigned long SSL_dane_set_flags(SSL *ssl, unsigned long flags); -unsigned long SSL_dane_clear_flags(SSL *ssl, unsigned long flags); - -__owur int SSL_CTX_set1_param(SSL_CTX *ctx, X509_VERIFY_PARAM *vpm); -__owur int SSL_set1_param(SSL *ssl, X509_VERIFY_PARAM *vpm); - -__owur X509_VERIFY_PARAM *SSL_CTX_get0_param(SSL_CTX *ctx); -__owur X509_VERIFY_PARAM *SSL_get0_param(SSL *ssl); - -# ifndef OPENSSL_NO_SRP -int SSL_CTX_set_srp_username(SSL_CTX *ctx, char *name); -int SSL_CTX_set_srp_password(SSL_CTX *ctx, char *password); -int SSL_CTX_set_srp_strength(SSL_CTX *ctx, int strength); -int SSL_CTX_set_srp_client_pwd_callback(SSL_CTX *ctx, - char *(*cb) (SSL *, void *)); -int SSL_CTX_set_srp_verify_param_callback(SSL_CTX *ctx, - int (*cb) (SSL *, void *)); -int SSL_CTX_set_srp_username_callback(SSL_CTX *ctx, - int (*cb) (SSL *, int *, void *)); -int SSL_CTX_set_srp_cb_arg(SSL_CTX *ctx, void *arg); - -int SSL_set_srp_server_param(SSL *s, const BIGNUM *N, const BIGNUM *g, - BIGNUM *sa, BIGNUM *v, char *info); -int SSL_set_srp_server_param_pw(SSL *s, const char *user, const char *pass, - const char *grp); - -__owur BIGNUM *SSL_get_srp_g(SSL *s); -__owur BIGNUM *SSL_get_srp_N(SSL *s); - -__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 -/* - * Windows application developer has to include windows.h to use these. - */ -__owur int SSL_waiting_for_async(SSL *s); -__owur int SSL_get_all_async_fds(SSL *s, OSSL_ASYNC_FD *fds, size_t *numfds); -__owur int SSL_get_changed_async_fds(SSL *s, OSSL_ASYNC_FD *addfd, - size_t *numaddfds, OSSL_ASYNC_FD *delfd, - 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); - -/* This sets the 'default' SSL version that SSL_new() will create */ -__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)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) -# endif - -#define SSLv23_method TLS_method -#define SSLv23_server_method TLS_server_method -#define SSLv23_client_method TLS_client_method - -/* Negotiate highest available SSL/TLS version */ -__owur const SSL_METHOD *TLS_method(void); -__owur const SSL_METHOD *TLS_server_method(void); -__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)) -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)) -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)) -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)) -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) -# endif - -# ifndef OPENSSL_NO_DTLS1_2_METHOD -/* 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); -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(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); -__owur STACK_OF(X509_NAME) *SSL_CTX_get_client_CA_list(const SSL_CTX *s); -__owur int SSL_add_client_CA(SSL *ssl, X509 *x); -__owur int SSL_CTX_add_client_CA(SSL_CTX *ctx, X509 *x); - -void SSL_set_connect_state(SSL *s); -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 - -__owur char *SSL_CIPHER_description(const SSL_CIPHER *, char *buf, int size); -__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); - -__owur X509 *SSL_CTX_get0_certificate(const SSL_CTX *ctx); -__owur EVP_PKEY *SSL_CTX_get0_privatekey(const SSL_CTX *ctx); - -void SSL_CTX_set_quiet_shutdown(SSL_CTX *ctx, int mode); -__owur int SSL_CTX_get_quiet_shutdown(const SSL_CTX *ctx); -void SSL_set_quiet_shutdown(SSL *ssl, int mode); -__owur int SSL_get_quiet_shutdown(const SSL *ssl); -void SSL_set_shutdown(SSL *ssl, int mode); -__owur int SSL_get_shutdown(const SSL *ssl); -__owur int SSL_version(const SSL *ssl); -__owur int SSL_client_version(const SSL *s); -__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); -# 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 */ -__owur SSL_CTX *SSL_get_SSL_CTX(const SSL *ssl); -SSL_CTX *SSL_set_SSL_CTX(SSL *ssl, SSL_CTX *ctx); -void SSL_set_info_callback(SSL *ssl, - void (*cb) (const SSL *ssl, int type, int val)); -void (*SSL_get_info_callback(const SSL *ssl)) (const SSL *ssl, int type, - int val); -__owur OSSL_HANDSHAKE_STATE SSL_get_state(const SSL *ssl); - -void SSL_set_verify_result(SSL *ssl, long v); -__owur long SSL_get_verify_result(const SSL *ssl); -__owur STACK_OF(X509) *SSL_get0_verified_chain(const SSL *s); - -__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 *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) -__owur int SSL_set_ex_data(SSL *ssl, int idx, void *data); -void *SSL_get_ex_data(const SSL *ssl, int idx); -#define SSL_SESSION_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_SESSION, l, p, newf, dupf, freef) -__owur int SSL_SESSION_set_ex_data(SSL_SESSION *ss, int idx, void *data); -void *SSL_SESSION_get_ex_data(const SSL_SESSION *ss, int idx); -#define SSL_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_SSL_CTX, l, p, newf, dupf, freef) -__owur int SSL_CTX_set_ex_data(SSL_CTX *ssl, int idx, void *data); -void *SSL_CTX_get_ex_data(const SSL_CTX *ssl, int idx); - -__owur int SSL_get_ex_data_X509_STORE_CTX_idx(void); - -# define SSL_CTX_sess_set_cache_size(ctx,t) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_SIZE,t,NULL) -# define SSL_CTX_sess_get_cache_size(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_SIZE,0,NULL) -# define SSL_CTX_set_session_cache_mode(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SESS_CACHE_MODE,m,NULL) -# define SSL_CTX_get_session_cache_mode(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_SESS_CACHE_MODE,0,NULL) - -# define SSL_CTX_get_default_read_ahead(ctx) SSL_CTX_get_read_ahead(ctx) -# define SSL_CTX_set_default_read_ahead(ctx,m) SSL_CTX_set_read_ahead(ctx,m) -# define SSL_CTX_get_read_ahead(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_READ_AHEAD,0,NULL) -# define SSL_CTX_set_read_ahead(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_READ_AHEAD,m,NULL) -# define SSL_CTX_get_max_cert_list(ctx) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_CTX_set_max_cert_list(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) -# define SSL_get_max_cert_list(ssl) \ - SSL_ctrl(ssl,SSL_CTRL_GET_MAX_CERT_LIST,0,NULL) -# define SSL_set_max_cert_list(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_CERT_LIST,m,NULL) - -# define SSL_CTX_set_max_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_set_max_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_SEND_FRAGMENT,m,NULL) -# define SSL_CTX_set_split_send_fragment(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) -# define SSL_set_split_send_fragment(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_SPLIT_SEND_FRAGMENT,m,NULL) -# define SSL_CTX_set_max_pipelines(ctx,m) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) -# define SSL_set_max_pipelines(ssl,m) \ - SSL_ctrl(ssl,SSL_CTRL_SET_MAX_PIPELINES,m,NULL) - -void SSL_CTX_set_default_read_buffer_len(SSL_CTX *ctx, size_t len); -void SSL_set_default_read_buffer_len(SSL *s, size_t len); - -# ifndef OPENSSL_NO_DH -/* NB: the |keylength| is only applicable when is_export is true */ -void SSL_CTX_set_tmp_dh_callback(SSL_CTX *ctx, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -void SSL_set_tmp_dh_callback(SSL *ssl, - DH *(*dh) (SSL *ssl, int is_export, - int keylength)); -# endif - -__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 -__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); - -/* Pre-shared secret session resumption functions */ -__owur int SSL_set_session_secret_cb(SSL *s, - 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, - int - is_forward_secure)); - -void SSL_set_not_resumable_session_callback(SSL *ssl, - int (*cb) (SSL *ssl, - 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(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 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); -void SSL_CONF_CTX_set_ssl_ctx(SSL_CONF_CTX *cctx, SSL_CTX *ctx); - -__owur int SSL_CONF_cmd(SSL_CONF_CTX *cctx, const char *cmd, const char *value); -__owur int SSL_CONF_cmd_argv(SSL_CONF_CTX *cctx, int *pargc, char ***pargv); -__owur int SSL_CONF_cmd_value_type(SSL_CONF_CTX *cctx, const char *cmd); - -void SSL_add_ssl_module(void); -int SSL_config(SSL *s, const char *name); -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); -# endif - -# ifndef OPENSSL_NO_SOCK -int DTLSv1_listen(SSL *s, BIO_ADDR *client); -# endif - -# ifndef OPENSSL_NO_CT - -/* - * A callback for verifying that the received SCTs are sufficient. - * Expected to return 1 if they are sufficient, otherwise 0. - * 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); - -/* - * Sets a |callback| that is invoked upon receipt of ServerHelloDone to validate - * the received SCTs. - * If the callback returns a non-positive result, the connection is terminated. - * Call this function before beginning a handshake. - * If a NULL |callback| is provided, SCT validation is disabled. - * |arg| is arbitrary userdata that will be passed to the callback whenever it - * is invoked. Ownership of |arg| remains with the caller. - * - * NOTE: A side-effect of setting a CT callback is that an OCSP stapled response - * will be requested. - */ -int SSL_set_ct_validation_callback(SSL *s, ssl_ct_validation_cb callback, - void *arg); -int SSL_CTX_set_ct_validation_callback(SSL_CTX *ctx, - ssl_ct_validation_cb callback, - void *arg); -#define SSL_disable_ct(s) \ - ((void) SSL_set_validation_callback((s), NULL, NULL)) -#define SSL_CTX_disable_ct(ctx) \ - ((void) SSL_CTX_set_validation_callback((ctx), NULL, NULL)) - -/* - * The validation type enumerates the available behaviours of the built-in SSL - * CT validation callback selected via SSL_enable_ct() and SSL_CTX_enable_ct(). - * The underlying callback is a static function in libssl. - */ -enum { - SSL_CT_VALIDATION_PERMISSIVE = 0, - SSL_CT_VALIDATION_STRICT -}; - -/* - * Enable CT by setting up a callback that implements one of the built-in - * validation variants. The SSL_CT_VALIDATION_PERMISSIVE variant always - * continues the handshake, the application can make appropriate decisions at - * handshake completion. The SSL_CT_VALIDATION_STRICT variant requires at - * least one valid SCT, or else handshake termination will be requested. The - * handshake may continue anyway if SSL_VERIFY_NONE is in effect. - */ -int SSL_enable_ct(SSL *s, int validation_mode); -int SSL_CTX_enable_ct(SSL_CTX *ctx, int validation_mode); - -/* - * Report whether a non-NULL callback is enabled. - */ -int SSL_ct_is_enabled(const SSL *s); -int SSL_CTX_ct_is_enabled(const SSL_CTX *ctx); - -/* Gets the SCTs received from a connection */ -const STACK_OF(SCT) *SSL_get0_peer_scts(SSL *s); - -/* - * Loads the CT log list from the default location. - * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, - * the log information loaded from this file will be appended to the - * CTLOG_STORE. - * Returns 1 on success, 0 otherwise. - */ -int SSL_CTX_set_default_ctlog_list_file(SSL_CTX *ctx); - -/* - * Loads the CT log list from the specified file path. - * If a CTLOG_STORE has previously been set using SSL_CTX_set_ctlog_store, - * the log information loaded from this file will be appended to the - * CTLOG_STORE. - * Returns 1 on success, 0 otherwise. - */ -int SSL_CTX_set_ctlog_list_file(SSL_CTX *ctx, const char *path); - -/* - * Sets the CT log list used by all SSL connections created from this SSL_CTX. - * Ownership of the CTLOG_STORE is transferred to the SSL_CTX. - */ -void SSL_CTX_set0_ctlog_store(SSL_CTX *ctx, CTLOG_STORE *logs); - -/* - * Gets the CT log list used by all SSL connections created from this SSL_CTX. - * This will be NULL unless one of the following functions has been called: - * - SSL_CTX_set_default_ctlog_list_file - * - SSL_CTX_set_ctlog_list_file - * - SSL_CTX_set_ctlog_store - */ -const CTLOG_STORE *SSL_CTX_get0_ctlog_store(const SSL_CTX *ctx); - -# endif /* OPENSSL_NO_CT */ - -/* What the "other" parameter contains in security callback */ -/* Mask for type */ -# define SSL_SECOP_OTHER_TYPE 0xffff0000 -# define SSL_SECOP_OTHER_NONE 0 -# define SSL_SECOP_OTHER_CIPHER (1 << 16) -# define SSL_SECOP_OTHER_CURVE (2 << 16) -# define SSL_SECOP_OTHER_DH (3 << 16) -# define SSL_SECOP_OTHER_PKEY (4 << 16) -# define SSL_SECOP_OTHER_SIGALG (5 << 16) -# define SSL_SECOP_OTHER_CERT (6 << 16) - -/* Indicated operation refers to peer key or certificate */ -# define SSL_SECOP_PEER 0x1000 - -/* Values for "op" parameter in security callback */ - -/* Called to filter ciphers */ -/* Ciphers client supports */ -# define SSL_SECOP_CIPHER_SUPPORTED (1 | SSL_SECOP_OTHER_CIPHER) -/* Cipher shared by client/server */ -# define SSL_SECOP_CIPHER_SHARED (2 | SSL_SECOP_OTHER_CIPHER) -/* Sanity check of cipher server selects */ -# define SSL_SECOP_CIPHER_CHECK (3 | SSL_SECOP_OTHER_CIPHER) -/* Curves supported by client */ -# define SSL_SECOP_CURVE_SUPPORTED (4 | SSL_SECOP_OTHER_CURVE) -/* Curves shared by client/server */ -# define SSL_SECOP_CURVE_SHARED (5 | SSL_SECOP_OTHER_CURVE) -/* Sanity check of curve server selects */ -# define SSL_SECOP_CURVE_CHECK (6 | SSL_SECOP_OTHER_CURVE) -/* Temporary DH key */ -# define SSL_SECOP_TMP_DH (7 | SSL_SECOP_OTHER_PKEY) -/* SSL/TLS version */ -# define SSL_SECOP_VERSION (9 | SSL_SECOP_OTHER_NONE) -/* Session tickets */ -# define SSL_SECOP_TICKET (10 | SSL_SECOP_OTHER_NONE) -/* Supported signature algorithms sent to peer */ -# define SSL_SECOP_SIGALG_SUPPORTED (11 | SSL_SECOP_OTHER_SIGALG) -/* Shared signature algorithm */ -# define SSL_SECOP_SIGALG_SHARED (12 | SSL_SECOP_OTHER_SIGALG) -/* Sanity check signature algorithm allowed */ -# define SSL_SECOP_SIGALG_CHECK (13 | SSL_SECOP_OTHER_SIGALG) -/* Used to get mask of supported public key signature algorithms */ -# define SSL_SECOP_SIGALG_MASK (14 | SSL_SECOP_OTHER_SIGALG) -/* Use to see if compression is allowed */ -# define SSL_SECOP_COMPRESSION (15 | SSL_SECOP_OTHER_NONE) -/* EE key in certificate */ -# define SSL_SECOP_EE_KEY (16 | SSL_SECOP_OTHER_CERT) -/* CA key in certificate */ -# define SSL_SECOP_CA_KEY (17 | SSL_SECOP_OTHER_CERT) -/* CA digest algorithm in certificate */ -# define SSL_SECOP_CA_MD (18 | SSL_SECOP_OTHER_CERT) -/* Peer EE key in certificate */ -# define SSL_SECOP_PEER_EE_KEY (SSL_SECOP_EE_KEY | SSL_SECOP_PEER) -/* Peer CA key in certificate */ -# define SSL_SECOP_PEER_CA_KEY (SSL_SECOP_CA_KEY | SSL_SECOP_PEER) -/* Peer CA digest algorithm in certificate */ -# define SSL_SECOP_PEER_CA_MD (SSL_SECOP_CA_MD | SSL_SECOP_PEER) - -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); -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 (*SSL_CTX_get_security_callback(const SSL_CTX *ctx)) (const SSL *s, - const SSL_CTX *ctx, - int op, int bits, - int nid, - void *other, - void *ex); -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_SSL_DEFAULT \ - (OPENSSL_INIT_LOAD_SSL_STRINGS | OPENSSL_INIT_LOAD_CRYPTO_STRINGS) - -int OPENSSL_init_ssl(uint64_t opts, const OPENSSL_INIT_SETTINGS *settings); - -# ifndef OPENSSL_NO_UNIT_TEST -__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[]; - -typedef unsigned int (*DTLS_timer_cb)(SSL *s, unsigned int timer_us); - -void DTLS_set_timer_cb(SSL *s, DTLS_timer_cb cb); - - -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 -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/ssl2.h b/openSSL/lin64/include/openssl/ssl2.h deleted file mode 100644 index 5321bd2..0000000 --- a/openSSL/lin64/include/openssl/ssl2.h +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Copyright 1995-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_SSL2_H -# define HEADER_SSL2_H - -#ifdef __cplusplus -extern "C" { -#endif - -# define SSL2_VERSION 0x0002 - -# define SSL2_MT_CLIENT_HELLO 1 - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin64/include/openssl/ssl3.h b/openSSL/lin64/include/openssl/ssl3.h deleted file mode 100644 index 07effba..0000000 --- a/openSSL/lin64/include/openssl/ssl3.h +++ /dev/null @@ -1,342 +0,0 @@ -/* - * Copyright 1995-2020 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SSL3_H -# define HEADER_SSL3_H - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* - * Signalling cipher suite value from RFC 5746 - * (TLS_EMPTY_RENEGOTIATION_INFO_SCSV) - */ -# define SSL3_CK_SCSV 0x030000FF - -/* - * Signalling cipher suite value from draft-ietf-tls-downgrade-scsv-00 - * (TLS_FALLBACK_SCSV) - */ -# define SSL3_CK_FALLBACK_SCSV 0x03005600 - -# define SSL3_CK_RSA_NULL_MD5 0x03000001 -# define SSL3_CK_RSA_NULL_SHA 0x03000002 -# define SSL3_CK_RSA_RC4_40_MD5 0x03000003 -# define SSL3_CK_RSA_RC4_128_MD5 0x03000004 -# define SSL3_CK_RSA_RC4_128_SHA 0x03000005 -# define SSL3_CK_RSA_RC2_40_MD5 0x03000006 -# define SSL3_CK_RSA_IDEA_128_SHA 0x03000007 -# define SSL3_CK_RSA_DES_40_CBC_SHA 0x03000008 -# define SSL3_CK_RSA_DES_64_CBC_SHA 0x03000009 -# define SSL3_CK_RSA_DES_192_CBC3_SHA 0x0300000A - -# define SSL3_CK_DH_DSS_DES_40_CBC_SHA 0x0300000B -# define SSL3_CK_DH_DSS_DES_64_CBC_SHA 0x0300000C -# define SSL3_CK_DH_DSS_DES_192_CBC3_SHA 0x0300000D -# define SSL3_CK_DH_RSA_DES_40_CBC_SHA 0x0300000E -# define SSL3_CK_DH_RSA_DES_64_CBC_SHA 0x0300000F -# define SSL3_CK_DH_RSA_DES_192_CBC3_SHA 0x03000010 - -# define SSL3_CK_DHE_DSS_DES_40_CBC_SHA 0x03000011 -# define SSL3_CK_EDH_DSS_DES_40_CBC_SHA SSL3_CK_DHE_DSS_DES_40_CBC_SHA -# define SSL3_CK_DHE_DSS_DES_64_CBC_SHA 0x03000012 -# define SSL3_CK_EDH_DSS_DES_64_CBC_SHA SSL3_CK_DHE_DSS_DES_64_CBC_SHA -# define SSL3_CK_DHE_DSS_DES_192_CBC3_SHA 0x03000013 -# define SSL3_CK_EDH_DSS_DES_192_CBC3_SHA SSL3_CK_DHE_DSS_DES_192_CBC3_SHA -# define SSL3_CK_DHE_RSA_DES_40_CBC_SHA 0x03000014 -# define SSL3_CK_EDH_RSA_DES_40_CBC_SHA SSL3_CK_DHE_RSA_DES_40_CBC_SHA -# define SSL3_CK_DHE_RSA_DES_64_CBC_SHA 0x03000015 -# define SSL3_CK_EDH_RSA_DES_64_CBC_SHA SSL3_CK_DHE_RSA_DES_64_CBC_SHA -# define SSL3_CK_DHE_RSA_DES_192_CBC3_SHA 0x03000016 -# define SSL3_CK_EDH_RSA_DES_192_CBC3_SHA SSL3_CK_DHE_RSA_DES_192_CBC3_SHA - -# define SSL3_CK_ADH_RC4_40_MD5 0x03000017 -# define SSL3_CK_ADH_RC4_128_MD5 0x03000018 -# define SSL3_CK_ADH_DES_40_CBC_SHA 0x03000019 -# 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" -# define SSL3_TXT_RSA_RC4_128_MD5 "RC4-MD5" -# define SSL3_TXT_RSA_RC4_128_SHA "RC4-SHA" -# define SSL3_TXT_RSA_RC2_40_MD5 "EXP-RC2-CBC-MD5" -# define SSL3_TXT_RSA_IDEA_128_SHA "IDEA-CBC-SHA" -# define SSL3_TXT_RSA_DES_40_CBC_SHA "EXP-DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_64_CBC_SHA "DES-CBC-SHA" -# define SSL3_TXT_RSA_DES_192_CBC3_SHA "DES-CBC3-SHA" - -# define SSL3_TXT_DH_DSS_DES_40_CBC_SHA "EXP-DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_64_CBC_SHA "DH-DSS-DES-CBC-SHA" -# define SSL3_TXT_DH_DSS_DES_192_CBC3_SHA "DH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DH_RSA_DES_40_CBC_SHA "EXP-DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_64_CBC_SHA "DH-RSA-DES-CBC-SHA" -# define SSL3_TXT_DH_RSA_DES_192_CBC3_SHA "DH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_DHE_DSS_DES_40_CBC_SHA "EXP-DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_64_CBC_SHA "DHE-DSS-DES-CBC-SHA" -# define SSL3_TXT_DHE_DSS_DES_192_CBC3_SHA "DHE-DSS-DES-CBC3-SHA" -# define SSL3_TXT_DHE_RSA_DES_40_CBC_SHA "EXP-DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_64_CBC_SHA "DHE-RSA-DES-CBC-SHA" -# define SSL3_TXT_DHE_RSA_DES_192_CBC3_SHA "DHE-RSA-DES-CBC3-SHA" - -/* - * This next block of six "EDH" labels is for backward compatibility with - * older versions of OpenSSL. New code should use the six "DHE" labels above - * instead: - */ -# define SSL3_TXT_EDH_DSS_DES_40_CBC_SHA "EXP-EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_64_CBC_SHA "EDH-DSS-DES-CBC-SHA" -# define SSL3_TXT_EDH_DSS_DES_192_CBC3_SHA "EDH-DSS-DES-CBC3-SHA" -# define SSL3_TXT_EDH_RSA_DES_40_CBC_SHA "EXP-EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_64_CBC_SHA "EDH-RSA-DES-CBC-SHA" -# define SSL3_TXT_EDH_RSA_DES_192_CBC3_SHA "EDH-RSA-DES-CBC3-SHA" - -# define SSL3_TXT_ADH_RC4_40_MD5 "EXP-ADH-RC4-MD5" -# define SSL3_TXT_ADH_RC4_128_MD5 "ADH-RC4-MD5" -# define SSL3_TXT_ADH_DES_40_CBC_SHA "EXP-ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_64_CBC_SHA "ADH-DES-CBC-SHA" -# define SSL3_TXT_ADH_DES_192_CBC_SHA "ADH-DES-CBC3-SHA" - -# define SSL3_SSL_SESSION_ID_LENGTH 32 -# define SSL3_MAX_SSL_SESSION_ID_LENGTH 32 - -# define SSL3_MASTER_SECRET_SIZE 48 -# define SSL3_RANDOM_SIZE 32 -# define SSL3_SESSION_ID_SIZE 32 -# define SSL3_RT_HEADER_LENGTH 5 - -# define SSL3_HM_HEADER_LENGTH 4 - -# ifndef SSL3_ALIGN_PAYLOAD - /* - * Some will argue that this increases memory footprint, but it's not - * actually true. Point is that malloc has to return at least 64-bit aligned - * pointers, meaning that allocating 5 bytes wastes 3 bytes in either case. - * Suggested pre-gaping simply moves these wasted bytes from the end of - * allocated region to its front, but makes data payload aligned, which - * improves performance:-) - */ -# define SSL3_ALIGN_PAYLOAD 8 -# else -# if (SSL3_ALIGN_PAYLOAD&(SSL3_ALIGN_PAYLOAD-1))!=0 -# error "insane SSL3_ALIGN_PAYLOAD" -# undef SSL3_ALIGN_PAYLOAD -# endif -# endif - -/* - * This is the maximum MAC (digest) size used by the SSL library. Currently - * maximum of 20 is used by SHA1, but we reserve for future extension for - * 512-bit hashes. - */ - -# define SSL3_RT_MAX_MD_SIZE 64 - -/* - * Maximum block size used in all ciphersuites. Currently 16 for AES. - */ - -# define SSL_RT_MAX_CIPHER_BLOCK_SIZE 16 - -# define SSL3_RT_MAX_EXTRA (16384) - -/* Maximum plaintext length: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_PLAIN_LENGTH 16384 -/* Maximum compression overhead: defined by SSL/TLS standards */ -# define SSL3_RT_MAX_COMPRESSED_OVERHEAD 1024 - -/* - * The standards give a maximum encryption overhead of 1024 bytes. In - * 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_TLS13_ENCRYPTED_OVERHEAD 256 - -/* - * OpenSSL currently only uses a padding length of at most one block so the - * send overhead is smaller. - */ - -# define SSL3_RT_SEND_MAX_ENCRYPTED_OVERHEAD \ - (SSL_RT_MAX_CIPHER_BLOCK_SIZE + SSL3_RT_MAX_MD_SIZE) - -/* If compression isn't used don't include the compression overhead */ - -# ifdef OPENSSL_NO_COMP -# 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) -# endif -# define SSL3_RT_MAX_ENCRYPTED_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) - -# define SSL3_MD_CLIENT_FINISHED_CONST "\x43\x4C\x4E\x54" -# define SSL3_MD_SERVER_FINISHED_CONST "\x53\x52\x56\x52" - -# define SSL3_VERSION 0x0300 -# define SSL3_VERSION_MAJOR 0x03 -# define SSL3_VERSION_MINOR 0x00 - -# define SSL3_RT_CHANGE_CIPHER_SPEC 20 -# define SSL3_RT_ALERT 21 -# define SSL3_RT_HANDSHAKE 22 -# define SSL3_RT_APPLICATION_DATA 23 -# define DTLS1_RT_HEARTBEAT 24 - -/* Pseudo content types to indicate additional parameters */ -# define TLS1_RT_CRYPTO 0x1000 -# define TLS1_RT_CRYPTO_PREMASTER (TLS1_RT_CRYPTO | 0x1) -# define TLS1_RT_CRYPTO_CLIENT_RANDOM (TLS1_RT_CRYPTO | 0x2) -# define TLS1_RT_CRYPTO_SERVER_RANDOM (TLS1_RT_CRYPTO | 0x3) -# define TLS1_RT_CRYPTO_MASTER (TLS1_RT_CRYPTO | 0x4) - -# define TLS1_RT_CRYPTO_READ 0x0000 -# define TLS1_RT_CRYPTO_WRITE 0x0100 -# define TLS1_RT_CRYPTO_MAC (TLS1_RT_CRYPTO | 0x5) -# define TLS1_RT_CRYPTO_KEY (TLS1_RT_CRYPTO | 0x6) -# define TLS1_RT_CRYPTO_IV (TLS1_RT_CRYPTO | 0x7) -# define TLS1_RT_CRYPTO_FIXED_IV (TLS1_RT_CRYPTO | 0x8) - -/* 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 - -# define SSL3_AD_CLOSE_NOTIFY 0 -# define SSL3_AD_UNEXPECTED_MESSAGE 10/* fatal */ -# define SSL3_AD_BAD_RECORD_MAC 20/* fatal */ -# define SSL3_AD_DECOMPRESSION_FAILURE 30/* fatal */ -# define SSL3_AD_HANDSHAKE_FAILURE 40/* fatal */ -# define SSL3_AD_NO_CERTIFICATE 41 -# define SSL3_AD_BAD_CERTIFICATE 42 -# define SSL3_AD_UNSUPPORTED_CERTIFICATE 43 -# define SSL3_AD_CERTIFICATE_REVOKED 44 -# define SSL3_AD_CERTIFICATE_EXPIRED 45 -# define SSL3_AD_CERTIFICATE_UNKNOWN 46 -# define SSL3_AD_ILLEGAL_PARAMETER 47/* fatal */ - -# define TLS1_HB_REQUEST 1 -# define TLS1_HB_RESPONSE 2 - - -# define SSL3_CT_RSA_SIGN 1 -# define SSL3_CT_DSS_SIGN 2 -# define SSL3_CT_RSA_FIXED_DH 3 -# define SSL3_CT_DSS_FIXED_DH 4 -# define SSL3_CT_RSA_EPHEMERAL_DH 5 -# define SSL3_CT_DSS_EPHEMERAL_DH 6 -# define SSL3_CT_FORTEZZA_DMS 20 -/* - * SSL3_CT_NUMBER is used to size arrays and it must be large enough to - * contain all of the cert types defined for *either* SSLv3 and TLSv1. - */ -# define SSL3_CT_NUMBER 10 - -# if defined(TLS_CT_NUMBER) -# if TLS_CT_NUMBER != SSL3_CT_NUMBER -# error "SSL/TLS CT_NUMBER values do not match" -# endif -# endif - -/* No longer used as of OpenSSL 1.1.1 */ -# define SSL3_FLAGS_NO_RENEGOTIATE_CIPHERS 0x0001 - -/* Removed from OpenSSL 1.1.0 */ -# define TLS1_FLAGS_TLS_PADDING_BUG 0x0 - -# define TLS1_FLAGS_SKIP_CERT_VERIFY 0x0010 - -/* Set if we encrypt then mac instead of usual mac then encrypt */ -# define TLS1_FLAGS_ENCRYPT_THEN_MAC_READ 0x0100 -# define TLS1_FLAGS_ENCRYPT_THEN_MAC TLS1_FLAGS_ENCRYPT_THEN_MAC_READ - -/* Set if extended master secret extension received from peer */ -# define TLS1_FLAGS_RECEIVED_EXTMS 0x0200 - -# define TLS1_FLAGS_ENCRYPT_THEN_MAC_WRITE 0x0400 - -# define TLS1_FLAGS_STATELESS 0x0800 - -/* Set if extended master secret extension required on renegotiation */ -# define TLS1_FLAGS_REQUIRED_EXTMS 0x1000 - -# 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 -# define SSL3_MT_SERVER_DONE 14 -# 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 -# endif -# 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 - -# define SSL3_MT_CCS 1 - -/* These are used when changing over to a new cipher */ -# 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) -# define SSL3_CHANGE_CIPHER_SERVER_WRITE (SSL3_CC_SERVER|SSL3_CC_WRITE) - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin64/include/openssl/sslerr.h b/openSSL/lin64/include/openssl/sslerr.h deleted file mode 100644 index 701d61c..0000000 --- a/openSSL/lin64/include/openssl/sslerr.h +++ /dev/null @@ -1,776 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_PSK 639 -# 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_PRE_WORK 640 -# 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_PSK_KEX_MODES_EXTENSION 310 -# 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_OCSP_CALLBACK_FAILURE 294 -# 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/openSSL/lin64/include/openssl/stack.h b/openSSL/lin64/include/openssl/stack.h deleted file mode 100644 index cfc0750..0000000 --- a/openSSL/lin64/include/openssl/stack.h +++ /dev/null @@ -1,83 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_STACK_H -# define HEADER_STACK_H - -#ifdef __cplusplus -extern "C" { -#endif - -typedef struct stack_st OPENSSL_STACK; /* Use STACK_OF(...) instead */ - -typedef int (*OPENSSL_sk_compfunc)(const void *, const void *); -typedef void (*OPENSSL_sk_freefunc)(void *); -typedef void *(*OPENSSL_sk_copyfunc)(const void *); - -int OPENSSL_sk_num(const OPENSSL_STACK *); -void *OPENSSL_sk_value(const OPENSSL_STACK *, int); - -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); -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); -int OPENSSL_sk_find(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_find_ex(OPENSSL_STACK *st, const void *data); -int OPENSSL_sk_push(OPENSSL_STACK *st, const void *data); -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_STACK *OPENSSL_sk_dup(const OPENSSL_STACK *st); -void OPENSSL_sk_sort(OPENSSL_STACK *st); -int OPENSSL_sk_is_sorted(const OPENSSL_STACK *st); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define _STACK OPENSSL_STACK -# define sk_num OPENSSL_sk_num -# define sk_value OPENSSL_sk_value -# define sk_set OPENSSL_sk_set -# define sk_new OPENSSL_sk_new -# define sk_new_null OPENSSL_sk_new_null -# define sk_free OPENSSL_sk_free -# define sk_pop_free OPENSSL_sk_pop_free -# define sk_deep_copy OPENSSL_sk_deep_copy -# define sk_insert OPENSSL_sk_insert -# define sk_delete OPENSSL_sk_delete -# define sk_delete_ptr OPENSSL_sk_delete_ptr -# define sk_find OPENSSL_sk_find -# define sk_find_ex OPENSSL_sk_find_ex -# define sk_push OPENSSL_sk_push -# define sk_unshift OPENSSL_sk_unshift -# define sk_shift OPENSSL_sk_shift -# define sk_pop OPENSSL_sk_pop -# define sk_zero OPENSSL_sk_zero -# define sk_set_cmp_func OPENSSL_sk_set_cmp_func -# define sk_dup OPENSSL_sk_dup -# define sk_sort OPENSSL_sk_sort -# define sk_is_sorted OPENSSL_sk_is_sorted -# endif - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin64/include/openssl/store.h b/openSSL/lin64/include/openssl/store.h deleted file mode 100644 index a40a733..0000000 --- a/openSSL/lin64/include/openssl/store.h +++ /dev/null @@ -1,266 +0,0 @@ -/* - * 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_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 occurred - * 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 transferred 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/openSSL/lin64/include/openssl/storeerr.h b/openSSL/lin64/include/openssl/storeerr.h deleted file mode 100644 index 190eab0..0000000 --- a/openSSL/lin64/include/openssl/storeerr.h +++ /dev/null @@ -1,91 +0,0 @@ -/* - * 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_OSSL_STOREERR_H -# define HEADER_OSSL_STOREERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/symhacks.h b/openSSL/lin64/include/openssl/symhacks.h deleted file mode 100644 index 156ea6e..0000000 --- a/openSSL/lin64/include/openssl/symhacks.h +++ /dev/null @@ -1,37 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_SYMHACKS_H -# define HEADER_SYMHACKS_H - -# include - -/* Case insensitive linking causes problems.... */ -# if defined(OPENSSL_SYS_VMS) -# undef ERR_load_CRYPTO_strings -# define ERR_load_CRYPTO_strings ERR_load_CRYPTOlib_strings -# undef OCSP_crlID_new -# define OCSP_crlID_new OCSP_crlID2_new - -# undef d2i_ECPARAMETERS -# define d2i_ECPARAMETERS d2i_UC_ECPARAMETERS -# undef i2d_ECPARAMETERS -# define i2d_ECPARAMETERS i2d_UC_ECPARAMETERS -# undef d2i_ECPKPARAMETERS -# define d2i_ECPKPARAMETERS d2i_UC_ECPKPARAMETERS -# undef i2d_ECPKPARAMETERS -# define i2d_ECPKPARAMETERS i2d_UC_ECPKPARAMETERS - -/* This one clashes with CMS_data_create */ -# undef cms_Data_create -# define cms_Data_create priv_cms_Data_create - -# endif - -#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/openSSL/lin64/include/openssl/tls1.h b/openSSL/lin64/include/openssl/tls1.h deleted file mode 100644 index 76d9fda..0000000 --- a/openSSL/lin64/include/openssl/tls1.h +++ /dev/null @@ -1,1237 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_TLS1_H -# define HEADER_TLS1_H - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Default security level if not overridden at config time */ -# ifndef OPENSSL_TLS_SECURITY_LEVEL -# define OPENSSL_TLS_SECURITY_LEVEL 1 -# endif - -# define TLS1_VERSION 0x0301 -# define TLS1_1_VERSION 0x0302 -# define TLS1_2_VERSION 0x0303 -# define TLS1_3_VERSION 0x0304 -# define TLS_MAX_VERSION TLS1_3_VERSION - -/* Special value for method supporting multiple versions */ -# define TLS_ANY_VERSION 0x10000 - -# define TLS1_VERSION_MAJOR 0x03 -# define TLS1_VERSION_MINOR 0x01 - -# define TLS1_1_VERSION_MAJOR 0x03 -# define TLS1_1_VERSION_MINOR 0x02 - -# define TLS1_2_VERSION_MAJOR 0x03 -# define TLS1_2_VERSION_MINOR 0x03 - -# define TLS1_get_version(s) \ - ((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) - -# define TLS1_AD_DECRYPTION_FAILED 21 -# define TLS1_AD_RECORD_OVERFLOW 22 -# define TLS1_AD_UNKNOWN_CA 48/* fatal */ -# define TLS1_AD_ACCESS_DENIED 49/* fatal */ -# define TLS1_AD_DECODE_ERROR 50/* fatal */ -# define TLS1_AD_DECRYPT_ERROR 51 -# define TLS1_AD_EXPORT_RESTRICTION 60/* fatal */ -# define TLS1_AD_PROTOCOL_VERSION 70/* fatal */ -# define TLS1_AD_INSUFFICIENT_SECURITY 71/* fatal */ -# define TLS1_AD_INTERNAL_ERROR 80/* fatal */ -# 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 -# define TLS1_AD_UNRECOGNIZED_NAME 112 -# define TLS1_AD_BAD_CERTIFICATE_STATUS_RESPONSE 113 -# define TLS1_AD_BAD_CERTIFICATE_HASH_VALUE 114 -# define TLS1_AD_UNKNOWN_PSK_IDENTITY 115/* fatal */ -# define TLS1_AD_NO_APPLICATION_PROTOCOL 120 /* fatal */ - -/* ExtensionType values from RFC3546 / RFC4366 / RFC6066 */ -# define TLSEXT_TYPE_server_name 0 -# define TLSEXT_TYPE_max_fragment_length 1 -# define TLSEXT_TYPE_client_certificate_url 2 -# define TLSEXT_TYPE_trusted_ca_keys 3 -# define TLSEXT_TYPE_truncated_hmac 4 -# define TLSEXT_TYPE_status_request 5 -/* ExtensionType values from RFC4681 */ -# define TLSEXT_TYPE_user_mapping 6 -/* ExtensionType values from RFC5878 */ -# define TLSEXT_TYPE_client_authz 7 -# define TLSEXT_TYPE_server_authz 8 -/* ExtensionType values from RFC6091 */ -# define TLSEXT_TYPE_cert_type 9 - -/* ExtensionType values from RFC4492 */ -/* - * 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 - -/* ExtensionType values from RFC5246 */ -# define TLSEXT_TYPE_signature_algorithms 13 - -/* ExtensionType value from RFC5764 */ -# define TLSEXT_TYPE_use_srtp 14 - -/* ExtensionType value from RFC5620 */ -# define TLSEXT_TYPE_heartbeat 15 - -/* ExtensionType value from RFC7301 */ -# define TLSEXT_TYPE_application_layer_protocol_negotiation 16 - -/* - * Extension type for Certificate Transparency - * https://tools.ietf.org/html/rfc6962#section-3.3.1 - */ -# define TLSEXT_TYPE_signed_certificate_timestamp 18 - -/* - * ExtensionType value for TLS padding extension. - * http://tools.ietf.org/html/draft-agl-tls-padding - */ -# define TLSEXT_TYPE_padding 21 - -/* ExtensionType value from RFC7366 */ -# define TLSEXT_TYPE_encrypt_then_mac 22 - -/* ExtensionType value from RFC7627 */ -# define TLSEXT_TYPE_extended_master_secret 23 - -/* 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 - -# ifndef OPENSSL_NO_NEXTPROTONEG -/* This is not an IANA defined extension number */ -# define TLSEXT_TYPE_next_proto_neg 13172 -# endif - -/* NameType value from RFC3546 */ -# define TLSEXT_NAMETYPE_host_name 0 -/* status request value from RFC3546 */ -# define TLSEXT_STATUSTYPE_ocsp 1 - -/* ECPointFormat values from RFC4492 */ -# define TLSEXT_ECPOINTFORMAT_first 0 -# define TLSEXT_ECPOINTFORMAT_uncompressed 0 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_prime 1 -# define TLSEXT_ECPOINTFORMAT_ansiX962_compressed_char2 2 -# define TLSEXT_ECPOINTFORMAT_last 2 - -/* Signature and hash algorithms from RFC5246 */ -# define TLSEXT_signature_anonymous 0 -# define TLSEXT_signature_rsa 1 -# define TLSEXT_signature_dsa 2 -# define TLSEXT_signature_ecdsa 3 -# define TLSEXT_signature_gostr34102001 237 -# define TLSEXT_signature_gostr34102012_256 238 -# define TLSEXT_signature_gostr34102012_512 239 - -/* Total number of different signature algorithms */ -# define TLSEXT_signature_num 7 - -# define TLSEXT_hash_none 0 -# define TLSEXT_hash_md5 1 -# define TLSEXT_hash_sha1 2 -# define TLSEXT_hash_sha224 3 -# define TLSEXT_hash_sha256 4 -# define TLSEXT_hash_sha384 5 -# define TLSEXT_hash_sha512 6 -# define TLSEXT_hash_gostr3411 237 -# define TLSEXT_hash_gostr34112012_256 238 -# define TLSEXT_hash_gostr34112012_512 239 - -/* Total number of different digest algorithms */ - -# define TLSEXT_hash_num 10 - -/* Flag set for unrecognised algorithms */ -# define TLSEXT_nid_unknown 0x1000000 - -/* ECC curves */ - -# 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); -__owur int SSL_get_servername_type(const SSL *s); -/* - * SSL_export_keying_material exports a value derived from the master secret, - * as specified in RFC 5705. It writes |olen| bytes to |out| given a label and - * optional context. (Since a zero length context is allowed, the |use_context| - * flag controls whether a context is included.) It returns 1 on success and - * 0 or -1 otherwise. - */ -__owur int SSL_export_keying_material(SSL *s, unsigned char *out, size_t olen, - const char *label, size_t llen, - 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); - -int SSL_get_shared_sigalgs(SSL *s, int idx, - int *psign, int *phash, int *psignandhash, - unsigned char *rsig, unsigned char *rhash); - -__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,\ - (void *)name) - -# define SSL_set_tlsext_debug_callback(ssl, 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,arg) - -# define SSL_get_tlsext_status_type(ssl) \ - 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) - -# define SSL_get_tlsext_status_exts(ssl, 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,arg) - -# define SSL_get_tlsext_status_ids(ssl, 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,arg) - -# define SSL_get_tlsext_status_ocsp_resp(ssl, 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,arg) - -# define SSL_CTX_set_tlsext_servername_callback(ctx, 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 -# define SSL_TLSEXT_ERR_ALERT_FATAL 2 -# 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,arg) - -# define SSL_CTX_get_tlsext_ticket_keys(ctx, keys, keylen) \ - 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) - -# define SSL_CTX_get_tlsext_status_cb(ssl, 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) - -# define SSL_CTX_get_tlsext_status_arg(ssl, 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,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_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) - -# 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) -# define SSL_set_dtlsext_heartbeat_no_requests(ssl, arg) \ - 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 \ - SSL_CTRL_DTLS_EXT_SEND_HEARTBEAT -# define SSL_CTRL_GET_TLS_EXT_HEARTBEAT_PENDING \ - SSL_CTRL_GET_DTLS_EXT_HEARTBEAT_PENDING -# define SSL_CTRL_SET_TLS_EXT_HEARTBEAT_NO_REQUESTS \ - SSL_CTRL_SET_DTLS_EXT_HEARTBEAT_NO_REQUESTS -# define SSL_TLSEXT_HB_ENABLED \ - SSL_DTLSEXT_HB_ENABLED -# define SSL_TLSEXT_HB_DONT_SEND_REQUESTS \ - SSL_DTLSEXT_HB_DONT_SEND_REQUESTS -# define SSL_TLSEXT_HB_DONT_RECV_REQUESTS \ - SSL_DTLSEXT_HB_DONT_RECV_REQUESTS -# 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) -# endif -# endif - -/* PSK ciphersuites from 4279 */ -# define TLS1_CK_PSK_WITH_RC4_128_SHA 0x0300008A -# 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 -# define TLS1_CK_RSA_PSK_WITH_AES_256_CBC_SHA 0x03000095 - -/* PSK ciphersuites from 5487 */ -# define TLS1_CK_PSK_WITH_AES_128_GCM_SHA256 0x030000A8 -# define TLS1_CK_PSK_WITH_AES_256_GCM_SHA384 0x030000A9 -# define TLS1_CK_DHE_PSK_WITH_AES_128_GCM_SHA256 0x030000AA -# 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 -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA384 0x030000B9 - -/* NULL PSK ciphersuites from RFC4785 */ -# define TLS1_CK_PSK_WITH_NULL_SHA 0x0300002C -# define TLS1_CK_DHE_PSK_WITH_NULL_SHA 0x0300002D -# define TLS1_CK_RSA_PSK_WITH_NULL_SHA 0x0300002E - -/* AES ciphersuites from RFC3268 */ -# define TLS1_CK_RSA_WITH_AES_128_SHA 0x0300002F -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA 0x03000030 -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA 0x03000031 -# 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 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA 0x03000038 -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA 0x03000039 -# define TLS1_CK_ADH_WITH_AES_256_SHA 0x0300003A - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_RSA_WITH_NULL_SHA256 0x0300003B -# define TLS1_CK_RSA_WITH_AES_128_SHA256 0x0300003C -# define TLS1_CK_RSA_WITH_AES_256_SHA256 0x0300003D -# define TLS1_CK_DH_DSS_WITH_AES_128_SHA256 0x0300003E -# define TLS1_CK_DH_RSA_WITH_AES_128_SHA256 0x0300003F -# define TLS1_CK_DHE_DSS_WITH_AES_128_SHA256 0x03000040 - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000041 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000042 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000043 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA 0x03000044 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA 0x03000045 -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA 0x03000046 - -/* TLS v1.2 ciphersuites */ -# define TLS1_CK_DHE_RSA_WITH_AES_128_SHA256 0x03000067 -# define TLS1_CK_DH_DSS_WITH_AES_256_SHA256 0x03000068 -# define TLS1_CK_DH_RSA_WITH_AES_256_SHA256 0x03000069 -# define TLS1_CK_DHE_DSS_WITH_AES_256_SHA256 0x0300006A -# define TLS1_CK_DHE_RSA_WITH_AES_256_SHA256 0x0300006B -# define TLS1_CK_ADH_WITH_AES_128_SHA256 0x0300006C -# define TLS1_CK_ADH_WITH_AES_256_SHA256 0x0300006D - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000084 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000085 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000086 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA 0x03000087 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA 0x03000088 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA 0x03000089 - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_CK_RSA_WITH_SEED_SHA 0x03000096 -# define TLS1_CK_DH_DSS_WITH_SEED_SHA 0x03000097 -# define TLS1_CK_DH_RSA_WITH_SEED_SHA 0x03000098 -# define TLS1_CK_DHE_DSS_WITH_SEED_SHA 0x03000099 -# define TLS1_CK_DHE_RSA_WITH_SEED_SHA 0x0300009A -# define TLS1_CK_ADH_WITH_SEED_SHA 0x0300009B - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_CK_RSA_WITH_AES_128_GCM_SHA256 0x0300009C -# define TLS1_CK_RSA_WITH_AES_256_GCM_SHA384 0x0300009D -# define TLS1_CK_DHE_RSA_WITH_AES_128_GCM_SHA256 0x0300009E -# define TLS1_CK_DHE_RSA_WITH_AES_256_GCM_SHA384 0x0300009F -# define TLS1_CK_DH_RSA_WITH_AES_128_GCM_SHA256 0x030000A0 -# define TLS1_CK_DH_RSA_WITH_AES_256_GCM_SHA384 0x030000A1 -# define TLS1_CK_DHE_DSS_WITH_AES_128_GCM_SHA256 0x030000A2 -# define TLS1_CK_DHE_DSS_WITH_AES_256_GCM_SHA384 0x030000A3 -# define TLS1_CK_DH_DSS_WITH_AES_128_GCM_SHA256 0x030000A4 -# define TLS1_CK_DH_DSS_WITH_AES_256_GCM_SHA384 0x030000A5 -# define TLS1_CK_ADH_WITH_AES_128_GCM_SHA256 0x030000A6 -# define TLS1_CK_ADH_WITH_AES_256_GCM_SHA384 0x030000A7 - -/* CCM ciphersuites from RFC6655 */ -# define TLS1_CK_RSA_WITH_AES_128_CCM 0x0300C09C -# define TLS1_CK_RSA_WITH_AES_256_CCM 0x0300C09D -# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM 0x0300C09E -# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM 0x0300C09F -# define TLS1_CK_RSA_WITH_AES_128_CCM_8 0x0300C0A0 -# define TLS1_CK_RSA_WITH_AES_256_CCM_8 0x0300C0A1 -# define TLS1_CK_DHE_RSA_WITH_AES_128_CCM_8 0x0300C0A2 -# define TLS1_CK_DHE_RSA_WITH_AES_256_CCM_8 0x0300C0A3 -# define TLS1_CK_PSK_WITH_AES_128_CCM 0x0300C0A4 -# define TLS1_CK_PSK_WITH_AES_256_CCM 0x0300C0A5 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM 0x0300C0A6 -# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM 0x0300C0A7 -# define TLS1_CK_PSK_WITH_AES_128_CCM_8 0x0300C0A8 -# define TLS1_CK_PSK_WITH_AES_256_CCM_8 0x0300C0A9 -# define TLS1_CK_DHE_PSK_WITH_AES_128_CCM_8 0x0300C0AA -# define TLS1_CK_DHE_PSK_WITH_AES_256_CCM_8 0x0300C0AB - -/* CCM ciphersuites from RFC7251 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM 0x0300C0AC -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM 0x0300C0AD -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CCM_8 0x0300C0AE -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CCM_8 0x0300C0AF - -/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ -# define TLS1_CK_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BA -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BB -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BC -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 0x030000BD -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x030000BE -# define TLS1_CK_ADH_WITH_CAMELLIA_128_CBC_SHA256 0x030000BF - -# define TLS1_CK_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C0 -# define TLS1_CK_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C1 -# define TLS1_CK_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C2 -# define TLS1_CK_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 0x030000C3 -# define TLS1_CK_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 0x030000C4 -# define TLS1_CK_ADH_WITH_CAMELLIA_256_CBC_SHA256 0x030000C5 - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_CK_ECDH_ECDSA_WITH_NULL_SHA 0x0300C001 -# define TLS1_CK_ECDH_ECDSA_WITH_RC4_128_SHA 0x0300C002 -# define TLS1_CK_ECDH_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C003 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_CBC_SHA 0x0300C004 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_CBC_SHA 0x0300C005 - -# define TLS1_CK_ECDHE_ECDSA_WITH_NULL_SHA 0x0300C006 -# define TLS1_CK_ECDHE_ECDSA_WITH_RC4_128_SHA 0x0300C007 -# define TLS1_CK_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA 0x0300C008 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_CBC_SHA 0x0300C009 -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_CBC_SHA 0x0300C00A - -# define TLS1_CK_ECDH_RSA_WITH_NULL_SHA 0x0300C00B -# define TLS1_CK_ECDH_RSA_WITH_RC4_128_SHA 0x0300C00C -# define TLS1_CK_ECDH_RSA_WITH_DES_192_CBC3_SHA 0x0300C00D -# define TLS1_CK_ECDH_RSA_WITH_AES_128_CBC_SHA 0x0300C00E -# define TLS1_CK_ECDH_RSA_WITH_AES_256_CBC_SHA 0x0300C00F - -# define TLS1_CK_ECDHE_RSA_WITH_NULL_SHA 0x0300C010 -# define TLS1_CK_ECDHE_RSA_WITH_RC4_128_SHA 0x0300C011 -# define TLS1_CK_ECDHE_RSA_WITH_DES_192_CBC3_SHA 0x0300C012 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_CBC_SHA 0x0300C013 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_CBC_SHA 0x0300C014 - -# define TLS1_CK_ECDH_anon_WITH_NULL_SHA 0x0300C015 -# define TLS1_CK_ECDH_anon_WITH_RC4_128_SHA 0x0300C016 -# define TLS1_CK_ECDH_anon_WITH_DES_192_CBC3_SHA 0x0300C017 -# define TLS1_CK_ECDH_anon_WITH_AES_128_CBC_SHA 0x0300C018 -# define TLS1_CK_ECDH_anon_WITH_AES_256_CBC_SHA 0x0300C019 - -/* SRP ciphersuites from RFC 5054 */ -# define TLS1_CK_SRP_SHA_WITH_3DES_EDE_CBC_SHA 0x0300C01A -# define TLS1_CK_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA 0x0300C01B -# define TLS1_CK_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA 0x0300C01C -# define TLS1_CK_SRP_SHA_WITH_AES_128_CBC_SHA 0x0300C01D -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_128_CBC_SHA 0x0300C01E -# define TLS1_CK_SRP_SHA_DSS_WITH_AES_128_CBC_SHA 0x0300C01F -# define TLS1_CK_SRP_SHA_WITH_AES_256_CBC_SHA 0x0300C020 -# define TLS1_CK_SRP_SHA_RSA_WITH_AES_256_CBC_SHA 0x0300C021 -# 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 -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_SHA384 0x0300C026 -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_SHA256 0x0300C027 -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_SHA384 0x0300C028 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_SHA256 0x0300C029 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_SHA384 0x0300C02A - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02B -# define TLS1_CK_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02C -# define TLS1_CK_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 0x0300C02D -# define TLS1_CK_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 0x0300C02E -# define TLS1_CK_ECDHE_RSA_WITH_AES_128_GCM_SHA256 0x0300C02F -# define TLS1_CK_ECDHE_RSA_WITH_AES_256_GCM_SHA384 0x0300C030 -# define TLS1_CK_ECDH_RSA_WITH_AES_128_GCM_SHA256 0x0300C031 -# define TLS1_CK_ECDH_RSA_WITH_AES_256_GCM_SHA384 0x0300C032 - -/* ECDHE PSK ciphersuites from RFC5489 */ -# define TLS1_CK_ECDHE_PSK_WITH_RC4_128_SHA 0x0300C033 -# define TLS1_CK_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA 0x0300C034 -# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA 0x0300C035 -# define TLS1_CK_ECDHE_PSK_WITH_AES_256_CBC_SHA 0x0300C036 - -# define TLS1_CK_ECDHE_PSK_WITH_AES_128_CBC_SHA256 0x0300C037 -# 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 - -/* Camellia-CBC ciphersuites from RFC6367 */ -# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C072 -# define TLS1_CK_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C073 -# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C074 -# define TLS1_CK_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C075 -# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C076 -# define TLS1_CK_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C077 -# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 0x0300C078 -# define TLS1_CK_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 0x0300C079 - -# define TLS1_CK_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C094 -# define TLS1_CK_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C095 -# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C096 -# define TLS1_CK_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C097 -# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C098 -# define TLS1_CK_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C099 -# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 0x0300C09A -# define TLS1_CK_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 0x0300C09B - -/* draft-ietf-tls-chacha20-poly1305-03 */ -# define TLS1_CK_ECDHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCA8 -# define TLS1_CK_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 0x0300CCA9 -# define TLS1_CK_DHE_RSA_WITH_CHACHA20_POLY1305 0x0300CCAA -# define TLS1_CK_PSK_WITH_CHACHA20_POLY1305 0x0300CCAB -# define TLS1_CK_ECDHE_PSK_WITH_CHACHA20_POLY1305 0x0300CCAC -# 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 - * using DHE everywhere, though we may indefinitely maintain aliases for - * users or configurations that used "EDH" - */ -# define TLS1_TXT_DHE_DSS_WITH_RC4_128_SHA "DHE-DSS-RC4-SHA" - -# define TLS1_TXT_PSK_WITH_NULL_SHA "PSK-NULL-SHA" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA "DHE-PSK-NULL-SHA" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA "RSA-PSK-NULL-SHA" - -/* AES ciphersuites from RFC3268 */ -# define TLS1_TXT_RSA_WITH_AES_128_SHA "AES128-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA "DH-DSS-AES128-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA "DH-RSA-AES128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA "DHE-DSS-AES128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA "DHE-RSA-AES128-SHA" -# define TLS1_TXT_ADH_WITH_AES_128_SHA "ADH-AES128-SHA" - -# define TLS1_TXT_RSA_WITH_AES_256_SHA "AES256-SHA" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA "DH-DSS-AES256-SHA" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA "DH-RSA-AES256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA "DHE-DSS-AES256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA "DHE-RSA-AES256-SHA" -# define TLS1_TXT_ADH_WITH_AES_256_SHA "ADH-AES256-SHA" - -/* ECC ciphersuites from RFC4492 */ -# define TLS1_TXT_ECDH_ECDSA_WITH_NULL_SHA "ECDH-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_RC4_128_SHA "ECDH-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_DES_192_CBC3_SHA "ECDH-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_CBC_SHA "ECDH-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_CBC_SHA "ECDH-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_ECDSA_WITH_NULL_SHA "ECDHE-ECDSA-NULL-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_RC4_128_SHA "ECDHE-ECDSA-RC4-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_DES_192_CBC3_SHA "ECDHE-ECDSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_CBC_SHA "ECDHE-ECDSA-AES128-SHA" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_CBC_SHA "ECDHE-ECDSA-AES256-SHA" - -# define TLS1_TXT_ECDH_RSA_WITH_NULL_SHA "ECDH-RSA-NULL-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_RC4_128_SHA "ECDH-RSA-RC4-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_DES_192_CBC3_SHA "ECDH-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_CBC_SHA "ECDH-RSA-AES128-SHA" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_CBC_SHA "ECDH-RSA-AES256-SHA" - -# define TLS1_TXT_ECDHE_RSA_WITH_NULL_SHA "ECDHE-RSA-NULL-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_RC4_128_SHA "ECDHE-RSA-RC4-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_DES_192_CBC3_SHA "ECDHE-RSA-DES-CBC3-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_CBC_SHA "ECDHE-RSA-AES128-SHA" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_CBC_SHA "ECDHE-RSA-AES256-SHA" - -# define TLS1_TXT_ECDH_anon_WITH_NULL_SHA "AECDH-NULL-SHA" -# define TLS1_TXT_ECDH_anon_WITH_RC4_128_SHA "AECDH-RC4-SHA" -# define TLS1_TXT_ECDH_anon_WITH_DES_192_CBC3_SHA "AECDH-DES-CBC3-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_128_CBC_SHA "AECDH-AES128-SHA" -# define TLS1_TXT_ECDH_anon_WITH_AES_256_CBC_SHA "AECDH-AES256-SHA" - -/* PSK ciphersuites from RFC 4279 */ -# define TLS1_TXT_PSK_WITH_RC4_128_SHA "PSK-RC4-SHA" -# define TLS1_TXT_PSK_WITH_3DES_EDE_CBC_SHA "PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA "PSK-AES128-CBC-SHA" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA "PSK-AES256-CBC-SHA" - -# define TLS1_TXT_DHE_PSK_WITH_RC4_128_SHA "DHE-PSK-RC4-SHA" -# define TLS1_TXT_DHE_PSK_WITH_3DES_EDE_CBC_SHA "DHE-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA "DHE-PSK-AES128-CBC-SHA" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA "DHE-PSK-AES256-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_RC4_128_SHA "RSA-PSK-RC4-SHA" -# define TLS1_TXT_RSA_PSK_WITH_3DES_EDE_CBC_SHA "RSA-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA "RSA-PSK-AES128-CBC-SHA" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA "RSA-PSK-AES256-CBC-SHA" - -/* PSK ciphersuites from RFC 5487 */ -# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_GCM_SHA256 "DHE-PSK-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_GCM_SHA384 "DHE-PSK-AES256-GCM-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_AES_128_GCM_SHA256 "RSA-PSK-AES128-GCM-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_GCM_SHA384 "RSA-PSK-AES256-GCM-SHA384" - -# define TLS1_TXT_PSK_WITH_AES_128_CBC_SHA256 "PSK-AES128-CBC-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_CBC_SHA384 "PSK-AES256-CBC-SHA384" -# define TLS1_TXT_PSK_WITH_NULL_SHA256 "PSK-NULL-SHA256" -# define TLS1_TXT_PSK_WITH_NULL_SHA384 "PSK-NULL-SHA384" - -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CBC_SHA256 "DHE-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CBC_SHA384 "DHE-PSK-AES256-CBC-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA256 "DHE-PSK-NULL-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_NULL_SHA384 "DHE-PSK-NULL-SHA384" - -# define TLS1_TXT_RSA_PSK_WITH_AES_128_CBC_SHA256 "RSA-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_AES_256_CBC_SHA384 "RSA-PSK-AES256-CBC-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA256 "RSA-PSK-NULL-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_NULL_SHA384 "RSA-PSK-NULL-SHA384" - -/* SRP ciphersuite from RFC 5054 */ -# define TLS1_TXT_SRP_SHA_WITH_3DES_EDE_CBC_SHA "SRP-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_3DES_EDE_CBC_SHA "SRP-RSA-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_3DES_EDE_CBC_SHA "SRP-DSS-3DES-EDE-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_128_CBC_SHA "SRP-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_128_CBC_SHA "SRP-RSA-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_128_CBC_SHA "SRP-DSS-AES-128-CBC-SHA" -# define TLS1_TXT_SRP_SHA_WITH_AES_256_CBC_SHA "SRP-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_RSA_WITH_AES_256_CBC_SHA "SRP-RSA-AES-256-CBC-SHA" -# define TLS1_TXT_SRP_SHA_DSS_WITH_AES_256_CBC_SHA "SRP-DSS-AES-256-CBC-SHA" - -/* Camellia ciphersuites from RFC4132 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA "CAMELLIA128-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA "DH-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA "DH-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA "DHE-DSS-CAMELLIA128-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA "DHE-RSA-CAMELLIA128-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA "ADH-CAMELLIA128-SHA" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA "CAMELLIA256-SHA" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA "DH-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA "DH-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA "DHE-DSS-CAMELLIA256-SHA" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA "DHE-RSA-CAMELLIA256-SHA" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA "ADH-CAMELLIA256-SHA" - -/* TLS 1.2 Camellia SHA-256 ciphersuites from RFC5932 */ -# define TLS1_TXT_RSA_WITH_CAMELLIA_128_CBC_SHA256 "CAMELLIA128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DH-DSS-CAMELLIA128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DH-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_128_CBC_SHA256 "DHE-DSS-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "DHE-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ADH_WITH_CAMELLIA_128_CBC_SHA256 "ADH-CAMELLIA128-SHA256" - -# define TLS1_TXT_RSA_WITH_CAMELLIA_256_CBC_SHA256 "CAMELLIA256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DH-DSS-CAMELLIA256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DH-RSA-CAMELLIA256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_CAMELLIA_256_CBC_SHA256 "DHE-DSS-CAMELLIA256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_CAMELLIA_256_CBC_SHA256 "DHE-RSA-CAMELLIA256-SHA256" -# define TLS1_TXT_ADH_WITH_CAMELLIA_256_CBC_SHA256 "ADH-CAMELLIA256-SHA256" - -# define TLS1_TXT_PSK_WITH_CAMELLIA_128_CBC_SHA256 "PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_PSK_WITH_CAMELLIA_256_CBC_SHA384 "PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "DHE-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_DHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "DHE-PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_128_CBC_SHA256 "RSA-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_RSA_PSK_WITH_CAMELLIA_256_CBC_SHA384 "RSA-PSK-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-PSK-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-PSK-CAMELLIA256-SHA384" - -/* SEED ciphersuites from RFC4162 */ -# define TLS1_TXT_RSA_WITH_SEED_SHA "SEED-SHA" -# define TLS1_TXT_DH_DSS_WITH_SEED_SHA "DH-DSS-SEED-SHA" -# define TLS1_TXT_DH_RSA_WITH_SEED_SHA "DH-RSA-SEED-SHA" -# define TLS1_TXT_DHE_DSS_WITH_SEED_SHA "DHE-DSS-SEED-SHA" -# define TLS1_TXT_DHE_RSA_WITH_SEED_SHA "DHE-RSA-SEED-SHA" -# define TLS1_TXT_ADH_WITH_SEED_SHA "ADH-SEED-SHA" - -/* TLS v1.2 ciphersuites */ -# define TLS1_TXT_RSA_WITH_NULL_SHA256 "NULL-SHA256" -# define TLS1_TXT_RSA_WITH_AES_128_SHA256 "AES128-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_SHA256 "AES256-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_128_SHA256 "DH-DSS-AES128-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_128_SHA256 "DH-RSA-AES128-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_SHA256 "DHE-DSS-AES128-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_SHA256 "DHE-RSA-AES128-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_SHA256 "DH-DSS-AES256-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_SHA256 "DH-RSA-AES256-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_SHA256 "DHE-DSS-AES256-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_SHA256 "DHE-RSA-AES256-SHA256" -# define TLS1_TXT_ADH_WITH_AES_128_SHA256 "ADH-AES128-SHA256" -# define TLS1_TXT_ADH_WITH_AES_256_SHA256 "ADH-AES256-SHA256" - -/* TLS v1.2 GCM ciphersuites from RFC5288 */ -# define TLS1_TXT_RSA_WITH_AES_128_GCM_SHA256 "AES128-GCM-SHA256" -# define TLS1_TXT_RSA_WITH_AES_256_GCM_SHA384 "AES256-GCM-SHA384" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_GCM_SHA256 "DHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_GCM_SHA384 "DHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DH_RSA_WITH_AES_128_GCM_SHA256 "DH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_DH_RSA_WITH_AES_256_GCM_SHA384 "DH-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_DHE_DSS_WITH_AES_128_GCM_SHA256 "DHE-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DHE_DSS_WITH_AES_256_GCM_SHA384 "DHE-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_DH_DSS_WITH_AES_128_GCM_SHA256 "DH-DSS-AES128-GCM-SHA256" -# define TLS1_TXT_DH_DSS_WITH_AES_256_GCM_SHA384 "DH-DSS-AES256-GCM-SHA384" -# define TLS1_TXT_ADH_WITH_AES_128_GCM_SHA256 "ADH-AES128-GCM-SHA256" -# 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" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM "DHE-RSA-AES256-CCM" - -# define TLS1_TXT_RSA_WITH_AES_128_CCM_8 "AES128-CCM8" -# define TLS1_TXT_RSA_WITH_AES_256_CCM_8 "AES256-CCM8" -# define TLS1_TXT_DHE_RSA_WITH_AES_128_CCM_8 "DHE-RSA-AES128-CCM8" -# define TLS1_TXT_DHE_RSA_WITH_AES_256_CCM_8 "DHE-RSA-AES256-CCM8" - -# define TLS1_TXT_PSK_WITH_AES_128_CCM "PSK-AES128-CCM" -# define TLS1_TXT_PSK_WITH_AES_256_CCM "PSK-AES256-CCM" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM "DHE-PSK-AES128-CCM" -# define TLS1_TXT_DHE_PSK_WITH_AES_256_CCM "DHE-PSK-AES256-CCM" - -# define TLS1_TXT_PSK_WITH_AES_128_CCM_8 "PSK-AES128-CCM8" -# define TLS1_TXT_PSK_WITH_AES_256_CCM_8 "PSK-AES256-CCM8" -# define TLS1_TXT_DHE_PSK_WITH_AES_128_CCM_8 "DHE-PSK-AES128-CCM8" -# 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" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_SHA384 "ECDH-ECDSA-AES256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_SHA256 "ECDHE-RSA-AES128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_SHA384 "ECDHE-RSA-AES256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_SHA256 "ECDH-RSA-AES128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_SHA384 "ECDH-RSA-AES256-SHA384" - -/* ECDH GCM based ciphersuites from RFC5289 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256 "ECDHE-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384 "ECDHE-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_128_GCM_SHA256 "ECDH-ECDSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_AES_256_GCM_SHA384 "ECDH-ECDSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_128_GCM_SHA256 "ECDHE-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_AES_256_GCM_SHA384 "ECDHE-RSA-AES256-GCM-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_AES_128_GCM_SHA256 "ECDH-RSA-AES128-GCM-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_AES_256_GCM_SHA384 "ECDH-RSA-AES256-GCM-SHA384" - -/* TLS v1.2 PSK GCM ciphersuites from RFC5487 */ -# define TLS1_TXT_PSK_WITH_AES_128_GCM_SHA256 "PSK-AES128-GCM-SHA256" -# define TLS1_TXT_PSK_WITH_AES_256_GCM_SHA384 "PSK-AES256-GCM-SHA384" - -/* ECDHE PSK ciphersuites from RFC 5489 */ -# define TLS1_TXT_ECDHE_PSK_WITH_RC4_128_SHA "ECDHE-PSK-RC4-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_3DES_EDE_CBC_SHA "ECDHE-PSK-3DES-EDE-CBC-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA "ECDHE-PSK-AES128-CBC-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA "ECDHE-PSK-AES256-CBC-SHA" - -# define TLS1_TXT_ECDHE_PSK_WITH_AES_128_CBC_SHA256 "ECDHE-PSK-AES128-CBC-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_AES_256_CBC_SHA384 "ECDHE-PSK-AES256-CBC-SHA384" - -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA "ECDHE-PSK-NULL-SHA" -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA256 "ECDHE-PSK-NULL-SHA256" -# define TLS1_TXT_ECDHE_PSK_WITH_NULL_SHA384 "ECDHE-PSK-NULL-SHA384" - -/* Camellia-CBC ciphersuites from RFC6367 */ -# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-ECDSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-ECDSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-ECDSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDH_ECDSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-ECDSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDHE-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDHE_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDHE-RSA-CAMELLIA256-SHA384" -# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_128_CBC_SHA256 "ECDH-RSA-CAMELLIA128-SHA256" -# define TLS1_TXT_ECDH_RSA_WITH_CAMELLIA_256_CBC_SHA384 "ECDH-RSA-CAMELLIA256-SHA384" - -/* draft-ietf-tls-chacha20-poly1305-03 */ -# define TLS1_TXT_ECDHE_RSA_WITH_CHACHA20_POLY1305 "ECDHE-RSA-CHACHA20-POLY1305" -# define TLS1_TXT_ECDHE_ECDSA_WITH_CHACHA20_POLY1305 "ECDHE-ECDSA-CHACHA20-POLY1305" -# define TLS1_TXT_DHE_RSA_WITH_CHACHA20_POLY1305 "DHE-RSA-CHACHA20-POLY1305" -# define TLS1_TXT_PSK_WITH_CHACHA20_POLY1305 "PSK-CHACHA20-POLY1305" -# define TLS1_TXT_ECDHE_PSK_WITH_CHACHA20_POLY1305 "ECDHE-PSK-CHACHA20-POLY1305" -# 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 -# define TLS_CT_DSS_FIXED_DH 4 -# define TLS_CT_ECDSA_SIGN 64 -# define TLS_CT_RSA_FIXED_ECDH 65 -# define TLS_CT_ECDSA_FIXED_ECDH 66 -# define TLS_CT_GOST01_SIGN 22 -# define TLS_CT_GOST12_SIGN 238 -# define TLS_CT_GOST12_512_SIGN 239 - -/* - * when correcting this number, correct also SSL3_CT_NUMBER in ssl3.h (see - * comment there) - */ -# define TLS_CT_NUMBER 10 - -# if defined(SSL3_CT_NUMBER) -# if TLS_CT_NUMBER != SSL3_CT_NUMBER -# error "SSL/TLS CT_NUMBER values do not match" -# endif -# endif - -# define TLS1_FINISH_MAC_LENGTH 12 - -# define TLS_MD_MAX_CONST_SIZE 22 -# define TLS_MD_CLIENT_FINISH_CONST "client finished" -# define TLS_MD_CLIENT_FINISH_CONST_SIZE 15 -# define TLS_MD_SERVER_FINISH_CONST "server finished" -# define TLS_MD_SERVER_FINISH_CONST_SIZE 15 -# define TLS_MD_KEY_EXPANSION_CONST "key expansion" -# define TLS_MD_KEY_EXPANSION_CONST_SIZE 13 -# define TLS_MD_CLIENT_WRITE_KEY_CONST "client write key" -# define TLS_MD_CLIENT_WRITE_KEY_CONST_SIZE 16 -# define TLS_MD_SERVER_WRITE_KEY_CONST "server write key" -# define TLS_MD_SERVER_WRITE_KEY_CONST_SIZE 16 -# define TLS_MD_IV_BLOCK_CONST "IV block" -# define TLS_MD_IV_BLOCK_CONST_SIZE 8 -# define TLS_MD_MASTER_SECRET_CONST "master secret" -# define TLS_MD_MASTER_SECRET_CONST_SIZE 13 -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "extended master secret" -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST_SIZE 22 - -# ifdef CHARSET_EBCDIC -# undef TLS_MD_CLIENT_FINISH_CONST -/* - * client finished - */ -# define TLS_MD_CLIENT_FINISH_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x66\x69\x6e\x69\x73\x68\x65\x64" - -# undef TLS_MD_SERVER_FINISH_CONST -/* - * server finished - */ -# define TLS_MD_SERVER_FINISH_CONST "\x73\x65\x72\x76\x65\x72\x20\x66\x69\x6e\x69\x73\x68\x65\x64" - -# undef TLS_MD_SERVER_WRITE_KEY_CONST -/* - * server write key - */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_KEY_EXPANSION_CONST -/* - * key expansion - */ -# define TLS_MD_KEY_EXPANSION_CONST "\x6b\x65\x79\x20\x65\x78\x70\x61\x6e\x73\x69\x6f\x6e" - -# undef TLS_MD_CLIENT_WRITE_KEY_CONST -/* - * client write key - */ -# define TLS_MD_CLIENT_WRITE_KEY_CONST "\x63\x6c\x69\x65\x6e\x74\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_SERVER_WRITE_KEY_CONST -/* - * server write key - */ -# define TLS_MD_SERVER_WRITE_KEY_CONST "\x73\x65\x72\x76\x65\x72\x20\x77\x72\x69\x74\x65\x20\x6b\x65\x79" - -# undef TLS_MD_IV_BLOCK_CONST -/* - * IV block - */ -# define TLS_MD_IV_BLOCK_CONST "\x49\x56\x20\x62\x6c\x6f\x63\x6b" - -# undef TLS_MD_MASTER_SECRET_CONST -/* - * master secret - */ -# define TLS_MD_MASTER_SECRET_CONST "\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# undef TLS_MD_EXTENDED_MASTER_SECRET_CONST -/* - * extended master secret - */ -# define TLS_MD_EXTENDED_MASTER_SECRET_CONST "\x65\x78\x74\x65\x6e\x64\x65\x64\x20\x6d\x61\x73\x74\x65\x72\x20\x73\x65\x63\x72\x65\x74" -# endif - -/* TLS Session Ticket extension struct */ -struct tls_session_ticket_ext_st { - unsigned short length; - void *data; -}; - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin64/include/openssl/ts.h b/openSSL/lin64/include/openssl/ts.h deleted file mode 100644 index 3b58aa5..0000000 --- a/openSSL/lin64/include/openssl/ts.h +++ /dev/null @@ -1,559 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_TS_H -# define HEADER_TS_H - -# include - -# ifndef OPENSSL_NO_TS -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# include -# include - -typedef struct TS_msg_imprint_st TS_MSG_IMPRINT; -typedef struct TS_req_st TS_REQ; -typedef struct TS_accuracy_st TS_ACCURACY; -typedef struct TS_tst_info_st TS_TST_INFO; - -/* Possible values for status. */ -# define TS_STATUS_GRANTED 0 -# define TS_STATUS_GRANTED_WITH_MODS 1 -# define TS_STATUS_REJECTION 2 -# define TS_STATUS_WAITING 3 -# define TS_STATUS_REVOCATION_WARNING 4 -# define TS_STATUS_REVOCATION_NOTIFICATION 5 - -/* Possible values for failure_info. */ -# define TS_INFO_BAD_ALG 0 -# define TS_INFO_BAD_REQUEST 2 -# define TS_INFO_BAD_DATA_FORMAT 5 -# define TS_INFO_TIME_NOT_AVAILABLE 14 -# define TS_INFO_UNACCEPTED_POLICY 15 -# define TS_INFO_UNACCEPTED_EXTENSION 16 -# define TS_INFO_ADD_INFO_NOT_AVAILABLE 17 -# define TS_INFO_SYSTEM_FAILURE 25 - - -typedef struct TS_status_info_st TS_STATUS_INFO; -typedef struct ESS_issuer_serial ESS_ISSUER_SERIAL; -typedef struct ESS_cert_id ESS_CERT_ID; -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); -void TS_REQ_free(TS_REQ *a); -int i2d_TS_REQ(const TS_REQ *a, unsigned char **pp); -TS_REQ *d2i_TS_REQ(TS_REQ **a, const unsigned char **pp, long length); - -TS_REQ *TS_REQ_dup(TS_REQ *a); - -#ifndef OPENSSL_NO_STDIO -TS_REQ *d2i_TS_REQ_fp(FILE *fp, TS_REQ **a); -int i2d_TS_REQ_fp(FILE *fp, TS_REQ *a); -#endif -TS_REQ *d2i_TS_REQ_bio(BIO *fp, TS_REQ **a); -int i2d_TS_REQ_bio(BIO *fp, TS_REQ *a); - -TS_MSG_IMPRINT *TS_MSG_IMPRINT_new(void); -void TS_MSG_IMPRINT_free(TS_MSG_IMPRINT *a); -int i2d_TS_MSG_IMPRINT(const TS_MSG_IMPRINT *a, unsigned char **pp); -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT(TS_MSG_IMPRINT **a, - const unsigned char **pp, long length); - -TS_MSG_IMPRINT *TS_MSG_IMPRINT_dup(TS_MSG_IMPRINT *a); - -#ifndef OPENSSL_NO_STDIO -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_fp(FILE *fp, TS_MSG_IMPRINT *a); -#endif -TS_MSG_IMPRINT *d2i_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT **a); -int i2d_TS_MSG_IMPRINT_bio(BIO *bio, TS_MSG_IMPRINT *a); - -TS_RESP *TS_RESP_new(void); -void TS_RESP_free(TS_RESP *a); -int i2d_TS_RESP(const TS_RESP *a, unsigned char **pp); -TS_RESP *d2i_TS_RESP(TS_RESP **a, const unsigned char **pp, long length); -TS_TST_INFO *PKCS7_to_TS_TST_INFO(PKCS7 *token); -TS_RESP *TS_RESP_dup(TS_RESP *a); - -#ifndef OPENSSL_NO_STDIO -TS_RESP *d2i_TS_RESP_fp(FILE *fp, TS_RESP **a); -int i2d_TS_RESP_fp(FILE *fp, TS_RESP *a); -#endif -TS_RESP *d2i_TS_RESP_bio(BIO *bio, TS_RESP **a); -int i2d_TS_RESP_bio(BIO *bio, TS_RESP *a); - -TS_STATUS_INFO *TS_STATUS_INFO_new(void); -void TS_STATUS_INFO_free(TS_STATUS_INFO *a); -int i2d_TS_STATUS_INFO(const TS_STATUS_INFO *a, unsigned char **pp); -TS_STATUS_INFO *d2i_TS_STATUS_INFO(TS_STATUS_INFO **a, - const unsigned char **pp, long length); -TS_STATUS_INFO *TS_STATUS_INFO_dup(TS_STATUS_INFO *a); - -TS_TST_INFO *TS_TST_INFO_new(void); -void TS_TST_INFO_free(TS_TST_INFO *a); -int i2d_TS_TST_INFO(const TS_TST_INFO *a, unsigned char **pp); -TS_TST_INFO *d2i_TS_TST_INFO(TS_TST_INFO **a, const unsigned char **pp, - long length); -TS_TST_INFO *TS_TST_INFO_dup(TS_TST_INFO *a); - -#ifndef OPENSSL_NO_STDIO -TS_TST_INFO *d2i_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO **a); -int i2d_TS_TST_INFO_fp(FILE *fp, TS_TST_INFO *a); -#endif -TS_TST_INFO *d2i_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO **a); -int i2d_TS_TST_INFO_bio(BIO *bio, TS_TST_INFO *a); - -TS_ACCURACY *TS_ACCURACY_new(void); -void TS_ACCURACY_free(TS_ACCURACY *a); -int i2d_TS_ACCURACY(const TS_ACCURACY *a, unsigned char **pp); -TS_ACCURACY *d2i_TS_ACCURACY(TS_ACCURACY **a, const unsigned char **pp, - long length); -TS_ACCURACY *TS_ACCURACY_dup(TS_ACCURACY *a); - -ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_new(void); -void ESS_ISSUER_SERIAL_free(ESS_ISSUER_SERIAL *a); -int i2d_ESS_ISSUER_SERIAL(const ESS_ISSUER_SERIAL *a, unsigned char **pp); -ESS_ISSUER_SERIAL *d2i_ESS_ISSUER_SERIAL(ESS_ISSUER_SERIAL **a, - const unsigned char **pp, - long length); -ESS_ISSUER_SERIAL *ESS_ISSUER_SERIAL_dup(ESS_ISSUER_SERIAL *a); - -ESS_CERT_ID *ESS_CERT_ID_new(void); -void ESS_CERT_ID_free(ESS_CERT_ID *a); -int i2d_ESS_CERT_ID(const ESS_CERT_ID *a, unsigned char **pp); -ESS_CERT_ID *d2i_ESS_CERT_ID(ESS_CERT_ID **a, const unsigned char **pp, - long length); -ESS_CERT_ID *ESS_CERT_ID_dup(ESS_CERT_ID *a); - -ESS_SIGNING_CERT *ESS_SIGNING_CERT_new(void); -void ESS_SIGNING_CERT_free(ESS_SIGNING_CERT *a); -int i2d_ESS_SIGNING_CERT(const ESS_SIGNING_CERT *a, unsigned char **pp); -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); - -int TS_STATUS_INFO_set_status(TS_STATUS_INFO *a, int i); -const ASN1_INTEGER *TS_STATUS_INFO_get0_status(const TS_STATUS_INFO *a); - -const STACK_OF(ASN1_UTF8STRING) * -TS_STATUS_INFO_get0_text(const TS_STATUS_INFO *a); - -const ASN1_BIT_STRING * -TS_STATUS_INFO_get0_failure_info(const TS_STATUS_INFO *a); - -int TS_REQ_set_msg_imprint(TS_REQ *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_REQ_get_msg_imprint(TS_REQ *a); - -int TS_MSG_IMPRINT_set_algo(TS_MSG_IMPRINT *a, X509_ALGOR *alg); -X509_ALGOR *TS_MSG_IMPRINT_get_algo(TS_MSG_IMPRINT *a); - -int TS_MSG_IMPRINT_set_msg(TS_MSG_IMPRINT *a, unsigned char *d, int len); -ASN1_OCTET_STRING *TS_MSG_IMPRINT_get_msg(TS_MSG_IMPRINT *a); - -int TS_REQ_set_policy_id(TS_REQ *a, const ASN1_OBJECT *policy); -ASN1_OBJECT *TS_REQ_get_policy_id(TS_REQ *a); - -int TS_REQ_set_nonce(TS_REQ *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_REQ_get_nonce(const TS_REQ *a); - -int TS_REQ_set_cert_req(TS_REQ *a, int cert_req); -int TS_REQ_get_cert_req(const TS_REQ *a); - -STACK_OF(X509_EXTENSION) *TS_REQ_get_exts(TS_REQ *a); -void TS_REQ_ext_free(TS_REQ *a); -int TS_REQ_get_ext_count(TS_REQ *a); -int TS_REQ_get_ext_by_NID(TS_REQ *a, int nid, int lastpos); -int TS_REQ_get_ext_by_OBJ(TS_REQ *a, const ASN1_OBJECT *obj, int lastpos); -int TS_REQ_get_ext_by_critical(TS_REQ *a, int crit, int lastpos); -X509_EXTENSION *TS_REQ_get_ext(TS_REQ *a, int loc); -X509_EXTENSION *TS_REQ_delete_ext(TS_REQ *a, int loc); -int TS_REQ_add_ext(TS_REQ *a, X509_EXTENSION *ex, int loc); -void *TS_REQ_get_ext_d2i(TS_REQ *a, int nid, int *crit, int *idx); - -/* Function declarations for TS_REQ defined in ts/ts_req_print.c */ - -int TS_REQ_print_bio(BIO *bio, TS_REQ *a); - -/* Function declarations for TS_RESP defined in ts/ts_resp_utils.c */ - -int TS_RESP_set_status_info(TS_RESP *a, TS_STATUS_INFO *info); -TS_STATUS_INFO *TS_RESP_get_status_info(TS_RESP *a); - -/* Caller loses ownership of PKCS7 and TS_TST_INFO objects. */ -void TS_RESP_set_tst_info(TS_RESP *a, PKCS7 *p7, TS_TST_INFO *tst_info); -PKCS7 *TS_RESP_get_token(TS_RESP *a); -TS_TST_INFO *TS_RESP_get_tst_info(TS_RESP *a); - -int TS_TST_INFO_set_version(TS_TST_INFO *a, long version); -long TS_TST_INFO_get_version(const TS_TST_INFO *a); - -int TS_TST_INFO_set_policy_id(TS_TST_INFO *a, ASN1_OBJECT *policy_id); -ASN1_OBJECT *TS_TST_INFO_get_policy_id(TS_TST_INFO *a); - -int TS_TST_INFO_set_msg_imprint(TS_TST_INFO *a, TS_MSG_IMPRINT *msg_imprint); -TS_MSG_IMPRINT *TS_TST_INFO_get_msg_imprint(TS_TST_INFO *a); - -int TS_TST_INFO_set_serial(TS_TST_INFO *a, const ASN1_INTEGER *serial); -const ASN1_INTEGER *TS_TST_INFO_get_serial(const TS_TST_INFO *a); - -int TS_TST_INFO_set_time(TS_TST_INFO *a, const ASN1_GENERALIZEDTIME *gtime); -const ASN1_GENERALIZEDTIME *TS_TST_INFO_get_time(const TS_TST_INFO *a); - -int TS_TST_INFO_set_accuracy(TS_TST_INFO *a, TS_ACCURACY *accuracy); -TS_ACCURACY *TS_TST_INFO_get_accuracy(TS_TST_INFO *a); - -int TS_ACCURACY_set_seconds(TS_ACCURACY *a, const ASN1_INTEGER *seconds); -const ASN1_INTEGER *TS_ACCURACY_get_seconds(const TS_ACCURACY *a); - -int TS_ACCURACY_set_millis(TS_ACCURACY *a, const ASN1_INTEGER *millis); -const ASN1_INTEGER *TS_ACCURACY_get_millis(const TS_ACCURACY *a); - -int TS_ACCURACY_set_micros(TS_ACCURACY *a, const ASN1_INTEGER *micros); -const ASN1_INTEGER *TS_ACCURACY_get_micros(const TS_ACCURACY *a); - -int TS_TST_INFO_set_ordering(TS_TST_INFO *a, int ordering); -int TS_TST_INFO_get_ordering(const TS_TST_INFO *a); - -int TS_TST_INFO_set_nonce(TS_TST_INFO *a, const ASN1_INTEGER *nonce); -const ASN1_INTEGER *TS_TST_INFO_get_nonce(const TS_TST_INFO *a); - -int TS_TST_INFO_set_tsa(TS_TST_INFO *a, GENERAL_NAME *tsa); -GENERAL_NAME *TS_TST_INFO_get_tsa(TS_TST_INFO *a); - -STACK_OF(X509_EXTENSION) *TS_TST_INFO_get_exts(TS_TST_INFO *a); -void TS_TST_INFO_ext_free(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_count(TS_TST_INFO *a); -int TS_TST_INFO_get_ext_by_NID(TS_TST_INFO *a, int nid, int lastpos); -int TS_TST_INFO_get_ext_by_OBJ(TS_TST_INFO *a, const ASN1_OBJECT *obj, - int lastpos); -int TS_TST_INFO_get_ext_by_critical(TS_TST_INFO *a, int crit, int lastpos); -X509_EXTENSION *TS_TST_INFO_get_ext(TS_TST_INFO *a, int loc); -X509_EXTENSION *TS_TST_INFO_delete_ext(TS_TST_INFO *a, int loc); -int TS_TST_INFO_add_ext(TS_TST_INFO *a, X509_EXTENSION *ex, int loc); -void *TS_TST_INFO_get_ext_d2i(TS_TST_INFO *a, int nid, int *crit, int *idx); - -/* - * Declarations related to response generation, defined in ts/ts_resp_sign.c. - */ - -/* Optional flags for response generation. */ - -/* Don't include the TSA name in response. */ -# define TS_TSA_NAME 0x01 - -/* Set ordering to true in response. */ -# define TS_ORDERING 0x02 - -/* - * Include the signer certificate and the other specified certificates in - * the ESS signing certificate attribute beside the PKCS7 signed data. - * Only the signer certificates is included by default. - */ -# define TS_ESS_CERT_ID_CHAIN 0x04 - -/* Forward declaration. */ -struct TS_resp_ctx; - -/* This must return a unique number less than 160 bits long. */ -typedef ASN1_INTEGER *(*TS_serial_cb) (struct TS_resp_ctx *, void *); - -/* - * This must return the seconds and microseconds since Jan 1, 1970 in the sec - * and usec variables allocated by the caller. Return non-zero for success - * and zero for failure. - */ -typedef int (*TS_time_cb) (struct TS_resp_ctx *, void *, long *sec, - long *usec); - -/* - * This must process the given extension. It can modify the TS_TST_INFO - * object of the context. Return values: !0 (processed), 0 (error, it must - * set the status info/failure info of the response). - */ -typedef int (*TS_extension_cb) (struct TS_resp_ctx *, X509_EXTENSION *, - void *); - -typedef struct TS_resp_ctx TS_RESP_CTX; - -DEFINE_STACK_OF_CONST(EVP_MD) - -/* Creates a response context that can be used for generating responses. */ -TS_RESP_CTX *TS_RESP_CTX_new(void); -void TS_RESP_CTX_free(TS_RESP_CTX *ctx); - -/* This parameter must be set. */ -int TS_RESP_CTX_set_signer_cert(TS_RESP_CTX *ctx, X509 *signer); - -/* This parameter must be set. */ -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); - -/* No additional certs are included in the response by default. */ -int TS_RESP_CTX_set_certs(TS_RESP_CTX *ctx, STACK_OF(X509) *certs); - -/* - * Adds a new acceptable policy, only the default policy is accepted by - * default. - */ -int TS_RESP_CTX_add_policy(TS_RESP_CTX *ctx, const ASN1_OBJECT *policy); - -/* - * Adds a new acceptable message digest. Note that no message digests are - * accepted by default. The md argument is shared with the caller. - */ -int TS_RESP_CTX_add_md(TS_RESP_CTX *ctx, const EVP_MD *md); - -/* Accuracy is not included by default. */ -int TS_RESP_CTX_set_accuracy(TS_RESP_CTX *ctx, - int secs, int millis, int micros); - -/* - * Clock precision digits, i.e. the number of decimal digits: '0' means sec, - * '3' msec, '6' usec, and so on. Default is 0. - */ -int TS_RESP_CTX_set_clock_precision_digits(TS_RESP_CTX *ctx, - unsigned clock_precision_digits); -/* At most we accept usec precision. */ -# define TS_MAX_CLOCK_PRECISION_DIGITS 6 - -/* Maximum status message length */ -# define TS_MAX_STATUS_LENGTH (1024 * 1024) - -/* No flags are set by default. */ -void TS_RESP_CTX_add_flags(TS_RESP_CTX *ctx, int flags); - -/* Default callback always returns a constant. */ -void TS_RESP_CTX_set_serial_cb(TS_RESP_CTX *ctx, TS_serial_cb cb, void *data); - -/* Default callback uses the gettimeofday() and gmtime() system calls. */ -void TS_RESP_CTX_set_time_cb(TS_RESP_CTX *ctx, TS_time_cb cb, void *data); - -/* - * Default callback rejects all extensions. The extension callback is called - * when the TS_TST_INFO object is already set up and not signed yet. - */ -/* FIXME: extension handling is not tested yet. */ -void TS_RESP_CTX_set_extension_cb(TS_RESP_CTX *ctx, - TS_extension_cb cb, void *data); - -/* The following methods can be used in the callbacks. */ -int TS_RESP_CTX_set_status_info(TS_RESP_CTX *ctx, - int status, const char *text); - -/* Sets the status info only if it is still TS_STATUS_GRANTED. */ -int TS_RESP_CTX_set_status_info_cond(TS_RESP_CTX *ctx, - int status, const char *text); - -int TS_RESP_CTX_add_failure_info(TS_RESP_CTX *ctx, int failure); - -/* The get methods below can be used in the extension callback. */ -TS_REQ *TS_RESP_CTX_get_request(TS_RESP_CTX *ctx); - -TS_TST_INFO *TS_RESP_CTX_get_tst_info(TS_RESP_CTX *ctx); - -/* - * Creates the signed TS_TST_INFO and puts it in TS_RESP. - * In case of errors it sets the status info properly. - * Returns NULL only in case of memory allocation/fatal error. - */ -TS_RESP *TS_RESP_create_response(TS_RESP_CTX *ctx, BIO *req_bio); - -/* - * Declarations related to response verification, - * they are defined in ts/ts_resp_verify.c. - */ - -int TS_RESP_verify_signature(PKCS7 *token, STACK_OF(X509) *certs, - X509_STORE *store, X509 **signer_out); - -/* Context structure for the generic verify method. */ - -/* Verify the signer's certificate and the signature of the response. */ -# define TS_VFY_SIGNATURE (1u << 0) -/* Verify the version number of the response. */ -# define TS_VFY_VERSION (1u << 1) -/* Verify if the policy supplied by the user matches the policy of the TSA. */ -# define TS_VFY_POLICY (1u << 2) -/* - * Verify the message imprint provided by the user. This flag should not be - * specified with TS_VFY_DATA. - */ -# define TS_VFY_IMPRINT (1u << 3) -/* - * Verify the message imprint computed by the verify method from the user - * provided data and the MD algorithm of the response. This flag should not - * be specified with TS_VFY_IMPRINT. - */ -# define TS_VFY_DATA (1u << 4) -/* Verify the nonce value. */ -# define TS_VFY_NONCE (1u << 5) -/* Verify if the TSA name field matches the signer certificate. */ -# define TS_VFY_SIGNER (1u << 6) -/* Verify if the TSA name field equals to the user provided name. */ -# define TS_VFY_TSA_NAME (1u << 7) - -/* You can use the following convenience constants. */ -# define TS_VFY_ALL_IMPRINT (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_IMPRINT \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) -# define TS_VFY_ALL_DATA (TS_VFY_SIGNATURE \ - | TS_VFY_VERSION \ - | TS_VFY_POLICY \ - | TS_VFY_DATA \ - | TS_VFY_NONCE \ - | TS_VFY_SIGNER \ - | TS_VFY_TSA_NAME) - -typedef struct TS_verify_ctx TS_VERIFY_CTX; - -int TS_RESP_verify_response(TS_VERIFY_CTX *ctx, TS_RESP *response); -int TS_RESP_verify_token(TS_VERIFY_CTX *ctx, PKCS7 *token); - -/* - * Declarations related to response verification context, - */ -TS_VERIFY_CTX *TS_VERIFY_CTX_new(void); -void TS_VERIFY_CTX_init(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_free(TS_VERIFY_CTX *ctx); -void TS_VERIFY_CTX_cleanup(TS_VERIFY_CTX *ctx); -int TS_VERIFY_CTX_set_flags(TS_VERIFY_CTX *ctx, int f); -int TS_VERIFY_CTX_add_flags(TS_VERIFY_CTX *ctx, int f); -BIO *TS_VERIFY_CTX_set_data(TS_VERIFY_CTX *ctx, BIO *b); -unsigned char *TS_VERIFY_CTX_set_imprint(TS_VERIFY_CTX *ctx, - unsigned char *hexstr, long len); -X509_STORE *TS_VERIFY_CTX_set_store(TS_VERIFY_CTX *ctx, X509_STORE *s); -STACK_OF(X509) *TS_VERIFY_CTS_set_certs(TS_VERIFY_CTX *ctx, STACK_OF(X509) *certs); - -/*- - * If ctx is NULL, it allocates and returns a new object, otherwise - * it returns ctx. It initialises all the members as follows: - * flags = TS_VFY_ALL_IMPRINT & ~(TS_VFY_TSA_NAME | TS_VFY_SIGNATURE) - * certs = NULL - * store = NULL - * policy = policy from the request or NULL if absent (in this case - * TS_VFY_POLICY is cleared from flags as well) - * md_alg = MD algorithm from request - * imprint, imprint_len = imprint from request - * data = NULL - * nonce, nonce_len = nonce from the request or NULL if absent (in this case - * TS_VFY_NONCE is cleared from flags as well) - * tsa_name = NULL - * Important: after calling this method TS_VFY_SIGNATURE should be added! - */ -TS_VERIFY_CTX *TS_REQ_to_TS_VERIFY_CTX(TS_REQ *req, TS_VERIFY_CTX *ctx); - -/* Function declarations for TS_RESP defined in ts/ts_resp_print.c */ - -int TS_RESP_print_bio(BIO *bio, TS_RESP *a); -int TS_STATUS_INFO_print_bio(BIO *bio, TS_STATUS_INFO *a); -int TS_TST_INFO_print_bio(BIO *bio, TS_TST_INFO *a); - -/* Common utility functions defined in ts/ts_lib.c */ - -int TS_ASN1_INTEGER_print_bio(BIO *bio, const ASN1_INTEGER *num); -int TS_OBJ_print_bio(BIO *bio, const ASN1_OBJECT *obj); -int TS_ext_print_bio(BIO *bio, const STACK_OF(X509_EXTENSION) *extensions); -int TS_X509_ALGOR_print_bio(BIO *bio, const X509_ALGOR *alg); -int TS_MSG_IMPRINT_print_bio(BIO *bio, TS_MSG_IMPRINT *msg); - -/* - * Function declarations for handling configuration options, defined in - * ts/ts_conf.c - */ - -X509 *TS_CONF_load_cert(const char *file); -STACK_OF(X509) *TS_CONF_load_certs(const char *file); -EVP_PKEY *TS_CONF_load_key(const char *file, const char *pass); -const char *TS_CONF_get_tsa_section(CONF *conf, const char *section); -int TS_CONF_set_serial(CONF *conf, const char *section, TS_serial_cb cb, - TS_RESP_CTX *ctx); -#ifndef OPENSSL_NO_ENGINE -int TS_CONF_set_crypto_device(CONF *conf, const char *section, - const char *device); -int TS_CONF_set_default_engine(const char *name); -#endif -int TS_CONF_set_signer_cert(CONF *conf, const char *section, - const char *cert, TS_RESP_CTX *ctx); -int TS_CONF_set_certs(CONF *conf, const char *section, const char *certs, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_key(CONF *conf, const char *section, - const char *key, const char *pass, - TS_RESP_CTX *ctx); -int TS_CONF_set_signer_digest(CONF *conf, const char *section, - const char *md, TS_RESP_CTX *ctx); -int TS_CONF_set_def_policy(CONF *conf, const char *section, - const char *policy, TS_RESP_CTX *ctx); -int TS_CONF_set_policies(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_digests(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_accuracy(CONF *conf, const char *section, TS_RESP_CTX *ctx); -int TS_CONF_set_clock_precision_digits(CONF *conf, const char *section, - TS_RESP_CTX *ctx); -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); -int TS_CONF_set_ess_cert_id_digest(CONF *conf, const char *section, - TS_RESP_CTX *ctx); - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/openSSL/lin64/include/openssl/tserr.h b/openSSL/lin64/include/openssl/tserr.h deleted file mode 100644 index 07f2333..0000000 --- a/openSSL/lin64/include/openssl/tserr.h +++ /dev/null @@ -1,132 +0,0 @@ -/* - * 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_TSERR_H -# define HEADER_TSERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/txt_db.h b/openSSL/lin64/include/openssl/txt_db.h deleted file mode 100644 index ec981a4..0000000 --- a/openSSL/lin64/include/openssl/txt_db.h +++ /dev/null @@ -1,57 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_TXT_DB_H -# define HEADER_TXT_DB_H - -# include -# include -# include -# include - -# define DB_ERROR_OK 0 -# define DB_ERROR_MALLOC 1 -# define DB_ERROR_INDEX_CLASH 2 -# define DB_ERROR_INDEX_OUT_OF_RANGE 3 -# define DB_ERROR_NO_INDEX 4 -# define DB_ERROR_INSERT_INDEX_CLASH 5 -# define DB_ERROR_WRONG_NUM_FIELDS 6 - -#ifdef __cplusplus -extern "C" { -#endif - -typedef OPENSSL_STRING *OPENSSL_PSTRING; -DEFINE_SPECIAL_STACK_OF(OPENSSL_PSTRING, OPENSSL_STRING) - -typedef struct txt_db_st { - int num_fields; - STACK_OF(OPENSSL_PSTRING) *data; - LHASH_OF(OPENSSL_STRING) **index; - int (**qual) (OPENSSL_STRING *); - long error; - long arg1; - long arg2; - OPENSSL_STRING *arg_row; -} TXT_DB; - -TXT_DB *TXT_DB_read(BIO *in, int num); -long TXT_DB_write(BIO *out, TXT_DB *db); -int TXT_DB_create_index(TXT_DB *db, int field, int (*qual) (OPENSSL_STRING *), - OPENSSL_LH_HASHFUNC hash, OPENSSL_LH_COMPFUNC cmp); -void TXT_DB_free(TXT_DB *db); -OPENSSL_STRING *TXT_DB_get_by_index(TXT_DB *db, int idx, - OPENSSL_STRING *value); -int TXT_DB_insert(TXT_DB *db, OPENSSL_STRING *value); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/openSSL/lin64/include/openssl/ui.h b/openSSL/lin64/include/openssl/ui.h deleted file mode 100644 index 7c721ec..0000000 --- a/openSSL/lin64/include/openssl/ui.h +++ /dev/null @@ -1,368 +0,0 @@ -/* - * 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_UI_H -# define HEADER_UI_H - -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# include -# include -# 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 -# endif - -# ifdef __cplusplus -extern "C" { -# endif - -/* - * All the following functions return -1 or NULL on error and in some cases - * (UI_process()) -2 if interrupted or in some other way cancelled. When - * everything is fine, they return 0, a positive value or a non-NULL pointer, - * all depending on their purpose. - */ - -/* Creators and destructor. */ -UI *UI_new(void); -UI *UI_new_method(const UI_METHOD *method); -void UI_free(UI *ui); - -/*- - The following functions are used to add strings to be printed and prompt - strings to prompt for data. The names are UI_{add,dup}__string - and UI_{add,dup}_input_boolean. - - UI_{add,dup}__string have the following meanings: - add add a text or prompt string. The pointers given to these - functions are used verbatim, no copying is done. - dup make a copy of the text or prompt string, then add the copy - to the collection of strings in the user interface. - - The function is a name for the functionality that the given - string shall be used for. It can be one of: - input use the string as data prompt. - verify use the string as verification prompt. This - is used to verify a previous input. - info use the string for informational output. - error use the string for error output. - Honestly, there's currently no difference between info and error for the - moment. - - UI_{add,dup}_input_boolean have the same semantics for "add" and "dup", - and are typically used when one wants to prompt for a yes/no response. - - All of the functions in this group take a UI and a prompt string. - The string input and verify addition functions also take a flag argument, - a buffer for the result to end up with, a minimum input size and a maximum - input size (the result buffer MUST be large enough to be able to contain - the maximum number of characters). Additionally, the verify addition - functions takes another buffer to compare the result against. - The boolean input functions take an action description string (which should - be safe to ignore if the expected user action is obvious, for example with - a dialog box with an OK button and a Cancel button), a string of acceptable - characters to mean OK and to mean Cancel. The two last strings are checked - to make sure they don't have common characters. Additionally, the same - flag argument as for the string input is taken, as well as a result buffer. - The result buffer is required to be at least one byte long. Depending on - the answer, the first character from the OK or the Cancel character strings - will be stored in the first byte of the result buffer. No NUL will be - added, so the result is *not* a string. - - On success, the all return an index of the added information. That index - is useful when retrieving results with UI_get0_result(). */ -int UI_add_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_dup_input_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize); -int UI_add_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_dup_verify_string(UI *ui, const char *prompt, int flags, - char *result_buf, int minsize, int maxsize, - const char *test_buf); -int UI_add_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_dup_input_boolean(UI *ui, const char *prompt, const char *action_desc, - const char *ok_chars, const char *cancel_chars, - int flags, char *result_buf); -int UI_add_info_string(UI *ui, const char *text); -int UI_dup_info_string(UI *ui, const char *text); -int UI_add_error_string(UI *ui, const char *text); -int UI_dup_error_string(UI *ui, const char *text); - -/* These are the possible flags. They can be or'ed together. */ -/* Use to have echoing of input */ -# define UI_INPUT_FLAG_ECHO 0x01 -/* - * Use a default password. Where that password is found is completely up to - * the application, it might for example be in the user data set with - * UI_add_user_data(). It is not recommended to have more than one input in - * each UI being marked with this flag, or the application might get - * confused. - */ -# define UI_INPUT_FLAG_DEFAULT_PWD 0x02 - -/*- - * The user of these routines may want to define flags of their own. The core - * UI won't look at those, but will pass them on to the method routines. They - * must use higher bits so they don't get confused with the UI bits above. - * UI_INPUT_FLAG_USER_BASE tells which is the lowest bit to use. A good - * example of use is this: - * - * #define MY_UI_FLAG1 (0x01 << UI_INPUT_FLAG_USER_BASE) - * -*/ -# define UI_INPUT_FLAG_USER_BASE 16 - -/*- - * The following function helps construct a prompt. object_desc is a - * textual short description of the object, for example "pass phrase", - * and object_name is the name of the object (might be a card name or - * a file name. - * The returned string shall always be allocated on the heap with - * OPENSSL_malloc(), and need to be free'd with OPENSSL_free(). - * - * If the ui_method doesn't contain a pointer to a user-defined prompt - * constructor, a default string is built, looking like this: - * - * "Enter {object_desc} for {object_name}:" - * - * So, if object_desc has the value "pass phrase" and object_name has - * the value "foo.key", the resulting string is: - * - * "Enter pass phrase for foo.key:" -*/ -char *UI_construct_prompt(UI *ui_method, - const char *object_desc, const char *object_name); - -/* - * The following function is used to store a pointer to user-specific data. - * Any previous such pointer will be returned and replaced. - * - * For callback purposes, this function makes a lot more sense than using - * ex_data, since the latter requires that different parts of OpenSSL or - * applications share the same ex_data index. - * - * Note that the UI_OpenSSL() method completely ignores the user data. Other - * 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 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. - */ -int UI_ctrl(UI *ui, int cmd, long i, void *p, void (*f) (void)); - -/* The commands */ -/* - * Use UI_CONTROL_PRINT_ERRORS with the value 1 to have UI_process print the - * OpenSSL error stack before printing any info or added error messages and - * before any prompting. - */ -# 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 - * if not. - */ -# define UI_CTRL_IS_REDOABLE 2 - -/* Some methods may use extra data */ -# 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) \ - 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); - -/* Use specific methods instead of the built-in one */ -void UI_set_default_method(const UI_METHOD *meth); -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 - of the User Interface. The functions are: - - an opener This function starts a session, maybe by opening - a channel to a tty, or by opening a window. - a writer This function is called to write a given string, - maybe to the tty, maybe as a field label in a - window. - a flusher This function is called to flush everything that - has been output so far. It can be used to actually - display a dialog box after it has been built. - a reader This function is called to read a given prompt, - maybe from the tty, maybe from a field in a - window. Note that it's called with all string - structures, not only the prompt ones, so it must - check such things itself. - a closer This function closes the session, maybe by closing - the channel to the tty, or closing the window. - - All these functions are expected to return: - - 0 on error. - 1 on success. - -1 on out-of-band events, for example if some prompting has - been canceled (by pressing Ctrl-C, for example). This is - only checked when returned by the flusher or the reader. - - The way this is used, the opener is first called, then the writer for all - strings, then the flusher, then the reader for all strings and finally the - closer. Note that if you want to prompt from a terminal or other command - line interface, the best is to have the reader also write the prompts - instead of having the writer do it. If you want to prompt from a dialog - box, the writer can be used to build up the contents of the box, and the - flusher to actually display the box and run the event loop until all data - has been given, after which the reader only grabs the given data and puts - them back into the UI strings. - - All method functions take a UI as argument. Additionally, the writer and - the reader take a UI_STRING. -*/ - -/* - * The UI_STRING type is the data structure that contains all the needed info - * about a string or a prompt, including test data for a verification prompt. - */ -typedef struct ui_string_st UI_STRING; -DEFINE_STACK_OF(UI_STRING) - -/* - * The different types of strings that are currently supported. This is only - * needed by method authors. - */ -enum UI_string_types { - UIT_NONE = 0, - UIT_PROMPT, /* Prompt for a string */ - UIT_VERIFY, /* Prompt for a string and verify */ - UIT_BOOLEAN, /* Prompt for a yes/no response */ - UIT_INFO, /* Send info to the user */ - UIT_ERROR /* Send an error message to the user */ -}; - -/* Create and manipulate methods */ -UI_METHOD *UI_create_method(const char *name); -void UI_destroy_method(UI_METHOD *ui_method); -int UI_method_set_opener(UI_METHOD *method, int (*opener) (UI *ui)); -int UI_method_set_writer(UI_METHOD *method, - int (*writer) (UI *ui, UI_STRING *uis)); -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_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 - * data from a UI_STRING. - */ - -/* Return type of the UI_STRING */ -enum UI_string_types UI_get_string_type(UI_STRING *uis); -/* Return input flags of the UI_STRING */ -int UI_get_input_flags(UI_STRING *uis); -/* Return the actual string to output (the prompt, info or error) */ -const char *UI_get0_output_string(UI_STRING *uis); -/* - * Return the optional action string to output (the boolean prompt - * instruction) - */ -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. - */ -const char *UI_get0_test_string(UI_STRING *uis); -/* Return the required minimum size of the result */ -int UI_get_result_minsize(UI_STRING *uis); -/* Return the required maximum size of the result */ -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); - - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/uierr.h b/openSSL/lin64/include/openssl/uierr.h deleted file mode 100644 index bd68864..0000000 --- a/openSSL/lin64/include/openssl/uierr.h +++ /dev/null @@ -1,65 +0,0 @@ -/* - * 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_UIERR_H -# define HEADER_UIERR_H - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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/openSSL/lin64/include/openssl/whrlpool.h b/openSSL/lin64/include/openssl/whrlpool.h deleted file mode 100644 index 20ea350..0000000 --- a/openSSL/lin64/include/openssl/whrlpool.h +++ /dev/null @@ -1,48 +0,0 @@ -/* - * Copyright 2005-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_WHRLPOOL_H -# define HEADER_WHRLPOOL_H - -#include - -# ifndef OPENSSL_NO_WHIRLPOOL -# include -# include -# ifdef __cplusplus -extern "C" { -# endif - -# define WHIRLPOOL_DIGEST_LENGTH (512/8) -# define WHIRLPOOL_BBLOCK 512 -# define WHIRLPOOL_COUNTER (256/8) - -typedef struct { - union { - unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; - /* double q is here to ensure 64-bit alignment */ - double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; - } H; - unsigned char data[WHIRLPOOL_BBLOCK / 8]; - unsigned int bitoff; - size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; -} WHIRLPOOL_CTX; - -int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); -int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); -void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); -int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); -unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); - -# ifdef __cplusplus -} -# endif -# endif - -#endif diff --git a/openSSL/lin64/include/openssl/x509.h b/openSSL/lin64/include/openssl/x509.h deleted file mode 100644 index 3ff86ec..0000000 --- a/openSSL/lin64/include/openssl/x509.h +++ /dev/null @@ -1,1050 +0,0 @@ -/* - * Copyright 1995-2020 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 - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_X509_H -# define HEADER_X509_H - -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# 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 - -# define X509v3_KU_DIGITAL_SIGNATURE 0x0080 -# define X509v3_KU_NON_REPUDIATION 0x0040 -# define X509v3_KU_KEY_ENCIPHERMENT 0x0020 -# define X509v3_KU_DATA_ENCIPHERMENT 0x0010 -# define X509v3_KU_KEY_AGREEMENT 0x0008 -# define X509v3_KU_KEY_CERT_SIGN 0x0004 -# define X509v3_KU_CRL_SIGN 0x0002 -# define X509v3_KU_ENCIPHER_ONLY 0x0001 -# define X509v3_KU_DECIPHER_ONLY 0x8000 -# define X509v3_KU_UNDEF 0xffff - -struct X509_algor_st { - ASN1_OBJECT *algorithm; - ASN1_TYPE *parameter; -} /* X509_ALGOR */ ; - -typedef STACK_OF(X509_ALGOR) X509_ALGORS; - -typedef struct X509_val_st { - ASN1_TIME *notBefore; - ASN1_TIME *notAfter; -} X509_VAL; - -typedef struct X509_sig_st X509_SIG; - -typedef struct X509_name_entry_st X509_NAME_ENTRY; - -DEFINE_STACK_OF(X509_NAME_ENTRY) - -DEFINE_STACK_OF(X509_NAME) - -# define X509_EX_V_NETSCAPE_HACK 0x8000 -# define X509_EX_V_INIT 0x0001 -typedef struct X509_extension_st X509_EXTENSION; - -typedef STACK_OF(X509_EXTENSION) X509_EXTENSIONS; - -DEFINE_STACK_OF(X509_EXTENSION) - -typedef struct x509_attributes_st X509_ATTRIBUTE; - -DEFINE_STACK_OF(X509_ATTRIBUTE) - -typedef struct X509_req_info_st X509_REQ_INFO; - -typedef struct X509_req_st X509_REQ; - -typedef struct x509_cert_aux_st X509_CERT_AUX; - -typedef struct x509_cinf_st X509_CINF; - -DEFINE_STACK_OF(X509) - -/* This is used for a table of trust checking functions */ - -typedef struct x509_trust_st { - int trust; - int flags; - int (*check_trust) (struct x509_trust_st *, X509 *, int); - char *name; - int arg1; - void *arg2; -} X509_TRUST; - -DEFINE_STACK_OF(X509_TRUST) - -/* standard trust ids */ - -# define X509_TRUST_DEFAULT 0 /* Only valid in purpose settings */ - -# define X509_TRUST_COMPAT 1 -# define X509_TRUST_SSL_CLIENT 2 -# define X509_TRUST_SSL_SERVER 3 -# define X509_TRUST_EMAIL 4 -# define X509_TRUST_OBJECT_SIGN 5 -# define X509_TRUST_OCSP_SIGN 6 -# define X509_TRUST_OCSP_REQUEST 7 -# define X509_TRUST_TSA 8 - -/* Keep these up to date! */ -# define X509_TRUST_MIN 1 -# define X509_TRUST_MAX 8 - -/* trust_flags values */ -# define X509_TRUST_DYNAMIC (1U << 0) -# define X509_TRUST_DYNAMIC_NAME (1U << 1) -/* No compat trust if self-signed, preempts "DO_SS" */ -# define X509_TRUST_NO_SS_COMPAT (1U << 2) -/* Compat trust if no explicit accepted trust EKUs */ -# define X509_TRUST_DO_SS_COMPAT (1U << 3) -/* Accept "anyEKU" as a wildcard trust OID */ -# define X509_TRUST_OK_ANY_EKU (1U << 4) - -/* check_trust return codes */ - -# define X509_TRUST_TRUSTED 1 -# define X509_TRUST_REJECTED 2 -# define X509_TRUST_UNTRUSTED 3 - -/* Flags for X509_print_ex() */ - -# define X509_FLAG_COMPAT 0 -# define X509_FLAG_NO_HEADER 1L -# define X509_FLAG_NO_VERSION (1L << 1) -# define X509_FLAG_NO_SERIAL (1L << 2) -# define X509_FLAG_NO_SIGNAME (1L << 3) -# define X509_FLAG_NO_ISSUER (1L << 4) -# define X509_FLAG_NO_VALIDITY (1L << 5) -# define X509_FLAG_NO_SUBJECT (1L << 6) -# define X509_FLAG_NO_PUBKEY (1L << 7) -# define X509_FLAG_NO_EXTENSIONS (1L << 8) -# define X509_FLAG_NO_SIGDUMP (1L << 9) -# define X509_FLAG_NO_AUX (1L << 10) -# define X509_FLAG_NO_ATTRIBUTES (1L << 11) -# define X509_FLAG_NO_IDS (1L << 12) - -/* Flags specific to X509_NAME_print_ex() */ - -/* The field separator information */ - -# define XN_FLAG_SEP_MASK (0xf << 16) - -# define XN_FLAG_COMPAT 0/* Traditional; use old X509_NAME_print */ -# define XN_FLAG_SEP_COMMA_PLUS (1 << 16)/* RFC2253 ,+ */ -# define XN_FLAG_SEP_CPLUS_SPC (2 << 16)/* ,+ spaced: more readable */ -# define XN_FLAG_SEP_SPLUS_SPC (3 << 16)/* ;+ spaced */ -# define XN_FLAG_SEP_MULTILINE (4 << 16)/* One line per field */ - -# define XN_FLAG_DN_REV (1 << 20)/* Reverse DN order */ - -/* How the field name is shown */ - -# define XN_FLAG_FN_MASK (0x3 << 21) - -# define XN_FLAG_FN_SN 0/* Object short name */ -# define XN_FLAG_FN_LN (1 << 21)/* Object long name */ -# define XN_FLAG_FN_OID (2 << 21)/* Always use OIDs */ -# define XN_FLAG_FN_NONE (3 << 21)/* No field names */ - -# define XN_FLAG_SPC_EQ (1 << 23)/* Put spaces round '=' */ - -/* - * This determines if we dump fields we don't recognise: RFC2253 requires - * this. - */ - -# define XN_FLAG_DUMP_UNKNOWN_FIELDS (1 << 24) - -# define XN_FLAG_FN_ALIGN (1 << 25)/* Align field names to 20 - * characters */ - -/* Complete set of RFC2253 flags */ - -# define XN_FLAG_RFC2253 (ASN1_STRFLGS_RFC2253 | \ - XN_FLAG_SEP_COMMA_PLUS | \ - XN_FLAG_DN_REV | \ - XN_FLAG_FN_SN | \ - XN_FLAG_DUMP_UNKNOWN_FIELDS) - -/* readable oneline form */ - -# define XN_FLAG_ONELINE (ASN1_STRFLGS_RFC2253 | \ - ASN1_STRFLGS_ESC_QUOTE | \ - XN_FLAG_SEP_CPLUS_SPC | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_SN) - -/* readable multiline form */ - -# define XN_FLAG_MULTILINE (ASN1_STRFLGS_ESC_CTRL | \ - ASN1_STRFLGS_ESC_MSB | \ - XN_FLAG_SEP_MULTILINE | \ - XN_FLAG_SPC_EQ | \ - XN_FLAG_FN_LN | \ - XN_FLAG_FN_ALIGN) - -DEFINE_STACK_OF(X509_REVOKED) - -typedef struct X509_crl_info_st X509_CRL_INFO; - -DEFINE_STACK_OF(X509_CRL) - -typedef struct private_key_st { - int version; - /* The PKCS#8 data types */ - X509_ALGOR *enc_algor; - ASN1_OCTET_STRING *enc_pkey; /* encrypted pub key */ - /* When decrypted, the following will not be NULL */ - EVP_PKEY *dec_pkey; - /* used to encrypt and decrypt */ - int key_length; - char *key_data; - int key_free; /* true if we should auto free key_data */ - /* expanded version of 'enc_algor' */ - EVP_CIPHER_INFO cipher; -} X509_PKEY; - -typedef struct X509_info_st { - X509 *x509; - X509_CRL *crl; - X509_PKEY *x_pkey; - EVP_CIPHER_INFO enc_cipher; - int enc_len; - char *enc_data; -} X509_INFO; - -DEFINE_STACK_OF(X509_INFO) - -/* - * 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; - ASN1_IA5STRING *challenge; /* challenge sent in atlas >= PR2 */ -} NETSCAPE_SPKAC; - -typedef struct Netscape_spki_st { - NETSCAPE_SPKAC *spkac; /* signed public key and challenge */ - X509_ALGOR sig_algor; - ASN1_BIT_STRING *signature; -} NETSCAPE_SPKI; - -/* Netscape certificate sequence structure */ -typedef struct Netscape_certificate_sequence { - ASN1_OBJECT *type; - STACK_OF(X509) *certs; -} NETSCAPE_CERT_SEQUENCE; - -/*- Unused (and iv length is wrong) -typedef struct CBCParameter_st - { - unsigned char iv[8]; - } CBC_PARAM; -*/ - -/* Password based encryption structure */ - -typedef struct PBEPARAM_st { - ASN1_OCTET_STRING *salt; - ASN1_INTEGER *iter; -} PBEPARAM; - -/* Password based encryption V2 structures */ - -typedef struct PBE2PARAM_st { - X509_ALGOR *keyfunc; - X509_ALGOR *encryption; -} PBE2PARAM; - -typedef struct PBKDF2PARAM_st { -/* Usually OCTET STRING but could be anything */ - ASN1_TYPE *salt; - ASN1_INTEGER *iter; - ASN1_INTEGER *keylength; - 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 - -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# define X509_EXT_PACK_UNKNOWN 1 -# define X509_EXT_PACK_STRING 2 - -# define X509_extract_key(x) X509_get_pubkey(x)/*****/ -# define X509_REQ_extract_key(a) X509_REQ_get_pubkey(a) -# define X509_name_cmp(a,b) X509_NAME_cmp((a),(b)) - -void X509_CRL_set_default_method(const X509_CRL_METHOD *meth); -X509_CRL_METHOD *X509_CRL_METHOD_new(int (*crl_init) (X509_CRL *crl), - int (*crl_free) (X509_CRL *crl), - int (*crl_lookup) (X509_CRL *crl, - X509_REVOKED **ret, - ASN1_INTEGER *ser, - X509_NAME *issuer), - int (*crl_verify) (X509_CRL *crl, - EVP_PKEY *pk)); -void X509_CRL_METHOD_free(X509_CRL_METHOD *m); - -void X509_CRL_set_meth_data(X509_CRL *crl, void *dat); -void *X509_CRL_get_meth_data(X509_CRL *crl); - -const char *X509_verify_cert_error_string(long n); - -int X509_verify(X509 *a, EVP_PKEY *r); - -int X509_REQ_verify(X509_REQ *a, EVP_PKEY *r); -int X509_CRL_verify(X509_CRL *a, EVP_PKEY *r); -int NETSCAPE_SPKI_verify(NETSCAPE_SPKI *a, EVP_PKEY *r); - -NETSCAPE_SPKI *NETSCAPE_SPKI_b64_decode(const char *str, int len); -char *NETSCAPE_SPKI_b64_encode(NETSCAPE_SPKI *x); -EVP_PKEY *NETSCAPE_SPKI_get_pubkey(NETSCAPE_SPKI *x); -int NETSCAPE_SPKI_set_pubkey(NETSCAPE_SPKI *x, EVP_PKEY *pkey); - -int NETSCAPE_SPKI_print(BIO *out, NETSCAPE_SPKI *spki); - -int X509_signature_dump(BIO *bp, const ASN1_STRING *sig, int indent); -int X509_signature_print(BIO *bp, const X509_ALGOR *alg, - const ASN1_STRING *sig); - -int X509_sign(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_sign_ctx(X509 *x, EVP_MD_CTX *ctx); -# ifndef OPENSSL_NO_OCSP -int X509_http_nbio(OCSP_REQ_CTX *rctx, X509 **pcert); -# endif -int X509_REQ_sign(X509_REQ *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_REQ_sign_ctx(X509_REQ *x, EVP_MD_CTX *ctx); -int X509_CRL_sign(X509_CRL *x, EVP_PKEY *pkey, const EVP_MD *md); -int X509_CRL_sign_ctx(X509_CRL *x, EVP_MD_CTX *ctx); -# ifndef OPENSSL_NO_OCSP -int X509_CRL_http_nbio(OCSP_REQ_CTX *rctx, X509_CRL **pcrl); -# endif -int NETSCAPE_SPKI_sign(NETSCAPE_SPKI *x, EVP_PKEY *pkey, const EVP_MD *md); - -int X509_pubkey_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_digest(const X509 *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_CRL_digest(const X509_CRL *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_REQ_digest(const X509_REQ *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); -int X509_NAME_digest(const X509_NAME *data, const EVP_MD *type, - unsigned char *md, unsigned int *len); - -# ifndef OPENSSL_NO_STDIO -X509 *d2i_X509_fp(FILE *fp, X509 **x509); -int i2d_X509_fp(FILE *fp, X509 *x509); -X509_CRL *d2i_X509_CRL_fp(FILE *fp, X509_CRL **crl); -int i2d_X509_CRL_fp(FILE *fp, X509_CRL *crl); -X509_REQ *d2i_X509_REQ_fp(FILE *fp, X509_REQ **req); -int i2d_X509_REQ_fp(FILE *fp, X509_REQ *req); -# ifndef OPENSSL_NO_RSA -RSA *d2i_RSAPrivateKey_fp(FILE *fp, RSA **rsa); -int i2d_RSAPrivateKey_fp(FILE *fp, RSA *rsa); -RSA *d2i_RSAPublicKey_fp(FILE *fp, RSA **rsa); -int i2d_RSAPublicKey_fp(FILE *fp, RSA *rsa); -RSA *d2i_RSA_PUBKEY_fp(FILE *fp, RSA **rsa); -int i2d_RSA_PUBKEY_fp(FILE *fp, RSA *rsa); -# endif -# ifndef OPENSSL_NO_DSA -DSA *d2i_DSA_PUBKEY_fp(FILE *fp, DSA **dsa); -int i2d_DSA_PUBKEY_fp(FILE *fp, DSA *dsa); -DSA *d2i_DSAPrivateKey_fp(FILE *fp, DSA **dsa); -int i2d_DSAPrivateKey_fp(FILE *fp, DSA *dsa); -# endif -# ifndef OPENSSL_NO_EC -EC_KEY *d2i_EC_PUBKEY_fp(FILE *fp, EC_KEY **eckey); -int i2d_EC_PUBKEY_fp(FILE *fp, EC_KEY *eckey); -EC_KEY *d2i_ECPrivateKey_fp(FILE *fp, EC_KEY **eckey); -int i2d_ECPrivateKey_fp(FILE *fp, EC_KEY *eckey); -# endif -X509_SIG *d2i_PKCS8_fp(FILE *fp, X509_SIG **p8); -int i2d_PKCS8_fp(FILE *fp, X509_SIG *p8); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_fp(FILE *fp, PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_fp(FILE *fp, EVP_PKEY *key); -int i2d_PrivateKey_fp(FILE *fp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_fp(FILE *fp, EVP_PKEY **a); -int i2d_PUBKEY_fp(FILE *fp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_fp(FILE *fp, EVP_PKEY **a); -# endif - -X509 *d2i_X509_bio(BIO *bp, X509 **x509); -int i2d_X509_bio(BIO *bp, X509 *x509); -X509_CRL *d2i_X509_CRL_bio(BIO *bp, X509_CRL **crl); -int i2d_X509_CRL_bio(BIO *bp, X509_CRL *crl); -X509_REQ *d2i_X509_REQ_bio(BIO *bp, X509_REQ **req); -int i2d_X509_REQ_bio(BIO *bp, X509_REQ *req); -# ifndef OPENSSL_NO_RSA -RSA *d2i_RSAPrivateKey_bio(BIO *bp, RSA **rsa); -int i2d_RSAPrivateKey_bio(BIO *bp, RSA *rsa); -RSA *d2i_RSAPublicKey_bio(BIO *bp, RSA **rsa); -int i2d_RSAPublicKey_bio(BIO *bp, RSA *rsa); -RSA *d2i_RSA_PUBKEY_bio(BIO *bp, RSA **rsa); -int i2d_RSA_PUBKEY_bio(BIO *bp, RSA *rsa); -# endif -# ifndef OPENSSL_NO_DSA -DSA *d2i_DSA_PUBKEY_bio(BIO *bp, DSA **dsa); -int i2d_DSA_PUBKEY_bio(BIO *bp, DSA *dsa); -DSA *d2i_DSAPrivateKey_bio(BIO *bp, DSA **dsa); -int i2d_DSAPrivateKey_bio(BIO *bp, DSA *dsa); -# endif -# ifndef OPENSSL_NO_EC -EC_KEY *d2i_EC_PUBKEY_bio(BIO *bp, EC_KEY **eckey); -int i2d_EC_PUBKEY_bio(BIO *bp, EC_KEY *eckey); -EC_KEY *d2i_ECPrivateKey_bio(BIO *bp, EC_KEY **eckey); -int i2d_ECPrivateKey_bio(BIO *bp, EC_KEY *eckey); -# endif -X509_SIG *d2i_PKCS8_bio(BIO *bp, X509_SIG **p8); -int i2d_PKCS8_bio(BIO *bp, X509_SIG *p8); -PKCS8_PRIV_KEY_INFO *d2i_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, - PKCS8_PRIV_KEY_INFO **p8inf); -int i2d_PKCS8_PRIV_KEY_INFO_bio(BIO *bp, PKCS8_PRIV_KEY_INFO *p8inf); -int i2d_PKCS8PrivateKeyInfo_bio(BIO *bp, EVP_PKEY *key); -int i2d_PrivateKey_bio(BIO *bp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PrivateKey_bio(BIO *bp, EVP_PKEY **a); -int i2d_PUBKEY_bio(BIO *bp, EVP_PKEY *pkey); -EVP_PKEY *d2i_PUBKEY_bio(BIO *bp, EVP_PKEY **a); - -X509 *X509_dup(X509 *x509); -X509_ATTRIBUTE *X509_ATTRIBUTE_dup(X509_ATTRIBUTE *xa); -X509_EXTENSION *X509_EXTENSION_dup(X509_EXTENSION *ex); -X509_CRL *X509_CRL_dup(X509_CRL *crl); -X509_REVOKED *X509_REVOKED_dup(X509_REVOKED *rev); -X509_REQ *X509_REQ_dup(X509_REQ *req); -X509_ALGOR *X509_ALGOR_dup(X509_ALGOR *xn); -int X509_ALGOR_set0(X509_ALGOR *alg, ASN1_OBJECT *aobj, int ptype, - void *pval); -void X509_ALGOR_get0(const ASN1_OBJECT **paobj, int *pptype, - const void **ppval, const X509_ALGOR *algor); -void X509_ALGOR_set_md(X509_ALGOR *alg, const EVP_MD *md); -int X509_ALGOR_cmp(const X509_ALGOR *a, const X509_ALGOR *b); -int X509_ALGOR_copy(X509_ALGOR *dest, const X509_ALGOR *src); - -X509_NAME *X509_NAME_dup(X509_NAME *xn); -X509_NAME_ENTRY *X509_NAME_ENTRY_dup(X509_NAME_ENTRY *ne); - -int X509_cmp_time(const ASN1_TIME *s, time_t *t); -int X509_cmp_current_time(const ASN1_TIME *s); -ASN1_TIME *X509_time_adj(ASN1_TIME *s, long adj, time_t *t); -ASN1_TIME *X509_time_adj_ex(ASN1_TIME *s, - int offset_day, long offset_sec, time_t *t); -ASN1_TIME *X509_gmtime_adj(ASN1_TIME *s, long adj); - -const char *X509_get_default_cert_area(void); -const char *X509_get_default_cert_dir(void); -const char *X509_get_default_cert_file(void); -const char *X509_get_default_cert_dir_env(void); -const char *X509_get_default_cert_file_env(void); -const char *X509_get_default_private_dir(void); - -X509_REQ *X509_to_X509_REQ(X509 *x, EVP_PKEY *pkey, const EVP_MD *md); -X509 *X509_REQ_to_X509(X509_REQ *r, int days, EVP_PKEY *pkey); - -DECLARE_ASN1_FUNCTIONS(X509_ALGOR) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_ALGORS, X509_ALGORS, X509_ALGORS) -DECLARE_ASN1_FUNCTIONS(X509_VAL) - -DECLARE_ASN1_FUNCTIONS(X509_PUBKEY) - -int X509_PUBKEY_set(X509_PUBKEY **x, EVP_PKEY *pkey); -EVP_PKEY *X509_PUBKEY_get0(X509_PUBKEY *key); -EVP_PKEY *X509_PUBKEY_get(X509_PUBKEY *key); -int X509_get_pubkey_parameters(EVP_PKEY *pkey, STACK_OF(X509) *chain); -long X509_get_pathlen(X509 *x); -int i2d_PUBKEY(EVP_PKEY *a, unsigned char **pp); -EVP_PKEY *d2i_PUBKEY(EVP_PKEY **a, const unsigned char **pp, long length); -# ifndef OPENSSL_NO_RSA -int i2d_RSA_PUBKEY(RSA *a, unsigned char **pp); -RSA *d2i_RSA_PUBKEY(RSA **a, const unsigned char **pp, long length); -# endif -# ifndef OPENSSL_NO_DSA -int i2d_DSA_PUBKEY(DSA *a, unsigned char **pp); -DSA *d2i_DSA_PUBKEY(DSA **a, const unsigned char **pp, long length); -# endif -# ifndef OPENSSL_NO_EC -int i2d_EC_PUBKEY(EC_KEY *a, unsigned char **pp); -EC_KEY *d2i_EC_PUBKEY(EC_KEY **a, const unsigned char **pp, long length); -# endif - -DECLARE_ASN1_FUNCTIONS(X509_SIG) -void X509_SIG_get0(const X509_SIG *sig, const X509_ALGOR **palg, - const ASN1_OCTET_STRING **pdigest); -void X509_SIG_getm(X509_SIG *sig, X509_ALGOR **palg, - ASN1_OCTET_STRING **pdigest); - -DECLARE_ASN1_FUNCTIONS(X509_REQ_INFO) -DECLARE_ASN1_FUNCTIONS(X509_REQ) - -DECLARE_ASN1_FUNCTIONS(X509_ATTRIBUTE) -X509_ATTRIBUTE *X509_ATTRIBUTE_create(int nid, int atrtype, void *value); - -DECLARE_ASN1_FUNCTIONS(X509_EXTENSION) -DECLARE_ASN1_ENCODE_FUNCTIONS(X509_EXTENSIONS, X509_EXTENSIONS, X509_EXTENSIONS) - -DECLARE_ASN1_FUNCTIONS(X509_NAME_ENTRY) - -DECLARE_ASN1_FUNCTIONS(X509_NAME) - -int X509_NAME_set(X509_NAME **xn, X509_NAME *name); - -DECLARE_ASN1_FUNCTIONS(X509_CINF) - -DECLARE_ASN1_FUNCTIONS(X509) -DECLARE_ASN1_FUNCTIONS(X509_CERT_AUX) - -#define X509_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509, l, p, newf, dupf, freef) -int X509_set_ex_data(X509 *r, int idx, void *arg); -void *X509_get_ex_data(X509 *r, int idx); -int i2d_X509_AUX(X509 *a, unsigned char **pp); -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); - -int X509_trusted(const X509 *x); -int X509_alias_set1(X509 *x, const unsigned char *name, int len); -int X509_keyid_set1(X509 *x, const unsigned char *id, int len); -unsigned char *X509_alias_get0(X509 *x, int *len); -unsigned char *X509_keyid_get0(X509 *x, int *len); -int (*X509_TRUST_set_default(int (*trust) (int, X509 *, int))) (int, X509 *, - int); -int X509_TRUST_set(int *t, int trust); -int X509_add1_trust_object(X509 *x, const ASN1_OBJECT *obj); -int X509_add1_reject_object(X509 *x, const ASN1_OBJECT *obj); -void X509_trust_clear(X509 *x); -void X509_reject_clear(X509 *x); - -STACK_OF(ASN1_OBJECT) *X509_get0_trust_objects(X509 *x); -STACK_OF(ASN1_OBJECT) *X509_get0_reject_objects(X509 *x); - -DECLARE_ASN1_FUNCTIONS(X509_REVOKED) -DECLARE_ASN1_FUNCTIONS(X509_CRL_INFO) -DECLARE_ASN1_FUNCTIONS(X509_CRL) - -int X509_CRL_add0_revoked(X509_CRL *crl, X509_REVOKED *rev); -int X509_CRL_get0_by_serial(X509_CRL *crl, - X509_REVOKED **ret, ASN1_INTEGER *serial); -int X509_CRL_get0_by_cert(X509_CRL *crl, X509_REVOKED **ret, X509 *x); - -X509_PKEY *X509_PKEY_new(void); -void X509_PKEY_free(X509_PKEY *a); - -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKI) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_SPKAC) -DECLARE_ASN1_FUNCTIONS(NETSCAPE_CERT_SEQUENCE) - -X509_INFO *X509_INFO_new(void); -void X509_INFO_free(X509_INFO *a); -char *X509_NAME_oneline(const X509_NAME *a, char *buf, int size); - -int ASN1_verify(i2d_of_void *i2d, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature, char *data, EVP_PKEY *pkey); - -int ASN1_digest(i2d_of_void *i2d, const EVP_MD *type, char *data, - unsigned char *md, unsigned int *len); - -int ASN1_sign(i2d_of_void *i2d, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - char *data, EVP_PKEY *pkey, const EVP_MD *type); - -int ASN1_item_digest(const ASN1_ITEM *it, const EVP_MD *type, void *data, - unsigned char *md, unsigned int *len); - -int ASN1_item_verify(const ASN1_ITEM *it, X509_ALGOR *algor1, - ASN1_BIT_STRING *signature, void *data, EVP_PKEY *pkey); - -int ASN1_item_sign(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, void *data, - EVP_PKEY *pkey, const EVP_MD *type); -int ASN1_item_sign_ctx(const ASN1_ITEM *it, X509_ALGOR *algor1, - X509_ALGOR *algor2, ASN1_BIT_STRING *signature, - void *asn, EVP_MD_CTX *ctx); - -long X509_get_version(const X509 *x); -int X509_set_version(X509 *x, long version); -int X509_set_serialNumber(X509 *x, ASN1_INTEGER *serial); -ASN1_INTEGER *X509_get_serialNumber(X509 *x); -const ASN1_INTEGER *X509_get0_serialNumber(const X509 *x); -int X509_set_issuer_name(X509 *x, X509_NAME *name); -X509_NAME *X509_get_issuer_name(const X509 *a); -int X509_set_subject_name(X509 *x, X509_NAME *name); -X509_NAME *X509_get_subject_name(const X509 *a); -const ASN1_TIME * X509_get0_notBefore(const X509 *x); -ASN1_TIME *X509_getm_notBefore(const X509 *x); -int X509_set1_notBefore(X509 *x, const ASN1_TIME *tm); -const ASN1_TIME *X509_get0_notAfter(const X509 *x); -ASN1_TIME *X509_getm_notAfter(const X509 *x); -int X509_set1_notAfter(X509 *x, const ASN1_TIME *tm); -int X509_set_pubkey(X509 *x, EVP_PKEY *pkey); -int X509_up_ref(X509 *x); -int X509_get_signature_type(const X509 *x); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define X509_get_notBefore X509_getm_notBefore -# define X509_get_notAfter X509_getm_notAfter -# define X509_set_notBefore X509_set1_notBefore -# define X509_set_notAfter X509_set1_notAfter -#endif - - -/* - * This one is only used so that a binary form can output, as in - * 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); -void X509_get0_uids(const X509 *x, const ASN1_BIT_STRING **piuid, - const ASN1_BIT_STRING **psuid); -const X509_ALGOR *X509_get0_tbs_sigalg(const X509 *x); - -EVP_PKEY *X509_get0_pubkey(const X509 *x); -EVP_PKEY *X509_get_pubkey(X509 *x); -ASN1_BIT_STRING *X509_get0_pubkey_bitstr(const X509 *x); -int X509_certificate_type(const X509 *x, const EVP_PKEY *pubkey); - -long X509_REQ_get_version(const X509_REQ *req); -int X509_REQ_set_version(X509_REQ *x, long version); -X509_NAME *X509_REQ_get_subject_name(const X509_REQ *req); -int X509_REQ_set_subject_name(X509_REQ *req, X509_NAME *name); -void X509_REQ_get0_signature(const X509_REQ *req, const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -void X509_REQ_set0_signature(X509_REQ *req, ASN1_BIT_STRING *psig); -int X509_REQ_set1_signature_algo(X509_REQ *req, X509_ALGOR *palg); -int X509_REQ_get_signature_nid(const X509_REQ *req); -int i2d_re_X509_REQ_tbs(X509_REQ *req, unsigned char **pp); -int X509_REQ_set_pubkey(X509_REQ *x, EVP_PKEY *pkey); -EVP_PKEY *X509_REQ_get_pubkey(X509_REQ *req); -EVP_PKEY *X509_REQ_get0_pubkey(X509_REQ *req); -X509_PUBKEY *X509_REQ_get_X509_PUBKEY(X509_REQ *req); -int X509_REQ_extension_nid(int nid); -int *X509_REQ_get_extension_nids(void); -void X509_REQ_set_extension_nids(int *nids); -STACK_OF(X509_EXTENSION) *X509_REQ_get_extensions(X509_REQ *req); -int X509_REQ_add_extensions_nid(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts, - int nid); -int X509_REQ_add_extensions(X509_REQ *req, STACK_OF(X509_EXTENSION) *exts); -int X509_REQ_get_attr_count(const X509_REQ *req); -int X509_REQ_get_attr_by_NID(const X509_REQ *req, int nid, int lastpos); -int X509_REQ_get_attr_by_OBJ(const X509_REQ *req, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *X509_REQ_get_attr(const X509_REQ *req, int loc); -X509_ATTRIBUTE *X509_REQ_delete_attr(X509_REQ *req, int loc); -int X509_REQ_add1_attr(X509_REQ *req, X509_ATTRIBUTE *attr); -int X509_REQ_add1_attr_by_OBJ(X509_REQ *req, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_NID(X509_REQ *req, - int nid, int type, - const unsigned char *bytes, int len); -int X509_REQ_add1_attr_by_txt(X509_REQ *req, - const char *attrname, int type, - const unsigned char *bytes, int len); - -int X509_CRL_set_version(X509_CRL *x, long version); -int X509_CRL_set_issuer_name(X509_CRL *x, X509_NAME *name); -int X509_CRL_set1_lastUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_set1_nextUpdate(X509_CRL *x, const ASN1_TIME *tm); -int X509_CRL_sort(X509_CRL *crl); -int X509_CRL_up_ref(X509_CRL *crl); - -# if OPENSSL_API_COMPAT < 0x10100000L -# define X509_CRL_set_lastUpdate X509_CRL_set1_lastUpdate -# define X509_CRL_set_nextUpdate X509_CRL_set1_nextUpdate -#endif - -long X509_CRL_get_version(const X509_CRL *crl); -const ASN1_TIME *X509_CRL_get0_lastUpdate(const X509_CRL *crl); -const ASN1_TIME *X509_CRL_get0_nextUpdate(const X509_CRL *crl); -DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_lastUpdate(X509_CRL *crl)) -DEPRECATEDIN_1_1_0(ASN1_TIME *X509_CRL_get_nextUpdate(X509_CRL *crl)) -X509_NAME *X509_CRL_get_issuer(const X509_CRL *crl); -const STACK_OF(X509_EXTENSION) *X509_CRL_get0_extensions(const X509_CRL *crl); -STACK_OF(X509_REVOKED) *X509_CRL_get_REVOKED(X509_CRL *crl); -void X509_CRL_get0_signature(const X509_CRL *crl, const ASN1_BIT_STRING **psig, - const X509_ALGOR **palg); -int X509_CRL_get_signature_nid(const X509_CRL *crl); -int i2d_re_X509_CRL_tbs(X509_CRL *req, unsigned char **pp); - -const ASN1_INTEGER *X509_REVOKED_get0_serialNumber(const X509_REVOKED *x); -int X509_REVOKED_set_serialNumber(X509_REVOKED *x, ASN1_INTEGER *serial); -const ASN1_TIME *X509_REVOKED_get0_revocationDate(const X509_REVOKED *x); -int X509_REVOKED_set_revocationDate(X509_REVOKED *r, ASN1_TIME *tm); -const STACK_OF(X509_EXTENSION) * -X509_REVOKED_get0_extensions(const X509_REVOKED *r); - -X509_CRL *X509_CRL_diff(X509_CRL *base, X509_CRL *newer, - EVP_PKEY *skey, const EVP_MD *md, unsigned int flags); - -int X509_REQ_check_private_key(X509_REQ *x509, EVP_PKEY *pkey); - -int X509_check_private_key(const X509 *x509, const EVP_PKEY *pkey); -int X509_chain_check_suiteb(int *perror_depth, - X509 *x, STACK_OF(X509) *chain, - unsigned long flags); -int X509_CRL_check_suiteb(X509_CRL *crl, EVP_PKEY *pk, unsigned long flags); -STACK_OF(X509) *X509_chain_up_ref(STACK_OF(X509) *chain); - -int X509_issuer_and_serial_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_and_serial_hash(X509 *a); - -int X509_issuer_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_issuer_name_hash(X509 *a); - -int X509_subject_name_cmp(const X509 *a, const X509 *b); -unsigned long X509_subject_name_hash(X509 *x); - -# ifndef OPENSSL_NO_MD5 -unsigned long X509_issuer_name_hash_old(X509 *a); -unsigned long X509_subject_name_hash_old(X509 *x); -# endif - -int X509_cmp(const X509 *a, const X509 *b); -int X509_NAME_cmp(const X509_NAME *a, const X509_NAME *b); -unsigned long X509_NAME_hash(X509_NAME *x); -unsigned long X509_NAME_hash_old(X509_NAME *x); - -int X509_CRL_cmp(const X509_CRL *a, const X509_CRL *b); -int X509_CRL_match(const X509_CRL *a, const X509_CRL *b); -int X509_aux_print(BIO *out, X509 *x, int indent); -# ifndef OPENSSL_NO_STDIO -int X509_print_ex_fp(FILE *bp, X509 *x, unsigned long nmflag, - unsigned long cflag); -int X509_print_fp(FILE *bp, X509 *x); -int X509_CRL_print_fp(FILE *bp, X509_CRL *x); -int X509_REQ_print_fp(FILE *bp, X509_REQ *req); -int X509_NAME_print_ex_fp(FILE *fp, const X509_NAME *nm, int indent, - unsigned long flags); -# endif - -int X509_NAME_print(BIO *bp, const X509_NAME *name, int obase); -int X509_NAME_print_ex(BIO *out, const X509_NAME *nm, int indent, - unsigned long flags); -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); -int X509_REQ_print(BIO *bp, X509_REQ *req); - -int X509_NAME_entry_count(const X509_NAME *name); -int X509_NAME_get_text_by_NID(X509_NAME *name, int nid, char *buf, int len); -int X509_NAME_get_text_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, - char *buf, int len); - -/* - * NOTE: you should be passing -1, not 0 as lastpos. The functions that use - * lastpos, search after that position on. - */ -int X509_NAME_get_index_by_NID(X509_NAME *name, int nid, int lastpos); -int X509_NAME_get_index_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, - int lastpos); -X509_NAME_ENTRY *X509_NAME_get_entry(const X509_NAME *name, int loc); -X509_NAME_ENTRY *X509_NAME_delete_entry(X509_NAME *name, int loc); -int X509_NAME_add_entry(X509_NAME *name, const X509_NAME_ENTRY *ne, - int loc, int set); -int X509_NAME_add_entry_by_OBJ(X509_NAME *name, const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len, int loc, - int set); -int X509_NAME_add_entry_by_NID(X509_NAME *name, int nid, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_txt(X509_NAME_ENTRY **ne, - const char *field, int type, - const unsigned char *bytes, - int len); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_NID(X509_NAME_ENTRY **ne, int nid, - int type, - const unsigned char *bytes, - int len); -int X509_NAME_add_entry_by_txt(X509_NAME *name, const char *field, int type, - const unsigned char *bytes, int len, int loc, - int set); -X509_NAME_ENTRY *X509_NAME_ENTRY_create_by_OBJ(X509_NAME_ENTRY **ne, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, - int len); -int X509_NAME_ENTRY_set_object(X509_NAME_ENTRY *ne, const ASN1_OBJECT *obj); -int X509_NAME_ENTRY_set_data(X509_NAME_ENTRY *ne, int type, - const unsigned char *bytes, int len); -ASN1_OBJECT *X509_NAME_ENTRY_get_object(const X509_NAME_ENTRY *ne); -ASN1_STRING * X509_NAME_ENTRY_get_data(const X509_NAME_ENTRY *ne); -int X509_NAME_ENTRY_set(const X509_NAME_ENTRY *ne); - -int X509_NAME_get0_der(X509_NAME *nm, const unsigned char **pder, - size_t *pderlen); - -int X509v3_get_ext_count(const STACK_OF(X509_EXTENSION) *x); -int X509v3_get_ext_by_NID(const STACK_OF(X509_EXTENSION) *x, - int nid, int lastpos); -int X509v3_get_ext_by_OBJ(const STACK_OF(X509_EXTENSION) *x, - const ASN1_OBJECT *obj, int lastpos); -int X509v3_get_ext_by_critical(const STACK_OF(X509_EXTENSION) *x, - int crit, int lastpos); -X509_EXTENSION *X509v3_get_ext(const STACK_OF(X509_EXTENSION) *x, int loc); -X509_EXTENSION *X509v3_delete_ext(STACK_OF(X509_EXTENSION) *x, int loc); -STACK_OF(X509_EXTENSION) *X509v3_add_ext(STACK_OF(X509_EXTENSION) **x, - X509_EXTENSION *ex, int loc); - -int X509_get_ext_count(const X509 *x); -int X509_get_ext_by_NID(const X509 *x, int nid, int lastpos); -int X509_get_ext_by_OBJ(const X509 *x, const ASN1_OBJECT *obj, int lastpos); -int X509_get_ext_by_critical(const X509 *x, int crit, int lastpos); -X509_EXTENSION *X509_get_ext(const X509 *x, int loc); -X509_EXTENSION *X509_delete_ext(X509 *x, int loc); -int X509_add_ext(X509 *x, X509_EXTENSION *ex, int loc); -void *X509_get_ext_d2i(const X509 *x, int nid, int *crit, int *idx); -int X509_add1_ext_i2d(X509 *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_CRL_get_ext_count(const X509_CRL *x); -int X509_CRL_get_ext_by_NID(const X509_CRL *x, int nid, int lastpos); -int X509_CRL_get_ext_by_OBJ(const X509_CRL *x, const ASN1_OBJECT *obj, - int lastpos); -int X509_CRL_get_ext_by_critical(const X509_CRL *x, int crit, int lastpos); -X509_EXTENSION *X509_CRL_get_ext(const X509_CRL *x, int loc); -X509_EXTENSION *X509_CRL_delete_ext(X509_CRL *x, int loc); -int X509_CRL_add_ext(X509_CRL *x, X509_EXTENSION *ex, int loc); -void *X509_CRL_get_ext_d2i(const X509_CRL *x, int nid, int *crit, int *idx); -int X509_CRL_add1_ext_i2d(X509_CRL *x, int nid, void *value, int crit, - unsigned long flags); - -int X509_REVOKED_get_ext_count(const X509_REVOKED *x); -int X509_REVOKED_get_ext_by_NID(const X509_REVOKED *x, int nid, int lastpos); -int X509_REVOKED_get_ext_by_OBJ(const X509_REVOKED *x, const ASN1_OBJECT *obj, - int lastpos); -int X509_REVOKED_get_ext_by_critical(const X509_REVOKED *x, int crit, - int lastpos); -X509_EXTENSION *X509_REVOKED_get_ext(const X509_REVOKED *x, int loc); -X509_EXTENSION *X509_REVOKED_delete_ext(X509_REVOKED *x, int loc); -int X509_REVOKED_add_ext(X509_REVOKED *x, X509_EXTENSION *ex, int loc); -void *X509_REVOKED_get_ext_d2i(const X509_REVOKED *x, int nid, int *crit, - int *idx); -int X509_REVOKED_add1_ext_i2d(X509_REVOKED *x, int nid, void *value, int crit, - unsigned long flags); - -X509_EXTENSION *X509_EXTENSION_create_by_NID(X509_EXTENSION **ex, - int nid, int crit, - ASN1_OCTET_STRING *data); -X509_EXTENSION *X509_EXTENSION_create_by_OBJ(X509_EXTENSION **ex, - const ASN1_OBJECT *obj, int crit, - ASN1_OCTET_STRING *data); -int X509_EXTENSION_set_object(X509_EXTENSION *ex, const ASN1_OBJECT *obj); -int X509_EXTENSION_set_critical(X509_EXTENSION *ex, int crit); -int X509_EXTENSION_set_data(X509_EXTENSION *ex, ASN1_OCTET_STRING *data); -ASN1_OBJECT *X509_EXTENSION_get_object(X509_EXTENSION *ex); -ASN1_OCTET_STRING *X509_EXTENSION_get_data(X509_EXTENSION *ne); -int X509_EXTENSION_get_critical(const X509_EXTENSION *ex); - -int X509at_get_attr_count(const STACK_OF(X509_ATTRIBUTE) *x); -int X509at_get_attr_by_NID(const STACK_OF(X509_ATTRIBUTE) *x, int nid, - int lastpos); -int X509at_get_attr_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *sk, - const ASN1_OBJECT *obj, int lastpos); -X509_ATTRIBUTE *X509at_get_attr(const STACK_OF(X509_ATTRIBUTE) *x, int loc); -X509_ATTRIBUTE *X509at_delete_attr(STACK_OF(X509_ATTRIBUTE) *x, int loc); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr(STACK_OF(X509_ATTRIBUTE) **x, - X509_ATTRIBUTE *attr); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_OBJ(STACK_OF(X509_ATTRIBUTE) - **x, const ASN1_OBJECT *obj, - int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_NID(STACK_OF(X509_ATTRIBUTE) - **x, int nid, int type, - const unsigned char *bytes, - int len); -STACK_OF(X509_ATTRIBUTE) *X509at_add1_attr_by_txt(STACK_OF(X509_ATTRIBUTE) - **x, const char *attrname, - int type, - const unsigned char *bytes, - int len); -void *X509at_get0_data_by_OBJ(const STACK_OF(X509_ATTRIBUTE) *x, - const ASN1_OBJECT *obj, int lastpos, int type); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_NID(X509_ATTRIBUTE **attr, int nid, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_OBJ(X509_ATTRIBUTE **attr, - const ASN1_OBJECT *obj, - int atrtype, const void *data, - int len); -X509_ATTRIBUTE *X509_ATTRIBUTE_create_by_txt(X509_ATTRIBUTE **attr, - const char *atrname, int type, - const unsigned char *bytes, - int len); -int X509_ATTRIBUTE_set1_object(X509_ATTRIBUTE *attr, const ASN1_OBJECT *obj); -int X509_ATTRIBUTE_set1_data(X509_ATTRIBUTE *attr, int attrtype, - const void *data, int len); -void *X509_ATTRIBUTE_get0_data(X509_ATTRIBUTE *attr, int idx, int atrtype, - void *data); -int X509_ATTRIBUTE_count(const X509_ATTRIBUTE *attr); -ASN1_OBJECT *X509_ATTRIBUTE_get0_object(X509_ATTRIBUTE *attr); -ASN1_TYPE *X509_ATTRIBUTE_get0_type(X509_ATTRIBUTE *attr, int idx); - -int EVP_PKEY_get_attr_count(const EVP_PKEY *key); -int EVP_PKEY_get_attr_by_NID(const EVP_PKEY *key, int nid, int lastpos); -int EVP_PKEY_get_attr_by_OBJ(const EVP_PKEY *key, const ASN1_OBJECT *obj, - int lastpos); -X509_ATTRIBUTE *EVP_PKEY_get_attr(const EVP_PKEY *key, int loc); -X509_ATTRIBUTE *EVP_PKEY_delete_attr(EVP_PKEY *key, int loc); -int EVP_PKEY_add1_attr(EVP_PKEY *key, X509_ATTRIBUTE *attr); -int EVP_PKEY_add1_attr_by_OBJ(EVP_PKEY *key, - const ASN1_OBJECT *obj, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_NID(EVP_PKEY *key, - int nid, int type, - const unsigned char *bytes, int len); -int EVP_PKEY_add1_attr_by_txt(EVP_PKEY *key, - const char *attrname, int type, - const unsigned char *bytes, int len); - -int X509_verify_cert(X509_STORE_CTX *ctx); - -/* lookup a cert from a X509 STACK */ -X509 *X509_find_by_issuer_and_serial(STACK_OF(X509) *sk, X509_NAME *name, - ASN1_INTEGER *serial); -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); - -X509_ALGOR *PKCS5_pbe_set(int alg, int iter, - const unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen); -X509_ALGOR *PKCS5_pbe2_set_iv(const EVP_CIPHER *cipher, int iter, - unsigned char *salt, int saltlen, - unsigned char *aiv, int prf_nid); - -#ifndef OPENSSL_NO_SCRYPT -X509_ALGOR *PKCS5_pbe2_set_scrypt(const EVP_CIPHER *cipher, - const unsigned char *salt, int saltlen, - unsigned char *aiv, uint64_t N, uint64_t r, - uint64_t p); -#endif - -X509_ALGOR *PKCS5_pbkdf2_set(int iter, unsigned char *salt, int saltlen, - int prf_nid, int keylen); - -/* PKCS#8 utilities */ - -DECLARE_ASN1_FUNCTIONS(PKCS8_PRIV_KEY_INFO) - -EVP_PKEY *EVP_PKCS82PKEY(const PKCS8_PRIV_KEY_INFO *p8); -PKCS8_PRIV_KEY_INFO *EVP_PKEY2PKCS8(EVP_PKEY *pkey); - -int PKCS8_pkey_set0(PKCS8_PRIV_KEY_INFO *priv, ASN1_OBJECT *aobj, - int version, int ptype, void *pval, - unsigned char *penc, int penclen); -int PKCS8_pkey_get0(const ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - const X509_ALGOR **pa, const PKCS8_PRIV_KEY_INFO *p8); - -const STACK_OF(X509_ATTRIBUTE) * -PKCS8_pkey_get0_attrs(const PKCS8_PRIV_KEY_INFO *p8); -int PKCS8_pkey_add1_attr_by_NID(PKCS8_PRIV_KEY_INFO *p8, int nid, int type, - const unsigned char *bytes, int len); - -int X509_PUBKEY_set0_param(X509_PUBKEY *pub, ASN1_OBJECT *aobj, - int ptype, void *pval, - unsigned char *penc, int penclen); -int X509_PUBKEY_get0_param(ASN1_OBJECT **ppkalg, - const unsigned char **pk, int *ppklen, - X509_ALGOR **pa, X509_PUBKEY *pub); - -int X509_check_trust(X509 *x, int id, int flags); -int X509_TRUST_get_count(void); -X509_TRUST *X509_TRUST_get0(int idx); -int X509_TRUST_get_by_id(int id); -int X509_TRUST_add(int id, int flags, int (*ck) (X509_TRUST *, X509 *, int), - const char *name, int arg1, void *arg2); -void X509_TRUST_cleanup(void); -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); - -# ifdef __cplusplus -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/x509_vfy.h b/openSSL/lin64/include/openssl/x509_vfy.h deleted file mode 100644 index 25c79f1..0000000 --- a/openSSL/lin64/include/openssl/x509_vfy.h +++ /dev/null @@ -1,632 +0,0 @@ -/* - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_X509_VFY_H -# define HEADER_X509_VFY_H - -/* - * Protect against recursion, x509.h and x509_vfy.h each include the other. - */ -# ifndef HEADER_X509_H -# include -# endif - -# include -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/*- -SSL_CTX -> X509_STORE - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -> X509_LOOKUP - ->X509_LOOKUP_METHOD - -SSL -> X509_STORE_CTX - ->X509_STORE - -The X509_STORE holds the tables etc for verification stuff. -A X509_STORE_CTX is used while validating a single certificate. -The X509_STORE has X509_LOOKUPs for looking up certs. -The X509_STORE then calls a function to actually verify the -certificate chain. -*/ - -typedef enum { - X509_LU_NONE = 0, - X509_LU_X509, X509_LU_CRL -} X509_LOOKUP_TYPE; - -#if OPENSSL_API_COMPAT < 0x10100000L -#define X509_LU_RETRY -1 -#define X509_LU_FAIL 0 -#endif - -DEFINE_STACK_OF(X509_LOOKUP) -DEFINE_STACK_OF(X509_OBJECT) -DEFINE_STACK_OF(X509_VERIFY_PARAM) - -int X509_STORE_set_depth(X509_STORE *store, int depth); - -typedef int (*X509_STORE_CTX_verify_cb)(int, X509_STORE_CTX *); -typedef int (*X509_STORE_CTX_verify_fn)(X509_STORE_CTX *); -typedef int (*X509_STORE_CTX_get_issuer_fn)(X509 **issuer, - X509_STORE_CTX *ctx, X509 *x); -typedef int (*X509_STORE_CTX_check_issued_fn)(X509_STORE_CTX *ctx, - X509 *x, X509 *issuer); -typedef int (*X509_STORE_CTX_check_revocation_fn)(X509_STORE_CTX *ctx); -typedef int (*X509_STORE_CTX_get_crl_fn)(X509_STORE_CTX *ctx, - X509_CRL **crl, X509 *x); -typedef int (*X509_STORE_CTX_check_crl_fn)(X509_STORE_CTX *ctx, X509_CRL *crl); -typedef int (*X509_STORE_CTX_cert_crl_fn)(X509_STORE_CTX *ctx, - X509_CRL *crl, X509 *x); -typedef int (*X509_STORE_CTX_check_policy_fn)(X509_STORE_CTX *ctx); -typedef STACK_OF(X509) *(*X509_STORE_CTX_lookup_certs_fn)(X509_STORE_CTX *ctx, - X509_NAME *nm); -typedef STACK_OF(X509_CRL) *(*X509_STORE_CTX_lookup_crls_fn)(X509_STORE_CTX *ctx, - X509_NAME *nm); -typedef int (*X509_STORE_CTX_cleanup_fn)(X509_STORE_CTX *ctx); - - -void X509_STORE_CTX_set_depth(X509_STORE_CTX *ctx, int depth); - -# define X509_STORE_CTX_set_app_data(ctx,data) \ - X509_STORE_CTX_set_ex_data(ctx,0,data) -# define X509_STORE_CTX_get_app_data(ctx) \ - X509_STORE_CTX_get_ex_data(ctx,0) - -# define X509_L_FILE_LOAD 1 -# define X509_L_ADD_DIR 2 - -# define X509_LOOKUP_load_file(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_FILE_LOAD,(name),(long)(type),NULL) - -# define X509_LOOKUP_add_dir(x,name,type) \ - X509_LOOKUP_ctrl((x),X509_L_ADD_DIR,(name),(long)(type),NULL) - -# define X509_V_OK 0 -# define X509_V_ERR_UNSPECIFIED 1 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT 2 -# define X509_V_ERR_UNABLE_TO_GET_CRL 3 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE 4 -# define X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE 5 -# define X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY 6 -# define X509_V_ERR_CERT_SIGNATURE_FAILURE 7 -# define X509_V_ERR_CRL_SIGNATURE_FAILURE 8 -# define X509_V_ERR_CERT_NOT_YET_VALID 9 -# define X509_V_ERR_CERT_HAS_EXPIRED 10 -# define X509_V_ERR_CRL_NOT_YET_VALID 11 -# define X509_V_ERR_CRL_HAS_EXPIRED 12 -# define X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD 13 -# define X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD 14 -# define X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD 15 -# define X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD 16 -# define X509_V_ERR_OUT_OF_MEM 17 -# define X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT 18 -# define X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN 19 -# define X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY 20 -# define X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE 21 -# define X509_V_ERR_CERT_CHAIN_TOO_LONG 22 -# define X509_V_ERR_CERT_REVOKED 23 -# define X509_V_ERR_INVALID_CA 24 -# define X509_V_ERR_PATH_LENGTH_EXCEEDED 25 -# define X509_V_ERR_INVALID_PURPOSE 26 -# define X509_V_ERR_CERT_UNTRUSTED 27 -# define X509_V_ERR_CERT_REJECTED 28 -/* These are 'informational' when looking for issuer cert */ -# define X509_V_ERR_SUBJECT_ISSUER_MISMATCH 29 -# define X509_V_ERR_AKID_SKID_MISMATCH 30 -# define X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH 31 -# define X509_V_ERR_KEYUSAGE_NO_CERTSIGN 32 -# define X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER 33 -# define X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION 34 -# define X509_V_ERR_KEYUSAGE_NO_CRL_SIGN 35 -# define X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION 36 -# define X509_V_ERR_INVALID_NON_CA 37 -# define X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED 38 -# define X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE 39 -# define X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED 40 -# define X509_V_ERR_INVALID_EXTENSION 41 -# define X509_V_ERR_INVALID_POLICY_EXTENSION 42 -# define X509_V_ERR_NO_EXPLICIT_POLICY 43 -# define X509_V_ERR_DIFFERENT_CRL_SCOPE 44 -# define X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE 45 -# define X509_V_ERR_UNNESTED_RESOURCE 46 -# define X509_V_ERR_PERMITTED_VIOLATION 47 -# define X509_V_ERR_EXCLUDED_VIOLATION 48 -# define X509_V_ERR_SUBTREE_MINMAX 49 -/* The application is not happy */ -# define X509_V_ERR_APPLICATION_VERIFICATION 50 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE 51 -# define X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX 52 -# define X509_V_ERR_UNSUPPORTED_NAME_SYNTAX 53 -# define X509_V_ERR_CRL_PATH_VALIDATION_ERROR 54 -/* Another issuer check debug option */ -# define X509_V_ERR_PATH_LOOP 55 -/* Suite B mode algorithm violation */ -# define X509_V_ERR_SUITE_B_INVALID_VERSION 56 -# define X509_V_ERR_SUITE_B_INVALID_ALGORITHM 57 -# define X509_V_ERR_SUITE_B_INVALID_CURVE 58 -# define X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM 59 -# define X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED 60 -# define X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256 61 -/* Host, email and IP check errors */ -# define X509_V_ERR_HOSTNAME_MISMATCH 62 -# define X509_V_ERR_EMAIL_MISMATCH 63 -# define X509_V_ERR_IP_ADDRESS_MISMATCH 64 -/* DANE TLSA errors */ -# define X509_V_ERR_DANE_NO_MATCH 65 -/* security level errors */ -# define X509_V_ERR_EE_KEY_TOO_SMALL 66 -# define X509_V_ERR_CA_KEY_TOO_SMALL 67 -# define X509_V_ERR_CA_MD_TOO_WEAK 68 -/* Caller error */ -# define X509_V_ERR_INVALID_CALL 69 -/* Issuer lookup error */ -# define X509_V_ERR_STORE_LOOKUP 70 -/* Certificate transparency */ -# 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 */ -# define X509_V_ERR_SIGNATURE_ALGORITHM_MISMATCH 76 -# define X509_V_ERR_NO_ISSUER_PUBLIC_KEY 77 -# define X509_V_ERR_UNSUPPORTED_SIGNATURE_ALGORITHM 78 -# define X509_V_ERR_EC_KEY_EXPLICIT_PARAMS 79 - -/* Certificate verify flags */ - -# if OPENSSL_API_COMPAT < 0x10100000L -# define X509_V_FLAG_CB_ISSUER_CHECK 0x0 /* Deprecated */ -# endif -/* Use check time instead of current time */ -# define X509_V_FLAG_USE_CHECK_TIME 0x2 -/* Lookup CRLs */ -# define X509_V_FLAG_CRL_CHECK 0x4 -/* Lookup CRLs for whole chain */ -# define X509_V_FLAG_CRL_CHECK_ALL 0x8 -/* Ignore unhandled critical extensions */ -# define X509_V_FLAG_IGNORE_CRITICAL 0x10 -/* Disable workarounds for broken certificates */ -# define X509_V_FLAG_X509_STRICT 0x20 -/* Enable proxy certificate validation */ -# define X509_V_FLAG_ALLOW_PROXY_CERTS 0x40 -/* Enable policy checking */ -# define X509_V_FLAG_POLICY_CHECK 0x80 -/* Policy variable require-explicit-policy */ -# define X509_V_FLAG_EXPLICIT_POLICY 0x100 -/* Policy variable inhibit-any-policy */ -# define X509_V_FLAG_INHIBIT_ANY 0x200 -/* Policy variable inhibit-policy-mapping */ -# define X509_V_FLAG_INHIBIT_MAP 0x400 -/* Notify callback that policy is OK */ -# define X509_V_FLAG_NOTIFY_POLICY 0x800 -/* Extended CRL features such as indirect CRLs, alternate CRL signing keys */ -# define X509_V_FLAG_EXTENDED_CRL_SUPPORT 0x1000 -/* Delta CRL support */ -# define X509_V_FLAG_USE_DELTAS 0x2000 -/* Check self-signed CA signature */ -# define X509_V_FLAG_CHECK_SS_SIGNATURE 0x4000 -/* Use trusted store first */ -# define X509_V_FLAG_TRUSTED_FIRST 0x8000 -/* Suite B 128 bit only mode: not normally used */ -# define X509_V_FLAG_SUITEB_128_LOS_ONLY 0x10000 -/* Suite B 192 bit only mode */ -# define X509_V_FLAG_SUITEB_192_LOS 0x20000 -/* Suite B 128 bit mode allowing 192 bit algorithms */ -# define X509_V_FLAG_SUITEB_128_LOS 0x30000 -/* Allow partial chains if at least one certificate is in trusted store */ -# define X509_V_FLAG_PARTIAL_CHAIN 0x80000 -/* - * If the initial chain is not trusted, do not attempt to build an alternative - * chain. Alternate chain checking was introduced in 1.1.0. Setting this flag - * will force the behaviour to match that of previous versions. - */ -# define X509_V_FLAG_NO_ALT_CHAINS 0x100000 -/* Do not check certificate/CRL validity against current time */ -# define X509_V_FLAG_NO_CHECK_TIME 0x200000 - -# define X509_VP_FLAG_DEFAULT 0x1 -# define X509_VP_FLAG_OVERWRITE 0x2 -# define X509_VP_FLAG_RESET_FLAGS 0x4 -# define X509_VP_FLAG_LOCKED 0x8 -# define X509_VP_FLAG_ONCE 0x10 - -/* Internal use: mask of policy related options */ -# define X509_V_FLAG_POLICY_MASK (X509_V_FLAG_POLICY_CHECK \ - | X509_V_FLAG_EXPLICIT_POLICY \ - | X509_V_FLAG_INHIBIT_ANY \ - | X509_V_FLAG_INHIBIT_MAP) - -int X509_OBJECT_idx_by_subject(STACK_OF(X509_OBJECT) *h, X509_LOOKUP_TYPE type, - X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_by_subject(STACK_OF(X509_OBJECT) *h, - X509_LOOKUP_TYPE type, - X509_NAME *name); -X509_OBJECT *X509_OBJECT_retrieve_match(STACK_OF(X509_OBJECT) *h, - X509_OBJECT *x); -int X509_OBJECT_up_ref_count(X509_OBJECT *a); -X509_OBJECT *X509_OBJECT_new(void); -void X509_OBJECT_free(X509_OBJECT *a); -X509_LOOKUP_TYPE X509_OBJECT_get_type(const X509_OBJECT *a); -X509 *X509_OBJECT_get0_X509(const X509_OBJECT *a); -int X509_OBJECT_set1_X509(X509_OBJECT *a, X509 *obj); -X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a); -int X509_OBJECT_set1_X509_CRL(X509_OBJECT *a, X509_CRL *obj); -X509_STORE *X509_STORE_new(void); -void X509_STORE_free(X509_STORE *v); -int X509_STORE_lock(X509_STORE *ctx); -int X509_STORE_unlock(X509_STORE *ctx); -int X509_STORE_up_ref(X509_STORE *v); -STACK_OF(X509_OBJECT) *X509_STORE_get0_objects(X509_STORE *v); - -STACK_OF(X509) *X509_STORE_CTX_get1_certs(X509_STORE_CTX *st, X509_NAME *nm); -STACK_OF(X509_CRL) *X509_STORE_CTX_get1_crls(X509_STORE_CTX *st, X509_NAME *nm); -int X509_STORE_set_flags(X509_STORE *ctx, unsigned long flags); -int X509_STORE_set_purpose(X509_STORE *ctx, int purpose); -int X509_STORE_set_trust(X509_STORE *ctx, int trust); -int X509_STORE_set1_param(X509_STORE *ctx, X509_VERIFY_PARAM *pm); -X509_VERIFY_PARAM *X509_STORE_get0_param(X509_STORE *ctx); - -void X509_STORE_set_verify(X509_STORE *ctx, X509_STORE_CTX_verify_fn verify); -#define X509_STORE_set_verify_func(ctx, func) \ - X509_STORE_set_verify((ctx),(func)) -void X509_STORE_CTX_set_verify(X509_STORE_CTX *ctx, - X509_STORE_CTX_verify_fn verify); -X509_STORE_CTX_verify_fn X509_STORE_get_verify(X509_STORE *ctx); -void X509_STORE_set_verify_cb(X509_STORE *ctx, - X509_STORE_CTX_verify_cb verify_cb); -# define X509_STORE_set_verify_cb_func(ctx,func) \ - X509_STORE_set_verify_cb((ctx),(func)) -X509_STORE_CTX_verify_cb X509_STORE_get_verify_cb(X509_STORE *ctx); -void X509_STORE_set_get_issuer(X509_STORE *ctx, - X509_STORE_CTX_get_issuer_fn get_issuer); -X509_STORE_CTX_get_issuer_fn X509_STORE_get_get_issuer(X509_STORE *ctx); -void X509_STORE_set_check_issued(X509_STORE *ctx, - X509_STORE_CTX_check_issued_fn check_issued); -X509_STORE_CTX_check_issued_fn X509_STORE_get_check_issued(X509_STORE *ctx); -void X509_STORE_set_check_revocation(X509_STORE *ctx, - X509_STORE_CTX_check_revocation_fn check_revocation); -X509_STORE_CTX_check_revocation_fn X509_STORE_get_check_revocation(X509_STORE *ctx); -void X509_STORE_set_get_crl(X509_STORE *ctx, - X509_STORE_CTX_get_crl_fn get_crl); -X509_STORE_CTX_get_crl_fn X509_STORE_get_get_crl(X509_STORE *ctx); -void X509_STORE_set_check_crl(X509_STORE *ctx, - X509_STORE_CTX_check_crl_fn check_crl); -X509_STORE_CTX_check_crl_fn X509_STORE_get_check_crl(X509_STORE *ctx); -void X509_STORE_set_cert_crl(X509_STORE *ctx, - X509_STORE_CTX_cert_crl_fn cert_crl); -X509_STORE_CTX_cert_crl_fn X509_STORE_get_cert_crl(X509_STORE *ctx); -void X509_STORE_set_check_policy(X509_STORE *ctx, - X509_STORE_CTX_check_policy_fn check_policy); -X509_STORE_CTX_check_policy_fn X509_STORE_get_check_policy(X509_STORE *ctx); -void X509_STORE_set_lookup_certs(X509_STORE *ctx, - X509_STORE_CTX_lookup_certs_fn lookup_certs); -X509_STORE_CTX_lookup_certs_fn X509_STORE_get_lookup_certs(X509_STORE *ctx); -void X509_STORE_set_lookup_crls(X509_STORE *ctx, - X509_STORE_CTX_lookup_crls_fn lookup_crls); -#define X509_STORE_set_lookup_crls_cb(ctx, func) \ - X509_STORE_set_lookup_crls((ctx), (func)) -X509_STORE_CTX_lookup_crls_fn X509_STORE_get_lookup_crls(X509_STORE *ctx); -void X509_STORE_set_cleanup(X509_STORE *ctx, - X509_STORE_CTX_cleanup_fn cleanup); -X509_STORE_CTX_cleanup_fn X509_STORE_get_cleanup(X509_STORE *ctx); - -#define X509_STORE_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE, l, p, newf, dupf, freef) -int X509_STORE_set_ex_data(X509_STORE *ctx, int idx, void *data); -void *X509_STORE_get_ex_data(X509_STORE *ctx, int idx); - -X509_STORE_CTX *X509_STORE_CTX_new(void); - -int X509_STORE_CTX_get1_issuer(X509 **issuer, X509_STORE_CTX *ctx, X509 *x); - -void X509_STORE_CTX_free(X509_STORE_CTX *ctx); -int X509_STORE_CTX_init(X509_STORE_CTX *ctx, X509_STORE *store, - X509 *x509, STACK_OF(X509) *chain); -void X509_STORE_CTX_set0_trusted_stack(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_cleanup(X509_STORE_CTX *ctx); - -X509_STORE *X509_STORE_CTX_get0_store(X509_STORE_CTX *ctx); -X509 *X509_STORE_CTX_get0_cert(X509_STORE_CTX *ctx); -STACK_OF(X509)* X509_STORE_CTX_get0_untrusted(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_untrusted(X509_STORE_CTX *ctx, STACK_OF(X509) *sk); -void X509_STORE_CTX_set_verify_cb(X509_STORE_CTX *ctx, - X509_STORE_CTX_verify_cb verify); -X509_STORE_CTX_verify_cb X509_STORE_CTX_get_verify_cb(X509_STORE_CTX *ctx); -X509_STORE_CTX_verify_fn X509_STORE_CTX_get_verify(X509_STORE_CTX *ctx); -X509_STORE_CTX_get_issuer_fn X509_STORE_CTX_get_get_issuer(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_issued_fn X509_STORE_CTX_get_check_issued(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_revocation_fn X509_STORE_CTX_get_check_revocation(X509_STORE_CTX *ctx); -X509_STORE_CTX_get_crl_fn X509_STORE_CTX_get_get_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_crl_fn X509_STORE_CTX_get_check_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX_cert_crl_fn X509_STORE_CTX_get_cert_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX_check_policy_fn X509_STORE_CTX_get_check_policy(X509_STORE_CTX *ctx); -X509_STORE_CTX_lookup_certs_fn X509_STORE_CTX_get_lookup_certs(X509_STORE_CTX *ctx); -X509_STORE_CTX_lookup_crls_fn X509_STORE_CTX_get_lookup_crls(X509_STORE_CTX *ctx); -X509_STORE_CTX_cleanup_fn X509_STORE_CTX_get_cleanup(X509_STORE_CTX *ctx); - -#if OPENSSL_API_COMPAT < 0x10100000L -# define X509_STORE_CTX_get_chain X509_STORE_CTX_get0_chain -# 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 - -X509_LOOKUP *X509_STORE_add_lookup(X509_STORE *v, X509_LOOKUP_METHOD *m); -X509_LOOKUP_METHOD *X509_LOOKUP_hash_dir(void); -X509_LOOKUP_METHOD *X509_LOOKUP_file(void); - -typedef int (*X509_LOOKUP_ctrl_fn)(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); -typedef int (*X509_LOOKUP_get_by_subject_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - X509_NAME *name, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_issuer_serial_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - X509_NAME *name, - ASN1_INTEGER *serial, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_fingerprint_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const unsigned char* bytes, - int len, - X509_OBJECT *ret); -typedef int (*X509_LOOKUP_get_by_alias_fn)(X509_LOOKUP *ctx, - X509_LOOKUP_TYPE type, - const char *str, - int len, - X509_OBJECT *ret); - -X509_LOOKUP_METHOD *X509_LOOKUP_meth_new(const char *name); -void X509_LOOKUP_meth_free(X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_new_item(X509_LOOKUP_METHOD *method, - int (*new_item) (X509_LOOKUP *ctx)); -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_fn) (X509_LOOKUP *ctx)); -void (*X509_LOOKUP_meth_get_free(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_init(X509_LOOKUP_METHOD *method, - int (*init) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_init(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_shutdown(X509_LOOKUP_METHOD *method, - int (*shutdown) (X509_LOOKUP *ctx)); -int (*X509_LOOKUP_meth_get_shutdown(const X509_LOOKUP_METHOD* method)) - (X509_LOOKUP *ctx); - -int X509_LOOKUP_meth_set_ctrl(X509_LOOKUP_METHOD *method, - X509_LOOKUP_ctrl_fn ctrl_fn); -X509_LOOKUP_ctrl_fn X509_LOOKUP_meth_get_ctrl(const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_subject(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_subject_fn fn); -X509_LOOKUP_get_by_subject_fn X509_LOOKUP_meth_get_get_by_subject( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_issuer_serial(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_issuer_serial_fn fn); -X509_LOOKUP_get_by_issuer_serial_fn X509_LOOKUP_meth_get_get_by_issuer_serial( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_fingerprint(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_fingerprint_fn fn); -X509_LOOKUP_get_by_fingerprint_fn X509_LOOKUP_meth_get_get_by_fingerprint( - const X509_LOOKUP_METHOD *method); - -int X509_LOOKUP_meth_set_get_by_alias(X509_LOOKUP_METHOD *method, - X509_LOOKUP_get_by_alias_fn fn); -X509_LOOKUP_get_by_alias_fn X509_LOOKUP_meth_get_get_by_alias( - const X509_LOOKUP_METHOD *method); - - -int X509_STORE_add_cert(X509_STORE *ctx, X509 *x); -int X509_STORE_add_crl(X509_STORE *ctx, X509_CRL *x); - -int X509_STORE_CTX_get_by_subject(X509_STORE_CTX *vs, X509_LOOKUP_TYPE type, - X509_NAME *name, X509_OBJECT *ret); -X509_OBJECT *X509_STORE_CTX_get_obj_by_subject(X509_STORE_CTX *vs, - X509_LOOKUP_TYPE type, - X509_NAME *name); - -int X509_LOOKUP_ctrl(X509_LOOKUP *ctx, int cmd, const char *argc, - long argl, char **ret); - -int X509_load_cert_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_crl_file(X509_LOOKUP *ctx, const char *file, int type); -int X509_load_cert_crl_file(X509_LOOKUP *ctx, const char *file, int type); - -X509_LOOKUP *X509_LOOKUP_new(X509_LOOKUP_METHOD *method); -void X509_LOOKUP_free(X509_LOOKUP *ctx); -int X509_LOOKUP_init(X509_LOOKUP *ctx); -int X509_LOOKUP_by_subject(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - X509_NAME *name, X509_OBJECT *ret); -int X509_LOOKUP_by_issuer_serial(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - X509_NAME *name, ASN1_INTEGER *serial, - X509_OBJECT *ret); -int X509_LOOKUP_by_fingerprint(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const unsigned char *bytes, int len, - X509_OBJECT *ret); -int X509_LOOKUP_by_alias(X509_LOOKUP *ctx, X509_LOOKUP_TYPE type, - const char *str, int len, X509_OBJECT *ret); -int X509_LOOKUP_set_method_data(X509_LOOKUP *ctx, void *data); -void *X509_LOOKUP_get_method_data(const X509_LOOKUP *ctx); -X509_STORE *X509_LOOKUP_get_store(const X509_LOOKUP *ctx); -int X509_LOOKUP_shutdown(X509_LOOKUP *ctx); - -int X509_STORE_load_locations(X509_STORE *ctx, - const char *file, const char *dir); -int X509_STORE_set_default_paths(X509_STORE *ctx); - -#define X509_STORE_CTX_get_ex_new_index(l, p, newf, dupf, freef) \ - CRYPTO_get_ex_new_index(CRYPTO_EX_INDEX_X509_STORE_CTX, l, p, newf, dupf, freef) -int X509_STORE_CTX_set_ex_data(X509_STORE_CTX *ctx, int idx, void *data); -void *X509_STORE_CTX_get_ex_data(X509_STORE_CTX *ctx, int idx); -int X509_STORE_CTX_get_error(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error(X509_STORE_CTX *ctx, int s); -int X509_STORE_CTX_get_error_depth(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_error_depth(X509_STORE_CTX *ctx, int depth); -X509 *X509_STORE_CTX_get_current_cert(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_current_cert(X509_STORE_CTX *ctx, X509 *x); -X509 *X509_STORE_CTX_get0_current_issuer(X509_STORE_CTX *ctx); -X509_CRL *X509_STORE_CTX_get0_current_crl(X509_STORE_CTX *ctx); -X509_STORE_CTX *X509_STORE_CTX_get0_parent_ctx(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get0_chain(X509_STORE_CTX *ctx); -STACK_OF(X509) *X509_STORE_CTX_get1_chain(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set_cert(X509_STORE_CTX *c, X509 *x); -void X509_STORE_CTX_set0_verified_chain(X509_STORE_CTX *c, STACK_OF(X509) *sk); -void X509_STORE_CTX_set0_crls(X509_STORE_CTX *c, STACK_OF(X509_CRL) *sk); -int X509_STORE_CTX_set_purpose(X509_STORE_CTX *ctx, int purpose); -int X509_STORE_CTX_set_trust(X509_STORE_CTX *ctx, int trust); -int X509_STORE_CTX_purpose_inherit(X509_STORE_CTX *ctx, int def_purpose, - int purpose, int trust); -void X509_STORE_CTX_set_flags(X509_STORE_CTX *ctx, unsigned long flags); -void X509_STORE_CTX_set_time(X509_STORE_CTX *ctx, unsigned long flags, - time_t t); - -X509_POLICY_TREE *X509_STORE_CTX_get0_policy_tree(X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_explicit_policy(X509_STORE_CTX *ctx); -int X509_STORE_CTX_get_num_untrusted(X509_STORE_CTX *ctx); - -X509_VERIFY_PARAM *X509_STORE_CTX_get0_param(X509_STORE_CTX *ctx); -void X509_STORE_CTX_set0_param(X509_STORE_CTX *ctx, X509_VERIFY_PARAM *param); -int X509_STORE_CTX_set_default(X509_STORE_CTX *ctx, const char *name); - -/* - * Bridge opacity barrier between libcrypt and libssl, also needed to support - * offline testing in test/danetest.c - */ -void X509_STORE_CTX_set0_dane(X509_STORE_CTX *ctx, SSL_DANE *dane); -#define DANE_FLAG_NO_DANE_EE_NAMECHECKS (1L << 0) - -/* X509_VERIFY_PARAM functions */ - -X509_VERIFY_PARAM *X509_VERIFY_PARAM_new(void); -void X509_VERIFY_PARAM_free(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_inherit(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1(X509_VERIFY_PARAM *to, - const X509_VERIFY_PARAM *from); -int X509_VERIFY_PARAM_set1_name(X509_VERIFY_PARAM *param, const char *name); -int X509_VERIFY_PARAM_set_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -int X509_VERIFY_PARAM_clear_flags(X509_VERIFY_PARAM *param, - unsigned long flags); -unsigned long X509_VERIFY_PARAM_get_flags(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_set_purpose(X509_VERIFY_PARAM *param, int purpose); -int X509_VERIFY_PARAM_set_trust(X509_VERIFY_PARAM *param, int trust); -void X509_VERIFY_PARAM_set_depth(X509_VERIFY_PARAM *param, int depth); -void X509_VERIFY_PARAM_set_auth_level(X509_VERIFY_PARAM *param, int auth_level); -time_t X509_VERIFY_PARAM_get_time(const X509_VERIFY_PARAM *param); -void X509_VERIFY_PARAM_set_time(X509_VERIFY_PARAM *param, time_t t); -int X509_VERIFY_PARAM_add0_policy(X509_VERIFY_PARAM *param, - ASN1_OBJECT *policy); -int X509_VERIFY_PARAM_set1_policies(X509_VERIFY_PARAM *param, - STACK_OF(ASN1_OBJECT) *policies); - -int X509_VERIFY_PARAM_set_inh_flags(X509_VERIFY_PARAM *param, - uint32_t flags); -uint32_t X509_VERIFY_PARAM_get_inh_flags(const X509_VERIFY_PARAM *param); - -int X509_VERIFY_PARAM_set1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -int X509_VERIFY_PARAM_add1_host(X509_VERIFY_PARAM *param, - const char *name, size_t namelen); -void X509_VERIFY_PARAM_set_hostflags(X509_VERIFY_PARAM *param, - unsigned int flags); -unsigned int X509_VERIFY_PARAM_get_hostflags(const X509_VERIFY_PARAM *param); -char *X509_VERIFY_PARAM_get0_peername(X509_VERIFY_PARAM *); -void X509_VERIFY_PARAM_move_peername(X509_VERIFY_PARAM *, X509_VERIFY_PARAM *); -int X509_VERIFY_PARAM_set1_email(X509_VERIFY_PARAM *param, - const char *email, size_t emaillen); -int X509_VERIFY_PARAM_set1_ip(X509_VERIFY_PARAM *param, - const unsigned char *ip, size_t iplen); -int X509_VERIFY_PARAM_set1_ip_asc(X509_VERIFY_PARAM *param, - const char *ipasc); - -int X509_VERIFY_PARAM_get_depth(const X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_auth_level(const X509_VERIFY_PARAM *param); -const char *X509_VERIFY_PARAM_get0_name(const X509_VERIFY_PARAM *param); - -int X509_VERIFY_PARAM_add0_table(X509_VERIFY_PARAM *param); -int X509_VERIFY_PARAM_get_count(void); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_get0(int id); -const X509_VERIFY_PARAM *X509_VERIFY_PARAM_lookup(const char *name); -void X509_VERIFY_PARAM_table_cleanup(void); - -/* Non positive return values are errors */ -#define X509_PCY_TREE_FAILURE -2 /* Failure to satisfy explicit policy */ -#define X509_PCY_TREE_INVALID -1 /* Inconsistent or invalid extensions */ -#define X509_PCY_TREE_INTERNAL 0 /* Internal error, most likely malloc */ - -/* - * Positive return values form a bit mask, all but the first are internal to - * the library and don't appear in results from X509_policy_check(). - */ -#define X509_PCY_TREE_VALID 1 /* The policy tree is valid */ -#define X509_PCY_TREE_EMPTY 2 /* The policy tree is empty */ -#define X509_PCY_TREE_EXPLICIT 4 /* Explicit policy required */ - -int X509_policy_check(X509_POLICY_TREE **ptree, int *pexplicit_policy, - STACK_OF(X509) *certs, - STACK_OF(ASN1_OBJECT) *policy_oids, unsigned int flags); - -void X509_policy_tree_free(X509_POLICY_TREE *tree); - -int X509_policy_tree_level_count(const X509_POLICY_TREE *tree); -X509_POLICY_LEVEL *X509_policy_tree_get0_level(const X509_POLICY_TREE *tree, - int i); - -STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_policies(const - X509_POLICY_TREE - *tree); - -STACK_OF(X509_POLICY_NODE) *X509_policy_tree_get0_user_policies(const - X509_POLICY_TREE - *tree); - -int X509_policy_level_node_count(X509_POLICY_LEVEL *level); - -X509_POLICY_NODE *X509_policy_level_get0_node(X509_POLICY_LEVEL *level, - int i); - -const ASN1_OBJECT *X509_policy_node_get0_policy(const X509_POLICY_NODE *node); - -STACK_OF(POLICYQUALINFO) *X509_policy_node_get0_qualifiers(const - X509_POLICY_NODE - *node); -const X509_POLICY_NODE *X509_policy_node_get0_parent(const X509_POLICY_NODE - *node); - -#ifdef __cplusplus -} -#endif -#endif diff --git a/openSSL/lin64/include/openssl/x509err.h b/openSSL/lin64/include/openssl/x509err.h deleted file mode 100644 index cd08673..0000000 --- a/openSSL/lin64/include/openssl/x509err.h +++ /dev/null @@ -1,129 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2020 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# include - -# 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_GET 161 -# 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_ATTRIBUTES 138 -# 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/openSSL/lin64/include/openssl/x509v3.h b/openSSL/lin64/include/openssl/x509v3.h deleted file mode 100644 index 90fa359..0000000 --- a/openSSL/lin64/include/openssl/x509v3.h +++ /dev/null @@ -1,938 +0,0 @@ -/* - * Copyright 1999-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * 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_X509V3_H -# define HEADER_X509V3_H - -# include -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Forward reference */ -struct v3_ext_method; -struct v3_ext_ctx; - -/* Useful typedefs */ - -typedef void *(*X509V3_EXT_NEW)(void); -typedef void (*X509V3_EXT_FREE) (void *); -typedef void *(*X509V3_EXT_D2I)(void *, const unsigned char **, long); -typedef int (*X509V3_EXT_I2D) (void *, unsigned char **); -typedef STACK_OF(CONF_VALUE) * - (*X509V3_EXT_I2V) (const struct v3_ext_method *method, void *ext, - STACK_OF(CONF_VALUE) *extlist); -typedef void *(*X509V3_EXT_V2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, - STACK_OF(CONF_VALUE) *values); -typedef char *(*X509V3_EXT_I2S)(const struct v3_ext_method *method, - void *ext); -typedef void *(*X509V3_EXT_S2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); -typedef int (*X509V3_EXT_I2R) (const struct v3_ext_method *method, void *ext, - BIO *out, int indent); -typedef void *(*X509V3_EXT_R2I)(const struct v3_ext_method *method, - struct v3_ext_ctx *ctx, const char *str); - -/* V3 extension structure */ - -struct v3_ext_method { - int ext_nid; - int ext_flags; -/* If this is set the following four fields are ignored */ - ASN1_ITEM_EXP *it; -/* Old style ASN1 calls */ - X509V3_EXT_NEW ext_new; - X509V3_EXT_FREE ext_free; - X509V3_EXT_D2I d2i; - X509V3_EXT_I2D i2d; -/* The following pair is used for string extensions */ - X509V3_EXT_I2S i2s; - X509V3_EXT_S2I s2i; -/* The following pair is used for multi-valued extensions */ - X509V3_EXT_I2V i2v; - X509V3_EXT_V2I v2i; -/* The following are used for raw extensions */ - X509V3_EXT_I2R i2r; - X509V3_EXT_R2I r2i; - void *usr_data; /* Any extension specific data */ -}; - -typedef struct X509V3_CONF_METHOD_st { - char *(*get_string) (void *db, const char *section, const char *value); - STACK_OF(CONF_VALUE) *(*get_section) (void *db, const char *section); - void (*free_string) (void *db, char *string); - void (*free_section) (void *db, STACK_OF(CONF_VALUE) *section); -} X509V3_CONF_METHOD; - -/* Context specific info */ -struct v3_ext_ctx { -# define CTX_TEST 0x1 -# define X509V3_CTX_REPLACE 0x2 - int flags; - X509 *issuer_cert; - X509 *subject_cert; - X509_REQ *subject_req; - X509_CRL *crl; - X509V3_CONF_METHOD *db_meth; - void *db; -/* Maybe more here */ -}; - -typedef struct v3_ext_method X509V3_EXT_METHOD; - -DEFINE_STACK_OF(X509V3_EXT_METHOD) - -/* ext_flags values */ -# define X509V3_EXT_DYNAMIC 0x1 -# define X509V3_EXT_CTX_DEP 0x2 -# define X509V3_EXT_MULTILINE 0x4 - -typedef BIT_STRING_BITNAME ENUMERATED_NAMES; - -typedef struct BASIC_CONSTRAINTS_st { - int ca; - ASN1_INTEGER *pathlen; -} BASIC_CONSTRAINTS; - -typedef struct PKEY_USAGE_PERIOD_st { - ASN1_GENERALIZEDTIME *notBefore; - ASN1_GENERALIZEDTIME *notAfter; -} PKEY_USAGE_PERIOD; - -typedef struct otherName_st { - ASN1_OBJECT *type_id; - ASN1_TYPE *value; -} OTHERNAME; - -typedef struct EDIPartyName_st { - ASN1_STRING *nameAssigner; - ASN1_STRING *partyName; -} EDIPARTYNAME; - -typedef struct GENERAL_NAME_st { -# define GEN_OTHERNAME 0 -# define GEN_EMAIL 1 -# define GEN_DNS 2 -# define GEN_X400 3 -# define GEN_DIRNAME 4 -# define GEN_EDIPARTY 5 -# define GEN_URI 6 -# define GEN_IPADD 7 -# define GEN_RID 8 - int type; - union { - char *ptr; - OTHERNAME *otherName; /* otherName */ - ASN1_IA5STRING *rfc822Name; - ASN1_IA5STRING *dNSName; - ASN1_TYPE *x400Address; - X509_NAME *directoryName; - EDIPARTYNAME *ediPartyName; - ASN1_IA5STRING *uniformResourceIdentifier; - ASN1_OCTET_STRING *iPAddress; - ASN1_OBJECT *registeredID; - /* Old names */ - ASN1_OCTET_STRING *ip; /* iPAddress */ - X509_NAME *dirn; /* dirn */ - ASN1_IA5STRING *ia5; /* rfc822Name, dNSName, - * uniformResourceIdentifier */ - ASN1_OBJECT *rid; /* registeredID */ - ASN1_TYPE *other; /* x400Address */ - } d; -} GENERAL_NAME; - -typedef struct ACCESS_DESCRIPTION_st { - ASN1_OBJECT *method; - GENERAL_NAME *location; -} ACCESS_DESCRIPTION; - -typedef STACK_OF(ACCESS_DESCRIPTION) AUTHORITY_INFO_ACCESS; - -typedef STACK_OF(ASN1_OBJECT) EXTENDED_KEY_USAGE; - -typedef STACK_OF(ASN1_INTEGER) TLS_FEATURE; - -DEFINE_STACK_OF(GENERAL_NAME) -typedef STACK_OF(GENERAL_NAME) GENERAL_NAMES; -DEFINE_STACK_OF(GENERAL_NAMES) - -DEFINE_STACK_OF(ACCESS_DESCRIPTION) - -typedef struct DIST_POINT_NAME_st { - int type; - union { - GENERAL_NAMES *fullname; - STACK_OF(X509_NAME_ENTRY) *relativename; - } name; -/* If relativename then this contains the full distribution point name */ - X509_NAME *dpname; -} DIST_POINT_NAME; -/* All existing reasons */ -# define CRLDP_ALL_REASONS 0x807f - -# define CRL_REASON_NONE -1 -# define CRL_REASON_UNSPECIFIED 0 -# define CRL_REASON_KEY_COMPROMISE 1 -# define CRL_REASON_CA_COMPROMISE 2 -# define CRL_REASON_AFFILIATION_CHANGED 3 -# define CRL_REASON_SUPERSEDED 4 -# define CRL_REASON_CESSATION_OF_OPERATION 5 -# define CRL_REASON_CERTIFICATE_HOLD 6 -# define CRL_REASON_REMOVE_FROM_CRL 8 -# define CRL_REASON_PRIVILEGE_WITHDRAWN 9 -# define CRL_REASON_AA_COMPROMISE 10 - -struct DIST_POINT_st { - DIST_POINT_NAME *distpoint; - ASN1_BIT_STRING *reasons; - GENERAL_NAMES *CRLissuer; - int dp_reasons; -}; - -typedef STACK_OF(DIST_POINT) CRL_DIST_POINTS; - -DEFINE_STACK_OF(DIST_POINT) - -struct AUTHORITY_KEYID_st { - ASN1_OCTET_STRING *keyid; - GENERAL_NAMES *issuer; - ASN1_INTEGER *serial; -}; - -/* Strong extranet structures */ - -typedef struct SXNET_ID_st { - ASN1_INTEGER *zone; - ASN1_OCTET_STRING *user; -} SXNETID; - -DEFINE_STACK_OF(SXNETID) - -typedef struct SXNET_st { - ASN1_INTEGER *version; - STACK_OF(SXNETID) *ids; -} SXNET; - -typedef struct NOTICEREF_st { - ASN1_STRING *organization; - STACK_OF(ASN1_INTEGER) *noticenos; -} NOTICEREF; - -typedef struct USERNOTICE_st { - NOTICEREF *noticeref; - ASN1_STRING *exptext; -} USERNOTICE; - -typedef struct POLICYQUALINFO_st { - ASN1_OBJECT *pqualid; - union { - ASN1_IA5STRING *cpsuri; - USERNOTICE *usernotice; - ASN1_TYPE *other; - } d; -} POLICYQUALINFO; - -DEFINE_STACK_OF(POLICYQUALINFO) - -typedef struct POLICYINFO_st { - ASN1_OBJECT *policyid; - STACK_OF(POLICYQUALINFO) *qualifiers; -} POLICYINFO; - -typedef STACK_OF(POLICYINFO) CERTIFICATEPOLICIES; - -DEFINE_STACK_OF(POLICYINFO) - -typedef struct POLICY_MAPPING_st { - ASN1_OBJECT *issuerDomainPolicy; - ASN1_OBJECT *subjectDomainPolicy; -} POLICY_MAPPING; - -DEFINE_STACK_OF(POLICY_MAPPING) - -typedef STACK_OF(POLICY_MAPPING) POLICY_MAPPINGS; - -typedef struct GENERAL_SUBTREE_st { - GENERAL_NAME *base; - ASN1_INTEGER *minimum; - ASN1_INTEGER *maximum; -} GENERAL_SUBTREE; - -DEFINE_STACK_OF(GENERAL_SUBTREE) - -struct NAME_CONSTRAINTS_st { - STACK_OF(GENERAL_SUBTREE) *permittedSubtrees; - STACK_OF(GENERAL_SUBTREE) *excludedSubtrees; -}; - -typedef struct POLICY_CONSTRAINTS_st { - ASN1_INTEGER *requireExplicitPolicy; - ASN1_INTEGER *inhibitPolicyMapping; -} POLICY_CONSTRAINTS; - -/* Proxy certificate structures, see RFC 3820 */ -typedef struct PROXY_POLICY_st { - ASN1_OBJECT *policyLanguage; - ASN1_OCTET_STRING *policy; -} PROXY_POLICY; - -typedef struct PROXY_CERT_INFO_EXTENSION_st { - ASN1_INTEGER *pcPathLengthConstraint; - PROXY_POLICY *proxyPolicy; -} PROXY_CERT_INFO_EXTENSION; - -DECLARE_ASN1_FUNCTIONS(PROXY_POLICY) -DECLARE_ASN1_FUNCTIONS(PROXY_CERT_INFO_EXTENSION) - -struct ISSUING_DIST_POINT_st { - DIST_POINT_NAME *distpoint; - int onlyuser; - int onlyCA; - ASN1_BIT_STRING *onlysomereasons; - int indirectCRL; - int onlyattr; -}; - -/* Values in idp_flags field */ -/* IDP present */ -# define IDP_PRESENT 0x1 -/* IDP values inconsistent */ -# define IDP_INVALID 0x2 -/* onlyuser true */ -# define IDP_ONLYUSER 0x4 -/* onlyCA true */ -# define IDP_ONLYCA 0x8 -/* onlyattr true */ -# define IDP_ONLYATTR 0x10 -/* indirectCRL true */ -# define IDP_INDIRECT 0x20 -/* 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_set_ctx_test(ctx) \ - X509V3_set_ctx(ctx, NULL, NULL, NULL, NULL, CTX_TEST) -# define X509V3_set_ctx_nodb(ctx) (ctx)->db = NULL; - -# define EXT_BITSTRING(nid, table) { nid, 0, ASN1_ITEM_ref(ASN1_BIT_STRING), \ - 0,0,0,0, \ - 0,0, \ - (X509V3_EXT_I2V)i2v_ASN1_BIT_STRING, \ - (X509V3_EXT_V2I)v2i_ASN1_BIT_STRING, \ - NULL, NULL, \ - table} - -# define EXT_IA5STRING(nid) { nid, 0, ASN1_ITEM_ref(ASN1_IA5STRING), \ - 0,0,0,0, \ - (X509V3_EXT_I2S)i2s_ASN1_IA5STRING, \ - (X509V3_EXT_S2I)s2i_ASN1_IA5STRING, \ - 0,0,0,0, \ - NULL} - -# define EXT_END { -1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} - -/* X509_PURPOSE stuff */ - -# define EXFLAG_BCONS 0x1 -# define EXFLAG_KUSAGE 0x2 -# define EXFLAG_XKUSAGE 0x4 -# define EXFLAG_NSCERT 0x8 - -# define EXFLAG_CA 0x10 -/* Really self issued not necessarily self signed */ -# define EXFLAG_SI 0x20 -# define EXFLAG_V1 0x40 -# define EXFLAG_INVALID 0x80 -/* EXFLAG_SET is set to indicate that some values have been precomputed */ -# define EXFLAG_SET 0x100 -# define EXFLAG_CRITICAL 0x200 -# define EXFLAG_PROXY 0x400 - -# define EXFLAG_INVALID_POLICY 0x800 -# define EXFLAG_FRESHEST 0x1000 -# define EXFLAG_SS 0x2000 /* cert is apparently self-signed */ - -# define EXFLAG_NO_FINGERPRINT 0x100000 - -# define KU_DIGITAL_SIGNATURE 0x0080 -# define KU_NON_REPUDIATION 0x0040 -# define KU_KEY_ENCIPHERMENT 0x0020 -# define KU_DATA_ENCIPHERMENT 0x0010 -# define KU_KEY_AGREEMENT 0x0008 -# define KU_KEY_CERT_SIGN 0x0004 -# define KU_CRL_SIGN 0x0002 -# define KU_ENCIPHER_ONLY 0x0001 -# define KU_DECIPHER_ONLY 0x8000 - -# define NS_SSL_CLIENT 0x80 -# define NS_SSL_SERVER 0x40 -# define NS_SMIME 0x20 -# define NS_OBJSIGN 0x10 -# define NS_SSL_CA 0x04 -# define NS_SMIME_CA 0x02 -# define NS_OBJSIGN_CA 0x01 -# define NS_ANY_CA (NS_SSL_CA|NS_SMIME_CA|NS_OBJSIGN_CA) - -# define XKU_SSL_SERVER 0x1 -# define XKU_SSL_CLIENT 0x2 -# define XKU_SMIME 0x4 -# define XKU_CODE_SIGN 0x8 -# define XKU_SGC 0x10 -# define XKU_OCSP_SIGN 0x20 -# define XKU_TIMESTAMP 0x40 -# define XKU_DVCS 0x80 -# define XKU_ANYEKU 0x100 - -# define X509_PURPOSE_DYNAMIC 0x1 -# define X509_PURPOSE_DYNAMIC_NAME 0x2 - -typedef struct x509_purpose_st { - int purpose; - int trust; /* Default trust ID */ - int flags; - int (*check_purpose) (const struct x509_purpose_st *, const X509 *, int); - char *name; - char *sname; - void *usr_data; -} X509_PURPOSE; - -# define X509_PURPOSE_SSL_CLIENT 1 -# define X509_PURPOSE_SSL_SERVER 2 -# define X509_PURPOSE_NS_SSL_SERVER 3 -# define X509_PURPOSE_SMIME_SIGN 4 -# define X509_PURPOSE_SMIME_ENCRYPT 5 -# define X509_PURPOSE_CRL_SIGN 6 -# define X509_PURPOSE_ANY 7 -# define X509_PURPOSE_OCSP_HELPER 8 -# define X509_PURPOSE_TIMESTAMP_SIGN 9 - -# define X509_PURPOSE_MIN 1 -# define X509_PURPOSE_MAX 9 - -/* Flags for X509V3_EXT_print() */ - -# define X509V3_EXT_UNKNOWN_MASK (0xfL << 16) -/* Return error for unknown extensions */ -# define X509V3_EXT_DEFAULT 0 -/* Print error for unknown extensions */ -# define X509V3_EXT_ERROR_UNKNOWN (1L << 16) -/* ASN1 parse unknown extensions */ -# define X509V3_EXT_PARSE_UNKNOWN (2L << 16) -/* BIO_dump unknown extensions */ -# define X509V3_EXT_DUMP_UNKNOWN (3L << 16) - -/* Flags for X509V3_add1_i2d */ - -# define X509V3_ADD_OP_MASK 0xfL -# define X509V3_ADD_DEFAULT 0L -# define X509V3_ADD_APPEND 1L -# define X509V3_ADD_REPLACE 2L -# define X509V3_ADD_REPLACE_EXISTING 3L -# define X509V3_ADD_KEEP_EXISTING 4L -# define X509V3_ADD_DELETE 5L -# define X509V3_ADD_SILENT 0x10 - -DEFINE_STACK_OF(X509_PURPOSE) - -DECLARE_ASN1_FUNCTIONS(BASIC_CONSTRAINTS) - -DECLARE_ASN1_FUNCTIONS(SXNET) -DECLARE_ASN1_FUNCTIONS(SXNETID) - -int SXNET_add_id_asc(SXNET **psx, const char *zone, const char *user, int userlen); -int SXNET_add_id_ulong(SXNET **psx, unsigned long lzone, const char *user, - int userlen); -int SXNET_add_id_INTEGER(SXNET **psx, ASN1_INTEGER *izone, const char *user, - int userlen); - -ASN1_OCTET_STRING *SXNET_get_id_asc(SXNET *sx, const char *zone); -ASN1_OCTET_STRING *SXNET_get_id_ulong(SXNET *sx, unsigned long lzone); -ASN1_OCTET_STRING *SXNET_get_id_INTEGER(SXNET *sx, ASN1_INTEGER *zone); - -DECLARE_ASN1_FUNCTIONS(AUTHORITY_KEYID) - -DECLARE_ASN1_FUNCTIONS(PKEY_USAGE_PERIOD) - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAME) -GENERAL_NAME *GENERAL_NAME_dup(GENERAL_NAME *a); -int GENERAL_NAME_cmp(GENERAL_NAME *a, GENERAL_NAME *b); - -ASN1_BIT_STRING *v2i_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, - STACK_OF(CONF_VALUE) *nval); -STACK_OF(CONF_VALUE) *i2v_ASN1_BIT_STRING(X509V3_EXT_METHOD *method, - ASN1_BIT_STRING *bits, - STACK_OF(CONF_VALUE) *extlist); -char *i2s_ASN1_IA5STRING(X509V3_EXT_METHOD *method, ASN1_IA5STRING *ia5); -ASN1_IA5STRING *s2i_ASN1_IA5STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAME(X509V3_EXT_METHOD *method, - GENERAL_NAME *gen, - STACK_OF(CONF_VALUE) *ret); -int GENERAL_NAME_print(BIO *out, GENERAL_NAME *gen); - -DECLARE_ASN1_FUNCTIONS(GENERAL_NAMES) - -STACK_OF(CONF_VALUE) *i2v_GENERAL_NAMES(X509V3_EXT_METHOD *method, - GENERAL_NAMES *gen, - STACK_OF(CONF_VALUE) *extlist); -GENERAL_NAMES *v2i_GENERAL_NAMES(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *nval); - -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(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(const GENERAL_NAME *gen, - ASN1_OBJECT **poid, ASN1_TYPE **pvalue); - -char *i2s_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - const ASN1_OCTET_STRING *ia5); -ASN1_OCTET_STRING *s2i_ASN1_OCTET_STRING(X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, const char *str); - -DECLARE_ASN1_FUNCTIONS(EXTENDED_KEY_USAGE) -int i2a_ACCESS_DESCRIPTION(BIO *bp, const ACCESS_DESCRIPTION *a); - -DECLARE_ASN1_ALLOC_FUNCTIONS(TLS_FEATURE) - -DECLARE_ASN1_FUNCTIONS(CERTIFICATEPOLICIES) -DECLARE_ASN1_FUNCTIONS(POLICYINFO) -DECLARE_ASN1_FUNCTIONS(POLICYQUALINFO) -DECLARE_ASN1_FUNCTIONS(USERNOTICE) -DECLARE_ASN1_FUNCTIONS(NOTICEREF) - -DECLARE_ASN1_FUNCTIONS(CRL_DIST_POINTS) -DECLARE_ASN1_FUNCTIONS(DIST_POINT) -DECLARE_ASN1_FUNCTIONS(DIST_POINT_NAME) -DECLARE_ASN1_FUNCTIONS(ISSUING_DIST_POINT) - -int DIST_POINT_set_dpname(DIST_POINT_NAME *dpn, X509_NAME *iname); - -int NAME_CONSTRAINTS_check(X509 *x, NAME_CONSTRAINTS *nc); -int NAME_CONSTRAINTS_check_CN(X509 *x, NAME_CONSTRAINTS *nc); - -DECLARE_ASN1_FUNCTIONS(ACCESS_DESCRIPTION) -DECLARE_ASN1_FUNCTIONS(AUTHORITY_INFO_ACCESS) - -DECLARE_ASN1_ITEM(POLICY_MAPPING) -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_MAPPING) -DECLARE_ASN1_ITEM(POLICY_MAPPINGS) - -DECLARE_ASN1_ITEM(GENERAL_SUBTREE) -DECLARE_ASN1_ALLOC_FUNCTIONS(GENERAL_SUBTREE) - -DECLARE_ASN1_ITEM(NAME_CONSTRAINTS) -DECLARE_ASN1_ALLOC_FUNCTIONS(NAME_CONSTRAINTS) - -DECLARE_ASN1_ALLOC_FUNCTIONS(POLICY_CONSTRAINTS) -DECLARE_ASN1_ITEM(POLICY_CONSTRAINTS) - -GENERAL_NAME *a2i_GENERAL_NAME(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, int gen_type, - const char *value, int is_nc); - -# ifdef HEADER_CONF_H -GENERAL_NAME *v2i_GENERAL_NAME(const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf); -GENERAL_NAME *v2i_GENERAL_NAME_ex(GENERAL_NAME *out, - const X509V3_EXT_METHOD *method, - X509V3_CTX *ctx, CONF_VALUE *cnf, - int is_nc); -void X509V3_conf_free(CONF_VALUE *val); - -X509_EXTENSION *X509V3_EXT_nconf_nid(CONF *conf, X509V3_CTX *ctx, int ext_nid, - const char *value); -X509_EXTENSION *X509V3_EXT_nconf(CONF *conf, X509V3_CTX *ctx, const char *name, - const char *value); -int X509V3_EXT_add_nconf_sk(CONF *conf, X509V3_CTX *ctx, const char *section, - STACK_OF(X509_EXTENSION) **sk); -int X509V3_EXT_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509 *cert); -int X509V3_EXT_REQ_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509_REQ *req); -int X509V3_EXT_CRL_add_nconf(CONF *conf, X509V3_CTX *ctx, const char *section, - X509_CRL *crl); - -X509_EXTENSION *X509V3_EXT_conf_nid(LHASH_OF(CONF_VALUE) *conf, - X509V3_CTX *ctx, int ext_nid, - const char *value); -X509_EXTENSION *X509V3_EXT_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *name, const char *value); -int X509V3_EXT_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509 *cert); -int X509V3_EXT_REQ_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509_REQ *req); -int X509V3_EXT_CRL_add_conf(LHASH_OF(CONF_VALUE) *conf, X509V3_CTX *ctx, - const char *section, X509_CRL *crl); - -int X509V3_add_value_bool_nf(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_get_value_bool(const CONF_VALUE *value, int *asn1_bool); -int X509V3_get_value_int(const CONF_VALUE *value, ASN1_INTEGER **aint); -void X509V3_set_nconf(X509V3_CTX *ctx, CONF *conf); -void X509V3_set_conf_lhash(X509V3_CTX *ctx, LHASH_OF(CONF_VALUE) *lhash); -# endif - -char *X509V3_get_string(X509V3_CTX *ctx, const char *name, const char *section); -STACK_OF(CONF_VALUE) *X509V3_get_section(X509V3_CTX *ctx, const char *section); -void X509V3_string_free(X509V3_CTX *ctx, char *str); -void X509V3_section_free(X509V3_CTX *ctx, STACK_OF(CONF_VALUE) *section); -void X509V3_set_ctx(X509V3_CTX *ctx, X509 *issuer, X509 *subject, - X509_REQ *req, X509_CRL *crl, int flags); - -int X509V3_add_value(const char *name, const char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_uchar(const char *name, const unsigned char *value, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_bool(const char *name, int asn1_bool, - STACK_OF(CONF_VALUE) **extlist); -int X509V3_add_value_int(const char *name, const ASN1_INTEGER *aint, - STACK_OF(CONF_VALUE) **extlist); -char *i2s_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const ASN1_INTEGER *aint); -ASN1_INTEGER *s2i_ASN1_INTEGER(X509V3_EXT_METHOD *meth, const char *value); -char *i2s_ASN1_ENUMERATED(X509V3_EXT_METHOD *meth, const ASN1_ENUMERATED *aint); -char *i2s_ASN1_ENUMERATED_TABLE(X509V3_EXT_METHOD *meth, - const ASN1_ENUMERATED *aint); -int X509V3_EXT_add(X509V3_EXT_METHOD *ext); -int X509V3_EXT_add_list(X509V3_EXT_METHOD *extlist); -int X509V3_EXT_add_alias(int nid_to, int nid_from); -void X509V3_EXT_cleanup(void); - -const X509V3_EXT_METHOD *X509V3_EXT_get(X509_EXTENSION *ext); -const X509V3_EXT_METHOD *X509V3_EXT_get_nid(int nid); -int X509V3_add_standard_extensions(void); -STACK_OF(CONF_VALUE) *X509V3_parse_list(const char *line); -void *X509V3_EXT_d2i(X509_EXTENSION *ext); -void *X509V3_get_d2i(const STACK_OF(X509_EXTENSION) *x, int nid, int *crit, - int *idx); - -X509_EXTENSION *X509V3_EXT_i2d(int ext_nid, int crit, void *ext_struc); -int X509V3_add1_i2d(STACK_OF(X509_EXTENSION) **x, int nid, void *value, - int crit, unsigned long flags); - -#if OPENSSL_API_COMPAT < 0x10100000L -/* The new declarations are in crypto.h, but the old ones were here. */ -# define hex_to_string OPENSSL_buf2hexstr -# define string_to_hex OPENSSL_hexstr2buf -#endif - -void X509V3_EXT_val_prn(BIO *out, STACK_OF(CONF_VALUE) *val, int indent, - int ml); -int X509V3_EXT_print(BIO *out, X509_EXTENSION *ext, unsigned long flag, - int indent); -#ifndef OPENSSL_NO_STDIO -int X509V3_EXT_print_fp(FILE *out, X509_EXTENSION *ext, int flag, int indent); -#endif -int X509V3_extensions_print(BIO *out, const char *title, - const STACK_OF(X509_EXTENSION) *exts, - unsigned long flag, int indent); - -int X509_check_ca(X509 *x); -int X509_check_purpose(X509 *x, int id, int ca); -int X509_supported_extension(X509_EXTENSION *ex); -int X509_PURPOSE_set(int *p, int purpose); -int X509_check_issued(X509 *issuer, X509 *subject); -int X509_check_akid(X509 *issuer, AUTHORITY_KEYID *akid); -void X509_set_proxy_flag(X509 *x); -void X509_set_proxy_pathlen(X509 *x, long l); -long X509_get_proxy_pathlen(X509 *x); - -uint32_t X509_get_extension_flags(X509 *x); -uint32_t X509_get_key_usage(X509 *x); -uint32_t X509_get_extended_key_usage(X509 *x); -const ASN1_OCTET_STRING *X509_get0_subject_key_id(X509 *x); -const ASN1_OCTET_STRING *X509_get0_authority_key_id(X509 *x); -const GENERAL_NAMES *X509_get0_authority_issuer(X509 *x); -const ASN1_INTEGER *X509_get0_authority_serial(X509 *x); - -int X509_PURPOSE_get_count(void); -X509_PURPOSE *X509_PURPOSE_get0(int idx); -int X509_PURPOSE_get_by_sname(const char *sname); -int X509_PURPOSE_get_by_id(int id); -int X509_PURPOSE_add(int id, int trust, int flags, - int (*ck) (const X509_PURPOSE *, const X509 *, int), - const char *name, const char *sname, void *arg); -char *X509_PURPOSE_get0_name(const X509_PURPOSE *xp); -char *X509_PURPOSE_get0_sname(const X509_PURPOSE *xp); -int X509_PURPOSE_get_trust(const X509_PURPOSE *xp); -void X509_PURPOSE_cleanup(void); -int X509_PURPOSE_get_id(const X509_PURPOSE *); - -STACK_OF(OPENSSL_STRING) *X509_get1_email(X509 *x); -STACK_OF(OPENSSL_STRING) *X509_REQ_get1_email(X509_REQ *x); -void X509_email_free(STACK_OF(OPENSSL_STRING) *sk); -STACK_OF(OPENSSL_STRING) *X509_get1_ocsp(X509 *x); -/* Flags for X509_check_* functions */ - -/* - * Always check subject name for host match even if subject alt names present - */ -# define X509_CHECK_FLAG_ALWAYS_CHECK_SUBJECT 0x1 -/* Disable wildcard matching for dnsName fields and common name. */ -# define X509_CHECK_FLAG_NO_WILDCARDS 0x2 -/* Wildcards must not match a partial label. */ -# define X509_CHECK_FLAG_NO_PARTIAL_WILDCARDS 0x4 -/* Allow (non-partial) wildcards to match multiple labels. */ -# define X509_CHECK_FLAG_MULTI_LABEL_WILDCARDS 0x8 -/* Constraint verifier subdomain patterns to match a single labels. */ -# define X509_CHECK_FLAG_SINGLE_LABEL_SUBDOMAINS 0x10 -/* Never check the subject CN */ -# define X509_CHECK_FLAG_NEVER_CHECK_SUBJECT 0x20 -/* - * Match reference identifiers starting with "." to any sub-domain. - * This is a non-public flag, turned on implicitly when the subject - * reference identity is a DNS name. - */ -# define _X509_CHECK_FLAG_DOT_SUBDOMAINS 0x8000 - -int X509_check_host(X509 *x, const char *chk, size_t chklen, - unsigned int flags, char **peername); -int X509_check_email(X509 *x, const char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip(X509 *x, const unsigned char *chk, size_t chklen, - unsigned int flags); -int X509_check_ip_asc(X509 *x, const char *ipasc, unsigned int flags); - -ASN1_OCTET_STRING *a2i_IPADDRESS(const char *ipasc); -ASN1_OCTET_STRING *a2i_IPADDRESS_NC(const char *ipasc); -int X509V3_NAME_from_section(X509_NAME *nm, STACK_OF(CONF_VALUE) *dn_sk, - unsigned long chtype); - -void X509_POLICY_NODE_print(BIO *out, X509_POLICY_NODE *node, int indent); -DEFINE_STACK_OF(X509_POLICY_NODE) - -#ifndef OPENSSL_NO_RFC3779 -typedef struct ASRange_st { - ASN1_INTEGER *min, *max; -} ASRange; - -# define ASIdOrRange_id 0 -# define ASIdOrRange_range 1 - -typedef struct ASIdOrRange_st { - int type; - union { - ASN1_INTEGER *id; - ASRange *range; - } u; -} ASIdOrRange; - -typedef STACK_OF(ASIdOrRange) ASIdOrRanges; -DEFINE_STACK_OF(ASIdOrRange) - -# define ASIdentifierChoice_inherit 0 -# define ASIdentifierChoice_asIdsOrRanges 1 - -typedef struct ASIdentifierChoice_st { - int type; - union { - ASN1_NULL *inherit; - ASIdOrRanges *asIdsOrRanges; - } u; -} ASIdentifierChoice; - -typedef struct ASIdentifiers_st { - ASIdentifierChoice *asnum, *rdi; -} ASIdentifiers; - -DECLARE_ASN1_FUNCTIONS(ASRange) -DECLARE_ASN1_FUNCTIONS(ASIdOrRange) -DECLARE_ASN1_FUNCTIONS(ASIdentifierChoice) -DECLARE_ASN1_FUNCTIONS(ASIdentifiers) - -typedef struct IPAddressRange_st { - ASN1_BIT_STRING *min, *max; -} IPAddressRange; - -# define IPAddressOrRange_addressPrefix 0 -# define IPAddressOrRange_addressRange 1 - -typedef struct IPAddressOrRange_st { - int type; - union { - ASN1_BIT_STRING *addressPrefix; - IPAddressRange *addressRange; - } u; -} IPAddressOrRange; - -typedef STACK_OF(IPAddressOrRange) IPAddressOrRanges; -DEFINE_STACK_OF(IPAddressOrRange) - -# define IPAddressChoice_inherit 0 -# define IPAddressChoice_addressesOrRanges 1 - -typedef struct IPAddressChoice_st { - int type; - union { - ASN1_NULL *inherit; - IPAddressOrRanges *addressesOrRanges; - } u; -} IPAddressChoice; - -typedef struct IPAddressFamily_st { - ASN1_OCTET_STRING *addressFamily; - IPAddressChoice *ipAddressChoice; -} IPAddressFamily; - -typedef STACK_OF(IPAddressFamily) IPAddrBlocks; -DEFINE_STACK_OF(IPAddressFamily) - -DECLARE_ASN1_FUNCTIONS(IPAddressRange) -DECLARE_ASN1_FUNCTIONS(IPAddressOrRange) -DECLARE_ASN1_FUNCTIONS(IPAddressChoice) -DECLARE_ASN1_FUNCTIONS(IPAddressFamily) - -/* - * API tag for elements of the ASIdentifer SEQUENCE. - */ -# define V3_ASID_ASNUM 0 -# define V3_ASID_RDI 1 - -/* - * AFI values, assigned by IANA. It'd be nice to make the AFI - * handling code totally generic, but there are too many little things - * that would need to be defined for other address families for it to - * be worth the trouble. - */ -# define IANA_AFI_IPV4 1 -# define IANA_AFI_IPV6 2 - -/* - * Utilities to construct and extract values from RFC3779 extensions, - * since some of the encodings (particularly for IP address prefixes - * and ranges) are a bit tedious to work with directly. - */ -int X509v3_asid_add_inherit(ASIdentifiers *asid, int which); -int X509v3_asid_add_id_or_range(ASIdentifiers *asid, int which, - ASN1_INTEGER *min, ASN1_INTEGER *max); -int X509v3_addr_add_inherit(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi); -int X509v3_addr_add_prefix(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *a, const int prefixlen); -int X509v3_addr_add_range(IPAddrBlocks *addr, - const unsigned afi, const unsigned *safi, - unsigned char *min, unsigned char *max); -unsigned X509v3_addr_get_afi(const IPAddressFamily *f); -int X509v3_addr_get_range(IPAddressOrRange *aor, const unsigned afi, - unsigned char *min, unsigned char *max, - const int length); - -/* - * Canonical forms. - */ -int X509v3_asid_is_canonical(ASIdentifiers *asid); -int X509v3_addr_is_canonical(IPAddrBlocks *addr); -int X509v3_asid_canonize(ASIdentifiers *asid); -int X509v3_addr_canonize(IPAddrBlocks *addr); - -/* - * Tests for inheritance and containment. - */ -int X509v3_asid_inherits(ASIdentifiers *asid); -int X509v3_addr_inherits(IPAddrBlocks *addr); -int X509v3_asid_subset(ASIdentifiers *a, ASIdentifiers *b); -int X509v3_addr_subset(IPAddrBlocks *a, IPAddrBlocks *b); - -/* - * Check whether RFC 3779 extensions nest properly in chains. - */ -int X509v3_asid_validate_path(X509_STORE_CTX *); -int X509v3_addr_validate_path(X509_STORE_CTX *); -int X509v3_asid_validate_resource_set(STACK_OF(X509) *chain, - ASIdentifiers *ext, - int allow_inheritance); -int X509v3_addr_validate_resource_set(STACK_OF(X509) *chain, - IPAddrBlocks *ext, int allow_inheritance); - -#endif /* OPENSSL_NO_RFC3779 */ - -DEFINE_STACK_OF(ASN1_STRING) - -/* - * 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; - -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); - -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 -} -# endif -#endif diff --git a/openSSL/lin64/include/openssl/x509v3err.h b/openSSL/lin64/include/openssl/x509v3err.h deleted file mode 100644 index 3b9f713..0000000 --- a/openSSL/lin64/include/openssl/x509v3err.h +++ /dev/null @@ -1,164 +0,0 @@ -/* - * Generated by util/mkerr.pl DO NOT EDIT - * Copyright 1995-2021 The OpenSSL Project Authors. All Rights Reserved. - * - * 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 - -# ifndef HEADER_SYMHACKS_H -# include -# endif - -# 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_I2V_AUTHORITY_KEYID 173 -# 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_LEN_VALUE 174 -# 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/openSSL/lin64/libcrypto.so.1.1 b/openSSL/lin64/libcrypto.so.1.1 deleted file mode 100755 index 145bcc7bd09ce5249e2ede38e1e80866cc1db133..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3394496 zcma&u2{=^$`#12_H6woXh*qk^j4SH|y{1bR`k|J%@cAvTPgn_xQhacu4m@Cw8Uu zb$?!8v*^!p@~;$};{VxqrSx@jIO1E_>(6oDFfJ{ygA{!-R%#G^rOm@g}t(d$Z1)c$ixYTe-f;z*9@CTDs z&JfCQ4hQoIlPB3ny4ggO z@&$x=5MRc9WL{o>qB-L&*IDiq-j~e)S+Cv|)IPLP7+3S0$=-oLC|8 zCL-ZHo+BZ_^1j@Yl31=Bqt!C4n<B-vEha7;TnX2r zkGi~LZ|-P*ERVf!iN{6-@?&Rr3h|+2ds%lI#zbKxpJ`+sD}`|w z-^AmxJfaz-F(BGlz?EOe=czNsgc0%!g%UHO%hQPAzCBF1j5@zaXv{C>xRW}C@pjc* zMkS+Py{UTGoV&C?+ak(Du#>@X4%PVaDXk3U;ztIoIGO*Du& z)m_Lb;G~L$$*OX(>Xmgi65n86Wj9$FK2dzf(e~x;<;(WuHj=Ti136YUx;#^1o+3}u zN2^+a?>J2-$dB=3OuZGkPYI8YKgl5>3Bx;a51D3*m~ly;i1a1gV7_h&;qiz*m+_w0 zotuzhEbCWUc`232l%!V4VxI zt0Yj&Bf1ifn9B&G9SK*S>zWlMuE(uTGvhNsBvmmmI!J2*hmj*Cee_H#`F!$d8YATK zokc`FRVb_J?5;hK&)p;8q{|CTxPc~(L4+8qkL6#xNCX0bOrwAZj>`$u9Y;&nGs-nW zS6_93f~-j%k%Xx$W?s@9{@7QZ!QdgA_jirh*45{WMSh@!) zx{ppUEq0g42z^M{rQ`Udw4A0ZG*$4`{otHWs-l(n0*lQ3LOIK58+^t)I}?dL-%`R& zP7-sKg?SRLS~6ic3Y-D8d@_xT`xe)ppN@~O5O2ArqUD52;S$HVP+ze# zzfnPwN}O-%jAz6=Z7z}EHIP(OD~XEG*wS4&S=%wX84t)3kzS&Z>1m*=A*brglaL@q zCY9HNqo5JIM?}&Yo`SJy0_U)mV2rS*K(>mHo9V`t3E~jT1X(;hDM+IE>MlXJWepi) zHG#xY;>@1n$Vjk~sFNt}_Aq_|VPZ8T!TAy)!2{g@j+V$-GF^oT1%pP*NP-xCtboY< zIUm=U@=euwM5xWhyFQ2;s7fTM0k~dBhT@LZSit@ zO>iAY0iPW_BG2dWxyp^PyvkI@k>G(@g0u2CIFtBtInIFwWKv#tC1=4jt|?!ZD9YCD zNs<)=T5yjOj!k8-390ub=}}fuq*6PJL~{jvNw4aJ2J<8F`l=)<|H!mh9`~s{kMKk% z1$@E4t>qpzlkG-r7__*7yi8Ab=gu}2;L%^uSj)5U4~y;HYv=;!Kowu2sX^+@6ldcZ zmoR*HozdOhP2I%|-rfQ{;z{_j`0OX@vSF!*jZ|0a3N$1^9Eni(MxMOWdVM01AIS)V z2ITRlnJ`8IM!;d%FE=E_eY|(jBwtTsVy`R;lgZ->9U0#BP$J=J@Pn#|+?gYL`l&Oi z5}|*9jTXl-rkDu*NK|TGoJ1&4*SNHtNZj%0Q)4V-2ygWAFy2$e?S(en7WH$y0XZ9Z z!dmw8f@6$#8gZ2fO8sScgv&5wOj_V*#VS4r_qBLpTE-_bL^X!!6CPI>#9Kfto*9b> z$r5Vuh#(|REZ7rVCpRNXYpgCF12aVU^I8y&i%k%(a^_>g;m8VvxUcI6q)M0$Pc4bM zIG?X8ATFB(#`yRi7Vv%fLWw|Vq$}Yu3XrNbnRis6g7>9AKoa!Vb#`FTw7Lp)mu9y>pk6^S* zYyyLOm5Z`5{veuRmC;VAx*9G#5`C$ULNw!{h4-^ifMO998LgL5QaOCos1b+$M7kFnn^D8A8LcG7p;9@1yQbU23 ztU#0 z8(qm!*1+1rmu!_KRvNm(RGw3fg0mw&pCn|UKqRzO=JQh}dC7zjk%h0o-kKqNXD&zJ zu1oZ|Jf}M2jk+Qgu~39h^Si#pQLsPSJt2W_UMbX=aabfUBMMCP`!OnFLk&Db=BDn_(H2d17E%kAwdFLUy&m}FkPrYQfpM~F7@@DdEDz5pcn0&dx~?)Lh9hz2Dzk62sUJRt`1mZF&2agWSfZgzB*uhTSPIwUli?NKW?#L$Ku&g) z?~MF?30k~7y(C*73pw0HiJ~)yeOgrs!~;+oo@8TG1RSxiEk2I<=NN?olAb2fVsxr; zPmUHbJPwza$4!+)3wRl+e8T4trc$7b&o*^Q>Rv`Z+Fqeqn5S+@jAO0dYUXwG#g`;I zWr%?LNS-096uEsW4e$)4>`F9}TolZ>#S-xy4S_|YUqFz7aKD8+Aqn{G2_hQ&L&g@q z#?^9*ZAg?09?K;$B;PrV2#fH+6B4qHa3x}IekLa&gPSHG%yMtZVZ~&3;QQM@AwF6HB;N0&7!| z%^*@km;`(yMTB=va1>u45b=4@geRxK)8cUzWEGo<#ZzJ46w^w9j540}j_IotuGl6v zT}cunAwm&xBtbTni-@{oH@=oY!pN!PY2IBT;Y7*c^=KtDr&T%=IlnrAu}EIPHMQmt zi3MX%h$*pLEAe); zg*zTW1;W@MMo>>=gyCEd9>wQ93kv95NV5pJ zhxTmjg?(@U4gy;xPzuM`fz}C{Wyn*sKaDJ>{aIuM?JJQrw68^;hYNJRh^&VOIgMHx>Uivs-1lQ$Y$q z12pMQ3)u~{L5J>ik$Qmdy%0mXV{gX@y%0oT3T9vdY+2D{`(EgKLm%i1Hqa0H!yvGO zAutq%!EkT@wiu)soWL1ezzsaW3)u3e$@V_9ABpsp+K)y*hR*&p189y#2EurlKz9>q zPNF#(ITeCn8cc@}U~3l5*~n1Z&!Nd4pGW%z$Z%Lh=LnkYIczP(yc||a?N^~+4UrH< z_p!)$+9%RvuTMgs3>)b#4VgiE_V~YR^M5(Eh3>MDTVWe)hdjs!wsz8F`vTe*B8#Q= zd!>5zJht{>w;v9`K`4bI&{apJdUkhAYCb{xGstqNkUGYmTSez; zb+`eyfUVoeJG8$?lifc+{|K6(h3=oye1?2U`&TqyBim`uUf)&kq;?-@-$C;e&9BJs z@B@C)T_?@1+v!RU9@*LABJqTQuNwZ&vPe1L)0y2WqE`ZCP?g#XXs?dc1TDZf7lM#C6j%bzCO2cRDd;~)^m!~d%$&|{NmPDW1sFXsngHyuJ?Hq3#! zz}7tEd{_VrVKH>oQra&^u7H)W3Rc5fkgiC~5{QNvh=q7yD-oFl>*>tyQqXUJR7it# z*aVrd8MZ)IWue~+Ij{|KVLR-EU9cO9VIQz{0C|x1hiD!~mcUUsL3d>|Pa)4h1)VFA z)o>mzKpn7k5m^rnbY^##(O-c^xGJ@0k6pujo$hWRZ_@rY@*do$Gkfj>+CM}-f+jjQ zBU|7JJcVb#)^p?wcm=QF4ZMX`_;s`jphtK5G!2l3U0uwNUo?s4L zWre;M^oBmr7i^&)41htAY z0E~q|7!MO*B20oHm~MKtwyeaNIFYsM$wF+ z$)3ATs%Pi;f6a-Q*VA1xGKKaVk*SbQ=S|2A+GirSKo(@v9edkswab<2x6?i! zxf6E5ZYYEzz&Bk;F|f4{xu5n2kO$!~lt3x4brg9Fj?=jed5ZSz@iVlqklL|(wkokZ z2Q_d3E&^MZke6wH1$iBA(D^3v7VX({@6i6f)b1hrM|6Hd^C|KL?cdOBrODn-JNkE0 z^Lz9k;3M62AV1OmGtIBaZ}6SYKajuRH*~T){7skx_%7vt3g6u%a)9sF{;%R=R-ijY zq!QrU69nJ0B;BB^w9)I(SyyVWkG?w?(4C>wF(GymF`yn*h>xZEq4h}E^7+}khrZdtNJn8I>90`7OX3rgs-k;9n zkby7(Cc_k%4l|*vX45_tIS1y!0tkZ$U~4hWWys~Q0#?E*=&Cj7*U~vsYR?{*V2+`? zIAlB|KqB2G(@dec5t$B~=$wJv3|kx6u}-ShJCOf4gy<; zkcZ(29HqPCG}+@P(4T}dI3=||jlLYJpc-m`ty<&-sH1ZO&C4{eAaBr~J^z+e&(60o z-=VvE$OrI<&dtcj&;rlt?gjD3fYQy|aYWD&CM>=;PKhgdR@*C~h>wcjB zN$1~e%Cg)4DH+W8(b1ohqlur$5Cz&R(o{mKfEow@-{<>N8Z^7n)JE#iUJt1chF}Cj zV9OY3LVI>LMQ=vuo=6MY_d@ojJ$qhX+S?%eL4OzsgTM~#VF(O`VK5xnVvu6mJ0hLI z1zf=$Ji!a_bAkWVNc5w?kM71G{b4MOgFu)7Qy>U}VLEhG2>O{Yo9^Z!=h1#X%>~Fs z5JBg~$fdMrZ)X|$<*)))!fIFxkq`wj5C`iZ9=a+4eWKL79(@XIq`OpPI_)>n?7DUf z=B;#>gUp5PkO%qDRXb^4K(mnM9;tJR(eHF>)a*iD5X2$niNgZ3dbXCmjoTv$kVVaRY;L}&IEBc%Gp=$FB2SR=KM zL@$9Th=Dj@E1qUDaszCHR7eN5Hq*?a$?mez=fF0)%SGnFPCB#a>_WdA_CPW0gM+}< zA)1GgB~S`S;3yn}6TsFKs1p6_84x3TmJZnxF;Rpae^3DOkI!5Vr4TQ*2r=tt)P zNIMt`!(cdcl>>SP#NbT#E=X7K0B`VtQQ!-Hz?MHUfcAmN2`~vJ)7?~>K{Tf$XFv#q z!W>|09&#ac{Tl7x?f<-7M9*7{Tn5WwHQlYH8HtR77&^xy<6s>m&|TLpCSp#4^^ii3 zZ9t~do;@#(_8C&UuIo2rw*|5wTk3cY`fYU1MQ(>3bk0NWgk5wlK<=h}*X^=dgk3T0 zh5c{%!cDjhY~7{F_V>|0 zfXC1RPvIG`^&I(<_J22c-opGE-asoo)`o0{_jLY1^CQg;=F<5%zgQwr$ui?4r5nWhR-mG)gHs?iz0_w=XOpIK`B>l`i2-RMq- zrY=&C_WDQzFaioJ^H~ggzkn( z9UD%22dSNy_Kq~2koXDx|0-8HyCL1d6THA1MnYGOLhlD-=*}M*0AuMq4jBj&VG`Z3 z*G`t|yKZX=c0p2m{P>s5fDpQyNplu*HiW_)x|@q!K>ILcI4q)b1ab-OS0Gox8al5< zN+1eiAs*ODL?%Hpq`*eNFH7LZ`hSmiz1)O3<6k@W*k3m3P&mJq0noH3ig=26W%HR}qRR#J=sFvE*(7qN~C$+Cf z-vF1Sc9+pN()lX#8eE5)a2wdVgS-d#;Q>5^N6=MG=v&~K)b2U@7w{5Z!y9OYHejnA z`HuD^1c1X4_UXQVrL(V4x@8@&&mM5e;|KBC!INp_&zT1Ko;ac9{8XD zil784paud^2My2!wzO#eop8UytV4HtNCPkgBf4YH6Vl$8rU+>&b=(}i1z1Y$tZ3g0 zX$`%hFWuQ9`$2yg2!mk=IKT*S1SfEYu5zKhD@`|=9!PK6`_N>s8HL`L&i*t5kby7> zCevNl?Xx)*yC9eb)9LY<$XT>!&k3dd9OPV>2lMHUJ-z__B3J^;>3#)rC9J0N8su8q zOOR0zLud9jV$rXIcu0gKNQM;Xs*UJVAq_HNGh_i<*)-Wc2mLnK0lT3PieL{ELs#vk z{eI*j+8;(9g=2I+fjkLibY`zTCDpTYIp(uaLHCu&bF{Ca$)5M`s>QK7xJb`wKwgG_ z;0j!YYj7QI!foiPJLvDy`987RiymeAc&t%}{@v9p2GOar%lh(LF&@J>$pDV?ovAg^oDd6B8_QpLX*AD6ulW(LT~5`U1f{D z9}J+oK}dTTOlS7IA+#S#bC}ezuG<+wcaAijX}Tgk!Hdo#k$y0m&g}JL(EG!9m`L}N zX|l(sO7%gspN54e!4qI^Y0nBkJ9-F@+cgKQ*?J4d4~4v z`Df8rKqcK(A**SB4p{@WbY{;#kNyIkFCy!uj7Sd#o8KW10 z37ARkd!jd&nk~@xrgI;feUY}%4+erANS8h4!E`qq=>Q`@49?&RZr~0c;04~mmJiaG z_G6I#Fc!wq-QTnR`^)iC=S)T)1T!E6W&&HYk#k`Igux<+fW@#B*ji4L?N^{*1*>5# zL_##gKrF0-cu0UmU@L_t+iyU>kAbPgVS&Z%Ao=(p&HHsTeZlGP!A1o8U6vb8j;s& ze}g8wzb)0@k?QZ!{yy>nJcLKk1kLamTHpz=^%VIGp40gS@-@7HHh2dg;4^%IZ}02BUPmKYUl-^0o_0wbU+vMpgR~s4`9ofrU}v< zEWnEHdeO8-_Mv@Wq%H0H(PVF@KkWz5v_sm{elT(f41?ix=YSkRd-i&U_D)D=a0L(W z1TSFA8|g>;zZ*RNNzG%>kCmF)bMP;Y$pn}PQ|PfEn!z;L^QNJn4l|^7q3Gw(c`kCE z)Uo-rUx*BcMGygtfvqJpmm!zKDu@ILL_=4_qK~I@0y2sA>uIv*C8OU!=Tu~x)UizT zn_&yxWh1vj4s548_BQg-?}S}Y0K1_Oil7+S+J`(q`-3z~kVk0$_bl8urRI}T{b}@P z>0E)Vges_^JNEio+FzhqNAn``GBm@{lW z1)vU^&<(VKEghsT=+XJ__U}u5shy!zZ-ib1CUn;mX%3cP1=i39y2^(3wlw=8?ZBSS zgONjM&t5YW{cv!gyAd=Qn(R4Z^p4;J&fp4N<$>M{MuH!VhA|KT|E{svjidYV$O$kR zrodF_svz{iQghdy&FR>Oz$^%bIWQOI!$Jsy2v`iuU^z(F3d}3%ZWVG3?IUSQka4gM z5+D)SN~XC1xe?MJo$lDm>3t?aOJh`?IvKKvvSe3Rw*o=**tSRvqSgXn@P` z4>ZDcxB)le7TgB5?jY~e{t-=f-$eTsoxjukMe{e!PBsPXE&Shwf3f?gWRN`C%Od4z&qpePGN^$%Xn_vkzY-vN&>akb zEkmRbL|_8=-x`P+n1cm$RWJ0`Qgd&qo;|0p)NF&^7Wzr;`lGi4d%7D;a|liLHin`f z1`c$`An{+Z;NQEmM{&PKI)e+H*_|tTckqzfc}w-a=>1>}-T5N}U@VM-Ko}1bfvrh2 zr_c;S2GjoU8Gm0+!*2S2+0UT6naEiX3iDwBu(c2w4vXl#nC4QN%aF@y|Mv=f9gTS< ztfKqXG}qE(&x=Gap>s6N7-TH%yKXB^YL2IU0x}7bA%*TXBGX_KWWr|1f~}AX+hGUf zK|XZVF7yRbbD>nvp0fvYG3^WBGd(pWMvM<=s znLTcczQ5Ew5d9z+0uFRPf+l-DgI-K$N2C)tgA3iU=eVJF2T$+xSYAx+0$Y_XxScn6**3o491llJdlVJm$HzGGd24un(U@IG$3wf}U?sn5;j~Alf zL+4_t{eJWZ;2<1^QaB37;5eLut~!nW44uo76;KJ)a1NyFJmw2f2la3nhD}|0|8`GH zy%kO`nuX7E>a)fVQs3b0^3HaDtK!1?vi9<6efE0hEj#qdv%_z|gpeO=%&^{|#f5h}zd+c7XKK+sDm|Q*J-iE0)+4YMz>^E`L?4xgU<59_D+eg9; zzim(V*Y6pE<9c2leoV-lI<->@E#Id6R5e_dx-|QGjn%=n6>U$QtYiAr53{&=`}wT! z8Ot5NJTq38Z|E4udwJiYsNDEhIdk*InlmSlecwA=r-|He@Axq?&}rhnw82`onLXR5 z%{Fv3R+@k2=fqHpfdjmr57}sOD{^R|zJuxG_)(49=j6>fqI~wUiEYoL-HWV5dpnPf zym!d#))|L6+dhrA*WdDO$GT4^zwXuFJa}X2ypZzFPb);{0}nh~sO-q^H1yH=_WXOh zD@SdRnf)zAx8S(vx;KO_y%#Pj-=R8l{dJA*UU&5U;z!wNEf}o2cgXL=f=n{Z#e96X z#X7@`4)zbI5G;SI5_Ypurtj7*UOT*%ul6iI<{&rvpu>s9-RhfF-0gbzF+A_tS~6JS zz1NB{RbvK^sW_k3)bXVzxu{`6W?!9on+1t=0Z&UzV^;fjg!l3}TeiVyb?%@6s|4-a z{LXreAG|$rn{dUM(8V$F1C{qKyHFP|x*)n=9ddR4oZ%5h6H6wk9ECDE$&lO$?YTPyb^eP?`dqLb z**CMLNN8^3_A1x{KPr(C`Zq4GojR%Vt=po0kG?z*llcz8YX>c^F$q7r{71yzC%S`z zjkdf~HTyig^a!`r>O-LKTmC+Gw^6UxsHv|uX{)(D3fK8T z#cic#=^MX(KHm4s3dQc1w13`E7&c7j-Hi|Pw6r+4Gi{f;Uhw<&ZK+G;ijCcmk9+mp zt8+$t+7!z{y()f&)W_<5Kah)$cX7;>@Q+r3N4rPxfS=HBP`gLm=KG<>JYM@= zve$=e9Jgx1kFA|2wq(XC7Ho|2E~|?mK~Ar4``jFyFS$QB{Laga4F~-{I`+S5zdXUg zuh8>@;j)ic%`UdCh(8+~`+3NT*Wm|t4l4aw*&0)1AHKin^`>p^_l&<78^vGnU$^le5A7H%+tG;4cF}d&!QV*X_D}Ka=xcZdrv6|2ow7g=Mc8`G=$X&E1{gUGKNA#Bkw@=H`%z7yIfTd@)KZ zxmV15=cFfgPYzfW?ex9W;hDQ=-Q7B`j2`CQ(yuIvoiFTWkTb-bqw1c<6S`dsXvx1V zIH;?Af8yo%!5f`_H>kfeaPT(0sde7`NzVT5?cX=M{)oBY-X7D1uF_?E2(~hZ7gJmZV2p zxh{~;50Gz=O)2`><{_i7>73u^uz${r^4B)K+@{?T)o|$S<)JUM`^QSsKZSOr%}$#n ziW+EW($1}NYd1M1SE@O0z}?=39`1wVdw!ZP6E3G?pAZ_}ePh(JZyyWBkGW#)6fr0F zcjdXD5d~T&`qtGKNBYRl-2Xe)L8bbgdVyuC&Z5h^HW>*LZh58a%S~4kogHkWQSdE& z(y_>YT5SzpsAO5K*F8OJSjwsXR@?PD1N}#x;qI8Nd1?8gxVLZO8vHVbEWPG=j(g*n zkxa!9kX`#=)wV;B0JAtuQ0iuV|TJ?YRWwu zd8VK3ryatJ6*>c--*2tEXKVcZo}ksztI+za=4HY5z~y~rrEKW+Ch$_Pwxe4O=N|vI zV9e6Bp6b_I9OP1p>>Tz6y@;ss9JttY)u0uwJExY0uS4G1zh7Im1hN-BJc# zozN?D#Dc0_Nk_hJlC@rQET#JW^=PBSC(5cf-R6Irn0Q5LZGd)|vgne7h4|t?&tLw- z-zut%OKqL6v@bW~yz`A#t;h4yqJIvZif4wGExWAVm=U+X zQ_kyGwnx*@){Czf4o%usnt3R2^p)OfHM&(*se4>9o*dplCWn2P>2s)8;TB$_(W8c! zZH3yJYfA2(blzj=s2w(SxO`Eo!j1yVGjbQsFRF`ka;lFCU8B|7{e0Fteu~WY@_B+c z5jh!-H~C+#U9(ni-4N=MZ8Y|J@Q{iQL2X3znf3#dvh|+zKi%)N(=?yQ!2w%ZTe~Od zSUIZi{rS)3?RloTPt@O>c*gN=*%RMunsn%f~KG`=|FUTJS-zx1odRgyy%1A}ER`Q==#2##HOFk40D zz)%J6XB9dZHCLp%O}DQ1tO3^L8f5o@{1y|368M{O#C)hPf_P)rz z_N&K%*~OKC4h>6~51IaJ(jzR4$*&jdBm35@Og$NHa!J!#@%fikr4Nd&%id7oAc)LW0mO)Y2EzYFzPd;0RxqiX8+Y8paScPHQ5{?%BY4iB@2wBM!~{7VYkAPx^wWM{@bR&e zp4aqn3+Q_=JLBPviI1v26qbFxx%P>Y>BLsA;D9T0uTR7AWgA-6Cq|rhj2mw&ww9f( zr#|q-kM-XR8(+rhSzZkGvE|w*CG(XQSJ^&tX0H zU5J@=^Ni9H)phF%zRL8y@u0`T4vo6S%H!W2zOMh({gwCN!uJXjUQ0X{&6sezZ1`$Y zI#$mx_v?}e=Ns(J&gyiYO}Oi=F@n3O#oWp}q%iIF`h#Ov4=uQP(tDJbm2uUH@J&KN zdbV}onbfvcEie5IV~hQhTWjrNW_%1EqtxWc;X2e_OL@7E)LJc6*z(IgzvaUexs(+V zG0h(;!k_2h+U>o+hi^j;4C%RUU7l`ryVjb_(MO^mdruB|*TZP5>Tt&kg-^=9H;ta~ zWUTSY2jTr+#!PlSreRRN+AUblXy>r9xaG6nKS_8Wmg3ld%kln2#lHk^M{HxfG<8Kr z-K)mC?Uqc9a1A4#2e#&H=Hztb731Ssdj0n8RWr2R7p!QW_L-Sea70GKZH43YmJLT@ zUtaHNU}iPrsH)Gnq-|bKJu4sH+f^}gRg>j`@hL%_Nz*Yy(?44-m!;*EwBH&T}CIQ;V>@x@28{0lFP81U=(>w2F} z-R;nQHRVai1~n@fPn@`N$Ir3e_U-p&j92^|w*0!soATMeWb%Vn z>MqRI4bzQKs1(+<^i%sHt}r@L5MeAx=re2e)aq2lwP`g$+K)_nKbjY;5Ymsc{KNf& zipQ+Z?q0IOMs@4Y$n)>Yv~6+^?3!XW@Mm#NqNqAeFa0o6^5W^qzE65ydlJ{uWa_;{^~9l?)%(h~3-0eaFz(<{ysfKV4_*AF z?LdlL$cogBvu@1%_Veq;PVQbgubaJ&gzo6}G*M~&pnk9KJ7+EFdp2v7i#9i4;iNkS z+M_y$bu7Ins*K{<-wvG`ccW0}bh7sePI+4IL46N!e)JzcrD*WE>&2_Pe+;h3x-jKX z?tJV0SGK7w{G4~T+pm4gUfqhilr^)&+;aN17^4Cw@9ePa^|y^i|C;tyM*m}7@4f9M z3ErOTuiEuXd;fDtpSn)1d-e)W=S&8kpE2@&r0jqhA&wj;>mLdWb$)64O$fSMzw27X z)che6IsSG*^CrB|RBW2Oq`&de`CpT_k1T%|6uN)IAUm6#{nVSw>l3$sn}6k2@9gIW zpA%IgvxJISRv|fkcMSLt9$uR>^6>t*vxbzf^V8aswK`3_W_A0b<7Q`!)56Jc*HP^v zkF}}FZ8pjqVpHBQ4LR!vH{_}Acz4I;QSdmCk2nA60mp}>k3TLmH1RTeqwM~B7an zpWRJ*hOR2QH)c+wvPt+Zk;eENF26#C{#@?WOEJ5}Pi4qb(^VrLE3CTpwO)VN?Uakz zzrH4n$V%Dw=K*>UxjYoH>yPUqSLxFIx*`B5R*S^kkznk&x8jv4=H?We%=o}d27 zUpTpV*4=Qjtf16rapRoZkcNtNQl* zv?)+`*Ga3HHX|R)PgKnrBQTKp7CQIa?KZWsYbVK`FxG4Pk=5<|IX|*2VsupH_~<*9 zS4@nu3~e^9%@SWx9e>F1_LU_)$o@4^i9)^2MYobihz@$o6f|CQdJ$W^C$(rlUs*=Qn+x6l_FN4Jrb%*Z13{lGwR_OIzD8{g@x?Mw}ja#{O8yiftinMY##R zZfG_Pl$>2Pqb^rAQ)A4~rb5ZV;|3F&@7ia+(zTiv?qqP(@Pygg8okx_Rf3>hhBx(= z?;@Z2g>B!p?wHqy!`2bXvx_%B`x&Ybzou2MU--*e*2!Ma=lhmVb`77sv3>C4fp@Rk zh_xDO2mEvV+oaZr)GEad2M%r#$KTSh4w)){Dt3Re^F*hby^4KHDg+{<)}!8|Dn5RH zzJ9H`Vv1qNJ=5!SHJ3OcBkdFNPe89^{B>I zv-MQf=C&R<67*KS?3B+3?~S>mpUwMLcFDu-wcEPhwd0fby+3KUHpXq#kqbj+558Q6 z-ZXjV1+~S;eK&qki4Whc+^74Q5m8f}HRjH_Da%^C7b2n#&sT3afO8aE_ z#94REyxN*&C$6u0J$L$;?qN@i@0A9Guk6@zC3HkbkoPt9?oUTEZ?)DN+F6$jN_z4x z#!p7=uyTF5x!Iyi1?4jWf@|NY%v!c2=ktZxl2OO51mNwScgoZ>*E_{~cK*oWDLG9O zA|uKcCtNlBb?@@`y-N=5*|0O0|09GOlHJW~S6khnxVj578!0)E=Tx)aPu1366|QZXa5CJ>?OgSs4L{2FS&97o zLe50XH(%f4dU5gFkE-)W>=>#ij+<=a*WT_qR&|rZou@|z_(b@~etax1@$z=wcC&qQ zF@Uo)mxVYoES9bxTf=im-P-$KAYzaQCy!iLGW#=VRqIB z^W72K53Rgn(*4J?jon7co*xqvyeREvnd1@pltZO5?ZZ~CdN^U-W`poquN%65AHF?NVDRNyZLdu!O!<$CmV1^3kI^+0_x8V7ae7pS z$+zdC_{zZ5b7F#axCeQrmyC29^lV}G%$<)qr#2qbd-s0jzQh?qpO5)hJS8sc2dVW^ zeCv>6cuqc~^!*O2v1{^*%jQpb_hw?W?Sfv$_&IBCC=3 zrq%35{S>)trK{=&-}TA4q9^dlE1h`CNKbo&TS(M1qk_sg@9y;VPF*V3@ZsUdFIQHL zxz*>P_oTvCI(>eh%O2SzSg=#DPwem^^4NHX#)%Id=2mnBnnwM$mHV0hUPJczRI}gP zJ4^d$mna%#EgU}XZhNQU<@=VWJ4a{C+&q!j@5zGmiO=PD_`Cai59^lc_pZ9?-00+$ z=^cJ;TD|Z`{F=+}HtxDvxv=f*}Q)IC!>)}byo)PO_ERBCWI3j3e z`?;|4Y`f#6|A%u=zWo|8eYLqs^wv#b=LgU5?{Rd(r5?3bJrr;ER}ArRnx5FuBX6D0 zyq_Nw`5T^ptv6B~_;S#l%eKEJ)c*W*?)8a5&BGS*8oV=lzQ1Z*=vVuF+pE=4IilbD zM!ub<+);D0cY;aggzFynProUWzZ7X@Sr%V-Q};?p2D2~CrgF=G&gwDZM?LmcSqF_; z$vu>6!?hdGmWg8u*NXdnxtXRNYQEUTR-*6G+iWqVxWx9rY#_3Gze?+(9mSIhFl z=bDRU%RlZNvF*;1@!#xphM4LIqoQ&mhh7=l$KA>z?Q47|=ahP*i;qr9cDDcI7=t+% ztk0fESiMU3Sy(~vTPyRD^VKt!ep+7put&UX=`#CIicw$2C0@83@71kxt?KmSN$o>& z->lUPUfbvNP0tgYlVwezZ68-mpIx|1N28b0?|9LgVTl0)$Na#zaIcP=!aY@5wZh>+ zv81(6f8BD!+}`oMrlfz+<0y~%r0DHZ8901YW3OQ=6dlG0@^sb@FI8ze^4`4dUE*}S zu6F}u2Y%Yqay5;=>BrTpA@#Ny^AFFtCbRUj*vDy!x215q-GHaIp1N{Z?x-u}@#duc z=ujB>?ctCy+D4OKXGJ^9^l8djupIzAf$h=2rb@ti?Dce6J&fYWd_G`D4 z_mMp-CS~65JEhJ}RmZcT?b?pI>10jDiq`>iT_08VzN@EL^~pa><>v#hD5jh3h8_7o z25C5ZjC9Y`zP9k^&_`PnCbaK4vgmGF^R^p;sF2S_JEm%v=#+azE-~*>e7nhO{R#uV zWY4lweO4*NaHoIi^LFY=j#g_EZr8&+*udx?&%M{i%*x9Zyy+FTKc`yvg_`}7k^}KN z4|hM;M}M{Ea+3ivQn*oBDXG`;c~81OHp0AZr|t{pvU?fZ3t`Qpv5(ojv!<8w_w`%r z$7ikCa!LD$o(Q}C9Y^PX(lrk9sQ7jKb6NkQW_{+$!-}_F_>W{vm=p7-J>Asph+t(U z@8fRsyI0p19BTZ>HKtC%pwFoE&qG$Ms1_zB^-KFdbbSdpRp0mim1GVPQFKj}F%n5- z2$6Y=5|Kiwkj$BrxuldKp_C?5k(nEnGDMP+geZ~mW2z+obI;o6_k8nbKTmRB>%M#K zHSK-&IrnbW*$pb|M>RbU7FSBzJZM%>SKjSs`5#+#%&Nj0G1mlRrr57;kUJS`AIV1F zn|fgQ>zJpDXV#@F%&ez&haRcySjWYBtopxgXNG~{!dc@rRP5qsT z=S`um@C|kq?DtPO5$j}~Qz!hAT{zXS*WMd8Pu+RU`}U-E!1ZBFKfMzgPkj}fY-V$= z9*KIi&+S&o+TVXahMnD5FMs9I!Sg16uhhNXDF0ZWV_EjOt^U3=)oX`e6n$6dJ~rDV zA6TwllB|HuUf%o;Ti0ET3GPmFejHMq7o#?=NN=3D)s5?~^G8sFfLUr`y zoNhg(xj6kR?!B(!*~E1oEDq23!h)UOtvp^eB+R69I#sHCRn36LA4zS&$}rKNTPkYo z!^8S^3D2AP4sG+7D|Al!+@%|?{$fppDczasv}Ke|m8sWXj_hieom%bjM87&kRP*7@ z>0{DYPNdVQ@)#Gbw(5<$VI3qqyFH^(PFq6tKx4$A1Kq{qW50G~tqa}xo!7EMgvDjz zE-P&0p)`o)WQfc5TaH$(_-cFLa96ZIgbhJ3M%GTrBog zi7H)nzsb+* zi&%G{7sG!ZDwt3cem)ws=9Fh2NikpRW{#t6InBx2*GsZ2wygd*{_`YZeP-7Ve6eV z+iDvZClS6Wv?etxe2Vq%V;1-NHpknlDoU(8Tt`n;CSLq>=)&gTubc&9$=7sV&VCBq zVlt_DNqyhpipx{v$O+r)j(nnaHCi9q+ccd*+B2TKR=HDGeuAu~=bP+fmB{VeU>K`> zt&`^0F*VjNr*G&5?lQdXcu}5ywbN~G@2B!VKmQk|Q^W80a*Y+|&h@K>Ht(O{%|G~> z!#A?Bc=j}p#2lG4>{YRMF9%C+q*B7z>)*%eqooa-b#5O^J>h-s?e>V^S3*LjfoB3~ z2aB%1=C5N^{M2FY{*?cgO-9tPM$!I{Zc2kuXYC(P|@YnxHW6FEc@aG3LWK|TMT)1y_sF`RZ9mM>jLiD!-6W3_LX{dDr0{h-FxDe`8?rS z-i4F1Gq;y>KHOg1aJBaL;ONh!Rh$}`)&c&^ZfhJjl%1?dU^$`8Em;31VnZ7BUs+*e z-@uu>@``Roak&{o@}bWr*|*h}7@ZTed82!3cT#^&#J1O5On!dJ8@;5}wCrkh$Nt+m zHdndXWhDGv)q$~XC&Y{dD*|`?yjErPh{<_X`}o5 z#3uL5-7B{plr-_}EV(%C`AYpijxmYK0KTWs>GXI~x5qsvKmN{WNHaN?xb~=a%U)A% zfh~IGCx7IMI5F^WWXn4C9P}2@I_mQ$!`1Z3NQ#fD{y~kNpMMhT(s{yun(Ur54v$)^ z#4TRNJeM8ow$dg3#I7Uh!fZ)p61&~UHzln$lQR4~-J+wL&|fN}f7xs0dy&@iEMHRikD4kbtbMJ;UF7$kM*E1WdroGztHFOopPNvZlL45+k0usksNex#Z%^50nzR&)-<1*_Qa?4>d@**ogNpyYdLwBeExE8 z#e4M=7w&VG)Vll$9+Vh=yL&nR#J+GJ0qyemyG5I-ehG)L%En0+x-oSbu4{K=S3fZ; zR43Q4Ct&M=<@5jL`1Dm&O}<~BF5zCOW0O3`fALqkU3Fw z_QQTZvWD0p{n{&0>ogUT?P>3{iS)4FBcBhq{jPV<^LXr^mz)}c9aSsat`C%F9gq7) z|NV85c8O5TR@=P^oA-u17cbvc*G_lXdoPRBsrf2-x#0g&jb6MhdNN()8XYJh;g`)f z_*e9}vuysuCdKpbOAo4S{$e7uJJX+anlnXzt*Bk!^?Lrf4KMDRA2Mtp(PvA@CZ%-$ItU3K>N)4tzFpOm#n$J%`r_V2ytiIu6ZkGD(Y2Sv%2v#n3L zBR44jDTGy2#NJMB*&8nYaesxs>o}iGlkPZ_xaP&_#LrCrlC@~?Qv5u1dp*O5PWOqQ zXKR{#TC<+L3MpS3C%sZVp|aqRa;)36LIZ*JhN!sT^T7c;7K62z6JxD6hWHISB zEKg7{6a3usD@Insv3|e#6i0N_TAgpPZ)HX9*-N}_j6U0!s`KsrCtlJ6uQRzEw{LEm zd7iCP;iey9L0{=xy+61_b8ld|)`N{+xv!09#6Hk+v>F;bi!0c7yl3|vzqres-}h$D zn!X+F+3RntAGgE%#YK09=JINtkNNN3t-Q!})iJrJ^*^oyIr>A9f^==mb_LtS37Nzw zNp@bV57E+Zc=^n0?8uEZ>dR8CL;GDbO)5Lg%W9H0<&MN(Fb+4SeYU^jT?yuw|H!eM zbEL(D3RArW;$Mrb+#}&YqmlD#My_YvSK3Fqqx+;6r+HVuZw=Qy%Z-q?Y$v@+(3*I9EQpMLMr}uQ?~=x|E+f zOY&Tk8{?0z)dm95r+#E{Z}~1u3P1HAza_=!-SxP#M1A26S>;`6oFdCFT7FLNSNtof zJ=OL~`KYRZtG7+7llRpMub!YiwC(t>@uELX z_Z2?x58QqIl>OnBhVzZz_JuN5OQ;NIL`!W{UcGwWl3&X?soU(Q(lEWX!q`QcU-^4z zcTdL;ZTZ|FqN$#8zR-;6ec`#|s}&UMcyu?~^@zVEhq1}OmNs|Fsx9*0Mv48E6Cm{S zrlEiDE0L7Y6LGaN^nAJg4w>BMbBUjMJx+9FRmZLU>D=Ef#htNI@lL~(qKRIJURH@) zkef--p4Z>+guU{;U-nu;v5jpgI@m~7m@bR=@m}$Aai6o|r*&wrZs<9{&h_F9V`@z# z@6jru6ywvcoA^&@{*-ok=&@_IdavyttY6lGWbpy1fr8VU6XKFzU%B(8Z0FaGBY({A z^S`%x6S(ut=ZS}x4r;@%Nw7<2fr>JUw`Wo9zN*?b|ZhD!)2x zm}?A-JN0-|!RELJC#CeWJl>?;W0e$7+xwdJxbPL-&%0|zB>X+Uc6NoSTX0_B&!4T_ zI9-~$`+5u|Q&mAZY-8&j*`oHDUw5y`hYv0h16YhOUYAZf)SxykGU%{%r`MS#wRW*4 zo+I%zq4NRjST-<)L?3^XoF}MuQ1DLPF>ChBx`tJ3zaE~O(L99xp2oK+{q=|TUx$-| zTCeJSsI+t&*e`nMtKUpuVwF^TO*!t>>)rqyjjclxYJQpn~M3C-J*xlZ|<+F|h9;q&q4B5Wwi3+!;j=eg3m9KTjii(Gs z^v+kWHmBu>PMKM2d93@ZlqB=3M6PV`7428j?Z*|r^)ZZ3q@OnWElcNFZNIh^8>dNj z4SvVxJWTh#t7`}xuU`4<$6nbV`78ZpYBZQ~B94~`Uiw*I{)qeNmCirMm!}yiS@#$} z`Y*&;#CHypRf=$bQrwd_S~~ATJ9@y=+uT)7jmet4{e(tI)58lLhdpLvzLa@Af3(j= zDec0%(NyE?=De`WaqNfeE^5s&RvGqn7{x~P7ik$&m%r4|r?nf>$_Gcg zszm8st@=i>{gmdlm!wwiUa=~#uaM8dkjQ zygq&4$Y;5-p_Jg+@>f5zq)(^2b+Thu@XUE?ez8&1@b{vJZN0%hR~a>wj(H>{>Ps&Dk3L!kG1Yl(xi(T2!89 zVXcW;@sXoPO6|@sIpek$gY*-Rd-r@TxJ#mc*(p+ZYR>uC39sS59S)u>XU|j^c015w z_?m;Kb+4&(9hEC68?wA?l5%d1t&yPN<=ZE6PBRM_FPpx*JL^HR-ziO_)l7E}6!Er<-8q35D|yqzubq`|wYJ|n5V z>YJNZd2X)dE)J)ijsC!uo7nl=C+X-jj$t_!PbN)W2hnMb73q62i$7`hj#@tN>!=&eSI%F54ty#2Pv`pOIoejb@}c&}qQgv4<5Le$ zlHK3vv)<_teTZ9&=X`JFJCR3S5(`aYFhYZwl~AIk$=6k5R>SWZCum#W?T06zGMqg z{x$3EOKN>oH|nKN_rR{5vv@^eNJ+V7AvIm9D^bRo+5u-`4(#a$FhJ zugIj&du*OnLx)-NVXJKejf>W|xRJNUWA*C}NbI-TTvfoN+`Y~_CtmN99{Omd#pI{^cYA^K*5!pJj%KQ+v1IM(x&qE@ zZ3my?*8?@Q>DTK#U!M``j9JBeV(RLu)suNOR#xurtcB^u6a|;=SHC}e%-6WCv2(A) zOnc_Q>aD@O2Zb}OY8vj8<;~Cf#r;rc>S9Tih>d@7*CZj)i0PcFM$UgTYsy^2-7j1% z-Za;26Kvg@S@rjmTK9H8v2sUkFY7Z}ED^72XTMB+FsAtt-11Gw-0^%>8Nim zi}Quyui7lzM>1}%m<&E1(nHy1ET+d?>()hz50vBVlhAASX7sLTcHIBYz^=?S>4C$} zmJ1G?Pkz?(WH9gH`V%`f@4s18M$uoUDye-oblN*`%dh+sJ?{mcr=Qz-ozlcqCC@W0 zUF{I`0_n%(s=2*L|9tSvIB||EYvK&{Mvo+28jO|F(o>i67V$ z!%b5!ePz-Md-=o6>ak72^0dw`Q`b6qg{y1KAD&CR^`LTp)&$E=KG$di$xp9n{oWJ~ zT&kwM%M1#Xw`+}a((ncwZI{zd4Pp`7>jgeR{9jBbrw zS&Ll@+nf=k_g;hPao2sbz(%`=`Sbs=%6QOKi(C;=6MI!qoKg)?mgGxc9U>#zo?Mmtt3;)#!YTN2kFsqL?hJ~ukU z<(amtj51p4Jyf<{i%om7H_`dMYf*JRqS&8xTk_G!wE^SLp^@#bS@R0=1AODV|JL*Ab$*`p4e4W^WWBPLG49UE|1`0`PcF|bG%gnm9(K@?jJ$jL z-KUpT>5W=1db;{;qx5E(CEh17YIn_;s6J#A|IIl4)5;>Y+3$C0$8W>yr=98Em%qq% z(xbmMX;HjWP%W)Ot%ZU6n9V`M&kE&|M~Ak&7nWnbf%$?d{+!qdm(3fWp`QPg>lp;t zs%id;rw6F;+;9=kD(q+3`ADb8PQb_fr@4`HM%-4HZyaZ7qML`S?wG~0-BFlU4*bTD zb=^JLy~O;%rC@Jc-vlqx!4n#XzL)g;xRSu~F5B+w-*~}^jy2xz80)J;BBc6djONUH zQ!my92E_mqCCDNTte?_k=V{mPreZ{K&IWy)j z#qY8+I!8`0Wo874@b2R=bb-vk&So#>V#b z_fKr)ow>oi{6@B4!1?+3XSw}<&0-FTS*~9X6F6~G5cbm+Hr!H zqmgON&JV32L$clDbZI8!1C=3eNyT2jvo{9iJJYY;TyUP2wfAr5wwvN>Caqh7N7R$u z^NXmD_c?^>%DncR(Y9A6vu{k-gCi)YjK=05&S5yHA_+i zHrq2qMvm+9joY>^!kQ8o=RP&x)du@i`9@VDW7X=I_gfrzuvU2V1nb~VMlAHMh+=-piUbXbNK+>Ex68GoZDm=iWvQ=33g+m}6Vz*D$v2 z(dL(lFME6E$110^U9GYTI{ThS@U@v0&uJe{Z46X$I{vbrf5+6S+r4}dznbU0)D23T z8qNf;E}yHqlX^C8O{3TOZM2^@uJy?=%f?>ow93#MS8h6gTXp+&k8c*qH696@-Pk1D zYqc!B)*qi2^cj&%Vi4c>ixm9*f#ul(zM^w~9&Y~Io-=-_O?DeeHb5(|dR2??PSa=s zA4iKXTl75n7_?WAFIA{Ckdqj&|0OF|E~~Wmi{dPPF>N-fb*@VBIkuUtAo1Mvf`$y| zzOkp5B9HhTo@qIM-)`Y?l zzvq{?bUpj?@bXpKjM$Z5TJHV*RA63JMR%}?d*$;qS3dqNH@g|S8q8b{fAtJFz@Yb4 z<)!csrdNd~_Se%~4WgU0xH3`;M2iObelQyd{1BfgxhzS~xza_wd6jz7kMNW=W%JVK z)kU*zM!1c?IoYqHDyaOWr^v-?cgF_$+>aiyjE>jo825hhrg8lFw4E+#FKeAgVb9Gh za}VEWmc6B{9D)zN-S((h>v8wi*|Sdyrj>bkZFrv7aU`eYRdN>J1FxQjIP&u%G&)kx+%c@!xc5_!rRMhCnGagGek09@P4?V zV!vca&negS8!D^MZ5I;|@_2SF>xfORn4hF&)%!yejTQQX@d#%UpPvPe)NvGCyc8QiB? zKZmGGC(zBcU6FI$he`Wu<4US861C?zX@B`#8(_^hPHKGpGELMmd0l6oF*(!!w%8q<90@&@$oGp+rRzD*rk^?!KKHhVS01JttWm!ZEI>Zq znZ4=0_PrP18#T0JS>CHjwBDv`ja??S^J{92Is40sPrJKCOgL<%!n|hR{^zT7G`v6R zp-lhC*@)10BS)f#1%hh~>K#o7`1XVNXixYy$3{JPIx=bzu>xZB$tlSRI?^%7@leTr07y)9$+ z@ZXs~HJ;8dpANN8{Fj}%TS_$>(~t6fX6N@P-|?QR;HVYVNsXqK4oxdEM*1H-EHyCw zaL1N=&S_uthJy`WDGWLWyVe{VphhKNt#1Y0nvqsP z!c!S{TE0Y`e0hxT^9%#ijllf3MhEm zi#0afd)_mBl0z|h#lhwn^*GO_3h(RkH#-~;bub<<+s|1msmdoN|1>5`q;}%q_M3{A zRE;*CeCz&RWI(lgMY*cyu4kh8-(T5;H?ypipjf;w>MF|=Cp}FuTa%U0vvG9XU(;LS z%qw;`LB&M*86{h0qdAHx)&jM}O0tShseIht;y4iIn*qTpKhR5dYmYXq}m^UVN#R!!oW`QQPHB^f4O#wd;S-+til4nlH~{ zA6`#>xjVF9O)l&|*%N2-T%}j2l=0893o5^qJbq^IOzI80qvw!K{COWu1vRwTae=#7Fim)$mRV4h#@@mcmid(E7TWfEFs_w>FiX>2Th z3EBPGYR#JTkKf8}7q^Z6rp4Sm$X+X+8o+^e``r20DJW$B?(N*AU~o7bMSQ``Qg^SaWSUk>+zdvo;C`0e&puxdPTxj52u z)~j;mSmX;W<)iXeZi-KYR+v5A;=A%D&xzNapHHlEc2d`*1e3)>RJZ-u&Tk$e?R+NX zuG)lzGRs<1*)&`KGkq>Ev^KvwTGu4yexb6GZv-_zv6G!g)sR4I8tp9G6{@?vSZObn`m5C`)Ts?K_zH{AdwTQ?$N#_{%k1pMu zL$#D!Hb-SsKAvc>!p4xauGDE|=2+1SDdGG>`)}!r%;dhltec~?p_9Y$ph@>7mv%jk zr?oqH$z2=L;-B>$@Bf{_t1s=Hk!PvO2LHE``a!aO{=6$3`LwPQlqRVgn5~0 z+%`8IV7XX(s43L=Q~|%lGv#<@dv5_o`{dS6lY~kiul+S4cg{0RwR|{u|4EF)t#kir zjLqK2dk)QMhpOb`8CH!+rJlTyttqi==Mj0kmlE_=+wTr-v6wb|EWBwpWa?bv)#x9> zf4bY~e{l9lCynfPYG&QcW3Ii*jU%h`UB7~-cHFxeljNzodA%CSD%KXE(T)L;8%1q5 zo~+l^U;o(AE4!M^a!=&NKJ6gW8-dNnr-~Kz=4)LXxZ1?}DNd~0cE8|s)6P7T^1YA7 zS$s`*-nH>V`agGY4c+j2P<6+8a^ul3>6KGb8}5ko9$Ptk^iD|2#r%zRe{I7YZ05hU z?0j6oqsYGf?N~>^$v)Q8aXOSe?UCfuijC^gz3P4!mRDrM2=_I6-6d-Ps%h0 zqy(yMP7vyR@gQ*9+?`d$^S7dJJmRT(X3!JbLt)F9wL2$n*ZXFBwx#G%XA?!0tZr_` z`@BD&-={sbJuKdfcl8DPdX4Qa@3eqyh5v~LCW%pH_9(CRNQ@6}nW!d*u$Ia_JvfR(v^+aeH+Nm(FD<{26kqUM<5X+|D zJ7pV^d1k%n?Tzyl2FK*3B|nMH`{WDkXZ#(_L)ohqN%0)NJo(4jA$4GzSzg1Vlgny3 z1PxAUn`e>6-SpaxJ@$Oct2Oz}>Y6y3T6iDJAo4wLpJ^QW8c37Wrbo+Ww! zo}&Bx%SyEVr+nG86vKaq0t?E<{anV~czA0EXLcU#H-6I2&*{}V?-^rR{ao<0aogoa zZUwonC=-iozg_@#H^^Zmwg#_#!`?@3zQ*bm-N@Vil; zr#?GpEU&TmYjEPIY0iFCKCe-BRp;6-(hU1`4qrdy=Ee5t;@kUfuXMGQJ&Uj}`p=gt z5D|H*Sn$E}+JhF|<0UVvGz|V5jXxKZ;T{p(8$UegIN2n4PiUb1PjGDgy>ja#O^`})(%Mbp=cB9`6d)RLY%Tt_7VdPPe ztIOx)P&kr4q2v(*ZhZ9f#9-B?B7c(idCoD9@X8Ax|5jNs#XRCKb%`}s z@~9Ehwdhwq71S@dcAKM!Vst{z#&(NF+Fb>ISDK_2zL!c9kv7U--&*7Os4YZ}FI{K2 zgZ^ye?HF6R4_{?o{9w6W@>XlI@lZozD;Jq&Z%qA9WdTdFd+vw6-oUb*5z{-J)jy@N zFW-Mn<$VXOvyJW@Juih$d2tb8(J8;R--4&NY@-}>el!;vdemgikWpY!w3O>b?qh#l zBF3AzG-^t^v8hSLrzG(Er7ey_4!74BvhL1*KM|8ro_mmQ+YcAhWfEcE1y5^ohR;0G zl`<1M^kGoPBwjkHqV>I=Xz0#{$8RduXkNGW$t_t?_N||Oa{Txx-*HJ@PI?0dZCb{o zf8XZS82=7v8$H?~1l=Ov{M6)YD1( zmQSE9IceQcT=SI?%{b558-cxD)05e^GG6HJF#IsWJ$?Jz*8|tZbFK*Ss-2uBeVpUE zynj+Y$|ucU&18_JvCP(KoBUp;E`gSwW|cpscYjMZjGpXnzN62Sn{E+}J!5(B| zXL3P@t#zwz*~{E9kt8il?%_FX4qoYc<8AO$sdlO4q_peC zh?}W0q0V$;Tzh-nDw^j!&3_KXhXlv)WNb(pdc;YJdN%zxl$9gKDTevNEp6tXe#@n- zd|IBazkf!nS2nVbH#+hgU-s^Ly}ajs+*`k2Jv4kjLsz`@{m~KH*i5zLC$GapRX&<; z5eri>u(gb1oKLMEGEri>+?6|gp?dn+5;k7XG?+oh>DHay0{Tez;_@0u5*`OH`q3FP8u;yuZBrAz*! z=G|boeQH0u$fk-}*b^tg41Ig1N`yu&xILsEAHBFHg1M_a@7UhV9_;b)Zw8lQ8wLm8 zUM%6YVL2uoD>VB|=kM8vd$t{@yBPT4((NsFhYfPJJhRZgYM{QYbmo0}#@iypa=G^( zMcXa6Zz_~wS#RYQQZDb8dxd`TT5r(1bEXr;k<1;BFV&X%Pm|iq#(0>OtjZ zGTw}0>LKTDF_rx!Nkf0`rl5&-&H=RFgo0kn=PO!zVnl`>G?79kJ*mGyOZEFtNre74@C>EXk z48wvVasGQMp&a^Vjb#SB`o@D2^BeIgoKK`50+9xH(*N-(= zeH9V0HdFiX-qs5HzBEoZW(^*ip04_bC8ynW&4j#;*Yt{?zRO$K_s&f9g>$=gk5kN= zFXnyTI~=Hei;Rxb*8b^lVl`KokJjXwh{)?19NSc?btS}&A)kRcEG^{Me}2Dotfn?@ zJIG%WA69kbfc0Gd2}#b+kBXi0zHd4GOtYSaBVR3ff1&?Y`D=Vfb^p|Eab!NP@RnEq zEjLePaX8zT-&}J_?AbJ4KBVH1Snt1|Qc@+n1i7`hROXu%v7Bf*WwIf(lech zpT9m`-iQ6&oO|zUi+6*i1>X~_9X@e3UM|utF*X~UTB~d(l{~gKxM{^q%l%%Zru})X zZ_ie&c~y8vT*&-Q^l#&Vs8ycFhqj!0Nb9AscQQa<;7m)Cg5;(q^BbQfVl;VLJJNO> zvkQLuxS^u@M&%K2;i;6bYm2U4ikeJl6Zp2xk1@~x-Q#%P9W<-IB#!Jj`tshp-8Ff3 zycWsV;_M$Eab+49XBYY3??n0E-+v8a-<|ot0Qy~qlV(x8p>%QiswH^d|5;qV7&{Yu zv3@g^7srqBFRst4CG_l@S)9jl+v2#@68dKySzP|d660D{x48Vy@Wt_)OZ3|ky|_HK z$-1cBXfVH#7x82868!dC7U#LKg#D8(7Pr6e68z7X;0aS$yk8I7#c}2(cr2FC-+2k# z&T?`6Z<;UOuOQdrxY`nNtGYxSdM=?)`V#S@uwn6j&6d#r*AnqiwM3q#Ea9({OW2wE z)nSXpRSoOn_AFn5M`;QBs4Wo>)bH(DwMaaN7cY)$FJBy&Tta`JCG29-^gO>r-H2bpU(1(}--B^4#y`JA{2X6Ge;KdE_2f|>gNYyT|~Cu-!ydEPA% zZ|qC-yJ~K6p57(&@1I^=e*F@0HME32ua>aC&=PpL;^O^oS|Wb-yDcs+v;@zVCGb5< zj7w(;zl$v)Ki|5zK8;K0|6&Qh8!e%y-4gj5zJxv9m*_WqiGD8>FRs70{Ngy5*y4ES z67gWRM4h32*W_aL=L9yzwXaLqxn&7{yCueZe~CB=S^}qCV!UUT81I@TcvzS4BhwQ6zDtZtXbJg3 zERPnew=3Q)Zs+zT?31!Yzk*AQOL>X>rJe(}SUg89VK-KR#pN4!Esi@cVb5nv@Xwep z&Xc`uahwY~uVXR&<(62dxy>vtU%N!yo?62Gk$sEvI4vO`zJy=St)s4^SV=Nhv56IH z#PJBzJE;7uq#){{Vpv1R^^sy}K%R1KJ&tqYKe6wB-30RK)I$KVrVno;<(>eXjJ}9l z3(3=&1CLPztS+Pxen14tPprie>iUn`TCq1$^&wLa0>T78UgbC7?B`*;1b*lt;I5It1AoQ7fAkyBpAkGX{#lEMTAN6Yh%)F>yn~Q*t-B^tys@Qx(ZOSVEx8(tgb>k@Z9jVI^ z5A~p0tiijm?@!GFyx9!wqmSf!v;mJh0z8EM_ca6V`UNx*M)Lau0PjX$1iKyK=E%Rc zTfx7%2p8f8J5%IgyoBBO?SRJ?9r!@hz&}ZV%Xo0(48Vr1d3OVk?Oos@{5ARu;B@`ZgMPLpvr$jc3~euum!C2@D53j$sXstX&3w2owW6 zXv4qx$chCF&a*)OO(@P~HvAjsQZYz=D~y+jPZ`uN$q798nil$9hZ&s8FM|#z1TSOX z|9l;A)o;KTb+UmG;8P?RsEE5MJX1KytIgFK}VCtjS*7y zXJ-NX3m}|&78VtEWd_Y<5x(3I@Vo#rj+i1`2{Q;)-j;e0CD!~=JW$W2rQ$&fV9z|{ zcj{S~RJ42wy1x*P1%RK^|{2%B~*mG?a;Bi;MK14kKLiLJrfDhM)kXPCb z@-pZ^z%}?^vF}o!Lj0OwxBrV1CGd-p4#Yo<0{f0~Es*b)1PxUXPp&b@2kiwv685n{ z@jT`Y4DeTs1KEe%1`+rK@ucbikL?`vON{G?EzC=<2_5c+m>*Jaq8R zD6&8G{9>y8*=4|A1phWv$86DobN3N{A7(}l5*Nw#kQ9y(@gGhB9?G?U?O#<6IO#ax zEr{n32aGF@OvVwS-^imNZ}ey-jt3)oFA2a^r9e;kEB4*&+mK(>z&_Yz8s74cgM4~F zND8CG7NJG`R)Bv!5P$b!q^BO>SXsu~Q+!{Jm6Tozo?3@+nl~U%>4kA^L3j^V*s1o+ zdkB%1gmBC4&@cO5(36OtBgFi^o{UQxBl$WF;BifaxH^Pz7Hly_<#$B~VMA17=f%%tPy$2`yOzLFlcxK@pvf!o_7ZPNQ>$fE1GAUsfWU2jqq6%BG~QP5FQKPb5t65a3V^u}Z=d&pyldLO&6yxR6SLTz|Mp{y)FPQlM4PK>~NqF z@bo0mM-}nNssm0&2a|qA_=F_VXAkJJ4dEwykbDB@L-ea_33wbU^vH?ieOCdGtsogk zk`Yci1M+#jY&Zg=z`nbG5O9hgRPxP8zNsGYpc=>*l#Zkf0c6h`WLy&dik2IP14WU#Xw zz$70`VO%~GH0(k6$2)+#UW0xgAs&Shz`IvN9HKBJT?zx7j1I)nMDiO^9Uuviab`mQ zxu+n{j^+`?{mq&u$|@T#{H11fzJ)I}QD=MfrHw z7I@-1fFTpr`Lik`F;I77?4>7KU-GHZ4 z59P($bJVX6TAv%C^*KZxc3uVM4(fcAt}lhl6Z6p@G~acnf`3mUp4BKmWqiP2_wjdO z=QON_cyrwf`VjG4+Xnhjguu??Nd8+j!mmR-{GU8ppBPO+zqgURlQ{5`Uz2fUCDKRF z1$bnVVMGMaA7&)~5$Y9zOJD}X>)Te~C+gT+H^B4m0S^{tcvI5^JPsYGyM7tqJ*b`= zX+xY7_76hq%IecWQG#40!WC z&>yUa&Eq|QyDq3pbRB@FTY&wsu*X}(O~7TgLuDZRqKNFtzQCTl5l&u!Uq$iEt_yxA z^5Wts(uWuF7e^$B4I7b);#9yjnqRAX_A6&$KP$(n!@ z^Zto&;30)W-Vr=q*u0FdyIx}*VU39MOgoS#$AgAm_+PPeCM^KZ^8`B+@k7D_9`|D) z;KaDPuymmEld}KKqbFFsq{;{B0mC&k-rz*QT_u2rh{MO02=@n^sPpbW0Jr@Ec}L7I z^6`Mj6~lO=kp8k-fTs%pGa)aIEhMP=P!?R5-ID>Fv*7i>6)r&$beWyJs88su&H z!2WTl?%go}zjSZ>H!oC80S__<9K3+-3!(WUZoxX?nlkdc4e%3wyp8OsiuNV!kv=cc zJg!PTFdS>C2p@L>J)4{U&95O;&q=6$LKa|Wv0MWA?k8YR!frt#2uFv{cq2ddZ%20c z%!K#Yj_?5#=Wzw#K~JQQm>9^rmVq5|5dMlD#%uHl>J|LN&U32)`Q{ABbeJ8mbD@x5 zx+TCbSee3Gd?CoI(n8&UtjEq=Lirx#`)^#mIScYZ)ProWM#OoIH{deV!)&ld)ZtP+ z(38Xo`V;YNsR;6<2CxHYg`Jgy{6gUc1bWBLyTin&aVUey= zLeMY4e{(D7qbdvWN$Agn=Be&yAdiJB-qvFa73z3xKmHrf3c1j)(POa8W+cB=49S<1 zaYT;5XF$H$A0mX{zk=di6~#G$XWT{OT?;&YC_ZU@0Cz0`|H>l%Rn35t7R*x(dyqUg z_%R&GxAg-~X$QOIVs@vtmTANj40<*JOe(iUcqHT_5hpuj0MC;L!xMInHAM30z+fUT z!nwdcWE(QhOz;$b1$ot{pbw!Zr!(N}o7iyq2{fNBQvn{zsek>_m5by{!7thPyRf{w z0Jtr>z5wfC=Tl(|HmZM{sfP+ky(26iNf0zWLvH z%hrK-a9yxpRI(T3RimIoEPe2n&JOZ<>&f_QV!RUQy4!ZaeUQo#q|X}A-xp{|`k2~O z`>;Fk;)n&pt*~&S;;vkvIZ^+q%K++nLv_J=W8FTGCl0HI=*8w)eZaea0%DB#6L%qb zMuqG zI3)aDA%*y*|Mg1{rZCkGdETHuFNz0uMzDYSf_;hCdjTg6LB2?%d_RY!1J!Qi771Jr zY}&%xp+ev%EtogC{s11gV4s;S0&oh-J0kumn-C8d=wFKJVGvqxkQZD(K5qqi*Pq~b zJEYHc>=){IyV1eZo(T7S4S3vVkQYX{S0(Cq!TzlR1@NE+`-(AcfUBYdY>9Zjfbxs% z5Ag}r5<9Iuqo{&!HY_Gr$`@ z90%NX9Qgmz1MaI0IK=?+ZXWepA&dIe{5MVj(CxmakfOs4rl2MrGSQ8nSgz8EnISBzz+ylUgI+K+R@-jZ4PZ{Db zRR`QP4Vc9c&Vj~ds{!K*L3lEXt2|dh95Fz6AIb~%9#$MdW+U-zMEq!f%o@divjXVZ zyaRYl5l@i}$ddv=9}^_s_Zjf?0Fa+Y@*yI?lb%h+5n{YkXq}M92R!gD?0(r9;Auwt zT`)Rqp9=ZcH4f?t%o^Caj_CTDg7%GbP`^WHf53Gb>HtI$cJ3+@=%b4200WXA!3=`u z(S6VdD_?l~Tm(1;?OSpo+&vO-)%)PtScGSy{pYv^`_CyRAn)1>_CJo~c~D-b{{X)e z^SF{f$Ty?)HlgPjmVi_}$I#)Ea)?La9+F>h9cquIC$)}Ia-?ucqK?rhfqeRRu<$Cx zQ;O`&ZVPs>NB$MH0eK^Yd|GtiJWpF(q2F#%h*+=&c4jQUZk^8kaTHy$eYHvsk)O<1M}M-+6Po35}}< z;v91a-r9(~=!3klLUB@O3-as>*8j1$03Vx&j6Q|rpIHLlt;CJ<68B}KPQ5)&wyscNgweQ8-vFF_66A?E(boX`+r9<+6L!PO9?TcPSYg3h z01D8*XdS3ZCgV7;Vdpku6C%~Wq~(x_XHmbwn}EN&1mp>RF^rZf-z*Ff!j0^3?jzu; z&p`jrh=+a?;CbjdkTkq^5=rVA;A0E+4gOOFJnlRwPQ>9)RF^3CAp)`K9&g)`{f!np zC*Y$C`Ufoo3(FyW*swBA)jxefycuF)L&eDp_V+@x05=i^%VU>gcw_yBcxqt0NdS{7 ziRB#MS9-ci~0=({f{8|OITsY{rDCtJmwC(4PXPI;-m%7V;JTF9)$J*gpvGd{BtGP zK1nheM&DCL0bAo&QaP~h`Ih7^t{BK$mBpOXtfz8B&5S-?INv` zsd^eAKN4{=gl)Xz_%voHtYK-6w_`aV-_5rMe_cQeIQtaf6eWKeh=+3<$jjV@0&pDR=k5b;yMW&s-M1wL3F49ukbHqV z(&r1*L(GhLd?RP4rt%Q)gSCY^h-VO z9rv#p_{$LSIGzNY-52arfc(;k@-(gy@|2jrhMpol7uBEH9A?#=!Lg;UasX>i@Tg!jr-{d&(#C3sRf)EcKvX84a%p*kozoY{4 zc_C0IA0m0OBC30upeHuH;!Va6;mi`w3mq}lZzaN|K@g}hz z_-)h4_-he>NlBI<-^~g7-$l5h7vkYS7C=1Cm;zKkk`_FdQbz|kIUDNI6C|H{25{GJ z;9vMFwy%Qr;azP6@g4~~OGSY^dnxFzjPwZ*1^vl6WE>&vP=ox=9sqXGK=Qg2;E7vs zeJWN6IAs~cGhw$DHNf+t!7uPv66yX?z{!unKBv*Rq_D)K+JW62vjx_~5q?z($*%;4 zKPaBFBLF9%`@dLsc(X_Q-eeA_|AZZ0V~K{>+uQ%fn=yJ$rnwyQNEY!dw*`J%v>!;= zC$}1KSG3PY*uPH_a3i!ILddUuh2$6PdmlpAP0h;x>KW_=@~W@FKG^W_Hi0>gYM(JB zuqP4!la+{n!TQ!6-R~wl3F7Z3>~J0ROI~n4lsg0Q%R&7yMExFGf%uJJMAiteKzXhD z2ylYm8(pW{3c|RccM@p>mVi|KyNyAf@K=f|;BgDCEBPjoK8DyEu?E&4k<_&yZrMKp zGxS0tP0ApAJ>bv_iS%U!;A45<-xD|+iB!54;(@f_x{THX`lX=!BKmDd>x!UC=0~ zfaj6PxIBS}VF8KPlR#b^$1b<=W`s?kR9rO}^7=2pBx*UL;^~rLF*$_aa|XOw9qPc;NtA>39P^uaDm@s{iZ z{CNwm#|O~5h|~c*P(3jJqU*KhC^G(jV!qqf4m@M%`571m_8iAr&~xkx$P+yJCqX`) z2I>zHSNpMrG;Yrgf;j&K{*y%dfc-+n$1cJ3_%5WsrZB=YfZ+v_k9h+)`&aN6CWbem zO@JFwK>jeo3z40T-h!Q(uz7;o)NMhY>?w}+dGfTu{*YzZ^+FfY-w*5)j(D=R0zPI3cA!Ca zQ$cwbBn@`Ei|{-w@bJ7?uuno)0z9hMLH<4Bf1Ho{ZG`+1M|j3*gg=Emx{2`Ea=?R* zg5P%{e8UyMNjiAM6u_^dIL$`X_-tM7?@W z#No|<_3x1cdDR8?(b~TteHMJaLqZzlWq80o#Qd1}8|1qqpgyFcajiTKc=Lk$iDoK* z8@a-`2p%sqzcdQ~KSU#m^g9;GmxDct`QkbS@h?~}`AGxry5N46lpyHed>`yX@QWfl z#2tiwiTW@Q1w7;k=$ELg99RNU<3#m2RJ=AcUg@)d%Qyl~*#CzF;BgD?zyF8UQR(Z1 zaE34%AS%W#xTtj?{Vn!JtSJIaVnd&^FuDtR68xMAz~7DbS9Oql!#v=W1n>(sz2Z#~ z<#qFdytYR6r!264C#v(V(PaGnM4aa!J-Zj^DT*!Bar;z2o)USt0P=1A=`j)<*3CD@JHAnUzYXZ#)``<>--Hm+!`xEh&b_?|B zUJG@Jn5VkX^FriJz(e>~6wUA5Xx)XG7jJ23eL^9V@z;br{RiN8m4XUJtnm9)jfRntyUqqbCegiz{1@Op1x1|5DjXx?+cQ*7(jO!y-(5SfU7G_+Muulv2 zii)eEeL^g3@a9GjxDi^fLR6DTMW~MD$&zt7_(>u~j)A-kA6C$?M$`dof56F;kaw@} zzmiDNGJv~o1Aje6xDnc)4_Ywqa2x`8TSs6{LGru@5RVhshtP9h58&(zo-;+u;a!+%wRJu(Pib;6V$X1No$i@CEys{FdOa zyatFXtW4qUt0|I?CF8GQRgA6Y2LYFf1mqkI$lpQpqw9kCqNEYzNu3bSME$HI>db=s zL`OtHK5oJDEz($_qs9q22mB?A?B@On;plTWn?W5C*&6UXeXtL)4#Z9j!FfoGFfJR! zqlWU%^$S#z8(3YSwtL$U|9$9}xb6_f3IZOtG~g+SYV7k7s1C5(fP5=0@a%mC^6YhF z95@FsX%;I)RG#hy`|8J0d^Rfpj}DSAK=(Ur4It9Ms@VNOF5sb{>ptuy-UP9*#ODj@ zM1wWVjCh;C5*F`w!F}P-T)@ZB{;C6#w-5u|7JY7xr~@(w0nh7&`1eNgKPiBd6G1~F zo=55cr<4P}1Id?d2b_e~$wYn7L~)h3;PW6A#t^q8U5HyEt_IM0Pv$b{L-3qg0sQRw zpgE=<-tzVU9)zCf#MHps7qp&9mjpXcBR_5(1bMPA#J@I@k4D#_-N^p1nj(?9u!2Li zvuiet_XLtR{{lE=L4Bx4c3?+#0PmAXRTn|t2tB7n%-7w~fRBkn9d1YQd`KzT0c=tJoWP;xXUB5Ty!aPOj{{nj>l_$Lh?6U>4FST7n>lW1o z`#-1Ab7<@~WL%E$OEC@bj4k-w&Ceh--ZxOU{snp0a{=%m^xPUzSN)Vwzk}crB2H|2k^F-7u$UE+mxTI5tc&Kc zK&9$wTM5iWUWhY-9mvnX&V+rwqxDSCg7r)x(%*K0{@Eyhn+svQVaN`LU7=sqR5ly| zt+3BgDWE)306)ec`Gdbfo{T=PP1s@0e!xk*z)+9mGltQ)xYpqa7T$PM&jvi`t^od; z;MrXQxaxxEOGnWb^db?$lETcS2gJVrV-+|M?AaBk^cN(F&H(8 zWPJ8u(_jzE3>>!c)+yReU@Oigp7CaxAhvGRM#d9L!5kc!) znFaUbo}v3?d0JoxVn2-!dx_im2gHvg;t9Y4jEV>4!FbgWUi}4d_676ND4M@yhJc5# zvmv%YLFKUxhYZCoZ}ArU3-IO;@Z(9uzrGG|N&&@Gt5U=IN@#AZII8?0cI0aAD#sOF7xW&dgX~JM%AA^5O{td9y_EDX@Nfb zJwTq+5At9=?DJObfTvS$jAD(j&mjuJ7wjWtqIEb$A4ZgnzYF``l5Qk_LeDr`kSC*kT_eP=hJ`&<&-8eRt5Sq3hXHOh0dYm} zd{RR4%rH-FNAme-f56of=2ODX4TnKqH3j^IZG+(LDXKrJsQ!TWNhJGfkZ(=_ef$uA z6}nC&FZlkAef>!O&A)MFm522Fe{_9$+>OQi|5(~cj$OiYKla^`U6zAn=h%rjlr7Sc zEs72zyJO!uvhPPCYmQWQj!;@~P+1B`rIO@(-Sd9W@AZ1-_4~{p>Ulrc^PX$2>zZrk zo|${@XE0BI*OXe$=idm|g-qVa#B(WuJJ7`RyXDm1c^WO+Y1+F1{0Tl^|IT*3-<|q| z(OwbL<)_BL!&BiYW6z;n?~1wyhoqQz-cu0yJh9Z#xGekVQX@TirojI7iKjAd{Z`!i zYf>Mslbe3sbTRP6m*{bA$g}P*;Jy*iN7B14t0W-ZIPqEYoT5)dPan_!RG|ErI*?C} zh9xCjbvbndcx(pva}rMp0Z%MNycvHLD+D~SABgcwOn!9d8=(zlHA6M>6#NkK-pXi~ zvGWMpKkhE*NtrBmbj#fY^|A8Or=o^#FXyqQf3=kfgIlj!p0?gbB`ME!fLxkgsUGIM z$4jXiafqjvH0$z*ra;3n#N$#!rdkqg>1|FFT=I1D1^Htzp-g{%> z>P&IqVV?Jc7nJ(54*VD#4n0l(jSq)>{C)T(m<|=}q@ClnVCPD#cQWHPvK0ED7t6Xd z=Q;j=;m2v@@kqkacIJ5oQ*YKO!2M$}Lo@vSUSz-cHm#m}cwWNcy&^L0(Pci@D?$?r z>7Px18OnZMxCLLevX`PSCc^P=Zil27}Qho!*Q!%41ckTfX zw}9nkx}r-P#)*${V(c(Ly19AHAJXtAiet7K`@MsQ<7Y=zg z6ayaNI`$IcdpVBy^Ps&Z&kSo0`2f$SnSAAG412~dq?P}96y)Q4f326a$1R~tz&)ce zu06;I{5!@&plMn=^q32IZwvIV7~s`DYp$5tRCWik42{u8#&QC#6X%D2bSk|wWu z{${;ACyd&aYQ%N>WFypz=u)bJBwiioCy{~s(=XG-ur40%3VGAt|7`+$hSI_Q1`l+H zymuNbyo355m1(ET6Svj@dij8>afrZISZ}Zl_#+ijuW8rtrjYksM1JVVc>CfgaQ`0I z&DitsY2YEA4|$&Y%-+v>t>=O;?dE$A5oqi-cOvAS5RkUy>CzZ@axEg^4DqfPfqSN) zUmPTU&gjYY^FG8&EP{M!I6MNY%6dyF;8DI;X!NpX;9@URKhD z8|Se%)Aq+KZNMMChDbB<*_8XIfstwb{tWYT>^|)OC*yoC=ZDU>up34bxxeBH_#@VQ ztTXokowCp$)>G<(cOjp!&ME!dp7CI{1nYU~MMNAYrCU;y>UaJ|~(uU-KjJagLTV_=CH|r(nGB&<<}u20U!_$G#lb zJb$4-eu!$-Xy&mn&r2A8^`-tX-siJ|@<;yye}eP#oWzI9#Kvu}!}pR(67MJp#KqMH zMEE4)kADI@m=W=2@_$1!Pvd%25z60^gs*uj!GlK6>ynN%&hzc1DZlV6@Z@jsmkdw3 zOg%z;1MuF&-xBro_#OvCHR3Z4Lq56&@?Q`yKOVT(!AR7Ic%?>&XT@ygoc?j;upos1NU3=t0(IMk8q#5D&x8AufV;$Z^6W8PV)FHp4(qSK4^`DyP4nA zyXY5YT==~sn2ZFO1u66$rhFZnX@T{Wm@CdBhi;v*kJz423yMvQ%CU!}bDyj)ls zuH(?UUvcUh$Om|?#*7#3xu2NeeB1P+!puuiD=%H({!6qw^yx&qO{)n#eg0Ifr{THr z73vLLM;untzg6nHp}>=e^JruU@q^{qF6$iE%j`$NRp60h*t*mgN4S1Te1kZAk8zlX z^B?anN6R65D>d^Ri)vF4xeZ-#uNAo`KX1I_rn z;Os@chG$DH$R~44LX%?b|I~8oGZ*$Z_+x`8|2<|hE%aY0m1xI$)4~4F6EC$5xWjuV zB<<+3h|duLYrXNmDCG~J-WO>9oYjDbHo^{%)9)3QWX+lUpnD~rL-!8)m$p)h&&r2tQ?a5Q4pLw-q8PivpFM_=GUYn*zEc|$R8 zNIKPJ_M7D4J_~xc+?%}so^zn*4(geo@fPB~Ky%_L zGSKVz;XMpS&sEI-!8PE&O!-r75D#JNxj1zRc*53wYrjgK)_(Z`@tm1)e(rJLA>JEi z?7UdgvX1jt%IX@WJLvK_`)}l5@bo5rX*778O~^l8i2u9{c+i?h{kRHvv^g@NkMfz= zUt&2BnbLe+x^yEC_i_A`-y;9xwku|x)B9RFpo@nJ!2azizcVM=rB7|yqEV`qx0p50gK4dR?kS-nH0q*GzP1dtreZ{;kfBZSbgBjn;`G7~ce*y0+Rf+T4;3h}&!aGWJqkTfw zdB54@_Y?rXiRWwikq1I^!DILreUExW)^qW9@`u_lkE2FurY_T}0#9s3zb=;n_=)ns zRR!QC{-+-Y9ykO)9!v*$H!NL#Uv1dU#OLK3z`a8y@T8b}(@8*TyYUuJizYjB)x3O$i+l-e$V z`ZXU%CeRL^;o?&3d&@N*xF;*>mEl;I4a^V8o6vtSV%j^G{V2@%MC;_c7Qc}HH{>6a$Lf7Zerx}CiUgj^ALTuG^=OCZ z53pV-`XVn(;K1{X$viV2eutxcUV7KItgdTZDPuS>$NsrF8hk@Y#@8H{sciv`>eVzysDj zbx%wN?&Er?>8Ia+M|s{;ZQASk6L`#z{u^e!sq~Ad2kJHPQ@$_c)th1vDG#8gs^5ut zKKQXL@o#0oa@!m4iSg(F@!>0hdw1p4$ZXczmiHTYHai*zn^FUJkjFaDQ?CQ?@Dq@f z?x{;INklrHxv!L&cpmN_c~2D5$Ry(KHmfTi;Jwf?oz^AwIPlQt7zgK4&ziJzz_RmK zoY%#czyc=DpOHUz^O$4pOJ<>elNVvWu!5 zXjJNi1ghIE&mWL1PX0$lfd@WDgqZiyI_{*F{OuL1z!ESxnu2cJ2ueDzE z%Mjo}Yy8^C`F8XL@R+>%Qw;JRE05*vO`Pvfm7zX`84rFd9-52UUHeCJz|My$e=jHV z%xp&^rr!TdyQahbO(=h<9C+f^yy9`r>%2`;wPbF}FOvaC`;Xp`NZEYpRRE=`^6Je!IOw04tG!7u(W4!_ZGny^~*reB>~C^ksI8*mB^?8rR-w4cxhk_-{#lW^Du>wZ0#hXDsj# z&l{Aad?%A9^Ew*Y%=Rwg`gVxx+ooNWGl0i;0dcjG@>Ll>KI{Fvc?s6L4ED^+cJ-F| zh3m%<_sfhQ3l0Y!uaACV;^&YLc+|R=qsM*9^S zZ@*9|G!qt^teX5`Va*gZ${))6eJD!GP7Qw}40Z9%T;V=Su-zK`I>Yt7NI}+5>>UTrW0aq;{FVi+%)=6U5cH=n^hNtQ^ z4tT&i2RrEp%JckZaq?{AbE4O}$EH8?Se$vx)H~ok@Fe&=TZugGHF2&!K7KD?F7YN} zC>M{dhMflyf1Be-;x+UanKtN>uK?_yoa^YHn*vtHGXf8+MJAN=sLRh)!Jph969y?2 z^}n)D*NFADg1<6KzjaGK?nlIbf<0el92Q>%`9y2v`MMBSy`?%GCpW-9fcObnkazK* zbsx^a6_EF51<#wTw_X*ti_bN?(}CzZ{Su#!_#Do0vrJ9!M6L6FHF8oPes8Ni^(pZ^ zaF4a#GVd?oiQ%xDbVFS{PeUIs&%v5J`BX>X&SB*Fo|NxFeG=5i$p6898vYLRpZ09m z%My^TeUej=2g;D=+XcXbgL7*HwJ0^92JkS~6%Bt^<|PmFlIbt;FCZVa_AkmZ9wK~B zG(6`x&IT4kPt#w9t_F`&1$y?Qp5-gkU(X{>N)!L)bI2!;IT~q0eE2ouarjZ(p-Yxi zz!R4c56=_#g@AjOA^s;2-(=<+w=hl_eJ(K%_*1}dcxrLJ6mgJYUL;RU1YG-vxbByq z_+)W}i+im5waT;u9^-n5RHw^&jys;6@RXQWmw6vTUOmX8e>TrYZ>}ZJK;V@a4`rBF zgL4sw#*f*GQJ&xFkmVy?c5Wg*8+NM)SgA9_t>^chvhd=zD^e8x!t6rsFM0v;UMp@J z?E@Z|0)CS>+}CIHbAh$*;Op<=&#G9coYo{G_3{Hey_TVx^#u$xA!Ao|$|V zo|=#jie8cq?#d?@z>?hntJm%T_gm{NzRSRswa>n#HhIb+Lge_0F2z3q9=6U|<@^$O z!pgTf`T`Hep=TZH^9%EUpXZ8AyB>Q0`6$;XO&n&d0z5Pj!b^Yt*K4S&ybB^&4?uB-FiN7s>?#lZn zLC;;pQ%W(eIM2*M{GYv$54{EXhxB{>xxhU=(vrUtKeiO| zUTdFsRd(3HDdcGRF!?vV2Ki`P#DlR<(~IPJ6BdwdSzSKieuU3@4>29r4T1|CEobsZ zmc!t2to`~A9s&=~Ogjz+IG+hx{VU6lkPpp+J_DhS8ZiiX#9DW%#c?pO9{M1gDOGhP zS2ita;^*@h(5^^}RE@)WN^O}4`Os#>|0MEHeII!AD0qzB3hV=(d>0HR&OdmZ z^*Yc*j^*gme=Fs=&Tr;j&4tj_-^=fD!wX7PZch33=trxm&vvQKwSS;RS&dX9{z(4N z#Us|fe^%N*YJI0QUrF$L_#9o4JcFboyZU&xzz#Cq)g{BHz{A!##-b7GnFV?p`wyl* z0c*ZDd;#PG);-dXah{VH4!;4P{i@pgmr ze-G!+O(wbP~-S2WW#(zWTlbiCd?WaE0d$^4=LEe8B`NvE7O2Z-VEJys9JnSyh zxpq$EMnsLK{H2V*eaoH%!uGx=4szw4HpmY?%BKzl9_Kv(U{h+*9N^LQ(8sj5M0emJ z&JUrLJm1r9@kX$lc|PqR(->VZ&nNe1y*CP>y@?HuMohg8r8?a%>mJ~XXMii-vuEj#j{Vn7pEzv`#691d~IR4F!Mi8Y+WtN2C@_Tqr-q`;J^MB%dF|3ro z^}kAGV1JDN14}lSIB?4w^kbagK{GsCSI`dmp4D<287HSqoV3lP@frGG`F{8dkdO18 z4dbuZmlLmq2siqB?*k8q5I@KUN;UZgxQF*C$@D;%JA;5ntot9f)?+`~oT}wazy6r{ zKlEYRJoeZC@PxQORg?T9xK8Ec{XaR0_vg88XCw5KWmsJ{HwI6f-&5#D`LTp4W zUR{9uYQq8&-nw++ydq%DD{{yKl zUSt1pk0{UkNKHSgUzhR|VNa7+{hO%I`hr?RV~0^MQ=gKE^Xt_A-Ym+WhnRs-(kIqK%buWSPzwBDmEKNom_=b+5IBE)@a-$Uqc+Ero%XhX2RvlW_s%o}9_RN= zn^IowCH^PcJ1ZT2@%KXDiJ|aRA<7>b0^D!yQ?E7SFYVBV@{LO%&SSeAjbtHy^B?d; ztaXpdqL|xWhtEyoZe22QUKgwfJ8xn<^cVyA&{o*N*mFTU^4~|l-a(!|Re*bY1Mf}z zZ;s1>^uXPF72PsUQGaWl_9Xon=Dg9=d+uZK2dw9~MiJn?Nr(iKPYz84?tFweG zA|E(f?w0;np1)p(yr1Xjj2*7Yz~TBa$o+*8lrR4haPIqp#0(@@Jn=)qY?BP`K}7r!6FWDlb7<*?+LD_8T?J@hOVBTfzbSg$56o;QP{;3 ztJ22R<>|l`&m|f?Pw+WCxDoZv1dUo>9(sDYUt{d^%pKNitxsm$20Z*H;$#zfo~jC- zL`}rM>0eVA=U%>dW5$tL-+{;5C!b~*&v@ASKJb|JT>M*o;+5c+lB{=S1LFMd?K$%N zxF5LBI>$1oEakaQZv1kBda4Z2XD{>TW@)B7pNXZE(KS|My;GWj$Kict&`Qo}*9EQ) zX4aA?DSw0hRqWU0h#xxz`M_nwRcGR(IbQhJ0Dpz}wKb5ByaxLZ%z$4c^TGa}*^UN` zKEHhf`FI($Yc6>zZvY;n{>Bb3(l35%U;Df$=Ej@v3hI58c6RS)b@AjP^xUiD|C06z zeV#=l6Nv{T@LYN49(YoT=c`Tqx&CSJyUeTJMnG~?eiHMTvhvS8?ia+lUr^fAn;ZOr z-i}6gGJozgdE0s(UoQr6^$ha-{8aK}TR{CQL4RZCog7DkyTNbjy*Q3Mk7w5mqsj9| z6X4!WVA#O%q5<_$yr;$V-~7_iTz#T#($2fuaQ+`{hY>In`5QCedUj&ml;e@QEXe~q z#74uOGJNY&jpLMu;}m`?_b}H$y&h}*aN?)Lt@Vm?+^0@(pBl3W`OaVq)SE00JxzXF zEQ#H1mxteDtxA1fmI;GyFW>7icJAICc#`*2^rw8!`M^V^)B2_MLf`@G++DWuY9Q|`9`f=!H%JcmBUl3O+L%%#id?WJ7EXr@^xw52{|C>m6cJ1$t zqhFi+v;0lqVV-|8eyN*_{i_lp$KV-9LOwbW<5Y+N+OQqugHsR>roSw`4f#Nx{8~ek zPo6#wJb4iMPp1B132!$)Cys!@P}~@c53RUioufMpg$;{2Lg?=sEWy@Wce@ zQ-t!bj{+X!`-!lUd}m7j-1S#r3F3AT<=ekNd24-UG3NvRjgFSgLirI~{|q-ndySrp zna4uxFYtm=Tj^i#yYO$7bRhbS<64;a=*sj=mxs&)z7nv5vF94v-(#(VDQS-D-+=W! zi$&~Tkrd>&?$rM&S*UUCkl5pB#MpCw57;683~KzF`jp%U+%pm_xOR^Yy)u;*~% ztvDa^Wx_~g;=FVc@(Js`gJ*ay-LojIK0j@Te8_rEzuOl2J0aMo1>1Ec40&g3E{&LR zq5cQJM{5;2E{MfDuaNkTI zz0-r}X z`wiexJcn<1?(>{*z}jaoITZ2{>s(e<>J#F6qZvnjpT^Nd z;kGLffhFH19%25BF@G9A4&Xe*yV22-#{Rnpf+ze5?B=lEB30pcUoF^2(yuPlX}2in zEyiwve&F%6L_C=H<5s)_Jj!#?W*o^}4*X6Y@SA>pfb)D$c1PD&pZ&VfGmsDRUSFgC zdfA}Y{mT!Y+E7y+_=ftF!o02r+x3X~Il2$+txx&9o&NuMwfO(Q|7BkFS$Xy3SE$!# z-SboBfAHjFKMIV5-5ye(kHyh$yMp{KSY6@`{s+%gjz`KGj}GhvPmK43bRti)jlliZ zdnIlE2Y+XdgHhfaIf*>|OMxfO`}d50Q#z2J@4Ho@d|vk77{^o7e|NQme1PX{O&$x& z0PWf#wizBb__OI5pYxIT$`uBpz$lpx?e_$=}>ulE=nb^4XdU-Ayy+)}C%;zyH zpWhF&U0km=^R&nb;K{tHT7OtisitFq`?&65^6Jj&&?nj$@@D?<>j20H=Yyf7W|Qx8 z@p&`xB%ULBaee99dB}%(Pk3g^Kh1f&^9JT`bC^%+FQ7iw`qB;h(aUjUGI_q^^KATJ z+W46$8>z0{R3S%87Nq=&&frfhL>vxgy%QzyT=~Ez=yQeg6~7@~1eRY-d_hn0eDsV) zsuS-e;p&c4p|xc-V(ht{`xHrQpTe^WJQ2PxDd|*~Pyo2%dBR43)eh-6Iu0A7e~DXl znbRG3YzFjcOT5x-;LcUF>ksl@o(Vk6=K={cUD7?vIDFsHKd%I==2oD5gG?GR{d8Jp z$osAD3FdD}9_u+bh4qGZLLU?V8T*1iVC|<5IR-rHh5e15?lte)U%cnpjCT_o0FV8J zNSm7h4ah=&MR|_S=wFfR6`{Sz0K8^POILO*`p7+8g^ZkNXh)0hA zk8=IZo?fDMy*sIV-(xxt}r31QpCara(uemP}oaJb_ zB@kB|C7j%Tny}8%2`#w)igM4T^EQVgM)Dv$5_trq%n*KYw5d0O{06Um|H~kXi!{gDvzMy?Z z90DG<&Wn0x0r&B{w}xjN=dr$x;Frv+ONZYfA03}x|6G~)Dd|40znt2s8Zq(kXf*IJ z=OHE@*3}0dT#0`DIsN`F{TrI$XrAxL-$^E%E`NgOL!=w(^1}n*p(!c)XVk7#9p;DR zW>`|XgD%;xL*8ljoc_5#@qX;rNq#p$(vB|GA3@&3^CV{6TsxmU)_o(n?*sSoJXk&Q zynlo8uc2NM(`A)3-)&d?F<5>t@xeubC$|DOdFHV&aqfp2fB861ODu#Pj*{nQP0H7T zo$C;9bP#xS$+H^iPW*6r#FeigENS@ja()uD<|q9hf+uL5`?|gmxMQ7XD8qgc=Q@nh zr{fyPduJi8&PqJFr5eY5C)II(R7RgU9Dn21_a%OK3FgP@VFbWgg_>fh|vJqz&;Y@;@#fyoH`}Is<-DCjmUc`?q71 zKX?+jkMHFbCceHS@Yu6y$Ej>vh;zPVC<4n9ck)dXYR6p?`VW?X!Kr{nojowLE9*-Rx*dWB<+nKt9CtKc*jzmIYGxz<688aP)_P8`8{}iwJ%?lH zuf#a`t2FgYNQZUxkMMh=&`PPx^rN>=T0a)4L3zGU-JCoN)&mbRevF=fc!4K6r{(Fl z1$dO-x2-~+{FDz`-yLo#Y2Tfn1OjEXWHrj4;5Z)N;Aq6u+p#nF1LfdB zK~kn|x*U)W>*7g%&ry~Wbtx&~wW$Nn zt?L61e+(XZJk+I2ebgH+2IhgpQzbF#csK|>w-e7*3wZQ#c+lu`l=EjFzhu{&@*RF) zyR7e!ei8!i<9!{7I=O#L4C2-s;&&_jo^$f| zZYj-mt>An||2#|ot5nfP;7M}-0@haQ@y8igTVQA7_l#Fqul3$;lIzlm7O2a@BU4c8+_YI%qd^pT=(Pn%saSrm{oZvC*LO(qR`-J8=npx7XE{7y7xcVeNMV{$E zyc+v&(CWXlra(Soy+85_^>^4_W6z0YP;aav?C>1%`rz{=UyMX+h)nUpEpzf*RX1uI_Q(lH@w%RO&Opp?%gn8Zq|y;VyV$ zyhryKd1m|uJlqN+OSKFjYCIo!!dfTHDGyxkxao_O)q*B|b}()Oy#K_E7hj}8AFpNq z3tX2@avV4P^iy%PYX|Q%w6~+okKJ-z^m6gY88Myb$bZ^gjl{{)uw5IZ{=#W-(7 zub1x}F@MGuI9jqI<;zR>xqc5@=hEEzYdP$;l=2N*0S{G2rW#7T!FJ#Yo?kWkPvv->%;0FruFOlf<$=hxTQURU zYC3u9JkRzPM!WD^na^hg?sXHFlrJcsYbW)zzB4#02s~hY_xam;;PGrpYq#IVL*D-$ z{CI%;ci4Xe*7?bm%u9~-y|z;vU%b{md+9hX_^rHj?{(DcDTH~ZJih62Lei1Wdz&Tj zq*T-YD)m*2?X~WExh{s%&lfvNYe^%Y?h)jp9QRG$`{p?CL`&E+LH@}R;6ZEL{8}aw zuD?RZU>~MQm6hYHrz6H4_nteqG^YK%)_Y`4W`f7zy}M@o9bFE7aV8=U^aqV9UkUQb zcF3y}iSH~AJnjW<;`Ya%h#x=%en9yE=M@Q#v*JEohWSwOa9mY1|AuOdY2F{(T4ojB&SH3Ktngn&$ylIXdJ&) z>IHGP?nl;rbh%Fu=ktY`KV0K}XmA&Jj2(8i1AkyD?2l+vDlP%(^7}SJ-i))~$^W=` z;0LtyIQ>3P4DR9)u9KMlyX#Nt^Df%^hHiyYW4ZzNxEIJvLAI29$+!x41O5#A#pe@P zFZUPflIJ+}4^n?q@6H~O4=)7I8p@wN4?JE0abo6C=N|!2SnIv+_pID@C3s(r;on~s z_EEl6&1~Z5i{B|f74w`78By`7iom0MKfMX{DQe>G>iJ z(71`8ePTwPf2?~I?ly&dv=<`w6~;+Njyqv%{q}{mkaq?^f1}U+*3c);_jZ@*+U31) z`pY4Y(dWMl;EC}4)1uVhjZ;^Dhu`5{NuI%Dfd~11ma$Lk?!e^722f{)uCywPZEQHy=fQp7#zASJ#01PNF}SpdA_v2Ob*@i^bCO4;XKe zqiOkjHAkF89OSXK6d(L8c)ZQQzlZ!URiHlBK6r~9#3S%~7s_w{3b^9ABa=54z69Lw zfh8NV-i4chhXy~Zkspbt)B+ykdduI$r+x(7`5o~;pZL-HlpmX-5i|c^?T~*W_;*ph z_glaN);{%hS#Z|<*P6FCngRI;&mEcgFDUMIzA6SDKi>~3Mg7;+fqZN%;_Z9l8<`(M861stCti-vgI;SL!x4kKdPcXw z?}!%p9-Jtq@yu!Cyg+g2liUG*qkr-UKsy z$T^=yz#X3ZMXymRbtU<`puN9HzH>_|=dpnej{e!`d5QYREdA%_WSlfadrf|rEsk^T zAL98InKtV(o_RoVz3vs_vvQ(czKvxyV)DuD%HRp|JyRL}bon+;{;Sa6^wVvOL%+2z z`OaC$C#~}vZHEDmK8Z|d;$bWGcV;0!Nb_~MWag`V;YW-P;?H-Jw;${Av7^h0n#Y*^ZXPY(%NrlBiwzSV2e{JO9-m zxWn_JroHW21CL(;Lo?R9it}^d+_e02xGv$f)+H|R{i*O_^tf~6xhns4^+~uNE|*d# zz5b8tbRM{$=cWn+Rwp=K`>pZ%E6!)a+<$qJ^3O{%UH(ur_$x`gAIGogld!{R;(Inj z-uE6nJB#?Z`oN>JA-|n?b>>g?iK7wxR;e0Xe~=G`X?!>3YcN0f=@%nEoa0o``hHOT zYOI&@D<65jhy(YtzZ?6Uz5_gBy~mWr0j|cv<0lxOxBmp57zaI>_S9gmw|E~So=rS_ zBmU9xHVYPhmHND2mw9g@_4 zZU>0}m5cMh6R?1|PnTydQO}X7`sYW)qrU-9Hb;Il@sKVH?CJR){3g%;%Xw@ppQ9PZ zk*BBxnCllm@3A-i`s{4rAqD;>l;6*NnP>p|82|3&JWx%>I3kZBx=fQF_4AH3Ki?$_ z=5D<{>-*rtMFAIgxL<7Ivk}*$Le@D$r$6Mq+<)vyJ@?9gU7pa{yc%i8{9n!w+;82Z zTdh8DwE+Gy?Jc+vcziHMWHavP;l6{D9d@Xb5f%4lJo_2X)v3>a4X95>cr#9w!p*=? zlKlT|olP`~$dC8TxdmJ}tfj9rzeP!fltDijgjb_J8Lf z@c2^Lrw8Sq{T;Y>B=Tox#?=MdKVZ#6X6A$4k~1C6Fql053l?+hmlOKSG z_&t%T)bpX#@7f{R5qi!co{f1USqgUONBoa1kdN(#{;-}>{ayv`Ukb|`yy+;`J0Y89 z2#}{1^IO~xN#n0Bsf_>ij+Qh$18#sP-W~B%hdjS;0PeBgf1E20)$QW@Uxw$LsNv#% z>weB1jKgpYacJ^JnDfu*cd&zrx2KMR$N3m`TSk3U3+i9EkVg6t-}NixBahO?|K$+y z5YPYMw@PJ|VMwnBb||YEs*&ep9`MJ9I2t+nIDT=V6L`D@VM+7c`Yh{>SNA*evJYwyWu4xCJfb|{rwbOxz zSAah=d2&_)9_4ooIK|P3$xHLeAMye(DgD_kJKBTC^B6ppo_M?4z*TPWn>ZhQ9eAKMBCrMX z)iCbYBx@u7jr}W>pgy}CU7xXAt%u<8S?3w@Fm8RHKpxpiskici$3HSHzIh*ctn*{P zUBL|qWXb*jW{ z@EbiZNjG%m9V<@qO9#>8!XC(@b@H9)rPSw-+`3+56{URiyINUR<0jr}?`C_4i+~ig zLheHr1+*Rb9oVA!x3X_bJw0 zz7XS1b@IG79P+U#$X7`^ELUaV9y+Jz!S`cylUb+J@Z?X@n-N>4?^DI^TJy494Ak};;BYF&i9D3Q2ysT;E7uIG}fyP zJk0mMj9;E>4Lrc_EdNQKzKl1o6>m95K;FyeR`g1l@0|x8ves9x{R}*MBA;d+L;j`X zfXBGM){Xe5yMQO%7l);^C;nkI-~oQGIYEDYDuLm~r?U1nUfw}|YrM`e6?l~EAy1IM zegW|KmY3CtRHw@f#%-_!JXMkT=K$^RxBPO2c*w%NoCk)i_d#w^K5WSk?9TR1M<(gc zJp4i!xPK#hkQv7_7N@**{;)(x;0f+enLL)=tXHHux}C-jJJ??TGW4T9`nPf}n&U;J zGCb}fzKzfIzITvkD$qVR`ct1#LMUY&`2DAmz=NZp=N8J>V1J2P{blxhkdJfy=S9kY`x|hF=aWtR%w@ff zRqscoVdvOuu=6F_KfNp6x$mjetv9 z&?R$c$cM|oZem$o%KZyGHXZdACSH|!($73uhxj=5ui&T1113%yh@?vVtxyf|2Fp%J=-0PVD_lg!NJu3XY?b~uGA(`*yWG$eI*GeU1}Wz z9vTHZ&!(Nbeh=Jlts9hT$??~^m*9=ekoS4zf21_l|0*@2D{#em+9cxnJAlWDpx%3| zcWoEQ$EG@3@(ATW6GOTB`}m@&iRb0!xqA)#@&)C)a-J5Bfyc~?dX+%E@m;`;e}8x$ z{E^0)G{f%nAR7KV@aQm%%jgA4Md|?$&Om$DLtNcC58UH{ycw5=OGP?v3&JCaF86yJ z(8pU8`gqB+cs1lBHS=m@BJDGzJ$W*MLAtpvyZQl-H-z6uGq1kA40zI-mlpG)-blez z{rAvHsi)~*zvbU8VnA2_z&DUI`RXk9g914n&13E_9rS?p^8H8C-YF-6$1Xmr<;Co} zj1zO|d82!=m=tlhE)^vJ+UGM8vml;ZvIAG+d{}WG)5!m8)*HD`QI7hoBu~NtPf_Y0WL(8JAg(YPDs}1w=;P!2 zO8Bju3)seX{S7}F{@1Snk6Y^lG1@=Ddx?!7Z~jI3cVN$&)bld)ZPLoO16x8q!Ta~{ zSMq+GDD1{z!g|i?$bGR`5%{;Mv4i}N8xM}P4{}BNhl?jRL&G;Hzo0@rwpsi2n$?jir3bN5DP50XO;Q=gz>LDu|O;$g^k^ z@C45>wlO>dfU6o9!Alaq&H1y}%45G|M&1kXK4g=}f**q?nGW%6^r_AG30;CdnaID1 z=WU`pVdtt`M;-DOczo75zz(~B`x}FwX-QpT+y)r8)5#zG9P;5~jz&y-#}oywtbLyh zQ-CLUZsZo@e9r>laqGPC{V~7;A0hvkajo7_;F0a{W0*V(S^AwRm5}yi>6sOC{j&HbM@ym=N*(P7 z{yi6sKA-xz?`-n(>!TqbUx%I|X-$`}Y5%~7XqPNg z>vD|e96Vj1$vc2mfc-RB3Hi#{&G#+%!@Pe_mKVU|L3@)aj{X^crPN}fb=&JKf(0J1 z-sgV-?&bTWhChouz`F8r+N}uaRb94M@xAY5#G9@KPk`SgtVTR8-Pw(Y*m{{DNiq0J zo*zprMSDGz@7^0ce%=pk{NdE&p^RwOp ze17y?ax`M{+lQ+l@6VIoKhP2X+{l4)Tj+e&pIGoQnR7-zwEXCWzcrV;{9FIPbfY)|Dl}T%8c((ZHmm;vgski^{kPikCnJd_?Ej@sH zo`R&f6@~krK5O5z=pD#A*15{I)IT;A@jRV8%h|so*7tDp4g*gtGwMZ_mhS~$Cw~iM z+KE(WX%)0fy#T)-BkpckxONEUfd?h6>GIJT;34Z?h`&ZqeiC|OGuksxD)?jT9sTzv z9*&0~AF%GVnDr2N#M=M*^KIaM-m{mRcG%q*{Nbz6-}t3QNysOP!jG@$+LapA5qKy& zGG{LGgbN^^Bli2JQju#1|0mG@Q}Udz3f${My%Mgvq~8pF-`nt)gtsoa=y$*6_nz`w zm*1KGgqAxbdBiOT3eau~9sP4*{jXB>y}+Z^bA4DQ7%q>;nm5)x1>A3aulchdfk#?F z{}0H&z7cskBl7PuKjgUrJZwD&9k@(>3*RaMwZqm(l8CMs$-+Diyo>{M3f&4a!`V9UL@(I3=VCE+m z%L9*x(~hTsPQbnS(7$9_tIM*-VIM#5moV|LiE-<-;`ScnL|OOYsBgg^*5`zYU)&ztH;WOAc_i%O6W zwMRTJp!^4v_wYH|^ow(cAg`?N*RQz`+-Kf{BTvsVz?0TJay7034_NoJ&0s$C)k$m5 z#t!5oQ^c@RWSd);lor5ar_rKmfK@=6>BeocC_EVAIC9U-V>ct-%y@dc6y$@}``Wk5 z0e7r(hW)MqPn<@c!E8jSKW_l{4a4}jmimnB1Ux#y(TItw;%$M4|AhX=&JSuL9vtRX z8CG;z*$47|&RftcWgkr{a@*_Sb2q%K)YvD%6Xkg`MUpO}+b?K+n*_R9&O7=fHZ9Px2n51Jvh-{=mJ~`$Rn%R{`sL7Ja0f zxb=Dy&~rC=(k~{?_b5%i9U~KES3bdey>3x{JfBbf)^k?NEVMJ86vQ4N8|%EAt}DgW&^z(b|c z-sQwo@`FD)M+l{udTZPx|G#K&B%S`XYQ}sUyM&(W2drwBfqb0#)7Z^h6#Qzlqa_VK z(g*n@*OQUem3r(XaA#Or`@B?}cIXNmtyAhkOUQf2gMX^7MX7VI09VgKUVhZ&R!i{s ztoOoFBrsgRCyyeNG^2b5c|dS+wGa7xJn>vyca2)#1@1iz@-e>e*@W^x@N_1A zhVs$ui2NzUGv9@L*t&P?$XfCYLjTG^`N^D*sc+#g{8rvmmg@BS#)h(5(v0u!_mFje zUxJ7=c02SL@X%uDiBVgr(-(j{-4H){7!QTp(=R+{Rf+oa{1)=jhLAr-`CYxqZ>^s+ z$p)T~<7ftx2P!oOo=idf=Oll%KHy0nhQAgOU(InL%yGfYH@Zt0xb2P4K?Js;{P7mx zSJt|EZMG|Hwd<#W;PGri{EOPUv^mOlwUCOWz4rZZB<>R@6fR%slzX|yyzjtix|1|Sea+9NZ5nW2%& zxRV*xs&t*mGXe6Vwk{9u0FPPg8=pRnc#HFUppsd18NMCzP6qTict@#@^p|rO$Suk* z7zOzN-^VfWeAS^oUn8R$J2w=CU4MD|rD}#K?N%!*^zoLJKa}#c{#TwiB_ZhkG7_1j zGVw<>fct(0zv-tH%)U=)@S8Yaah&xYL64AT>as#6ih4cmY-#p)^v}i)zpkb}3ox&EhVs+O!VaP8IG7jeXRBHAMODU@%t1eevU8>!;7+N=7Z#)#r_*ph==LKOC1AG;s*50 zo*uu*#QBwv^Kj!Ahv%8&d>_HsA*%$oYtQ5x@Jk2sbYB2G_$!|5j2+z9QMLW|BOach zK1(+M_pSuKP3FOFIaL98%(@q)3g?YpYu-5i6y>>Y^E_zOv$SWlBJ?qFGPN@Ec4gSX z^rL-z&P_}N4lm32RgU~TS7z+fY&Y=a2-tZR>+MS1nUEH*&G}Ez+7Eredi}%1P*M#4 z*aP5?So?I{e*vE0dU$)*>*sTjZx1r|SmHl*fqd`?>|C1oyTgD-x&CSVd(;p6_^f&L zajqlzhQmHa&to&e|J89a6CU40|Bhq)1oETC^_0IS0prTYtoJlK^#UF` ziHvIUK(R5v!%^h(LF7p<0q^pJ`MnPlhmG$8kA`5MdX#@k!b9hi^U(}L*S9 zy5x|K=GLpM_a%P~0FUrHr_y{~V&Z>SKE41WraaE*QsxWb;SP-d^uQl>BF^`)PBDJk zv;iKyj(DB`ag|pMa2HSDfFPChVy zOrC3!a9ljhdl9S2x}IC!k`CzNa$%1Cxvl-=`ZqQL$9{)jYF zm%mD~UTgpH;&R}g%J8hQ|7ymG?;7;)$9PMj-4grI-mHwP8YQSt3=EA~?<(f=wQ z2|rzCNJ7)`X05k(kT`X5Z)?=pit_8ELuvUe$W&6DE;o7t_q0hnkNUVKa3_g&8T}tI z&mC~Jh(ie*T?zys?*xGx ze>LOtY-oX_o`7KL4X)PCg2_LR@e^Lue?z3xO9@-cqzz{K1A*MR#@AV1e2 z&k6RIgw0I)i5s>@VF-m*#vg!(+Xd z@!#*{Uyq(Ul#X2eGjQMWeERQAf9bs&xPL12tVaHo>xlFDj_Rnae2*a5C{;_Eadz(j z$VcX(T_(RpPP1Nqr@+kH_ejTa-xpB43TEqm1{k4=RHJ}iNmT}fk(ao z-jw~WX;a`n>%RK7TvrKO>ng=QgM45i+S`P7_MK$C*17%XBf!-&sMpx7_hQz22tA?= z+x6&0^5lZ#OXOcW4|phdTAr^n15aAtyMMeMacf@DvJl6w4UVqS29`9U$*KiGC{GS(jQ9frob^|I`Jn zGXDhJ&wXwAb6vvk0FPMTzrHyixX-!|@WyZC=l#qr$g`p^d3HM*k#wQUgk!+{`(cNy zZ0`WhKNAgL&$lRlK?rsJ9OY=l#M_MKz`fS~>4mw#oj!;+v|8@H{}gz@IxqUn`@o~0 zBmYchy>~wV?%}?tgtsn7c>XZb3wmZr54_PW$cM8@f|7Ea_Ma^YLFeJV@b4gqtKZ_l z<8P&EWGwN}i|%*5<$bqRY4cm3R*3(EwT{uRJnQvl(hO#vHnJY;ohltoiY!a&@^?Sr z%6$=AN)P?7+zU~OcyI8OqWq*Nao#`hs*&#mJi&QFY2uk^2VZ8`!NfyfSzvVS5V?c= zZ1RbF@0yGI@&Y+Zo?PM%7x#M6vwkH0yeQ`4ffJ5K>JuMV1-MfK_B=zp;8)-Y{fu}s z`Mj|>!sQ8aoHG5l$Lqj73G}0Fw8QrWfJeBmU77s#InPY2cQj&nYHo(S!}UOUOwi>U z8L-@X6PXbYl^H*~h2Qmi!dmZL*OK~-bM)UEd!GLmxW6^#Ir~7b_6wiO@8La)4T$G! z1U$YDcFxFlt*Zb$Vy#d9@zC(VU!tBa(;5R0y$haS$aDBA@C46?brw<-S{`qvTS z_m%)x*163F9{RDMqb1Eac-pMrmV$o`e!eN>6VDXV@)gNHkMD8#_#Q`h;+tdC)4F#~ zrkUDqk-1N3Ns~9~9snM&)-78~^R*w_z&?e^zwvL%zX!Y?@nK2e4)?80oU|K3ocqWl zDW6CHk6Qaji$4M$v+lJn!T#b@0JCZD2dgPx74dc^BPys;19+0(?=$vXdI@-N0^%wQ z^{L19`p2Rl!TU-*{|Dsb>kDd0^ctlqaQ>#|IvO`TPb`JJ*Yf+s%fzkogzbtm9zIFS zljj)Z!`zSFCH`|u9X{72c@DwYdEXAmdoscfCY}#VM|S<_=e@@!erG{U4Dg(PN&Q!1AI5pWI;Z_k0{qdL;KyuA-XA{>Jjs2cYvft=6zt&R zK6`)SUlxIUVl!H5^uNr09k=@RY0=khug^OF4&Rlg5O1|M4syMVB+GjyU-tON=>T;`7poR-ktIXX=hJA*m)2u__I9ZJv^t{iSo5M zE`+1te}Q;|d617-&ncT3|4}PnJ;C#(zA27oF!`<1$84ANzF}+fM=gF&1oD1sow=~2 z1w9|I?i2Wj`+Xtn{MZM4KK1eW)a3J)luuMddt0%+S<0f`pw+*c(Ef>gkdINm-U!Ht z-p4pD;i^lY#=rv;VE=RJfZs|FJkEQ!UZMOy?*k8?29KzrOXr5~^YKwq7*15id(r}k2m<2u2m*TYe%`l#hWHorfqSg)n-3cW+{beZ#$WDhkJ|6eVVP>=nLv3zO{0d8~fdfOB{XDm3{9EG( z;4$m`_K9x9`(gaO!8j?p5x93Edb;UH54Qsk^Bf4GLhcs|0Z*<%{Fpd7!0|C=jgMKr zgM7kz@8ENuWArY?JWaZ}E{{n=bpC0II5GG^@_2f~Zsz&=H*vHp@BJlhUM(umaW3vZ zgMMVrm=JMCUEruG%3M2FBAhFwC2eV9m-qhwZd``&ecD}aVI;>srI}F`Q$?Qs|oQI z<$(LSUuojmM;>Q@R3ydd`Im%;+b?|9`Mt?(SJavhR4q;WUjvV^+X@GGcs+2#|7{TZ zg!$g6(Wg=Y)ElzCo4J?Io3TJz|GvX~6=A+Iejg6Mo{mI36?@CEVqg)}0=jV>*dz?Jp9<2U_f2<$eNJX2)?;MynJDU(Jd&Fa#( zI`Eja@Ad`9U$xNDa%CW{_CF$zbxxoeaW8Q*-_Dr}cJs{!kFih3S>OqLmP<1~M*e}F zfk*f~aT6!0jC0Q{#JL<7)MZ{V@Oy`$y(S+1YYHAOzvpGzo9}Jlu_NHQ&U)+00O8sv zVcoO$l$Y^b5d21;qi;Yy@IhA1kemJbg`a?j_8`MlA%ANzpys#o#>n2};W2kavE;xb_Cy z`y%H#9{SPv<;p(D2d(!~R~-cIz2xW`WjNF2>5b&K#>WB;$a5L}v|a|tXXbp~&-Jdt zfK{`zkPlhson|cro*aT6fnKcC$FEYJ^MRG*2{0e}to@h%Et!8_0E3D1qbcNB01GT+ zyDH5G?z8R(J0WIt^SoM9R@YdK^=_kmg8Y8BiNn4rs5iRY`9H?q1U|B&Y9GFUiVI)_ z1y^W5Tv#)ig#iSTNis8GW|Ah!0HZ>ulXPanWNFgLEQk^mkX3^Vt6%^Z1d-rh#1-QL ziV6l)d=-}{!pp0Gals9h@0{~IRkv<+4}SOen@QJG=bk!s>eQ*du2G&!`rn-i{&U|& zJ-V6r)wJhwwD0nP_g(m*Ia7wzM^{0ZPQ|3bTY3GKQ48^o_ce*m>3 zNye8`KP&e)Nt|6hI|2Gh-e2eJ|D2;izi0Zooue(7KlE=}%=tS~A z4>(FkmgE0JJlfCjkF~(3qjBg5jsc!f9;g48i~lft&;zRS+-U#H_l}Q5dG#Cz{a--* zwY!17@r97^JmP=(E&1OLzqg9^bILQo=c9dbzulAeb3o2G>`OkKp91~DmTdp|%)5b4 zM*C;3WR?APd)cB zb`oFxSK#GW=L~Uj9{hLU3C|0hP5Q$(k*c+w+`RS z)%TsyBA~UB`Qe|Dp8LTbVY*k*Pv%zbZ^*&KH%W4;=czfQdp+@2(0|TF^I+e38|d>- z=Zw;&`*mTceCjxEa&rFicHoVVqI~;yLIR&G0G}DAzaoC`X}~8-(2pD+uxDl(cu&;d z{%}9=sarq~>q?S?n6Lb~@Nb8Se)U=X64>+1L-6oU&Q-MM*~?(h+d!V|Pd(>yutV4W z{)pqyTr?he(`Lw1$N3XqU!>tP{Tu+h+C=_0ei!sJcS6o?;)m}KJmGmFNG1E;HvpeM zT?pjqApJi+06h1VR~Ul-ljJDYm%6B5w=3nD-WT#5N^TnlS*~}ynD`;*0iWYMn{;FB zxlxWl5l{P#lhOUp9qp9oo#5~E z`P<8YPu&R%6t`*5HC?QC(Y}%0ncvCi{-5jDf=?ay-8udTJOz9%+7Eo{HKgAP4Zy0C z_|(PlKeDW5Px~^`k3ny%cLsjt zv%n{#`HCkyfzLe#&Ub-4>AVVfeYEfN*nP?WLFnJr-@i-8#>z3W!)s=Mm$|P)%-EjO z=}(eJp*I5n{&_};)#YDw}i z$E}T#Km5ul_&4%AS`+yk&UxdWtC6oQ#E%!Vw0ZkzJ+bcP;8V8<%5kYE+Mw%LWML zQ+F5aN5r$|F1Ei5><>tG?D-S@*bMKJ$6HBq%SDhU7u|ny-#NhRZWRNN=Y{rvk{m;O znBu;LTZvzLE$AmBe|RIueYqQQM(Ni5|K0-n`Jba?@1{MB9|%1EF<4p;`?2k^AxiVR za0vACF{ZowS3y6!1$Ol~@!L4xIC(A7b@k$$y~yVX;O`^-DN@|Zf1dNYQr+wsxta2C zpQp3`XXt0@Hlo~5ApHxT0{u)>f1BR`eEMYcTTnZa&X8HyIWYy!=97>AMi=u1N=7PKNW+ta@-2NNpoY*Kg7NipL^gH7JmE%!0&tvcpblU zu?BE*nafuf^5y*Pr#=Jv@~2Ubj(?XlSjskF(nkuL1q+E};Je`CKIBV|w@`EbXJB z7kxg#dY$mz`{Mv7d(bcStc9J6d$H%-A5+frVaaEZ{x}g>`A|gi`M;*?EpR--3xu9YhR*sow;Vv&(tBsuT#z!uw922-7NO$JGoYA}bm?!@-&tY}bkv+?PMRGGN|0a7YNuK7s*4($i$MNsy zyjkP^z)_oIpB42v`H91f!*csSN$x)Z^7QPKtrs`#3cUWaNEhBi)+s3Gd^B(K(+TLI zCz{t?B8pObUYLd7xRB`{a|G$5@l=m2G%I}%+Z|Z1*zcpDpQPUtbF$}vKH#}%9se=5 z3;BKbH@Zcn{~pV0iub)!&B?E~f=}aK@C=(s|9erF%2UVjg46R;pQAiGqufyoby`QWY2fAeW$W*6e+s;=3z`@AZqMB-fj9CV^&5$wCmkf^U(bEQ&YmyZ z6Zjncq0__nM6pU==KWw!pXbp(=Oh38T`?Q&XZA$jQ&=bJH9nk&DNvqcq`_4@xf1g4 zy%Qq7HUND38}P#yk-q;V;FJB(1FSSjHl7H)ZY%I@r2iQ0b~dux^Er=K$9X)b|8M;T zd>R{2Qtu(3FH)bg{9f1_iSH`rr1_nV#`PbNg0t~{v`+Nh)lPnB*y;I}*8`u6_DSA) z74U`V9`$oi(S7)Te3oMPKQG=;8~@=Y;M2o>2u^R^rvabm`0-Zi|IN;ieH?nYgLvKX zps#-mS|TU^3G62;U~jwBA>DE$FACe*4$n0KAUhrE+rqn&q+(mCGy7qx{kQ z)r&t0eC99Wz~yoJ`RcL2lYOAKjTS3@;PsGm^46Rou717tFsBEpIP$psZkPg}p3gv^ zds%FfT=ps8b^JarT0@z4uP|Ni-$v;q$-2Lh&pS}Q!{qaZHsG_opUugC_xDNveY8+- z@0ITZeIxJFfK*9x^*zL+dnA6k z8Tj6eJel5z~mDlr+ z1fPW)A^9at_xHPizK-)bA0mFm^NG(v9@n0};(x)X%%`*G#I^RGca7oD^C zxEw@P{_~eZZ_aLC{d>}1f}Hk{|Ly+=d|@MSm#;5z9Y4Qjf0N^N5GQHb1@w8I(--rw z=Y@U1>!SYKu?yrM?MpvJ2F@zy>}`+}wN=(z+;}bO$NudE@JV`Lfe+GtUdDPf$Mtb1 z=kr@A=Tg*A5zn3jB{@yEt_LX|O#HA3;PYIML+?WF9b$iAj{O06Z+Ypjpl|Ge{7vL@ z^2NZ*(fyNWKMK6(lAKX~lJwoupr|}EQUB^MzXV>-dzDcNvR>bUb9S@Q_gn8LpM{8z z9_La1Q<0oMTLwIL7V3+bjXhVL4}5YlS~_SiNt)Uh79(@!7$;q1j?@bcVl|I58+ zw5z!u*p;)xBVE5`FrTqO70416k@ zr#k*ez;iE0jiWnBPLhT|`AkOhs|TMz{NwwY9M96;E|h{$`rNay9~oBLbKM;AN6-!) z2srt?t9Q{jYj0`bl+XOjpvkLAe+lOSdZKxN;R`^Y(5{>xXulNrWVAnazdF>f{OfYY z+1c9_;;1#hg~eB=z^v$sHFvQ5;Ui^hR3aK8Oaz{wj{1D{`x zl9guEp0Az-JjZ<+uD&0CF!1D!D8XZ-J=W*x?~%_pp-)#{E9gHP{{cDgqCD@r67>1# zyARjC5%?6>zs?5xuP zWPfHZ^5-uj|5>j4bdb+|wCDL~U-aG&fPcb$k8dOWF``BrS4QU!uH^ho{SR_R`C-yG zt_7dQ@!bviDgGp9vRvvrQ7)e*{XuL;X4#Ik5x@5;@R=S*i-6LX{Q$$jr+ClCOGy8Z z*T8`sGYj`%fP3efZaYsK38yjSLXdHHxNJk80fQZ?f!Z6w(@V}Jc)>B z&(6;WzQBI|{}3Pl8u0n3|MtgofX{qBYyV$lej7(2r??S&b`w2my18Efe}ecX`p>#~ zc(A_8g@cKjHXD$c(!We*zF!C47@c$9?UzjVY?RBzEZ_5Tu(v6Wr(C)}p`0_3oI~B< zGaIer{L8K1HNbAqV}7p}hFXq2{I2e$#9#du;M0FVIXZv%EBf&?p9;}b~=L7j6`F~8h>oz}m>tTjSaoF=m z+F|ZYNd7A}Jhw^x*8JA~A|cSI7oAs~3wQziaOf zm3b;j?dV0SS#?^-@e4c_u{qW zS?>GIeKBV^;iUIVq>t{Ey=D){zrb~=3-~L(9Cx3&(qm1)Zc+}k>x6TO3mPt<9^O2@|i6GpZ**)b~y3XuLoY{cO}*m|K-b|xA|Po z5N8huy8O07l2mhGwbobTpizY5O=FCq5x80Z_n2YdK8$dlvG2cD1i z;h*yc;IrIEbc57mC_V25-2fzs*WlKa4C^2e~N2WbCqWdC8VAM!L1*X>?v zZ}Shm&?Ni^<$QM^@Sdpu_6?T%%xTbrEL+%9&vd80p0n_<{huV?UdDX!yrgS4PkS-s zpM3~=8zTL)9|3(iY6mYo1^Dz{(6H-2+$HmeDu3P2_BRgB-#*z6`l)C>;UXE>DE&-y zFW*`9pwAtN{*3eI4{QTo$A06*l=CJ30bb8_Z7C*uuDl)i?DwFbgNYx)dEn`2-r)I8 z4?lq(oS$5AB=vJF^5yyuSG^PbC!_UwO>iz_Af#=^3J?usLKOPIbaX+;0QVs2S=<~qqqx+Y>!22cU z`MtA0kp9G7K|lF1)QcJ7XNzH*-#7%g^Q#|ay=aWi_xi%uVZ#b#0J-2ipJfYZ(_P%hlJ0N&&ESn5fKPb>tJsKq(6k^QqO(e2Ql6G zcY{x3^!@sy#ouaqB~g3yF!ebd>GSMkz-Rs`*a@_eBzu2_^8X$Aa_z|JtY0%nL7%5n z&hLxZs^`hCVIIKw`6tc=p8vtijPiq&|EKlHZ^Cs4UoL+K{akb}+>@*q`KVr8^a1kc zy`9d#?ZN)u)C*w`pP-xre*^u(7WngLDbGWnCeC&0-;;jzhk)lEg=g!hJ@3MHZT>;% z!IjsyMS-gS`8C=4Qu;pl%+Md+M*h!y6ZkyOYwu3{&ldup9GU%!BSy_@>!1^E1aCwnc?>qLzI-muvB z0Zx`v4>^|a+lcRR2Iyxwop`@_mKa#Ln%+RFXgHuf!BQ=`h+zm$@zaJ zeirKcuyK=q*CLcxW8_!&;{1I5X*r|3o$2c5bS+<8-;wTwJzr&gnThJl=7&Jvli%Oy z_9p$0z6d7(z8HuR95>nVfeGs^jso|ohdxqW9u98Lc`dph##{7knPs@WmG zyZTP@S;28`{o1U4^3nh)ef<*1{~+c3$;W{wc_|2a`k3yKC!!o@qJGFZV(`jmdI9xf zFY-BD7RnVbN8_w_@tjv9&v`jJe;)T~mv4vtIJ>(44V07n51pSp<~rb0(YS9d`7Dr+ zs~1l+fqpK!pZsIeu$mrNzDH4Sy1iWS`KW(hC)w2YGz_fG`J7Lt5B!3o1r+P?sMM=pp)1C)pLQ?Ub6Zf~U<3IW)(tiu|&yfCz z7XY7s6+F3Xmw!A1ym1yK4sJk*JA*%vspktCnt zyj(fzC!F?U%K18!l-tMhqDLrCbRX%PZ>9Vls29#|k6?d(zAtBzJiIdmI`Rb2&rBh| zncm18<vA=TZLT|1dA3qHI>-GVE%xod~V7?8|x^@R>t_+_V#3IC>lK^0(2h zy@!16;rMzsYA=@1&KLfLns^ZDORu8dF31_;>cw7{G2PEX|E^qq#C4FF1^BUE%JVtq zYo6n78P41D&$Gd2@*|LQ59;B!u714-=}L95r+sh8GdBSIJmU8j!6(mtOC#|kIo`?L z1OC#?*|Ss{MAc{cru{AK>hG?cuWsagwQEnmz9{KY zscu->?}%R{1d8XLh2@lp_kWjscu&Qd#4mdt$1gt?1CVDq@!mzuZ{)Aecn#7`KAba3 zSC2MrC;c_h!`I2@Q1VHl`Sw4GV$I%OxTjIN`hMPrftLs1fnB{T=7~q&lhytH$|u?U zD&v!5x|duFd@`E9`UlrR=DrQRb&&pzkAgnW``@4qIrp?D@;iF~IKw+hf4&oVeYDQ9 z?g8+bj_yzUMw#+N6X*|Te{sc1g%AIpH(-|%94 z{~7Wbz6^K|$Jef3*Z4=`uY>2=MEZ5d0-xVi6etg@G)Z3kPvEoX!T-QJ$$s_q#1m-7 z)$0Q|&r|*q?CtgBe;>zLQ{T!N;_U6X=h3dd2L5kl`TqPS@XuAyjvr1txneWZT>(9d z+1T@c{lFW)2YJL@+q35}za?Mq$MzMRi_gZf4LTYg?h{q*llJNyXjP}FG8@L$1yG8%`D9S?l|Y-nD@w&yUH zU$&bl{Uo{R&y@dNsCSoApO5c^bnC7}x=#KdkAQwI+Rw9USIU!vCYx9<_W2g@>F?%D z4iV3uj(OnuXnpemmiu(nu6^N3(AP)zRPQBbX5*Be!;G(MH}^aq^3RVzpHBWOqywYn z)w3G)?ly>%ocKP<$$1G_MUqT@3HTJ}y`BGg(MiA;IG^MAmtM{CdS^D>%cns<8Qr_J z{_VhLjzx+WQl5u;famyKS1~htJ|P1Wm4EJd@ITPutAJ1b9JsURTYm&TQ-4N19in|c z@Fw8(yFm}Go;KY{c{tze_@7=P{S4%E^8Df>z#F6S>EAB~K7WpMY~&f(34-oPe>izP z_-q24tot|U^B>6C+s>QG|3LWFZ$1w%jL{x?qJ7{K^bd8fhkp<=uxIov@R{Xzqnv(z za3AoxXukBZZvtPqH)rp=cIquG-=qvZUk~<4-^rk#`Q1K-TtHl}vTe9}~ho6DI zd@}kQ^`!sG3n@=@p0RQU@I3D$x}Efs*8rc3?rXa4Y2XX1p-+^4lDzqoz$edrrEzfM z&09YReCi&wqz99Kc|GiE<`Q@er?Iw3>jQLHXan}8<N@()SB;zg{FJYNQ@NRmTDFs(fOH}Zbb^T_{F&fDkz4SR5Y;C254`su?_zL%5!WR8pHqH%HV zanMh#6Ne^`v!C-H240TZ9o^=qb~PJ)->{zJ-^Pa_k1MZ--%9y8eq2d;-nb0KI8e&-M$VEaB5weQ>6-pxec zpMBBaC@1@wPM=3}{5#2gfX=S|$#!u5bwI9Qx^?0(HD5WNGjek7^LpUKF=YBKSKK_#Zw7Kgb&&{O&qBMV6Pp6~rrajJfZJyt`d&5q6;dSgE=A-$> z?d{OpOmr^kmm-+ztv>qh;e+&()6@gBmn3&{J|v0eT^A%H%4gxdsMjx`Jl{AIc<$_% znSj?x{nY22lORu?=QUjWc)GYd%kPG4d)Msz>Yebb|9S!VJWBsrj`sf?w3O)%!TzPW zvFAR{L(WC^^Xs!o&-o=+UzT${W%5nXfV1cSaNeddnm2B}mwLDv_HYl=U4Iww`Dh$; z*ipdq+{X^>Njtj_%j@$w;~-@AJdgu@Iz zs^dKK!Nhl>9p>0?cjfY0p1+t{y}wcJP5Lc^Om{nQN5AKvfG?bnc3FnQ_Uv*g@X4Fe zP8C>=pR53H{0-{+W#s>lM}e24a}%?(z}!aIv$KZGRJkfKPn@nv`O)XPEk&xe59#vwWBQ8T38ppxj-*{hF@=uaE5iz1IP6jPASmL>uIs zd<5m_^!$>alMlbYb0X!r{5QZCqVMaypn-TaZ~3P$0nc5F8sY3@8|^l^0P@f7f&{+* zQ>L322PMzGEU#8^6k3m_cZZzg?C;&f@zfN@Q-^>}atiHvmh+S6lK;c>1LdDVpZ`OB zUU@wD_q+!Zy8Pb#4CTLQKjVzvk(4{@_3Ul1z;)!48wLH$Rj6Omtl0A^>c1x%e^s6$ zf3Ekrc6RCr@`=_##`Z>e^?WgBd>#Fp*ngOf`VTKV2YjZZ`M}4H2A`=l(5I90OItxd zR|iXYJH$_B?gyUmyTel4_Wbm3#Cbo7)7zR?p?%3k=RkiXiZXwA-~smjCi1ypU+|gb zI=jo)t``BH=Xn1((w}-K@o4;e74tj)Y1Bv8-|LkAq_%gH(Yf{auK}M)e*fB)@2jLD ztDKED?qey6+p*`=n}AQB0UXwwB;Q;B-V=SNW*z&(^OqvO-z1-RioKXU^B(UU@lT3b zDn7@4zKCZ}7yG?aQNMR7{mdNwjH|z+TsN8Kx{32Ymx_5?x;sI`hq!t)0(>@_FWSU$ z`pkjQWDn)Jf&G?pG@gB?3_dfQw|C|EeyKjDPqx1ff8Z7yImmUm!{tc+tj{l)thh2Cb?A-b7Up@i)xdbJ6FkX}Iy1_o@Kb$i;9Q{uk zX}3}T!$0!VNVhTi4$G@A0zS*{2s=A}3;8d67V^k8 zFniWtNcnm1w5ZFTPcMf&`Bjj|^&d{7{^vQamu{Xt%h=zW=DmNezWn?3;Gf(EO**@} z{LR3pB0Zn`HQ)=;ez_0a0=$m<&6Y6T@+0IEt!sag{$%z{l&`4Ko}=mi7uxr*@b}s9 zzl8ogN4p}Ne7ytwbJ6-&(>;_YI>+&CuB-N3oHPEe+>bvJ^s^s_fk?OCp7Urwlf3Wo zP{7H%wvhgB@c&Mqbq^8W5AE84r2jI@eZCF(eGmDcc`N7_I&wz&6ViY0V3hCl`%%7k zF@fFdLEp0!a=P;R^>>JWN*uC0OUZxJxxjPLcZJ^b72sulpHzm)_AINT{qLKzu+z_t z9{~M4_m?{VdB8`3&qn=?w@dm~U-*6GKd@b1@j2jgQTx^9^cmfMcslhnmxny=JjjZ( zz-N;E#`|axA7wvqp7Ud4mWw1AS`7L+-lyuyYdPhgi{yVT`OIAae=cTb&nG`d`M-pI z&TY>JzT~Zx=RIgI-p2mSuQ^_xc{TVv#&UU)$gBF9`y?chZE5!0!E#@C`~DVo?a}T3 z2K{U_AA4>a@SZcl$9=c!S_vxud>8CZnge@QJ`Q}Q9pi;|mdlUDjFo=jO343v%5%do z@bbB^a~bB_^W$ma(fy?_oClugxlz=DB*{$ypSlH>gW8=W%S3;g?&OK^KPQ2G@*yG9 zc6|Q+Lkw9?e9?D7KmR${xtNnZ$8vsbCK|V1$^1@lKz^T3`M*MYNV-vvoSaXyf6_P) zd?m|qA29%xb2_?b_1WJ6pS=kD@1s2HrQno4IRoW*HSw>~&ZoE!;YQ+be=q3khoGO| z5WhuUS3Xnk2ELv6&{e?mPwZ`ov*+u64t)B&oZ*lvN%o?CrXv012SHzc5G8Uk`Tyn> z@B@=eAwR2Eauw}ib`th*ANBe4b>K4@)uTo1f0j=GAJ_jJd6e>h4Vr(7d@dRQzVKDZ zb2IUyccVPfzSg8r*f=~oQmBj<$HohVq|nyAuFzi^D{UOCjF-l`*EJ7~j+DBKy+b9$ z)s89jZ7UWA21klRgJ+hKrq-@PUvFQbG}1S=y*zGV_q(}sL%zF1qZc(S&rtN2K%J#< zsPP==4PSDES=14F-dVCm9w%WcM3ykcm9SD8cP|z;m$qA$6r*?^EA{m{I-?ofSn}b5 zYPoN7p>NaX!a#9wDCx+zws&={E%XmUXT5`kkY3XrEsqb5j#P}-Xf~r1H$wHLtz*Tq zNkkG=nqtOfVx(3y(4?uWeNkaWTX&(WyR)r*m1Y}Q5FRcK_m#INHja&MwTO{qMO%la*AK~*^=R+urM_`wuvFU29J*K2 zob@*his++wQ3C^I<5rP6A{9v)s|@?j+cfD85Rx!Ll;u6meGE(nu>^Z zQohiFp9X_21_m3Lq5cWJ4muZF)!N?L*|fIpt*tHHZR=XaT2*z%Fpkm^s*H~fj%-Zi z&roRuWVDsOQL&Pm?-lz`_qM-rczkfU6a@=PQS((_=&>wi5rejBVh3T#v6Y6Zd+V6w z7OWL^8Z;F+x>R`~Nn3k&>#Ekyf>#@}>BEkoZvmc~Z)XYWWu?_ky*#ec!XKimt$FN~O(Tdc6`Lp2{U>l-jfQS9%B zpD6Sf$BTHImXTI@&(651*;&3jR-Dk<+>LkOdkPh6VAV~li={&?>uBz7_03gn)K|z1t@k8(Y3aI~ zR;+C;sD&cI_3dpZwRUzjtz}7x4bah9Mu-MJrZTv3#2oOtmO^v)DXE=zZ^*YI$M&WL zt^E;aonOkvO3mO#&qx{{QrYG<_aJ~j@DpWR+44sEO?r!1{M zs?fA{RY#{*=lV#Rh@s{=8GviH7u%bp;VF%bkBL;H6XMrXRO`RR1Xyc(cc&;)Tvkd4 zOsQE%YDJ|ra=f^)K}uN6n^jK>${S{7#Qz)`2@){_(9%ko!zQAzkhm^@l)Z0tLNih> zRkp?VLR>6SolS;TJzsxmpg1u!UKlP`*jkgjs$hqa@tcKWrBB=P@zDud5V@d&2ru7K zSELgw&MqH&Dph=y16>Mnf>~r$z)u>KaqsFtjL$RL`vr z#(QvMP}V_IrF6!Gj48?3%0zLzoN@GNQQ6xQBRhH@G2q}d?hDcZUS0>pns9i~IBY46 z4GzGIT5Ys0dGGd-qI7)KX`f{AvD@Zbk%Kkwnl=}B)wr17HlG|vn}1c%NQ#w_Mb?di zYYpm-^yN}cj;ua{tkSo(uWD;=H7?e681Zmve3SU*je{eStsN26;HD<+UP!s2QIQyl z9qB7pN@@gTJE#o?fBU8{&7Am>dT+|&6Dp%)7#*b~QV#XfaUK{=yl-) zS0hcW|7?;)VC{%xU(tS-)Qw^#!nI15Cwhkl`)Wmu4Q_F5e=57ZQXDJBg{626$rQFx zW>z4DMX3`qAli-|e0985s~TcyQ$HfT+l)n7GB#GM#*sk|C2K@$W_B2>jHNPdu^El( zmo0jtcL%Xr-=5=Ti*_%|jKI)nk?lX+tdy3Z0}~@MnWeKC&ig8Av?P;m%7~1>n>*T9 z7R23EN`)brKMQS8>_f&%Lqpb8IBBs}9Z|o|?xgKeSL=!ETicsk3r+1C93hEkT_rhv&|o+no`;=Y3r65n4!_p%~C}q#`88@$|GrNZf@=B zDzvnAHFvhqE=wM$JS^=31lq4JecQ99E zTy(l?U7l^YM>;yzwl*fASJsYkto#5cO48&0_0ayRLC24#;R(8zEs8jI$J&XMISF$2+wbQjsYb zou*t{Xld)}F628L_m((~$6*2x(~(pnHRV^=jYB-#=?^69A!%JgkhdyAM=XIqnbSFn_t z*_MY3@#HF*RHJOTvj&m04slX^X?a0B>`7J=U13@$4%IR*LUbSjbvGM4iG@yFFH`X9 z)0CGXvFjqbt|_0Fa!1jCkdVFF*>TDS)FtC4u11!e*retyl6)i`neWP@!?{MLg9upH zGz}Lznp$NXpR*lSuA8SDB1qe*Fq{ zu`W)1L?%Hx4Wng^_QYaa{`W~RM57aCZ(Z9Veo}u(BeJ-`e(8b$f6A|AOFW35*2l6L z1Rc=m&`6gYxyWPvQgp3r#M&xdx_ajp*Nh|EDe22`_KrX>;pm2rHVsqBPWH%Z(8lpi z=q2(^Kn-C%E&7t4LbX;rY|FvVAw=NhZGq0=tyS>)SkJlrOT!S z#~-;D!SzRF^{Iu;~PQ(bkv;hKe$SZDG;8D0SPo6q!s$vk+{K zK%;GXz{a0rrGde17Hya&SB@~Ht4Q(1bi^!QHjO3bJy4Kwm>Fa0ko|mzNGo%reju!T z{j86*FWET&otRKN*QPFNk;p{w27S>Q=7=PkP*A%rNSRs1nHV1p#giei$}(IW+Z?Q} z4;7_*Y?!ZXzE`K?OWQ0UbG9;9>8bLr(Mfa3G_{HHk)x6;=@I*|CeRWRm`-idPX!z8 z8<(nzWiB>JDP{y*Spdm^mj?jK}KEkIJaLZ&PusK{%xAY=I~8 zF9w+B4mX*28isX1AC?m5Y^1=Y*lp&amSNaiUa{WRBzyI$VtX&6>MV&AlaXYKD@)Sa ztQ{kv8m%fr-_y^G0gT}eqH4odraOr8t%K_f8+#vcKa7PB*h{LerG;{DNv*wJSG#1B zO9l-3Gxol&f4QFKE+&|D@?XZ{I zf`!2?R^y~MEMte%t1v86aBS5J+SJJ=An900T^ExgglT0)~H65GM%*tE^GK&4K6~Ey&C9bwc|7>BciE+4493LO6gs8N%iwt$^Zfc6f zaoJuI;pPv6xiMXuz@iWOJYke<_|R3t_!V`r9+!Sf_TQ3M+ldOp$RnU)e zUfdGOJBv?4mS!5%76BcK6jN2jn9_|5SHVhJ16Jz3lI+-w*(iO@2z^8QW3^tWg)6-@ zmNn@k+|+NS0$p}xlwzS&DHc@b`c^=%kRatDUGFeedCEX!!!(b@ayi^jqbVu}4{HNv zT*5})yn&&v5ItGYq8dROHmmY|m$V|J%mU2Q=^A~|0vpc&i^8eprZnhzd4_(nHs%^f z80!d3`Nt7fFg_7KlbdEPg^aNerYut^%goPlr_55wnE7DJEQPYnGSlcO!z^q}Gf>Jn z3ul>g7CL3?0AuLpsJ(Y_K$Zy;aQh}xW^qI)rK7Hr(??_z$xMc)Nn~M5AOofBvv8Jq zG)bSbk0YR#Xp2;;o+u)lh+l0<*{6^(_Q6!@6v{HwMUs?{g^YzQo_K*Qlzq`xgY@kb zG8R6VN|8dISullfoWgMM+jxZGfI((ifK0MjymX)$i!sm8gm;T~T#)Ww-PzjIB8zUa zZ^8&`;L23}K-yU~S%P3TwkwM63VXe}{GGn3p1D2@s{@w}XaR+;0)|1G@o47;Z4=qH zG|FlW6sV!|~EJHFInPyW14o$PE z6PA{GQ`ZKWd6zxEeZ{h!50UK3l#NXv4Hq|;+;1IdoG#@ne>^0IN;WE%HAHQ}#Yk=Q zqVg^mCuF+e^wHjkPUmY#m}S8IU>PPxJibZi-28N#Vb*CM^_X-Ir6^^hr&1b|t<71+ zYO$eYI4+}-K?^QnrUOv3BNjU*vz3;K6x~{s4CszbK)qHoEw@A_MncT*HUK&1Fyu^# z6~M_&a$FpXN)(R5l6M)Y8&v7OSBEft zkO`Jjjup46!D6oi=UVZWt#f7wW$2`fq8Y5L`-?pDa#6NHah^#Oq(dp&Xtc37Xmho8 zDyE?ONk&G^sB902e|^(v#olo&G@_!OTa7kNMXgkKJuo5nI=vq!LNybH3}iE6m@>7A z!_2$ovC;9-KG`agLE~J5sUG%G#cHf&QQyHluI55Tv@ISoJW`DXky{g$jenmxjGX=&KSQl*vS>RAY;MeWkJtuPn~E20wM<5asI| z8m*LqD7Kld1CfUNoJp`q{<%ow=Zuy}ja+{Emd77@+S#%1MQAq>&mDH^~nAFNF1B4W6_a<>b zR1+(XZ8XBn%MR2nm!tg!UpNf=YHce`ObKf~43uSP?~k78k3w124D}?J3T4375Yg0a z4Ma`{c6fP!NFo*4#pZHT1=>zdFOq6SmsE`2N<$hK3y5Qo3B{ru8)8{0;EK<2cVXvH zgqwquMCEj0l7x_w$S&93lAR=k?J}(DaTQNrQQOg_#%)d-_M*ooMhc_4@mP7;mRIco z`hag}EJ_)f-cte(xzaX5)k;L@p$wtEZhaY_qC+xd`f`@cAsI4#*J_dHres+}Y2+W8 zJTGh(Q5tVfo+gVJjmRYPJDJpYs>fqW*DqCTY!r>TXIBLp$EvkHPw(npDw&pP;7=>` z#3ql%1rD~NE2lm}9aFhDIA(y=4ow?1YU6}#@{(>ZvgIRH`%(n9KP-JsyO$`LOx%c4 z*CRP!Y;sUnCdr7V#vvW7rJAgm)7z+EHotR(wk!cHDD2MXsuG;nmA0qPE!Qh9zjbk)Ikb(sU=W&%wySYIbxpvZsX|MmQ16g* zC>wg0E^4reYXmC|OPA?+yb0;;*x$;8bZOdkI^Kdh3f2KF&=s-)NOpm7P${?v21n#< zfciP5mPK_t;3uc}$2X1+mvouhqxv&?EenY;afHI53!NsNoz*ZB$P#QevJXc)bUips zMh!e-8b*t@mE3xP?dGr91qdY7@lcc)>Y7D_+$N;pt7r*^befUsbX3%86b?x{vRZp= zreRA#s<>2V9qK5gN-u4*((>w^z&X7zRjHUkNnsyHkWEG_LzQoAps!(x9GjC~lB~WQ zxommuh(+}cOM;liOBuRz1-9Z_G=^Ti>B?Pk3UvsJ<8k~Tma2S;{q(QRd zz4iw-DeX$1876I1Y*jnwdOpEUe8~&y*bPqo#X8wQ>1Ppy#D|%-4?FpBs6g%p36s{O z;;_%6?(nGcQIaP)IV#IOA)f{#R7P6|Wi0J$sOB6A2AUhHY#JOGU!>IdslUcj5I>z% z<~n7on$T?Qvy$oFeaa2TAL56 z(AgKflpYp&8dNY3s34NC%Z6vBN6jhx<}oQ#86=x}RU77arMC&En1)>OaPkJxuKu{D zGjpIxSm=EOtjF*gY<>_hWA-Bn^HH3$(y5JX1P`*S%AEVLY+67)u8qmW2um_5=1m4* z#^Ti@Fj~}>HQbL-mX44xlz_d(pqU%Yk3Yp02Bnn~QU%yQ;Lj+IEXT(${7>5o$EU%I|XQJAJ zP)sx-^HTgJ6P)@>0O~{l{*uiU{3W>&7p`+!?fya_V`MWBj&HVyQm&LH`bVwXqOS$P zv=`%>&HhSJJGL^Y?ONR=ebz#o&NcEk?;l`jrClx{9DR$%8kKFiw1S5Xk@Fs>9JP3n zjPAspu{~$yG~CN`O8E>GIt!vqMRR^STs!u@@#Wn72I*qRXI~ zo8)LpcIMq6pAn4@r`#>pCu461)9x0Vop?9MiDCPrbXUAq7CAX3M?`#I&xg!^Sjddb ze!-}Mp_Fn&vmb%zWETcxj!4JvcD`sYti!}2wh(cUm(1LH)J2Utw=_1C|u)>m^7r3N$`>k zDO7Yv7D53x=?G#Eouf;ET2#8zE)dfbJA6m)=&cw#iqm^{sHhA-#e;Xu@U-Y$TB&mD ztw%~IcWn)0zVb!BJL z+U%GS%vrP4EMpdT_*30Wj9C@ZDvGPutP)wHrW0UvFL4!?#<6-+tDPK>K@#R2qDpU# zySaK1iT*j z1$CuBcapl_diu%+Ke}unpeGD`i5=0h&03Dq5DVxl%EL!T=eacArB{!JAWTI`TE7Xt@Uqvoga zW2MctJX%UHIySg*2ku1^VYGJ>zEXRqx<-y1STV;QAw%&TZpvgyeO086w5s}~t#6g) zz&YO<@y=Cvo>H4-)D*cGfMKJP_N9xZNupItlG+W2Z3)&Mk%|C38XWNSpJ*{%tJ@mO5y8-q4uk!_z(8FZGm z$ZV``(a}-@k2F@!XS#sAC;{`Vy0?(tR0WZ&gR6HeM$1d`Bv$5mD-*ILZOiz^!HycM zR2EVa*-SH79BQ|n5!pF*l)q{0hiCS=@b2Z{dHY$MmUGy&ob=JXS=8M^EY4)5YrH&er z!_wxnyJAL$9tLzB(3;614n^!$%SN$Q!lb7s2)Jdcf52MS)5PMc5;wto-zebYB`%K3 z3Q3%KP2O~izNNlbHB`pv6PdBQbj9#bx0kGQVJxDo$sCBgj|_}Y3N9e4NvrDz*5p~) z>kuD2BF96<%0g_VP#KnmEZH6Est9NLYvAKDH&z_0eq#~FnHZz-7`ylty%fuObe3(L zeJ@Xpm1VnBHs_IiT9Mpci2Zg8o8CKW;_0{vKY#~W@qXXB+s*}RCP`#cP$8*P>5|)C zq>_kN(qysR9aCm+m9p6MHS5+yn3$T&0V;b+ZgpFH5dBITp`Fr*jjw5xS{#7(yr2No zTKH)7vejr!(7O)ROsJ&+n=&+1$1A}of@MHNZL6}WxX9AWD!s&;b??L%rgQlQ8Z>sp&|3# z{$=z?HO?h0I|6K>S}|E#(bePtacLM&w^ecNYL#kJF}Mj+AdI2?wq-$d!_}ZnY=+q2 zh%^|P3&=S3mW^K_o#rx3Pt8mAzR84suw7bH9n~$sy2KGs8yEtX?SKGA?*KWoVBKQu zRn!d_!Ofkz<3si@hP1jATqwvzWrEu=alLZg&Xa>LE+b%lP7pe|t$nd|Y3vdvslz+j|`!7s~H`V)IR5H>BPKW!io1ZBn^AvF+45dhqGCQe_4 zG#f(ej(2Q3t9IdopfGd_YHOEm-zuaoHOLhn8C-Lvd6b^8?vydxd@cgcweE;SPSsVj z$dt7$h4)Sj4vi0v=!%Zq8X-F~aR;Qf1S$-1bI^)ObLb$`0AGXYwRGtQVX;B|q1#OD z5m`piJoI7N zidvGnQ2oe;dq?+4h}RMKD_I@XQxI9c)7@vFm-3Q@QYoh}OvMBg(lM5M zNilU6h+}UnwM?u^?@5&*khRO!i?u!#HHQuyI=6aXhrn)iPPW|XCNRALLQ%#R*2*1v z##4Vl%OpXRDp#2soo3Jn1mtB_t$IkwH{#VW6N$cSHBo|d<)s8dlL?zq>C0xg*;iD25khN>E>u`=T#X+;uoflp2&b2k z8B3#4fx=k=HGDY>X>sGd6`Ky!05~wYn4Q8l&av0hWR$t#%GKiNG}t3o$6>HC2;)0s zlK>{m3%8 zrDz&&SplSVlf+qR6Qiq=IV+3BaFHD#!q=1RrQKCE)dPC{L9k~^RwlnQ9V z2B4Eal%80kE>8vwdRs4t=PotPamA+cG!8AE-umL=Q=~zliY31-lcCk{{w=G?S?2ZR zx9uhMcUCK)7tVVkX|qgzAy#X4SFkc5124Uh)h6V9l)USAo~U%%!nCY*q=CI_N$T{O z?hBTew3&8HY(KM~9N}ig)-1H`mvkuQRN0=hQypu{L!|Dl4zlbXO z`_-IR7g+1{r<#WAg>cL)sQDiEjS7sUNt@D$Lfs%NxIeySwd;h2JOq{ZIm=2;?%)rT z3xc-o4zLu;85=35|E-+4B1>LrNaE_9;>`e1pqe9jUpd*YGyE^(j#%BcnITWhkQ)u{ zt~ucm944a#7#=wGyjNd>cD@C+hu_vpxCm`k+;5Y?x_J%}`4^$%=MbUc=+7Zqem-qW z%=q}LRRTJ>{>t6M;!x%1?T}eFCd#&EguW3Nm6u*$sD&%NTqq>t7@bJTkk^2f+Ge|) zfXX%lCDO$NC4SquYO3{d4F~}8}a@D>0x+FvUDd_(G z!lGsM8rB*ieFmMRlu$}7`y;)xu{Dph#tR|D)7|gbHpo|%i}}Rxo>#jr>PWkYSFZfB zbG?#`-D^fSDU!?e1?T|yPLmzXb=;gfgfjBZf>_lvm)g}tLWc5~$Xz2Ymtt8$qB3T{ zY*|=jbxU_w8_)VX6^KJE*Od{?X_^ zPCUyj;%GF->Q~*nssN>oaizzMdX_fEl+OFFkZBdDl%ZD(iEH6X5APOIW)Y=v-Yukx zF{QJbD3v9fpK4TT#T=_B15B0X>VoQ9rdm~@zULsn(L3^U#5aymWUZ%IC zU{#l#V(lN2{?M36(jlK2l`j*t$Zly$ zHGnS}SgJ+2w|1l?IhHR9%4&}IgEU@-6|x_55LZvjSB{zst2#T@V^yTTv{6q|cwU;N z=i;R~lrcic%s!`JLb#$L# z+6O^(1r*DU>VviQl7nAqb4CiuZGAyDq>Jky;*!w!nKqQA4U9DOas)*-#+yIXv`vqy z6Wbf8_UITX=sAPVcx%%tqNuT>on*pt|AY>+-0SkwKK|k>mhhABoZwDYpRyFT>`Jf( z++#K>aH6RzXXe8cwO(Q~vm>-}*Y8fbJftQPWZABH#=YSbTi=smJF6l=&3g(m$F-Fo z%wWpPFr`cmtPn*j@?8y|1LuZN%qoJ`^umCA-OTCFN><#0Ux=n?3PG`W**u4`ufaT3 zflM1qC9;`i;R75VQYHa3NqQ3%MLu{V*Lq}W71wUg=&)=N(Ywb7t$L;jh!>I-_H49W z(2p;Rz!C$1W}5lf2#Lb)k2q^i6OyBcKBp>p8e_$rfuw5K$LM6TGK0(IDR!NRc~_m7 z_nJrfS+rBKPoQ3Qc8RrSIMqwR4HWyT5)dgj*OF5!p{*s<&W1+AT34;K8jZx&9RG{R zTKkM770)Vgb^aBWL+@}sR{g_N8_WQaY$$A)8`g)wo?R6UA=;}6CN`^bv3B4J^o-Yr z#)a0VMp~P-e(R6`Ro{g?PR~XhlQ?OlRvk&s#ad0$V#@$(zYY+U=nJ$Zc-{U%xpQ}L zSehc)hUsOON+j0eEe#oxLz(H@qO>%ix(>XLu+fU-RxvHc>Je$=1GReEOW$`$W!!GC z_rmG>T6#K{kfvi<%oeH=ruMqBEWJS)s==$cTCQRhy6?42-V`C*6OLp-A$v@t4u4Hs!}y09b+P)08yk`)bZLX+qIe&YDDlh&!YS7|ADD zYK#H|4cmlGMLUaH;Fsefx`<)E-8W0PkN$Ou6Kl4ofxBpFMa z3+wgj(7L+gtEhcFz%-#>52(@g#;dA1oaT0}OKOuq*}<4C&*=54xYJP9WOYme{?)!q7jmrjLCyO0PE->7jF7z?as=@3nG2 zHG?i0#+u_!v!7;1X))*wV)gW?OCV&5X`-4@rn;K%*fIyju%Z`jiTYJ?-;H6~Zo)Pd zh2<0q;fhXbNKM$U8HMGHL%CjAVH9?v){N4RnFNx%l+)HT61UQ;sykw%~i79*?r)@gOfA3sjh5UVk1+^Xs87vmUI@X*TLP zvZ-54KJIqSl#*2H(d|`Ms&A)uZ@hFHRKT0J%+-Fg zR-J%^x&yK1J2mTsy%W|61=Q!TPNZ4Y{jQ;S(!|JU4e?_oyK9pncG3&tJ$2y+^Oc#S zX!&%KL?!_j6;|5DZ2QSG8uq(Qk71}6<@pb_NsQ?tObx&0QC52c-nPao>_*p!L6@yY zgtR}Xyj60U3{pGv42U!hvK2rjm(}c=GPr%#V1`XEoy|)U`DcR(>+GiK>xx;(&KzjK zUK7{z_Cwk~jFL9NMr5fR`@Cz$yVcX0k*S(oZora-6M_@CdMp%GX~k2^JyKHVZ8+l` zmnuf)-h;{#cm;hea0nVqE51dp#uwxKI3;z{p*v90TJF{kS9pJ=RJLnTM@6FhstS}6 z*um8u$LlWCz9BvH%+H^&Wpvrp`t_VCr3AH8()j9y(Tmznv`y<&@{I{k=ee4csG>bck(sI~ARP|fhadPjO(LGutTRzS+%)H?;=PiY4i?_6MXn{LMQ3kSxjw2&w z7-6dA2BH`b!y(^Pi&?fQp5dB>%`5uOsr>MhYz_ z)T>V!W1wu#mm8F;@sO|}V?KF5g!ry@0t&dkQ<&;7K?%`02msA$8m%Gl(o4G066$NR zV=X*nV^??^KmUS-j4XXWOOd`*i(8ad$|Q}@wCuB+F0yy5DEFGGd}?1nF~cH|tkeWeGET1;5Nxn$F8|Q{Pk_iZ`-(syo zg|^zoK)&OM zAP#A$z7Y=20n4R%9W6K+2c#0oC1LWJSxZWfyW7rW3#rwSR^?#iqL6aA56BkZ z;8lNaKIIldDG#?9I%OoAf-_8`@M7IH>NcYud0@>+e)j4Y@Zgh6(ELC9>QY z1m)`_F4#NZ*~!n8n*E5ERYUJD4il1=>*71 zCqPy@eZ>`?3Zuo5k&fk)rfWbXox`fA0_ltdWO`BoqWReG^P&RB=_GTFAK=Nm!a*87T2SRAMQstKzl}R#48Tp z^#J5Au6IxuGTh%Mi%;6t4wmH{sBU-HkhmDVZ;E<0*Ky8&qY=-5oP~+&i!~=pHDbq;r5daI7NSc`O=gYzZ!#;5{(CN&Ee$8LOj7EU zYp{P@%ZO-Z2Zg{bHaY0K^8Qjir+xRD?N|xexWs~fz069F$XCqd&ik+|?L;t#8v(KA z+Koa2I1)OD(XU%O_FR#ZQZfgJ@r1f_xrV~6*7Xf*oFpR~t+E)$A2sQV(ih57kIVkg zEFv?!cJl$31(6VsHr8ayxQGqKh)^>yrYAjzAb*Zfnjl33xrk))O3dfAZ+O{~h(nN9 zQu|EQppL}Nz7cT_GoiBjE)FxM*o1s(hn-KN(&f_#J6dCxOF_X7W);d3M^ceC$QhAr znGpYRN2Cd`qkZ?*hLRhzN4 zmR30}5}cC-kU5HLkhDU<=Nb)?_jMbuj=#Z21#(8B3o%BeptA+HIwM3_-tTOdW;#e+ z!}@{}T3jYoMY3`z5{eP1L4AeZ6{t%nvdERJYgy`)t3RPx{bg$HYHe-FNMe8!1+mta zy9_3Vi8N|vP78*`@&t1p*qx`I(l(kw29>!LYBa#ja)g+bue_wX&Jcwdj3AvZ3BulV z$kd1Vz7K1T%UflWn=Dwv^{P2#5xe42AWS?JWD{p1^H#dFCV#Z=Flei0h*nI$hobj5 z$xoXJA{jQQkc|nOulLn2NySVjzdzEul%wkTkw zcA~j(K#zuV+F97X*4U6!Y?$AIeo`ywaJDa)G zUKNivxJ7qO>P)lrg_RZET9?F_Q}UsMYRx>V85YpPh>fCiFx(~DFe)uo00eP z)#JW7;ln%$9Tph}uYxX8uvAv_gkrzilESI&&ssc8D z^CXswlLJUQ!qeon(#m(KeLl2HjkC{gWXi{~Fg_%^L2X^E zpIdJ;V%3b+T{TwwHS-!kRnSmZsW{}LG>}GF7T6uqa}M$|ogJtVnX1<2CZt)3$Q_&# zx;Bs#%EnYNwZvMOr~_;VMpGuLEL{`I=t{Y01h-llXP(M)`r;|R7}aWrQnlxjWAP_oz_R?Yp+H7bbN+^n4aAQP_2D^Q7ek?hWbQQ?rPL3RoLUr z&}aI)sb2J@K{wFM!Zj4D)UHMIxiFP!OtlsID418OIv=5%(QCkNGkd1EG>vSnsqv;V zbbY>Te(-ATxT@B~3s}`21u@cOVRbc|klH{E$uPybgA5~bhuMy*l9!=&O-rM9Smjig zNK;O<$o+Fz3rzE&CRW2PP-AoxeWqj#4n`Jiaj>Yea&+)8OS?uq2ETuFKmdf_p= ziG1%{FPTk-hvk-eIes-dE+^X(MRg1`T9PUE|_{ zw`#^`-`(+BE=HDnb>dQcRm>?7*)S!08T~;ePEjkJPR{iYj@ifB^{?HtqCZx)<-7DY zoKpHr`zgtQ^l(O`f8?ysnhzJ?{d6uUD>C{~P3 zIJuB@K1cdxSn3JbyVJ17>Li^0mJAd|?Ry&*?5&iFV||;{i&HMe$l%Pfu_$~QWOgWo9+#9{8h zGw5hdAP&OE{B1NQ^&epDcM|)RLNFMR5G(OA8kZP&I5>hr2_DtGZvMeMV zGdQVZO>0Z6+dWRcpnRy7Flu2ADBS z!zsf6%Q93}Elu4`DLapN-D!Nv%Ed?eThY|j)|?eAg^ZOCro2)pE0uiZCoD_^p)HL` z8CXmtNmpycjGT`p+t=hB9scD6^&(7>;Z*RBJ^xfBQR6WMuBMetklR1(@xJ|2`=r1<=!SP z6*VudQB%<pXWTk=iYOERn>#Z|NXr26Q=L? zJoh>0o_p)=%PycBXN7-7jk`0|3iR@aNGJOq@LeevUD7f9$p=4(j}iL6=Gz#LAv$af_wp9^P_uhDt-qqAXwbM6ALqxl2z!sVYfT`W z&7BQ(-Q%`>KIK;J92txP{ZBvw-PXtgy~!{~N=9p-3-W_L1{+H^qkN^oB1$D;Klc|U z9ok;oXmlx$&?N(jVHD*M5i}pp5(N| z|CDVp@DrDo^-p+ImQH*8OXL|mpfsHN!Ntks4=#?UzduGhAaL%1ps2qKg2MhjhzrwB z2)00OW8=Rh@B35UMYcn>OOfj8EeMlSgW+iID^}Qm%KE|mINiJI{ZG&*-L_-Lt|@=j z*>7j2)2*ZIj{EnT96Gpvx4TEnZR7kHhuqoL=_}n4hr4gYnO~p!Rkz>htz5l&?WRrg z3iH+O3gG5-8`k@%0i13l-Fnks+Ul32QVVfiJm!yjbeNQ>l1s)ER{z^@zQ@q-D_ zj0wnQ(`|#OclCszHo`~9s~xfB^u03VqlWHmlRJ^;Up(jz=zJSoZhZbgUf<`*ooI18 z8E)3RP0x4{9rB?M35C4sIt{Go+^Dk|PtQo_RN)*$$Tj9jgA zXL|hdmF&)hsO9m8RV7+mCVQs-utCH8RN61gosE)t7;HPJL^@Q{Ak_D;?Yg-B(_y*b z5hZr-ERm+lm0;Ty^4*4yvUv=C#^KIO!2XjZK2|2e%?DY=-I^}lEsR|*0r_siybc!? zO)HI(yK%Hxsp&AX?b~*6MRd3a}^Up zEs|AR!*o`SOoofJ!DKSX(#Z%4WHN%mbTSBiz0PP7!shtvY18RUbI}1swfA`( zn`Cuw^-7n}WV&Q!5Wnv$t#p8=H4iNuT7atJMrcAePRv28ZC1#fk(Z}!S>^5^2pbtv z*gkWaE%As}sYN8c(btYNpMAo?*Q`8%WE#`&)C5aF^6i?WE(zs{35L^}`!E2%#`UjR zvmQ%(##NB4-o46}PcG`>o-=>SQkvs#D8s%fe#F7d5b>3)+*0;Q;u?vPMthf=g!OJq zUyFN*fxovS?G3>+ zk_<-S6SfZU>Q@9N>4K85bbd0BPI^MJvmgiN@~_*69-GkDf={Qg!yUk4>y`w`L5d8x zb(wx&MF#wRp*}?3_>~lg34MH!aJ&56(^=*RlU<*<&@Y)$0G8wJL57qpOFG)t^V3rN zEeo)_Wn8Z1yGeB4cbnd}d)IdNEEx(`tvqj&?;Q+pT6ykTXCe6z-OJQuKF`#d{^Yxi zc4iWNCiX@(?$8w+=~@DEtBGKIe`w?GTeVjC=E{7vwFz36WDG~Q$+L^wZY64YjHYF7 zB8P9lwnOgaNUkT`o=?=))NNI~;F7@<0wr{O$wCyLx_XWX{X^^B}xT`v^;HEuVo$Eg@u0(ZMl zj9;;H?~CPt-aR(9!=}Bj?9jp8h2e!)B=bc^bSE6vQ$E>m@DD4VUdP(Kf2CZ4hGGUzNfwj4BJ{8;^k0p?NvT*ZoGI{;aNqN$0DPEF*Rr#{GSo>-l6@I?)5t*yPIm z^c!FOK?dxunuR~rpu}BFylluwxO(X)M7!Kg+Y0NFAcu8cFtfr)w_R|zw4kkeV#fCn zL~d!8H$TfwULe2VNhc=5?t^vdpiA!Vj1R!AOs2NEN8BXbKPl{5v^}X(y2UTWS{x0! z)kZuavZz?KQAzm22?|^%xl^cUr@1Y`!%AH9d_6XULc#e^0XRX}E6DLEX8qyk}0VU$gdHi*_gaEGIr_r+351v?UM@ zBo#rL;y$-0ulsUW^w+J_vs{|2zifyH&F>qB zD_pyNtGn5tr1!9BzJ%hzAge`ivW;uqQJsI`cF-#UYQhwPlmSLt%`+$5*|Z7wf%?sB z*XzAM)~ZzdB*+_#&8?N2tX%fK>5pBLM;4@yy}#vhM_kJ+t_J@pkjA_raLjN&m^UlyD##gT`sLWDCKW$NZO{454vV!`{P&4>BBp& zJ??uydM6$g1>3SS_3lwkDtnr1{A1H-gv?U=;-&ONF!i|7^Uryw{p|pMOj{ZGU{yo8Zeuzhjn~+3X zPx$Zs$-MSGFOONd>uG88@It_J`y|KHaxbd;Vsv^~Du{8kXw!x3E?kQ<^1dLW;*Wh5 zG~O*L$z)dxavGPP>zRO z%>UIwXy6iN$3y*1_+r!@Fo@xrm^=HVaTL|9@|E^T|5N5`I4RgQCbj)M(Qae9c8E7SDx8Xakrdn zp|D=4_U{A16C?6>@|$q4hqs4E(uc&;=NuCA=Y#a}up9@u6UY8ck^3ZwyWvgmXz-#B zwMbdX-Ff1_ythd=A?`94%$a5$9n{eaHG9L`O&JPErH2Ed_ z+TvkX?tarjEy4LjxBNy$?rwnt+i*9Bww%W8JD(UP4$dtmBU_iaJi%#6w}@*?-FhYc z^M&c3JNHek2!~!64DETLyVoWie|kDRL+XEExYt2qg4boqpmbKcl*{D1ZI67-F->SI z78mWGFtlae59oHqiexuNvic&IYz)6wBUc-4at@<{2KW)kNV$7ItzSvW zF08wMQGaNL$!(1|aWiq@dFSe{$s%Ml+4owZYwvxR?Ov|jPlb)D$(I|MBZiLd-wqL1 ztmBrSaeBC9lONu`G~LM&aBtvr|H#WYBbT>nZrbQB_HWy}W8zTyr#pIf)9AOh zN%5+**tNz+TABWd&$zhudfVy`ohMfL_15~3+~#2a&Iu)5R4%_l9!6#`to+z* zVYy6W-J_ca+&jte>KtjpR(Ef=KE9O>`3+Dy=vQx>-EGKgR{86i8T?IQQk}cUP^!?T z`pizfRIH z$>zJ(U(|EpP8+yG-$Ogx=271V7kqWV-$o+)SMq3oW?+HewH;U_cl`|-MefY&EATT& z?(>kVKr(51K4sI|l^a(V{V4>0Vtil`b~F5G7=ORGf7MM8>L)|yIp;{GPeu#t^#>n8 zhAaIO&H?bS`;M#}Cj}8Qf5Tz_plbx~o1a0vf6_Jt-#9n(#`IAz_eMweNP+tbg4;O@ zMzd+ts6izw{P=@P?ptOZ-z{i|sb7zB2Gz3yM?izh#s)82{dWu@;H zm&E9| z8^66IJFruVIPygY2B~~csXx}OD&(_{Necg@k<}s#J5K)_xy57Jtv==ab25&bw|yp~ z>Qhod*xud#dZPRM&V`%Y_hm11x2?HrQ*yGzk=&3972v0uKm~vJaW8%+b z%%sST8IR?cdmYREw6Sbho`tZ#gO=*~B+4cS(r9KFY8PuM+Ah-)yWLkbILzS`?et3@ z{tha1U6x!GMrlxil%|O>gr>Sjv9@enx%y(OHW_wl>~HIVWY}7ffHcL8kaV8~BoMSU zv7l!nL(39Nn;sIP^zr)iim7WwNb#UeNDz_C%Fr-5e(u|(_<>+D{BSS{$uJtGBPX-d z2BlOUiNj^(;1YGe_K9zQzxpQjvo%&q{F4=Ural}F{!Wr3R(mE42ouURK6k{Xn{HWT zB``vUB!3u{RuXAglQn0n-YOP0$Wc6))RB&q)(}{jKdLyWguQQiww{($N3m(0Tp$(e zB_j90Uhs>NUyr*)f3AM4%-`PBC)06|9K~6TTNzIroZja4cKk=H6PJxG_9tAZUk2@g zEMWxvin_xToj2$k|TC^q-Cv+tBK3}H2Pftce&3`P!ugG(#iC# z*YPp2Q820v`ym(udpmuTt@+Z@q(yGh<)a&WcKB|MYKn`JF?{qMcb8*WiJb6A(d!E}(_50a=Gv{)< z2f1UAht1One_ZJvZFYy;^3bvTKEj(C;*#X4Zy5`ZMC(qytH@_sdBJ%br~%>jIjz@? zAluhIkOsJO5B@AYVuW--k#lB1S%4`{Xy5c@6Yd@Aa)!$yWpv`ONivqZJilMULzmG8 zIcgac?rO10C2C-s^@;Of$|8`_lbcX?`L&I7tBfP2 zkLm`s3A)2JdDV8m$}|7{n#}aL$RdLW`w<{NY*&v3SX&ywn%)2^Hd zUl8N(EWvW;uC2SJ=L)UG?R=(V`DQqg6}TL+g~Ps+{F3T_eD-qSFhu5ozdo;P{P@S0 zJYYMZP_H@b?HHC&k`3}?VG5Ram^ycE!~O-b)zX1 zKj>b>6ODj#eeOh^e_er$kaV{+G594#9xcLA3H_p?vUEclvA=lkYEE{BedoCQp|05J z7v#wI?Qvi18pJye?Drg{4t_+g@BADLx*!S-w+~T)TV40{OW)dFdUw$L^u50Sa(CIs z<`K__q%J8K)ZgNR`&&we^|zD_=x<@`@2KW*@{gkOSKL1%l>26caM)o{y*h`& zAG5z!A1;V8KFQ}pc<3wu_zxoU7kLHTJ+rpM%x0t$H2K~iR zy$OyAlJ&`i++gNzuk&}+P|!j9S!{K88J~M`xLOWGuWf9a2*|Jg_HMh(&-}opf0Df| za(~|6HGtT?4cNUAHS|q>Es^X-Q+%)s5tP`ykG=!-6uvEnL6nhfhxOPcEwn2(())7u z)W7l(S8=e8j?CXPWFxuz*W9jwe1b+UTF9*f?(QKsB+2Y>BvrZaD5dT|%GEPQoVUAQ+@LPQ`r2>|rqhq^OabTZf{xQNpHaul-CfA?=EHP}4wASpOZj*4#-s1sRyCDH8Wp^5C63IJdr2&Vka?@-29hp^o4)V8U^!{*NfBF;b z!TJ=Z+`Y&de?9W?H%$iSUX+xQ^tMf)KTdKl^mR8fU8&U!D%Fw;Hf%V5OG)p=kaqz4 z{6L>w&OmyUlb8MvZL_S{q#}P3+q=8Q<`1_y$X&eglun7e=X|-Q``bW=w>_O`sZo!3 z+)|UYK_=FAEko2>uyqq2IxgQu3C1S&x?6%V&%$7LA=>R;3@mVtw@*c>+!4Ni;j1DB zaxm#{hPs0xFafgiQpkFZ_bce}-C4GcIYm!{x z@ngo_lRntv)@CcBb6`~DcQJj2v;aFBZkJ9DBdAc$K@g?!awcYIp?q+R3Vn~HP3U`G z$FI+HB!9PvyFt+1)r^jjwT8Z~%xCQ%S$6)zBLAdyg5fVkZUoX$Ntz5Gr614VsN%Cl zBc`0(&f-6W)mN{-OHMwKH8@8)lKvX~ibZ4f+>YLlHGRlE#lKx$7Q|#(Nq;+j3M#wg ztpq`^uIy!VY+IM9ZSHA(&6I8l_U_+*xw}^3+lZ})-(B@!8#%Wjb6YyULQ9w1G_Sj3 zPVTu%wnEY%X{%d?!<9kEIGFXdkSB{Ed2$%bBWdF$IyivkAb+HqpxXxO%UazPt#ow1 z%WuoH|q%xABv?cS*_SUi=6)r1NbQf;t*!FxE=`*>lsK)83Vf{J;!}YiLoUFP`w<3sT7#at=SJzY^q0wa zy64~zC8OVw)HSRu954BmrQL3$QIT&YzGX(eHsGA5MBAAdiXOmNAIN#>WVaowc3G{b zE9MZ>^>V0Ev0GvKw?t`2hNaRi!%Jn{!C7Uz!6h&Y}A+hHPuoWphpIODQ$LB9Td2+kBl$ic2V(=N-Z zE;h+lS2BhNA6hKxo|a1v*5!~uOOVCiS?L#jNu6Yqfx#KAB+Tk9$t*+ZQYb^x#~hE< z1&#-j23mM>Oe@DOSZDZZT&iJZQjI^W;Fh4|VAB#>f!j`N2S@>SWaCo~e!p}G$-)_B zNP?v#suVlJ_O5by(NfaSaarX0E)L0-91>%?2cAiBGigO|pyzMnNUD(zi4Owht~_^% zJ&AB1dr8lbNIi0+v9?EMe{_b;FAseuvwQ>ST!vYEE@Pj2hL2Bqc#Fe=7N`4|?w&c{ zG+C6idGWOQTLAo2ZQi)W-5@M&#j&i0E6YfF)ij88IL1M)`)z(D3BwpS1H-{+(~?#d z?9(L}KID=h-ZJhRmEMOWHwF^PbPc{~NlM~FxHM6E4klT4)57F8pHdp1EYUc?9+L&r zpAq&A!$o}mTh^xP&$_bT-qo(dyY{(zJHmiHm@;1k3nt$8nHn(IB>#9a~MD=6fLFkTcn%bX{u>)E64g{Rd^z2@WwDDqHhxuW5 zOPqTcaizQIY?JN^W(M=b>h(VPm8ZLR_PH~V?)tzUcNDnGH3hrsQnGXBfdM6QJmgM` zxX1B*V`V6udKpgUlnluHj((no*pm6%@sd<7dd0xA-M(Px*={$p!((DQa!(dasnbo* zm|Le@>8^bzYdC){JlF{Mwj~<~-HDUEDVd1jJ6gkv{8;`m4L^NpI+^);&9(0UD5=d~ zrX5)9R}NUf(nUPYF4fusIH+9KBe>DAzg?~bsdfJ7Tuzhg$X0v2%b)Cbx}zmo`sIyN zRD*AuT&N+(QJveva~E>m=Tm)gY0Jja2KNM}OmMKG3mEIew0SPSyY?raU~penaCZf{ zXGMG}tN`45b#?`_J36?Gs*Xy+^NB&_;mR;-fm@>|hrDq?u%e9%{Eb1rrBTh&U1?D| ziq3@r{pbr0xz&X40q$krJIj~)-|`;UdBKM*(t4#m`fH~HR?Pb0h3S~wD4DzA8YHbv zO632CE{Q{rcda?P)*XD@YB5p+9a>tEjy|k#z_DjMV*fFwmD@p~OA#GsaycC|T5+@) zkNV49^76NVyJgc(Jx1kjRVBAM>~R|(yVbhTn56tPd`Zr5@5Y}wAS-?wnj^=bt&BrP6tW#8>X4ZN@) z9CQQ+YPuUEb39$ut?9c;FXhoi{_r46+7lgQ38V*Eem_#$>+gk=t#Pu4-d~jLjQb+j zweH@JK|8L=?wOC%ompvQc;G-q>9vZWAUzC-8>JbOz0tTe{nMb~X|m+FwtvL9h({bU z{ZeCGBpoU@i1xQ7EJ?<}@pZC0oqQE&Q|WxYO9>}0;sVJvuweTcPjkPf9rBIscnm3U zFEf$?|7(!FNW82uxSk@-!G=2?J=~hhVSTzIC?Bhv@ZXp7dHn=M0scqQC+TQ$MgA;N za!(MRwe*?8zwK#KUmz8Pg@cA|1bx^I(aC_+rvvr`Wjd6!MW!sQ2E$Rgjh=Lc)$3jY zQ_}NI=gWio`W$8-N-n|VW&bV^hL5_0qlQuPyO$Tu;39oGUQnwwF0M9gVUjUGOBs$G z#ZlEZYV;){Yjz*X)H$?D&@r(fX26uh>4KUqpEWv2Xi>?xd#r5{NS)zld(xnw8R+G7 zM5`{AzFcWokW4UHobkw6vKV1lm&*QEK%-bHl8}P6HW^4u;xDqGzcp@nQQFLP?k%WE z_Gp3jRYW2SM!Y=IkZ)>St96ZU5mlR%rL_oA#YvR^qLaU2&_~3BzGss=i_-IuDXrYH zxwv8Dy3H5MCv)6q4*h9m>3Vt0c+EO@qOY{Uot04!hGlEFbIR{wNxhhbdWW9$NCe@4 zKgW`c5^t+*C_WG4-^`Gn?v|ir`zr&!Df%K;yC2(EC}kI}b(5!`E@z7~N)mrnAl**O z__75`IcausA}{UIl=`FeTNl0oN!X_Jj?Z+5AWauol21&3JiavEJ#Z}@bKArNX-b$Aby!_L*Gd#Dai&tr-J45H5 zJw11udos&yC*+84<)(Ez-OiTVSi1){m6DdOcFjz?#t-S-be^_XTu1bUGDo8`UotNZ z($tuUAiarJVH273wm)?7rzxV{JAt10-yMGI zWFmnU`pP9DD)XcGA`Ko=_`*Z(B(GmAh6LzIyA1m7!j+|xth{``$$VaCi`&L+?!`fV zMia$@eu*OLPqyK}fOLk**nl{tVSm!qmHqOVzpOx$6fhc&GiuC$N!DLjoDh~I#IMj6 za65r6KbLL0^^P(#IU)+rHiqt=bl<&4Pn(A9-pK4aU6xf-N!+jQMQl5^xd;2)lPr3c z!opSEr>VjmXoQ}2ut;}t*8S+Cxa9hPTixtGbYRCW*;-^u8#kQmUMwNcsHZ7 zwjV7RO#kc;p4fEp`pqlLX(s?|ijr}M2Fet1lul9Kbo#Y`oCDb}@0DJ+v%e?Yd~?s? zEEf^y*y7${)>loOWMD{~WwSfRJzN?e(>I-(XXie53fMh)u+kdd-yzzj`w-|ey60-; zh2qm2cCWNiribKQK6I1p+qfRJECX8TA8R~Zh|l8o1KqQG!&59%?#Fizg1PUONk_?^ zcQ8R{0+;iWj!D^Bit_aR&e7F}3mZ5|T&2&&)5SqNaqf$C?#l(V_VJm5DI6F?nKrCj zbJ#=!V|*Tcdz$+$f$MNQHZ!nM1LBf39gY`ltFiU;3AbxI;Z`?({p$v0Tj5r}hh%dW zzj;A-eJPW!n&P98%r>|73Lhx8-0p|H)~!k8vlV#vjzqdG+L|@)6$_gt*00WN*j!w@ z(Z@*>qvFh!l-BJQ_E{gG)tl1I{!09ffBh=d{!X^-vR`Yv1+rZahl9T{auS=a`NJLK zVE=dW+j%J)xSf}RXglwgAGf6H z^5gb6(v7-Lp_f|IjlUpm{DlT@{AB{d#dAU)Mz#ejS!jKwvhj59yIto$*3ETbN~`WJ6o!mnGd{C(iL>bLTnT2l9d#4;&?vqy^J@Nf~1& z9%hiExPb+7&{)bdgbP|{#aq%T0JlyWCZNN9JT@lny0-`7zU>WKN>JZj?1^ z@ob+=MS94u@6MI1Y&7g^U`ra97WfthgW-liKM~?*YJA?ok3{Dp+*f4ca}%;fka7FZ zbNSH+a6kE}*mK&n{$|&%-*VyFjc&nOGqHK)staV!^p*H3{rR6YF3g>7o7l2x<#{?2 z2XH_6DhF`VcVQ3tDTzR)IN2)t;&dqaE8Xs_UE{W=8#iAp+fW}JK{%l83c}MQVFUEX z7E4;MJoOir$${D!b|516doa3V5xI}|U+?l~C8IJwjxSs9KF^xYoOLUoj(6ZsyUx+~ zo+Tvx<=$!|`x9%{Zd&cWiL==q3i_@Xz&<+Jees8t8l@u)EJ=5Pf_UGXgG>C3b|0o3 z)U04L;MUXOI^9itI4Emz_co+HOYecUwRCU|*pZCq?n}C2=e7g>m0b2HvUT*PEvq(f zT&r)LXY&pBJ7eLQE%_O`{m!y`jf2r>>T)oP>DbxFIDANWMcy{l$}eY(?r_NMaYZe0;Tw3&UX-QiCcy6-CMDK4oi znD0~araHN7A?B`0r1zi&=jB3{n-BeuB^tpNpCm(cGe9`L-4YsDc%MSVK}C2?xVu#= zxzAjiEZco|AXIgygx#xp*yI*Z_pS_Oy}`-fUxj-jWoN|Q4fM;Eh-9c&y+f%W_a)|HcnRj(I+;N)k~zZ&e&9TSBCM9So<6Q`X#~sPL@>< ze!0}Y{D0F>UH2+V>)d`YUgelkl;80%luzD9QHS>KckkqhvZXOduQ8i1*feqO+LfEP zY}8diIPBX#;W~N$j%Pe$VtU%`>L>fH(j31wpE%@h+|%dsv9?i`-SY{=Px#w%bQ1kC z>zd%6uXk@F(51o;2Dk3WE+8A0oGE{!&fY!SckVrPdjF}XW!#^5%eD-U$?y*O>kRi9 zwjI@N?zx9uRd+IP!riHInOl9jSFdh6=w2>xxet^Nj_jA{6{oI9US_glV#UN*JhUwy zOuu~LW8KU2@wo~==stQ74qg@yR^q|*W7K}!7eu9Tn^tU(3*%O-h+DBD{S=2JUQx-M zcfq<8{r;*_p{-r=OaRwj$*fXJj&&WAMLY z@$bVk_Lu&9T;>t3#Nv)m;&r?elIUaHUlM8m%LGHm1sQVQAL&H$KPrj0zpQpG*Z-W_+N{cf9>xyf`x~V%w&VVGhm!)i{QYe`GOzm|)75Vh-JG#uu+Z+{Q2ZLr1}2gMAsc&v12 zc3?3f+;nM~ z{MY{f$jn3j7p+RO3~I0ZvbDyzG`7R_ibdPMajxZt{_rt0TRL9)*K+lwYw!N}2W52W z2}{Diollb4mmB-QPQ2GlQo?%#<`g=6ZJLs?BHE{Ic$id3vF1KCK*!!BN zKl2|x{;+kB<<_>OEs|v@9kQtS-@}#1(K_^hXD>!`YkT6QM9ls_ZO?KoA6zE;n8WvM z29J~0m;Ni+J( zw$;?F%TfMVAnm222juFX%0V@9)I%~4^|}7Y)hSDYwutv^Y^?q%u#*0N`(yj1f2==D zG~=+m;#QWfhySn|EZXweF#j9Q_vQAEIS&tW-v9T*%eQd3(zNWp?O~_!>0dJay4=V1 zzw4L7=en=U%i%L|O9ziJSb5xZ*y8Qqv?Tp&xw14$|4L(R&0`U1iOJ#r9X3w71{)Od zP`?h6>}hHG7uPzxB+Vc(gV$xl#!g$v_1%|Y%{nZ1nn9PYFxtkke>FB9GBdS*)BZ{& zt?R!2^}iqYzGt}ak^QYt=g{yhX$ddQoG*>kk_Y>>4Xcec%&q(n{r3;gci+ZH`$$^E zzkua(3@VGWrPFx-;CCvj`w(flh~?9NZAfD5Z|(76b!fH+;wU@Jo&J5ed7MV}|7ESv zlEWQMgyY+o_HQ~xVO0G0;H^rUA&y>d=zlU!n$O0zf76ot^4GAj)Q6S!XYSuC(Ef>+ z1S_Uuq7NO$|8`Gi&Pj6akdy1jh-<&%=4-hYH7C-o3&LUBRtbgpmQT-}nYXA0U z8!XGmFJBsFj3bwybLn{TSc5(7YmFW@PCE7<^4Hx!i{B-*6j~nv9<= z-!c@JrTLft>kk=Amu6e0@9UVhzZA#EL&MvcUQd$qRD=I_Uvs5nFE_^EvRG}%{!KIY z|CPq1fAvS*chM}va>?8oRyM2-+cWw@#`{BJht;dgtYp$`{W)Wahit6D**Ug9>hKZ$ z;|vzf6z7YF29GCt1pfE2bI*I&aqbSB6W#w$mydA&&A5_`j~F?5-vh1e)j^r8gO2#c zExzn=F80q|S=Rj<#>lVcenHH85hJnkfAU}Xh2B4inMaJoT8u0s4-8^%LX5;(j9isC zDv0?iVkFjL*+22~rAfXWd0OO$;BE3Z zz`Nvs1MiXF0M9n#{$GUW$nS*b$sc$U`k(wbc#%90FOwJG74ql6tK{3@HS&Y-I{B;M z4f40Zo8<3@x5z&ZZ;2?vbAe&we`Y|EI!ptvmwXJ~BVPy4-VpcyZg`ITh44K2 zYvBd*YvD!m>)>VbDg0h4U| z_IJr2`dBRgA+A8X4w`L__?CchKjCI20~M}G7vSkK=W_wys*Ir3BBdGfR11@hJKBKanGnS2sn zA-@t{C4VKnM*cQt^gsED@I3ib;05xt;YIR|@G|*!c!hi#UL}78yhi>uc%A%x@CNzc z!JFjQ!&~Hw@HY96;a&3Izn|Z-Y0;e*kZi-wkh(XP%(_)+Rq1-X%W~-XkA_XK#-Ce}oFMt=xFM*fI_rNRU2jErmm%(e~uZP#k-vw`wH{eb3 z>)|c(MR=S1yYMdg-S8gy{c*l4`}w&49|6yiKOUYZAA=Xj&w>}pFMyZHFM?Odx5KOC z``|V5D!fkqW_W}AJ@6*^N8l~;8{uv8ufa24i2L)xC+TuNLjJ^4)kn!s_@o}EjFFFj zPko$x74nqGH=^E2@(qZeB0qMeo==z|KMC=(wDq?}X2i{}Mh&{%iO=`G3O~$d7um&X+~xvk$y{x^u9CI1+_PX1~59JwvG4RTvP=gDpPZ;~g!YjXRY zw#dJL_AHXydaO-u>-i43t~P4|CLP_`RGkLU5n(8e7g3-68Qq+N4^}l|M7?)BOhJBd?DX} z_$l(tXElC?d=A6282KKBJUu6ihT5Q zx;)R4---Bn@;SsWk{@+8wo~Mp&ujjXZ^qL#iugSFA$Wnj1}~Cd3ony@7+xd)47^VM zWq5=9c6gKgE_jRl9(bGlA?IlSbjeSIXWMcAoLJWQ9QhOBdGd4N1@cLFk$gYAOrF13 z>#eXqPrXWhHS*NR-vqCde;D2%KX->7CpO7%Kzxh*%kVb&*Wq3A@468fh=UWFIQ&p@6s`MK8rTFAc?sSke?GiTUV(SX z55arnKZIv*kNf``c#eD)o+p1dyg>dTc#-^ic$xgm@Cx~fH|udnmHeBCuaVyYuao}* z-XPCld(Qp6 zq!YJ)@-^yXTYf0`X1qIe3fwI(VD>CU}?ptMDHAkKx%n;_0m& zBTw99GCA_Q5uYa?d96-wfqZ3E_e+c9k41c$d<ihYk^ByL znf#~l3i-Y8D)~cSr}L{u{y2D@{2X|Ld;`2mJ_&D;zX0AQzZ%{pe*?Tn{sDOQ2XX&j z56_YRGdxfJ9e9EKE_jjr{;$`5E0gEo74pZytK?6E*T~O?*U8ty8|2S{H_0!Cx5zJp zx5-}w?~=a)-XniAJp04A|K9^2C2zh#`)!~B(^Azyg2`W*S(ThtfGM`zVL z{TjY!L8s8?r9o{8hf{%3L>ALPV-M;6@XKvB_W%8-dKGg45 zG{|S*`8(tM3pZ>082J*sKtBFCjW3gz;Ir(=QzsvXcgW|^&Mx@^@{j#T-2Tiz>-pOf z`LEGGQ{*#QN<9O6grire{@h#w=*dEa=E)~-L;K0+to`I2#E&e+?Z4OBPd@%l%|A{)iQy9Y z$+v00Rmo?q{p54Vzev8&M*ov%+UWmZ#O+^&ddJ9T5MLsH9^$9SJBXhpe+}a2$!ETW z{wKc{@k`{HZ=?OcjNAVMYd`rU;!ETY`lj~J6#3-8Y5rOArz3uzd;#%`@te+RFTAMqXSpE~&nyg_~nyh;8Hc#C`kyiGm< z?~-2*?~z{x&-UW}ufcQV?}q2ed$#I{BmE z4f2=n!up^5bi}vFpKZ%O`F41h{3>{l{O$1UZ{z-dKRieN8F-$2^oP2<706qNFOuH@ zFOwIMr$Rmjuae(`JT-EA9=}e0{CBmT4f0dqP4d&=E%F?^OMV`_N4^D~{axJ8JK#C; ztKfO^cfbqeAB7jmzX&gr-v+Oc-vzId_uw`1WB(oN8S+!%4f1o~P4cbq7Wo9cO}-D_ zCBF*ZBfkcoy(jMfcf)h!{|L{Me;HmN@4}1Z59nzBl*vzqSIAeutK@6oHS!X?PW}RT zgS-ZBlD`k$BEJFNCjTb9OTGl}kw5qj?T74t#r=N@JV*X?c%J+mc!B&U-KhE%L{}+vKxYA9l&-;XU$2c=q17|9kKp z`RI?dJ$dpXyg*)o7s+ezGI;}DA#cH}|H;eN|KwHV z>5@+)zDNERc=q>k|Ifj5;MxC<`~U0kJo&r2x?B~=KLRh3FTgA0x5BIB z--Fl4e-5vc-wSV$KjcoVH^>+6Qg4%g9o{AX5xhr!zn^HHZ05=SysW%eR{rmJc#izZ z@H}}DULd~+UL-I7OzSO^PawWRZujd}$;W@Hd1~Yje2jXX`~}G0AioCQB%gz~$Zv$V z$rs^W@*lx_GVag6hv&!_;Cb>};RW&^!i(g;hL_2YKtET= zN38$J{}^5)&%^8F1$cwJ2yc-;<>%;U^0n|T`9<*T{o?-I3(t|i7@jA8BfLO92QQL0 z;brnK!Ykz8f>+6x;5G95En)pYemuNE{y2D(deGc#-^{;brpM;T7_q!)xT{;=RFj@=M?i@+o+e{1xyP`8(ik@_&GL z$y@Lqc^jU6K-|wih3CkB3(u23?3cP+705^7Me?V?%jDzm3V9h`C7*`Z$k)Id*s)8Iw&XTzt+FMOEZKU^i>3ZEfg*zqvGe_A8&Y*U{lpWmfkCts+j&yi;))f?nf z&sU!(pSwi8Nj~#D^#yjsx5%duzeqlg>1~tGV|qK}>eR@{f?uOlf?Pd=~jjsY4{dT=9y;tczsPNQSR%LOp+|1ZL*_y8{IcaCOK!`<2)Qi}IdWSb^5nKW zRLE_XBGzo+rz40e3$&wi0_e~gZS)2vX=i$d?e`CO_igIv=~_Bk&&iN$~t1#r;3h(DmLJ`7FFZKKefF z50KBkU%gB|`8Voq@+su$kdMr1e3yLbuhjDo8`6IAr2XVc`^l5`lPB#bPufqOw4dDC zKYLu<{xiOV{UY)o9;fqnj(qY{+7Au#&L`F9$>;uFy-B`wgZcvb>_4iv$UFa_zDPdu zG4(e2BH}yb3-B)aJba0~^J&fBBcDTj<`Hp!j(t?)v*e5DhY|8oc#eD={WD75xlZ%v z$rs^cQ3|=Gu61-0SN2_%`*&x3a@lEm$yhZ*~c$++f>Fts~4BjIjg=Zfb_j3iF zBYz4!PyQ@;f&2n^k^H&vGWnCyKNa$4!K>suk*7vph1bcifj7wO@D};Zy}F)RWdFT- zn|u=SUGk~_()b?v65_Luiu-@@9*xhDPr_%&Gr!gN8u{XH)LZ0dW%7^1E9BWnV?9Z}fcP5u7~<>X zC3u5;2Hqt92J&~wm*73}%pDq#y804pQAocUV=Bt=TL8pd<^*) z$!FJU{x*5%67>%G(rWe0$?jz<kN>Sb~}UapWo4e?d- zb?_SbZg`#iN_d0(b?_$n`{6C}o8WD7d(Uc@{2Pexk^dB)eO%oC4;a_}$&o)Co+r2S z2?g@UBECp|I=oE25?&!+53iEH9{0o4$hRZDPF{sK$X^F6o7}Dwb;<2I zQIGs<$di41-2dN)=g5Bz&yydG?+q2m?YvEq+|JvS$&W{#3i*@aRq{J=oLD2b_ny_s z?fg%J+^%Oe$)AOKTjX2dZF0NL)g`|i@jdcu;MqTk`~O;aj=X~PNuK;;h%b=WZ2d!S z*WJqGUqYS=`7Q7&`48bW^8bX_$sdU8Uk&o(;7#(!!dv7|gSW}ghi9J<_vc0M9Qh7- zp8O!ZK>k{Ik-QEslQ-ZM@=w95yP9Onwu*LcR#ElHUQZk^c%_CqH_PZl@aL zC&QcMXTn?L8{lp73cO4H8hDTVui)7y#{K_Ec#ixQc%J+_@B;Zy;6?I#;AQfMt=0ai zkTA#MjAt@CNzW$kQah7~UeEhPTPz2=9`A0Nx|dt=H+z{%PF*MR<<9 z3eS_@g!~2aHoQpw3wW9QsB_W(1#c?0clkncr&le~ra7I_ceCVwsR zbjfoYbh>)vMR@i}asR&$d2-|x#OKLBgZKjZt?(lGo$xYw9r-Kd4>(WTUnOrMzD9l$ z;_KvR!5idT;7#&<@D_Oo^|r~gC2ePyya4Z!SK!$v$Nm2r)SDxJ8$3@w4=<442rrV~ z0xy%_39pc6is*mx;I;OWl{%piI$uEPq$PdEXy*T`4F>*N>08{`x4Ci%Ouztke% zkN7tE%i&$}x4?Vkndj(ol|41?|7#JSBmX2kPySVSf&7Q?BKh6$GWk)@*7j7$Pl8v; zp9HUw7vOdBXTuxh7r~q4yWlPIG4xxTyaex(SK&SKIqUzY#{GW)_2$T53D1+i3tk|< z4qhbxJiJVP3%o-919+AEH}D$yBBrZOz65WO=QiqmZ<3G0TjUjZo4gM1k}tq}`W1Z^A3&Uw~K1Z-dv! ze+aLW{}SFHe*lgPn&ij9TjY<2x5-a~XHSd!b0l-Dzuq@OJ_FB@FZ@QYE9J?j{#(63 zK6|fvk$mR&>SgjV#5c+3j?i{4kdO8>Pm8?spJ>nN@$}AYeT1Lh1@g?f>Wk!4@HY9v zN{uf(ZAgCdBtQAoTFuiYpS1i>ADq8QzH}a@i+thF(9Sc4E7z-#2=Hh;-& zd1#S$5Wh%11MiaC@~}j{gx_zEJcH#S_l$VH+ww3t zu|aP0ah}}fW0TzG;{v(O#}>KG$0c%`kJ+>0`C{{Ngxuz1nH}rrNphQy6>^)8Q{*-u zYvf$^QlISt73>KKo~Je_oCDjF2}G zpC^Ac;>XCdxZYYMe>vhyi|{V_ci=tp z-@>!ciu>~c&&B>5`NQFP@+ZOz#{{t0-U+`f0*ApaM{ zH_7dOj~4kIh;Nhs65b_$z@^%sJ@Onpdv@IaFL|Nf=b0ma0^;-Jr@;&4=faER8{lQ~ zNqB{PAG}Kb5_paLt?)W|eM0-8LHW(?~;ED-Xs4RJbO;u&-cJ{^-#{#baP{4{uhd@a04{ycb@{2;tSJ`1mszZ+g7|3`S8{B!UI z`R(u~`Caf9`91J9`7!t%b;zfNxLpCh;Y z4RXuhBDefKa%+EPbv(V6KTB@;^W>JlOm6L;B)9w(a?4*MxBN}=&TgH*3*?KJspr*SVyj@;sVpd$mchxx5&rfUGll2#^;_LPuJ2V>Z9bAKTmG?i{zHS%8vHW zkX!y5x#e$=TmCk=wZB7d`McznKYM=M50<~cj`oj}TmB-s<*$%i{yMp}e~#SpH^?o2 zi`??}$Y;;d`J1^Qp5EE>)XU^^E7d2-ExyT){0roZ=W3qZg>k)>f0W$ftK`=H8S;fS zn!inM`8(tmUsxZv$MTPpXOO>6Zu#fPExt!?`7;~hdP}R(|Kyf`lHB5(g1Mxj@;sV#ejZja?3C%5ITPHy?<$SuA{Zuv9ixL#Y{%H)=RlHB5(FxAh-PE_$t`|?+~RW+alIBlO1|_}ZD*C-;%CS^h;Nfye20AIUod|s2e)UO zdR z`m;%H@eAbEpSfLey%s-8Zv9y$xA+-y>(4g1#dpZ9KMT7Dw`ZK(`m;`M`RB;3KYQdB zpSdiq*ZQ+eZt;`k)}Kvsi(eqO{>)Y4dM$pG-1@UhZt*kZ)}L*1i|>$Ie-`${?HT!< zF1O?4i}$G4$;Wdi`0E05b|d79*w zXMubadAj75CwF<=e#Rxgszou*zTw|ZyDt=>Ah)jLOS^)|?@ z-Zr__+aVu8JA33-Z)ShoZ&q)X-0CfmTfO7tb7R^+Wpb-`lHBU8kXyZVa;tZadP{f0TS?C6;q?i=QDM9oP6axy5(L7f^5Ez~J_blg~U$^Vi8stJLSnm)5HH$SpoI z9oJhze3>2jC&?FAYyKv=uaI{S>HQ&9@_XSm@`qok@pbZ( z;SF+o4^or-RK&N)i|{u21iVXr2;L)~foBiJ{WJRtZGVn@9-b$+_a+s{-;Vr6^1p?b z$q(UuP!;kU5nm<04PGPv3A|2z#EW#g8sx{po8)yht8eD=z? z|6dNzk)Mw5Ip)d#67dCcdtXzL{5r&!$v+FPklTBfs^q`_w!XisMt&>u)X9GcZ;+pf z`PC%<72;duM^|+|w#gp@?~>blkb2~2AU^w|xc^J=9Qn8Z4d10A{|UT6{(R&qlJ9|+ z$*+P}$lLhcRmtCq_!{|#;C1o^c!T`A@FscomDNB&HBp8Vxl4h!TLBECp|3A{|c2VNn6F}zCt zCU}kfui$m^kHQ<|H^Q6bi|`itcj0aFC3u(o_wXM11FuH^UlsR%4xS@_Dm+g<4lj^z zffvbl!pr1);T7_i!K>u&gxAPF46l>l1aFYv4sVkG8r~v5`X$@=M`u@+;t7@>juo6|K!L|g6GMf4lj_eh8M}V!pr2l;T7_$;Z^d#fY-?9;dSyG;SKVy!kgsZ zhPTM?fVati1@Dp{js24z`6=-1%j5q4GkA{t+3-C1rSJmzE_jjr#qcuusWsjItdozv z9_LlamtLpdAYX*{$mftJGZRnm6g*2_f|tps-k|kPk}o2@LOzQ48u=W&NnU!h=3gKm zg}2Bv@Z2ln>6(F$lF!2P6bJLOu#_l4sxx z+NPUFYOryi+ZAn%-@UM8P~&yp`4ukm&A61+n`hxT{LOK4~Q zb@6nKZ$vxE=QpS?l8?dL9e_J5G;2K>{isU!oefVYa zortfHUk$I4zX@I=e;2$?{x|Rj`6u8_^3TCrh(9p^-fNz&ymkvqTV21M4k?L?X5b0yX0?% zXWtyxTZfO3Uke{4pF2^P&oS~(BECR=1H4H7LF6fu-;MZ5@^8VX$UlNSGvp(GuKiFW zzx#6aI{7~$PlNn*@6q^q^4rm#1@g}z&m#F9h;I+^F8LRbr$_#Cq9|tdxe-n9%vx5@8Do-Xz*$Nxm05%S~C*5l2&0)(dh=fFJGU|Q2tRmqkvE3o6?!dKSO68@Z@*n`z_E(%lD^~ z33yJv9i4*w5IV(xm*qRrsmhO|QPCALCv5yUvZyrzd}!`GNdcu5%=Rf%&ogWqdCGH=Z~a?ocWIY6Zk-WD)-w^{u$=S^3!JGYR-ieiNOmZ20SglolaJMDd&?5ctL(2os#@| zI^}>@QmY<6EB`@`@Hrvi1NmBXM)H;DjOA*TRG#`?^!l2~GkD?$@jV_&CnevE`Luj%JS#tjPF}t<^9A`ncu9T& zor=81=d`N)L^@6RxA0cLJMt!v+mnwU;&X_+MSm#&7M-#DXUtFJH{dh*8FUio#rHL2 zJ}FOc5&hgr%Ug7^@+ax!_SB4e-AFhjfPWk1{`!?}AU{7t)!@k6?Z-uX8@hAIA6lBRXmMe*B)BkvHk*1G zd?5cNosoP|J|B+di!Xd`l;1*UE>AO`xFEilHm{eI{4P2f`TBIS^3CwP{9Zam`OnAE z`+q6m75M{nYVwcsxb=WH<-e!Xmj9T)pWX?0PyPsIciTS?#c6=;< z2frUp}+=kU2akEbt+pML?*$cuPYUczhgUGRo{ z8J<^5zCZJA`Iqsod?h-4`I*cQ0zQ&w=uG72(wPQ)E?x@)2H?Z$hUm|10wq`D=Jhz7?H@eDU+5`?)D!4sXl1q0^PG#e7d*<-a2{knc!m zB>xbdvAoaE->G~TI&*n}PU7PD9w!Sw$K`v{$;h{-la=p`=j8{|Dawyvz9j!LUXdR~ zrzSs#`MNy0W%Pd4lz){@TYes$j{G9LCqI?WKz=jxL-}v;vAjiRDu0Ignfxz!;*$6t z&!Ur(FUsfVw0s#nD?gV`UcL(R1^L=|N&bC075P@oSLL6=>+%ceH0Ap<-;y7LcjR3< zJ^2~T_vKmcpP~F}I%D~HbSCl=otgZXbP|`w_joy-r2IxaEx(gaR{k*aIr;N=K|Z2W zk}q<8^nO?lcvb!wow__prxEa${5d)u`HFP90q@IabcXWP=!^nBk-tu7CSQlnJmAU8 z;`@DDhVO;so6yMwJSSh8PC>p6onpYt@)hY+<)5Kb3wT4mI-Qn$cRKBWcjfET>B|qL zGYI%do~JXBf0fQO;B)!M=p=s}-{UvvqynCif09m4ej1&8z>D%-=#=H(rBexbO}+=6 zhWtW0P5I?`TfRS?uKZ@^d-8knf&4H!Bl$=9y?88tfzDk14?NM0@9RxGB|nD8&B&MK zpTo(@SHbi06X+D>n=)ULe*&+_n{;aO-I%Y-t9Vm>CY`qYYs`1#r{X>N59kc!7c)PU zpNWs$n8_cYllVz|k4rM2lrN8` z<&VKO&Q$&hI@(rL=iqtgm_NB$(8p8Og*{eTbUFVGpw@24{f_)Pu}I*F^|d;ANXWWdw% zH|b>Mi(eGIZ{z}AkiTP<=;vTbzA~M1z^n52(5cI}qSFX?OP-9pi?I_-dW<%iPg%jdj54+1`t*Xc~;%ls&MT}%T$m!C{0`SbW5b97Px&&a<`Cnw*5 zPCnp8`S{@W*KZ}@HTflU8uC1yX29F>tLSv)2k^Xl0UyY3q%)GAL}wiEsr(K) zb9tHPmAE>-#|2NxM|3js2Ayoc^YX{(6y+T{rGQuD&(o>NFXVjc0dLA*rqh-WxSmeH zd-6Bv4CFU*J;Q*H<%_Qx-M3Tul{9HOSd7sWa;K}Ra`@M)xTAt^1nhAJLekGlPyiBJU@Ur{{I#qd{PA%XK z`K@$X@(!JLz`OGM==9|SI)i|Z5Sz6rZW!s zRK5(Ixjb=6w6DYs@jWhhO1?aujC^rA*?{Ne89GJzl5|P|ugKS=QbuD zor=6lryB6Od^b8x`B&+*0^X7DL#HSICY^r3hw_8zjOAz3nFM?$KZ;J`7x6v*gibQx zY58$Usz~}PE=_GH8@9_t8QUTA%pQV$NUrHw* z@S^-hI%WCwbSeR_$^TBLA-|VSGvICc>vX#EXXx|-K9DcEdh|JJB!7v{SpEh+mA{kD zT)yOGeE#`me2>fHDfzN=GV(Q;&&qRnUcLgIqWoC?x$ctuM7$zjl}=5*1&><~cvHR( zowoebbUFd=$v2`iknc}t81S)t3p!Kz@pNVZPy8yr$F1q4RIz9QH>GT6WlpjoIEPv~dqu19Y;4}GAbP_km z_qYO`WWdw%~Mc_j?7MwETy3G6B!Yuc1?r_vjP@UY7roPE~#vom#*f z@;m6X|wNj~mlT1w12vflf}o z9i4o@i}F|Kl;vNfQwexY{yLq8{6IR*fVbs~uEF;|^5g0B0zQzxlg>zfHl1<6r}Aa# z%;i6#llXOfj|-lXuRtdwzm`rm;CcC~bc*u3>68Lqk*`CiCVz@fJ>X6GMs(Wpm+5o@ z-ji=ZXCQyu<c;|_FE@(t*u1D=(CmQG&&aXN*7m*l(A zsmRN8ssXRd_o362A3~=U@Q(aoIz9P`bov1w%8#Nmmbd6k0zQ);M<;Pxe2*8_$KZRivOUY6fRrz$VgsRg_tzlTm= zeh8gGz(?{2=}hEbp)(EmT>dzn|DqHFTKjr^^Ak1-DTRQ^snbNSMA5_iV;xZo-IvUD=? zES+q?^YRtw6y+PyDFwVDUzJWx{xLfBfH&pq&}qweq0^D?hxgX+PDOqf^HupD@Va~t zI!*b%m~YA7#5?i>==9`EUK#z|>C0EZhw>Vov3vvOC-M*DGx@P}62tf&Kg)blzBith zpF}4sUw0I}pX35wke^1UB=3JdI-hdDtMaqy)a761`Wx~S@s|92Ivx3nTu(RPefec{ zhVs*S+)=C?VI{)Nd@%>&!CoS*N$;dx7VUO~k(<#WWq*Ijl@Ur}B zI#v0#%-7_9piW4WjFB%WtOBmES<8FCQ{Lkl%-oCntZ6`Mi8l{<)x{{5N#U@+FwB$d|=y@_Xns)-?VgLFpnO_?9d3;0w%rZboC|9JF1mbfRr$L;8(=X3`0AJQ4hFTuz1H|R{| zzhHhA@Wj3GeZ4iy>rQ?LowWQBJS$(4PG0^B^M!zy2z6PDdeepdm-2cgdXXShHxHhcrmGy>j|Z$hUd{{fwD!29wo=?vwU(-{SPBHxI%)YWbTR?Y$v;b{AitYVG2mtSZgi^hhv?J--jMG@rzM}zX$QP3KbTHm z{vw@0z(?|<=uG7Qq%#fpTz(v#g-m;ahhQT}u0OY&dg75UwCYVy07ugf38oAL+gwB>I( zIJ$p2@~7$alDt~J)x}KSQX*}^je2;&nlajB*d|JLCo|XTL zPF}t(^9A{CcuD>mor?Sj=Bx74@Vb1FwW7~&O?j93mi%VCBTv%l$q#sp|4u=`hw`Q9 zjO7pWxRZd-y{Q}UzI{eFT@TD}>bOu%#U5}ktl zvvi69FUxnOQt0WZqWrBjx7=u`q;v(stFe?q4j@V1>!SAH{{Ucd+PYw3*S zzojz{_*8x~ow@v3I*EtkdtC68d`KrFf0a%);CcD)=oIDurBe!cMg9bxntZv3qo0p; z`7&2WpC6j?=jpWN%QN2zcuzi~Gmt;^o9KFm^7ZMD<*(71$`{=u>dXS3csRbt#nz7I zQ}Qi&+;qUR@^{h6%Xgqt2zW`Jrc;rBj!re;b@?iEn({BwX$8C^Uzbi#zCWFQz=!e= z(HYARrZWlnOkSXqcqG2Zqv#|9o|bPH~d?G)d&P+b0GY@!j9N+ILbkg!?=wt$(leg#;Khx>T_oLGb_(1*- zIwSd)=!^qCmH(H{Tz(3j#AES2E_h0wTqpW@nvtJPCmZm*d>J}L`A_JS0$!1?NT(*h zg-$)-P5Byh+VThKbOPR!=jaUNQ#!+dkL8=wnaW?KGYfd)@%SD;PA4UQ$FSUTWY z`KRdQ<;&421iU0K)2YZ;p;HZbUA{M+rhF4Rt$=srhtTQCcc9Y`_)vZfow0l`I+K9U z13r~M zO=m8@l1}2O_#PKLCI2IxjQmDA*?{NeQ#wWYU35wTugL#GrzU@dPCejF`HW6m{zp2U zfcND8pfixaL}wWAv3yQvDu0d6EZ~Vre2;I?Ny(SGp3f}-&&m_)MxR&n^7qpz1iU0) zj7~+q5uIwl>+&R>rhErFt$=srOVH`b_o34d_)wmrGnOAsXA~JI zTArqpm7hZ=7x037MLH$hkO8Gy>j|uSTaMzmrZk;C*?P&QLz4GYa@b zzAl}a{6#wRfG3}c?>9#$E&nf_Ou%#Ujp-ERsT-o#dokc;d7e&HzB-*+z#H-{>9pjV z(P;;~D=*OL%RfbD5b%-w<8&tSz3EH?K9?8iB%h7%@klzUfM?{Nq?41MOeY`kqP#?> zEI*r0CEzvr&U6~`AJb_Dye%)&>B?`S(+l`O{zWlDXDHu>&M4p$`IU5L@-NVt2R!+w z_820CEzvr@98w; z@1xTUcw0WE)0MAHrx);n{0TZE`4)7>0iVhzbmsCM=piu^BhYVvQ;sRz6%pV4W{&!y7|cu)QhIsNT(z}gibl&Re6R^ zUH%O^jexi0tI_GmFQU^8cwe5SGnC&*XC%KHpUBsxGn4;;`MLZ>Jo%USesgrv@B~RE{2<^X`N!!@ z(Rg3}b2>x$smzb$KfovQ8|cjBS291B-;5_;j_>zZbkg#N zn9s=ngy-b9(J9E^WWE^ivivSORrxZvME7AW;0^hGbXxLN>9hmhl|MkIFW-vJAmAhU zLv$wc9q3F0K9@gAC;3WzkGs-I1w14F1D%}wa60*b7v)dWDa%iwQ;|3En*4b>4f&bO zHv`_5|CLTx-lNl#5Ac!vGJGt*9-qta#1nsy@8uahCI1)KnUVjO`K)}YL3ID;<#Rek z`C81E`CHbHzGtY(cVxaU-xY7m55PO}FX03EiTF_dZG0*}51+}qcd8`4S3|I2(vzVxlpeVCJPOs61UiTR>DixrPdDX#5}&o1y9MpMJFSFnoc(0dHET1it<(ezFOk{ z`@d4aEAn&b)a2{YsRz6%zkp6#zA2qfzYCk}pdq9q_DtKqoJMKb=CrOY$L|ihM0P)qvOKBRWm_#&lW%@5sk=dh(CZ=?8o$ zpU@f0x2H1+_)I>flXxw@$6e?o1D=-8=w#&;I=O%s+)mh zGy>j|C+T$LC(`K#yf07D8Ol$mGYa@bo~ARCe~->Q;K|qH`_0fv%YQ^C6Y!ioOQ#_J zDV<`#%kmtZs=QC97Vw5VPp2injZQn@U3q~{U;bMhl5fQK z_$-}Nz%%k)=;Y)t(a8tADBqP%S^h6Nm4Mged(vsh7r8z9xzh}ITfQ%yuKb;JdI2BE z52Q1azlY8^;8XcwbmsC8&`JC!zQ+Ym$&aFwk*`H38}PimPNyi}h)yZs75P``)Z|;y zsRz6%KZ#CTzAc?jznbkYIO%Fm^f zmmf~25b%=xJUSKmv2>~dugg1hn(~wBv;y9dUrMJZKZ8y`;6wRO=#1sxqcaKkOnw!e z#GCOwUPLDu@U;9|I$8M@baDYN$bUhnB)^VMIp9_K&2;MWTj(?b-jd%&rz5|MPB-9v z`H;>~{ve%Ez$fzi=*;AQpfeA6GO^zOe$Pw(@Bb$fzoV0u|A|f};5qptbPDp9=@bKA zmOnwKDu10$E#M9L({x($x84!`JZ%TOD}SC&U%nKbLBL1y7wJsoYtWend@i5SNiGuK z<5qN10nf-^rIVBIOeY`kqWm>FW%KYo_vnlRK9#?V&RqT*I*GT$_qgCG`Lc8}@~7xz1D=`fUxUs-z7z99`QG?gz80OS{CMVP@^9g(MdN!s6Hm)8 z#Pjl_`1dduWH-RWfIA7MTxFX09GesoImy_he{kHo9; zL+RAzCo|uWpN+TVN7L!ZFJ-`fY;;)<1P7D@wWWicvt>a&bcqYkokeUhmYjnpfi#Gn)#{xclca>2A$;F z;^+J<^C@|af6q)teh!_S{J(Va@;05KolaT4++ES$EAqAQn*2OEUHR6`_vA%?8tmp{y97^zl2Uvz8wEOf|7hsIu-eqbZYV{^L6wFY)4Be%yn|=uzo(OzU&DMs{%gD> z{{x+h{4wUM0k6xSr_+?bM5iTx4e!YRN~b4J-W~0$AMm04pLE9ZRq0FuK9eu9Vf6Vt z@%H#0FXDBP40u|;1f8t>ZaTSu7v%4uQ@0@s#{RIvIJY5WR0_<#{|Wzm!fxCrkzYZlCjT_^b@@Jc zQ~q;0ZTT_GcjPDFJ^2lE2J$@fL;0EbSpF+IQ~5>A&*WV^v1ELYx6w(-uV+3T@Vxxj z%opT$<0biBJZ?q)1oKt-OL$#=Kb@w0k$a=pbxZypyd!^zPEWoz^L_c2_)z{how2;a zeLe~JO#U>T#Jl4AYSKvtJT0Hn$;v;?_2&X!kpGQNN#5mp$^oy+|4FAVKZNUP1iU5x z51o#D#PxIo-j^@-!RUQyD4)|A1$-iZC!Lu*^UukLa`m-j%OUr!W5|_s<~UBl#wDCi29`qJ2#RK9_Gv zCz*=xF-s>E@Qi$GIyrfXPCnp8`Sx_m@;aSLz-#iI=rrUVI?aH${@Xy(gBA?{UFX@fP8ah4s;`i}Ak35AB>(C|1#c}Kg;6|<={Czp@!cV{|j`Ld(v{U;Ofoc!~2 z3i37S6a!wC?@FgC-+)dn;0^iibXxMO9_I6p{MUG2{t+H`Am0%m$*Vl>ME(Wlr}6{v zx%>z^$@j(gbrkcdfM?`ip_7xJLMJaj8!yUFrc;)8n6JoxhS%h$(`m?WWWE{jw)`AA zUHN@AiCcYE5!G>;3;{JPDcK2I$3!JFUr@& zOY%HklYbnq%S(7${zbeK@Sgk^Jg+(O*Y0Ce=d`tcU-jUDf^yIHH-U-?=k4h-%e*Jzn{)1;1hX@&P@Ikoq52M?~m_gc{*wN-{@olo|CUa zryzfmPBGwR`8sr}@}(Y(-iK=eZ^$>M(~^IHPCMXT`BrrL@(t(=0zQ&|g3d(#5jxX= z&*h({ll(w@kDsQK3V23drjwKJNhcrhqI@qpW%=QBDgm#_52DkMpFpP>@V5LYI$im9 z==1_UkRMNHB)^c(IN($HH|WgeSJ6pi;(NRiPszVcCnL{n6TL5G1D=4m%oN5SB>xGUv$#)cRj@S81fbIoP3c@qSseJz6tY1`H1_rEMJ07 zRsL~0HTh@ohI~0XE%`yrx8=v+efdfFK>lrfBL4wCm0yM@SBszj)p$yN8=jG`!t=_> zf6shg{v2MEuT7^c|0nYm`Qm)fQ-2w)2Yd) z%-7}r#+&kk=(OeUcqDq?=*U;Vd-5ac4CL!FKa_tMAIrZ&XDTl-Ka+nJPplE&<4JT< z@?Duv2Rti3jZR*^H=RPjEAkri)qpqU$1~pwct_siI(zc((CG(!C_k6ZSpGvg6Zwqy z|C#)JI*B#od%2uWQl8$H&vo)k>15^C)5!(AApa?ylKc)jWqE zX~};{rz3xwPB-9v`R#Ou@)nOfk`M5S{2n?p`JDN=JX?(RmCVNX`yidPe9rUA1Ux5y zoK8Vr;c<)d#m3S5RayQFovOS+rzT&SPDB1@IxYE!nQsTYD}RMfU%n%qLBL1yf76-B zJ3Oyxz~}PBhuGs<@jVXdqynCiC+Xzmd-A;U0WZo^bjtE0=u`q;lfRcvLq6kqH3Qz3 zuSBOSPj45UTTfoV2lCbFjO2CZ$MOz7m9I}{E*~%{kX0G*Wlbvo&QXXS^`$;%gcGz{5bBbs(dBpYw|VlmV5)eEzjd!`N=$P zU%oT*1NrXwNPZffiTumVPvr&P$L8|0=p@&VpZ|$;Qu4F#jQl)0Ir#<5=jA=TD8HCa zS$-4q75SZbO@0NPhWvNTH|2lC+wyDZbmepAd-AtD9^Hon`Au|2@+Fxc%ioVr<+st9 z%Qs{`u|a%~3!akSLnkBOf=*WcNjxuqfKE}qC-Wuwfp|qerc;ye`}ycR>j7`dpQ6*2 z7wL2Y-jhE=XCVI?*FTh>j8ElFd?x=kp324dbq=1EpO5F|m*EBZm3T#d4PKSsf;Z*& z;w|~Zcu)Q`-j~0KkLCZwC-OJ&#D?+nS@enMen`sSj%Vd5JSSfcFUdcEm*s2Xb$JeN z$T!D3@@??0d`EmJ{~SJ&?}5+c2jFx0k$C!p@$>u|o{@hOFUZfqi}LgFs{As%Ccg@w z$bW%P<+tN=`E$HZlN-gK*Zs_=B=AFb5u|MB0iF@!{d(S_wnbR=JJi0Pi!3D%Vu~+Ucj^RB3_j5 zgqP%d;1&6boI}liFh5`92h(ZFSEtjK*O~9gzk&DU>(d#?zsvkkejz@VZ%St>zmoZx z{1`H8%U&*aC@Nqi{2$Io%jN%<~x(()7NWaWD^ zpOYVs7vxPkCHe8pm*wBYtMW7H)aB@5*n+hw^*zk^C`yCZFPS z`9JaWrty6(_EdBqX5`D@1$hQ9%GbxM@-6Y2e0#hlukd?fJK$aU#hi0rz6PJS2LT_+ ze@15_PtutNd@lbvon$_K&Sjo&D&QIUwRCdwZ}ab`&C3s`UzFcKr!4;}^A&jmugPzu z(~y6g`DVb|@?X*E%Fm_KlQ+2^2J!)&k^IZgNB8qs{$u)6`5koT@^8^eY!=_+)pSzw z-_ps*uX#GUo~-;eI(hjcbc*r;osxV-{(E^9`GihQejlB>{KIsb@)zi|<&V+n$SZVu z@>l2#^$`&G5SX19Y15ZJBS$cf&jKES;YGK<4}MC8{$7veMd z=5!KU#P@g=^GW%N+@ERr)^xJ++v()w+tMk>KS`$~f0RyHek7f$d>1-(`CsWY*O|}A&%<-_ zljs!WeSW?asc4)|RDP399Hj_+&1GxD>T&j!3G zKcD$hz-#g!GhYvQTmEzAJMtUwp8Pq^Z6JSu`Jwy~d@O&7&Q$&i^E3Htc;X}RbAFXh zO1}C*(d!~Df6KFco|ONGPG0^F<_q#=@RIzkn?>(G75V#^ugX`&>+&V(H0A3u-;!^P zcjWJ()01z>d|$o|K9sLSXDt5|^Aq{!@R@vdI*CGjk9#nml<$Y9`4)6K^3$2`%Fo98@~!C%<(D%*lK1h6d7b@>5!Q~nB_ zw){)XcjRBid-6Bw4CLQpekeZ+AIq26Jo=n4m3Nq*$uGwfACK>Gc{(Zi^~|T`x8Pa% z8g%mVdzmlDAHqxWjp$V5&oEz=zlhi61v*XnocWe~5x#Hi$akdElfR4ke!z$FUFnSF z%hH+1GoOt1JClErPGXz*9^X$VDPILo%lD#_l^1#3T)+$R1L>6HH9F;hSLH|0smnWb z8Ub&~ze1-YAJgduye~hQ&QPA*G1|*0;1l_2bY}7boq52MpNQ}GY&vQA8tgX{@SOa7 zIt6*1>nR4jEWdB%;6?fIcv;@WtMaq(hJ1oI<$u9j@{LQ;xwYkU z<~#Bf^IiF3cu)RGyf0r7AIJ;%P+r4F^5Ra>^^fIW$0zbEovFNx&*b~!bNTUjV*B`g zlHhTZ@)7eXd4>73{D*i(-lUV2KY{1uhtSE(yLdr++rHH{>n6DPIC_$Xmp zSKhV$|Naa2sU70?XNLKle87B3o@c%$FDw=HTkz8+yj^<19ML!#zTTPx>hU=Ga&U{baV16V&nE9D}!hCAS`1QA#&&dnRa{cm~7Or33 zVZJ4QWa0YdiFZf+k$jPzqw|@`JItp(6~F$?na{}+@8SC8`!ipYcbIR<&u6|Xzvwt$0^H!u#?+;6wQgAIo3I zr}ETp(e=#b89e!!_<1hR`*2$Rol(@u%0I|_QNBL?vV1eVD&HQj%gcCEz8Bt>ABy+n zgYojw`>=e359FE0qxqq{#{5h^cr2RFel~ud4}UQ_x4eAWW1{cji}ES+W%;XkRsNRU zqkdh!EZ&r_j<@A`yer=x@5{e{59P<;WBHl*RGwWadS9K(uV6m8bNoDS!PD}`@T~kV zcwYWGUX&;Ih|aSte=lB@uZGv15@F6R64mGPlGkI&?p<)h!HQswx0p1e z=4SX1o(aFpE)o8vb|333&`BivT zeh*%kkMXAbdAu!u8Sl#9wtsY;effLwp?n>DEdTxr{5+L^nEAQ#ykgSLOQUA3ccsN8VU1 zns3NE{B=vd7r%G+2=jBc2hw=;YvHV(mD!&V#%kO_YdS1!B&D|a9KX4Qs`7s`Uzaa&X!Lx$ z@|EzuJj?kE-d?3%Q z8g+*99*>)>#;-qlMD)5#%U8j(@=fu)d`G+}-vckpzl>Mqr{i_`#duTRI6Auiw!F`L zS3bh~@(!J$`~~L6^0yorJ?>P#JU*9ifF}=(pMMcg%Xh=G@-_B}{=QFMeh~9T`LTFe zemY*24>^ar{Cwt{@;=^{Pw8~!$z!5(>&qXYGn7A#kLCZwr}8C^iu!Z;nt1Y{`1x;) zr{&w=S$PG|%a6s2@)ll|UxwG^H{wnC5?|szm*2sBSH3j!effy_q5N@tEdK{Sl`l?z zE?)^x9vnaC4e_*mTRbb@1<%X($BXhhUY4JNSLNs9b@_F8Q+_+%mOqJi<$uBZ^2EaX zjC>h@`Zi% z7i z7xr6{FYLE$exo3+mFRIx@&Wyd zyun}BzkEQyB5&~5HTfwE*Dqh_ zkK~oLqU)c@ucDJYGQO`D7Or3Z2A-8CkBjz|m#>T$<=1{V`utgzZ_IpEz8zkd?}0bv zb-XP<74OO~#{2S{@uB=ad@O$fpUR*7YIHtx`J2oqkBXoF`;O=Smwyn?%D2b!^1bk) zynAxgFUyxLM0=^qkETjg7@Y3<3stM@Ui?&d@5gR;r!*R;mI$> z&wmR%E&nv0mG6V+cj8U?qj+1s-+Q9}zIj*v!KL}{p36tv zCqwxRAIo3nai{Xc*SP=X%i_tS|x;4xO(2YP>JM2OrA+gpcL5wWGfuF_r&^`MErIY;-=!W8&xk?h`nF zc^1#gx5D%CFW^P_k$72t240nS@w)u6Q=;o{%5P)7D}M~{%U{HY@;N@1FW!jGXDVL- zpUc<6lV6UX^QL%Oz8#*Ge;&`v55SA^ui<6+xACg{BD^lY3UA5>cw0WgyYi>-zWi_a zQ2qu!mcRW(&R@Rj-jUDcD>9#~$Im~9r{xQsY{2sYF9y6E@T&YHTu)tI#+&jZ@V5M$ zcvpTA-j`pG59N8@hsW{#+mS2E(<=5eT`JMPsKElWHck;TJ%KyOpT>cWC{7U@%-^A1Mck%N* zD_;rE%X4^9z8PMY?~GUFd*XHZ@pw~yF5ZFpkQRbJR7@~-^p0E7>p09l2`A+2v&ucDU zxc=nv@#`-g99?H#-qAg-%z#5#E>Y#_wN4d7kT>%D2bo@-m)m#LszuJT0%| zS^0PHy!?E;D8B+P%LjN>{uo}D{|#@-U&q_>#eWdpS6%s!nD5Kq$NW&f20oT=f+tUm zpJ(pD=yjBmxA3&Qa&I(WwEr&hvb=VGhY2^BH*w&&qRnMV>h(`W~_>pBx=|&Hkmx>+%lXkZ0&L%h&(lKWxgms z886Gv#H;f2@VdN*H|4*^+wyzxuKYQ?FRyaWL;1g$AIlfNnEP423O<)_i6_4iKhIt8 zw7kXjWaWo5pO>G87v-1YW%wAdFJWoyrF>I(2#F`yYsYAD2()kK{Km zT)(`s9@qcP`1P-SWwfuHJh4GEUy?sezb0=m-;zJWd{5rUMg5Wd73Qb%SG&=5&gF|; z9(nRx@#nQ9o|dnUXXXF*=Q!kBF<+E_1~1F^!>jUR@Vfj=yeYp5Z_5|{oJCij=tbwy zm)}QcD1ROw%U{K(@`XRIF_$NQ!ug*TKmUb4H<6aF$b43w$Mf=?@uGa;&r_7;`!ZjZ zFZ?-+y8Kw?oAU4CZTY2mSAGNDm*0U8<&WTF`E&SG{u(})zwHXn|Md9zzYkB#KmJPe zJwR5z5%YQZNAaS3;m>7M<-0RqmmiEb8 zd}Ta&M*N&Vgs0^@;#v8=cwT-yUX*_uFUv2$tMZ@Wb@?55Q~nsKw&;MvVEk6U#$}hq5^6T)T{BFD~e+IA0U&HJ2<$e~O zPgA}&-j;t9@5*<=`|^YEp}c{Q<>%p3`3?A7{ve+GPW=3{{M<>)pJzTR|1X}GFMCyV zK1F#3FUvQ>tMbp_b@^dHF~+#mlG3Z$j50~82QW#kkLP$iq)O3HP1*`=XW2=`EK z!#yBEtSF(vaZ0IXx~WFQ?>FLY;CM75N~}^N=y6&q1mqH~1`rq!Bq_IW4+!mdt$CiO z%zS=7zOUDLz0UVPc)jS}&pXe4X00`A%}i!zCr$POc%Qupp8hShrws0}d*Ca7L-}>^ z+t?f6e`9ZgKf~^WuVZh4uV?Rq|LYcN&j5UrRpg29#K(Ut_7wOo>}l{B>{;-G*mK}V zvlqb6VYk7*%w7cl8hZ(RoV^VGJ$48DN9+~wo7wB&+27N+HNh9Nx4@UPcfhY>?}Go5 zeE|MP_QW;u{dF&U3j8VdH2ACRS#YCC{mOw4u@}HU&0YjAaQzDS9L}$SFJ-TT=h>U! z=d-uKm#}xhtL$CyAF&U>f5V>mZhV~Au&2Q9W>14Z#hwL!jXejx`5$Qf3*bAm7s2;t zFN0g`74W0jYv53&)n{GXg(0e_Rd2A){W;}8A`_9pmj_7?aF>>cp4*t_6g zVjqCJ?1}#sAOGvwQ{dhmJpSM<_AL0XxlRsT-Y>TR{%6iFf14x z*t6h2WY2;Bn!N!2SN0-!m%R+W>00V<1$-Cw8u&i!b?`atP4E-hTj1xhcfh~K-UT0L zAAtXYJ@Nhc_}|H%0)Li04gMy37JTAgXnbJoX}Z zfxQfV9(x7+tL!!KZ?gN~KkU){&&&_vFY8i%@`v&KlOLw}=768ep8Qcf zKj7bYWWayI`FU__n0`NEgF76Tz}Ik{8n}1Nr^4SKwZVO^AAlP_rgrziAL9Bceq8=8 z&*J)d@L*qRe+m30u2TiKM<~Amo_K`Dxee}dejhx=`Q}gJ<8N`C0YBQ9A>0;|5+|;J=gOFh4H)t8^*V&x8A1-v+lHrTJU}--5jgZfAMj zffqTy1#bNZ?+^JJ9$gG0xQq7}c)P*v2e)R^c1z%2dY#%|1$Q{V0sg}dA0NO2&hLZY z&H2fn#^;r_KeZEnzY1>6qx=T=@UuLBz^xqR_rXu({Nyj< z?RPjo13sJc^WeteRNn@7I4*%-!F6ij!K~fFBVY^svrlusz<kHNPl7+io&uN8sY!#s&iNT|`TQCS`~%L)7e{eLnAN*-PKIg&BV<^7_KKFTUKe%x`w;%jFJU(r3oAdkN zZ*%?Rub}-WaQne;{3o?14{n{v?FWB>^Q+(<=QqHAChZ4z3RJ%je&q|)p5(9N?YB?j z_JjXP<`1~X`6cjQas4W|aWd6!fH&6h`~kN)zYo5O^Ak76+wX8}f%`wB<6#cG@l*0D zxOED*6Z{z-hZguAFH-wE;Ir7f;1>G;JkOqJ#QSwVdkXwg_B8kk_AK~M*mK~wuouAZ zV=sa~!(Ik|m%Rc$`6U{k8u+g4b@2Whl-~p&;rtf(;p`poGuXS}SFjJjzr~*TO?>=+ z%$@?jg*^>^AA1)3S@siZjF0~x*;C+mv8TZwW6y$j*>m9k+?B?m0RBGb7r}Ra zh4xDs{4?wo@I%>a;K#Gq!IN+D{0Cpm@0;BMzkus>z^`EMf`6BN0G{RTCVm?q|Nr3p z6nKI2)8Gz!7W}4{XqZO>=p1g*=yii@bz;YJjLDw|15h8e1G;1_>t^g@YC4`;Fqu`R>jBv zo9rp@8haZ2m+V>aTiA2pcd{42pI|S7zr|h#pTyUJ74TizYv5`2I`|>%P4J`HTj1xg zcfh~M-Ua`6_5t_`_Qdbw<9`Et3j7c3Y4Cg5v*1s%=fGcPFMw~t*Ly|qZQ0A4cu;1z6b8H z*TKyPDZc?8aDSWN9=i{2b30q;T)z!&a(_GE0gq1rZgTxDI=80}9{iR1H9+TaF#Zsq zZvod&fZMC6P795w5QaxXtsS3huGjz%9NH>wz2Wb##-q+W_}> zC2xW|eE-e|_xZkL3*6xRHn_#!0rz?T2I%~IvM#v8-Um1M_fi9Ji`}?2KK~uLj}IO^ z!t)>8;dZ9LgS#l-1os{#PlMa+8E}JtFOmhfkDzv2;O3F!IrIhOd33H*01rM-`8K%6 zUIe$ z_Gwf<4Q`%Jo&mSnv)~@rvA|86>g2#Zu9F8hxlRGx<~lYypHGY6{;z1eC2)g}CuMMl z*R_Mrbt>Qn-|w!1TkJJ(gX?(U7JD82OVs`bxL+b~qF+qzgIk>60ylZw+TcF7zXR^D z2jCWuTNm8p>#II^z&-#senjmz{zzYC{yXwI5^#$>3GQ>96u8B1f;;>=ur#>Oo&mS` z^+s86gI`BwfjgX^1Go5fJb7?~y#Q`;du(u%&r?P4fV~9nbNw>7$LCWA+-9$Uo9tC^ z`(Zi`*T7A74?JM6gL~`^@PMxao8TUM3;gLl=zeA!yz$cH@Vc%8?tEub=mB`2^Sj{H z6_noxZ(mD30MB#2@u&Da_r68>3GhahJPF?BIw|lZdlvj^e!YqXF8kL8-~0%AU275C z=Ji_x&-42Oc;Hgs2Y)$D`=tdg$A>QX(Wg;+`ry)@)PKdt^KE{gLla!`EpTTh-}eTW z^;HJn!0#*KfXnkx5B&T5_fvInS&tp?8~A;;18`}-@#lDdKj8K!z)jv?S#YUufy?~_ z8(iua!KHo${2P4Vz6vh+4e))rgXCwyulgGue=Kn6 zZy9{riInevZ#+JLFXi=K2bcDAz~%TEfJ=Lf+vELmuHg9(F5{mCf9D_?PYc}R>k1qE z1I{mkOM5EdP5wNZD!AOYY=ZC2@7L;s%k@yQd~zDfC2@IKe6fm^?)d=K3D19=@hzlyv8 zZm%Y9f@e6t1%CVqv|rlbG7cT^>R+jT050Ru1<&6}`F-#P*BO9kIN$h7d_I)cQk?|2 z*&|jlIgR?22bX>o zz>^!OjtwsTDuM?eP<{#AF}4h!mpS023FH;n&8PH+O7{S z{c53aNBM2=##HhE+~fLPaDRKs?}OVrkPpDylgJZy#^=@1XHtKY;L_g|xW60KF~Oz3 zX>ey(%FlpT|Bc)NPo~Io;H4eO^WY8kBKWmuQ@={!(yubO_i3u{fJ?tB;7QJ}qNk}& z4cuY(z`f~|Uk5L-H^BS5Q+^A)!~Jc8OMg4y`Ms!4051LQf;aZ0{64tHbq3%i&No`| z`Ig_C>LkD|&QF5(xqce_SLe|F&45dPv*6Y+Z8wj;FS!kFaDEZo&rp5|yvkkyKj%DZ zXBAx9Sp&DTRNn)a{Za?FM<~Am-k43^1UF}r`{4Omf<n*-mGujljN(%%C50W_XAxb(LO z?s0wzyw6?+HxH!x4!FU1055U-yWkdk zAG~@H)lc0WpFf*DNc}Rw<$0(Dz7^-^z~y;y5qu}kFM&&b4P5T4c;FlFi-Hex{T8^~ zH|T;N#QA-2X;1R6@$osH^HboGp9Pot7P#cw;7hoE5j>rKGXTGh^Sj_uKXp%he4gff6I|{)6~HCm2ABLAxa?mKT=uUIzR5#0pIhMOOEjLw zz47*M%lQd#c^y;+d?(J&f}5{XeH(la&M$)7FH?RM{BxXN12;L}2cOINE%1Q*+Xp|M z^9SG_=bQJ%$LD;`PlMZ>UjSds`8K%Rm#cwqT<_pAKYj4;Nq@luzAxGZzmfC%;Px9d z{;B)p{gw8Z;L;uo`~j|?0}o!K`bBikFM)e9AHZMb{2I9Qw+a3}=lkH2AArmFbirkO z67Bf-Z2d5;uOztC&wyWiJ>5smg4?{m3gAwr7#{`%5Sm3h1a^TY6BDn0Y61eQID!AOou7S(=H^HU-KDe|$0GIjS z1(*4scrZRb0ng7QxXk|yxa_Yixa_Y2xa=<*T=rKDd>QXw58USY;DcW+^9S5~mDYO~ z{JS!Lz`a)}KlxC6e15?BDR7(fv*0&yz6EY_ei{7FobQ0k`P2iylk@A~ay;*V%lrwz zW&Ris$NRgE>nFfv{-?nwJVM8x47lXy!Bd=H0GIh+2AB3b;L?5%e1EQA2M>7sTj0|E zHn_CE4=(K=fJ^&RkHp9G7;cXVF8LPtv&Yc!IR`GUOD}?7F6S?Blh;cPT*lJ_m+|z$ z7jyet;GV26@MWCe2bcaPAB~TXjDHGT#y<=0a(xTj?9=)!gZ~%jJK*-4l<$E*%K3G0 zX@3j+WzKJd2RuFlaQVHe@wfOmNPkW6?H{G}l?IpJGZw&yPNex`gL^za4!F$c3b^#Q z2`=O5gUfgZ;Ip~?UGRY0lj_9Bp~K^8f=hcW@Qv#QeB*in-?(1DH?9}(FLV1na5+Bv z;8$>d3tW!R18`Z7#$)kuko9PS%l=J+dwl(z1DExc2bcL)0+;zv2AA=#fe-WZO%HtI z_<%QMe88nWUGRrEzYi|Y2UCy7$L$@?H^BoQ9}9fq-)Md1z-@m1SO%B<<$%ln^1xGE zzYZ?_ZGp@6WE)(rC;Q;i-vPMvH}yn(e5Ai7xb)Wo-&4j1Jdp7LKa%quaO+3Z4i8+O zpVq-WuHOM)#PtJknQzA5eiK~Qmk)08_0ItO3a)QF9UlkTUnckp&QF8e+}{HDJN!OrHn_b0+yVa$*ROz^ zJU^S@)w{P2@6-C=?I+1w;NBYYK04Rr11|X<_zpaO>fq)> zbe`&fKX4MA2Lo`)H=d7=&%yjTF9~qTPlE^PZNlSr20Xtfc^2HY}yOOx_0X ze~!EZo;iR#0Jqq?;0)o4+J4gZn=rcfcFhlUKkEb`RW~v~9Rvn&72FsE!Zb;Ca#l z_jo@Jz-7G~FU0qYtX~sc)_WRU@(bW{ytTpQcfzzCm{!ZJ?H1a<@&P>F5~Hd%XoU=tGRw1 z+~M}L!2j|9UB9)#Eza+Qr}_QU2H>*4QoZ=Ny*f(QpC-6m=Ud<(aDEP4^2^{Z|K8I9 zm-cwzPu@fAse?;?3tX;0+u$4L5BNW1{;Z3S!^Zgo{)o&UaG%HD27j6Ji{LUoRq(es zzXoo6ir=pT{S8`=KDf=#j|Si`$n%jGpW^%q zxU8=R_}-k~1efs)z-MuO7u@0Yq+W`TgTeVGxQu53Jh7JMrwuOS>41OckCa~lm;5^T z(cGQ}xa7CcXHxwRct^$oJQ$(;0eIp~npcUJ_N4k9@IL2v!GkpA55Uv! z@Ve;7_lw2(Deye!r@@_1Q~fMD=jXuvJt)5b?r?q)JlLJ`%iwj+uYenzUjvu?I=DHV z>NmjyuHOPT|BdoH;E4gR3vhEc${&DBe&V(G`1>a1r@*sZKMij0O8HrE$8# zc#-QD!Tnt*zYH$<6>x*|Yv47mUkA5#rut2A$!~!>J5hcIT=Ki%L5lJR;6Aq}@p^px zP0mk&cV+y+?H#Fp7F_ak;NA|DUjUc%kjJgF6XZfxSWr=;IbYE;Idv4Z^p;p=JRX{ zT&{c5;Bp<9Md$0Z9Jv1(9)IvWk53WY(MFPd*@aD(%+;7!iYf!mXL{J|x^2<}g!{4#i# z>sP={&aZ(>ejVISQ2i!&>V4{O3*6g+@;l&?-v#$Kr~CnUj_W7hj*ow^8Re(IB|i-w zOr-oQc$w?xz=KUGzW^@zMR0Eu$}fZ0xqb!Qo<#)g( zzYA`CK=}jk1iSH0eEhdLmfCNDdwicc2i{K5ed9d1GljeW-e5SCPqO>q@_U~axRszfZSdqo@(#Ge z9)JhzU2wysI(=||GWh_!&u$Fj^Q5#n)^898{o3u zo8YqEeQ;UtEpS=yZE#udeQ;Ut19V>R#(VL3CF?x_F6%uBF6%vo&gQWu4Z*Wu1E9vQF#ZvQB+)S*LAqS*IOvS*HQGtkW*I ztkcB5;`>p~%SmuKFQ>reyljHYc{vR(=j9BztkW#GtWyhI)@cr0)@dGG)@cD;)~O9H z>$C_i>$C(e>$D6m>(l|4by@+Jby@|_KTh{=8{o1|o9MhweQ;T)EpS<>em3=dV}0}KR!PjJPrwPIlm{t<@|1f%lSPGF6Z|QxSZd!;BtPq zz~#7+1DE4Q0bGt7Hn*@anE~{Op34 z{tXTW8>XTfE?Ti~+ZbKtVx z^Wbt`E`iH>FQfB%cfe)6SHNYxSHWey*U)*rd+5C0>)^89Ti~WVZvr>i1Mmi)myPxD z`5@~n0WRw+1upB$1ef)d2AB0^fy?^JgUflj050cc8(hxIMQ}MUSHRymm!9ue!R38# zYT&`!v>rWhdEc8lxNYnZJ}+*78yl#O4_pcs@z_CU|KIc^Z9)JOkd}nmh}h=l0~lZ@Q3PPn8Fkeiguj6xFxE zrC&wx4Cj}@OFL2>2Yq|;3b@H$1@Cj68h9|3>eRtg=hJ>{fJ=Xy;NEUj#|M}Gw!ni= zP<{a3*qOWwZgPGfyfKaP2jK0U$Wz8=!}TGb?_jpbO>pmd@+^4!vK_;px4^5Hl9$1y zz5|}Thw9hBrM?F)^*i8FKL9V?P4x%hQs0;m9|x(Q1(*63c#_Ab050`yaH(Gdm--$$ z*KdMLeIH!v55T3qu}QqY29JLVT zAoa80Qr`mi{z3H%;8NcPm-;pEewXTa;Efl_o8VI42bcN-aH(%>7VmF<9o0{POMMeu z>KDMJz73w~QT;Nw)OWz8eiK~k`{3;tsD1~XkIwvhw9hBrM?F)^*i8FKLGc+UjuNdZ)_1C2dSS0m--gC{T8*q050`yaH(Gd zPi{@;O%L4Jj=Tvj^?h)u-valiQk?;~Y}ZJ{$DzLs<)^@9yC%47Hw`Y^Er82*ZE%~n zTLzcyI^eS13b<^y2`=09!Hp#Kw*xNQ4Zvl)U2xfMYEpbWWxFQ0&HFtIF59)hWxF|W z*=`wJw(Ec!+f#pQ;Ids0T((;Wm+f}IOM6lM0Nh|7fXjA`$?l zJK$2k0iO9O)oFc%2Or@BaPQYtCpjfP4#C2m!{-<2k8tZFyzmiT`UtOlgnQuao2Z>l za2bd8M|k%mJiB$gzcLPa@b+!=xnpH;dH(?iT;6}c1JCgLan-@)bFn+%hjM-ZE}z?C z48_|&pYs#o@^>X^@S{0D11|4(Q~)n>z74+d^HRa({X;6?0l(iu9bDc&qya8}_tXZL z&k^f@%ll~zz~%4SjAVS=WPD8UZ*YIp;NAkdACv>XhV%2_GM**yA8~#eTt4r$2L5x- z_rT@z89U&2bAA9WpTlcx6CZ~MI6nbya(~m{f9L!Rxb!y<{sQM0z$L#7{yOJ7;L_hF z_;$zAeJ~$f{thbu|0L&k!R2#%6WhkeX9njd!KHo{{0Ppsz@@)7_(IMvf(H-K-_h5= zFXem>T#i3J_*IZ-NIr-z;#4^K;;`e~aMX z=KK=4isB`dx6Zz`tkOIo|%ye39Cp z1efg4hf6jFY+~@oQ zaLKp9cjo*exIB-jfy?-K;4(fP@Y!5H0GIh=d?Mao`8?SKxU@eFE}yrX0XO+PQUI6p zvJEcz4*1zc8qW&293Sf7^1k;CaGUpU2YiR~seS-1>o@hu`1nY^2`>2s@QwWi-`HR9 zdoJhxf(P=v41A2+-vF2KX@krA(s#gZxy}Ta_8Ys#$3fa}f}hOoNrT&`(fTTYOMM$$ z>O0^MJx=dWRRQ<7ejU6l;{z_^*#?*Pcfh6n1MpiPr2S=>@$r%C1QYx({Qe|qaO+1j zJ~?oQ+n)#bPN)1b_@&R#_&DHlJoLcjeX8r=GCnPE8J{+|yl>|KT=uW=srdNF{x!jG zmiYs2bANN-t7Uw^rTr!F`#HZ1Zu9)FflK>6aB05}F7vYmF7vYsF5}q;m-&|3Ek15? zU&{oS=am-tt=!)nxU|0vF8y`DCEo*={Z$8-{nY|bUO?-m4Ic3L_rdq$`~kQeZ&Uvk zAD>+~-vpQX7WiJAp98nKJw@T$_SC>-JUwt3Paj;4S1oX9e-~Vi|9x;d{wJr$ z$48D=DR4PnWx?fmWr54_$_AI?RS{f{S2ggB*Kgo*yz;@%IECg<3p}v-`fc}ke>Z;4 z6u2C(GT=w@{>_4$T;B#ip7V>~CLgb=;Ae1t4cz4Omk(a%{1&)(D)qMyzJ&7!-~s2S z_K1&o9Fro zaLG@DpTYSVaFdS@dGHH4zW^@zW$@Sdb)F8m&F|0Yfj{svo!{%=lHUQB<4*uC@9$)! z*v7(ZhskE`s;vuobQ24f9v4V z-wwF6KLD5Z8#ChLAni|pOZ&6nay@K;%YAzrT&{&&0<;+GB$6y(i_T!EOFMR1SRduces>L`mF_iCg-=oJ(tF_4=(#_050uGeKtOB*YNM5OmMl6ZGj)o?a6_g+@2!%y}Z6k z;NCs-d%!CAc8h3yYT(lTCivsr9v@uha{#`}pQ(NqeBa^S~wF2bcNN0+;#I1(*5R2bcMo%*4k>_E!pA+LHzE@qDnr zWj@&8vcHPpvcGEJ6Y4ac9(cgVD<6DI&ToO+oIe1c{UX&jhU4QP<70w#Zq9bA5|*8rE}TL)a`TL3Qm*Vs2c4$__kxU?q?F6W~R zxZIz~gFnOlEr8pr=y*~Fm)B`H;F9lwf4fcNSqHa%Ovl?6xXjNsxXjN1xcuJM7>SRY zjHe0yF84PLF73~OOMCL*(w;K-yj9d+2VC--;4=SxaGC!B_~{L*-vu}CrTvwd86SrO zeo6UBaGTd-7W|AyDBl9NJlbDnaB05-F75Zgr9E}qLp8v(e?e`8j>zvrJu z$A<*Ctj8?)_oct!*7ek18(h|75nS3+0hi-L6?}^XF z$7ku5PI=GBy16;f#1}j zd=FgOkq&m=X_)Tc)tREy@Uz=9OtLOjh|Bc3*eI;|O+K!+z>Qzh{4@@U z_si;WzrgJ`$urC5^84<_#x9yjvf)d6o8eEE}n zJOMX;M&sjyS2@20F8KrSjmQ7dc>6aV|G|IG_0!-Mx2FJpJLlWrvfmx>7Ux&M9j@O5 z-+257m-+$t#^XP@f>+~8I+wW{k`Dt)tJ8}!$xr~0k2rl(KaH(Ghm-;@qvzY1+z;9ba<7|w@+wbvt!319! z(7H&2%QzRn@8o3jgLd0^V8sR z9?65h%lQRxi|d!c<@fjwxXssrP4I2_^Lc&njr|4Rne)5g4!0+DSiHZxbG`{KzbDFp zTm1X7D!9J~&GQ;~HBH_EceqYsUc5d29Li6E=l3HofR8=P*9qX(FL=Izujl?&z~wko z2j7D0H^3#o4gM+4?|{p?9)NGp`9>~24pQF)Ka%s);F4beKacZmaD&IE1}@|2fy;RM z;CpiY7P$1c3;rgLe;-_~XHtj9$6*E6H^C*}0{;Q$=fLH@ToK&oc~}Pz4yO6m0QY8- zcfqAjdVak9QYQm0b&B8tUq4sT=hAk4aPMohy#e?Pe*SA55pRziH`3t#jkI2D@ajC; zZV}u*jJysmbpmjy(*>70*#+@-jy*@~+5(sTUIss!^Br)XuWvo@Q#rp5F30&6_ywHb z2ABLk_$8b_05|zKpZa{fzgKd;2`=}eEbwbMKL_q`e~aMPbAAb2+Fu3#6X(~!ZGIln z1iy>(eQ=p?1MufL-#9Wp4)XlV1b?0L)8LX{0N?z1J}-bvdmM1N-(CT?d4JWxW!&1} z`31BtI^Y3&@~C)!rA`)H>R8}XrwlH2JaDN~2bVelxYSAHNpPu?1D84_aH&%U zmpTn_snY?MIsv%UNgW+;ztpk7rA`i9>I}f;xMUm?uP^UEkOe=Z#K$pknTIxbf#+=z zT#kDcaN{O^ehOawJk7%vc;hJY#If=AOC1Yb>g2$sP6b?^7c{_2x6yW+=*Mt-j*GWP z>SVyBP6b@@8{m?kIzC?iAs%NF+~@JMz@O**9Ju6{!R7OI9dOx?9{A?}qdTWoddod|NgfEZp--&{D>E5fBE3j{s8<8&hLUtexeW`2Z#G* zfj7QPf4{Cm$FxX=A6gE#nfL=L#r_rN#d=TmiX>2C|%;q4|)iTA5|1NAov z-u@AJ0sI;H{T;Zpvwm8G6IwzPx2vKLOr)I1~+do!|is!Gu+NDxOoZH>4V!_(C5Mr zz#F{Z?X%ft#<<>z7L4{p{p$zLmi}_6m4^Hsx2rGn`)oPjY?(yv_MdaM^APJkNF7;IiEg zxNNr%-ae4pKL9t`jdSDUpFe=|6X4Z@$dlj=&QF0?xqb#b!*#OYeXe7H+w3`T^AKuJ z9=yc)1@Jt#rv%;}r8;HsKD+Y~UI91eP@O6|*QtRw*jwP&bm@B4I4{0mzSSd7fcqD3 z9nR+@c#=H@-oKRcP4E(X8az{`{0w-N>u14jb_?8L&w*PNs&9i|%l$2aOMgq~7g3!u zxb)Wnm;P43rN32h>2D2O`s;y9f9v4VUmrZ+SiZ{p`Jb~L9ml$mZ&ruG{oV)fuOJ_Q zx7m&2XTzV9`W|}%yuogP+Z@YRsq_3)YG)Dht(T}hC2;=@@-n#5C9i_FUm&l62kbt0 zGDYoaftwSPVgK9U{Vm8l;K3&3U2uN_c^|yAIeFrI80XE%li($;lL8N}qxPHVE6LN~ z27m5m4!n9jeIAPa5nco@aef7S_L=m1^BVXVdma1;_9pnT>@Dzx>>cnk*}LEuun)i& zu_rEwkN}Bu`m}T z*<0XU_73>F>|O8;>;v!u|DAZ^3-R&a`Yf71Deyhm)8G!*$%4<~{2cfp>;>=>*(=~D z_vw6E13&2u@;dmrT&D@Xwm|tU@Jl$q1AhNP%I|{DJDGd{{?@7Fi3{W7>2UoNc!fO; z{w?+__;u_#@B_}I?H0ffV=sdLjO&!aSF%^YefApoSAWX)fx++O{3iIl>@D!e**oA5 zv3J2AV^4fBKF&|Gr@&ujPlK;#&w_7#HqHMW_%7@P@DcVR_~+Tn;AgW}z`xF31HYQR z4*q@iCirjJTi|!IcfkM2-UT<#p>Y_1r`Qu0#mE2C>?!bB>}l{h>{;-m*mK~gu@}HE zW-o$&oxKeHzu7C`H?h~iefBzdo4pDC6nhJN9eW3Sz}^MljE}1W@a^QdeQ|vJcV$n3 zf0jKBegJzGd_H>_-1-K6?uG+i{Tg{4+_;Xs11@y}aH*3h#rq|7vf%k&Qhf{D{|R{! zJh_Iv1}=3xaH-P*mpTLR(w6jo^~RUt?XPY@o&Yx|lBdD@8>pQHaASYUx54`}$t&ob z?}2+?qx&{>aC3<6&osdOoyeQu#=hh}xLF}@q4((iRU6z}Ozr7_n_E+z06Z8c@1kE# z-Ul~6M?OHGMQ$vL?=RCOPk0eb@O^1;`%v;4cq2{jgIi~jx4_MF$UETnndAYuf&y(o;lc&I)IpijIe;#=nyqzJ>faia|W%ztHi_ZBLxXtc> z-}EeWX>e;H<=f!b@ZUQZ!P_Ts`@!AC+a-1yRO53eKesym%JdRbt+q;u{;Qc+x z>);OO2jG3)ZWlZ_iR$#hJ@&+<@o}?HrTip#a4fk6zV~g^-y(SOEXw!5s~oq$t^cC@ zHu$PLseT{a@hN`*zMAt><#@j&-vqyh^DS`6&w>Aq^NZk;Ujl!Q^Q+(`ZhsB@b%{up}({2BHv z_^a$W@b}sC;FF)G{Zav!byNknx|HvM%Q~uqZ_D$o34ZlY=z7cte~RaS8+=D@X9s)_ z_AdBm+56zL*p08n_t(Mf3Glh>DexoMP4MH{GvKGPXTdLKx551#=yg*?@CLgB?y*jj+~oe&!Mz=nEaQg(R6MzTDlXt-lp0|B)hsSvU?(_UH{+;T{{IBx-On}=wf0E$d z(|kV-JQ0wa;3f7nxN$S(XV4Fz_T|C-CH(qc@B{fe!3Lkl?tnYrq&gMwg`8gnKaafu z?k%G_P4J^R-v>X3JplKYQk^dNmpH!4ToPL8q z-i`Pth{AvS5&vYw2N9<`Y5d?BAI@7dlAnk;-5H<7u#B2HKA@qEPhig+R7bmyNQv?ETx$s#XCoJNqm6!Co` z^~({@MBIt^aKtMS-#6mbh>t|P7V()8_agqeh}R>&U&I>`&qll%@%Sk3 z9P#5K?nM0fh*u(hLd2^PKQZF9h!-O6Mf{|Q*CW0#;*E%(9PwtvPl>o6@lzw-iuh>} zZ%6#}h<74xM?8r584>SB{LF~=BYsxI2N6Fz;>KAY&i`{Go{0E)5l=?E81YoZ&yTnn z@e3lJj`$ZMo{9K{5zj{aixIaXeo@485x+R%`G}VyUWoXYB5p@~QN)W8|8m4j5x*qj z<%oYJ;!ecB8u3cRFO7IL;^m0fB7RxKy@)T4cs=5mN4yd7DRQOEl7tXB%-8+4q|u^q3EWk^I?3AjwkEb3ghKE-crYzFuqd9Q*>;G@nRk8 zTavwG7%$TC);c!A_yQdd>A1gM!R}}3IH}_xj2G%y-*W7=!}u5->syUIKaA(=Sl?po zHNtp~j`gkYo)^aZ>sa4v>{Y{fUmfdPj6Ele_tLSxwb(0#@oqZSw-kGJ81JlOeJin- z594ihtZyOqtT3LeV}0wemkHxdbgXZ&_slSUPwn=izJ=IJhVkn<*0&COMi{TtvA$*4 z>wlp8|E!Kp9S33jxQ_KL!d^R!AJp+~I`+f(ZXN%djvHaTM#s~2?1k~II@Y%Ud(|*r zspCC#?1b@+I{vhdOJRJ2j?+4}!}vNK@2TT_7+<5~y>x7a@p2vSt>a7>U#a66IyS?2 zv5r5Z<75~w(y@M0+%v-X0v+$8*ExBI* zU*Z1Ov8Cf6j33wWsE*rV{Gg8K=-3bAyLEi1jvHaTM#p11_QLp99qU_fy=oY*)bU|D zcEb2Z9naHoDU5H>aZbl}7+65w>-h6J zPKNO!9UrMsw>Jb{HR{V|`1k=ZEop9qU_Ry+#<% z(XqY-*7L%6e;w;vU%hG=@2g{d%d6*v@m@OCx4L?zFy2ka`W9Eu4&$A5tZ!}g@?pHK zj`c0Ao)yNEb*yh?^)g|+iH`LxtezRh@4ckrQ+1pSFkYu)eXFY1e>dF! zI<|Ejgz@7#K10XtFn&(~q9TXlSnj;mq3Qpe}&*a_ns zb$p(VOJRJ2j`azsXNU21IzC^=`7pjl#~0|>3ghKE{(_D(VSJ^IFVwLa#*20QMI9%@ zc#)1T(ygicwJXyzI({Uz@H_@@a<les1+EhvZfdHqA}ABlp1iOQxyQ&U;p1Mrvo~;^x$7Y{Vc@s`mKO6h` z-lgh6ZkMh%ciCN+3@uo(m8qWP_YTNxqi$>%DttygiSI4gcN_KAb3?o83lu|LcgX#b z4YRIOpKLTfHa(T^=8oM)-yBKl?R@z7;*F12PWu0QeBs8&>nFqG%Qg&Mb*mT5 z>U(!in3YhE9W_ar%6%p|cethFE&1zYWeNSgJ0~%;>hvl4v8`7BBTO9|{;Lj$`0Lg> zRekR+oFbjsMs+}^B-KABZlfMoKliNK!~;6sj=yfJOl{(UF?YVsJ8G(aaC=DJk&}1$ zFnQ{d_2DpG^~6NlN=pCWPVj@f@DJ|%;ScJ(qo(QPPeAgnL#w|2N%aG(Ur-&n-(5Uy z$$I@#zoDyY>TcA@!~UtGr;MIDdfMpedS38j%dVXydr3_;qj$VoWa0d#JvUj~s4_L_ zX~r#BvHdSD+r=1K^~RFd)Poa7$7ilwu;LTn`^qkQihk=$yXY18%`fg^EcvIg!7zqj zbDvuMN@{dy)y&`0_epDL)!XW)exni$W5e)kL#y5ypZR+oZBXgMEj5r~=}p`_+&NRn zhVK}D!(Eh88*~>=(_7=h_qmU)?&-o)#)rf2lS8ZS8XceFE_o)bd*9Hi`^TqzTSuzy zePixwRlM&mGMBuq9-rvmJL=x)&Y3>^q&q*YM)NOj*S%oIyzz-wjxGsw%hiTQ-R|h> zZff4ps)8j4sg&AmQFI ze7iem=CEqitM0-B-9=f|pAS0|7VpHjrNjUGR@6^Xm#nZ$N%vlN&Y0?z?oux7(gh3L z?*DX`@_M%%H+gOqW(VY7=3vcG10RxyvgG)N;7j zy;3hO_r|N$ziJ9ESCdw+o%`HgWQwcraf-XWp;a%BPq~>V`DD;l{NJ*&pP+IALznn7cTo7NNUn+T7v4sC8(L zxfe_y8@WIoy?g50v~JZ{_~YuhJwvx*^{e_=a^N3nP$sDg_pg368Sbr3)GpefwsD)@ zg4*!yA01X-79BSh_E{}bHDY(U^H0&; z9aR%cZFkDmJhdm?ryf&CJx-{j+gAB-mR*t#rL)KfrZ}^Sj zcXa>Nu3hggw#VE%)z*gZRAXEUH+G3CJ{U)7+67fyO7 z>~vBl_{{NezuwC``WEzeF0MbjsDE)cw&(>inQummCduxJhS{aq9f2K6$8V zb}z5YaFXfs$(TOMzoQPqtKD1ml2gO&F4wC}ZQ2bNo!;_X_kMS!UT)(HR;XcrH8tkm z=&4YR{>(qBX6dCv>wRnztrTli9hSo8#M&|T;f%j`t{Ras_g&rma2C9#&iAWnL~hk< zl2)So8jVXMl;5d;)y{F3H^XmKkHYz|{EsU9$SI+_t;aZ`Brb@!-$V}}O4lfvuuosLr%4NKRU>d(z<0FgE;(yXgI~@eAG` z8OklabE0mR+KF%J+B8-4!RVC_uV}(R+M_Q`^Z`QcJ#}E#^Ci3(k;|H3RA03|H#U5` zTAW>X;Y$lIJ9OrhrzTbH5oO2&JR{t`zd+wVXHZ1dpDzB*P zyYUtJ5+kP$I4h>C&_k-8KK#3V_*tuSZg2R(+={Vf`uW57?6GlU=^E9e)ydq_ZgR{W z?T?LHQ{8fM{IWMy^rnhZZh7kXWdjurR5Z;kr^YXPUq$b`priJxw^u1RpD`!{W4XU zQCAgiRuz7(?8Q;{o-y|^DRA!S&_#dORn8qc^LB2Fs`MmRnpV|i!ep-TlTr5xwTTx; zSHGzHF{7?pbeH;OT5aC=wC~RwnN}ZlpB!5Cv@WpmXZ6E}jZC|F?#Q&C=q)~^ws!Zq zLl>?d+Gg{y+27Oqcj((|)MfavuYc(sSw`XWztI!bdfD!xa0g6L@5?lLf;yRQdO^5w z-d78Uo_FQkhlW;dF|_Jp{k-YCgnGu5bB~+eRZk=)tbSfSwRuj(mrU;ut-5rIdYUub zRu62t`k$%rn@!Y{oba2?MmE(CKB6AnBK&uA{fG`HjeKFEdT4a`VHIpiUnZ*u>AS7Q zM$Ss;pHw^b#G&xtt#j_v`iCDK`SO(UALu^1kGrQ#_aAs~>ADH3W$&xSHzBwB+0Akj z-qS4&Uc6M#xVn@My5B_Ie7ZRVHO2 zsQxPlMDWN%hD*>Uj7!cWnCKRh56KiLB^hJ!Wbxsc$>_+tuq-r8O$Y&mD02 z^k8V&JT-OI1Mlb5pm)bqJD*TTYt=aQzuw7*s`Y*&?diWAIzIKc3)F-CCC{oen=$G2 z;WcV^U++Gu2E49s1#M6ds7EHXRl&h2lQz0RmAwzD!2S@wUYEtO^K}IjnA+3 z{hDw+AG%Pl-|Y`PlGgK9BPWFGd&V*U)9ZQEz2pDkl737r>9r5MyW;2#?rUm({C^kq z6?9%uJNY)XqF1Ubn_mp~=ZznD!`S$FYFyPd=4dv_e8y6} zUk)9aaU(7DB`SPaEp`2HNAJtg;XBp0f1f-2zFOb<(SiEvxE)nVM{CtrM@>dG&EHaU zxu;jPp626Im%3_eQ&+0}`=(mG;o??@gsDr$++b*x`mw2w+tr!w-@?tPR*$)F>xH8h z*~q*%Rl&E_lKYLSt5@;J#KxHW&(YN{>8q%5wUX7sSgW?HSGhVe{MLO%9T;v@(cAjR zPamiyy;7GLIZChY>(#1NhXqyaO?@{)6&ab9#lK|aCOU1C#Y?O33_9? z$YA5osq=jJ13Ga>wVf&M8n-V$q_#D6NG}Zi&8~F*)77J^R-KRZdR3P=mu%6Sqh5`2 zZngIX^-JjwZ_x7jS?+zRi?_l8HIU}nx$%j+r`3Tdr=pxXt?N6hyQ{0D!`<~ceY^Dw zo9f5j$}M|)=&IAz_lLXp=9b+xbk(uy`_HROzpLh}Z$|aS)i+Dw!wH0{#8! zmnJSyyDuF+eARn;E3@Ajy6Wgn)CHUS%;77nGzI{m+q zTQOzmaCgIk6=zS+%x?Y*%%#b1fm$}!D_Rr77W z%84z7BY+dCBZ{+&f-Sz_#1`K@WsZLHe(4AEh7^_`vlfO9XH2N-d*`?+&m9&{@OAnO zyO#Hj(^|l(4ISyw@;DZV_Ox$=BB8cy6fr3eKWs9nM!r%o=ZXhF7FCtlgt%70{3Bp) z0pi)f4T#_82mZlaM=Xo`2tf?Yc)Q^254QP(?JRx(vgfoj;T<&ABQE;!fT zURXI6cmdt2xgh40mck(GlN=blt}r;I#edIe$GqRA;OVy>DYBlyEb}Zx2uM1KF;EmV zOKnYku@dl=zv37oq#&#q+t;tGjATMQR~Xznt}5dTI=eiMAy_Y9gu4NyKlmXq_5}wx z3M&Wt%4=+e2)F_A8b3UGzoN=lTNIoAa<;wwwDu|h4+6PX?MB=|KsRtu%kwr%A3u0B zWZu6BjJ{y8%@_3b)AB4$FTeyWSKt*^60mGeUSQLfa%tBch{k;mbiJ#v@v9Ke(KKn(H~$orsSR|0tyLH?-@G9k{^@(OHCtFdFQD7dQWm-zJuYnm1T zh3Jd>+uPsc1~^~US2s_W^-Bal(ZP9HmiM^v4eftY?RVp=UeTUxAF0}ZZt8#1mSxfP z9Xgay`6b7g6QDNPDwjHHQHJu5)|LM+4rVA^?M2l2bJ^%eg+DF@X!~Il{K3sd)cn0D zm$yLQ|C48fJ4D}qtT!%wB@=d`YUEA6s*D@`2&}S;s-CdZxD@!xFKF89BXC|@Iq&Pf z@|aCqx$tYg^E=?*+{0n^Uvw5!lsWFj*?S6u^@Zg}nhPpkaomSqqj+L8PK++Hp76uN zJnXNUZZ$HlM$$%u#}|9vQ)Fi&1)TBu_ZuLdqP)ytW@23%`oG_ikj)$H5YKurb4i8Y@q|CvGuzch!zY{xz}!X;Lr+1w zd%VL(JG7PKt=h^lX`YIE+{672E7~7T$6+E@cH=WE##`MOG7Xh6JWSpXA8!R7}k9Vu(yn#rRAwF6!Z_7}LXzQ&|-gvp^Y0!NhFVvnwWM zdxw`fdU`76_QZI-+^FDQ-OGInD(3d0qGjt+G&hH*a?p%F5udraY{^9n{zPi#_GU|O zw4m^c17is5=V}ENFZbao6y|EQmi;I?rIe2azI$NxwPgpPyS_@u3nk}aUpmAGa&!aa ziuc~;fid&)w3S8ILCCHrRpH$i-iR{`DF^qV@c1n_Oy(`LqFZtB4rDI~-ol$$fJ`s! z&jRFr;ms^SGZqdq{E5HvOa98ID2QIy39suThyi(A;#xyFypJ+CgV;a_PvAbX&2}bkd5jzRdrG_P@S%-`KS&-^%=heqNt5V zZ6<2C)Q0N4sN$Xvt4M#ZRwWVmXWgzHFAQBk; z?rD*{5uV}mU_s_W^2S5*MidO6hvLL^2w4WiAQKF;4lkn6y_{V!K5h8qbjAY}6HgEK zW>kzhQ!soXy1aar1A`+kpF=|rfO{Vr&#@5ZW)D<`$0Y zg7(5@nk!`89Hm9UOa9;yU-_YC+F{;a=;;q`AXS)Xv2&GcE36tl$QOK!VZvI39DaC- zA%($@V>yPrq0v3O2=+dLbV)@H1}U-*A7`bGqnI{)TpEbYV*2oL=@sMCSYbd$5=_d|Xz=_$(H)hmQlhvRUjod|c0p@jY4WHGEvJit)Wz z%o#o|r((QJoI8A6ZpHXqw)P%Au6M=w-YoVRKCVy2_&zLZ!^dg<;Hir7TJ-7TxRJav zhoB=Os>p%HS)CKD_(^k4Ov6vQld>~8!#ObnKbg*nnfU49oCu3GIm2k_Q4M(zvP^#F%0oq3K2#isA0@d zS~Tj2w(K3@=PU<22?*{7--QRrgG{#js=Ri8)ifui!REKd5^=9DxEB%H_-1m|dA(wT zHq`GZ(N-2Kgo+hH#R{Qfg;23Vs8}IXtPm0$B^@|>P{GS z7P6dU$aNSQ=NR(b=d8>a}HCLE)zLSO>lLS7-;qrdJ=AaH<_Y(d}6Xn|QMU?bB8J zZ`l4G+y6_oKcL#Dvi+B6kJfK9ucq|%7ShcT^uRWT0%L!R4f|i-!(N+9|2wgDMcrR8 z_P-!gz3pgwyEj-J9r_>AC)<2|HqI|Oq0YbfN7MQ83u$w1sq7sb^aacL5P-C4%llk^c{Us)bqG%{avG-t1votnr|Y=B+>2$8W_#dGq?qG7HQP6T%R*h{ zHy7~tFtx_X(lM4sA^6^X+N%Z9P-tKwhvyo3XqpbxCOPar*Z$a`>B+^extOqDGC6Y{)5=CkHwp%;bv(#z}6-J`{#Q=99C+1*vmtsUn{Ed zYZH#J5(OUX(8s~bHXiozZ~%Qaqt9_xIL==58Ny2HIJ?m2ESot_6n%!Vk~&U3`dl)` zX_*dEd>{i6<^dXyw`y$I%i=(37$gmiY~{e&xF~*@wQVR(ucK&8$1Mc{>($zJfS!v$ zPc|eF?^oWE!v+()ta7*^b7rz=f|6BYncvM7zOt`%bH&5mTrne-Df@uBx{UHMvL8ej zqNL^5*RnpkKPBS~>w76J88@^3G3$-2=iWjZgjtW`O2{6nNZ9608qiEpL+P4D86Y$(neB*muo4cf9568S;35H|PoRsHu{kSMnQGc1n3azU-XvUIP%az>-SvLuSt zLbI>(;TB(&{q$Rs%XD3Uyk+5|veTk*RJRCFWvu2`|T8DMk-$+OOjhOWJ7V2+=VjMB+ zZ-jCjq5ek9`WvA<8~PieL`SH<5wrfvIEMaq7{}0G8OPAy4&xa5E8`^eH-h|qivC7A z>TiVlD+4F=7bB)6O`UiZF*I)TPKEFF^o3HYpXP_W1wdO+L9~Yovcx?aB)r{T? zDkr=N&t1XJf#pWesc#vc+dp(OSFk?u|5M=q(M|b(4EPM~gSc@2&|Q)UkvL!~;sA70 zaR9mnXeY##`-j%E+ryQN2fiS^R6KxQ^Jy-eaQKJ)LyxdmiNpl~#03~k#RcfLh*o1H zx*hWmJgLc$E+pzy&*>JEetK3LaOST&#@0)=q+U}4=!pEjW`e9&Fj3Z{mi990+MEX;O- zzu_lcb?b@4pNpzI{cJTaEt+iM$hC|-xSa5Dcp8vG8NQLjM=^YV48MuPHygvZ_=j%f z@YNjt5gFdc;n$Hm>x!!U{W<*OHUn^3trQ#3k5kZNBA;fUa5LuE*%5^u2^5}`If@e~ z>@BLAbTj9e2AU`ohDj>LKw-Q>fyl@l#N!ss0qUgUu|I*wvogoS2|S`jRgc}mIc7Tz zJg~HS%u!X)&w8&Iee)B{{so|{f-3u12O)Yj_{vOz&~Ba zFHL~ouc)eQU;_Nn9DjiU{)7bhMF}1Z!tft=1pi_J{D2IKP8ohncV1U7b7(k+m%bBhAOkYQihw?E0)4}X%e z!CpcQ&1pA*?(R7qRp_&V-)(Jc6SSRz3h4?3ra~L|yoq7zYinLygtU_}Sp8n0R^J%b z2dj@_u=-|H+suE|4UCpvT4%Tun=_^W!Za+3(XyU=Z(18#vH5-9_^|lVTpfJ*RM;C@reQ7lEZwpgirUDT+CiG zPg!$e(Ho9x$lq1EO!WVm+%&mL---TjI~rwtET*sQMA82b4sJfWI&X^Ze{_&WSLs&K z|1S=k^uH?q3X{3iVQ2qO=xA}__Z?1LNRK0zG)p061lNW_%Ayl;S7i4Jc85ABlg25+(P+cpRm91(e(KC@n0e#I^$# zZwX~}ElNd@T339lZ^_xkptAVuSg+(F44N1*{Ie`0#6L&qpCe}f95MWJMEB1T_~(}b zN&g&4_0MlOI2}h%@zE0Gi;s@bibc#mI%4?fi0-2!)tn;fqa&$4`ezPCJO%;@KP^~@ zpN=%*DbNk6SnN%-lv9dDUXN%(3(MSOLn(eTxRkKwCR@S(3(_#}O` z!YARY|KM0*!YARc)#6V4wIC$^S`ae)bqYfC*9sw%zg8F}{I&2T;jaY|@z;Wg`0Gg2 zlBQB;l_`pc4LC;1_=_;46PE@EiU*1%CQ#1%J|CEASKkTEI{EYXM*U zwSX`FTKHi2>lEXL z(7|6f=uN^D zy(O|pp$}Fr{X#%lk{VYWmJH2?Z#UV;fNlwJ*6{Qun;Fpc7iSH>Z?dBSUF&exhyqN; z73&NbS8Ga80Gs+a?5vebo+AR_)ZROEulCw+ZpYrEC5K=w@WjMH{1kY5e&Alhokqpl(jcBwjb)ui zdfmgNBJLfVGUV7<^d@d_6$Z~126y|bUMyuQz{WjM4;O|$>`^rIh_~{4i!o4<6{l}q zcpGM_#8ZZkVDDxj_5(hc8;rOsXWD{WU3&(%A%hTjv;aAnz?V4AZ9IHeGG24+EWhML zD#LP!hZqm13(Hp(;G#C>jx85iI?e-9z>APVc54@KViB^{EFyP|K+n$NS+8bWwA`)P z#=aHnZCYJUUmn_+hI1nwUTw;Gw>AZNOxuJN7#w+9k5(E!;o8mQ+DACF#e-|phdEH1 zRpZ(is?M~Y#n5x>G6pxeHlj5iw$_B!WwG=jo})OCj{EaWl7?M-Lp7Ob23$_-1p-mc z3APPhgX;r(U3;xZLz}Zmghp3nx;FP>E|XH#!9D4IM>e|5**VBn6IzvNJ&8dAvB7ay z&2(+fj)B%~p$)t&7Iv)-Zoz$Y+~=`PV4e=Z|)Y8o-Tqihn6rI}k1{=~5ETVnZ7CeW#I@8L$(cJos!CPJ1IM`q<`2gqI$WVb_jaO;wc8)Qfit~?^bLkbKuq$jpR zm!4t7{EVQu3uHj=XKj!qB|>(A9wGz+>@-9O$TpmS458~m9NLbG3^`Gpwbu|KC9;$u zVAEj8Q2c-{LnFxnr@{e4*9mEeF7CF9{6LoW8}fsB4ncejk=-xilP?S#WXO+*EX7Ae zR>TKu*g0RM5ETd#oUvGDEbGhGl0<8%f&=#)kgj|piZ^N&HlA%CKtXVMgDg|&FDk5Y#_wubIwoY)aXTenua|Ah54 z<<7bhVwOvBqwcl1c0)<6oI2hF;jxiWwL%i8kv6Li+xn|Bkqtg!J?q*Ev;xPVoPen9 zuoV^}9)ouE1)wKrezZWn^#Vi#oOC!~rmRPyL;b*%vuS{Ck8nq93}IBt?OIE-q{U*^ zZ2*1%E-gKL0>Et%Q{p-S>tiM1sw?3{d`0xf*C^LBTVE#V|s4 z`~(Dew^#rSu5{bA1_)TU5yXqYzzI=>WjldKB|@2OY_Xnp#X0jK8d9w-qR_bnbVfqT z$ON8^lM}*TqGH_(1oDZ1O_$C&=hGlsYYE`4f#MfjTgeCjcu9~LJzXn}oX|NzE(rZG zbUd7%>wt06W;F!&0Cw;&9t2-YC%HWg;OB`3Vw6~c89zm8-)IxY%`c(6O%HlF&L*L z0mcpF0jI7fBVcHv&Gt$igs(@DM2XBY{t*;R(O3EI}4% zvt4oB32qYQ8Gva^qbGo8FamT%i{Q#2dcb8jIA<4i$5GUM(j8DLv(q0;zX#sIMl|6` zd|LPT4&f;VfE^&#ZTnzv(7sEU>!1Z!WC$D$g3BT)Nkd&t0&f!!H0M+rEj6LvH4vm4 zGI)*H_1G@p7~BJKg$TeL>^osS>4Jq8y&Fb<4;(3RO8J9ZfHb|iYd1{>F{9gd4n~y> zc5Aaf2sVg5#_LFeW*jsVV6gQX@NLx%on)qSixHxPj*MY-iIsr$drSl%(o=Fn{5Sf7l z&#}NCGhC_up_{i|6 zFe{*lAe0YK;ScCiMc_mLl3J#GDp>cih`{KM?le8aL7OcMZEFx8Dscs{5Vm4tSO?FU zu+{)Bn~qYLAudt?%I(%K7L7WEt?I}s64k3%g>mf#9@xYJb44b4sSGfz;t^5DzI2=r zUj!M65C-F4I3nQV2D71ibeUpU#aW7~4e011p;dMjonYygprqj%scV>5DU*Yg#JmWT zl-@8r;l#%UtRXs8btfpmAk;HL-Hx6Qv~)_)!Bu9Gpq%ckP<14!is`Vv6l?bBwM~K) z0(w>?BA?Vv5>|j8tp_9477+u4sgv$-;@+8~z@2V&r$3+JPRG(Z{lQ#!5Y?G@Q1tl> zYWW(T*rgAeAq_PB#HZG+pIw3F@a1_wLLA$&`+?6YvID@F-!!lNX2J_}=#JV~P5K>CvnWC{5Iwt)VmKK4!EmU)?DhQIPYf8`60yda4%ZcQ2E0LpSNs5D$lYTsYy!&SGFAthn{aciu(+0r)pZE^f*8RafD(Z zlZB)UkMrM(-DJ+XByS%q*Z#0Sjqne1gxz^@JdxEuek6Q<|GE$5>J_ft;X}`BjoFfV zsTta~(X~-~yE?PxU98ltX9qVRRoF=Hgw)?E?GM#iM&gBcIT~GiwYQIFB0=b9;)SDr zB+yh3UQ_cfvnuf3+8>T*xgs_1ASY3?ukEl(y0~hzx3_0vj96nhG-}Saf!34s)z)p{ zkP9KG46glQdlrm<$O0)~Ac7G|4Dl~_B`7_=AUSPu*^SBel4N@+iuEG!h7#(6G@5X>DiShXB6NGo zt*yzfX(f}OMJiK*YDm|ip>12Or>LjUZl$Q!1$mBP9o2R4S{Q|Rb%Ll3z`k~%(m=`D zW$09Gozt9_Dp4v!lEkDMBgLw9P3n*xq2_Q=PJsfco_bMRn_Y7fYgIy*FdnrGF~nM& z#EKOm9k{xV#H5%!A72M2FX<6667NFG0VlKy>vPh;dbH*wbR8i`KZYPQ2-cHH@ETof zsV+1L&&Sq54F)g(QEKlxK>@LD3_ta}R-KJq1-n&(B-kJ--xS}$Fa*%74^y@5IvTiH zTMG;vNemFq2iGWjH)p#dqmA*NLZYS#3rZj{gpmr7;Hq4K4uc%41?a;VrU>Y*3DCcW zN1YVpPtDXq*|_)80Pv9<32r6$sMm2>4e&PTXyD%QULz->j25DCVX8gJg_;9cAOigS zB=|Oi0VKXb_$Oj}0rO~vdIEET+~KF5&{k#Bpi5FjksQ?{X0qE|YXKNcsv`$v_(Znd*!m`dz5=(|16%Q{68Y$YdNYInM<$kljpqw4PP=+gKz! zXt{L(r6DFkf+uR$bNL3ELp06q7q8rc)di)H01+DwBLjwV&8*ZcHTglrk_@Wl`dHU9 z$$x~OD%5JSX`X?$BteKe>MdLv1L7@VYME29UfF14l`Pg<1qF>X)VfsD1QYGxnwk(- zb5IOPi;1a(5Fqyl7cw%qE!G7ZB@4meG`fuJZBD;1;pBsk{Y8k?ar?t78b3>N;%j zP-Qwkt7;`#p2}^L4cBuYqz!EP4kkZ<>Uy2^qD)ScGC{FYm5IA?Y7=rnl`(8OBQYf+ zV$)OQ1bU9NhgkF^(eyx;0wTK5A?eXU`H}VrCyhOFA4z#gI!W4n<3xn;x1NJd0an4%8x7XS6Bk|Hmek|LcZy4I}h97rY@ z_&KnyV_5kA601Hz?gWeWJUfyepC*6ulNVq6w)yWDv3<{(|LXp7%MZ+dyF*WIF#n~e zSuI&TGBa{|^~~1#^v>lU%WUI0w|C+Lg9ptO&Yg8vV9qo5S-MV*sP}3~{)bQM zSdl@0t`PSe1NZU?7Ek3*xa$=!y!U9fQOIQ4G@Bb4rovL*!KmibdZp`ciQxt4wyzm` zTQpnY3c20Ktu;3@BYyx@i##dxq>c5x7^GTmSnEq}c{sy0XNK&@lH^SHj5Cu@1ZD!E`YZU@w(?-9*r zmFr~GF-8sx!nGS60h_ zyj%f>SA68J+l=0|MsMs`GH}+3m7Gj^bL?iLw+ZPag-k;eXPePEfinO}Qb^$;LxVv{ z3MIh))D$wov6&Q-o2$rC-zWE0F;{{_W~7rOQjp=z6Zz|ibb>@Cq)jAJvq^7aogk43 z>m-RxLlfx)i4sVskjOMNdF3<+ngIJ#lgI?eZj#7Jl_ZJeE*a)pVa#PlI!Pi08Qu|- zzm7=P8ofR^`O2heM^}Ao z)XBV)kG%cbH-5D1I|F{-vHs@ovi4dZEx+#lWiH3+g}IYE*2^A$e@@#wk;T91QTNlb zlRpi0tcPa)^ziFr-;b~Pc}Uyzi(E&?dSF=7mw&gkY+T*Hu6XQ&iq;o8)*pKCzBgyD zas77P7t&X(UG&I*cdVbzX*LwOimvaS zKe1zd(%fFt{;St_U$|@iswK;Y&G}Ks`Y)pY{mb#wZ~kp*<@i;r;JDvS|#yE$A^p-V`m7y~cTHIw>!ISMn%2O* z6?lzF_!ln)GVbKjf2WN(u3rpm_7GAQdZfyl4>gE=5VXb)l%;^o*q&%KHy+v!$okwG%1Io$2V5i8qn~j{8HdLc=8j<8?*cgLm@jpLIA{ z6PnwQ?ZJ{T!-E~%0>dW4imxUJ2nXGR&vV?C-nh<-?D_gRwY~5PSC4g@G2NCluk`|_ za|btjt-ICyr(`<3Bo*J(5Nd=mQ+u`oV7Ghlrttl)I-$f{=)xI2SjJ>~@$yyyB8;Ya zcxAs%i36a7*R|VgZSs%+8_@~4<4yVXUh5V$BPyHt#RJTSms_iewzvn^B_>*dvmUH6 z@m6zOvV||h_P7WxDBTD&y{;`@E8ZWr$78ML_+D#^J6PkjQbh117H;$%5SDw%@)xy> z_!>l=+styeYg2;d_~-)!ZmSzCHxR8xXAs)vHM3lcmG4eoL)CU}A;Ii)vUJ=PZJy;~SwhFeb1>w`%p ze_m_3qLMeY?V*zEIO6+K&~a`{H*>r@B`2vnD*3jAk~g*O{1i%V5F77*Pinfur0D>- zqo!X-YWntTtLb3uW*Fc-)bt@HO{Y!1Mw(v#fkFH!PF>xHeF}BwHV3Hqp`^ag)LO5o z?+4l%sPFE<`x7ECr9de?9E!=#cc=6ueJ7;{6O_^)Xsi2FN^hb`u}SksCN&>`chY?N z99{EwTpP^?UFs9uDWUpfUgiQ#>VKeZUdc63fA^@^YD`uCfdmoC28{j`Ho(buT_TG- zcz=X%y7l4dSqyA_X;H=(xKYct_^;)Nd$6{s!^Z?o@qw~V%_=4U`xp%<>$IkuAb|Fd zoeYPkOdsumIDCo#e7!OO9337$#k+I#RL|bQshibYxpL*jIWqiritpyj%?+y>RwH+E z*&W>VHPT-d5`1b;ttf*RozpRs?$9&^|C(+*G3ky@DgIX}q4K&U4<05FXUoyyW>Z`& zNAJSDrg+vA-BMbmTqy^K6HRfTDb7=k-pOyK`pj#fFNUA^bna5orCVw5!W)w6*GSq8 z(COkR@+R+gEk&NbtApRVMj~%A&!5_5kpl=zyOaCwJkm84eiI&aGthvfhq)#i(8+(K z`i^U$2G_uCh{NDZOnr11GkkcPY^nGUE))~qW0-gkcY2mP9joGWtcugIDo)3$I326v zbgYWgrw;Jn^R%Pb9n5kE(I<#LLG%ftPY`{A=o6eeKzr?AGhd2@l{u%vt4Cg1WWl1` zU->HDyY~X#yZ2lp_M_sxd(Yv$d*8u(_wM8q!0P$m&tv@`{~Xum>p1{d4cgAh+JF6=omuR_#Xo#LSGZhrcU=5qC(6!rUZmSY>;XE{hu2|I z$`}CasSnk<0NWB;OD|r)>Yv?Z<-dN;?i>{o@QOan9VFrcZYIiMPe8MYr!%>fObrpR zs@v1ch!fa1M}}~10>}gbi^M&7UMq6|xDY6WkpWO)1Gf(G3O#mUPZW3aGFYNhJguS# zcIpYp&n@-3!aR*IWp~Z`xsmLSNdSo`Fv%J$4R{qO0 zM93IWR8$lrppegrP$nrVZdV;oi>P!F)d=-fXv1+uT5t)hJFimW;;}M!fQx~~CS(p& zq>~UA748UckTeijm^Gj@N!EblDse$JfTy89TSQzsCJz_{VGeu(b1N^B>_Ka3Ycc!) zuj}El9x|jwq9*zk~ zE^Aqk-T1sLOCoSX=3#fLWx4RTwJfFp$sFhjTuOkMkCY6xNKNOgq)3g~yd?4zA~h-k zWTFzeip$s+EW5i+QY1y^>Ws{VYh+|h#9{PkSQ>weeGV1Lq((6*0Stm2-5Vw1mV{;D7|C1*VPL3Y3R6rGN|(Wj z$$Xe%k`A{fWR}Fe34Ip*<^<0%_+YCZcNq42$_mr%3HH;&4R!^oE+1*IQ*r^wtC{&= zD`x2~^}%j>?t?ucF$V>eHMs4dk{|4m$bPU-GX23*m_vmNU4#mzD8Zz+iQpiit};a; z2cpk$(i97r!ho(K0FyeJ9DnM41DV5c_4*Y0odcethi5B9x0`zh>;=h%PiMa?sunxx zF1#D<=prSe&%q3!OrkvXXV4C_J2ny{`Xtw0MG{{2b5aqLdocS>!AFJVI?+C>o^+Qg z(Pv_!P-eOY%3{KaE>9&)^m!67^=H?ZE%i^5U6xYNR~dGIAupF*DJh3DREFW&G;6p9^ z3~>a_BOO>rUE&LYk!0Z}4E_5Tj75qp;W0~YyMzzd;F9(-M?MSL;Y0JZ#tcvT&m4Zg127z0STc{Mf2++ZC}nAUk+NFl8S zYSVQr&h}GG)tvn?p)5Qv)G~S5DFT$lLu|f;P3dd*~ zgywoftPJ3)g=9png>nT3;ZBr@75MlzpyD16Tn&OzB36@N7=JkAVX%^_C+(*WkznWq zfV9W}N|1JR z;we&zDh;W^)Q133#t@h$5h^r5_i&5>A_x_rGz(QT0Kz5{G$S2EDrMxum_ewpdhckv zreViP7q)92_MQ;v%iFHwZF@eo?b11lERr%^t^f0;%Mdb~&~Gi=2KM^=E$r9vw%sIl z2m5s)Masa*{}=2RKvkk<3MQQZjYf=aRtRP`VhgdUrLz&6jf@cm`0_^VNL$0FHe#u9 zwGfY%?85)NB{Na3SSYs^u?aS?{SD07k+uk_-ocz*6hZ44w*L>?G=M7MM2C$vV%Ux_ z=hVTlh25>MBBpA+vE3@SKa=-9zk-kuPc;48V%Xxv3)8WA<|}$~$q4AUXRaU_xuw{> z)Nn0n?nuW(l*WoVKoZh{sZ6vD7du8G_L|7||EY=EzH^lnA;+|0Lkz z-7Q}t(jtV(AS*S%O2$?kI}uiOG)Y}VQ-YNQQrze2=jK<;6GN23SilIL!YOf6GG^ig ziExP(bEIT;Xe*R~5!}SKfP^L7UxUdI65*J%BjJ=dC}}=8ej@x~#T@yVQL9$A0+XqL z2V{IY5$L1_IpLJ}CK1~ZphQ^1iaDe)<5jEFA5-a(4CHVIlTHBdXn!7)(MxLNk_=in zej;9B#jM=l_pO=Q&MGPZ?T0+Beuf2wuypdDHagQKq zsG0p*t65im88aqy4U(cSDz25TnJ_FC4A)}5q{0ok)(Y2!BPD{eE`ZhzyS7@_F$q`YZq97=nb6$J*?}XJD8u>fk7`Nocn13VVdEusz6s&+KAt>EGeYxX7{u zBUpC0w#3r0|Hqs^@uWX)yVmv~H5CGSCk(>mzSr0uBr_bCCSeMS`h8xO;H}P}Vg)zt(DRVATk$%zoB8`r0bI zF;6Eq>qF-A^H42)LbX!=Ts6x;%?1)8f%vykFS|%#ilhBJ)XU_BoR|^oWkFB**=w(3 zmv^(DgQA)6D;E6BUiR8++hv{XwN|++_}H#io>WG8ZbPj;M;+11TU&VJM>%15+5%tY zA01A^A-^pS`7+Lz_gd5@-C43pS8ldkZlmt&Klu>1g{p=*{FPqp)tz^BTXjuOotulx z)$_YmnP)=n?R=9*PaYn`ix2{DE=DBL=`|uw&Gv+Pjfhqnx&?0)U;hpc+ffQ!oUVOc z+mMYHf7iycjqk(r)g;&P@NGV!A9&J^cZTF!cCh?iyg(sPu$V7RUL~#jaSUwWA!K?j z$vMq7Q(k|7muGCmo4!k{`v8V&zT)64S~hTyw>ZdZ8RQV(M1o7?9SA9xG^Siq%}c^^ zNzAL|Z`y%tn%N_H4SEFXarnAc#}9e5q08WuF&a4rcCF-Z-o+vCW{;V+)FA+=T`u8R zAIMnsGS+?_bPI=A#UZd8H-8geaWd1HIs~uWFIRpbR~|CnqVPn40>(D8Sgzo!N}eb& z+DfGjhkCre;fc4Fb3W7iNk;PhBuUbeh<1XqnxGsaC`ZjyR&*yQbppzM0VQUpvoNB7 zV_>^w{^nyG0~C8ALH6Vr9f+EwyNpr7F;b|Spn7tMR9c$o&LI{vCB#uu2&;1%*8x z^Qqa86q6KbHN9D-Ox~=LWR6+ZMS==+a1@ClQw?TWR}+|pTP`ZmFRDS`X3;;B#W1c( znurY;Kv{>+D0w75KUC4S4lhg5^2&_&q%6X>;AoxS!C{|atY-t%uWLK-nTtFpjQt{7 z{6!Cbl9#3=UjBgfpJuzM@-@C`O0%VDwsCL`581UTwM2ef`#R0m3k|k;Bt|_5fG^Q& z@%38XjriFv&yRF}eWb(n4c%OC4K-%q4Kp^(s!ibws&FsNZ?*f*@AZ{e+XN6E_Gz|U zD_Vr$0w4Nf%{;F@*@aN@RQ+DUwis9ett*Zn0buzN^Y{@C5;2XhcR_0dPc>X-{3(sy zqkv264s^zY&A5ul>|mMj)a{ebIOrI$)CjaX;?w1PNq8gX`EZjKY<52Y6`e234NJ5X5&q%c=O*HKEOnG^02#F%tyZdoB(t$BIYU3^D;bU&w3fUeqGo6?w%ebe3BmE|7GZL zIVJ&wh|nWqrpIM?PoN_Lbi_oDtDJ(YujK)3hIQisT4~4xhi;Ie8S7Yr+6WQK6X<%he_(HHmJZ7y$7p*)7(u{Q~N|Ork*EkP4~#?i-Ckio6;U_ zX-yfz0Kcg(x<&VQeUc<@It}sZ0FQ5pE=~L>J^1>mq-ll;$In-uHseixcsXghAydmi zN?3;NkYREY#r?W$p?H{-!S8W07r*C71pKy(tl`~%@oEt`me%Xyn~=J-pocDX+G|SQ zD0zP&4-%5MMQW71Gg2}n??$xi)>2qZ-Ia)5yjv;i??@an)7NSlUnbVGk_ z)>QdaVQ^AD8@B1QHJt^B%cGB;?KFSWegd!J*Juv*M05jR(|@2}2lN&mXJ>OS7 z-K}z`=H-K1+j)|&t4z2}yspyb(Wb28#1KuqgD&5)$5-`&ZQl2QfnY(zu@nPr@%467qN+#vo>V&Jx_#~I(4K=P+dOd%%LYDR%p2j+F9EQOAk_T1(kaKlKR4m=iL^bBnreFaU-w%D$rfhFIj<<#Ss|GkG z`<5JAjDhe<#Ab4lKH2K6EXYOQ+RB;uS=1Mwyv6&Eks{=$neoMFv`ump$Pp$E<&whS zb}5t=RuxzatBTXKb=n436kmGOzJA-@bhM`9Jifoj`oVNhWyy?&Hc!dH7h|36V;1x$PD44Ci_C6vWU-{7-fPp*DmhMJcWg0a-EBq8>avzycOs7hN2lwwa#EYPBHYN$+y&uGEn>WaCI^cJdvbqmk$6Ea@ zmhl)t({dJ?$o5@TvLrFxByO9B)dq)Ol+wUW-FufI}J% z%kel{@cK9Y%z_2rrRU_>&ZaUk1u&|FFTXwn1M6`V!{9DQq>x{aRPT-G9M~aI7YcO} zd7^McLNydlNT`eg-X_jiInW}pvV_S-gj{|!TPr_V5vI3q`?K%z-gc*!e6!+urF#gzf4u9?1&2ZxZ)U77aikWb&MuD zp6BTUNyyd#1y~zE)~XHlvOaP=x?Mz)^*{Llv?BQAZUf5A*ZW+Hm_NJOvRE z1@Pil$|7lLVHYvkBwn2PI>fB(hMa4WlWn3kLgXf%l|Ymp0jKzda|WU8uX_iyGSI-I zO9gCg<^hRWFD)HDR78+Uw@!^I{p3lLX0oar5u!P3HB60+T+8+@JrGxFE9U(XV+Jfd z=mLQ5+fap!C@GLxC@#>Y$uhID1ZqA&+~(DWAVL?U3#-*gs1a!qy!ajkf=Q@wx{-|( zf&I<6{t#=;s2Q?|DiC+;gP=y3;)Z0Rz7KUnj#1TN0+|>o$~b5}iJ|4w3dX zPOcXItr7OVSrn)I1QLOwIG&-kzF-rgT`Z0vQSn;%wi0dW3AhPXacl4bBAtJxKR~rn zTY6Y8MscP(Fci zfxsSGYno^{1o{d(hVLL^n{rNkg}4bE;M1yJC~mr+AS`Ff3QJ&g+TPVV6w$JI9m;N; z2@%1KT&*`+}BVN5QWk$IT1Klvsh3i+iF^phu`mfXx01vO1lv&jx zaeTZ2e}|*aL&RW4qS&mbqTqr)KQ~L+PkPuC@)hX$h0o}3@uiaUt28iL`~Rwa$eQ_v zuDXH?K6{&J&i{X1u%~+$+&UO8*vN0uGQfm%>whDu{x_29e3?zK3ujIKH`3AnMriFL5|EhuZ{o&iSN``hH^rCuMxfdM z@>Xzugv$qow&8z?bkhF{(n8cO za_DV1F8wus>)@4aOq^Z8&rF(zfY#K-WHOGkn zCafV7H&exF&rIYCP5xiG$}ar%n{}Q2HAZGgdj+R$U9RZ;_kbTh+i=TV_+l%mHTB*` zm*gZRwUuLS+DdqMxcVLy4=|4D?CL2AokOZF$K=xff56cT|9n*$j){}qliZWt-||&H zob9WeVe_c9H1`o;eT>CQPqjGars`4Dto1y!{+VfYxvPWa^?2Um!4i@Qmg{-&S_;oI z)nl3W)gtXLjfLga*22)?jMMjPfzh{9-zdh>dghAJo3{`tn~a#WrQGLOR8?Xvs+y5r zR8^XZrF#zyau|Qd@pp~`6^4%B@52mS(PK_Y>?X68Bo$_Ps%E2R-tYhrN}?}eGLt+q zv&EzqlRSWkE9M?^-&M)(bwEczXM)6w(o|d7ckm+{3o_=+mEpCe6{;JS!3eCPH&cZ{ zxwbAQiM+wTOV)bwcTe8IDdg5%CQ?wTsIfHnjUS&;tjjzurhGo07=jDDmuyf5=tf)YUUB z!7pJ8ua$&=PG(dYrgh?kqBTx*B(o4VW`+KAzNqt^V)jy0Q?!z_#x}N^(n3NZgCyHK z6Q+ZBtNZKd7MH~(6Vec0h_phGa4G1~LrIE)IraX6z@GxJg770bkpKzo+0*6xe*^nI z3hL6GeZLpC2Z6ZQci!qx+W5v#YU5vuU2oD0BYvSd7DFs%SPU=@`i3^K?-!JP7xGK; z9DKmXKBwE+5;ja>joipU%Nn_nfdW3!r(6G@D(in22Ey3fSe7e2t{Rk1$r0?o6@T%e$zPDHO+Uh9hCfjL;#Ver!7fA{zpG>4 zHBphbO*{Axb6-*k^>FO&M0^$rF-T-;eI zvhGVzIwyK9ntU}Lr1KINU?n_=T6`uvNTgNS1wsxjzs$N<3`W9(^ffcq&<_qkLx%Mn z4(9bPs@HNqvzQ{oe>9}{j|TA{4dOoJp{=M2 zwCO9bNXCISKZ2braKy12%;ZZvg2E0R>1Q&>oyJP~k4~2fg>?VXApRqjFkRYjkux43 z3Q5-yNp&5OT7|-OCKQbLitwiZob(@R6dOSTGvGh?sKm1E+S0K-6F1bb2=FdjuPuEW z1_qOGCob%tZO(MW#Wwg?>|$aduP>gkNecHGapO%rC&CAG%;{rXEE_M4P~SEeH&<5K z=Jf||)%aV_4=v+&JO1`Jg|NNJhnsWXYdih+^yTl`0D*7lHdpoO-%VeRIhzSeunhzH zT-%$4RM??A&;aNr#M^xEjD=1pqEuq`;S5R)nQ#6yQkM zKjZ!*Rw{>^aTC#-ph>az`U!YD%qFwz+X4a~h-p9?IJvelI#fxoJC2t1O(bV zmA#*ub|(=i)n2~{1MgmPfSaH|=wkPhR_=1rmfnmR(128TVQDM}{KAcArkc5D2Ya^x zuWUn@P>RxCEN9=sZ=-K*4XA_L?-$sNz>v>*n0Ci+qn!q;+$$*UT^b7Xz(#mq`7Z1T zKe8B{kcRa>>m|vQ;bbkZH7OOVmWU&p3?9C)ozm3cdVh2^6zb z-+8Wm?;+efbZbMn8DlxDUa9u?rBHH1f1#W(ApeFa5q)-`Rxm0pvq~m3{T;(eQ@%#ayHCuS5!Qo4S8qZY@AHDS z(Ie|kDZ(zvmLwU;g-js8M2eQwf@2YakytRcCEE9(54ivnDy8 zx<3p4$gNq^^%%{h16p7gMmvttoUx%M1PCCf;Ys`ng_7dvMf`!yK-#>1$d=*s_L$3b zE%DKYa$8D#yKiks0+Qf)#3a6|kq*Wv*!JAlp(oN3Tb5D=fb%|<9eoDGL8fI{^}Gjt zRj&+3^pvLAG%YVn%aiAs8QrKhm_^zDuzx+DbC&izB%kxfHTy>GnZF;M^d5Zb8QV7F z)xPp@HX=zQ{^xwYwbkPPm$hq4pUOZ0!5Ht`D7fFVWLq#h9!)sxx&4O2k0Jc1y5F{> z%|dZmx&penq^+8qT>1uDmb5Kqd09VP`aVKLL@3yNjRBUv&h|XO^7V#w*63GoUW#ea zTa98y^g5%M9nCU|w&=%P$?`IL^rTTNh|2nwt&5}kjn-SDwMOyoXbp;5o+VgX?5b}1 z0W13R3=pF)@5S)$_Yk#VTXLAe4O@cWQ0<@p6O zU9Uh+kew977#0w(tN;YAC4sq(uO4C^FjG1~a#g_NKXL3dSX2xfgcrF0l-ROhsm)cL zvTWx1acwo84dAfV_(L95E#~lh7=Oog>y&gTz@MDb)->V;3t{|xUw+oNYg0lnV~D-f z`5{Ny1rvXucY{=1%s?4fte=dbsiz@BW_Bc>7ap=#TN6c;HAGwU!2?>}!-7EU-wk^~ zgMT&iuQ>?#c4})50zUk#|D85vTgrmnWadr93-r`I~R8_m7@Xu0OU%pO@8=09F%{<{Tr^Pk&0(LOye$6okc*|b@9)V};c;V}D{ zhaM@OG-0f}Xrlee7ww~;C@q~6CSd zgO$3%^3|LWXXVTxr>{Ip?coh4z>h<0y4HX#-DbF>Y=;M-9Ohg0u?B$Re1gx?$Qtt+ zM_Aio^aQGyO{YP8pSElml?Pp)e2d5XSMWRsk;_&qWT3gg3n!o1~re@PaO*3#QUJ)}agWQ==4j(M9p;>)LTX-iDL}_<{)` zQ(y-QV5*rXjQzXd33u6oCtCa<&x0>r@`M}*PqGc3l<44K&5En;FXi#aZ^7QNonj|k zSp~b0$R9?3%0K~YlFTQe_E=IPNDJ)sSKWF&GC9$K%F?%h3F$cPTef~)588U%>VT-` z3K6lRYthYx<;_kNip`&0cFX&{z>Mf%=((?bi?;Ml*66QdG2ZVUn;l()Q<$e2ARX4O zJM%tZutZPd05_(s$&T*E`DloZn^@X|5=JU}DEe1ce~W6Y7Aocuh{xKZFQEB-I-=;$ zP~ynZU+LEjj0UBtv>H?hK;;5$G5`vfVzt<>f9t<8X9dh|OyU$m^BhTKt+HcHML07b zB0+j%ED`_>)%fe=KhP#2d&0iM;%`}u!`e2SLIO!H!FYi++I1)KynwXu6>IA>g!y0B zsx`E<;sSz;Dp(xY3SZKmq1sg?TUFxs{*~MVmz8)WB@0auG%;05R7Ic|q433FRQt~2 z#q%(nJ@Ll%!tZc71bUd83p1k&uUAb10fwUY!|~ zmqxt{q%3aPs1lun{0oxDt4%%&_@?&f-qfl|X|{JEh88!zQ@<_hE^oBE%bV@d;ay%& zjgI~&dPlFrixdD#kCYjxk6BUL&gesUSyt!szVB`Dl{eYul+sK)eM8%#-{sWht(LNp zv9#%OJqWrc`X6`*9;|D|5E)33EW$dq$u_q!Hary{-NLj)4*?urh-0WVO*@k!>y0xuQwIHx29JJZzN6qhfyX7|>5WcEp8 z6qKHou{bM7>(ML2+A}*dEw@kabgjcbOX(NC{buyvS7k4_?V;t3?`^OYz2aKvwECB9 zy0qfscNTB9+*iEu2M2!oj_2$b`#$$l!>=v3AG~nG&VF~t_ubVywCVgk7RU2BYkvIF z!OdTJ^DmQ|{_{JQp$B>uRK#YEyZyD_uY2kjt1N5(8n|ip_Syx%O{;n7zkhdw<-7ki z_19&Gw_f<_m)zTy5Bz&;TDpbtRL@>H*^INyWu7zIjehK7lzA@QVohU2mXqDHml3I% z+l+Rj&D@u5_@B;z4wvUJ(6eOr(lUDXNzd+`mX&Mmkz?tZmXp!Dhn8*am7bf~C(F{i zS5}6#PY%eb<@W56zVgJ+|IfQWEFZLF;VVViZ+@}#(GLGCB`bFiE&S*9>>2Mz2D|_9 zyye(miXZ&zacg7lV=LZyy!Qdip|{5t{OWMl&8_c0{_S_$ZnexjT3+|3yQj_{`13Qr zU*#TR8GHCwkKg=mTkHF`e*5i11zDEzyZ>}%{wnvtpAY%{(V2BqExU@B4cai_pMK(B zKj8I=*w-}f*G3mX}`Ys@BeGqcjj1r`Ob$8o2D!r<@sX8^*?>?tYzaG$N38fNAHM7Zs^_5HPmwd zAOGP;Pv2IXvGdf5bKktP#PZA|oB!p_H$u<;Zu0Q^a@$W^YIolG4?jBf%@ybV_;g0e z{kK^{ziZ$8FOzeJ-}lIy&z^qf4NF1ms}qlY@A@y__r}h5Xa8=kjmVHaSGcrR(D7Y*Cjqh~{M#~#7mAB-U^(?<+)0U0E89d(L z(N;c_?yu^-{*9aICRTm_W{Y>kG@O}|5o+wGt(=gJ9%FOy9aQ{SLkIhX4)k;5OsLVO z+R{Re*{YP~9^uV!)#B1jZ}6Zec*q?(+Rv-4JmU@>vxN@YP&_QBdxQ>VOCiTSVsf?% zPgzXp89HE-La)#P)uOpa6yEfxlnkie~qS0sp0~{J1dqad2%YY751I3O-Ue`rR=jMz27JQ|=L? zU(;5uLG@RK!EmrPbkr7#qSJPFWyX>*BQn_Oqh{>oMBx)2QE<94on?$F_WuC1YvE!Yx@XM;dXK5DnLTkgPL zd(W2O9)RO^eT?6aaK?hx(9vwyI=mjC9o%w#>{^YFin=Q&_w~3AfEfc^`&_HsBObST zT#c>`MOD-6AWgsWOKIBD#}FTuAJ3347H&HpjQgqrX};hqj%I)GBVXu9rr&xTpEF*r zt=t22E@~^!76x|*KM2Kag2aBH@MD1f9yoIeXuRnO#!!7nTiH+;jG*EU9k+#I6Lt`FQJau<7oQT)8)S_g^+H@j*>P1)|yk!;uMB?m~Z&?@A5j*w>VAU=HE;O@CO z2-2R&#&GV?NB!JOKK#Gzy?K08)%o~80|Nw`c!NfWiV}6G;8sRJiGb$H4BXU-qJUb( zH8g77TAc_gLgLIQ*Xbzk*7j3t>(<)6elSFhS%843Y%T~Yiy(Ixl}$qcVSexDoI8_6 z?5Cga_xtA$UruJuJ{}Iuo(UJo|X3ZZNPj z7}&w}+JWW6Ig2}QuQ9L9UIn=WO-v1f51)|7E0*S)-;QdC7CrSL7Bi(BjbMGEN<+{wG+Ef(B5q zBG3|O7DRjySWNw5(_Yx*D0~c7$Y{zUBiPr0rXZ>~z`GTBRow@|JuPO_=Xov%ffumA zvtVFrFmY=UeSb9kD&%$H@Jj}ofp@HEYsv5n+5^k2()~t!o!riqfM?_lnC(G(E04Wa z)0ST4-f!)7#=Nv}t1<7CKOsJ^f%d-JjCtE&Av1BxAB}nN(7>l4n(^wFP@(TOO#x%x z*1qfPRjL_S7UpUCthg^M@D-TXEs?aMxo*pid41DzJ4gn_lj^&M9A!1&@X3Ck5b3Q> z9egQdQ9~~=6Zv!84mL;!8*~R>^j!*Z68V2LhfnnjvlvUMnSgMsCm8dJo<@TO`*Nkt zhCGyjAM%BaSC<&epkS~sefnw;*um0O-^J!|t_!ixHWu3#`|K<8?D6@RUtvx)uQ0DP zuj;fO6n$*(FfU2oHwZ;*UR>KG;Tm&_QQl-up3>CbYZ9*%-DF9qzF)q$@Pz8~_+syf zZg{hHPYu3WB;O6t$2SxA4MLAi_PwIEd7bI04~cF*;)nMi1$r*<2JLn;IsMIWa%@rb zC{MJp#wg!zC42RG^e7KnwCO-^tFq0KBx>&>6g;{*u$X2&)n^Y;uky2(9rQbP3(D0; zqv6L=jdx8V`RZw(kiFhSAF3a{$0veuy4DT*n)V{venHDT8P4tg2db*l-qL-6X}3^o zJGJsV)iPAALsegi^Yf_jo@qBF#`}VSj}V)WgTv29Y`0Gs?t4az1_mkc00s%e0rjN# z54?0TG~D+zbs-#ekl@DgiD}P!CJgt#N~Im4;r^&GZy|r4F1Huji(wa~*q6v8(B!Yu zn<(}~&|YFH73TYsG4B&fmxx{oEJ%ct)XRT06j;xn1S0%&&~6DVMj0!z1Otue3Mz^S zhU^UhftbQfwVRZnHX^7S;GRsV@7tytLwXGb-r)xtE*QWrZpc$rJoZ%o*D51K#5ENR zETKO&QeZXroqTNCi_Jh2SXvL##`Q*p~__v$*(huvXkbAiLJWQcD zAoMMgL9*43$W|Mms`XdZ7$e(xBi+urh*lVQ-SLsx7DuZVN2wN27)7$k7E&J*gt^yK z9XbaDltHTEv2NFmLE!&55%zyQ{Ct$)C(tOB2>MqKA74~%ueO&$f*?=VD`mU{1}KL2 zKMq%ZW+jgqQFD}M_^g3d#w`*57ZVcx-$Ue==>YZaPZ;yw9zT3qoE2T8Vg;u-hyrtj zMzCGugoN*280KXNn+gv1p=B2bhX<1$m+YdBQ^oW=)Bm2(9u0vN&wrUE?=7F63*Co@ z;~txfFXo{bBn);7tM_X^H3N%nRfZ43gI4s$y>M58i|khq_q}%R@ZeuO zpf%74+rZ+q6RHR8R+l-@?YIU?wVO=~3ULF(_V@(`-=!+lbBKXNIyOq>Q0QHs7)Vp=SccdoAVEjW5PWN$_Qkt!tN3xrtwhjnJ4 zkrtcIP2BVsDxWf+m%xr2e##%r;io*!HB@#wn3(2YEo>Cn9tyMs6F2!KUU$p4kdO$` zEh%YlHv<}Bo@?dCgj=wY8Fy?i5Rb<_Hgy)0;7R2UM! zVH?4jo8IAxT){@$n;7V(Md~uH+jbU62vT_Sw&hg2ZHJdmbmO96VzQr$Ft!x%ln9mD zNx5x#PdxI&jedvGA1^cAE26@)+g1(=$?aa-xWDTntN_r`j;p4mb|}E>srQ=pZk`QP z2;Nu_3Mk0bXzM61F*T?HVn|ITWJ|f9bM(@e?q_cha}F|Eg?6C&q9LlgEd~7iLaGRb zx3ddQH0f6KEBLr=$1yIL5`RKAE;=P-3#2VUd!L@my)|g8rq2q@z#4H_13URnyIk#_-4GlJAcl+ks7L3^=5-D%`?3ir#+qnCV_rz-S^7zlHbKxT% zfI0XGrjv$$cZbbB*(a!4ueeVhzoH%sTk3{zD-0-4>Ug4QB2P%pl?O1|BXZHGLZrE3 zD^C#9kiFkr@g#*MW@)~_?RUjic^cSA(PCBf7X49$+QLKc z)#7c|@POxU^T&8_GLB~uIP9Hh+~q4+2yPrCHNRFfUP`^?QeBh`fNJ1`*`>~Ep1#LZ z6p4N&h3i$rT|8Q?A9eKkv3kUft&e=H9_`eRgqnh0d9YqR5S(Q3up($bu!&M`o-<+Vi+IdQ8X>fBf7DIpMhm& z;>UURyF^3Y&4crs3n5hEwtRbsy-S)dZE7hDEVcKr=v+g?z|vsgE&J2J3VSzI#ofze zo#-y`w-vKo#2okih_;^<2li1Z7ZUj@k1qCQ*Z4~UyUfIJgkv}T2{Z@nZ<-bs2KJkY zyScBW-9EsVJhN$Wo@wJ1Ei#+l&TCpk$YhKBV8ztbh{v`*l&EBZfiJx!@D06)&x7|x zEi=#_*ey06=Svz8wAv&ty?{r^p_~nuazP?Kf9>buQAmfuzMnIitU_oL3VcChoI2Lz z;zekW&i>hU31ZNI=bgr}zp>v9d?b#<2O<01cGLdZ*QR~fw;`LWWbNCFOnVZR_`HD? zrE83Pe<~LrSibplCbGRd7Wx4U+O1N=(Q{P1@MlMS%}Z2no)Dfp--O-wo^td=S`U+B;wjyk`2| znkR(XD2Si~HP=kvy+S@vv5cDH?Yb))&=+`%QccRh0r6%(lrHVjfj#zz$mn@__T4`F z_WW*~-9;W!uOh(i`3EH*S;5Ft>uOTzJyzu)%l;<5cGd(daY12QQ(mMhx}i@nS?MKI z8u_u6=xx4%m+diEZJxuK=;?W3E&>hPt(LvU`6zWDQ*Jkwdsl}_uFs^8RQo8|riPUW zc^1jOiqsF0@3#O~e!Uh#_U9OmcUP6MAPXLuvDd^JjrczVo@m-@uZgd%-eSx%Gv@2a znkTUKC2#e0FZD3ua*xnUJ|q63{LM4sVpm=wFe@!zDly`69N%t=ZYVS2+CD5a8~67y zqnm5Z=$GDDV_hFA7}nzSadQQpP+-&Lz@)+x>;l#B(8F~37g%D&zvTP}Uu7P1)U+i8 z5l|)5^HS|Fn7}XdO--dV*IrbV+BZwTCVJ)#w#zc}2|9YxFPm?$d6k*Z4x}gjTl0cb+4w-z0dw-_>u$5*2yy$Kc4aS8*XZjb!dtq__qepnMNaak{XL5%l^u; zTe()id3DQyOwisF#viwIA;jG0)z|8N7uQO^K|1~GJ_ES< zX0`_XKEYRoloPR!_$ut5GQZQ(=O})wmpw%YY1Y|%X?TN=H+9-u!JTyHymwB4N1FAn zDE+A?l1Gr&@v?VM3pk)SoaIOrof3N1iz~&`^j{IBAlsEKzxFcR0;U*wtGpZf9&Ccx z^5$d{^Uy$b3sHo{I56HveV6g3SuK znxD9sIXRfD>N7?15wrEZ5NlotP^dZ(AgmS&spl<&5+IqV+(K~Qd6Ycj$9O>li)YrmK@*5D8~#nHnsNz zZ;_Kq`^@^Gm6$CGGIGrB53Hx^Wtvp5cNp`0eL(f9jqzra`j zZj79r=o4?8H7YrS&GvL(^i88TwxoL0d_c*RHqYv9%**e+dxd#?zQ-zUtzI8!j4fd= z3N@tZuh82mUK(JuTry2=KTB_BW%Yq2n;Lo3tb}jy5WzblGb+&Nta!;M5?UQL>u$-R z>c&o}x{h#$^YWMi?NnJv>!@kg@O;&Y5g&;7fpx1Zoe_z^+Q65*rP%oeNG2{-KGZ3X zw&zWsW+khUcCLM2XO-?U?*AFO53vi|KELzCpA;xYYzl?t#Gat~-Y}am-cOyo#`Qqv zeg1gkoqes+PmI_l)B%M>)>D>uwMF3d-rJ=W7H6naA$o%p1%C;*q5Az+k}F(EA@>g{ z_ihWbn=`~ovv#nXU#cTj&-)J~2ge^QZ5|mv$pE_prE3Xmn!8fax4FPoT{ol}?427O4v7OXElt9-o zKEzmK4c&_T+%^^njC)_BCfyqGX6mFH=GtKAsR;$1!5Quc8~bZoR8MvWK$Ap~KXo>} zXW>as?&W!t$2H>04E@ML2^U+Xdv5P#m9Dy@)T|R*STF4xI+Hjy6A~{zt3W8>l)dQF zq)rtwxYj>btIzK#15P>Qc$v&8k?)tOpd+_frA?MGzKQhyVqvO6=UvTGMoiWQVQ5j< zjhKHidkF1H1>Y^@LtCrYss3t7#>kw*S^U11F|J8CtWNH$Av=)?5J2fEvu=j8GrPBoO1oCtrS{UlS$7W=(!Vq7WK~>$ zclX*;r1r0*_S>rVy;MlOpuUPePCsMTiH1!*N|96h=>a<2Aiv=$7oSRhPqyq2r*JrO zl4b8gXP0yl&0=nYgKasL0Kd@K;|#%7h&Rp%isK4%M?emuk+=wpiiNf+muFUqB@)(m zWfqZ2;puH@1i83I@$>@nrp= zx}&9avfz-rj`FD7Z6Ip6nKGrIoiU>dJn2OpDow#BzKumxX)<-e+x!0k&c4R$0cWsk z7H45Q)eUXVw#&5*SC~7OBMaRySKwk!dxFm2KR!T)680BVwW(|YjVdv_&ZCcObd4UZ z(KTM7Yey$^?cizvg|4l5Le2>txSAmtjxInsXrI%(k~BA0-Eo)zH-%z;c;YsILeADq~eT^~b9*N8ZDj z;LN#hrgLyPJb`OfL8IRoZ7FVO`oo|k@I^uZu1)Z>wP8pOBH zn)znxJKIKznNL41{&w97QcuZ$=Xy^|y;fB(^)pD~EM0?Wbi*h7w+G}YWa7V;+i(9n z$t@JgEo3y0bM}p1cnURWRc=SD@dJi|CkzXC3fmi<-#)95be5{4fWwXMBOoo5fT4WnK3apJ{B)DE?<3}u^AO0FgMYK@y&>OGJhGM% zhZ%u`YlLC!UGP!n{dz67BWoEVIpYwkGUHsxATYV;hHHcwl+qFcQC)FJ0A+BKtDx%r z8bp)!u8P>OjrLtt)j7fdIp>=hDwlhWqTey9g8~m7C`^goxRo+32fh)=!9Sb=nQg~( zB|lKlR~Y|0v(0K)S<~L4b&Q%t*xu?yZ}4KlrlD{vm$OcaTyeOy~^Z<6&?G2=T&zkeX3M0=_~ z&-VE{c=`AA2dR&#!$ZL!d>J`BY=17=!N#>fGd#`?SEGupAk;-lsH^)bZbf~zIJbW& zlhErIw9^66pYL$58oCMET&i4D@zk_|>q06{|2UK1E>u?NLO3oI-&B1ji?{02>jh+` zaCSTQ-p*G%2P@~JRu5tLOWiC3QK@JNNE_5(A5V|CZm**t7CY~MAkgt#@JFa^Woi=B zb>Z!T@1--qcQ<*uBoxTFAx6bTABxWXI?$$~jp(>ejyH=G!~+-TW~;Kj{uBW}IkN0_ zdSPmTW{0a`_3;kKce%qEvxm_KwLLs}#P`|54MDMoVhovv^DkT^xQV0$=lYS_9%f@OUG1SF zd9olMKyv z$Y=<{-61LthFF&=z4w-)!pvUUr|BfCNYGws9f8L26O<72tn@;;KJ#x~+{6IX5YStFwR}h2hAv>AT zjWwc@dy~4~C8*=GB|R_F~YVr|@2GFBy}m z{)bX>fwro-fRx`u7U{vh@3P#PzD?F00Hu90BPwZCcbL*)E z5ORrh&KRnHQ-uHpTASI}&AV5Jh;f!T&*_teLc?p;y(ayB(!JkPq~8I$-_$r!@g3Zq zjbEf*{0kEvR6|>(&n6`%_!3w82Fun8y99iewnX|z+r5_`*%)2lgZNE{zv&!}4+vPq zS}!+3%`GC|lfndLtxBUJz9jM^h!r`B4xvrIa(l7r)QBe;ic1-0-!a`v{)El*l_m>+ zdu^Ic@3p2vCS`#ovbsf$w?!-~!NNHcDGS=m%ZDxv&f&Vt3p3I6-msTExkee}c)e}| z|NVl2737t87tis@Z33Ebdo$IaS>9s_w_GlE(2}jbmDnd+_m-D7R`0|;dc4K7*F-<_ zTHdAR?lsb95$)B)03g+eADu{|{SQ)$-O%iJm5g{?Pl6UKG;1#j*zyK6Bep<_5@&FY zD)FEA3!u%IH{KiFPy^$SYT~|po`;jS!}r9aTX`H#{FHzu@!WcT1lmZI6s`KsOUgFK zzM)XXRLc`nl>1Ji>qpLP7M3_*9JDuL905r0HL zLtW+kw9fjOeYToC86!RoJOoxM%DeJ620<1?TBR-1cQEVt$y6aZHdQJp%i`Nf$8&Mj z+gi(fJ+iZr1!snkp1>;cJei1^k@#h5HvixiI;{45g3;0RnL3pZv#u0ywf=0TSynzb z-H0458%n$&7yqqgWK2RzVmLW?w0yH({TB_Cn2X<;lXT~obdh4o09Vz}y~12dUjLO{ z?=~>JCpATtpohK>p2-5wIdmojjbA6=3$LPIL=Q0ja2a3JLD%u~W&F$N-8t-CTwmAU zC6OJ5Q-+OY-@#m8NuYd+-m<#@zm!oDy(MY}GB+w`SGi*qwj;~DJm;U!vYA5IYz;M| zWBjB{|DCA;pWqkY%hT`#A6fjyekS^Fh~W1G9bP{^ro-!9Jboj-ndWd)7q1^YIiE#y ze8AlfouC3BmoH=sM!Sp(zEwnOJKo5K3%WDd!ZbE%V@;gz+~$j`C?Z6hZ8X==Yhcv&3eLiT4O zLnTKzujXt|^&v{)<8mVi(QTrh&XbT*q^{8Nf_c3c@-IEcDFVlf8?^&bSi$;=?M2+g z_}U0BgFHdWs>Qxq>M_M}o_d*y+Lh9Ju`|5uug}37r$-%tH{uhSpi5Sh#$7P?7n(Rv z{SY+xb^jI-QqjrUf0uYv>P$gUR-TpQrDh0&{$lBYjN(rik}aw>BX%ZpB4gEVuKD}` zmqr@#&lxXV*<0ep#{H(uIB^H=0aaz6N!c1==tgWFzl?ePsfVikh(^3xf<)_$c~;-I zD1j&a4p+V`Y`=N<=2g84)q%-Z}^OltlWgJ1Hoqwmbe8{ zQQU$>>uK#?W7z{#TUDm{RNhZgKdyWGd}+Viui_rskC%XC{W_^9gJs9rR7JgIy51AO z!z$<@=~sY%#H`cl(gh9F(rwpg+p74&6EuXA@>7>8u~B+W#I9bdHRS4|wr0vW*Qs%o zXVXc z*`$`6UaRkR%3<8Ks?slDT%M^y7td^GX3LpibPS=WW*A%pB^)&^3ruX8GpN)1c>*$LILdtRqh1@^R;S zF{yWJN4=~*uEPkz=f{@~Xe+#8~${^Bu+_e*`&o9>wSbr;L|6QSCa^fHw78 z^j-I%#rZv)K#hfy=BQY879mz;#|=Hjdy4;xC;V0}t26bwp8VL7oOo!ov5#Rjv*BrkRtMV1<9PVD z;%!Avm9~SaCi?9j+LnXnJUG%M^9k_sa(%HF25eO);*{ zZy}Ftg~&AfO6$610?k?7q51q8pjk0UFHO6^FZ5H<0G2p4n+{-0s>3RDzEie;6T_XC zZ|#YaY>ZU3jqByDMhh({yu8yEEN-gu__WXTSAf(eSyfZ`*(DHd5QsK)!p~%Z=o}3Z z*T%@2riRDhbC1-&fv;Wa`>C(TI7Au=Nm4&&##w$ph(_jBv z`}${T|DozDUt?15R$cG=?dz4)I+%SugNFZ^eH|#{^ikvdpW4?$;I03qeZ2#x z>Ho;S9s)CCU#m!v>9DUU5przVOwt54s* z=KoTk`mccQ#?hVhX)~9Q99*AXuLq0&TYWklz&q3f%F^=Z8{>Y`7-KX!w6cOD#VB@V+zuq~)V zm2)UE<{ct|n>WCs3RmU=Hwhk=CvWl-a@vol__he2?4fUPc5Foo=HUWF_j@BVjCqs& zxToTuEvKYMq)JL$w@^xYMkY&%>k~?eFLJJwxDKI|^ok6V64x7)lHQSHrNngwr6jL9 zUrJnGaJgmo)T@+BmH#WjoY+Ic^wDqgrXQz44cnWYaW1rKqohNA%)0Ba#9F8Qlx8{m ze;M?+s#xh=Hh#r1&u;uaD<}~ADEma;7f&4_?FXs$O78|T3QCF3`rPkdI#2lv0IVXe&Z8-f-PF-ip7RfNeC4}w)&)OdyuS?)cvVl%zh2MzcT>zdS*?hh z@Lj)77An|z{KyKs$=+4Y@}%6}DeDZ&ZsN`-+K%SQ{SNY}zZuQM|M~n(Aw>RyPdI86;8Cp^MH>1`&QQC;l75-X_b-m9^P8cVNxI z!rYtF{eVllD_zuwd-LE!&F8soAtOFl%GB1-^2=p|xeS=92a??pSgX7X-73Af1AjI9 zYVJ5p0sIZ*sWyjiE)$j7!y*2b{#82lT%;t^!(;~=P?o9_)y6_HDVZoi{Y?i3_ zYO}qHM6BIwE$`OUw-PrfeN7pQ82xB}I@;T-h%f%8vKNWoWphTUB8z98)9-Y=A_H+V2x?Gnn?tZ))p)W=%2(qMMj7{9Hpg&Z=%ou0Oq9@TfX zwG>7S%jUJI>$j1%Tw~#*x3%~p10=&tpt4sRPd4*(Uu>m%)|wX?qO#9Cp6LV2T}NGE zNN@S&=3ldAw=$vxkgCZJS&-N5c>_0~k`}zp`NQ$O@%Uj_0b+kB-e?)Y)u~G0RdiHW zXi2@hsVDAtkS7qlL_m97Ks%s8>lQy#__(BkV_7OluC{~OkF%G8k{NRU!VpO(?kZ;2 z2O6V<|2dDb+qr2TNmllPig>23_Yl@KMzFnhUk|b`jM%fi_GnAcArQ(I%hq7D7#+Y?NeX(}4-)Bv@2q3cJiE z6)=X5$6ej#3q_#_eQ~&l3Sh4ItlI8%XW0bU3_Hq zdEI36<3ooPcqE5{dMaLdeJ52i0#u0=g{Nk8-e!JP#zA8@^{8s%b@#8XbkU%O6kMdX zA@nFSEuXdfG!7-()NEVO(};i5TM^D|+TSB}wyqikILHZ~?hek8+)rT{IfspBNcxwv zWl(Pfmv3@Bx=DCgE??f4ls;4 zv`N%XQzynrHLFlVnQ#d~rCXq?5ackBVKxY(izhQgC2n0#hv5W!L@eXm;K=gCjJ*1} zRFu?uF8Lg}`65Ufep_eQ7Ygkb1^vaI^42nViT+yU6CF_IGfO`;VxQ25S$jas+Rc#1 zcu3-76lr0*O(<4-Kug;P?xLk2i?4Q7+ux=%% z`iG@Y()Q9Ex&WM#qBY90KP3a#%zOxf9z2bn)ewXE0&U!!k@K$-;@tUG>QIGt_)bfw z#QXThkrTOBPDIj(-z(p=AR6(J09C=^irV#RdyTkt=*TuR`uVqJ?IHoMoD$iL-5zZm z$ei<1L8ztTytN0k07(3w!%#iIphdQ|hn%J+ zvFX>LuShFV^OStaplG&j3P+M{GDxkHBsWq?P33ZvgCIB>L)m^@NOjP{c_<}h)NxL~ zQsL%Zvu=t&a$k2y?wbfCS9FGC$v)=Mwg5eM0l1Q*>?`)CZlq`Ix^VH~bfLL8H8P8D zMLg5{McQ!bSNeq!tDz&~)q6Zb!stR2ODl?nY!axd=sEkN)D=<%e@3NxPG`GXB77nW zwI~iHB*N_8uK6NKcQqYUMv9D{Z6K5cAwsh7cjk91)UJRm6^;{ z899PvGO`NkRI%uCo|rg_ybTam3@4}c@@D5lc#MrT!2!o{{JPxoyPKS}+9$65HL-=dCwzf{;0xdr_P%I&Y1@(L%M zoEhRuP4S;i(Y-q$%KAQ4oY!moa@x3Jkh=T4u{KG=kjEhb}LgiGepfy ztX%bNW?duWq>e|7%(@%-s*aF#!F0=cS!zDsw?Gq5Q#0{Pj{0Z zxvQH@sv)aABla*|6J)odvx|}ReUU4PYbB-^)nimWfsAt&ni>yU(mjIF_Dtj)wXIH| zYFc7a5zA)|IjJLu0bT;aVU+V?=!;68ByKO395-j{-$)p(ys;?U^AvyBzF8?#S>F5H zyl!--yQa*Z@)SJ`K|7VP! zzE9_Ovp;kmy(sN0c@h%1P#&wZsSkVB*C0yH)<1X0uR2dhh7K)M#->_#6mn+D-z5sk zvO~7>1}TNPDk_1Iv-xf`^o%;g(0K!8ylWd;tZ#3es0Y{HLe#fs(#Qk`6R-HqWE3MV7)X8+74`6ee#cO z_3y~?(nZGoH-d91zc)E<`FY8rdDc_mXNw$4nSA9G7bnqBH#iy|WJ~j~+PD zxPK++3-{#s7LASgPxz%g_&}r9(?JfMaBiD>DWV%@bC!6{k2B>>U-hZp(vuD?dMad% zcMh}wLnX??xkTu(?=&MOM|YS9DTRD7>n;J^^-(?=rty(o-}o$;@o&8fvUzke_zXA?>d;JDDzXD%&Kc=1+e?T;VoFx;w z-+Eq8E;;KRuH0U6L))YN@<%`!7JN}t`yjLFKo4{1qTuL=-!dM&4{C^0q}ClwdwHa& zevY1Rdb|WmTb&ac4UFjclKKa9`6?-|YzN(zb0*IeYbp=x9YJ$)d&{o>7ffP&1xptcec2PSzgAU7Z}HEp6Drr=%SQ($!Eh1Hoj0ZSVbt!hU!_66-}vRP zsSY||q)a4iRm#c{N3yWIa+%eWMH|^t1AyE&z)W63N*fmPgRK9-x?18}l4}rst7gu` zj8(d*daLwxZZhccDxOYSUh63wX*$K5Hs&2Rr^uVKpg;OiAx?5m8vx7Y>)0tglP;+4 zFI_yV-t|evXmy#?IUy#swFi?Lt9lFSSqK5j2*QTFi&HBwcM=0(`LoSg_Oa3caWTB9 zL-?qg8~9QlaOa&T^+O7j>XEXn@=3j>I#8?<771A#8DIY=06{bwgPK*^-!Qn~WSYMu z{V%g_I?w7K?GEYVRCUS((nsmf8IMHh7PXy%Yr-dD?*dCwkN-FFJ&5_}_>m4CWkYF* zUZ;%vOT`S5L9|hTiq2v|Yk#AYGRn!Gw|6#702F1gkh24YU<|v9-fNQ14!C3-M*IgFgk#(@mxris}7tOjB)u7;TM$@aBSrjNWXhz@8I4^rp zGBwUC&rA4Q<6q+5^%o>boH(ueMTlCE+svapSEPnfwR5mHi;t}TpqvM*3-fW#S~1`A^vSEEGS*ncm;=F* z3KUNKkW+dpXIB=>X3fl^3^-Xe<8C>v!%>(*{9-QtdOzzFgzahmA^aFdZSeh%LXX`F z!e=^X{-scF(|s8!V1gcppeWuY_aS(X71WN(aSj(?$c&;3tX$TEzJN2UugtmwbPj=f zGUfW!d~aC52bN9yQNKBm&xI8o`jO)-HDi1=Mr@TdL(`e13uk{J&SXC~BRP_1wxO%M z)%~0|(ID=2Vr&R-Q~+CXMdGw@<-T&}r3fHrXLkXg8KY zv=`6PUDQ7bFlH2uN^(kTSdNl^<(vx#^IQSrs~#;(QGpsOuJGcie!HtD&-J}o7;IEd87@zF6H0~s&1k+O2!-ulrpI_**ZBR@O`m=2TiCA?5C zz80lTQu=KjW-^NI+o$fWNY63r!aUXjA(+iN9FI!vv-flC9}s$XWF@E3hhRT7f`OgW zeowT!W~PtJUFSSRfeO)f(vThJTb65O$i_wVyXT8#MT%+fn(fODOOvd~Sz2^b?#P$XpF$!eB{`9iTvR0| z1q^5mm3YNB^&B6Q7%IRP>9c8)w`H|BYk5COxA9Wf5$^7kkC5tfPuJhm@9gqht+JNN zJmq2zN%eR4bc#t>oQ3BD*!hv4SaR>1(9%@5b+~@4F>knvE?dzSFY#+9Y?*^43@1C6CSW?vlL({t9P?27la zl0Wv&=@A{>M_s@(>nQlZN=zbR-sI)Hj%@4t=3JO5?KwNO$m>b;l>0;Cjme+))b zbXF-b4xHIBv#a0Yd7X5Vt2Aq^KG5g9M`j*p$0jDKp|OMnwXG&_BME5^EpfxG)hoOF{DCSO>VJ;onS zyzZAuYP&?qmh824J)(kuIeAyAz=a%E)MkdT=>l2O$k`JWKO~Jlb~+_QV?uF)^k1=k zvde^Peo>y7m1o56=pnT;kzUbrdPRYI&=cg8U=HDW~Nkn=#funOfiiYHKvX+1^O6Qc3*-B8R8LI$*6mX)}9TkE3KcmzrDm04FNqa+LbbX5O)zH2?z z0iyG(wtOKp|8WIpTj~l~XXf%L)DlK6U^#`rwLm_4*P$}ySOL}KMv&tAYt;ZFTSjqQ znw(1Kqkm{<%k8W3I4x%PDNjsb;|^oYeu%{dROR-B!c?1r5Ufq6xi+6Qe9L03n%;6) z+x<KP1}o{yaTh{@)e(#7ynq*C##=oll`UlBRSuUm*t zI4k+E>~Wf3B{4zst0V+W_{Qbezy1L;!<9%f;eS#kQC5Vxyj#6sU& ze@lc!99JVYU+~f)B)7?+SExZldeHkj4T_Vuf?%MMl2K~ZkY>x#GVH`6$tC#=*TJk4 z8GxRX&xD>&^F0-yM$SH)b%QBW_*CTVptB+|4UeXw^ZeIf^mb<8tYu+twT{#H%;>Hd z!f8?EAzeNdVmr0Ja?g91mvHTmdnFO~gPD^n>;)XWmFrJrn;%_7Sfz_%7PlE{%JPE2 zvL0{Y9}We(+bqPg&^bZ z@_RjBlvh@6f5gougy5AJZObfYH_nJjVms9y6sb{XO8&0;!?$1sC#-$-P_L>mg9->` zxN^Po&ig2l4^_R98%HW7f&!7S$1vx(zlpYCk(^x&u2)=!KKoF-*|sHO#P zYO$FrkKoDr&vd6rI(1(BtMmj~!uIVF{)6KZ+(hY$3rt#=T0nKNhuM%pkbcS&E81Pn?Mg!L${(RP^3JSMMqH-&ODB{2nu()9ECaQYuF{rA)L|EBwYj`D6`X#_b(s{Y$j8$jLMTvuk@N*TzN_9|MZ7m8n< z15vlmoo5VELrvCMvYo;8aj`P=Yl9x&FXM{@rS2ACe&z9w^}opTvfOI`Lh|1grjI+RDn4I_Pv49J8p0H+36- zT{*7(-0*>@*i{tO%S4#?reVqrQ!|VotLnP$sJtqzoIwoA-Nwa?zUGoC_GfIwAVV%!1WwQ?qC4c zJ>BWAmUIlQJfsTm`G;Ltge@cPOSHW0qSEq| z8*rmoll{KxzR}NFL;aOs>L4fz!zzss{f#v<1$%LHW1hM{jdJom(WWI;bm14RUue8K z)$bQE;nH>^^r`Av&f^*nN$^!1bMa4cHjKEK5SAq8l*`L#SSVZJ(I{vm_B<8o zu0%NKUwp3vZJ?voxL>a9RJn-4+LC!z^@FK??muJ;MBnjbyt>QTh<8ELIs0i!{8M)t zzg&^AOqr+aVKkqsf_F%l-`N7GnhPq7c)fIy5CC(V`7V&Ezq&G>SFxw#_mKDKf*h+5 zXgL_nPT1ZC;Y3oY)Jn!_Kif6jQUilqtiUG`7c)G@cy$#)Y~O`)8zA=c8=(vvnTUmH zf5;VR=>ggg_AX%S-y4P|#pFu~fX2MD%WX&9aK&ZX2b>M4Dv}%CH(zHQ;^ll)%~hdv zOgZtjj5BDo05ap#p|WYGvW%>9Z)<9%vUxH3lwMzzd3VlPu~L$%m9>A#sWL+?k8o4+ zh}Kg@YSuZ;FmkNz+KTQLQuG|bAgtmQDl!`LzylPczkS@&z{CEmT4qdIz-A-(JqXK@xms!q`y zdWP?(ZvI@~2<)cH2N7%4eydda?Pc@xj_XWh!{TSQipr?!xA!)-h1 zLp8mk3%sGyukX3Q)tj;$QYfk3te#`h!c_TI?E-tQ?GmY`olSi-(jv#qbzz#DvMQ;#RplAFGXlEob=>}`**OHq1-&!<`BJ}z z`uqjnLTB0(^<5V3cdD5z+Fb34+{m9YfLX{0Y8Uu*H5AXWTkOa8 zA`xn)#Fk5_l!q1}_cb~4kUM4bWSs^<7KwOv0w0Kvh%|P<_q;sx9te6P{``u{dweoR zT%zWJh3o0_ZTI^q&!U)L!qSlY6@LwXIcN_nXm(AG^qr)nS`T@FNbBxJ!YW(@3dANi z9WZSYm07j^5kp#$sLl&lA~qG?-E0~evBxM3C;zO>LV7@l{~}6^G$kW;I~7o2#C!{0 z8Y+w?5@I(;*BgyneH^0jMmHJ+-TKXm`QHS(IghEXl&Kb=s^_KVqwwd3!9WQDn4Jx8 zW)tp^>5lS*?`NYlNAMNmg317H*K|BdMk48(U|5>i z)MY=BuK!5AY`>8svt5np+|_+l5tf*94_~5edwWGjg5GKVeD<-8_#&W7-N3Wl{FKBv zXPl?xCAF02+TRm)0CMuy;SFxwjBa4Pw}&iJuAAM$rQNN4^?JZ~RSTseMGzabuL@j? z+Z`kc?QB8_!oy`u7J0OrHNUMRD=rJa=LYmlmiHI&0AzVnry_?+&V>WxpYki^7Zor! zNDNW5n)Lc}+T|oSK~s67Mt;bK}4x6aLi8|nbp zh&@A3f~HXEmg-MI1h3Dct>}c*LV#BDO@vUPfA+rw?BqcpslVeJu>q8*d~+(#^(qk; z1%3hjk)%<73=~Hly*XIqb+@zrw-V~m*Klr9k6!UVrF*gHM!q@&=|*V@8R)#E?@Tp~ ztY)aN$(dWk+tYLFn{vReDE&M#9o^vLzT|?08ti|m9Ol>iHK;|Zb;juhsHr(fp}a_} zIOJ_J=G?_EMRo7jDJRF*3R9|5wu=>hnJrqi&3W^`477IJor_arX{`AHJ8+>63Q-888b@wq0*2`yRg_^_hgh z>yD+vdXupl?%^Zrw7q-+>s(_4j@I$ia*lw@iIfJ7hW6A)$WBh5Wc{rQ`|a%drS=OY zu$b~ZBxIoSxn$|mb#*(VW9j1atL4Q%upk{Pmk-d*R$`1F@vsmg))Ok*N-ta@l9iUx z3l}73zi6ZWDtDwpX@5&_iCg*m^|a59hAsI=16|2h0JO&0h=0n zA%o{1E*<07cTJ1HB02HBw5b#4L~dQV|3w;Daj4wC0=%Ql*mntj8`qo)<*ES~TIfHTLqCt}$YRc_Qofv0{74iW`;H1IJNOd=p>V zOOTM&)^Hh<6}Wapv^>vlF*i!ka_xyCH4|o z)#$m#<*u>Za;U$%9Fm#GdhxM?L{4k!BjZQQwlMW(XuXh z6ZlcoLH~?SuDOs2w_NzO>ur@e{;mUaDmziKvA;6nVR|ub-s-fu-2PZ2`C-I1^@K8D zWoj8Yf=MhkVn3s5n5Ej)Zd8G_Rk%c``C*u~$SCKUe<)QNIX29~ca(}X0Cm{@z!{(b zXZbGgY0xo;JNc&KtxPk=96q{}iSlj<%^dxy)fESCXCLhYK*b!X)2Ni2AL~Qm1J;L4 zoN3Ukkn%AjcYP?TbD&z8qcekcoAWXoN8+8lOn)Tw$+8pfkrzu2l(pv)G_SxZtRfS4 z!#uYQ(kA9+VhFe5{7=oxf$_lNG-U-yGFTZ`Kjgi#$kO zuE-JO_$2AItbZ@U41e$Xm%cUoISp%3sMF~shySYGtpwWQ?@=~psu4d!p5Z8*funE| z-<7GAMM^fNRY+$-@~=OanQ?GWPLiZfpoX4TRwj(tmy{tFsm<~%XOF9Pw-`Pnwwywh z86@%0Y~QaOqjk+w*}hu^`+uTFNBb<^egGC==(|;u-Ol5G&EgG-%HnOJ>IXKKdjK^X z3!vY(!XHInE}ouP1D-CRmGhg~T~_#W{~y|$4PER_K6LGBZ{$4?ZlLV{(%uXLDaJ!y zcvS37fM3eqY^UHL_C`XqS$iY*S#;PNIeC+_H^(d8<=Pure}32Aa661^Z>9|FYHvv9 zRrcm)*WLuVAV8TM9lcDB{o~Qt|8*c=A_Yb~BqOtpb3vDSPD8GO_-9>h&sIn+wx^IM z9sHy0&u(UTaQov!t`2U0#FPp1b+JFUoUH86ga5DX&)C6CUsi(J{*1W9-dWbR2>bKp z|73qa5jS6Upwjs@IV6I^$Vla19^4MSrf7K(J2dw{us`w=kklifNA#{Jk52YSXx7R8 zynUo-50=u-rax)pbDS&)M+wM);8E0foO=|=2=4hp4tbF3Y=44XW{5X4lWv`V>Q*pI zF|8D{bgAb&oU5=KV6`neKC4F$YKOi+1ALzyI^l=^)(-tcHT{kq+FGpj{N_JueKkn< zSuBp4xwtfGqNmUcYjmMN*~JB$NwAq)HoogcaMD^ zy?d2RFbhxB?nPpsUZG6vQ-68p+9yfiR`y9Y{DsuWhK384xSmd(XYN+G#7gy|ZmO@; zL$j5r-SJQOCH9F+zB}Vn+b8bK(e~*j02dl{?mJ)l9+&I;k3to7M6;9M;o7IQ{WZP6 z!BrP}D0=5OUFf~Q-mn&2qv@-C_RRYA-Hp?j3TTD;U(A%Bvu+$c=f;W`_I1VJfe~51I6G(GMzLO~1dR zBa=|4Y=tXl`MT^bktGq`SjM^40W5eAhXQQzwzbr7{sZoAYbh~eFF@*2_L|ea@dy zt7Z$#KMJ7DMDGd^BHN8;@VfLkm5IREK7WPx00GwOqEvvsxPOjKG!<|?o}V}eT-z<% zkDUUkJ#`@Ua28Ex&YA2#Ly3m7>0{R){0!br&(F!P0#igRM~+4n*xUdioO8D8EjCWL z$tgu4!=Lz?ozV)tf9lLpedFaOd6>GFj}HAOA;5NCAwvjI0_0Usr+o!F}iBVyU96; z+A5}dBrR0b&$~HwxN03_>qZ!A3#fvj05vht?_F!m`3fZ@Z-h**`o4J1+J5NFbC#j7 znnhuSBC>l;e_iwe+g<7|s{ceE91VZE>OdS@r4A%Eeo%E#`Ne!9Z@Kq2rx4!*S~E${tMMEvo0 zwZg4b?V=U>r+BB6%CpMpg|l*cA?5l2TmDDoFhGwE=ZGdq|BHBt0{0z$<%q&*g_I`A zQ#-X_a-QBk*csu^OtRAdBWJ(F^O(S9(D*at7b3^nwsH#1U`0 zQoxG>xJ#*wMvNI(;1l0E$VhKb9O!W_%8nG5x5t@EQ{01CXuJD;dg7*&JM_eAYIo8T zix1U$B6WXpiS9VtDnE#O^vD*~hdPI)Rs(?}j zPR2P2a8jpcWe)Hw&)9PuSo6UyOM9kYU>1Ho%O}L|D(Qm zxd7rCOVJm<7kzQW&pYW0xlXEUFjrEQumet=&kJ*Pan0L>2{M=W*@Qz0@0xX<5?TkPk2u5(W1^DB>J4(o8+V#8ASA9 z+XPM%NeTL~ehq~LB#S_J>Y=#N*>}tJXOF$-ioqV0-z4p=M6a8>{3dP9;#MWxK(K&| zrSqjF?3%~hJM2aCiFJE+y};!}HETSvmDMNJ%s>ssB_9;T5`iOob@&L^$B`^TW?8J^ z)Aw2@$39HY^wg=7Bdpfe%!klU{1Cm$c%^Et8VX2m=w3f^^L%|4aqOh;Ji3+!%QmP1 z)OfpIc#}Re#*>W$J+a2ff2A(wmzF~-Iir`{@ASEIJS-y{g9)F%W)w<2LLK$W1cg_C z!?Vw%u9SZ8OWzdorzY~t`Qy#XnHCPx^pF=geTU!dF(d?xeSZ32roCCxukuM-fj<)|q3fZ{%WCa)2SxHPwPZqn*$mR~byAgzA5{Bf!SjDQ-jf=Z((;G; zeq4SpXZK4#9~+n7>xoY4-y^H#cM0o4`JIi?%7RvG#S95KbrlX07jf*P?E{Qh4}7#} zJ82#2yd^2*D1PpIP*?Wk_u=ngS#FAtapV#XZmBPg@ZS(FQj79xBeoy%LWvQ6IdCcV z<7%3yQ+dOLOH1T@UYUGM408M4Ly|88e+*IY^Wlt1bUUwl^0JmH)cVV4811~YvX^Xe z#C}Izc05O$$q<)QY#U~B-$X1Sy*J$Lb?#NQBD3TIj&aGNH$%yLdL)Y`CeK|S;*|Au zCUE&=C;pgH^l5a@0J;3l`;}FBz%2E>HhV%idBl3O5kKl@o)taNd-|2I;Axa_uSVsF zS9#Od*_qGDU))1_-~~R9XUt{D8-FE9QrKhuglGUl?#gB%y*C0YAZI}vIcj!G{K zg0M0Z0+7=QDatElhwif<9OW79d%}3=E|@u-EO?aPSgIgR#)J|@4<{RLf_SF4Ih4E% zw}i$I_7lh|cblZk-tfVoc=|%KY0n_5Y470R(6=bOapg2~=!&5IR`7;pL#IB}Y}PhS ztUI=s*|fxG*6umv!#{ZLI3i@P;oT;O5>#M6u%~G}))ex-6=XXtY(^VyUmsb>Qx0((N zwwl^c9C~1AyLUNPi6kc%_O>dU?GLOQ8s#>NrUO9hlz5jnwf7jhJvm|_IP(l$G;}B9 zTd7}zujtkQ-^)^@B?|6_rQ~uyXdk)M8}tX&Yf5fxoOY^UhR4Cwbv$9gYHh2+slCr^S_)eC zX|y&i>tW6xNafnhkf{%G%gjRP94uXIJoFm|iEceis47@aHryywjW!;t32E~BpYPC8 z5pq?~UX!{p2TzX4NY$dtz}hjVlCIUuc&sHk^=Q&$wj=+P!)cOIA=ZMB%_Tim?jjq? zr&yI+xyHh7L8Ob4RuBFZa&gSeA02S^zN@8mr?|gHL-0oj)C1PT*DrTIaUZ^)eV7@S z4F3g%d&D15pvkbcoCD^>GkpU{(&ug8PnG81YdrKKwW(4@75V+kC*?P_ian7cPLAgr zv5DYE&XDs)alVAt8gBGd(x>C{I(bnt_@<{|>rXcR*238Y+}vRz9{DVQ9N%Sy zq$Kh~6wR6R@7jZqVB$m>PZEn==TFg~h*y$TEH?Il-GUz*7+FhEvZ`d_z;=p-L`>q-1mX#wBCC0GE1(@6O|u zoz@>6_u6tzs}WlQuW+aD-T{&0qkD_FDvm|wA^KjCcgfVgJkY2QAJhm_CB_#;oztW3 zmD5+N(3nIp18wzk;91P?ew9%jS!zNW9Ep4K>??d|Grx&E`AqS_LSQUE$c;dv;ESUB zP|uPWMOufcPMhVSEVORhH^{u`Vp0;0Xzqh;Z)!))tw#EXHZ{m-r21X`Fd?Yuf)czN zO9w1l<^o?}t%lHevL)IwK%i8wkaB9r3XJkTTu!Khxg6N7&Ughj+jJDCdh(H@zc`n* zO-cc1V2%cul;~`&ca**E^uAP*cxZB|e%+ER%p_`7*u}B60DbT!?u`(Qkt=vnYAIe= z^$6l*^>j?2V7D_Fs!1RaJX*N`ZS`cPdujG%9P(PXxpG;FI+(NTV)eSz*U0@$FX`<6 zNSvhpFJP=ejv8hCt~tHM|9PFuB7Wn{xJH;G##8N|sQ0U$03i5dGC!{M$H9n@5;-7Z zsMp$-c~Zk|^*r@5tDf%uy$;25Ne0Mso~8mq%$s)>ntvJN7KAtTFT z+^K_>NcVk0ngy;N(61d$KOtJJ1Q48_TsQ}KYw3D~%fI(u1IP)<`WyL?4{bZ~fTRc& z`Q^>D&jFURY`Uxm#9LQchmqe}l{`(}-oyC@l4fU~I*M+bN3RkhYyVQciU#6z^(obY zi~EPwTW_{Gw{d8;+p6h2XjrVsm-ClFy(Ee(WIW|SDrUr4AI8MRS(pD&tDzF-^vNt6 zkv;Vu;`H-Q4*=5l7vSWodoW=1u2)CM%9KT^xci_cEUSB4ShIscoJCbGYy_LPM8*bfdmqE`=8ZgONo{V95&mncAaRyoH{l!CtRg z*KugTF*8SOwTLj>O&d#av8UJN;rA_q3%xCAkS;e)06HuH<-L#+4tnQL(S3! zvkntqN^Jb6&LazzjsKMWG2lE#L2*QxfNKPs-6bt{U7b;-!nYofAv#Oj85xX}&GeJb zTbIMMIr&re2S(+n&P#$Z_IT7Lndp>G?5eYmF+ATQ1n}I?!^D5DR*^&D;3p<3+2jrs ztd%-%%tp@!Y>RW#Brz+IG8kKXQ}LCv`+=W<@g=kS1{(Xmg*@+GZE?Y-Sn=F4s=7aE zfdY{GMs<(qzzpG_e1X0Ld=)=*_4`4%T4|Thoe3J~BVFsLaoT7MvqvE>!NIyJ8NIJS+jKRnDXI_DpAE6rtQx6 z6K9|RkfW9!KhcNq_QrkDy+C^*5v&?OB^%u|-)|&AaJNQWSv-+|2A$@)7hvcvAp`96&OpD;3xoN+;wFo}K zYXD}fHX=AxX+?0^|EmZ-y0r*)`n{9G8%%6`i+<6HUlPdG7J+5?ql^QdduJ2)GACp^ zH`X{4b)j8pym7_i_%g0mXpC;%Qu8gE2MipDFN<#7Q}gYXV64P@+gJ1Lo?z@@@9jX% zxBG&zKA7K>^I*-l2ZFUP^AH%Zk4m{kXBD=3q^*_FkJbg8;pILeVXR zv)e~vEs0coUi&iKcG9WWxzsV)?vi@)?kDfhEPy#3Lh=19<-NpG5{ce>OnBMWUeTRr z%d}fEcPoF-4ln!o@NlQKb3YCQ4g|`VZS4~7#JvDp1AE#N-+xO-?)+pUfB>q2icV`Q zIyHtzzzFSw^PZw?$hnVgp@V(-h8!idB~7=jS_`VfL1{G!7MPB3ZfQihif%buz@q!+ z+;~OE`SuZ>1^d*&cEN=rUGUi%S@Aty`FRdtJKSp>z-kAu%d(F<&iz=(;Sboz?W9$E zI5`Sz-BdcFnR;$KEaZH&h5Xp6bA7_CgPbLhD{=rp>`;=d=%T zJ}})0pO6S;4~MD{55o2dIO>5Lq;%*(V22VQg7dVs6{^dopfzMj?~NYJ4lewwh2M%B zZnsITxS{$MIAIK&uq+haO80(SQ+)+kWn&UeCrkvRUi7uFqJxE2puKvaoc+_dI$PcA z`ju}7)VUxFj$Rk{15IuBhw3^A&F`(n33(7w9N^~E9^ONCE=ldMk7R95y~kt5T)3pd{W-Y8r+Y+FIttH!v32K3Veo+7L{R_*r zO^R-&1@arHW`z~ZxEWK5ot#alysog}ah3$mx+U*f#cAtzu|klVwLgJr5ooH zU7*{IWQpFA&E3T>QBcldyF<+zSv@Z7&zA};3}*;nvS`Csz0qxm*D)1agI1RcV`Gh4 z6p``4IW16Fan*<*v)ilSL``X8r#VCI)z6;7P-k;*jm_;-3dtX79o_>&nG@N9E-NW7;JS*~otN+U{=gjhp}J!7)Q4K-cG);|`O25Q113c7)YU*1|Ap#ME?qdER?r_Irw6^e z@(=g&qe&9yl-5+pUSn#zdnB@?!5E+z0zIcv7~)iSHUpq`>V1TWIa+j2+(1arE(H`% z9AV1;qUb!c%bW=*^&YueChSn%K;iXJt9HmV>2dISlv1u86=Y4#P*u|_58C@_ z{ryL~`B>PN-_jbNy{YI`=F#ZQ+3m~Ym@5g^@dkzy!iQCN-aC?xsEzX3OykxS?yDAF zqA%FY`l2^I>zH*rNgU-4nCmg=E6P?EaaS%pvSpeSAFf*=hYWH$a^8o2*9FIUmKPP| zIGm_iE2zpjn)gaATwUBEf)**1GH$m79#rILJh+nNRZmbyo(!$SK9CUqBdLCDrY)cM z7Jbi?vPd;-9?Sr2MU@Fx5m1$$i0`h98}qN~ZmjE9Qtd*0_Y8VNJh|!a<)W#-1zP0P@Riw)b-DT)RBTTv8BBxhi0a9G;%8Oxil6Xf2Iin4p&jq zBg(sfCill_{(PAHWH?8lL&E9bd;&=~|Ap$LBsk%b3GZmKn?-_jzeVtJ<+8FMGuPL< z)3sJ9?;SSpuatKbe_EOV0_$4xo}s*#k=KkkCv$o4uh-i6M`ij;VW$~N|78rSSb?IN z3~6MM&yLB6qc6nsK+Ng35Kt95nHl-kE9a+n(QiG7@XyhD%k8@)i!K^Efcs0>Q_vC> zQz%Szrv=-x)Z+5Om8#jBcd6;0~%_rce^P0J#JiY$n+g*H+57A~ot&`?aH9d2>JF5}tV%O9qV)RH zxdAnGUc9#?H!E^@Vp=v_wjK&wXXwUiBirv0q`fdp5ttisR9l1JgNCy8Or;-SYe>#F^=8uzD8D3D^ zSZ8SzEZt(-Pf!{Q_IUfIzZ$ucr|l`B3ztZHu$wF{;!g%GVg<-*bU=1-hRiqYE5#^bCXQ*x}3wILm9b?!HH0e`IinHX_B-^>#QM+WL3 zP#|?CU(BG zTily|G6jgWPl&V=#JzjRynFB` zE{n9ENDoB?@U2%qe_)!EDN%=(n?CgBqwz9Wjl)&=8|O5RursH@t!Q8jJnHGeF1^6- zc2@5rEdNQ;SQ~N;IH-0|>tb#PFzQzq@2jQ1RN6fX0KZy)UYZ)bdReghn0&n~Q}p*e zybYdO?!D#mHZd))#jhs$Db4T0kFiv z<6Zoh@jhc3F9Kn|x8UP&u^j2iA3MI{&xtED%0IWI&AVyyzNgLmzBcc2(aVIF+vZ(| zfLp#}q+c2+>DbjATxe&*NO!--a{YE7$L7ZS2h8v!Ig%sB-^TM`o?9|{^3=vpWTA-+ zeXy&TnJv$TlRyvcf9|fC=cLoPF6#R@2S#$4ELenMvs%NLCG~YA@Wtx+Vo@a?9MVd=tCksMwe#25uVV+O187Z_I4q zpbmFomSW8iW==LuFgOmi7V-wwtO@n4UUsgEEh7OZKovcXqQ$FjeNNw{ui@a=+&vh( zl^o`b@1WW$98VT3*6UFGK7Cbu4heGkz4J#(^8!adLZU3=C1rTJ63z&z&0dY)?+9nDJ*#;Oa>He~-eu^ww@rqMpCt_QTxpQyV22+^tQPe1mW`AxPnlk7BCuqEnuU2QkOgz9b;u;z{55>=pq#9bip!fK=l{Itbs%0i--xjmwkuahOstR(``Jrmj{C>R|0QV1??Y2<%gB z!4?SYhkpQUAz%jrHdObna;|Kfb3aRD^9(tO2hJ#HN5Q3JL=Krto>i*W`(`5{L7ko! zE0B~*tI*JrMx$3sv{ke^=c=>gLm?{T$z-2m7gNF5BjhemjAzw95*rNuyruD*v*Yd5 zE!A8z#fQYmjL_aA^E8H$T$eUi2iX;u)RPH8CT@v|eDE_zfgHbB+002i3T(bDB70h4 z8^Ezb@O~&U}^18=PU|Q#$se9 z_Rs1-VA%Z@$gN8;+FZ)rkCA@zP?=(*NG^75hoXdPC}rt!0x+$s6q5_4CNJR9zu0bt3ar2fiFL$z>_M_nF0_!Mh<48O zYt)}5{-pW@VEAUfI+uAhS@ggcVlig??LE`;YNzeYtMc!)1yk1mnOjVL5UF1Xsop{= zMt*?TgGRo&YD??w@8M1Iq0+$ zHmZX;nSzqf#Lg?4OU5CMb}BM&{lfv2o3WDz!m$J>4#!kCTT`hcLSsw1qVyP3 zB;$ z6B!_53%>Epi2jk6S`c7C=R7eSz8EQH9&J?(3Af|Vx4s>x+Ma4^lzv$ErTER#Q#yiA z&&gU=AGMfy+^73D)}Zs(2zZL^%4Qk(PZ(Syy^Ip$SD zuOQ%)eea6)57=$ViYlBv`~LB)0q9Bp&O@nb>gDW7(G^%^`_}41@t2W&d@C{Av1Ay= zgdz3zhQZcs_jclzE?oSD-Bf-}ttzdd1%YqYC?<9F78Au}u2uY7<(q< zPJZ~A*eB!rDhBQuxFT*!2kybwrwg5x8(*Q@T{~;}b0^J>ub^Kiv9k0i*A$L-oiaiO zvsWsT4_V@Io_G~>8&pYhMez=FTWEj*v3N!G4&8*vj)JtU(@(L)+mIN~O0nAHtDA8LUu4T#XY)(>N-oFET=$& zWOBzG^ zha9YhR**Hjz_oQvNf+L^@f8r3I@74vQU}enhs2(>VAnH8Xlx_5-) zzlEaoeV;_dLh-9a8b!IE*d=Y%ANElo5sdEVT#$TFlE2Q1Kc_T%nfEjLI3_#1CWo4k zZ^Q-aae+gXr?=uG`-HW2lqn?;KL%t*>-t|NrukCxE@8kRnMb_Kw@f}@HqYb%dXkg-7PeYnFYU7x%U>bb1ud|v z(y-$PQ?fHIf$2ns)KBT@B`8AnlV0#fJb-&fBv~sV1koQ(izLD}~NIXr>>Ety-PWJB8lBdRy4H0TzwjIN1<=W3)THXl}oR4<0pvePw0>ltq&pnAwm>3Hn~^o7 zp`m3s`+D~AI&li5nSCU^B**7&;lxo=YdhB5oE3;mxPxmY6h9IRNO+(rAJ|x4ygqn) zBl#$^vLb%sq|#1%S~eF@kJkaex?fY+=_S#fb1FLRERTOnYUDI~8BKFw&WRL06Q9YP za&FWtXYZ4+*1Bxzbv*Q5D~-Qa+G(e-wCC(Xb(eui{Vn`y_%(n0>ET>)_M5d`0+Z@$ zNN&MFZy>&$bFAU2b>+qXnf(H>K8{Y6gEUCR^x1|Q=9E-0rZ~@`npvF6-WA=KJLe9( z1B1_w4{*ft(TacPVC_J zJ5{`cpJ+OIdJKsj{Y0Gs*M2cM%W`Oi(kqi!cg+fSS{_`GLL_>8O4raqDNX^AB7S#c zt}KRad^w5q8+V|({hW0FB}*hz>n2eFgR;X`H17L&ZXqu>hS!*zVyp&_w17*{hSu5o zn-+Td=7y$N#+JF=-;w)oMIwj?cL)zj0503op)z@XR;W{B^xI>C3+=iuy0+iAGOj3G z0N<@`kr$=$cS6`gLd*8$RDT)&PeoPZvTt*uAI%xHU~*PgX|hDR)v(H{#>%XjT7a$3WG&mDTVA}p`U~-4)>>DW<3BtvXaCf}ssZZ%JG@D0fVO;S z!Qoz89DLqAYs=tPvl?w1cQEukS47##9 z?jHZb<2Mp$RP{dTr*j5=QM`P1|ExXipV{=B$V=|GdQVfMN4LiIO>fkZxj9oBw#a*X zaIWeT&zO*lv0%YNBFEhCVLUEam(I+cf)$CYIA>{Y#O%5okNwEt_=%wx8J%{Q;s|>& z>&K>WpllAKa#v>;TDhN&P6&RK3n#0ymJnqMp6}UxGs5HX5!%(|CQ!Q#QT+s-fPAeF z0k%Oad0*0O|A5R_&6Tcx6_d%QO%G39tQqpB^7{Dqaau#K@)4eQ9!(9^X-B#KLtuEv zw7NbB3=7Zn2asl^7VN}-vOBqOB^mui9hbNX(H`;1C6q@3*RmUP<72W-Jp^JO@eCT3S1>2sX+0)aI@&vXld(TblGd9U^PH6%>VLbZ$13Ej_j?C$c&Q&l zBW%a$cGvHQ1!;d(E)ri}7Ro=aemptwis6oQiY#Trf|l*dGna_4;MO@lksD=J=1p3G zKNq(|dbGWbd_HX#P%tcA#dNOmm6Vsg`F3eG8B@Q7ppIYC`}gj|Q|{g|d3lj;%qu#? znd_Zn0@wN~ssgE#fNe&BHxtqa%7PA4e;MB<@iEB9i&F#mYTKX5o$3!eUa*@Sm6(y| ztmrm0Z+iatq5RTb?767s2>uh_o1tLtZSAvDN35YWW`OIo?!w0H%6sxf))Njj>ss;5 zZ|U<=K0aqy?;9E^VszYF1_fA!?!GwXV$m{Is=1H7#<~GqoH|{!`|s_mIx4>Y#E#XY zGIf@|0;Gi52uB3yPk1tp}`#2(cD2&6YOuGZ*J*lUKOeObvbc-4V&O|cM3qTHV-VE^C`OhbgV6~^`dv_dJ2yX4_qr()C7@F z2kr`=$e`C|MK3HGCV*2kEAfTW;-cRjOI!@rZWRfKm-3~wts>iPvZxGr=CyNOfkhOc zs%fQsEFknO-}k)J+wLKQ`CvW~)s?6(rE5ab?fE2~Mt7_s2N$00vA&lw2|a|xl%sgT zg(U*V^%V7Lj=r3+m>_~?KqIds^andIBA{gNs+wT!8$3mKl(0LfQpD#7C!Z+Ljt$cM zbE=SrvFKgC#a}b8Y26)Pu5qmORMCHEgy83R?ZCEXLx0w4??bKySKDi<7PE>}^P>BH z6r6V)F9g*K#@+*Fn7yYO3Pty!)+I==n&1P_UlFWhLs%}_o_|uf-Cl4hKibUu6TjZl zr|7mWeJu`;umj7E*_h}HHX9R`qkE)BxXP8JE&&J^ubtH{zFZtIeF-($(mjv2J+bJQ zWN`Xk!rj}1SsK+F=^-Z=>@5{Y)R{L+|J!K>W5=j~WJsLXOqG4HdDfWU^P+{}^l+jN z=6F0p9ouK@g0|~K7Ux}e$kiRCv=%n8ECZQOdE1fs!3xJN+Qt$+rq-R-?=m)@-bskz7hR`e3qktv)zfGE?)j**>z?ddhr9gVD-ur>s7|$^B8wq@ z7-KpZQ+Or0O!Q)4$p>X&4Xom*DB9bNsr3C)2?y7@ScE-z=1(zKi9HAEB~}dMiof8Z zkAa1P6Rg$!W*VHeGH{7Z6_AlZK85?38R@)CEKNLWIVCv}Pm@pdox3kL6AY(7!#+${ zY-XcS{N1wn9(++TQX&QjfYP35FB}9Ph>Eb>Y{zUFni$eWXg1i6WXE*4JJKOs{N{}3 zgg1_bZxV&Gav(tr96?f2&fL6EAIN*ZLpb=z@?ccV@00Vk14mnaeJ1K!s!P-TL1aft z%=R3tt#P@CT*KTj;5rw+qy|`4fWLfzqdM9C@kdLTI8W2f1P}UmR(^T75n%#-K@?NW z%IOtZJ4%z6W`&DC2+qUl68=CYSL#U02W9acB9_|7?ye}762&lffRv@1(FuSPb44*m zhIWR=ntx%()SYw)W-38?FAEP$l@EL^JdDl{M(qZEd{xtvjy_22^w11@V>LAqLzTyW zZTLL65ywIWA#RiY$s449XN$$)NIQ~lB@N4-2_aEZBki{m5xxF!zT5p_Z1_c2k;|NX z8{?&wq)2VV6vbKSU~DtFqpUY;k0K?ESgIj`<>vxgOZhdFS08Qi21X(y7ng0k4(ZAD zwwLP}FV|(t1$pvt8Sp>`&PnzuoYS+(-Oqr%pFVM2HoHF;7M^G&_0oG?tk{dg;+r|| zruqO#a-2Fkd3Buc>R1$_$*BYIuhXAB`R5`n_>E0{%J($m2_Y*c!bvAJB{r`RD^v}nCRi}| zYXC!ndppfLeFGhJ89KLL)`3i&X!DBGl0`R=ha$me^ALi?sXe9w%gzP8UbwViG1>~rSM%9g4{#CS5{p)HMJJqbfLHFalvX)|g?R`EN* zg$ijQXK(Ne++(|s?!=I3?jCJBaifouyLpk;rY8J1-WQ{9&(q>5y;tL zkkh_OF!nZoJ>(Yh2y(#;)NUckL+!G=Gg14#tSxHBO`oY3Fj2aJ&1IgiXOR0Piln+r zjwOp8Tki(NYQ~i&mi@4z-%79BBEVrCqf<1wSOVmKG85BoyR4>O!#hWgj&AvGcqeWD zEoT_K9*o%u9V1-78@CRheWUSo0PUTNygnI5WV>1F7qcxHZugal5b-A>!C_8u2%hID z5NHlF)0)Gkz82Mmx{_OS;L)$bhd=W6WcrIv76KQjt zvdEQ!EU$Z6mU>y9bXiK2Whab@kmQKPZgYwfehXO2Kk^FC^LX~#H12lSrr+S#CR*BS zzSco!Kf|eBhAX@bU8yBCia$0YKWLmkx{n=^QYUP)~yZjuji``3=u zk8%(fh5#lKO4pjHVSVschs$dma<`X0nOiZ0`SoorbM?LB<&vGv^0pg>+tYPUSDo&L zjH26Lb>w`+7MeXQ6qOIo!fU7jrtRipz4a*wE}TS)7!YnLdg`uBrVWo0R&&zh$u?4A zFO@?@8P+&&{mf+63!4}Wsp!Y-14;H_u-}z?WxzCjK{eVyaPyR1Z@K(!Gl#|k!90Ix zezz1oyZ#>OKg=|=&}=+Wey6i?>+f}m7b$V65?Q3y-{%rTB&PmKVvGIHt@m=m2~Hh! z3?~L_d3%_QEFDwt5^a(5K-#OmtC5(;Y*XL0eBk=b)tzS_(0Qsu%ir_ADeu;Yd*$Y$ z2x4|4;!Q0ShobFGK|8SLNp(GEAqk>KcWrE&m7n*dX{9Wz6kSd-bvt7TuaCSeE7q@O zRmWxyD?%G$%x>yvzN+VTOA4ZuaefJji=H3>`v8Tx=i|F(t_6kcUTthZ z(qQZ$*ofJ&A`mh}>r1XlQQe$-@ zTc-vZZWBa4Z$u(m04mi(bYP{$hH@9gj_P5Z&FR+9%>6eZO}}B__;&27^!A`7hZZk8xNTEm<&6gkg#YbKuPOFs5+6^s!7PLbWw0Vjq1Yk4 zT#`G^YhXDXHaiUej_@czBEdjtmnz!5x-km1jgcyI$8-f=>7UFo=HK z&JP6`jAhd;!G@u1nM8iX<&KPZ?$_yHXXFK=nhB-Lm+DO?D5ZoaM{1-m! zNhYk1RN)!Ayjx;cVC7`)sXx=fJyZBRa)Ol&^}}4+@k(1n8Uuse^}}6qP{}iuH7dhd z20Z^FRa9{V4U#3TZV=N78NC=pJ-*gBaOMeu#=UX%7q|~s@L{R;tcp5E&{Oy)0_2((z^dt$ac~Zp65a zb#x|!q%qRX_ea5AZFk*v*H3bQ^Hk$az!VmfUD|=Qq+MpyzNx?1r5UB2PnrwHsVHim zdf&)LmND9vD>{|HNDEzGMwoNMVentYfaIqn(8bA z46@^1vzye3_t8l7`zQr8dS}v5INz3mJ(+B6=Z#^jXgM=IJ;iP8-~iqYk+s&02oD+&>b%EbtRtZ5@Acl zuum49iSALkY&sY@$3TVBL4)5hdetWm{m7BWowo4)KV{IUuW$amw z8sG$$WEB7;_{g&0ZBJu2Q8epta$LLNU4!$#94VX5{IG5)#fwf95O|4`>HJ^mBGyw{-_UKlHqbt5pTjsQIWhV3$%ts&J=xx zAX75a3r~ft&^zEH+nU~wl0?z?8oy-q>eU3S@re85)LneH?{qR*V)*pE zgan_yD{>DuS0*Dl&D@>^eM>DspT46Vyi-G~J5t~?d&Aak$C3pM&axoiE|+(q=-XMz zekNQ0RNLCpiBL zmO{2ov`}`d;3NBj(T_+>-Oa+>m**Lc8=QI#k>KeouAiU$wQFCiY{KEKZ)!RPlkI*10y zlS<^tz?4oUweZbF4j%nmrV^jh!3dNR@<0GjqP$t|OO!&TD<^W_lP4WmxV6ZWV<1Ob zp8RHulP6E9Mlm=M!9}80qoFGw845P8lt-a6gE8HAnK>qQq{qY!@1+zieCpyh1YFD1 z0r|8F4L&<;c>hTML#isI9GC0(IjT1+M{xenNKS(fM$h5ZcD|M6w=oi2|2jTA9?^n4 z??;X_4@NGvwBKyUS7e+|_et3qa=f64yTxl-#?|KQES!NNrYFaL-8)V3O`Z&obkz5z z_Nz z&W#6^e-H#!{tr03>ezatdg+&*J?OY(3#r)SfI zRG~Ftx%RnfJ~f!6%J_lQW?R*P)Lu{yy=Zgy1 z*2;#FZXR`sX|3$h-DqWtwxK&|q2=pkdCGc|&8pcpS@b>qXQn9|i);BEIQx=$6RxrJ zkUhcaZ0TbFxH5dn(u%l_>D4^@vD)GFKxi?X<2g`C{N>ug=`5vP7@9hThTg{9I^y>) z(k99ks%m?#7IjPsgOy-Dd(WzsXa%LULc_sgkkLCd^UDj2&R zFiU##2NiQc+s_deEUTArPF7!|e9iF9enXYW*`?^+ub@%sR&7t)$nTwa_ZL51t)!v( z>7{G1wpnS>m0>SNz7`LtB;L3yPuzsI+u`&lWyK;27`us*Tei)X2xkAg)P(6Emz4sU z%{kO;o1JBwJzchjVC*X^Xm*D23h!m+e+EX$qQMq1d)?|?2tC4b24e+Qm(}uq8%Z`I zQ+Gefdb62NNT)NjD!Bvzp*pVa4b)@YhA3S>d|niFT_=iIvjP)@*Gm@TmhL(m)S(&O zrTYCd;p;5kUU$8~%aUUp#hy=?~NWag!`+9*%u& zUE*zdZED|`h`qTW10S+4Yx@3*WtB8d^T?*2fs_oEZai~ukt#@b{j{F-(gsjy*vKEd zyyCdpGm}}`C5w)!@{6BF{i${o_w5;$Rh|SDav#M<7HXoS)@VTe15jH4nyG+Gtwb#0 z&!hdJdd&41-zhMa0_JRGdw^^$_7+Ei(XO6N-ab8r#>CJTTs|3Ypt3k1n3vp@bATVgPpBAdyEcpLv z3;*}PH`fUriQJ6#B#YKzvp3s60MNhq6snVTxt^Wn)(DOlfRh1Gp16pea<@B_Ec&~W z-@eI5Ymh_h_do;5>wxTfyH?=GS@0_W4}m*SuwKUiGP>oppW9v@nl5&(iuDn~KK+2Y zj$3FUf*HccP~E?Utyl$^|E$9vt8O)SHGhAo{Iph;uWSe;9A^;r84@&B(2E4wL+zIQ z8tzw+0RZCx`n)sR#=fN%tJhD)0QM6MV2oMk)bS8scw+NWYgfdlW|F|%9f3eDc#%Dg zzh^JqEPLsLSIJ(wnth;~%d1vvc2AbJZ*CeOy$oYxq*KlQ{OWAt`ts0~>sJ8jETEsY zSVrIW_6e=U^fLl2=~_{p%#VUZR@35eoT`ZLJtfOG)!M3`xfBnT+s$SeFS@y))OrkLV;x4>I?2BKh4-gy;nH}Q0@DisrHL*D zTv(G;TFfEnt-r5tv$O`wy{qyfR}zrC zBEFnk`^>I<+Q`8#5SYT1+RRsCy~p6OG~smj-k%8wV)5gJ9eH!vba4-x^DE4cFNRTy z->*h_wH+vDG%rd#?Q^$pD?;QK9G-02#7SFnS%Xo7WQuQJdg~d+**}PBMfj%YGqy;a ze!!(f7gcgnUN`X3)T^H*%$qxcP+>2bVPW5+fEF>`busG(GTt|GWD&ZUK9fL{#?5e! zeVT=ShRKWhk83k~6qLu`Dc6F;I{hg=S-REOC^(pJo`8pCu83GW*-kTjvfk-;38{S` z4ap}`ArmsDdC%UNagSc8?g~*Q+4bwEGwfuN|F-4kg^RG0J=r3!Tzkv8pCZ}wZ-BRF z33Q^DC<-6%>|=v^X}jZbLB*_X^vj-6uZqOe1zYS31G?3~mpk{6#=Wbu(F?8tBu-w- z_pY*PfmDS%fLakO-4fke66vIKVYQ4M{I+!$ofbMg9T|*0ij@Voy2D9;e|d4y8sdUy zU46zCLWE>dDO~6hMv}m#1NMc+bX3k{(a-5RbAs~9xbA%{8c!;RNwz^F)7dZg9@&r4 z2Mhnp6D&AYYiZx!vHSZZo1F@qLua4zGs!F$>!nFEwd>bu8uhYUaQmYiMc9&nVOFTb z2gu%Zm&4oY@+DV*9XvnR3X5+{`Oh`D5j#r&>6(4RSzPmA(V9&Cp8UAqzcQhZCqFvN zfaI=CI7EKPwm7{Z-*%W4!iDDigWYA^Sa<=|aGh0$^J%-i;tJmzMaJk0b$B0C?$cz* zrm4YAYf0)m+GgDpE2shB>X`MnQ{J8<9E{I--a0jS;LEAODX;MR4*$3De?9N30K&Hq zU*(tg4>3eHz0CjR!GRS8(}M#YP;&zwZ6NU#NVt~&N(q^rc*no#y$YA@k35sjRHD!z ztA>MCK=EX!6bxp+EPi1@zWLW%J>`{_U%Voie5wPEcpHMX#~^AYQNJ-y^Oa3Pb5ciz zyyfVN*}%Svy6oP9Zgxcf7!^INp?xgZCNQ;B6pU?va)IXc5OGljkfQqz25ZLyIyCpd z!+heP2rt1!`^ZJogEr|ZGV=0}UTUwEYMm_l;$IH?MQC%<7BcofSytP~aQ=Kv;Ks4a zo$Nb+pEP$~&x_pc(7a9Y0P&OL#R(7(c~MA$9U1SrTXqb8q@g|cz}tGM9Zl;2 z-Pg5Sj#h)sZ>^TXZNj*>x^Ya7ZnjGcqufiHy*#UUrdEdCWmX=zJJ=b6_Kp9 zJ>#ylAdH|KP*S4~!cX)y)veJPPE5?VYW2P3(}qAfLV4sk2;J$^5y!RZ z(=XK@Cy?q0XPv3`EA5EZX&a%NY3@&He0O=ay>C7vA(QAET`g~uY_@THQRCys7fJ}a zCDpG)TPFmorcqR6mbkMbP?D1T@5!@4Tf=UP=o_z|^-gGR!?N(6ZD?j2rUpI;W5FIhH#65?J=M@}cN~>|pG4JL4RH z8@^U2;<56{(JE%TQo@eFR1`@~f7ll?e6+>FH3tyRsdZR6ymb=e@t>@H6#{@C?#Yx2 z9*pS>tJ*YT1534JhbQ=^2+bXC);c*DZfx<(OLn-=m4B3<)QPs%QgDKS#tNfbq&LG1 zW9t>D7EJp5ot~=gOavK8iqs}>v5J%&InBkacvBzJVqacR;C8_W(hwlIGP+-ot{FaL z1N>Th4{v14e%-aOGub3U1>I$zX`374-6C**%F${oikQnV!DguOzMtmmb6xNPnNkC2 z6*U~;A@X>-;4u^o)xki4`j;r(po7)EhIZN$w6p8ER+0p<9a(s(_iPF2IETufb}F%{ zk~P_jP{3@(LY~$~iGVS87hAI^PF*X0RhX z*R~8E*Cs@VfBntUGaSb=6hcuF%TAAVzNz5K^)eN>@gN_{aKbZjXz9E}OpkG9Kb@F1 z22`UTOI(+HBr;u%w0P{bo`I&I)-8-C>GZV|p|wR{qw7Oc2F=`hgL^Z%KtrnuwIO3Q zA%bcriPW@$T*3nH1jeXaFKbQeQ+xGaq1~SY9uu^c^ywwmx&jPzvDL)$q*H+DpdM>$gyyOdQT$kXin8l@C&$0{sxE z=7`U=0=4IFGWTFx?0Hr}|9aezO>&bk*}Xf6=~-Wx^4tz-E$z?rsK(`=K}Cu{U*2sy zoEGpT$u@XlMdH#tLhK@_cba=X`<`~Y4(&jG98DPEOfZb>X<1F3Z25BhR;_K{8MMd$ zOor&{l!9c{KpQpzR_gok0{6Yh|L(`pC@jIAdl*6L=PNA_#e)#ckNx7hlN_zXEy zuzAJ69pU7xEc5q{*iO+&X1b$p$k)pFE^`K)ufuK%5f@)Y8<@Y@STKuFZt8#OpgaN; z2qaBsC_pf-MYyi$8}tpc;1x@p+YJ+qm9%oM$j~UomzD8-O^?wZoZkYT8;d%??ekNq z#^QPBaKgRrcxCt-e;S_5$Z(u8oJuX}Qm+>Za$<*~H9cKm{Ez&kYU`PCd^{530%Ofyh!M=_9NfEbgF zCaEbeV=Q62GAUme=uoPC;N9jLlGFCX3XS~4#5^(F(`b`~bVR6}W9P^ZP5)x;!@Hvh zVWlBUa%mCv`@Jx+B#Yjd`un70s$j@K7Z-GanKU^fpH@nSEU$Sl5W^vK863F;g_Ca8 z=bSd5v9IWhb^PS>HBEh5Bv7#SF_lY{<@pf~)-e9aoeBR~4}h&AIbz(m833xUaA%1Z z!#^4`W&d&G>lMm4lf^hv{D=|1vcL(9h7q+@9rn6+JT&r98Bo6p&Bbh4NrmJ5B1UzE zA^Kyet_oc1-{Vh%?BNq$+z}5Z!dYa@;c2%A_eLNvmaj z{gRAc#|h#lLDbnyAL1j*p8z6|*tn2Q++S)*j>smSF)CdDgzTCi^)*As_Lmx?rVKXi zmby46!|7DHa12HdewA#g6G=$R!_3BCY6TBm;Wr-V0~OeBfxG!wymfbT(D7ESuJQeE z^m+4fTJz#)#T|b~!DX^(DMZ;pG9zc{D@W5zbMa-CI-^fSn`}1ynAB36sjWqSLR+=* zCI(k>VYgISDJpqz{-`#N1UN}XpLPoMQwIV&GB`)v1LDED@ml@G)yC;rYS-)FkO z`tkxbLh{1?jQE^Fsgd1%dExm$d8Z%WaBg=SB2y|7{pIpCS-~Z8>s3D>maD?O0o=Oi zW#$V^TD!|Nl=&PmeQ!aOp(r4tuPJwaJ2AyiP&D|C;pnhHW(C@BhG4`e8xOib$(HbB?qx?54pAg@aCIP-LWbxa~RauCqs1ueh{VS9|P_sLg}##YntbeMLd&m72brOXXsq4%`~jW zSm)zBcRnl6jF=|cG;(hMyw!^V*TdR2s*Au;F-_=qt?iw^*czUEk_@AM35s0v-Y6P} zw8(9G-fT8>ep>g}yk+ITbp~{o6`G%-jH*U^zc7m=yL!Q(m}>X)EanfRb)K*YC&v)1Fhrt|pR|DI@X&t*Eb~UxtF$c`w24qY9f= z6T|+eh4y18*u65)^o(+hciDs8#|>?IlpK?W`Z+ERH2rQd2GB^to~->s_Xbio%ea>6 zQ}@F|;@i?h)mUwSF07=%AW~wPJu&LSrlajVqwk@CD@)@x+w4=@kGe2E>OxWN?r{52 z*fF?7;ZitSeub7v*O(#pIOd#H;k#4PJM5V87~`j~%s4GSxeOYXS<}8FG+Hz2LjKa_ z7&X7JtM^m|<=ngnN<&q+cR1Omuymfgk;GmLW*@euy)=l_8I*N^o1SPHqjr3aufLoe zaNMmA+vu8>&zD|G+IVyH_s$$QxqgPrGm$(?58l^)^)R_g}bW&?DQBS zbEfr}N2GX0R}O9AIL|Lwanf@`#h3KKutq%7Q1ILdxH|7O2aq%L=tAwKgc1|_gsawa z=R~tv%2{zQct(XC}_BqRZVW8nMq||nWxrcs0{p*on8s8Kw zTakLssvu7P0);}$_vOj+CYC2BXwZ}=XE12Q_uXtW#*7uk9u~#c$S+Hb$(OxT#@_qu(D>q) z^szD08d!^{4*jIQLKoz|q%~tKlUUWeL1TgM`bll{zUR?Qkntg-LfdI&gG_6g-n z&!LhMGL%NTAJSj|t5i!->b{VKKhq`*C z%K2(~Zq3|()`f_{v{_*S#*JPoDUENwW(5+{Dkg=o|9@zgZg*5uY2)j6t(cpIiWb=mc- z0RC_A|AUYJ1Zw(W{9nXYc!<81fxq_h{u};T|Bv{ePhAdwuBthY9md45LmI~uwQPH2 zs8s4gbtkehS@g#J>|NeT)#ib(ySe#ODs>?#ER&tkcGovaZlM;IAlmpTb@y-RDx4Xi z@oeHM@U7jjWkEPl@qsSjs6`<*K6;3Hu1eQaL_Ote%3KYJVf7lUmmHk!18I zi_T>Au4}S0xfsuhPwA&WsNcBwyMtRX0m9zi4X0ISIMG`%c;jC$wdTRZxLm0cFvI3> z;-~pMvp10#nQwOzrUq9p!#$6qSPG7x*F3hDgo{`;Oga4N(8o?-`n2J;Y2*C+q!8^h z(XTW!mcn8TUhYw{d5LmV=nns()|fq0Es*?h;&9I5Gk=O1PaIb`kjw9~-96?_E%(zk zQl*<0rEmK4VlS#Q6NYv{X{jOEPC0Zf182C?WZhGZJhG(mb2S)!#@a+Iru;RDSQ5YACi@+F4vqiwkWT*>2JC5}YL&}j;S<}Z)w;pnI=)Wog=^m&p8WO=RTVSNXw|;S+5q>a)M~Xa&$aK; z_r3OU2FbEwbl2dD#INZ`X318Kg&COTgR!%i7|NrwdtqNx{5hJm_8wV@IC}WT(!oOL zZ2p*|Y+tT2{j_{VQ~1l7(uy%9v1x4iNpp{O<-FPL?Q>hUXr3n-gIUCx4^z=S@J-!08& zw~2h-4PI+{!CN2N-2|Ca{eG(8l1ShS}P7mN*}*MXs>_rKV8ZW?Ru>!o`botdy7UtJ|8W?@Gjb$3}N7SxFx z$UT&tkF8p>v-x!fKnV?Caw)S_w3o2}LW^6o?Pv_vexY*FL+*r2&-V^~bY@8a`$rr< z6kYc5&9Shl=l7sc#Nxq^Qrt)y|3->yZhyrpVU4Ow3)EpdkCRTk+g#FLYe)2zm1ZT6 zq2iVJ3=S)eUh9=s z<^Q1aOI2RhGqVaG>hyf!^mAfB*(?3*K|!LGwe9=!S=FSk%P~CY3MJ zH%2By2CYHfHQc!=72b84SkZi~JamPYkEZa#F3@Lhq3V5Ixm5S}EZ3=1I8middg&SY#dgGG!uGlS%zc}r*?n9^%hnY)9T?#b!N|pC zCap>lumXw*N@(fb@R_;I!f|&Emj=uBHT^^LtT~aEn5pAr*uNPp>i;5Cl3mZZ3x`m7 zecAzM#-9qvd_bCEWKA8Zr}GJ>?Dpd>3Mt~2UF}QPu%k`l?@yF>!^)jZ6YnJQ;ho|= zkt0gwUd;PZ8dSm9C^u5fReX=`iv(kblQ2S<2V*h}+4cQA9zu1a_*-vBpC%JuBHVi? z9P#%dnWInR%Nu>C9osFCHi&Ur(&sO8SkLr$tes4=JVT^qxJ>ZF1pZvWH`R%5)-d=P zW9OD}hlA2dAY$hxG0y24|G#B$rmc9k!W!~mRb=*bh0XMjbHr%X>qB)T_~ZsjW}Rz( zN1g8thTv{Upbxbw->)N87g1DDe$&)o?P=0++<3_Zb*n%v5~vT_j<-n{gQv5PtVs8# zwcdQ~7Pu&kz08V)TDVdZ+xEx_Zl$IEyYDn>Cq97zWS1in-eYcQ*=XwJnO^*LC^u#* z%zq4Uh%S3?oS#EV>Gj_`Ne>GIKC{SZ`N(jc9JwtRFCchC*~2 zfez#gpq&U$oyyhbFB=gn%olGkr@8*{wT;~9*?HC1grjqE1Cgm#>m}y-h)$ry;fMHt z%!h(%jfRmi>Lwz}@`VWlYMBe3(#mqBwB}=M!u3ihejjT-)`0i5$pq0tuyFWjt zH7FE>j5%3LDM=1(9VdQ~&AL#AmO8CN=YABBFsS_ze?y6mk{Q}42))Q3Y$hY#T8!qv zZu^m;_&algDKS6eLHoF+@fC8)cB@H30TBeb(PTqtqV8tr==Kg$tmABSOVCd{%4{8~ z_;m!4eGpKk$x-b>$udGTbeuivipIo0_Whlb_4ulAFqcx(xY~a=4!EirDbnw|J zgPKD%2RP}sNL^QRpewg%@x*$r=D_6g_-{riFbhSMa z94g*?>(+CVw+>yVu=y* z>-BGmlTw;IDYuj;Y#3u^lU}9>enmV~ROzON1b))VQ1iLT;X^q7+A#||7QXV+4y#n>t%0fl_5(R){sHQwtAJPvv(y)9Qm;{X80)6__w%bR@UHP z?H;;4oV=J@%06qC`bZOi-~YtqrjtglE*(T1W4ZCS48Uss-9-3Q!U5X$^#$sktXrNFXOXEQO9sFrUruS~A;DZA_GEL(% zWLl-fqj!i*sf`r&xiqy%FYrg9v!=uG)7{=j>hHD=D*!`n>$p+ihWm9)cXj+yiO+4f zbxfzQi8VlU^P#@wmLVN4$|^o$_UJ1%NI1@2F6lUTzZH-7`cmu^>eue^ zJXf~*m&vm1*70_SG&;E_^On{%o_X$U_&ReJC(S>;yxX<)=zuxJg3XF7ZyB#nEdJ9x z`m$u6r(d+tGyX>WCCNKa&~4TTaMpXc={NOo?bWIAP;?iE&K2*h zMGC%unsq$d;so9SzRTEL8sCa+>tSWvPTt|&Jju4#vev2^A{6Ea7wM`Bd#I!r4;58Y zG{hikh=b@H!8kX0+Od_%DcK0PmzzeW>4^~Q=m{^n9gn0%Y0K^s7|{pRzNjqi24Fn2=x*u0>=D%}+%ryqYCWsIHdJPON8=BlIY=2^v@ancS;S805(ZlJD%0)f;VvXu(?rp=)` z%}ezm{yB>FkbDRj)TGX2fMZXepcDxo?n>C2M%xh zee*lSjY#VvzC2^1tUbDaAhmw9n=fF^YQ0aN=)aG+Oz$|jb^Wyth&=`xd;&Y@Z7{htQ+1lFk;M_cA zjVoHqj+l)qwVB<1bNYkQ=Zemw7qrquAKGmW-$a@{i5HB0tUe&^AVX1p)_JA4l`VS} zA9JbJ%)qSnupgO)NTZC%RMjU9*+eX^a+OXNO^?YG`=Lo~f(-%oPstFZcAi;7^)jAj z?x6YSFSWPTvW8*5UDIUf1^rEZ3j}Z6h3bB6Yw6mVTAY-TmONyW9k6CcKP(k8VabVt z_E)d7XPXx71A^Uk_W8-PFIq7r0RDLYH}@BtKMBepptOvcP~EBIYI@cDj&rb#Q!Ag? z&Bxvmip$=?wM49>d%~@r?5SiuSrPvnpL}-^q8{}XId){GHK_%@XKvaN#Y?-z<|pHa z!;kT@qZjG8NF}$ zng8DPGQB_5QhvPN$F`I&)BB|@<%{(GpjV#tp~g#@cYsnZJsTM>-ytr0ndc#|KOoMA zXU)AgiT7M2gp*0YKS|>t91rKN31rh`J0dtEVn@VdB*1GY+$LV@!Wm4)g89q4a2yLU zEA>Mf8{A(^#?tt)ikTf#J$BSs)6a5q)T-~B4;_fdqBE$ZoNaM2m~$)2(CpJgbDK3U zLHzgEuVh{KM; z`r@oTT)c@1_oXW!2n>Qwx!Y*{(DW<%(X5zhYh$Rc(buEOtM-~X-?`w23X$cF3+&%q zbPaqrCN}YuW|6tD$jg10YXE#9fIVKjX)cftG5M#*S;qKFw2VK-mC0Z22GuelInU{# zc05QwjN3 zQJs45bHGNw8$h&wTZo;>UNvZR_Q3CH+=gJJxMKe_TUo(b>l!$hn2+YDMZzZXlcf)V zjyZpwWso2D6ocTxtgGkQE%@u@jz8EE*l8+((Nqe5pzCn?GQ}9|Kbqr-L?Yrz<8UHz z!;f6g*FU6HM+DxDOmfyU||eM2T`<#ijl{s@xgjH!D>Y9PImp< zY)t*>dIaxss%rY3UEiBTqep*6!tNE0Vdl2*5!q8yE&B?2*NeBe@pK@f*@L zG_Dl}9kb?cE?gHgRLjbG#U-L{2E!dftdn3~2jcqnG zr0t_iKtM5hQ)j_-nc}m=(;vF-I70Gogf9=l@K`?MMbSc0u5XPnkt$!XQ{_{&4~^000Qp>$SX$q|d!nxD33d`-uG zRH5bO6c0-7_Bu^3iMeC7#1^Z& za6HSrGeaNkizhrcI|erm4Q_ukZApo>t3>FJ9VpE)D04rweKzwpr+XkbIEAe1Pf0ic}7TPD}@5IyMJMO!k)!td1p`Z;)Q1 zyB0LWFC%H`D|EWKWR-dWT$vYc=#FkCjiEiRm$~L?WW3G&74>Q$D7sX6{9@#R6@}Vc zjGXBNM=ya%j`%#!n^}-(c4nFG!+6djwc7;uAw5RhaVqig8-Y%C&AY`D9}Mt@ouoPW z@!KPHu@&-9ai{qmNxfdjT>bzYK<8;6BHP04bgKeQq3uu53?PK3y;bM z?2$1ikG^}}<5uL+B}<(=8V4=C`3`Y(6v7~_Z`F^YxJA)n=j0#tesU9Trd|1HZldzk zHkeTBDQPP#fH@N}GuJdXIQS0&KQ&ok7mISal&h%Pk}4)SRQF3@0PkMlS$T!HY9V@G z!JcPf`|@!|>H>+cBN$-5{%QRc>|(@Ty?(%3jLd8$UZye0E@Y3;a?zjFJIN8imi-WA{~NfvnDzzKKN`hRdlazPg}SA)z4AW+Fp+n$s-We@gRE)GK)hDx);cy8Hm%kl?%S%T<((C99A0BbSn2}982eHvg z+znRpHeVTN#`>aYK{)Eb-zM4H30~U%2X!?b4&kaV!&Nw1jm-^>7tsns6AmeMkyp${ zqY1`7rvpnlq4|_WuCXHiEg=N#ZuSFz>#C47)~UhbS05#hr6eK_qK4|WkO042IRpN) z#QpYg8uXOMf1$dR`+g4Jz49N8~ptBw~eY^Vl6G)$gwLoTs7FT zazT&Y0lO5ZV{$Y6`Q3ciwL@3tyTzyb^Iy-eyYN0Z?7xrLq4$!sJ)r1Kz1LK_@1C|; zDR2KumeQDZFmZoZyJ2RKh`r&eFU;><-;7jPIM$tLPue8NW1gZTP71vM!&v^pw027# zhPc6EvGea}ZnKM9D!$x4>0&k(TkTh)sJxmM#!m40&%^7MwVFq_GODsVd<3^(<{?HZ)=OL>1D24 zd88el?CJu64MuN2-MTKamnq7y*m>aCzPfKursrhWb06lIw(L$9F#U(4x3IPQQx^uf zsW0*&oVWps;Xw4M386=`x5Ql%%5;3 zF_EHAA0p0qmM!19Wp002{(6aPq1dO9F`&uzMALDeJe4{?H6!X+VKqkjh7(uiTO7!W zjJ$>Em34&uSiLdPUi5-8^wXrYF|5^wx?6AC1*A6i8GZ3rZR;Zp==f^gEIPBV<5OzD zM}*@yyUla!?c{rxJsAyUT`e^*je}?9r+?=gi&8C6bo-Ds5R2yVH#i|${^IV>+`sY{ zx_kf9_YK={l*Qjg=5Wz{dGH^rDvGzv7$gUME)6bv@<9>x8?*En>)~6@1kt5l)hqGJ zBZJRgIKm2*WY^1o$K?~n`#4~J6~%$_^$m#3VCh=q_|&c9{5ijYP1y0y z5R&xQHxl5=Ka^r-@{jB`#Ge|KbrLMqVqCFw7C-v>sT)W1B_s&Pi8qaXHEhZJwzk0I zZ<{|(Xcw@E*Vo+u8!_@8>D6nV9;tPZr!%AjFqBAGcHwM zvco_ANZ$p^)`G!?Bl`-!zkW!onM`uo9T;87l~XjY0#Txo@JBU0kzEkdnev-Da!D%k zkPpe9W}{R?a%EH#%1|AYQO&q(<&sIZ$9o2-6CGC3u1x}9FJp#i@$aJRZhD@^#+Rr5 zLGLZ*{R;2BGa_zrI1!fd_ttcclc+JJfNswI!naZBZ)fYVV78@$ z426geTvB8JhihU5HNcbyR-yF4!KHDQkuGB7lt;;??c5SV|(o3o9gk;-j(| z%moz#*OhAF8IIqO8z0q!r2P0#d&MEZ`T=tR9IS0e_vwc2tk1*4Znu>M7k)nRhWq&)zQV;_VCk&d+I~-y1@%86EDSsLO6Dty@ zw_^A({&{O5o{q8&#@7pTFITtfLNo=*BZ@LEV<%~P)Gk){P|aC^>cc`cI0gk{d9bm# z3x>X66a$MYi>MZe>u zs_Zr(BY=Z(4dar8-SK5cM<>0TZR(-d|Hs<9z(-YGd;AFm2+tE0HCAk+Mh!lR5G4gQ z2PQI86GQ>U2Z}|}>#Md-1YZ!Fi7*`pXs@>RskOD*Yin(9#h5CDXF#i>wmz#ODx5J^ zP%1B#{J+1o&txW{-h2Q4|9;vq=bZgmd+oK>UVE*z*S5L03ECPP-mb{&g;&sAEcvW} z*rQp z1BvPsM+=_|p8dVtOcD>2;?460edao&+D58i$(-1W%Y{nmk7C^SV}KDe<)kK57wr<0 zUNh$u#JyzBTA!!n*giY?l-AARA4i8X3%e~zw%&gc+04HRI(V*+0;2|ruD&k#(}S<$ z_0lW(?Y8m{Q-J$=GSViUJjKtX;yy)|DxxYYbWWzC@KqYzL>(ceG;=Do&`fN2UgAie z2nJT|q-uBdLbtoF1R6i=te@*FK_QtrdaK4gJ!`b9h8NcOdp_Oor}C?Nmj4mu9el49 zW#Rh;)q>Z5%eF746!_=P^0tuOvMZi)FQb8$0c}*dA&E6J^}F&G9(2}dl58_IJlL5J z_ImtKlz(9#R)y+5+@c(leooBoGdM_VlTUdG-J=^#`Nhb!VNE+fBYy=GtZ-2;aXow4 z`jjV$TcJOk9>#=!2xc)t@?fT?)jXLzQnf5G?C?@khw@K3mzwhrOUzW3n5Xn*^n9@$x+d7ZIcf-Jms&o^TkgUC_ zf}Z7Kp;@=RX6OItr@^7J02mhbNRqRS40M>ZcwHceN>JH3^-2uhS9VUW11Zyj^JHM; zP*@~|uZV%6D0_)fkOz!48cHA%s}sr_#y_2zW&9Q2M?_M-(bSE+7ZX3sr^S&mpwDYA z5+<~)X?Q9xulDE%3mayeaYrk6a=Fq&Ry1uWYkIpdJ$Y->?n3YOC!v|9Pe1n(vQH;~ z<1=u;#cLZrB_S~TpBwr&eLBEvz8!M&TmC5|t?Y@U!Iy)isfC6l&ZUNOMdw9^KNTGg zcf8usn4=%RLh#L)7){CPNwdw%SZdk^(+qY87S`+`hl96k&*x4q`0++chWfpv;%GXt_b2efy{{(VVX^q9Y0btN$y>aYa(cnk#9@z^>4b_S#}KnK?L*Kbt<~YWRymWz(m_8V2~=+j@J= zw*g>%>Uax9*vcnAIlU<4gWuCUo~`26X2%BWzo}&$KKONuLK-kZN8kqhz{R!L8Er|< ze8&+%LVYvsSC`l5kigP)u&L&)0#a4M!k~o9Ff<%@$@Y};8oor+-+?B$NU`@-QuL6{ zDsijkp5CHsib#4(jwdZ^!!kpR2^-Z<{t*ZSzK^A#}&W|?yM|dY;PmBS9#MpZ=;@H>e+L%dVXg2K$JooTn$`m5YoYHbyzl5g3l z-UeM722+n)nrly}#mF)rF)Exmng&B(zRuNlF%1>F4wvszxu@t5NFLyW%`(iA$MA3L z8feSMU6kdp-4G&@#Q#?FdV#8#uWq1Tq#k}lwah^_pqo`{uW1~uQjIFLjkbc@e}PhM z^d@_1Wm{9{S7#52&LqaJ&(oBQriylk=hw3PP1|hFsY~6+@;QZ!#3`p_D~r1H>uy_6 zJaH1~Ive`q*7sXV1RM+g3~9FK z*Lq7|m(>s>g4T?vse9YmW=!_a;+h+Ol7DtxI#HgYQXS*32`>F70u-f>^N0|*83ZJV zrn5TH2WLmnqczBZ{`LvQTvzmK#^f!Dl%LO*{4|8;1qEJW8pgV46HBg_=tI5mUc^KU zNr5W7KOyy0rI7D04U3HV=Kik0^&*poU&jd~LIqLhf?ulZEQDUQg*Meurz;hR=J-$tTt?IhsNhV=4HRu`kMRUP(i^(7c;Ip0nE*h3=ZiOBU?3+zqBs-h9Ik8Iu`zdPX=RI893#f1e6^x(M+lbtC zD6i_{TD-|{@fira#UeES96QVWp^rIxi!2Y*{LXXB{AvDqnWJnejtFXHEYMLcyHC(& zu@NW?e$B7&M0HTb>giA=C*rXKl`c2)mPuM`C!z_v#im>+d4sw_HhD#CUOEmixOM*- zKB0=JvdSI^mBn`SD}Vsvn-pQjLGdlY@@c$v5nsfouhFYt@XD;s?ZJPJ5YTki@n^$Z z%e}&u*1B%!{lobnWXHcCQj`_q3q&$qJFfF|?Q^{RLXC}4If}W$Kj+FqZMSf3UsspD z!|aH`yO}KiwbMn{w(AWZ;I8vvsl#9?!`2&2yWg^2;D~>_fm0@Mt`ImnU1k19L_+Ks z(^XC@j434)!XxvIEI!#=ywi~Ylw%}gqs(&a zpeAIvppPrs9N1!ZI&&8Cv(pUn*?ziuzJD7%H_~(EI%KV6o6vARXt>>I1(8-bcc^5_ z43dyG3~)Jsp8-XF%VJ8nr82+SzG`-&njNkIW%UiQoUxhF6ieaUv@Gl>ab|FYJ~H#^ zysNyC1aqm2YU-+kc)!|IU*F7=u&Cx41Jq>gX=_5u+%4s0!R1H}xx@(Uh6JH~i;xk! zSD@zuZrw2#md~gwybwJPio@+B($&#dBuq)YVm!Qs|4mgh(mC?gS-evHDG7E?6(PH8 zFY3U%xDdC_^Sl-}vQ!YViZ``J0+3E;M76hGSc%^1%YD#%l>NGyT}SgUe#ST}YuFZI zP*Op%mv{pniZ;F93sv@fgd)vSnR)?rmy2|69V5evD>}J$T;-fM&m{I-}lOqaATW~BK znGEd6k%YFbVq1bs&Jsr0-xb7%bzgtr2X_rcq73cCs8pe&CiXK!=_bcdPJSXeB{rQH zl^}YrgSk21zaX;-V~mqOGEcYO)pN8boWlTSZ-uPS24v1R-BNy`$)Dh3Za9cFg9oqq zVyc=*G5KLOKNq8XN6+RqOr^OBHP_oP;P{#&XLf{_lVcTNc0^tEZg0^LhQ``t%wr2w z=5l-Uk|a!VF!>nqqD=7Fyb96dlTiXu7BoMAWCpBC+-a zeI|=e5Zmp+?xXc{<5CFK;^1B*3bd#684r$QsRkqe8DLc$G5q7;VrEQS_&u|5Y36X7 z(r4y8{`f62(mTs`Jg4DZe^%0?pMY zKh7lhru2+rqs&+neY-?mI!}sNV}(Jab35emH0%UxFo@B$XlR)a*eynz+Qf;c89~oL z>w>%emb(P!ojs@S2*G*Hhrp@*RB$~3in0gh&PrO~YiQZ*rr%}*Umu~}XbK}I%OQI0 zzgSXzc$w*}@Nav&jSjc3Dv1w}#|f>Hy!dRp#9q*FThqqk2m5*nfu`xys*FF<;<2QV zeoX;Z(nO0TBU$;1{Ygks|E&7tE_Bi0y^R{|su7xNpU+!8!;)&9VHeHk_)G5m<&xeAfSmf+m$bS3M&*A*eAjjhGWio*ctYK*+iFU*T) z_LW#7pDbzzNxhgo(HFBansH{`p}tK8O-=&jk}Emyv(4ZvQ=|Q9zzKQcTbuTS)r=XZ6GynFS~t#8$ZP%-DEyZ5X~U6Z z6VF-A`0Hmg)!+SKAn?0=gFLRoLW}qNbOb89dt3qJ4CaiM@i&pIK}vzoHL~BKz`a3c!@c5>bJzzk8Qg1`*~s# z{S?s;IUs6vOgl|f23`KBSI7F&9$!HEYr(sFrG^-%Zzuka zO>C`hLc=TQZ(qSSWTWPu$C|p-d4!e`rhPY*W#I;!`J^M~sqy9u8l9RfU(m6s$?^q} zTAEvQoG++Gz998SzEp3)2I@z~n9}noKaHGfxqo=_{}y5JjWZea4>B??zDq@i-UL8o z8Dh8!e47Hw&e6yRz(Xs^i$fR&5K#5Bz5GDXCoTYqFnHl^YEBB)vh{I!95g`tM$P4Ub>sC^~f_L%lt~Fx|T#^MPo{=+d>)YIYqbeNf|Qnzhv14(l09P2e#^G1``A7C6Db>Q6`=-X@(+~coHl@J?l!1#bCX`Jg+e^rvE+q;-_wu^oyQ0IN zBGL_O+k@%?X*%~S+5_ybJwSt}B{TD%d~xvjEjvXq#>Dv)v!jktownKdXuU1r`f7~1 zT!J9GKR_Q;eJKP>^XosR`kkAs{^Gp)+%Lzp#)e}Ict2B!6v@(K^9v2vV_j>ZwSvq= zu8W97{J+QgxoZC&+SfEIJ6PC`-?CNMNDn@V0zDYPl-{eT1FniQyU`USUkW5gX7_}D z#~B*GgMU3GgYl_u@$B+PyNFkdOCl`etg@ccB$9fLSIO8GdfWkuzKn~=zwfNBIl4^x{7fMU~Z zKz&JF`oi)P%|j#Vo=hy|t65{)Ida9#3_4%6r8UpURxCy0UPfiZ`!Dv1!VN~YaWb-b zhLlM8i5S_AVr3dxz)e;%0V(G+=kEFmT>JS6M4>$hW6~vOoAOL-ukq=NOl%*;Ku-0$ z@OC?#Z0n8yX}*CSj7w~N;JM+&(xzwjR#CospViFW*Dkqj)1 z{y3ofB6HfZC>ZPa4j8*jJiM4_^^dU_L04yC;`2MtHoF&XFS>{CnWS+pn5iRB!Ztch z^kT%^Z23LZUsN2;z-UTKQDxheL_0n2S`Ch2I11P8c*x{D%YKzQ&dMiLTrhrXiE=_{ zL~*snGKDRzqhmkpQB9V8sUlXr#!LT!kKOHHz#TkZt15Q#QFbuB`k}qjy$M0;5TR&% zX@|>GW&A)eL8X?#Q4og{GO4(0LpxPX zo}FreXy6O%R2Qk)->BJ9G`pBgFOpIy4%}OVb?QgXI)%k~b;n%8M=hr4w!O_!tfP*m zK7yviEO9Z~E%4E+Y%HBM>JngtQKTzb3?PZ#@8DJ4F;Y$n5$Y@?W!Y_*F|;5hq{bPe$U=xQ>g#OC zkG5Yo$r$xDe#X+{v@bf5!dFX<C_qAhF|&Q71yXG)s}ALSqy$D$QS~bs3{z12aYy zN2}{g=bf0DK}Dx88KHOCq3$0iNnv)VpL~U?)zcZ|NDAi-GFVKZ?9hIMiXt=AV_#&3 z`eB55eDlqL*e1?_Lu>PFPe0%jwx|D8iCdgU{1TcoxI+8WA=ziypNfG<_NVV4qnSol zO+@_W;O$d|1jK**;BG=1b_%UeeZapIr<$DgslPQ`Q-It;Xd${xZUqgma#qKmo*56# zg>d|Pd(*P<0NsyaW$r>SnZ0RLFyAidtHsiE4di1?{T4sMgYbJ9nQm4aE8n1vv($$5 zXBHgt^XXzWZ1)w+b7{2teQ(jH0Gublv(h^gbM~o_fA23-cd{!ZWtunBteLo3J%Xo7 z^(o&F_35~7hNx;FvHi_T%tD!ZTL_t-qDGKYpB{yT*&a04bkWC6w8soAg*HXp!TG1~ zoE01U3fj={RKtQm0U4e)F;x zl=-TyECrL(J#{^&+omXnZW0bS1#O6N)AdUEMIs>La<_?jhz#;4c1FC&R>jqw!~VKier6;M5(lxZK=3lD1c^f_8(u$zrG^Jf0FecvPJ*zr zbG?oK-2*@T%Ofu($TH4)IP*Rc_9{- z_kTKe+b!HR!17AGs&JS(Iu9?+0X&pj&pBw9nFw8G+e@8ZM3-SVvwz8%+twPQ)X0@O z=&@+wu2Va?`dW4%bId2&8ZH*{FjA7)?|@k9KxwN9*^+oe#M@j}1ilMoZ~oiB!gl3{ zw3pkiY#&#G?c_Wl2w{AjD$LtIO|Zy6=-T`NZH^^^=~A^gu1ElO{1$$RrK&5*2n{g= zA3e0E(*owDmotdkRDZu|7nD#+>p~*;SyNj8SJ=ea&QLSHgT`&6`4?uJv|0L_c}8mE zVlh-%JrN(N(~J!2yxKNMAV|=ekw9jr%5}y6bm1Pry~G+?O7&6~FHnkRyu> z?zlOW<6ZFYa~JR*!e_zHq()L#aWMe&PRdnu4PU2|yl4PwY#7*iZq zEY**61f{7OvPW+B?p#in)O+4*K8ueAK$IUG&I%7^SW6Z!~DjfjLZ{|9LSK2tV?~PjM10&6p9z=U1|3CA za&mdca0fqoVZ>W-f0Y*CIr~KKj*(ok)VqVk6)1u=lBhj}+qb)f+uClzt&u9qI8(}& zZCof6rIW{hD&K+9&)a!$1-8T=4EsIK`t=sb-bvpa7ecRmP!H*$jhYkehn;ol^7WJt z%0>(HS00DGnG7OjINbAL@D(?p%v9daS{(L&8%=a8iZa(3oXL95*fUb0!+8&}WX-9J z-+5Mris;aT#$VaCy}g(;)@b>XK{8(uT>3UGFp%xNd0i5=tAxR#lu=N(?66>v`8^-l1-mKWzhwLV*wtO6c88 zfQ*#wZL-}k6Z8l748hn~d2CUM%cWh+8@@GCz1F)!Hm67-XKhyFLMJ;apX;kpo4th! zpbr&#!`Ctn%rk)v-^+XgW0?G5EQ+Hk$b3x8;eM0oqHrJ>22ib`nM^ws!pzzhL9>`I z*`48EzmA&p&I^j5Dew*Ej6%i*=i&%s=9nZA`0%*0x*apg=FFm4ze6b-)_>c&bt|Y2R^HI1FUo^q83D4oR(BPvRF*s>x0DJrzEcb0-!RW&$TwX0 z`5{(M)P>+;L>9-N1ui0}OM6jX478WByyMVa`3>c3EOyncJ*9=%5ggzeLhJl*U2jvP z2GUjUj%J?!atDFINIRH*q*jWOEEv>t?TDC5f)}+HBVSDBTJdq$`s%m%G}fv=OK;#$ zmWCG4w*Lf0JA)suN8ui=U-vY0lfL3#=ikj@%hDTNp=7u^LtorY?4mb^*QIoMadBgC zbRe1*#16Zvq3oO&pJ8BHWnCSU$^wYzrwSn~VXv!^UV(o#&N9YXo_vi_ zGP!&T7R5}ARn(_0E0d_2q#2MxA&Vy(p3X=_BgwJlwF-AMLsx0X2{umd?*=TpviP@? z_Akhdie>Rl9P%1lG?>fISkTX+2)7yE!WrPP9E>y_2G;VXR9m^EPR#JHF9lzLZ`h z_+%npb*MDTNKE%&wuHq=p>)KwJU$4Pv7=9p->MH$UhEX)Kc%Lo@?joiwJ)iBJ($nC zx>R|2tIQVozK+_;C}+~}=AiC6op?pQTb39)=ooJB#AY&wvDBz?ivwN7=Ud7r1rM{r z#xM(RjdDrmBz1QzO;@kHWxWAs3<^qM~g)7y0r1R2?? ztqO17)Z1p>QgJ9#^b~7_o1zg+D4-oHME{w$8O0ijwx~W70uN50Kz4l+c^%0lcgD-Q zWQHRT@l!2B^-rgXJ6TG3umcvF38X>CS4>ZtOp@4549OQqYYu){ugHciL5zRJ+W*Mt zxKeQbw}df9b(e$xtAc-ZGwCYE@Y(W_{J&j)$JzRe89KZ6Nq5{xs7!Wnc>?qSA$70C z*J6C+5e`MN7TsUE23U0elDFu7s}gWe2i$PcJ>C}GY)!nbVKh)laEW4dwBp{#xU%x# zi`Lsxnhn?6;p%&*{HrXNQ^yf-r_Pi1 znjZEPvoSY@j3)l8qe7lZ7L+%GKM;JEHSqVQF_dY(;3Oyv5*Br64uTu`QeS;*={&Z$ z$N^p04wst-Y*4T=YLn3XZUgC-m^d;LYT}+bo{5|OT?n_mmN&d>>UkwXL@(JAzZXq8 zG&R49#9$-*H#Wj6sGqYlW$BrZkMVJNw~uO>)Jqo0z9pxoWKLuCz&efUzCHfB3NgC8 z&-XF|Ux-i{)m($Yv?FaZJxZJD+R|GIkI`PX78mZ8y7VZvvfG2H;5_uFaGPLW&hsxo zmDj9P9EPql9J+pS9Oyd!wj8=Lf3*_6+juO~10(1;#?B4-r1Itwj#R!+=@9r&0lteG zSe;Q%H9cKq;VpU(EM-oihWJC1ugUfn$>Nn6V6T~{m0@#ru7?HE&mBIzw9cS*!^yGW zmo@|A zY>!)*2un|{_HTQyfStLE*|ca(qBP^za|T!0dDyIIwQLjyTtcapg~6B!(j;*fvOnz- zr3VNgSZ~kiwpxl`f)(Q^*sdKhj2y|^U^N^8>=ik>LXd#Rt|mK!wXB65PY2Im!Tob4 zN52J$u-E$>L=YKuIue3Q*bu6Rh4R$hC)K&0c3svU2`8t|Q$hq0KU3cjxh7%B@Fclh zoNTx2<)_iSw@CNVnGyFA`@zA*CtWegH?y8u6QLZncIHtsuO0c2yhZO*%i2-iPzh8Q zC&r$uI9SLDWhoI-ouV{L8X;^eYU|GBWy|9?VJI!(G;h1V!_4J+TyQY4i5!6>T3^(n#UtO-0u1dVagJ zPnOWGMA^qcoQh!gaq?aAzlD=|mtLo&N7)#489!Vv4AGb<`x%{vr5Zp zzr6g77`MyJBoNL^7_Y5V_RiVlme6kOU98=-W9)v>s)NnFc z#hTvf8=o0G3y*?x&iC7D7EW)+;W?#d#~O{21L`8daA9)HpiL`!+n~_pa}vd1ko-%0 z9AC3pcc&V$-VU!zeY@0d&ixtfjb%0ej@nJ{|LuzIih!a`rDVJBz(+IlVnnjgNf`H z{gz+y&K)hx%W>TJOo&Y<^pX!qv*OuXWvpT$|F#O2-y#hZ$b?;;^%Z>V zO}7MB0unD5yh9bNx_ULCj5WtL%XZ3W-XR&G*zHrAIHRULiaYtDCD_h6a392BTByz~ zllzR3zr*r_3i(`aFt@QQ#NbCd7qJytA=H;ypJO(I8AWG?5GaDsy)5S?dK-GfYv6t# z#**WKT-%pnt)jQb{Fb{JTdU8XrTNIZ=16c*u+)&Hh0#pe0^O zNdw5Ia8^FGUP2)z?FsvSQ*P3lA61jX=+)+-8mV_>$4}B#B@j)(13V;%U!gdd4$7 z3u!PnJ#A{r5Dt>u~zN<1YgXE~w0A(L@}hc0zVbLb6j^ zj~nfJ&0^w?KZ&Lc%1xawQt(!zxFhH$^A_KGd?jpZ%)XaA=)G#S|7^1o^TiSu_gr<5# z+bSt$L*wr#E>0mGdH30npN88?Xg~#*QLy@zhF2`8F}b2?W6kzeh4DIL8vKe4WN6tQ ze}a9C3V(O4XngKN{8mZ}36<;L08uwtZ@su7&N}Os;uZfdI@&=>^>;0#p=QQdGxHwL zTnr82X|vAi`hVoqJ9StccDRp~^cJ2(LA7wZLjN|>ZO5Sw{0-kTu3N-W;?7KoE5!{& z{OI_BHJkZd^Olcc+oJ1AR&L9ArY^b8pMo12MT47)q<|~1WscUU?j9E_G*z^mOF%vs~`-bP!Qk)Rv-2{^T>IYs_$ny{-o=*MfTicncJf(n@@ zDPa6UskL7-(1N#F0Vr^fvMgsL37lR!xs3P@Eyw$ie~j-5-TnddB!J##XYqt#b{eWN zd~W2q3!*z*qYIT<#z0_>`52p75>ujA^66fQsjRD8$tK6gO>>Hvw4XWxI4-}*YMRWB zX5qgO6uxDfU8rO=YSd5HV}IQeJU=6EJkL^2<6$i9R*t;46k)syy7Ll$;)^rX1aHBL zyjrMpms#3-<*QWXIoxeiw!O;28Ub3ySO$m1v%~Cf?4;FU6>AN;{%@g%rN9()h&(Y28 z$cQX$WfXYc_1#vZU>4t*E1`+zoA01RW?%lqQjAi^1BeJEM~yXYEb`L4Ur*2J z)znsm4MuLz5gp?~IThowZnoZkXZj3vf8~e2y>B6RaHp#tp?%TKYnB2=8h7`dJ&mBZzXPeaWCgn9{Al4$ z6M2sR>4FA{`a7I1MA1>Lw7_T6${w%+eFD-UAS7r*h0w7qulcJq-7(Z#ipp5^>cNHt z5Icz`l@BTVi;JaktrV2Wibyteb7D}Y?v>|WKk0SV-gZF zY6{#k#Y>Zqi+mI_O6UECWp$KgSH!0XrQ(sARHSCyxV*$S;rs4m>z_Ba=JApZC(*Ri zueyS>GC$)3@=zp_n;=jU?82NUqUf)hpYg}7J4%$!{$W}fr$?aTw)nwysc9GoUWa($ zx;)~=!|p8^S(9K}^$eisegs%Z_8LNqY=&Ke^is+Ld{!VMPPCTbvYeS7BQ>^RJ} zJpnn7ZF}r`C@Z*eUu#4p%FQ9+((|uy(^16aWOneUOMck-tW%+wn#MgCM1Ct)P7j_z zmo?s!m*B`STcYE;*X)?-CjT6!eXOxzXAothf4*hZzpFj-3u_xO_%2dy-%_Mny3g|m zI_XU;r=d1IxaBkxfM@ePJ*gMG`R7JQ=>KA7Gw0^ubJ(C$U}|!eUU01iw}n++VQ86h ztAf0@1tn9;Bj{H&Q#cvGT8F4doeW0*%Ms`{2t$)!Cz&RSJ;cOVjbrx`9>nG8!2{{H z%k*G-oJ0#%;jjkcRjan1YV)KC+Jnz0oS+}7aVIy|4$kp;bj*18{4M6$_`KAOMRor) zudD9))a^+|I@^o#NYd9E@f!+Soxc(2IwM{ub*x|1T(}#IiO`RAg%Kgq4OGvCd~FW?sQMUverIm?OcemucuQY0FnYGq#bbN|W-W?fbbyp*^#j!WJk0V+v})A$wxg zPiT{(!6&!c(h|=7Pt-1q330)gT$SV;EE|S6?zSG#u-0^tOW;C<+Yv^92-fs99L>ad zi7NWgk?HKjNCYx5fTS*f=486)k`z~t&5m)?P-&CH%7aS*$W8Z+4`&8YIOsKr&1{!H zr}ZdWTvov!Mlpq2!N-?l7h);~+uk>;fBP+X%0dI1gkRR4btqLV2qXB(f9Xgov!}!W z=5KASbj^Og-$4bLfwOQ0=eBsZKTq}R@{iba^5pK%sR_lrXrvYAzfI2W{>)<5<9qk# zp7-Y@XLr9(CpDq0NBwTk*tnA~yEFyb-D}_J?);f%*SL4n7NeDI_1cH^dFPaJ-M+%1 zkbg!~1Gld(Z0Mu-(GjvdmSJrYYB^_hoy^a1Ppb=82yi+?>{EkoG_*YNLc@8o!fJ6z zOA_(BqJVUu{3hkFmw1F9gk`XiMM0OHWJ_?(7STyn`@XieBo-P!ZV7I{vH_LbR;y!* zt#{T~{4o?RZ~i`NJw5nt=Eqy|F(UqtE+MW$6<|O+`W{K{V$>T+)2n_iBceqj9;XJo zH|ALpBvF*8v7r*R+W_u%G+8$k3Q`v;6|DHsi7ol3q$HPZ?~N_1&OoW!y^rIgCm%Dw z7qSJT&~^;=tmhTtgb@If)p9}u?Y$H-HRneR+bq1!i0$fh`A*T7OUMw^i+{`Kos-#3 z;T%2Y)S1$thFoq^XG(#aLBn3Cx@&^RP2R?<@}g4pv!ud>YNvlIq$93NLSeNf=%P#ognevH}K2{a>E4`eow4iSR- zrBN4Md5K?v417Co?fRh}G?`}fAcjktYGm}V@Z8sap)*GE)M-}q@j@(d6U*;<}jFCf3!N|WRr%$w;#1u7yX$A8OS%(?qZ0p z;TR|jJ(GGyScWK3mlLvb%NUhsO06Q88$gSu--5=fCJ$lR#~{9O3GIH2suA2z>t)!G-nuW{B>j~YT(}Syib13(_uXXWQ z*sG4v^NiQrvmNfw97af{TW>Nu_?a)y(}N$qpYn~l`uFR(EL$I$z>SHAch!GvuliLg zUz4kUgq}CN8umXx_3z8opS@T8M}JNEf?WOk^?Yx(KI(iy=9{_tC+}6iO6A+ybK}?Z zjBNcus()Cn{tkZj82_&*-cUiGU~z9v`y2t99jB^Uy!SRzn<^S)<3|;pR0fJUiGU~zHLoz{Cb{|tuOM=9G0uUgP%Rd|4Yg@ z=IYOcB(p4(PspZC9C&ogrM@6z*ix%$m|ek50)I|>Zd#x-fz8Di-yX03v$Iqqr(OX_moELrqRihxRwW=`Fz$&P6 z?Y;Egdw6Rw;3AsfR$-Pwy9vl|A%UUP#o~cs2C$_WUf2TVH~p3KAHN_T^|-JdTQBgt za0aKJR9-fA=PzU#~ zS5m^aiz!dg0p;14`D_BNwQjCZH_@4|VGwIopc9?-x6W3}pB|i~-jZ*%%D2O(5BsAM zoNezE3qk@3;=|mQI(R)oICFBkyYI8TwuBla3})76nZD5F0S}-3mOCln^Z*5BX7zxS zx;WwISr073arRNuukzw`9R6R3Umi{EE3{uM8@7D+=Maa{w4qo09Dhn>8z;_Zp2s}A zNJ=#Ph@a=KTWKbs1b!90ht*sw<`S>!q*iQ~Ew?Uxa0t$AlZunJ< zQg7|?YTWtuXmac1p{ybG`N=b#}-<|?)Mpf zedZZt}0edP-sY-U#w zZQeE_TKzodpQ=YRe8>}hU^40Q?KRBMmY0+D=()iKH*whjJ$2k^&Jx6{iy;zIu?_kAx}Sqml`C`8kcp+ zm&^2A_I&pFl&N|i@pksPs#ed}b;-xUpP2m1)ql_A-}SE!T4JLsbgdma?kmyy7df@}#d4 zev7Do%|E zzWHwVOK=@O2vpr53$TsA12yLfo6z1PYN|^eCFyXU8T&p7_J6Ce;K6r{H(j*V!j6v6-3)@;({j);%A3s1S6T-->E?ImT{Y|y2tKE?U0;<9} zwoD80Bf}GNGdCB)cWt4ZZHpi8h(w_wv{exF7W__v-19-(_CopUelep={`F1s~4TJ2qtjIV1&~ITHv}-to0kyux@1@uA$Iyr&wkVkS z1Iq(il=(JtJ=dRDTiEkvzxB^Z$7!HJ?cy` zCy9n!2u?HiN6}!J8Z^O>KcTm(!I!>o4Q?`9XCvhbqB~y8D3wI;G&xCn(EtCZ`FN4W z-Fz@hK8ohQoe$+H`@hb|f6NZ&gRD(%K8}_@hEsoD;z@dI<^PSkGiLr48`vuy3-a*I zY3E1uS~XfhXs1fvKGUY)Z>nu`_aFSqvcMUigRx&PHjG6m=lCx-56AG`&BHzQ-RGgm zS}jwnd(FcqpV8_>*Q(B1g>p1{3U%grx4*!vi~;cS;LpuSFE?!|oO42S z=2Ov`?HqmQ8n0;K)+pJ63qMjj5!{K?ja06PEf0#h@;X|*wt)m3>sLn7XR{yL9^V#O zFeFO8kd8n5HcuTJv->MHRV=gVs>vUe7G$o1Z+g%xDsKh4vk_XpaUxgWzO$sb{hBmT z(iVFQm2b!$j!cZ@=U5`rhVgIH`)sM!6gKTH_7+|3iag#4MxvE#$)}w-&b{JEjU*QG zCE_hPy)e3bLvgHfZC(Girro{bH|brk{CB=ErZjhhmwtX?MqZ!@8m=e?}|ZEInr*VZ2$9>-3R1 zpMSYZU{JKZjbCIO_=%Z?Uum>B#1=q z1a(_lj|Tv#?dQ8n3#Mm|jY{RIk%CmwdYt>x#Ft<{K6I>K{O{<^pW?JRbBo}8R`GaD z;p>W+j2|29z}pyOl_(B=zgYoH_(b`L%Po$pzAZkmF1f+XX6P^MA=qFBRSYdp!n089 z*;!h!^!ET{QyKg#r7QJREhqcB=si97i0`vm-uj2^etZA@^}Kj__W6`PdcL=7e_r*; zVxBjw3BSXg>`yuC#3>2ejZU!LXjl9H+xM{l>w5HG(xd;JeZciUBiny^@cn{kM6Ui_ zdS1`8+x(_aX*PJX_JMR&gPzNB_21L;)`zp@_y4<|7w77)*7Lo&`j6^)L)LzL+Xt^; zdCSvB66I@o0nf0*JDOuQf`XNu5cJfY_6gM^47DE!{YGzFr3O|87oE^;u?^*MJ`JfQ ze+m++q<#Kk=~?_|CsTtJ)OG#DzoOMlh6n76W^jW$$v&Xj&-%)y>|l{9Xv7AXTowGN zmURk^h*`7ayYc6u?S7fQaw!&mc0HO&5wiaa9fnqmM~=om*41*3pPYU?ucY-P%2FlR z4uSVpADAS0Rd7MhKB2u$^tN`Pt9`zfG=wJuLcI -bXg16DZ(#HKyfs6oStUNDZ{ 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 z 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%0AGWBJRDZ&_{YFyM8d5I=iB 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%0An|mnt1sHNU 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

(&k4$Wv$ zKG0p?u+G8ldKM*f<=Mu&Yo@AQV20Gc$DVAOySH-vMv40*p|O92ICL*lYhH&s)*57WDTcB^NTooi)*Ouh7(}T3U_?N<-h( z0+kR$rObs>P(JlT{e9+`-KjJTP;43=)?z)1O2$S@TGB&zB+$fZgfry#h&`dRD@jQsMI5lN7h%pnWH>fV9OmU^PFuuu@1b7UK?a2~u4elC zEUA6kI`w$4n7c1^>^J^}*|bOjTK;Ix?rjrzEyq=wZ_X*V(!|UyBgFfvko^sQqCQ}> z5>iA*mK1GpYf;5^s1nqvY0qC2-!z;@Ew^>6;+Ov;8g`oB5)hp=U6P3t#v)&X`mV=O zZrQ~Az_FaCY2n9ASq(LR^?9pMGh@nmFiKhfniRHgA}gj@Z367CHEt~J2J}Ymn^&5X zeKi-_SbllYj{*e6M9QYlTzo!-*k8?Gqm58yKTiu55yeL!IT?E z?sfYJ3do!B&XG0Vf%RBPaEMRuIV%VYjr2*7j5k#{8@AYzd-F)?TWh`I zwq0^>*-b@^mAoRNH(|dCh`Sob=Z*136TE-$MjQ=%=z4lq`+Csxe#l{@gqV#d+2-6@ z3gL77ofAmeB*P&?1-2+PPX?zhY2N(y|2}?IuNKhX|2(XN6XdYZj-b6Z{%UKBHNR;->320QI)yaCz_GukJmRSnJ!gv^x?NEj$k&ji3w-fmbIH}sN$m_bmL(^&TRMlaB zHw*G#uHy&V_^1x4sGY=iwjrCMgDd~Rfp*f^Dy)|>ID+|!x-Sv|Fi7MWXTFrz;S+8? ze1a5gB=5B*UHEQfR^6Nih#m>`fH>VtaxX5K#mDGzgtQgu0;%#34GJ>O14_ky)Tj*rXUyXFr$ z(x@*E@d5IpVj@tv@31oNP*CbwO{j^dZ76qt*u;{Q_s^o3&%#3qayfEW`OvwLIrU5g zx=M)hl_Th=TCbpZ0`2BagA%r8&l6DKwccPbVeky}Er0Q-ATphRu zRu955Qso|*4Ry2Et5Ml9hBf{xO=Oepm_||fc!Dwv^YC*Rl?x+@r+}=e4S$xHQ=E9m zI<*hly?>9JrbUI_Y8Q9g@&Ro?gAxCy=MgNYg)=yAdGTj zTlb+Bd1m#bQ+-MK)DUR3mt;nBi6N$x1a#Wr_-Gsfjgx9rf?~lM#u>{xA3hDOtDO4y zQbX#uv?FCT6(xaSu3@bfT7=QAPk*?)uwV2kP#tR{U;MGg3kP;A)Z_fFXihRj#zur) zTv;6%j(Hib6L)|hz{i}WJ5}z=t-68BqHAsKApFnowi&uo34FM~muM~VV7xG@oW#fC zPEP;(m$x`_c9LBiP$4o<3!!r$Y0GDCG4ZOALZpHACA3UAz$`n}5xQyR3Ab0sx` z>P8{RhYXF`1x%PPrA(LhUUPlrD&3|+Fu(VAlVo~i8Ndgiv1gac44Mb2`qgre_FJNX zJ&sp_|M+Jhb$vudkWe9FcyFo&1c=RFCk=cg?)a6oYd|Y36VVE;l{b4W4-RlKba!n ze{yPp4;eF0DZVLAyNL|o8=S6%eH>u z!5pT3NmU&aGu7UHub$IsFB|b{-Zb>WbNY3oq?072Ov1%8xO{j9U(a!FJ|78Afo5iO zi&q~-cHp;7Y45%HfX3bYxrc|!?cvu?rZ z(pYZ{1&kg^#P!$vhpV#UEA03Y(VbilK49m>w~ar;yiqDSy^)$Pa4qRF!Ih_^eH#_A z3*!n48c`zS0?4}lRCu0FX@XEX>bOAuFDJ)O7wQX>>vwo3=UOVTUdyaZP@5Yh_4f$=`BbS~jr3ys=L-_VDV;R9`xV*H zz#lo3pHaFHRHsh|#1UBv753X|rZ~#KG(1#f!TikOxnOnj;G7{K=u;2cnR=PD#+XDS z=p$52opy`3&q*9oun_B3o}mDTzFrHCL5j6J`PQn-0B2q*+1~pj=@EZ4AFO#v%3D~# zYlSTqiQ{lQtglpJ-Q*c=Q4_@@dz00~#YgDkR`wp}TyuSLpT$I)_of76TQlUhIyR>` zW`i$u{&1w;8lS;`TU5AI;Fty-x*9k&`E;6|c`d7MR4MmKsSchamRbdnaBEB_%CN~G zki$YzgMWbNqIzZpq@L5G8il~}DfM#vLS$W4%sk8L`{&?R=r&1?k)2OawSqZOvi4pB zWx1S9Z^EEc1qoHCzE%yfY!TW*qPJJsNN92^XWi4J7Hg>jg?wXvJv&AXb1MVKClqQE z0o3 zav(veV42nci|nqR>0Kp?NByc`Z(nLFoHx~kQD0yU60}^(v zgnSNkj$dg+kVD9u*i9IzgOyD9;Ma^(K9PoxMN_Q^j%*(Qr~egQzvjlc zQr#620i-m7R7F5rJuRJD|BykDO1AF*u#10SNTjTzRVrtoFkEK6jA$@eLf|y`hlA$! z^Xn?w0!Sjk1zkRNYy7ULWsf&7a?0iCakYTGlO!d!vm6AgQ!Z7UY!d~B8)i;Y)hs|w z=r>t^^K&(Sqow@h(S2+W>-?~atW>3CDXexzCv5fm7a-U7tl4WXE@np}5QvZbLGL@& zg|ifTQPHP%eWfSk+Gm1+#ATq+YQej~H=7u$Gm2)EgYI@A^oS^#}cBC*-m zl))OrLl=K8$b#LkTgngGU%?ax->o;UsHa1)bWC$`o}sU%J1!4JoPI;q6|q9%Xa0j& zO2ShaEW*7*Q6Pz4{8Ni7R0!^znyC3ZHVAG=!w_FL0@83^j5|~}AhbYMV$8e=aXT!= ziyj5R%jzaSfbCyJ_#`AZ>#NSKYx(t4YkbbBqM29vGUh; z#&Qz2rHmVTpQ$I|!pXnBPQRDgT?|kHMh_zqM;vzvf58b40(`TM1&ib5{!2Y+tH8@s zMjz{mlJ%S$)vHF&zONwxp8}k!(saTN>C*SAHauFnNT5!hklWibZ%a})_CYpR2IE*T~w?k?uz1JYL(6L=9C~OGe2h-4Gr@Wbz~I$TFRvN zGJBW1YgSeXF92d9sLDrgSZQ;>8m(x^0=}#h#znaDPD}-c13p&QLwF^XtH+(%R0~b$ zCh|Q(wL&0=o9j-tsNeRGS%Oy}ta``vA?ud*Pp@;bs^r6Y8u7C>lrECIDSD#W*7$ya z|DYm|cRlK?f@ySKTj;V7`+e>hD1d3Pz%Lpc$@Kpk0T@IQttQc?m0u|?=cR$bF?HMY z@;WHHHe&S7dJj|;(QI_~Gx(_U$I6hY{$+3EA*rz4%Ei@RkyS-ucoy(My;%EiLNr8g zGz7xi6gHGqfPb5oTK*v2^O~cX=vL`jolDQuiX4})@wkusFJOp71EdQyWjw5L@L1P> zvX%vnK(J)Pn52%!=e3F+1*OEQqyms#NMP0Bxm84jh>B6on!r|X(2r=!K-_~? zg%QhN7vAhR1CkYzbT?L@`7xclxg93)v{_V~PPZu(RZ}0QZf`CazH zy+VY7*bk#}D;({${3qQyC=~#tW&q;A_wSXm2tnpMK6R!z;K6+otRQ1tjPviEa#Jh~ zsnn0(x6^zcXzZ|bo8_g%`7=6eOf_;p)h!F>Da-9!4Ig@ff-LA z!!jh`$U(^9{lVZ#fj&DRcyl@h2)n%mSp{et5YZj{FiCByNxUP%Lx(^YdO>m4o(OQ6 z)u3qKLqn`J=NR(s|h z)d9jdb;KtuDqIhwILK~=Gv3^6z7_l;C5dkgpEEyT9;Prp5X0@1c|L^`3*lCAEWl_S*a1KTlC>4F$N*g;?eYh? zgCd-NBf#QtL@)EA4wX*6Si$!tw_{YUvHHp#4+Q+88;4QtSxsFL&=&LH_L&uF(=V}r zQ9%lSQpqxY6~OG^s2vCkd(aI}zly55ZI&h_O~;9{nf_$>+g^3Id8^aPcCq4gX;;?W z2I9WkHEpT$FA?3#=UC@!2WS~Mh+QAa2y%XNEp|8ThGMIOU!kX8l$~U%m@^6QayRUE z^syI=2_7r;W{YzJ*!x)Qo}_B%t$Q=HHAEN-yVI9|34r@edS&kn&Z zv9-dWHCDFAg1u)P7R}Yi-OMsNu7!y%<0(}d(L|KGdK&sCBm(VZ=?ZtDBrQ2870oZl z5-iSAp-FbYj-*pXaZ}WtMUcX@7!a{!dla`a>Y@j4E~US5xSKpKp5+p8w)T*!MCDNO z`v#Cxy}0dq_iv_h(VE{3JBJa)`0Ahb?Wav1bnIul1w}&<2r>`fN3oKZy9dkqR^%yS zkLd^C^AEajQuG7SVtJi2u=l<*Pr?41wR<%|m<4A}!&$qH`b?;;RW=7PFA2lYIsnCIP<08<$ zL|szaGc7Ai3D{2*6OLz-@f`-i^rTy>xb)!5-1@acLlY-~V{s#JsFNLG_bqL|N7vyY zy^Nc3Mt$cg*5K5HbRVqSVCrrTgZH8a+JwZ|BU@9-P_PtdiJN-a>qIt<+_ZNgvHJOL z5S(32Q)Kj;_X{?wrb(kWB~Nq=pi@G{$95W#SuBM zxV}yppsuiu9UAf=4-#I(R$mEi*;}H*__YG`?Y0Dx1-Wv!8%*Q08RF{8P+EkbKY*PO zleM4qj`z&>RAUJTh~ke!JDa-mFP8#GoL{Olx2X#+JT>xK@XJTe-lc-9 zq80b!_=@oZB0;8m$zTw{2?SNI!!1#-Mg=VDRz`vH^RJD<`jqsZl{&QghhGrI)Ik=B z31z*1ZH^D<8nC_QzF#6|onY9+e_1<2J2+P8leTT-;o+fXky zuGjA`aKo_g4_!x8H(kTmMr*Z?)TEdJvqYMdzTQEXIHgZ&REU#~W88ZLpqxSGKgw6?sz~-na2Kol zL6C~%RHEB!S11dP+T8sr$Gq+b=)ZR*^ldZK2PFyOzeK{QVrS^wkHeb5kz;T;-PNU* zTJ|Khyfi8D@1a_%3 zzkz-7BkxFGk>Ut;!o$@erTRk)JA`t|V4#M}ahr_twY-&}!-diw9f*m+r5})2^aBPO0(DM$)0v zg8}72di38xwP;dH)x7B=PB70TKO{D85*GM}Lt$+TI|FK@CVY1-i$%yAubk(7Qn~@e zCAPa^LexeR4#!J-C`-haOD|SbQpb~oWgtqTxc*7`BR{1q_0j(87gI?4yuKT0n_ZxI zVr%~wR=u9dW1T+e{!pwm+qztiOlenH^a~r4R;U6=)PZ{}g zfRk(eZ!(Z)WgI6{Zq9N-@kC@GXEazdvZFNjz+hYvxU){`?Z#^=zIW`7NHa0H zL*WK-v1auj^fLNRWpa_8Mx#H%K?Dy-v@V*M!LTlIw5Ob+lMlMfJd8pa))ZVIZiW_Q zvsZcBkWP!NMIC7}1W*G`_N-Z_2NxxmoSfJc1;c;lsDBgz7ruoctBVURo>xvNtRxs^ z)nqn_bR|O#iKA#<#cp1Fidx7yLksB=zg4y(`GsqQF#y-}3r)^cnw3JK@jB@A*ZI_i zvRsvKk-FOdnc%Q{NGHXu-6ocnh?`}?&$ zg&L(~=&4IbA&VP|Zkcu_Y$ys6lqNQUeA}gigGibl=4~N_p94_WeTB_Ktp^PPt69bp z+DNW9l&w-!=Ig>qWWm?@EF4UH%&X;!s zPM>xI9};P%eJGeyg#D$*Is)CyJCxem6w$Euej&qziy}Xhe0oQzQi2Oa{fct-US7TA zY+2YlTs|!<^7Vj=k;QDgw?I&hHXNaqCZR%Mws7hh>pEDhU^gVI4w$=qG00RVUR8|1 zjDIlL<{)J){*#G9SMx{l>G5p+(iDB1U$DzhEo9K_qxV5`j`042ty~dfI-nyzWJ9-F z=Bs#$)11idHL-Pkzi9OhQ!aJbJ%Yvv<9141_&3jr=CW0pOogv9t3BUDrIYkrqV>a$ zOY1LU8e}JrO-a1m@T&K;dt0=-aQRW?edVGopXBq<&+m3z9|?!$?5=rz7Tpe#GQoa* z`l9%q1Cg&VyTArw^jT|XBK6|+A7&k;ZaJXz5hi+lfJGE+P$ZjLbp==2V4g7=A2Q6y zkA2oNlua#UgO<{LYLCmMe+S-so7<6PSNj&1K_xvG6aPT7)ty-|>cw{cu$NM6{M=fP ztH@|+9F3A3koCtS_X5;&mm$LgLPy4D`-#p?gReIw|J%?^u3+TT7S2^d{d*r_C z#dW`9u9QjCc_WGYI1kW^7BDeW(BzKPbu-^w+p2d@RcU8wJeKH|Gfrpy)AHNhFXiLV zneO(uyKpbA%TWfoQR}FxlLfrQ@0s)+-HC?Hj-_YwBB+_}8pU*iuDONOm7KFMeMQt1 zY=Q5=ybG!Ry6vJ_qzz(k! z#66^1ny}qI!S=YG)K4G;dT;j${u;A9nUGJ~m^}Hk%8RQ=6B>kF0ZWG?!J)UJed8 zggHF^#A__F+=7CAYRZ@)0YN6mU1ZQ`=ztTC2!KMx*k%AXOs*st3gn z&PKhA@&30}T^dOu(>&mvR5vnPbOQFZ_qO7;8ls~zHh7=)4vD%u4Vo+E$wOrP z4M!AXa+#LL9kC$3vllr7??^c~v0ZbL41Imwz@jPq!D!GvK$o_KWZXN+s44 z4XMTrK@}WiOal7@u*3w#Ta1^46L)G#hKB@XH`;e9BE}n;1rh5&Phce_OH=*%~@v# z$36<6pee#~0`GAUN3gcU(`(P00C!O^BB(efD!*G~LEl*&)xe{t!2LoIsP1EMOl``3 zq3qn*VC{#v3soeoAW@Fe*17_5rU+y0>j|1Tc=Kip81<{XS8H6ns5udJK;( zx^-*J|5Ukn9+uDAREe*tq;F|O_UxFf20$4>Iv{$cBKEVmK_HNj0F4v04Qo0zf|R8)s;a8T*+-marCy6t_5Z~q zFEIil^P!{vYI+pt>DA6^vLfd40l2a4Wu{s zz6AYA11Q~0QPQ0pZ6TG~F#k2dDQ^pl_XtI9>O2&TXVP777iAveOBjR{2*fzw=Uh_v zC#128bO{c(A2US$UZ7CAobp=t6{g2Vc&I+-URNx9Dw;$JKcr^mLOuMDtvgIdMOV;a zi#@(abdtbMI`JHxKIW!?^Hbyl7Q#0an=#~u3kqQ=@A7j&diPg7@TV!KkA5MXY;JED zJ|vZqk$Es3zOhd|6>uu1l5sDL)-*otGPkI)o__*`*XS>@#dqsBypf^Sx$rb=Mi%%5 zny-n901ClEefub|8MyYdNiWIhf8(v7rNDfUSbQ3tRZ&kBv(^rI*|zUyP&;|5ro0S# zr!E9OB0OJ_8cT=8X$0?G9NNLQb9exQ4tiDC{L+QbRk8D61a^FU4`YDkM$0M%hi0yR zkbo;835gtXP2gy-JRGb=-L64-sJjiS4Gmn4-fk{Xf|5y2NpPu1>V^DUt%PnHLLI3s@w&8&Foa49qsr+)XKHf zvKZFmi{dP6;Lr{t;=rU08(*4ff~Uj4arFlAKMWW&4O$Oak9E`6A`TL}PIWd>>CA#x zUT`YNnG9HUB20|x6~CV~=x|;^d$^6XQxsqf5I`c&svR$7jSWPT&+kkVW7#Uo4#EhNPic~Z=?Yvd+f>yj*x>3|bTatT3*M+BPwGOK9=inx7}j9`rh>Oog!l+QO`zv{=f1fl}eN6T6AYL&uK zMT_ot?dNfeX~)$G^U!+G%UgaV)R}qOxX7XtIntsLzHrq9R5tolC0!1<$9^7 z(14F~iCg`ErHG6O>`|W1Ld+g3VJh8Uvi(4qk2(0~0l;|LJb+Z->^ePbR2B)-fTX@uS_a_Cxq0;DCGa5h-Vkz{H1B(C^c$O+&anmdSM8m4hRnV z17Snb9_N(SqmruXmUO&O?@c@Oz_d*fWQ?V1&eRV8eCp^Jf<%a482ep;toy5170Zx* z&EM?5uT^HzBTB4X2p=c&fJZOp(5ITif8|IDM$sA7h#nA+(!`ooSr+J;%IVpGc>{vO znk;2FT;+ddSAY2Gh89#G;&Q}~R<)Pq=bZEZDyvRyB?r6PI*F@=f|7<=BL1!%1S%2u zHH%CJrQ-tMmGesg$8I%aP2R_Y+w=$uBe$mshj6kd$}PQ`%fw6^4e0(*b#BHBihd;b zoX6ChHs`msl7uc+b$hP@SfCB<=NSKG=TCG_S@LzcnF_)iQ zap7)Gm^VZu=*?@k>{v+4Rqp$*t2Jj6e2&AuU6mDPR8!H4I4pR;Q7@I?#yZ8Mo2cI* z8!C9_C&Js(PCbw>XoD>~e8^e44mFd0oK47`j@Kr#4zMAcU#@#5uawg}Vr9kq!q9V#?C6aQ!jJ7fB1tI`8eGWRkkZ5VNvy&29+$h{sH?)qWlT-8uY~Hw;^z=X9koh4mm6(A ziNvK_l6vHO>TtUOKBT6;aGBuWhIv6Y&s~?b0DNhzK zaQ@3*?51lZ;s_)$&=m3a#{NZ5snnXK@<=6p!L*!R51^hW3p14 z?O3y=uKY}PJ*p2EdcvD;##?a%Dh%4uunE#%wQ^0MV+hV$)eLL*mydlQ9tRgl;2j!JrJK-h5Ise{HxX33Ug7#0=+{1qn7PY$WL<@KRoN zrpm9houmi);E)%CW_`}X71prJrcm=vTWMJ!w#2VWEKh~U_5wdvLP$H99o5ci0acfj znb=md{@0tM(Sa-~jOj{~<_|PPkJ&2y6eg)r4__ESb4IHPbo&60FS3c^faZ99 z1<~b*s4N2I1LEZEof;8`JPSq%cpMI!TgR)(aZ<=p=gA$+$0$yeiwOEW9r_<2PtGA{ zK3tIe0!(MK(Asb<)uau97|P|sU76i!TywI7sia)qgeN7rW5nK4$a0t*FA3h`!jm4LDeLr@WI={j7SVCZFeDOE0rQSFtN-Uzw)Bq-= zo|U;AA&HmbtM961{82T+Amc)SEa5a?u;vhkI@MCLD5F&9_Q^6})e|N2j z_C^xC_UYXf4+Tsi1%fMI4XAc{q+%=RVlYi5yY5xVKHy)V5jLAroo@86e)c_{j{y^_ zRhV`$nQ`M|#H~l#%s3P!{pyw0BS$ry%C(8*7H(qBNQTgdvBzXvYe;z@vXmDt&>az& zagXU(i_F9M+y!IGkg$nB^K$-?R{wx}{P7x;VC7NkBBH>XpqlWUszh?Tzy_ZcfPV+5 zHV#(Y-JY0Si$fnSQ5N&k8DjqktyIP80!|Ck2TZss0paA-))nE=H>eqVs~SE;wnfeO z-hKv+@Y(}jXzBB6nmen!g>jlM z30nuca-3#7j1`bZx>bw!iKvU8KHjPZSJ!?mvt`wbZPo~1fIH^&CAGo4!wn!ve@ECQ zuxJ^8PN?9^hXkyzbdc6#ek&~PL%7W&0`R-G@BY(-D6Ty0PoyPY*XGP#262%0Y0i`) zY-WZ_1YeGt4Ue6+7dY|>Q1{y3#s2syJj7_O>yJ`rkRiIoFfvv+TkIO$9~totRCr9f z&s%~w&r}q#zJU4fcV@7`V3DbzK*ynp_<)H4=-^AjcIhg`x%3WYMb5nY1;?7AiVzO~ zu5iQzPjYcfh$URR8RGrad}#=T=qj>zWQGR4Us;HTsJh=45iYxJOD@Zo`AfBP zN@k1AK12Q+nu^qCDhVht9O9`T10H8;%}S#~4k|IjzSBqVRXJ9Z9qM!HkBKCpUb3$> zpk%X0f=sn#Ql^K;+>adCAjM%qJOHZ>uv0Wk{bDd~(}s`Kb^`xHp?6YjVlMP{ zuikWlQ>@MhWQM9|BGq!`a#3T~`s*-ry7wA}t5=4NLC46Upi-JBAj=_$n5`Jh%pxUo zc_-ke@r^&SYLNW8cp_i&hlF%6Ra7U58NR9#q>Q0IK+w&qZ;TTIN z&h~kmzTc`?%H^G;g;8@z5mnb z>$225K?>Vq(L>U;m>?xIXlB1hyU}8(x=D%F2+gYo>BmX)5f1Qs?S<(~MLU37wVqt7 ztZl*LG3sbEuoAy>(mf$0T!(mAaqBo0AuZ}1b1zDc87h12bn58F+dW&c?XsQY15 z=pztdW*SHZ|NFb1{CYxV#!~%R`;iVXua#6WKW?vXIXn zHXve-8e?QoCEz0;0C_813SFD7nNv6lc8iWv-4n^t`4vcb^ZICn_FR# zTK4xv@4s9Dm)}uQzoo=twDK5nutChNAuOan1Y1-L)~n%b=~SvA{DA6FPA|ht=#5>Q zCGbVAJzg7+!|TU$yM1A<=t`#r#^T9@fKBGW9u*CLre3wfu`jSj&-`k9rdg|&&Lom>vI=99fPh%cM@^ts6cCd8DKH= zF#r^n&F;)01!z}O_7QI+XEQMj?^?_+a64%heqF?TBuTd^$4O2|{SPu2vVHF?QnQn* zSq1cN<#7-gpAouWBG3*q6_sVZGxsvv9o1>R#C!-y1ZZ|lCax_*aX*kStVh530A{jL zI0J3nY!TBAKqMsn`2Klb1dFL{`bwAm{W@nJ3_g-QFGnSRmzBeU>PDs>W*Xn$%TZJaxsk=p#}giQfns?Vf?SA}k#AX7+Hk%9 zC`srSyl>NSCP4~r9`*cEK`e)^VN~aLp0I};L<#>*qt%^x&~dS*h(u0nc9O^O5fY^a z+&*06OOvhw>Yhdn>1|EQ9GC8RKeV&+y*QIiFg>Q*5$;fWl9S=X`=jQ;VQ$iNKd1QR*7b#>DvMvWeU z&SK>zE&M|c1E4mIU`q?L`xt>zNG$kIV-Z;>&4u7^d?=4KnZPh8e+g_}W?rdaF27xP zn>~F%2ltwQ#lg$Qs&?&@;ttIXkip>EBCvnQ3NcI=449pcJP_4FraO`n0hhU zX25D$%ky{m^cnF)OfB|buoiT;={EIMMLX86j9JjY$EmVd!_K$T45MF^MtdkTKaq!g z)*xGW_z1l>mSK8I#n*Yh7>rreRN;JW#LHTqh<8{Bi?>@*nov-B3q7F0`ZZvZ@``gl zee1AnD$c?jhI!n2k5wryZ+2q=Gf~vUVUUp3T7WG5*`YSLvN$)W7+y7|WX3{r|ybWS+TnX+Of{M!tM;qKnU`by(&r20y$mO_-b@Uq?hs30liQx$TAW zN)Ru|e3I7&XZj`u18jH5$Uu?WpmuML`tal)Su~yMcVbscV8{!`- zhDM9P*JG^+96T`0Mtfd_Oh7bLnfGh+NVUC>8>e%EjFQ8GTh%p$lEf1C2!I1KdGYWZ z2TBFns3a{+$6RZ~LjiIQ%k%HIzg3aGJKvIh zcjq#v#X~_sdXw}Yry7-&sP=r*yOIo;{{QaJ-eg|AMd?FKq^ZIUkxlif%qBlT%iHz? zll#4kl6>awsUDR#Ji}p`_fi_xJ9(O1Ip#Q`2`x42VJ*r)X)#uZ!CqV*ebFEr9xQYj z9&RrDBM8|uMoE#C2&pM8}UB5XHtY+zC{Y*%LQ36OTBQ##N8?Naz-ja6?7JOu61 zw4R$$65gmf+nQDi9>nQ5UE)VKFuy1jhmFCt^?c_Dq9gfh%7~m2ou7jOzkeCOyp%CA zCou4vo1LYcGmBaUJ0O*24-zA5v?O1CNgtnh837pZs%Vr+oSfBZi;xlSa(Te?td*71 zi%8H6j?Nz8J{WJ-9_)tR>qE{T)@zVmB2Cx6=++0TT(??W{%J4vLOI+BPIIpydfE@H!mASKOS=NY9?t$M`nmibS|FC-j9+KO;A81_O|E6%qGxXGTxA}lP&;%i7jiZ;KX{veb)foZI5rs;0evxmuy zGK#?6Z((FIIxNjQ3cA}6*qy`!am1u}ODG!H`9WFLOzFkbrF-kXc@PPzFm1p3>{rQH~cf8EwTsQiSG@xeNy#P*@a7 z5}Ljb)<0{!lE`6Kq{}C7{#Zyj^*eT+wfAuXOJ0szTd4*{J(7Z?1)E*k9!A9e=Fl;B z+HqLakdrp!qm6AA20%b|=>r6*iGnu6wKvxBa)Wu%OFG5U)t+Y-riVMv{n)(3UQTIh zwi9-3uH`5E<97UDbndIlm4cf_aN_}$h^0&d-euBm2L{~QYqIzbT5BV*4EgJF3BTQC zKr*DPB6T?3@pk`8bkCQIs3bj({{5OY(eo@&kt@2RQeC%A2&ghREXlDj-rX&s1Ps<6 zMJ9`(@Akf(`7X>A12^~{_@3^@U z23<+JWIIccx_T6&lhoOg5k*y2n%t!@pAvHLZp-`PW?{h+^fC%V zt}o@Rh|_jw9(@MaQY8AoOB>AxkE({k1HrO|sf_cuOg8^JjDWt(gLUO&Qql`r0MXo= zCE9%rMr*5F`a)J5N{IaApSjz6E490q%qWgQ39ca{p|npY*iN>GTzvpHv0_O)#^E1R zfF;`>n28=#P-`np{h^T(+{#birWZPCzytCZ0Zw4Vve3Ah3S${xBt$GB#;PFPuBcKE zQdUmwvEzGG_;vM2{+M6nsm(KR3IGAc7^%}mOWHvlrfSWmvTHn(SM{{JVElg#E4_|W zr?w{6jE$?Ko?2o7HiV>ef(Yek0Y#XFh`mawnX;R_jB%#0`jW>was0oYY#Cdbqf+5H z5{_mO=k(vWyI3WOR%3bb+pB&2i&GNbvs(UHTdw!1H0vNUe&p{_*K*J3RwxCh({O`ohPY6_1RHtxFtW3(K>l+YO9g*&VgVPuf+&rOwwp79C8CN+$+=a4^p4 z0w@UJ*?9%k-R8fZq5>N23$=7k1~*rIGN)y(Yd^doIr#DQMmU=r-(Zn+!-t=u9W9k8 z`%FA^(N4;Eq!7kO-99j23_0F-3XBp{K96wUg&x`~(9D8m8>RzX$JWv74*VRFVh6ww zP}m~~P17IGL;%aGI@gNlwWGUPLHj>%g5~$ehav$Q3s^$;>PmS#LSS7%fbc}2-lxqX zCgE}<)>)QG>PZthA6M^@DYS}Ovh@`55C)H)w=jjptw*9|pa=Fn4*4|T;zR3Q3SFus zKtwcJ`%{0P3~OkNVyIR&R;--DX`Hr4&bsR#BUZ`W0b5P+6Ah3o={RO zftHdM6<2Xr`_n`mj@kGjC+p#xIWmV}P{6p@dD#(FTH1hT^~PP*eslDv#|;E94dMeD zl=T5~&H_64Fzppm?~z~Fl0dIZFt7gvX$Ns6ocW6)TxJll9vK^<*zzQBZPS$WltrN> z%gu}JEl7n(-P+ixSjk7V((!&r1aMIG3M%jRMG8@4jW5mTT7~a#2Nl7H0fCn?&8x}KQNrs8f%IpIOs+8P&KT!y6us@dhRJ&H)cFV= z`h(Su*;@P2tG+(dfOnP=JCHn4Fyq9?d!(M;5xQj1!UEbfLufnVjie1W&wkj6kP39P zp;t_EHvc)KkMgr{Me56fr1I&`>!pjMxxNQ8e&c9o zT%QNItLYCG@=?{ymP4j(Ge?Yw03}1tZ<5)bKR7Tc+62eZoq#8@Op2EE_AoeWrE`A_ za1CXkWUDjkB^ZF;I1@FuxvGElW19^S78Nw6rYBlCbS2Fi3UIa$R<(hanf-J9Bj~!} zv}_+;k=mmGzHS%+0}ain{E5l1Pjm|o+WFf74VQ1%F?nRg*a~X7S@yp-SFz`Ww5aGa zncT*y)JD+8b`^XK zMeON`mLDABiM1FPc(?*4&)Pz3%gDwzlBj|6Zn=~ECKDxi@U?Ah)m1IxNp$Kix~u>& zJY#x@;B;}%%hz(zY|Fm!Y{TAxo-ms^u3&A7p$C5D+@5(RY_mZf0N?bIxKhUQp%z`P zgxCr<%^Ts%5@^(RWCgTFj3FdrC*_hcMSK2V@HvR~S=&xmf^FbSPmdcdDeeqK=k@vHa z&a3UE2pOC3H$~?{5cM8H5~wsf3+%kk_4=B#rc8(Z4|77(?*i>|`*7QiT-W(EN9$3l zc*0j9AHl!=JHIvdS;QY;*=w}$A3Af(AjBgm(aEC~DLmrynm#}@9JF#Q$lza^1LNg6 zQWv9@hgFJ82;pE{9?%^MjWPs^c+)OlNeZ7D!Dbf!*d^AI)}94l74_s_LQe;wPnDUf zis|yJYSD`Lu$G{U&5&vWRKbErf0fc!uTnGz?o@gdv_({&_`Ga^Qko$z5IuJ;wmE)L z2x!=v7HJ_=;*wZ}V7qbHA=jJ#)b_6H{ zIaGe-N~Og1Q%;?ZWbTl){tvwN`fA*&z59y$JF1rFiul={HPS>KpCIB)RPzJfXsl`F zQT<2Sc=MM4$Sh#ktKm9sJ2crC$|J5D3bg2#2S{f=KT{XS@X`Fu<_2(SiA0Sqs8UrB zqKw=OMtFty%CdNI1LkFryzfyqa9xh?EXAdPnAxCvh=LvL zAi3I|?0h?oKJ3Hj*U(3Ys7#f^TSPTA)t}&^>g{!O$ZV4x8%Di@BW>bRD%nOgkk?tu zy!sNc6g^?55n&Sc)wBMD6ic>?L7y zuZD6jVzuJAIB=>b5)OCzAgpt;@6cP9-+7Dpe}O(wnHh%iYlTMaI8Yxo)wFJ}Lj1*2 z3UogjyDSyEI4&tPs2Bd3>%(-rX5I12Ps;r0<;~WF2Z+9)=d>J5$lWie6}=5nfQR8Q z?18WGyhJ_+VG5{F9u%&JzDF2Wl?`%3YWEiurfAc{2gZkfe)Tf*Qd0Q(It0?BQWYWL z6wI_rO}moj-nOI`IH1UMtF|dhId9||0E9*RmDfar?OUZ)pSOK(GFSZH%u3)qQ^^GS zlR2+EM^ni3J)x8926=Df%a`_1KBxH19>EO7IP>C?jK6)Ob&_oQviJMM*S ztU@Y+0G+q;`5mUtuq{{~-a@O=%GY7LZ!IR(ZZrw6FB+98ma{HlC47LTs4tLY^?cd{ zt}tOa>JA7gW_3ph2tCF12{!iBK~gy#2+Ly{mUj?1`?UOKyDEfP48le70{MKZKs_F7 zQ%*J~v7Ap6vzgi?+Fq{_&|GPpy{~wpvqqK<9r{2^*_!+)vl} zA|p-SFmx^Q^1!L7jOLamI2mYIj*;>2@fQR_Z&)?9wc|lUygz{XZWK=KUR!`HpEVui zf^<%FHJ`#Hvh(c2nwqXq{E_~qVUc|L6UJ-C%!yj@GRG8)CW!;>XSCw<)_e}MR?cad z_xqUMEx=3(KKa)y?(L|<;O|2HXtKcn^N{TtBnVdhr-A6Nu>jb5tCdm>F+Nss5XzXO#y z5Jln_%~odNPRx0J1G=^{R!CYuP%N-+X10p`<%rZZu3_QUO9dH$~LX3j{w`m2vcz1Y>#&&?UgrrQc)2T(pxa@4Z7Em zoRA_L)Na$3hJ0AJ_QilY=sc+ExD9VhOR_iqm(mR%EmG*OSpM1Dn2a`uHJ2x)RFujl z!fVjNQ_fB}E1}v3MqYi1op-Pj>~pY3KBcYkR#&>aEk?FC{>t(R{%IF3&g{P)JtzGK z_B=S%!HOje;S&G%HGm*hY<|ZyO@&zMx!mvheZp;KhSq5#UqFSb7X-il(JB54N0Xj` zMwp&|qT*?mYCZ&I9^;}2&?E|Ix17(;r`tnrjWa>@uk6g#K}B=j_g2b?yq4Z3)V0H+ z)1GTj*+`rx_%6GnRAcgI7zdcw(Q) zK9PcmH!S-7*zNv|Z|*+xmanC#KiuUvXTTjgu&^<;Ya_5X@QEp(m5&Z`|n_{2%gZ7jbqg^V`4f| zPnkr!VO2AT!+WA$ggvm-UI2>lp~B%lozo3#XXn%XVPzL!aQpu?4q~YJWb#i!&Nlaf zCfc7t!^G&ezG*N0YWo8XaBY*hP&!YcgAA>*K*;Y~2voiYGFMxE{t4rP_*&toKs%&( zc9r5*FjU=3Ef)$r@eQ;l8=MCJ1@s(-FdU15Zb-d`tn2(UX=8Dzk>^M0?s~q$=TK+Y zkouLN)WdtLaOQjKV6JTidpTq}V;8CtP!Ka8qLV|0xT^~{JZ6~{;v&~J-;r?^c8fKr zI~eghk8&OA9yn}nmN~ldvbmB}Dd#9kMtpy3vIz?J)eqkZ;QRTZtEsJrn>HdJe1%q} z{4&|)06b=7u#l@v*BbJw4^@UE5vTRln{AlkHFQ5l!&x|f%q_Cid&)@necUlG?41Zq z%@YuJBjfm8I}Nb+(#vkLtqm&(s^qI?S)Xo}4mIA$Ze|ujQts6r{TsHh+CiJelg+x; zhS4>Iie;4%ofXnFeH&}^$|7LoHd#;pmYR>^W0ttD;CN= z-QY3HuDqoaFXg;{BgU7)x+eo`E6hsu7rDjC;VMtAMR?Q)NJrpuS`=aPzN4+0IQZamKttRtfC2FyC$@mPleu1DnyiknR@1QdV=@{)ca4IO`LpH33KX zGG2o`lg|>f0|(|ue;RJLThJ9GoRkbtUV`}6P;w$xo>o2qXk|L<>AUdB%IhPfCI-A5zyw7NzO9A|rTc~>f=;M2yZwh$b&H8Att z8T*x3#F;-dHq+%-$W%B<{$bTuPOiQN)x>o_!@JAK*gSp5Vv>sRfpQ}#8u6x1KL|4} zx}P2dm5AStL!3$K-~2?n?UBRWcy{nmy5fgBd+-~Kltb@`IKe`%KoQhh6T+v_Zj$o^ zQI20}_K3?cMDifPb8UNL;0%u*WB%p=+p?%3;>$_ z;i^%oNMDNWT8+mhR^uYZm;_@dl^_JAI(Ia7(RO+dFzeb4*){>_we9?U&z(#p)pTgG zTx6m;jx>4hC!xC?UsqGiibx(7=75EM1C`KFCMkoG^0K z4l}llknJ`BQ*YIe?g(kY|JT*GCnD8t&9#%rRZr-aC#DfzB7!X87|YS>Y+M?p^@I$r zfkViouYc1MSv0_^kpzN(kv&W%X+9r^N0ZI)^t3$PslMmatv+YarM=j^a|O7;GXQKz zqFs5DSS9DatA<@b>P`1HG?8P31 z+i|H+BRf8iw?57W0sJ)&#<0DuPIn=3LIqEEMVLM|=U{+sHn$E%L08|~H%Q79?&NPV)M=aR zWv3-L^p47nR0QjY=vquppPZSj=~hv@I&&$&YPujit=f*`qbt+Xjhh|mYJ{09bFj3m!>Sorgck`Al%4}#&ZiNf%az0l0I+{gJ#Sx&@{cEMIk;Vy zmmEW`sj=1m+2yaOd!4q0^faIFj58J`5@gKU4ZQww)CCgSP^8J&jbcz@I!rfMDbWMb z$7wI?2RKkZiK3Adw7uTp;np>R6JA?%Fvj5;W=Nh8lE`!>E9&d#7mc;nD8q*j>;Rts zdGJMsg>9`~5g9%t-)zrMtV=#Q;T&7?DV)#_mMjH|IGv77zF8~x-q38|Mh!?OG~iv^ zBe^|FZIjKa)AybU3k%E{g;npDaDw>js6JiwRM6W~lO>7JE^WM;$b@`q365!tR9sz| zOPLn-ht&aAgr)W|6;1HjA4MLsDtXHGt!1)%wa9a=)f~$YL}*XiL}BJ&$ho+_VuY%O zvMPUhM(_WRYs_(^$RMN*f~>E9|97DUu4#ALwZAz(7P)$>b1abM1HGONl(JqchJIxA znoEW~W;{Iu^GDpf2E2||@dh5sC#d87ahAJf*ghzdq)@}eaO zwD=fuz47g_DeP{@BuhKRkj$3e%6g8RI4452A2mz|NmIb^N-qC>E> z^GiVJwSwQ;<~dBgmtzQIaZk(a9)D=%eGkFE|I(qwWmr*U%S`$aLiboDv%rXoHfAn? z*P6neQ(N}-IxoHSbs4I1uO79@KH=h7(XcP>Ht;ZF z#dK<#cdq7&gR98+zgh6+IGdTugU!?KJ>&JhC%dSU7yxf?HRe9O-+IjEJHMT*(K8&# z%dXsE=;jHz{^SAp^;4urqL5c^G$+dn#Q_`48b&T8DbA6KnJ-Eq-2{8`y411h9w#Da z!syW_Fn;CSAQ)U^(IK370d*`SZwLv14*CZa2Jk6y7+`ngJo3<+-VfW}y9INE*(EYa zFK8!(Wn6{+2lAo+W3%^QpQ&@P1~Gsks^?jIK3r1d7AK6H{?s>pYzF9`VxU|m9QGAD`8l8my=egghdGfvUussxZ5 zS#vKg}M1Qzm}`hlBM5K-@DbmEdhNOY~R3Rd8N-O%7zpjQ3EE0q<|2;1;v8Lfetw%Q0AQ z)8Nkk^!VW8#Z1j{%+28ADWUp&T-EW*vJaqZ+sw=3yu<|nx@yGFGSV>H98m8(iq$Uh z+?`30;D?;g(gIgvmn_GAUEJN*Pz!FDM`S7ye}MP8{fPGI3a~1I$ynegJ#A3AziLmP zLW+k(r_c#zQQIqVNe17wY3EnECb;sd#~<=tGlG@blU!%;i6iEFXJ~phtXUhC*&+Xh zd8f`C0fqZki32xIbGyq(j$m)HlmL zk-Gan0Z#`tfBvGxII2r55gSEArkh}DK%ooBlW8-$Jmn(|)ZSxYMnxr#kW@_{Up+BA zJV0XpzMdqeat5`aPA7329YvXqf&Y2Wd5=RT=z#S%&T|vrWug5cI{r`ZM5mS$RnPV3 z@pEfujE0Vh7REL#M2yEM9A|wo3SL;{< zRSGRwP!T~)Vt~9=#rqh<#h&p=7izn`Lnlez^ZsV~84tz>RlxFM!BJD5q# zPmgj&b#h=g3Epk~zxT+@6fZp{lwJR8Rwpp*^DV~dw6(gXZa&r5@syih%BmWLx0jbY zaaJLvic$7q3KhrbS2JlVEbQXvLU>4}XlP}x|BZqCXyAgqW7#uzk!6cq+GHqmBzymm zaFRj7n9`@oOCkMyfL6Mfw&UCCWJLma9PhNV^6(`Ie zTi!5|%$0&qhGyv*h1e`8v3wfcD7ZS8M!qI?ji9pD2Z(u!YL*R`{Ekxicg zKks0dgU?09h=Q}lFIdrQ5fhtEjxX;ZAu}%<9{D5P7b+x&R?ixpjmm`)k4VzqhuM9{ z@~tFc#9;6_FkkeQ;Bj>e*X0lAU}8{))q(}lQ1_=^*EwXvx^=P8^NcAI&>>A$r}L-M zQZLN}FBn=@-{P7S-cR?kpQr3z47iub-6DG(NvnS>F~%5d*O^xuq-s514a%TnQ_&@J zAaTM{vc6@aD(J!}G3)?GtCUGUIF4f2c5Le;Fu+i;Hr#2f+EaIwL;E9^$BjyMX#BGK zK(t+%hFcBp#mv8XXx7t}G9;HpcL#z2V+Le#`j^AL z{nkhi$rJmX$sl9$ZfJ8-tk&yJ_Ws-prN%P+{f2?Eht2#x%|AY*O0t@c2)H!BCf({r zJ-x|I@1<{QOo~{Y`J!y39WPbWtKHGf`Wnvo!*X~9)ROK_4B3=BV#*)1i_#I?UUU%$ z{7_hR$US|n*_~t_owWNgY0ml3i^-y(cWkkIuWKo$xnd$M_so%B2G4PjV|nS!19C5O z%lU;!t_kxLgYN7*d|rf7y#1|00HfPC?R(+FEhFyrWJwF51PB9ijB|E~9ouf+B^ z|CNk=#UC{-<52KKv=>soHD&;L7o~Pm(F9V5h4x3g9Zqa{6~-b~M_a#V7-@$C`lisv zL?~8Wf9-uoq63@HGse~-H!VP1zV_y5{pq(ZF|Xl#LFdwvCnWXf4wrGfLjNA5XIyRE z^dDF%h#-5LaCaf_E%YDI-aV zmc)9h&CVu~N*8-16AKQ0jQqsGgf!9+!6`fZ9fMbg>-bW12EY;mF9K|mn|tnQZ$I?f zLhqn00}12}_=DaG@OhVPBY|<-5Mm#A;67Vu_jGa-%MT|^!`={Xr7}Z=nU&*N4nX);} zOsfF(>PHLG13r@oxYxmDG5S*FVBu7YUH~7_8IZbiN!)r$nhY+NrXkl4gg1{RETw^+ z>B01$RrtUc#-rA!;RvT|j3h(-n6s2ODAAGK{%;7Ug;;Ge(=LWjrO$fWNaM%!Kh2_O8VTojkZ? zkDq7)nuC8}*v4Y(>BZ!gscQ9!mUS0{w7Y3WMsR&W0_4AR6q1ZgH7Z*ZzRIT7=?$DA6Ck z9ouw>AAQz{44I2qM(PuTHiVjFx?rwD)nLxc{nfBq4S_>#w2;i@*97_4IcGC`GYwc8 z90EXm=4fIOrT`xbpEo-}@0FFS;^_ru68@YSUoVA=S7#GRxGX6H!1dUDS2r+ZmG_AL z#VPbExPvmmz0D@-8=Rgq1e}JTpIG0SH?cUCJ_9t+mC_-L`i08eoxMNz7vD5vw%sDp zEAvbQi-o6%?^T!MsanEm4If!m*g(Ua{Z+Evg?Dn_bjKVnz0>yT%w5p_U8o@1Fzdt# z?bEyU*IvEBse)XiLVYbKkeHR}JCv5%INN0J_Dx2*A*y2sYvKF&lcIRhvBtluAk_l4^$&VEIm5ki)|C2^ zS5MEFeSBe3ArWT{UVPN1#iuc*8JkTfMS5ZyQOKDMrllNW77WWsUeAcD`}YX$-S?tw z9;-ZmhUd-*y@Mw{!77T5Tx%={j~Y7ru6J!BXn|A0avmOan)dNcS?QWJ1de9}OwoP)Uq@W& zL^!d+qP3Lo65U7k%7p+u2JxRN%^ndmgd-{9(j7!{(Q}>P@Hp{P#*apK-aZ`SAl&s? zM6T+Yg=+dQ+W-aG&oDVGXc49o!KHN2G)a~Ii&n*B@Vy#DYyk>Hns?m$)|VLaBMhu+ zci@N3rPJH!64!En679*;;0rAoaP#m0|+`L7D(VP?NRr|+x&Z9Bnwe>yA^3o?oYu;aP zvYRub_7Jv(O$3hHg&tIX8I%ZmX~U>a%csDM;bm_AaimaBjH8@G6EAvnG4P8q2f(_f z#8W-X>>cGk+NiM>f>j)|RRzN4c`pos$B;bjj{Z%bW}7C#`rycpIdC%g|`UUnpdZp%zlRHx1p=fVemf5d~KblVy7s52p1sV)JK8qkXv+I2e54 z^+)tdIonrDX2*&5HgH`bx;b*RCoc}l(nhz0I`{5JCd3_&NMuEIyhPQ7&-4fS1a(x!{c3VEt`D&ht&HDpSj3BjRF<<7u~8~W%}+PnKzZg2HHY8HrZ7a$}`q#XaXx8I2UYLlSU z5r#J;OydI~6oz%X|9(yUG#?wf1ZN_#!4Qu|DtzgzYK#!3vo=uBpmnFf{HroP<2;v< zZw9^z{wefckj_zKH>kQL?umBXDg7eeJ}O{x@iy5m(|;yGODJg1tqjN?m8S?VLSvcX z2MF{eD^`$1ts>Fooc^@2vJDU$^}-DuROJ5?HtRcqfF=b>EWOqU8&+MVdQwuC{;)x$y-&<>q!R_fmEhzw%?b9DQ}ne zgc}Wd9gTqmS$S5aZ#o0M`q?#Ip1N6_52SZ>B=*5^7t1R#rs>K@DpbYTEmdGOOQRM? zc@5xA`TdkIVw|ZYVbrwfuV`IEw^pH!4QxOK@+X*R7;_YUw-OIYd2~kI!`lT6JHSGi z8kLs3A$hYq8;c4qAS*_*bEQ^IB}ZLmu(d)eEhO4Jb5m)#JKC1Hc z4y%b4$6Bx1IRS*D{D|;MWOj%@b8<>g*JUdABJp}`Vx@N#lM|%X_;BmlwbdxHyVvL4 zS~oHa91Mnw=rO9>J{QDj_0a;~SyY4kk`;cM%@6y)>MII6M;o~Prm#r-=nrp9BI8@% ze&`O+3uyIx=O6-KI54u&LQTM!tLb-bfz#5F(Q@V47YWMRWEFqyj~`j9PC1r1yMK+U z38Ie4YQDMiWL57}HrE9m(&}`L*Av94(P*G^No@!h;9)A$=0*TD+JhJYu4ttEJ!)y7 zEzrrNxuF7stLw-4FAFxLOO(S0ub7_?UzsLznT5uSwQ=CBe?}`>V!c{Pc&!Wsg%uRHg41D_|rL9Gb z&Gt^#Y&H8U?GjFu~5zegr zTWMgJe6LdC4uLGYS#jYHMP++6i*>%f-}iFrpVoAK1uI1tbCP;-h13j&Hty&`Y>6$x z6G8n=@Y)kX5Jb1P+ZyVW(;uN<{pC>wP8yV5BWO_p(HOqZa%Uq&m`~60`&dYb?sOwAKuI{jm(>J!>c6sQS#0&dJVQU0T zl(GqyANMss5{o3T5f0qT|rH0u(=?v(sb9do062G*@muj90`SFiU>*+6u(U zZ^EO_lXU$X=ayC!_!>V;UC@tUjB1K1%G!3aB?tBg?^9O%BzV&Mr3ZJAC=(b`XEaHJ z#NgGR_FHv$sG&a!AhYyo&#L&xwV z;JO(O;~>8i83UC`JMgIjOA7!-CvaKyYX=B* z^{P|M#WE>DVqhO_ujpPYUYcZGyti^K2wzCB6gYZk8P4)&@^+K$ZnF<#Y+?gw^*h%L zBUPX_C(cQEgLv^(Y^q=_c@5IV$JPDY7y~UdD+i~IkF$#7jeFd^X*EJf$)Sf>Tk>G7 zMk$1{)v|tY(dn%zPlX9ZYAoDYQK~nX7+1iQpNRuorSwtUYR}cO<2Bx57ba1Af&>yU z#7sgI0>%@eBF$-)d?XsyFV4!oQqgk>rCHP#r(+RXgKW?3eHiUkWWwi(&Pm`l^(VCq ziOe~LkQkvVJlLxVi7?YUw;C%H)9i$+^|M*Og=)s6zVc`aGCUttq-{9Gjje_e#J8|c z^XkNxe3vN!cpUno&?E=x;V;O~V-J-dM8+Gi z(ISsTj_eutIDNXYe|TT|Gn?O70U4qF+>{AQZC^RFe8eWWQtn(ePiqR38}(fe5It#+ zW}mDtQS@|7Y#`NvXH-ZoP0Q5OA38;sYq#rLz0t+;!B}HI^Gmm16Z09TU?I@G=KS=Bvizy1}=w~6CZF4xY zs+dIHHGY63O*Xfkq zeDGYR$s{pZwWORiiF5Zwem1uWhxOcge#>VtARibgx5xiWM1nJbthzNjFbAQ2JJICi z9v*-}=inrpNak?waDEWR@}-mr(Y+E>WuZO4p%?M^t;v-abX0iSY|E-qoiuG5Qn%^2$K#$_YxUojpfbtj@x~-jW23}pHV7|& z2pBb?UN&9iHqor=xbca}u5*OspvYO0EEG#JTGxf)+5rL3w70yJdYcPQLq!YA*!!O7{1<*Q}2vP(DkBmMPmz=-i}V zNFRxC=Av3^OjEWii?TVLOUY~Or!m?fyw+xSAsvtrc82V=%}QesaC0bQa%h{vC?S0A zBu!}8pP|$1a=<&?joTbZE@4vGWExc0;k2v7#>A|Z?*K+@3aahWHWiRZcSD9iDPa)W zKQ!niuT=8ZCH;-r`JXk2i$;8}MhB) zL5Yg)`IQgrwu0_ilq}thdbAG!#wLk3SeNLn< z9(d4CI18<_+KMSi)>AL;o)RlbVWJlvM|vzu%jCJO`Q$Aux|eUCH9eQstO|x_Y&59& z!ga$$w31HrUDy|)pT{xZjX827cviTxy1Vj_=3r}q1dFctQApC{lANnXAjfMH^L(Ln zj8RN|hxrP%PXD{g8L5zsR}{9gUaZ9U7=q*$AXG=i%%e$ze=?5rTLMA0JoH9$>GOpU z4^ZE)E8JBu1}}Da7FVVv89})e*<0m35}`K<&T zKI2~a)RJMeQX{(+;jc8)0r8`Ck%*KMy!s{iGg83KYkyVjf9Kl*sNh+)X@GTmw7qn_ zkNMsbUL5XMgiFR)oQC(Qeotu+Hl>fVVDz8BcI7tvw<1W@aBCIg`aAJA(m!eQ-^)^X zc{BMIwI%f>-`c65d?>AVae4qU6soPs6xm zt5%~iv8yIsoY~CqcYl-}n7=n_g=TKoi*pHW=NUPVBbLL8Z0BaPFsQzQq`;Z9P7D9) zxVL3U`%Aoo&5mz(^P;yb8<*dTxb&oUA+$!MAHMZ{VY$*91I-B4GK;_%wo`r7YaAna zB5G{(B*bLdlHK0_19S4LwQ+bTap@ga75FlyNRQD~z|-}Q^o37oC3PnhDk8%SHfNwg z*wDsjk_#rOMM7iv2hZ^niN_?K4NZM!}76242G;#SihvK06V@nulk^>_Nxf&Q!0Ws^kv}^8=(PM znjLl24&p4Ur+C%iL7ILB;SK5|P%vLVM=+OtoEDwnI^E6ruFs^p)m#Heq-6_4*IeFY z^G9ly6Wqa9gDdDOdj~3f)#=5wu?#*o{{=GZOnUFBHOfu;5c9@pfB90gx7%3H0t-+( zcMREg_b<;sSu z4W|MVXMg;R#c`<;z5J5P;J(kA@5_U=!T7nLJy%fGK@I-=Qb+#JRUzZR?&nD2T2#xQ z!w*jMWq{GREK+Q_%Wx`|JSM3m(Yz`)G~kWpDm*CLAn^y)_WntYqq+S+@gIUJ{juQZ zt{^Zk7QIOsCCk*M7fwAKeouqT>nbM&dy`+Xj$oIWed|XaF7zonrMSeIrt3Dfk>GJ0 zk{{K(CR=-+;>>`iVLR>hj(UC^AG$+;@8#N!6&M$S>K6I%pIIx4cL8hs1cBEhsc7?0 zY1-dJ`dbozX7}5faZhiv(1`#{=FOMaECe-wsAN2j6R|@klqPnlX2ukjeszpNsFm zfOR>6C6E~>!obSYzt|oX%E{yj0>+%Cq1m-cbb60}lN5^t>86P#EP8)@5>vC7;$tk!-;5fBy@EI_8kCngcI1 zV3c!u@;HiLc|VL414n+TftGtlwHuVRuI!~7lK^}(Z+M+?w#|Jx1n1Hmz}fFFTvZ@H zN)IFQ3VaDAMF4h=+k{7erBnv0$djt^tUDrWXy-B?M16ke#?a-M?ay{Axzrf-YdX$MIHE>|+;Wco3!877_Is{GAKv!|*p zh=+BjXKXRIZlAHx#qSzN5X-U#xZwB6f-s;bEIz0lCdP)zOvnf4Xv8P$jyr~G1-=*Bl zqh=}j@!JBAVwZ?E|2j4ZU#Lus_Hj0wA=MBuNC)L;-J?I%sRF*8 zyB|hHI?Wa0a4V5OGE*J!(lVQ|3K$6gmba?JS3HJ#*fJ-Y#J8`U?JAfJV==5=v!A0N zK3w07jx*cn&1QmO@qjk{axH+F6;5(cZks#txYxm5dpid?A@y!KmX_noe5EPhu`1V%HqKLfq z4Ht;FF8=v*r2q5=>I^eI=)|>w?L&)5{a$%k^Vttg>zxl`N*0uJYOLFPlEwoMo}c%P z!bPd!*Zdx4XejYWqyNz8^nBnrg*k-6)N2`rnkbQ=7$$SEab{p{dG9jDkdWm@PGb+-tHU5;>;@3hVKcExtj~Ha}A?KJr4O{7uxe zOXxZRd~1!Q1h_jKLw5S879QYo)ZML8R2wJZ9u4PSKz*5YqW>Ll{7^L;Ilnx`8Z~Q) zL`1k0`hNQ-K>06Cmt=iNgx=`T-0z#1NGo8nMU00uM%co;{HSb4yg&D|veCdp^vJgb z&>@@?z(8j%k5R#2*9MGk16H4?Niw&4&n?~OMdCdj-GQg#*6T~$c=e#?EZ+l(0!*y0 zIh=@M7>}e1Y?nBAE~0;QLg-+s+*8OzAC|boK^JV(%Cw9pZrlv zFX$ZTb3i9Bai{#2wfn4ZC%_E%gr>=#fgRwn_sQLVv?)Ltn?(cRjWv@#0b5xdi0soU zQ%RFdS5e+Zd$UEz4u|4pqS!k*UjeM1%Y%6SQ8MZ09&6JHbu9~s$+#pDSN)IY1JwkN4R zF?TM6Rpg79RUhKfQH%V$D+Y7j7FXW$i%#VcJYze)g&Vea4w|OS5eX>=QC1IGrtg(x z=O?Q=4F@xetmNg@ESf84Lnd>P{2ZJ2?@~X(r;wYZTxOWL@3UFjjaoqyF9j`;dUm@&He47-MJ@j)U5)VRN=6W-W$1$KdT0U|=->R6j1_OB%@b}LnWNCIFEkY-NO^EsYi8bCy7S$( zYO=iMQXM_r2!`jOi*|-(2kI)@FiH9v+~*WmSJ@Yc#rJ)`#~*Cz?%B<(M{76ijOF`x zq6{j;0_PLtKM_&Be8lc#7u`A6K6~DL9t6PQ>0DWK%TN-sB`FhyRy7<58vw+W|9n)m zh=9FJ?qiA!o|^YEf7{DPBx@Mdce9%zaMP-S>En~7qQc|=K|sF0!OR9v@^c4eXv12MGOr=jgdTaHp9> z4_<%sHjZHqlX7Xkdw?UjcYG^Q|0l}@B)H{bkT<>Ki;KFFO3p1EdP~+fE|s#ya|#5? zt~k^#C7ue)JDtO8l|$WQEi1DC$}t)kdO=*cGjZ0)Li8?>M~={d30x)V8q1iUb4n|L zW7tcfMM@swFLJ_**Wl zYKX1Shrt6ywsE(LhZbC`ML@@I{C%+P$^dx3U}G$!a>=>1TPY;EZJK|2Z zpLYq3ozcUuy_4AArq)-KP^Z;ZVlI{W{`idlikjN{e5O6k4Hhga_9IO1>X47)#pX0x zU8boSRfaV^iqns-io^#eg$7XCuIIOElaL%E?+GkSGI{8>{_HV0$qxH#ABUh_gH70I z`|z>m!5xM^@ zJ)36@n8(ru6XDV_Vg)mAdcgCN2`Xx z5sA3^f~Zop4%@WkMN`QC!>56!0=}bZ1nlsPoQP57Dd?qX69b(=ss|SQ##r zZYgEFrH{POvbFYmCk#+$tzL>Hqmf!&AVxu?CW?dDMJ_V#Z{{;PNIrL5pQ<1ykB7Wbl8*|02rm{@MWV9?*yH;USRGeO^v$E6**dR zG!eD9;lM=PKxd2SB(Td2PaW=4dI*VfR=D1w$#EVsJ^O&5 zu3e*n`}izo^0w$|X^@oYuTgCoI)G7btiFMOkRgVDOVZ;!MsMGp{d{uhPAGE9WoV4= z^h39Oi^ww09nt5Tkdrs)>+&xm`Iys|m*nL{%5W^PF%iotnN8n$j)*0g@+No+blCAM z5jsta`U)quOgI3QfV4VW5@gE;QP5&m!cjCuSe2xGS3TD=M4!JF3|Bd0^6ahCs^8ZF z;db27*u(KQsK!)SN_Sp+)RI1Ow$$37me=qPnSQ`_fx&)9r zxh*~1U0v9Dij3qmf3Rz($_MGyuAZYhG}~AtSFf!H;HD1qGcwX?@eSaAW6O7zCo(>4 z&!8O+e2E|3yVfz-^--pF3?mvDuVLLvUaHM@p?SHqN8{V>IIqGs3W(3@9H+hg5XP2cgsL*BcRBD1*@lHbcDIgqZYe5MBs4!Y zdV@lPhH=O-#|dhX5XXJn7PwLSk9So4-UhGizcXtKw~~cl5Ip`AVcKD&{Wtm7Y9>rk z<`X>VI9Y`$sAJ=DOXZ!OUF$Bn`ph5>JGs6k8s;TmyZ=2s3CtQpUS)q_&SW_~%(e_* zwCUxcgR*KZ=f|PNhu2jCzpdU!{Vq*tkVUK+0_YL&5%X~-b_{`2@3u;f?-%<2JLHok z{YS4d2ILDr|FvAB9p;V(acEQz{fe+|8Dw{l3MugIvl@ek!$-?z8R*JS`%W0n-q)%Q z5lKh0Q~ccdGPX=S@|b34fFHTm8Y;vJ7=&USs1~trG6CuM_3i6K;NzE{OegZmpU@E? zg#kh%ZjR9xU#3<(Xe%`;9;Pmos$N&Tkqz*9A}oH&UDfM52P z?b|sWnFz%SIW1rgffI~rvyr2wv`NkoVp5v9%1zBB*y20R9| zc0CQ6uex(+HpYLQ4Es{voC6Hq$%bfABeGSQ)hl2Vd<-@Ms|>J0l(vDq7PgG;JY2N^ zXGlSKqMP)AG6``I2c=}3ZI!Koeu`s@@?n+3-GEu&ToqJ$ByZA|O53sk(T7J)PIsNs zH--l;Zk`%y;0j(XJ~kXwqtEF+NRxDpxpaTCJcM>fX|~jnWy-pY3PuE&&Qi2hk9I>w z(lBV>690YJei`)l&<#Lxv>|1aa2`vK%Jo^UI0Fb9@$YZOqnx7lG1>|h!lIP6PI)A> zdZh)cLps?0iEk=8R7xho$6noNI4Uf%**SzjIXBZ0AI%DKre1Lw%;x7c(!oMpSdh7v zZq9+d#|hZr-{l0WP!Nv{ShCk|7o^yDt&wefi7rm=R`m+3;2n~4iz*fXgr|NYoUBrG zA znG0OFb#9z3NT{&l92q*$VVPqvd4p|b$UEAPZ*B!s2ARsIGtp#09EOBIzG`%KGC+$1 z3&YGzV|?a{Ep!>Q%~Zp%vuWRNBtL03EgWK|PY z2g1*z+mupJ9E+eH(|wDEq6?#R${v{xsSDS+!eZwv6ix{xIiHt4cpbQ>iA=8w6a60g z_Z$60AzV_PS|%F=X(>y#W!t$lmX7U;omm4iF32_WV>LierKj4fI4lCKi13{X(?7dr zu+QaAHSq7+X^}!~<0Lgw_?&*Lp=(gI@bGRvr>=J~i;~$+ zB&uHWYQN%3wl_i&PY8_%{p{nJzK&?vU4-@wr?^)oqoiG&#gBkuSXiSgD+8&9lk)A= zC1|#r!X880sHL^YjUGCfIuyGbIIa@TlIO!BWje;+1kFQ$qve`L z8zt=(jqICbUdqZaZCxJ+5AvTiJ9{*SvgG$P@MTRNW)blux|5y+>jkld)XwdAwIuYR zo7|RZkUr?QW{-dEYMW30Qp2y@-V2WkxpK8W)%aju%d%nii9`h&u_@-JmkI3|%NvcX8 zaF`ZwtY@ zm#~M&qLu+8$MR3-yUT&=2_5>yM1@9& zjQoffGizxLXL^Jtw!CB>LNoET;NB+4IHs;_G!U~3Xy?|`&eYYHKyTm+qY`ye6qX5^ zrHSSJXV~+A!O&7qC37yUbUZVo*kh2q=M>YG#is4;nRrG^M&~Zm)gB5wLhl?CcFbw& zc77ojsmVp-Z zhjJbE%8+!j=W6%!*@~I>R}rL885kaZI@;*w;n%5Oxh90`gg2HDDlSxR?c@%79(An6 zOr5vA5kmcPWcicEPu|GV({hYt@I>GB%V~Szl)v<%45>Zhlqm7|B~uy;))#qfe?tmg z%gL681m~LtT-@QmfY`KG>%Q*VtvJ`C<`3V~83Auvuj*!1ZfIQWx6t2E3$dIbd`W6c zCeXc>Y*dUCH3|GG^xJv*N2yrX*33yxjkLgkRlSHTu#f+;bJPdvHB!g(iWs8B8mmvh zZdaGQqYncweSQn*M#<;^RxohP$)!NF6R^msV1jL2sJn1aFlYl2)1aiG4GFEm?iD0( z=x}jI>S2WbHM+kz8R@~A0eNCyLHru?ICi8D4!XR%T*fv?EKURa4i*CB*<4|B5XI&O zJS6c)z>Z0bJ$tbUh+01JWyK6(p4nXf+EIAl661m5VUVY~^;Yo?SqzAAE7pLa`Z)@3 zbjiMYAMMD&shAz|Umd8mJLCyUd7uqw5AfACs2XP3P#{4-esqvde4nU>HY&EeUchZr zGmbDv=uO|bJGGy?kA_p-_uS9J(g`cH%0F`B{HZ~seDw$S1=({|6^^X2pAQHzrKg*O zjtG2z6q@aZRnrGH!$_~IMkru;4$llS{UCGy(TlN|2Y9LlDc!FCU|NW*6eu~|MF9%N;Vcxe|nxNN;GxKoNEUu`4i)@E>SQwV8c9I68en673G+HuLO zFPg+_sIvij=aMkMAcQ+swQqd@a|Hs23iQ9BvO#Go|5yeHV+#~Et0XjILx6{w;!#&o zy;A}@KAc2$&0EJ^hmU`dKWmfYkzaHIxTa!DIp@ZzL7b-$ z?^msZYFk7M^rmj>cTx;xGh>Kr>7OynV_!HQ#t#c8(Y+#s3?)IrLg@+dQ_*K#ts%e& z4U%A`flYEoSDzx8GP+xmxc|2@FhSm-QH)Vc*)KeI{+lZO^pP<+;?2vUt=7{PJ_$nx zmUdY4c|{mpVm8vVsFW;@eM4Npxgu%E^V!%V-+F)a7JRchDs^}|Y$`D$zY z2qiSV>s%WEaZ(M}4Mg40Ku5U!VgYzT_>Oe@`o`Z5{@bW04>0!y-{0!VPP+bIRR(>R z`X!!&Z^aTcjGNN~Lil&v?Ikhh8;kA5o#XaFB)?mVXI*OMZV#}T>d;ruZbiC7Y~UAI z53by*OIr`*J!ApCxna>kLozIA)F$Coe;0rWj&yb(Uo!2&y{XSi02X0rw4XZW2Zk+R z)(K!IK35K*#So1yT~a!r36MKnv~1Eybe-P7&9Js6d^6#8nVgj6Xg$}x-l}ieXt(hc zh83P^@Wh-~rQagf#*@Am+Sbgu^#rA1Y=$JEO=*ohH6bC!xIh7brEDA?0%YlotwqAK zf-3{M|2w#tnD0l%Afoz;lq{IWI*oox5-q%uAgUkqU$F(8HMR#Tguo*mEerDsdd*x02yZ_9|m(lfoGW0Z-UHPQGh(LSmywP zP)I>XGX83HimtY~2+I%QQO`<^IM2A&xnXHwRZ27r{g-OEcxM{p$HeTx{Xp2vXxkQj z&Ypx?My--EenN#YHG1@l|`{g;8?LGXt97kCl~E;EbT48pnS zo7n}J49(Tms`rV5LAhK0Hu-+?*Icku2g;H);GuL8+hv`S>gp57jA8=v`{YSN;@R@I z_=Mw|{r!|{j6!2nVD)9C3AB*11#&MDu0{WNyLk7qQ|`sSMKGcMckcuL6bj()i|_xR z)tqP|-kKim@OU+-wrFC&KA-76JR9nfeFdUQI)b=Ua2hQhManE{GrOx@yBH$lW+crm zcFV{w^uanGA&_>iDlvXgbkId}y}9c@A;Lz2OMD>g6InOGCDfT9f{~DDLYNgduN&moK^~0!}#Ck=p?|-L6oi~_#Er=X!&nr~J_p|6)7r z1bQ3afk74QM_Btx;0Pdc*V{pk6i3liCX^y`pFu14M8)aTFrQ{g0aVB%!lF_F`%PmM z?x|h#X?XPTPX}MjI+LS~hwgOIUgJ+u22tjEE&=g^lqXfTEW0&T;)ICnQ}zbQ4G2a;s$puXEGHpDFgI^lY$}oJ6BSJ+gm%SwtH$ABd4UmW!eZ| z2J2(0B8|m`))gCUSr-?J*k-cO@GTKqltEdSu88)mEGc~BhI2?5Y$B$=Df?dc$$yh z?FYoFL>|vimRqCP(cOWWISBopGd@QGXnBs_y_9T)(M5&YN-$c>xQlb@M6QAk;fLSj zHHu>6pIf0lPh!(lLcSE6AVkciF1)?G{0@D-d&2}`GhiPqg{4;YWAh50QbSMsgqWktJX5M7J(iabjLS(?>jLz4Ic;Vr@-U_>Id; zrXXS82VHx>#+o{Vm-BvDl`E-Fn>wpBp(x=6FD0=Dh`~V|o4SCB(0=^gsWQdh#*M5A zXe3qdoPxg(=uTTtcpDG{7V);bMVY`JfYL#}ov>G^G zAsr@ZDc5h)K(+`2m^f0Q5`T#9CIDLzlP+{%7UCfHfA?QO)%FfG5ybiMCy|zuNv3GY zU>)*Yhe72GU2bJF!qcHn_~7wiEdT~tqs*I96&VH$rY*k19vES+yQp0mZ-8YZxCEcL zo43?`N?`HGc*s)w2I#KnxJQim`_lLrAztucY)A|LHR5?$v_ADf=bshf5g@&)k#+6^H0go@v$idVqX>=trzDvYtprq7z zGyu5UJjyQR#*ciN(**2mu^sBq#Ve04$Xl?|lSlM_Q9X9hn7s(N!BIp&@^xj@97|+y z(sgq)>j!DQh9dgCzQ|TaD`Uj0(i6u*0@km3LfRKbbzI4}WiT<`qZhxJm?QWg1A|OI zmbdfc12T}HdMt$ddNSt<$|A3}33ir}FyT1ySao$``?zz#sOJ^V z0>s10iFv2sfuKa87yadGDGs-N`#b{%4k%L`8T zd15LMTLuULL~%QAp{*>un5%Jp;(ldr$!~g0iwK$2+etN` zz|{q;!&vc;-^)UU*6oL|v$j9bWblUe90wxh5h(v3a@Nv}u7Camw}IQc_wm#3bo)GA z>&+H+&D#u&fNEAMWI0dPWB@c&M7IKO`X~j;t-JcR3;fee2gBqU(w4WdxGb~T9dtBL zU+Kg3_U&jTAt8s3%ekWDt^<0ii8}Rm!_y4hD2kM^`HBrsuqu%BqlV8d078E%wycU$ z{V(?Gg=r8Fzn51|wQ%O|3gg8IQb0@TwPiyfddU)#Ambm-Mn(|Hs0TUrPsuJd#Nj2D;LZpGy1%J_uv(sCx&*Hw?(7V1AyazG;&&~&0mk76OR4;TkgHYSmpC~ zpFiXDx@^~J8Fz7{mrOdR=G^v6=qK9I!sZi}Jvaa9rdiiK85Qv?CemXiaGO73(0nm5 zN_N>YgP$3Wop&$`8?hD!K?m5_uC92Ws~35W9s4N0oO-r1+HMnLH8C!1sBxoda0>yq z=0sgPzF4 zrk%~K7Ev{y8DJ*uj?uPRyEx2oz)LS5^K~$O#a$+UMRb?Dh}*`%4c&?#h# zs_X@OT-CoK=B}xMoG#E4~*Xl=~D6_pwmbaOR-n4DO^k(tw+Coqi=pV$)HIF zwdZCZ^yO%VmWVERSNS#nn2oJ$s z_}%TQ2x3dz5QLK45)e5?oFewNxhHoX#HYnVNJOejPM#?0N2%%Ap_>G}-pGT0_k_NuY0Q_%fIT3G52A>T1HP?#hR z!Hh95VI5!5?>HJEo*oM~@`k^vh`t?7QCPD1y1|f$r8pjvwz<6?pf)KCvej*v-gec` zj`?tLzlOEfFD=9p56{edy*2wB<`;(s{N^DGU{gQu;eX z9Vx(;p~cQ;yvW9UiY{E_G3(w@9B%tW;*+{o;V3Q}xA?iaDvFkeqGiq>%ezKt&c)*} zKd$GwHOTlYxN`p{?zAt0tl9hBM%M z2wInZZYB=dWy%k^j#q%VMXwg>i79?gTF1&QAvkonHt$b4%EvfrX9Coe#88Gvd@T27 zTB{~bMmo+Wv}{g6_;M?jnECj~Tr(PxgfWcd6Ip7ySu|D|DYM664U!wJB_yD>xLSaQ zU;vHU62&V0!1cUpgrscOI3cXqQR=Tl)J!x*b!5vxkbS+6?kNP8oST8(qGs+y*Qeek z?Dz&bQ|sa}_|>UF#HhjS1z^UNDA2C$l0k`H-bYEK@m zW25mtuo1b;^E4Ua8guA_6-|pLad# zjjK5thNK)ysu^4C-kpGElQKqz7j>1Xiy+xY2+ zt`zZR0y)4cj%v-Pb?rHjqx*kINU^O6y!mR2%lK#8c66LbI4m;OIHgk0{ve|(?X0o_ zFiGGr)N5f07`oqZzA?i@MjTU6DvP`nd%kLyoU>`SRbo{{ABBj+kaGx#g2d*re%}9$3a!kI- z)(CF{yya{_zYwpNspvKm{}4VQEkc8oB*DDv(W%gl6TK`%rLp}d# zI=XVX#DNX(nHc)%nuqTF%4#j3;>Ws~LuMRoKiSq@6U$rSjVMgNe5;+S9Rq{#^}9N- z{v-Z{%I(c&BpaWMQwbUnw+j?q5fNTd=!&eK^#gBb|6>jNN+W$yRbF+$k05?d+rnX8 zON#Q&S(vI11Ftmv)YiSR9N;@`qQudBpgJV{PobLvHBhpt(_HzhlPY}%ym{kjjmp&N z82mmeLA!wLSTzV}sYRARxdYix1*V&}@R_8(nl!jPSBoGV{IoFTv#L9gNm9$Yc@n~t}5(gU7Gx0DB$Vh+~@ zh8KWUc*&Xgk{1_TYpC_^ld};gPl(upW$#E|x*5NEb40zyVj!eU-k63|oX%l@>vf6q zasJoGR}R%U&X>H9Av6_Zd+<%(qPb*6hER-Uks=)JDjFo2I{2!UUj2Ce5Oyxg@qt*I#w7UXN?4zXD zl%0_v?4=sBN*<`SV>?~1($iYlGpBzydaTjihQ<37mUlqjB`GK>BueM|{}2AlFj5TUtUi6JNl;ACKR$PHos&>&ksZ&Hr# zT4Y;y%5iT05DtK!%N;%5_M8}E5w$i`bFphMK3XilZ)_?)&4$4SdHGBF7DcB4X`Lra zk4sxaH&-jPS56GJhU2y=vi)@@tlpXZlV`LkCUMW|N9^w1vct>7^JVE-Wn4mo`_YZs zZ}1A{4#0okR@pNpl8ou1$h}WB^BxbPj+?hdQM)RL^1r=BDg8jVT^QHIN`Y#cV1&SL zoifB-No)}oLHy;u9?_ok*it~o;xit8^b%^#dHbn3^c z%qy4nc7QNUk_#K9Oj{~SfwF)pJMUpz^>{B&L5jgjbU65i3O$gn>Ji3OKSe4QyxNp` zvhNhy-LagLuevM^sbfQxH+SqT4#m z4o!pgapSu8*A+s%V}@+MSN;4Q8<5sLIMUw3eOR@$`$;=uUt$N1phW#*x9Oc**5p3= z(PIsL6Xj%|*r@_iz>j4KV?$7MNQp>c+L+b&Fs|v5uZw}v5Z5js3~Gx8o_^v)YZ@H; z+$bL0SFF}#%Q}c~|Hi_Nay5rFBHYC<64rV7cj6fX(Dft7jP2bePUwCLh|OcLuc(n= zuXHuWr#?SIf8GLw-24nup&GL!I zHedF#G7YAlMls*Wk%2x--;?gO-di=r7Z98%suqTYF=Emo8pGcCgDkLf)!Awzi;S3M z<9ns9gXvRFgKuO_b7<+CFs5CP>Nk-V&hfz{rt=UX2}H`Go+@~?@kU#obClnkT7t?U?=_OJZhynUD~_^m6wQ)P+d9K;`t;_@$c=_=j?_-; z+mD0YeU3rhwg<)5881hZjfgo->n9ApCa!*jxU2iqKD8H5t^q3>0w?@}hDgtcE=Gul zEnXq)mf*gd;zH7z>M!dk{2{nsTbNzaDjwXI;nIm>x-gKqX0=tuu|ZF@LH*-lZK=5~ ztT?yyLzFhkXN7-2qyzXZVwi^9^x}^;VpuEATe()p0L;69rfp#cIlx|0LLqYIE*5#x zlBkAbD-%P%V=^!DKix}0q0pQ>bFAJ5)EVwT(q(DnQr(jptx+aZua_5~_~Br()x z)eekrAwFbXsd-V8L;c%jo2XC5ut@>Awvj_x2I;S( z^E1|lC&}#-j%uz-!U*K6mpGr^KZAu82O8LZ4uC^n{7< zIQdD6MtpZEVO?X`EsRsq&kc-=Flu_^+1b|9XD3WBST|y}zKrw6i%N%{{kF^+KTX+4 z@*%ogbE%TB@6l}K&?+Z{GOz`lwl{Po!boWXNATzD?4rv`z*dSuKBwbw5*Q36H|YbN zPP1&OA!SJuhkW;tpMUy;kyezg2bYXYs^{{f$-ySN$K!iDuH~#V?!KL}Mm4Ts%lRlFHnm5S>52Yilj@z1e}v#UQhl3bjZ7 zC=OzAGw{voh5uolGyx#suOnCLzIeyW&VW# z2oQjX0iHP2>&11QOpbC162>9EzZ&Ms~rPhMLN`I zW>u?`JK#QH3e#u^YP5Iif!uwW21v(uWLnRI_A_QQ%cw(OJT{VReuf*4RbU?!5t2g= zML{oP-Mr0<4r9y#M!()i2OAD8VN~|H06_A z^D&y`n@e^i+2dDac=K^yr#h72H2VVN_K&MroQ$Cv4bL;NF%Jl*7&Qpnf|gv~!wI*h zOg)G2xOFvRLa1cBQ~?4X+I3>9@qE#$jAxg_l^T^_d3lEj%=}Peu{GT>@YpjamT)p$ z*o{dFv06N4rQAWog~7I?Dq`5${^x!BZ5xo1P3W13(n@>|E1)no&(kle9mvO@<%!=% zl`+vXXGzV3fxfaULDQ4#N%YknQ~o6z8>D_lRvl_Gbb0w2P~IzYe+Gt}=!FcxffV`1 zTd??L(HMV1`+iPVn z>cBvp!+>RpDw&+ou3#z^j}BnpNx$HvoCxch*+MOSJtLg@!fQ;GKaFJb)2-pCgTvfN zqhwEN3@r59+b{rc7riQ8A#8o40p(4+WSUDKd=N@m&6Xt73V)~j--vc%ta$s5eUoR( zq9t(W^r+F%vgrMMl2mg?+OzdFS0LG=28QGpxp(2ld`GOBBZH{Yb07OxgNw}eawXx0 zPapf7UNxO=?DN_9mA8r9m_xPkR=y|I?(ILigt9iN?sA_WS72Cns ztZw;ZzIFtW9{2i~tsi7SrfJ<-C1NQUS(&%onL*yA+QtL4UR14@+{%*VG-V}=BPbA> zK$V5&4Cr&4#a+;5Obuy(?j4wqdtb>VtX9|*a5MDEO;W7g*&9UlnFL>jJqu)lq5ajV zgwHvkm8!B;u;&C|7~c&FKjSGwYd=D@bS?-FE2;{)-hLrf>dS*QKe$+MT^PJg?uEpX zX~sA&ed*^2Se>yGRkO(y0sJX zy>ctW3hyd>QO#-EG%`yM+F3uoo>#Or0t?T_b|h^jyBuu@55t}2HwaId zZf}sgbwHZY=V8Y*v^ymbuXAo+WG>zu6JHEqK$^IJ1I)O^Kq%2iy9IPxIte|vNMj&V z!UAHaJX*#4S6#nI?>meP$@Yl~mI_)UcB~_-LMv5kJ-y%dVIUJ&B=SBMWq!%pn@-oB z^f1C;lXr+o>U19C9qgu}MYccX&K+13KS+;}Bk#I9(Kpfj-7RfGI&{(w<;_%Qe%a*3 zPos(DjNlTp_3;zRvhb(4Kn17;D3}3v&r5{_>N_L-KV`Vdw6Fq)hkK3+7t5L-CUqv| z6bzG)of-z}tMK07Fq^e~>;M9$p1~a}6V40yqx81mCqD6z-qpBo;jJI=UhcX$&&K4c zYCvxlm^RS{{!FXJP}T2;{?83LegAdGSx=p(QzfuTcZad0nInPW24Kn`_mIwa zZY!{+V&#x~r(PbdOmuHmOK9>|7D*$KJj$95&KD~o{weQ%43qxx0{?W62ey9JYM z4tb+tFvok^?u6GA2Gwn8(^kEyikc!xSy$F5?3G1FkILNUPpbyO1w(-rKlCJMm&3?5 zD?d^;U!>x@lMRxSWL%jmWATu;+OPOjSt%UNzUz5NFIjopJ-f%4>4;x@Y9VJn83DYD z2_M<~gWIvCDB1S__L1oqgyU5-sevgz5s@n1JFx~x*2&96|5XR9wh^!s#$E&%wM=gc zll8(eEiF>sWiB|c;mTTXmb@otFl1NolW`nfa1vgQh3Gp+FZ1xn-^P}GJzRKQc`?5r zN?X^|Stc}l@vM=LH}FI>>Xzl55>n2Oa1}*`_40WhemECs;oeE<($8`^@+v+fQs5eD z29zDXb)End^s6|>G0JQRnZ%nN)(f>ByyEqYN}EcogKw1g#cb;+tN-i#liDZ6$RS9U zOfl;86+Eczo#c%KF!OpK&t!TKeqzb%zwt$2-?>yK28)L?3tXu@+)rMPT?4|(H%jG< z3-W-e&4-ZWtr>$O9QHQ&{fypvC~tNJH*YjZ8G=Zn^yC&(xTi_|t?gW=__MhcsIrX} zC{~Y^kM;pn)wjToAc|-w9+wjQH2=_+w)n}6aUv4pO@bgzD3uJK&l7S$f)(5wbgkmg zJOotVrsEE?5=7XWNBVeXkEWunuNS z;Vn&64ntt4y9U6ki89*O(4r7ooR`;KdIOw9*%qPG^U(y&g9(arB=VoT%7e%_TjD5{ ziKR!S+i2rQtCwSX+^JC#atJ9h5&=Ry`gA}&xO=hb0Bw&ZUXQ}5fb#W$VD3p4m| z?G*uuC#QAhP?!_K%+CMp`qwA+_t{Tis1`6x_Sj5h?2^P$dz~kc*P>WfQpX>~AMFem zFhh^+ie*0QS=t3Ilwk`ZH{1=QU_H8re=c;<95H-u8?g57|8rzQ#VTn}U;~5Gk$WQH z|9SAe`KlFTKK2>=MDy`w<(~POks;O}W*v$gpUQ5oHh?i?0vvi8yh- zv!Q{HKP#7@WGBu=;XF_G^~5O5@zCO1nDfUC4DQ~;C7#p3t@M3>pl8G&m|;LzTF+sV zybeSF)+$1#DR)w)YqzmC32e&TCLm3Pt1cP}uGtwCUU9J|pv1bFk*)C#d+G)AeUN%ifk2yHF@PNR8DUBlj!x&Q5DZxXv1h_R8#jMe|S;+cm=GK*cX%K8q{dNeCLyp6P^U{L{!|+AR zGzqcn!aN}EMx87JGYUd{y&Ei4Vgfvc%&&at-Bo%}GZbD?E-jw`A zjtU&Gpw`;I&B!$GJP`yyIGmCC4@niI`!fBv&s}-;kkMGLi&%pL8}R=+KNnLw_ZGS;KpiXmx%rF~5VJ48_ijWE=20z07aqAA0x`$bneI;{M?0PB!NvNv zNXkq1n(Dh0_4RN%C`^~7RUdWRFGb55B`|JK2J=v5Y3?!ENHvoP<+HF`@38bwnv}S` z^N2hqgNq=EnH}3Od=#q#-_%6?6=m(kurB9yFQFIPY0oxod09Ic3};s9?imt}4F`Jn zK{Ngg`6r_b6L6ajj^PSoB%?MsrocucrXe8Iur9_ISQ{miB6dvQyuXKJ9oEeSwTkyw zh{4GGQ+kXQbrcqF&QqqJS;juXlEZmRGJ^3;%QRVd_aDIebreRAqSYj>aI(H`A55 zns?vj;qhpwY0tH=k+c+v{^Ka%yKH*vz^cXM{^939QGRKq?MHtfl2o)e0Yy)Rfz6eK zUt-&X<+9D83%+#ZZC>4c{p7AW7ZB)uLs3Fz17fV8a&2ftlhwAI`{PTwb?c$$M2l_= z!KIO-o#TWF1dp?j6wEh*-YP6Z8I=OqqL2}ThiIF+f)OJWePShtZHi^8P_=F)bDYno zss$9uNQYc56i3nE;O$dSeq(t^I*`Pmv|7_ACunk7Li}O$E$9zzexhW3U*f5h#=Y5xtu*vj8u2 zNd&ZSiV${Y(ov}3xf_7Nkcq#(na~Y}DdVfEs>N6*oYhb&-RTbnb1;qcAC-i7n^J}; z_#BD+wQ38Hu2bRmAGO}oIkqyTT)=-uxZTB3;^;2yz#qA2(K4e{kVRRH-s ziR=Q%gPIt3ZT2I3dLEoX*@F7LSQsW1V$`vT5%f-Zs2Nm z)E%T>;zFH{h}X>^TC!GjUpWtc;sA%P;NR+#0F`N}Qk}3sjej!B*(Eh5f~sF91hCxWCj<7@<6l-Fu?1?Q(6B8Nh?LpHw4Pkj^D;(8ULAy^wx-Ci9=YC7&lN173nx`|WJ#D?@ zR8ag$&{4Ho1P@dRrqe=6g^8W5JRMtc*pIv^$Q7agOgFj3$h}rHxl7 z0PF?mlIM%eRX7~Ru6rgaJN>~}okIWXxRVQvz=qf&Q;FLxvH)Jnx7hx}7XdTR_5qxM z`o@~nRJ{*8y{6i2&!S0yXfSksfD4hhZrOj%D17sl4fi0tDk%)5NJPy9sJh z7P2^0T6S`FJO*kCzqv;RWX_{EGp4ba$eF-GVQKCK4S=h))~uxwSwEKXV-O%lS7GkD z3L%!INv7F0j1#9DV?)rcb}Oi)9DRY$>1%-V4wi;hwQJl7iF~$t>*r4qpy#YoaGSi# z7vZPxGo5DGsCXz1qqZ5))it>UMjmfK zj`&==5y4km7A=vXc>U`cA^ZcFsbqJ+o*W}jRnS|v?uIhi-pS^UeMPB*knD$G6fA9PLLB zhp`@X6pLBsSZ?N-693R+%0vZkU!V}SgvamYM|-V&u@@=#z`)A#AnNu%x40eh8+jwl zWi{E?v2d(?t=daz9oj5tZBZi-jJt^I8|&NOv^2)V>P_yna?150AxKi@Xro0CvKT7` zKZ>61n)G40u`GX^aFzgj!7lE9ZF*25REG^U9bdIg5!V}5ue=K~%$yiZjN~2P&oqQq zDDkKd4zTfRJXi;b0-d_>V4wdo1VCDIGtXVZw&d77?@Y%+77ruxt*Ac%BX$wkZs#BM zb|`{2i6zz%%n@jc7*`@jWq$m_&D$@?pDf?ETOfPgQcfK^6y%~uc$Ag4ND-;;lh@=0 zb(SvuM$~?^zuCzIxtMSoNHBRDfhZnkVdNgLW@(|ZZ*){C2oqAgP~LYW{GbWR?@_&d z9JCAA1xYDW?B`pkmyeZ$7+Xed{Xl5@F!S~n$mRhw6tb@R__Vdm57UFMOYChXIai1x z-)F>od^WUEdeTDJ<6>o!rWEQA6lTlc*-Uftu1z`Xn7+Uf(&g$tWr0qC5$)!&9L_7{ zyoL}N+5}ps#!R;qg$V|Xh7r$We1E+y-bWAz%0dawi#tP39mf9HN5s19FC+8o;?NF{ z-7YG{o)7r{+h4VHGqjqm5ezQmAb84iMjIvOpx~@+Et3sQTx-0EnxS0@cg;97`@Kkw zIjJNsw_#;=Mt-!JDl*Ux<^X1MWf+cQv3#Tk0ALf#EgXE3Y2U>RHzQOjsY%ue0(`TX zC)@98JOuE?CtT?phnd}M(jWvmF$slfr0;_XtU#P8t*$w*c;^K=lToBY2t+4@pb@8$ zxev{27pqdA$dVOC)^0r7v;vc~XK)QO$K4;rG1XAow!XTQ+PSBu4TKv~iQG#-9u);s zNp#TA0piUYnx%F-i>D{_8ya~B&Ou1{9PN?6z7*5zLn#-(Ow(bGlDI)tQN&#xRGyvu zLGFgJ4Pn34UNoPbpUSNEU8Z|JhLkp_dU)EMQ@XW|x7zs$!y8D}Ga&m~1RNm#i zc0p==+^nTG2|aY-CU>)b;&T0FH=uzOPA2;Id8+h9-aEaYB0hX}M*$w~;;ZL^dHErB z_%rrJa@_72I=?qzUKN|>PU%iT&J(Sm8f6X~B-P`Sej?5SDsCF9%6_s+mlv<+IZs5r z-bPd;6L!E>Au8fom{ce9&ad7>MhX3A%S?k1-)=xhAgru{Gcz!X4zQR}#5j~f`ZJvb z$vX%g|7UNM+AX+Pqt>BkxGg@c$f}qZt-j`BjKxOY5157gzSqcUd6V|1>@|CXCwWyP z3=DbT*fXgHUG;wln+|+}faWH`PqmyKbO=*f?^CQwN%W)4588g9hg{qd$N*&h z&%8Lna@yq+(}0##eqlgGg6%%Zz;z2vSFt_)TL*??LhBZn7A$*#Twpl{0rKSW2~m*= zJ8a5aD5=Rc0LcY48hu}~#DD~2Abp?f98el6#<<7BB#s|iJQ$fj@Kw^C`WUhOrec4> zkc+Xok-=^`_cHhBtA^(bku6G6^`ONH@2xUjl=dZ;*3?s*iMkL4#&#+LL>24nqmcuI z!#dYKjJUT%v$$*}dag^-63dk18Wrn&sOG_2&}M7BzXuNq%g%7@iFK2G?L-DA{>&X; zJsO_w(wJLxgbLKKK}JVTSU>n ze$)#Z3@ktLF;#@&F}uL2Yd=g1U`^beMDGyPa^t6~e7unj+oI9m$aLKNb}>g<2n_o*V{UId6?-bNy3(ZGXi`cg}fM$PG$XYwtlRULYqL!v4$ zh9Z;xRF%Hew5NPYZhBPUxFP7c;B)0?zBnlROT>ggxgCiG#lpdsa}zOD-*G&_=2()6Ph7>*yc0@5c}>P0yGA+BMjphm#%%388JHC|Hw>*MOJ%6|g|% zG6R&=`eyXt8@1QTarW8PLCvlD7p$VOC?0IOUmhUsGk9tSD@G6b8JF1^VP6XdV)QZe z!dK9Hv_@~GWxwG^Y|4!^|M9#*K6p5q7zc6MsWV-A_UZ~QhnaU;htVl5O)-bcGuMa4 zKHLuao8U2OAvW`!H4ZhwP2`E*QqQ1FaY!L4IHiaSa+WvW8`hB}3Q;P_dqi7U*N3Wk zcYi451h#$lfO`I3zsQ#s$BG%tNl1wtWkx0sJ*kAKcm^Pw?_{Yh<}{c9hZ{9KOSHt| zpYO7-40$FqM{EyRN+tpeAq7ad;*_C6;`yeFI7hXQUzdmc)9S+~hzAxmS_n$F(iTC3 zmgz61bDGIh8^wWJ;9FRSw^9hcsIOa+rx{JC{raSK)CN*mf?1?F4m_}4wrZP6-aou@ zRC$~6(ttW{oLg(CpMgSc2z58)qv$@nP&Q`4Uk5U={1oeT_B7af2Fc8*{V(a}bR=r( zSZ9q7mHl#^-3N?70pWzpAu{5n{Yw$KEObuk;$Mq3bq@5E>~{qm*7I{cQB)Q1W}6$m zXU$ce$77AJcy8!p@s+^St2Eg;ac#HczG1QiglRtKaA__b5zAj*JF=gLkW|;-a%@l$ z!STFdh0vEe2XJ1$f*l}3r!sYDGpbjEOl&+UH$c*$VUSB6tzCp zMr+2yR^EpX0kme8wFAb+Z@^;CLdj2lU`%_i8Js$1cMGgIHjxBN?jTLe6Gmz^62D`M zD1qQ`_O2lk7Hi8&QH(9-mUx~wXG->QrGNd(qBl~qYPvxA2SD0 zx>OLQ+_|4-f_9xT`vFn1?k|`MDKROqM6+Q6xyiv%`f=00TZ{k>Gs<`Z9NlKvu~Vw$ zrgm>;&!Q7xdAHByHW*T)tr|KVg{1m(F(uv3cxb1w;83R7&^z%fTuQ4<*58mU^oL~1){{&V%A}e)%^WBae7!jI0 z-E{B{du_PPa>4)5@{oN4S4lc~TY{!4G;5dk)PV#)? zDqx!A?2~a;8WXg33+MLbS};7X-Rm9$IlYIKG3dK-_}&RuX|}QsgP8?aDR5hd8_s}D z7OZ3gsC|lqtAiZABOOC8(@iP)rV?o7cMVIMAJ9m&TrlVaVPLNFKE~LTMb_#o2aElL zO+$qW<=(0HKbU({g}qhp7+=ioi_gX(Vy{6U9>+krOovjAI!j;MsWllP!yOwik_0uB zAcmDGZDi6j1Qe0)OV+R!^jLnkYcq}za>j3f~D74T^ET57?DQ+3ZXJ%!kNWPJi z@WPULZq4AHy?m*vzsblw3^A}#%OaoM&x(H|gw=($p@AK{h+{#F^@UxHPe=YjT3T)m zPF*87W+#E?m@;ljXT4$^$Xgdb3}$$PP2H~-iQxoIj0UKM0T!q-g_^RG;pAA`JBkg* zhFhlSJ3yeAPHzrha3k$$gq9KrChlY@D&NDd;7W-< zw~{0*&KO^}<@25O(8^Pf(m=O-loIg7`-QbW7x%|9h78&lOh1&bTX~G@(ouZ&wLjuc zNtuXfb#)l;ix!Ckvc0sX1ASNOSkmmof-rPdD|ll%%?K~YOpj-8*p207&k;3M&AHnbk&|G<+T|IOor-yMQb5B}0WJF}ku4V&S}{-tTPKa|YKbuBd1)Q|wJ0HEy3 zOA85t>k!l%e`q<%cb%1G_YJ$}nMszM7=qV1QB*;)=wg4^2w~U0bhq#2(C{MYq!FM# z_ymVq(RyUO4}!)}HCr*e>}%(@J?uS($G;cwI$i$(DS~U4IYb2@I}N=HH_Cqo4?SLg zWZpgY>6A<=v+vs?iYNG%{_wxAJ$VB)v7oMiDa{67DS#ug%KpQSS3YoMQ*b^x6obPC z#58Ao>ruC$9uJ?zHKgd$m8hIvQjmQV-*O!3%Sdq(ViOcARL(X2AL#rCjC&&>C&6};JXu;HQK z*5#vte!-h0MC3V)L;a_Yvdn$+61snob4X>{1SvO4+NRny#ioN|#?NF0zm=0p_N1TC zHkz@n$)1jAw7aJc#q z2movSoTGD-+T1QbF@#ocr}<oH6M} z#0qaz*tdmkSDk+(@@08KNM8f6HnthHoYjY`sbgVl5vs~L!&smHdpLJ7-kifq`FB2t z!dGQqK`^K`20&0}Y#Hx$%9b3PKzWR?-h)E(7Q-kJM3$g_|DB_1wX+blj7^T8qCK=( zpG!=h{V~p{0X#6lCcYpJ$w%(!f^ira0fD)F+k9x*_D|uVO%76ea@977x(Jv;W41&| z4W@jfe?CT-jyb*+bT(?ZcmGmeXmL zzH5xn;@+6G#^tHq<-sawmHes7ay$)AMCvPd-m3Z+$O!#b38QSan?F1a&( znxY@(OR2IbGa^C;KjAA&H;oN5V$jw$1)z+w9uD|kj&>GpnMO?)7xIf@YX8Ka4M|QF zlv;3idYLVaDBYHw#ByEE*xBNDPjMWOP`AzbCfs)d|>P2hB5)QEk#VhpxCzL2nKs+WA#EyitnHXO^ z41hq;5ODbsAnOk>DfPv)%l(wzk3Uq*Uhu-lIrnPm;gTkZHUM6#=}HZiXj{h#dMcB( z@;&xqt$7LFE+tqdF_z}FKQtLCYi3(g0dHhn=X`i^gl#rbesHidCF zsxKO6E6F*v#?#Kz!UGbc*&A==>&Ww;#BK?T>KsW!GUVzllsA+Y>&9gyLugnaW_~7J z&{=V?Z4o`45MqhJf2Ienc@>tshfTQ)Bht^#n zL^=>yqG#<5!1VJ50R*_?L*$hk>{>V-4KKzSVoy%=rqgQyEWLkMuPQ{JXa zO`aNAXtrj#?VwM8XLa_Idm~3f8*u_!j$oAMFCGNEj6L^o^$@RB_hfau_tezV=RE1N ziF(r48!S3qb*Q!XiXmGiplF`5RA={!euFc$E~}qcb6T*`g+tfup;ZvH6_H*?N_jw@L)ksnzqbRxDoz5a`(s~I)c$JRq&WHF9(0$Zc4}g z`DO)-LC~~Y8Q@9fP}m5Px-dC>E0Ch9{6TTx)0+0=nb(?A{hvR9ls`qL_rhB@NIZ?j zmQKc9t#2~3RO3LhsmiZ9spp}r0|^@)ptundXP4_tj)f}YNj|9Tt$UEJE{QTsl(e}n zwkovM8?LJ!;y&JgS4s8C39Gde)z$Uoz9_K2z~TcSPzH*ULuf~5tU7s+pb!_xc`lS* z)UC`XHcEa~3~kR#R=lEe47k@OLtpL*880c+>DzE?7;EukCQSEMDzy7G_pm*}Kmg%t z_PqwStaC*KOe66H)4C1?(wo~~zoms{%-~bolV$6lF~Bgm7yry^5c7xK5L{KCtLpkqs6LXv!@=5pweNQg%pdf zW2=?anJ)#0gb#E$>Q0xkTfUALf6+Eu%Df8$>TdX|;OY2iAOae-bw29}mWMQ? zQm66m2_sp)?V&1f*J5#9(tQ9A?X|zIBHf7sWmu(4b+at|22)Qbu%` zm?f#~k)=!s>p#mK$(_5YK*F?mRYS!T+^-B_J1W**YlJu(H!o2KVS(eY3bz|q(gmk2 zTe()Xn2(^brmgrs<@@a2rz|jq%>^-(a|KflT_vd@RZUf3DuDCyp)aFjb$Cb3u*JwV zp)J&E>R9xbEhKB}fN(8?M&fZhBhU-eof9#>8<{6?Q%){Mk$!n-S{P1i3gSOP2e;Wm ze#Y{G8-e#sXcx#OUAbEXUI0_Q{b-JzzDf4wAVUNjGX)RZm@~uRv+4czuFuG3n;`U( zOPzBX%&*bu-nfdQU#G4K(DBCVwO=petv^`BsnR5rz8al zjKHpR@>Oq*8Imjb#m)j0E|xq==P)n&7s?l(%Xzrz=!4h1Uleaz6pTIUZte|U=M~=G zqKabNa!B%Yle=Mf{>16i;IfBdDuUEj`6igf&lhC2o)!osX$dCEh4`Mw2A%fpj}v{| ziXQ_2CilD!=0-da4o5L!F}Q+62_bw)%KB|@?`Gy=m(B_(nLvD@q->4 zOEZ6^I;P(ffn5Th?b`SZ!4d8NsE*e#b=~8&)I0_2#Y2qMKCxw+V-^*?y-BUZkaV;oghLHe)6*e0FwN29xq7mKk%#afJt* zQ7KjJvXF+zv;`-HEi6wbEma9lM2)|&(RF2*>%J&P@^NhD^UEyELM ztf!L4ESNX9*oxRM<6s`583Q_g8d-yLMBcCoR-_Pv?m_WwarD;aIiSI=F433~54y4x ztmW=HV4=b5&SbgZHb@^pWX=_+mEg@rwJ|*9=EP)RCQ*V$FTw7@hU@k#@;R7k5%i{KXq4AA1yh7iWT8Hmush| zk(r4~|GRHN&z(vQ{rzR065mafNS?xbW@v>x*^(N(;@_BV1!+7dxTgBe807qEpT=QO zBiL(TCtmkzpq11@A3BF^1=Z7zYFn~uK`2$PBSji3$N#{_1D?qtdx99N8)-C^r3(m8t5n7fVxCJm3Vsq}f`{h$jrFGnE;}<8@0^Fqp!Y-ugFHoVU*7hc}1Fsx~%*R)b-(3bhoRIUj|wM!l4 zVbHD(7k#5YLHoEggodbM@nrj+y{w{{^5IBiUK(7tX`r=28kL#)=O#NZiEfo`M^cB{ zV3=_9quqiec~Q|i@Pd5-;}AjCUXfa#PF}^o9z+CUH=WzDQ(p{|&uA_9u?4ovLZQgh>O@)H#s zcdw$iEPz=adV(1}9Hob}6}&rwBBaon@;PCJ`^HxEW#7Y^){7r-#%15Fhu>H?9x|U4 zx_%pS6!+}0DlwxmnDBk!fz`y-?A9;av!Tw9ZKo**DARhVJ_9&tU{eIFwGW{-JSlF z?EZ%jeVkL)*T*VDe5J($5ZZq-@GNO^-k1g`U&tuzv4g^XM*A@%Gv;R~GWtu?708?l zf|_u6r7vEGWNH4lwZE92PX^2-#br8492KyhWF#0Y4)h;Gebb;E0#j;VDx!c^5yB>8~c2Xx136*Nn1fd)b)kLu;2 zSfmF=6#5%f`TN(FdVaiJM+#Xn8-;3Q_-*bLx`mztz(2ItF`}Q*1P+=h=!?9BI`9qh zHYuGea?}Whfr%7@d~>I=^~&PDyHS!e=2l z+7ZPlEe(47EhcKV+{Y*J@cm=`mAl0GM(-0jiDdzh4PdGfJg3rhQmeI}y?IkFXaKi= zq*I>cr>ROnP(HSI@AyYl0-`I}i@K#G^4riy6XTqGpNutAzi>_^*|$BED`d z32mgc+qRn=jZf}V+G3DF@9&qp&_a-Vz4i=)fbfS8#-_+_n$clMssS$`q1vF+)%#lV zbQTe?*&zEG&(;8K#T#cp08nWYo9cxm+^{;4tYPn-2JI^!Af9<`7lI6h-okM*H(x=M z5Lr)b=?42+A>`@A-%^Tb+oq}FqgzQZizfM4Jum@APw=pQtqnWAZIf0+P;#VB=hHva zn1`>72scCPiHgk}tx)}k=;QyM-^3|vRthA(y?zeLnEg-eZed90I(UZlnW}roj}5S; zoJ{kyDcZ^ktRv?Seb(AG9&E!orBjX_LF!8%Ei~Qa;N;2cHD3K>1&EMWkRR}t-GJ0y zJ?go&&@KHw!d+}OC;FXk1>-O6;+K(blIV3sT`Ewk37l~eKOrCJ?0ZZmSH$&IL6RGE z^z@}kXnU-9eOttzqHrDgRrB?*L{+dk*)aL;&TH@y;RTHYUDAZxQ60>><&J{{3*e5P zhR&m%AKGriS0F*d^upO>6S;t{|ELh4!@6j6L7g=>HvrP#%*vi&@jN<6LjHrfRu*(TJ{L85`jKk>k`sA5ys4mOEC zgb}I8V_4A4^rxurx5?0(ODd6yQ%&xd{TTJU_!VB>;NfS)_*(^PR^o>hOG~~G$svYj z@)Qi&!IGS-QIAp8JbTpE00C-_bzyO4-GJ%KgErXR5I+r2JjcqJU9)UEP}PHAiwtv9 zhZzdrXO|VvvvaLOQ_sJIlv)E%AdFHQX{_!u_wAHIKr(-UgFYy>u_a#$S;_swBJM<3 zrHZfb-sIierJE++zcXRQU~x3#_^F^Q0P-HY&c%REVuiQai*yIHs@mCHa$ap%e;M_mS;|Ai=nGIsBqU|xvNi8`eRkJvZ_>pHdp}L5nx}Pf zS)^Xijr}MDZFJG4e7PJ^coH4wIXN~q^b0i*RrxK?g6FDWIdp-u35aMu1rb#QA$gWSK_vgRL$NdqB1g z>+{C4t!&k3Y&CZCb1qRk2n6B$9}YX@eI;I61Hj#hv*ls~5)H1fVUba=$AkF?=P^=U z6;0{F6O~U3?JDxmwXo1?-H0Wy)!fh#tkGw=Y%kLtz$uX}qYqDG!&cyNsDQ=QFY?fA- z%ib%!6>w68I;$34F~WvKo?wBW0suAIENi*gHhmlVkVXZ)ym=kx_3Mz_PEM8x`L;pw zOwHpjLxzKVJY&4H%R2MmAD85g_yy^Fb1sccfS3 z>W&ql1>9}!+gF&;aTdfFBvK}`SPd*Ze*FDE+I;RNR8l%RsKWx^X$TuM$iF*sLcb%R zktRhHDgYHdF#7FjmtCP_rZ;I>>&qTXZz)OAgQNoUUI5%>mM`WH`w)k^~``!AujiS9pK93 zeWwxx<~}6ZC6GkltbG3lFRclcO5#OW7{RCpv6Im2 zhO##SP~ogZ&f$s0eCdHh+0*#oxTM8m5u52*`Nc-i=lujN z%f8%4Wp{lAU;1{Mk@dZec;(>@l?D~i#w+*f=VKHurR+HyL4>CNFMk7kFois4+L3>B z0H)T^>3GY@;X{qE_0F{?M8?1m)-MXC3Kkt)JK@MEQ?88p(cJB_#1LOMtp?6qe~atX z@8P0=MW1H0nTEYv(D{?q6K$90$)qS%(eceQIjkT)s0($*`)YJFDQu9hFW zXk_?pjZ_Kx`-`!Lf&5 z7qYNDwQVX8aYr-Eu@84IROy}BUQ^dhAjZL${LTqKNW`|&__SkM6|W`N>>wV%PtuhP z9}?%9lyuYI?6-I9a@%cvuB1}~JDmsq(#UEq3g>1p1zc_rLt1N`jGN`{^~TduuF1~) z!==_R@2S8~B7E%a?QFr7gYXX--VffCkL(h@Gc+xQxEd1;krHr)e&DP^s9``E**#nI1%RClS-Px{(YbjZSfuP<9%@h>Cse+Vr_VVgjw~yqP7B?0 zbHQ;I##Eq06oR5R@l%UV8wz%To;&&ZBtpQZJRWDyG)s6Gl)0(R((Jo|NI0vqc^QK^ zEj-}zxBgV``iOx0r+gXD#g^PnM{+^|c5!zw3RTjg9rp}Pn3zUW#;PhhxHsu+n~n2Y z!yWnQnJB-=gRPh)7Hm_s$!c(pnB0i=m2})d{7Os`*9=J}Tz42BgzQn~O0WI2!=^qt z4URK^Lo**9wdYe{D}(zv)fAp#+5+cB;P&p#(X5<>eE?!a=bX7?xAnD5rAVu|=iOfQ z(sRb1+VA>|bbnUS?7W8vYa2L5!t;3H&X+`K%VuI8<0WNY6J&j9Cf+ewlhjxaeBbzo z5wO~atxg!gE}pplw|AfeEkXgr3@w}=g}WlbMF9>E+slU1k+=ioT%=&roTtES2MO-W**Z3(m?F!ZC7A(NA$y;ODb?u_QFI6ON$B<_tX3+6v zqw+I6F3kLGK1M?-VK+$IIz_{bD`(YZg<#C*hx|U?%hrA;uTCRrX!G(J3xEq;7elX_ z;-+njiF_U(UdK+k6-WDQ!Wc0{U)_+^OrsYcp`GLuRuozzIjbO4J2p@+L2_faZoB%! zBi0proaA)ku|V&j3Wl+kLzdu;knm&H?5CtSemDRElLqjE*SKr9)nRGVs z1>JK#VJxvcDiExFGr&mF^*MK^6HgV-La)*z%ZNh1&!OZpw#j6w^9Z8Is0WPhKRM`c znMn=dGCCjWKbn9K$YU>n9Bm0kNVicYz>i&tCeijDp2|1bI;=sw(#)?o@*r5DI zgN_?dM__`HQ71~8dWS4et^Vf9asa(?K^dwB%#GhTsOr9BOiKq^?a0o-G+EZxy#u_e zp0w#j3L*sMTi}a$(aaj*V-+01a%ddmx`vLPuC09nfqAw zsiQ}5Exr?EX8JqbJgd%cp(bs(O@}v8ib8+v%PiXv2tLTTsD<&zxhjw%_%+$zjxT2u5w;wOH`#S^#EHmlp5(+qphpiU=-Yl5!{^MFQp zquz21dV|crbDL7uo&LS30)VJvD58pRxkVkxRGNBhR!;!^yEq!(Q`ow=CYp>c=jtOj zqs~$-Feu7afo)9%5yXv}6n!zH+TKn5{$hrpD|ubDIu$DIMCr!AYQZ&d^BfldG+4a0 zwgS4bkaLI!!6~vSBBs0$mV$chrrk^VH8vKbTU;Sn@N>jff7oK()oZII(Eq7SjXN? zE92YIX+gs<4IvV*Go`wCQ>k>iRPs2aZafn`Tkjhn8dEW(?AK}bB3>yK6}5jgWKTEB zv;Cv${|1DLs4YL=NaSh|q3OsokP4fRg;=d|;zdRy6zvKeBr*s+MlFCF?wDL-qcQ)i9J9#j|j+G#M^FZhpg{Tg3 z&u84l{2>ec7*{}uM;6rxx1QwBAHr4HA4=U;)ukerrMh9r;!y9&KCA_mT^ho`KL&h@ zGn#9!!Ffk7IRiJw!)JkG$C=+E46|K%cK&bviAjZ|GcAHEr8-tH-7)a~e`b8uf}gM! z@pcQ$&JqL1?1~Y|=BWg~Gtmh&8MOR@P1HrJg|mtpql0^4B66VnQXA-4-B4e!|60x= zQ?-p9bErh))VP;0KGinO|o~bK}J=mFt=3<}zQv?B_p8b!dg4{4khZ(rZTRG#p?zgdIZI4f%i1jv{2>8(tC1T@*JySuod|n zv8_ukAUU1(?5#~3{vAy5rW_mQAJuEU%z3nsFziKu0puirVh-;mqnxtJ!0Y5m7L+be zSnbRV>_F>9m`|h)oJ-9m#u6BZSY+TsQTEOjRSo!=Q^9S{$v_iVAysDB7g3E9O#uf^ zyhYorkqfqjIJ-129+K!P(oahC;-M>vjwm^>vVg&{bOEKEhuo7EW~*>(fpi7u$*Y@w zLEM0x@7;k#f<`G(sSSw?9XN1ndzUb6$K4;^EKN7=yG%~+t5 zNHo1?N{~iqT>X^u8csb*QePt5rNIKhnqE)*x?4r#&e57nTbMR$llQkVQGzHb~n=VXSH9aJ8aIr210=$Uju z)dB>$Jh=T8GN?L3zeZoTv0Wi!uN5A)n)oN7)LFi&+7{>s3?5WnlC~J8Sq8eQCSWEP zGj}poQg!u}{Gd~>$*`tf_evx&-dE^;IxjPahz*`A zo^Ig@NnoH>^bpxnNH1Bbchr7Rc-Cbjdy&h9(U^%$lN?d_kEITC@uP+zu$=<3CYBgb zTDQ&u*`_yR2h*lMP{I`KriDu*ytcu>qk!`%B@S@-Xz9ory7J z##|4fec_Di`vm}5woFtcFOfIIz>W zy_N{%U(%8Uk!MDYc7j0X$uR4R%&Lcym2^Yt)C2x`jd0W>nNh&d@|@a?RD|dHBD^n9 zf}wKt->JR8a4 zz>Zu z?{gR|1QUXH_O$2ZN;lPrm;cD+TRnn+V_uOf;*ajKRmW@UQ6>@ROk!7N%399a0r7ej zXQHMN^1S`T35J}+K=a+&WlCV_QlI3P)hd3Ikmu-|@fU6~2qkWW+`zjFdH^^-))pSI zKVSpT)$u}f-~jm6tK;Bi(FayXM?l867Jq<(J%~xC*s(Q zq;smqT2gY$tRqB(J?hP;IDD@72f)x?k^yu*Tzar=vu)#FDx6-vMo{T?deynr@*uj7 z=Q6BRQlq(XkIE76Sf-f&J~v)4XSP0q0HNjo(lQt25qn2h4*WPJDC^eW#qK#f%&

6o==Tz!&#HGd%BwSoiJqD)!2?)1P8N` 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�H@2`7573T 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�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 QDKYl4PRTC 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 $s&bNKnIm?GJnY@ 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

m|6geQlS^k1&pVO-bN>Ga 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�T$h?3wy`v_LUu7OC8O;aC37taHTU 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

*7N#)xESk5>n8pEiy`+|5Y{17fh> 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⪼b3H!-yh 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 diff --git a/openSSL/lin64/libssl.so.1.1 b/openSSL/lin64/libssl.so.1.1 deleted file mode 100755 index 09742325029a2ed57b2ac3df401c029d3fa0d00e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 706672 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[DPXE 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

ey$~1lG_{4gaJxw@OY! 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