From 3aa21389cc2265e5d8a494bc028abb5f3ba16de8 Mon Sep 17 00:00:00 2001 From: ziyue <1213642868@qq.com> Date: Mon, 1 Aug 2022 17:22:53 +0800 Subject: [PATCH] =?UTF-8?q?=E5=88=A0=E9=99=A4Android=20openssl=E5=BA=93?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../include/openssl/__DECC_INCLUDE_EPILOGUE.H | 16 - .../include/openssl/__DECC_INCLUDE_PROLOGUE.H | 20 - .../app/libs/arm64-v8a/include/openssl/aes.h | 92 - .../app/libs/arm64-v8a/include/openssl/asn1.h | 1100 ---- .../libs/arm64-v8a/include/openssl/asn1_mac.h | 10 - .../libs/arm64-v8a/include/openssl/asn1t.h | 929 ---- .../libs/arm64-v8a/include/openssl/async.h | 98 - .../app/libs/arm64-v8a/include/openssl/bio.h | 852 --- .../libs/arm64-v8a/include/openssl/blowfish.h | 61 - .../app/libs/arm64-v8a/include/openssl/bn.h | 575 --- .../libs/arm64-v8a/include/openssl/buffer.h | 73 - .../libs/arm64-v8a/include/openssl/camellia.h | 83 - .../app/libs/arm64-v8a/include/openssl/cast.h | 53 - .../app/libs/arm64-v8a/include/openssl/cmac.h | 41 - .../app/libs/arm64-v8a/include/openssl/cms.h | 512 -- .../app/libs/arm64-v8a/include/openssl/comp.h | 72 - .../app/libs/arm64-v8a/include/openssl/conf.h | 217 - .../libs/arm64-v8a/include/openssl/conf_api.h | 40 - .../libs/arm64-v8a/include/openssl/crypto.h | 467 -- .../app/libs/arm64-v8a/include/openssl/ct.h | 533 -- .../app/libs/arm64-v8a/include/openssl/des.h | 174 - .../app/libs/arm64-v8a/include/openssl/dh.h | 361 -- .../app/libs/arm64-v8a/include/openssl/dsa.h | 283 - .../libs/arm64-v8a/include/openssl/dtls1.h | 56 - .../libs/arm64-v8a/include/openssl/e_os2.h | 297 -- .../libs/arm64-v8a/include/openssl/ebcdic.h | 33 - .../app/libs/arm64-v8a/include/openssl/ec.h | 1576 ------ .../app/libs/arm64-v8a/include/openssl/ecdh.h | 10 - .../libs/arm64-v8a/include/openssl/ecdsa.h | 10 - .../libs/arm64-v8a/include/openssl/engine.h | 840 --- .../app/libs/arm64-v8a/include/openssl/err.h | 260 - .../app/libs/arm64-v8a/include/openssl/evp.h | 1597 ------ .../app/libs/arm64-v8a/include/openssl/hmac.h | 49 - .../app/libs/arm64-v8a/include/openssl/idea.h | 64 - .../app/libs/arm64-v8a/include/openssl/kdf.h | 75 - .../libs/arm64-v8a/include/openssl/lhash.h | 217 - .../app/libs/arm64-v8a/include/openssl/md2.h | 44 - .../app/libs/arm64-v8a/include/openssl/md4.h | 51 - .../app/libs/arm64-v8a/include/openssl/md5.h | 50 - .../app/libs/arm64-v8a/include/openssl/mdc2.h | 42 - .../libs/arm64-v8a/include/openssl/modes.h | 203 - .../libs/arm64-v8a/include/openssl/obj_mac.h | 4577 ----------------- .../libs/arm64-v8a/include/openssl/objects.h | 1097 ---- .../app/libs/arm64-v8a/include/openssl/ocsp.h | 398 -- .../arm64-v8a/include/openssl/opensslconf.h | 169 - .../include/openssl/opensslconf.h.in | 141 - .../libs/arm64-v8a/include/openssl/opensslv.h | 110 - .../libs/arm64-v8a/include/openssl/ossl_typ.h | 190 - .../app/libs/arm64-v8a/include/openssl/pem.h | 501 -- .../app/libs/arm64-v8a/include/openssl/pem2.h | 20 - .../libs/arm64-v8a/include/openssl/pkcs12.h | 282 - .../libs/arm64-v8a/include/openssl/pkcs7.h | 404 -- .../app/libs/arm64-v8a/include/openssl/rand.h | 89 - .../app/libs/arm64-v8a/include/openssl/rc2.h | 51 - .../app/libs/arm64-v8a/include/openssl/rc4.h | 36 - .../app/libs/arm64-v8a/include/openssl/rc5.h | 63 - .../libs/arm64-v8a/include/openssl/ripemd.h | 47 - .../app/libs/arm64-v8a/include/openssl/rsa.h | 590 --- .../arm64-v8a/include/openssl/safestack.h | 164 - .../app/libs/arm64-v8a/include/openssl/seed.h | 96 - .../app/libs/arm64-v8a/include/openssl/sha.h | 119 - .../app/libs/arm64-v8a/include/openssl/srp.h | 131 - .../app/libs/arm64-v8a/include/openssl/srtp.h | 50 - .../app/libs/arm64-v8a/include/openssl/ssl.h | 2567 --------- .../app/libs/arm64-v8a/include/openssl/ssl2.h | 24 - .../app/libs/arm64-v8a/include/openssl/ssl3.h | 310 -- .../libs/arm64-v8a/include/openssl/stack.h | 78 - .../libs/arm64-v8a/include/openssl/symhacks.h | 52 - .../app/libs/arm64-v8a/include/openssl/tls1.h | 972 ---- .../app/libs/arm64-v8a/include/openssl/ts.h | 643 --- .../libs/arm64-v8a/include/openssl/txt_db.h | 57 - .../app/libs/arm64-v8a/include/openssl/ui.h | 378 -- .../libs/arm64-v8a/include/openssl/whrlpool.h | 48 - .../app/libs/arm64-v8a/include/openssl/x509.h | 1123 ---- .../libs/arm64-v8a/include/openssl/x509_vfy.h | 544 -- .../libs/arm64-v8a/include/openssl/x509v3.h | 1008 ---- Android/app/libs/arm64-v8a/libcrypto.a | Bin 4380770 -> 0 bytes Android/app/libs/arm64-v8a/libssl.a | Bin 681576 -> 0 bytes .../include/openssl/__DECC_INCLUDE_EPILOGUE.H | 16 - .../include/openssl/__DECC_INCLUDE_PROLOGUE.H | 20 - .../libs/armeabi-v7a/include/openssl/aes.h | 92 - .../libs/armeabi-v7a/include/openssl/asn1.h | 1100 ---- .../armeabi-v7a/include/openssl/asn1_mac.h | 10 - .../libs/armeabi-v7a/include/openssl/asn1t.h | 929 ---- .../libs/armeabi-v7a/include/openssl/async.h | 98 - .../libs/armeabi-v7a/include/openssl/bio.h | 852 --- .../armeabi-v7a/include/openssl/blowfish.h | 61 - .../app/libs/armeabi-v7a/include/openssl/bn.h | 575 --- .../libs/armeabi-v7a/include/openssl/buffer.h | 73 - .../armeabi-v7a/include/openssl/camellia.h | 83 - .../libs/armeabi-v7a/include/openssl/cast.h | 53 - .../libs/armeabi-v7a/include/openssl/cmac.h | 41 - .../libs/armeabi-v7a/include/openssl/cms.h | 512 -- .../libs/armeabi-v7a/include/openssl/comp.h | 72 - .../libs/armeabi-v7a/include/openssl/conf.h | 217 - .../armeabi-v7a/include/openssl/conf_api.h | 40 - .../libs/armeabi-v7a/include/openssl/crypto.h | 467 -- .../app/libs/armeabi-v7a/include/openssl/ct.h | 533 -- .../libs/armeabi-v7a/include/openssl/des.h | 174 - .../app/libs/armeabi-v7a/include/openssl/dh.h | 361 -- .../libs/armeabi-v7a/include/openssl/dsa.h | 283 - .../libs/armeabi-v7a/include/openssl/dtls1.h | 56 - .../libs/armeabi-v7a/include/openssl/e_os2.h | 297 -- .../libs/armeabi-v7a/include/openssl/ebcdic.h | 33 - .../app/libs/armeabi-v7a/include/openssl/ec.h | 1576 ------ .../libs/armeabi-v7a/include/openssl/ecdh.h | 10 - .../libs/armeabi-v7a/include/openssl/ecdsa.h | 10 - .../libs/armeabi-v7a/include/openssl/engine.h | 840 --- .../libs/armeabi-v7a/include/openssl/err.h | 260 - .../libs/armeabi-v7a/include/openssl/evp.h | 1597 ------ .../libs/armeabi-v7a/include/openssl/hmac.h | 49 - .../libs/armeabi-v7a/include/openssl/idea.h | 64 - .../libs/armeabi-v7a/include/openssl/kdf.h | 75 - .../libs/armeabi-v7a/include/openssl/lhash.h | 217 - .../libs/armeabi-v7a/include/openssl/md2.h | 44 - .../libs/armeabi-v7a/include/openssl/md4.h | 51 - .../libs/armeabi-v7a/include/openssl/md5.h | 50 - .../libs/armeabi-v7a/include/openssl/mdc2.h | 42 - .../libs/armeabi-v7a/include/openssl/modes.h | 203 - .../armeabi-v7a/include/openssl/obj_mac.h | 4577 ----------------- .../armeabi-v7a/include/openssl/objects.h | 1097 ---- .../libs/armeabi-v7a/include/openssl/ocsp.h | 398 -- .../armeabi-v7a/include/openssl/opensslconf.h | 169 - .../include/openssl/opensslconf.h.in | 141 - .../armeabi-v7a/include/openssl/opensslv.h | 110 - .../armeabi-v7a/include/openssl/ossl_typ.h | 190 - .../libs/armeabi-v7a/include/openssl/pem.h | 501 -- .../libs/armeabi-v7a/include/openssl/pem2.h | 20 - .../libs/armeabi-v7a/include/openssl/pkcs12.h | 282 - .../libs/armeabi-v7a/include/openssl/pkcs7.h | 404 -- .../libs/armeabi-v7a/include/openssl/rand.h | 89 - .../libs/armeabi-v7a/include/openssl/rc2.h | 51 - .../libs/armeabi-v7a/include/openssl/rc4.h | 36 - .../libs/armeabi-v7a/include/openssl/rc5.h | 63 - .../libs/armeabi-v7a/include/openssl/ripemd.h | 47 - .../libs/armeabi-v7a/include/openssl/rsa.h | 590 --- .../armeabi-v7a/include/openssl/safestack.h | 164 - .../libs/armeabi-v7a/include/openssl/seed.h | 96 - .../libs/armeabi-v7a/include/openssl/sha.h | 119 - .../libs/armeabi-v7a/include/openssl/srp.h | 131 - .../libs/armeabi-v7a/include/openssl/srtp.h | 50 - .../libs/armeabi-v7a/include/openssl/ssl.h | 2567 --------- .../libs/armeabi-v7a/include/openssl/ssl2.h | 24 - .../libs/armeabi-v7a/include/openssl/ssl3.h | 310 -- .../libs/armeabi-v7a/include/openssl/stack.h | 78 - .../armeabi-v7a/include/openssl/symhacks.h | 52 - .../libs/armeabi-v7a/include/openssl/tls1.h | 972 ---- .../app/libs/armeabi-v7a/include/openssl/ts.h | 643 --- .../libs/armeabi-v7a/include/openssl/txt_db.h | 57 - .../app/libs/armeabi-v7a/include/openssl/ui.h | 378 -- .../armeabi-v7a/include/openssl/whrlpool.h | 48 - .../libs/armeabi-v7a/include/openssl/x509.h | 1123 ---- .../armeabi-v7a/include/openssl/x509_vfy.h | 544 -- .../libs/armeabi-v7a/include/openssl/x509v3.h | 1008 ---- Android/app/libs/armeabi-v7a/libcrypto.a | Bin 3166134 -> 0 bytes Android/app/libs/armeabi-v7a/libssl.a | Bin 512860 -> 0 bytes .../include/openssl/__DECC_INCLUDE_EPILOGUE.H | 16 - .../include/openssl/__DECC_INCLUDE_PROLOGUE.H | 20 - .../app/libs/armeabi/include/openssl/aes.h | 92 - .../app/libs/armeabi/include/openssl/asn1.h | 1100 ---- .../libs/armeabi/include/openssl/asn1_mac.h | 10 - .../app/libs/armeabi/include/openssl/asn1t.h | 929 ---- .../app/libs/armeabi/include/openssl/async.h | 98 - .../app/libs/armeabi/include/openssl/bio.h | 852 --- .../libs/armeabi/include/openssl/blowfish.h | 61 - Android/app/libs/armeabi/include/openssl/bn.h | 575 --- .../app/libs/armeabi/include/openssl/buffer.h | 73 - .../libs/armeabi/include/openssl/camellia.h | 83 - .../app/libs/armeabi/include/openssl/cast.h | 53 - .../app/libs/armeabi/include/openssl/cmac.h | 41 - .../app/libs/armeabi/include/openssl/cms.h | 512 -- .../app/libs/armeabi/include/openssl/comp.h | 72 - .../app/libs/armeabi/include/openssl/conf.h | 217 - .../libs/armeabi/include/openssl/conf_api.h | 40 - .../app/libs/armeabi/include/openssl/crypto.h | 467 -- Android/app/libs/armeabi/include/openssl/ct.h | 533 -- .../app/libs/armeabi/include/openssl/des.h | 174 - Android/app/libs/armeabi/include/openssl/dh.h | 361 -- .../app/libs/armeabi/include/openssl/dsa.h | 283 - .../app/libs/armeabi/include/openssl/dtls1.h | 56 - .../app/libs/armeabi/include/openssl/e_os2.h | 297 -- .../app/libs/armeabi/include/openssl/ebcdic.h | 33 - Android/app/libs/armeabi/include/openssl/ec.h | 1576 ------ .../app/libs/armeabi/include/openssl/ecdh.h | 10 - .../app/libs/armeabi/include/openssl/ecdsa.h | 10 - .../app/libs/armeabi/include/openssl/engine.h | 840 --- .../app/libs/armeabi/include/openssl/err.h | 260 - .../app/libs/armeabi/include/openssl/evp.h | 1597 ------ .../app/libs/armeabi/include/openssl/hmac.h | 49 - .../app/libs/armeabi/include/openssl/idea.h | 64 - .../app/libs/armeabi/include/openssl/kdf.h | 75 - .../app/libs/armeabi/include/openssl/lhash.h | 217 - .../app/libs/armeabi/include/openssl/md2.h | 44 - .../app/libs/armeabi/include/openssl/md4.h | 51 - .../app/libs/armeabi/include/openssl/md5.h | 50 - .../app/libs/armeabi/include/openssl/mdc2.h | 42 - .../app/libs/armeabi/include/openssl/modes.h | 203 - .../libs/armeabi/include/openssl/obj_mac.h | 4577 ----------------- .../libs/armeabi/include/openssl/objects.h | 1097 ---- .../app/libs/armeabi/include/openssl/ocsp.h | 398 -- .../armeabi/include/openssl/opensslconf.h | 169 - .../armeabi/include/openssl/opensslconf.h.in | 141 - .../libs/armeabi/include/openssl/opensslv.h | 110 - .../libs/armeabi/include/openssl/ossl_typ.h | 190 - .../app/libs/armeabi/include/openssl/pem.h | 501 -- .../app/libs/armeabi/include/openssl/pem2.h | 20 - .../app/libs/armeabi/include/openssl/pkcs12.h | 282 - .../app/libs/armeabi/include/openssl/pkcs7.h | 404 -- .../app/libs/armeabi/include/openssl/rand.h | 89 - .../app/libs/armeabi/include/openssl/rc2.h | 51 - .../app/libs/armeabi/include/openssl/rc4.h | 36 - .../app/libs/armeabi/include/openssl/rc5.h | 63 - .../app/libs/armeabi/include/openssl/ripemd.h | 47 - .../app/libs/armeabi/include/openssl/rsa.h | 590 --- .../libs/armeabi/include/openssl/safestack.h | 164 - .../app/libs/armeabi/include/openssl/seed.h | 96 - .../app/libs/armeabi/include/openssl/sha.h | 119 - .../app/libs/armeabi/include/openssl/srp.h | 131 - .../app/libs/armeabi/include/openssl/srtp.h | 50 - .../app/libs/armeabi/include/openssl/ssl.h | 2567 --------- .../app/libs/armeabi/include/openssl/ssl2.h | 24 - .../app/libs/armeabi/include/openssl/ssl3.h | 310 -- .../app/libs/armeabi/include/openssl/stack.h | 78 - .../libs/armeabi/include/openssl/symhacks.h | 52 - .../app/libs/armeabi/include/openssl/tls1.h | 972 ---- Android/app/libs/armeabi/include/openssl/ts.h | 643 --- .../app/libs/armeabi/include/openssl/txt_db.h | 57 - Android/app/libs/armeabi/include/openssl/ui.h | 378 -- .../libs/armeabi/include/openssl/whrlpool.h | 48 - .../app/libs/armeabi/include/openssl/x509.h | 1123 ---- .../libs/armeabi/include/openssl/x509_vfy.h | 544 -- .../app/libs/armeabi/include/openssl/x509v3.h | 1008 ---- Android/app/libs/armeabi/libcrypto.a | Bin 3166134 -> 0 bytes Android/app/libs/armeabi/libssl.a | Bin 512860 -> 0 bytes .../include/openssl/__DECC_INCLUDE_EPILOGUE.H | 16 - .../include/openssl/__DECC_INCLUDE_PROLOGUE.H | 20 - Android/app/libs/x86/include/openssl/aes.h | 92 - Android/app/libs/x86/include/openssl/asn1.h | 1100 ---- .../app/libs/x86/include/openssl/asn1_mac.h | 10 - Android/app/libs/x86/include/openssl/asn1t.h | 929 ---- Android/app/libs/x86/include/openssl/async.h | 98 - Android/app/libs/x86/include/openssl/bio.h | 852 --- .../app/libs/x86/include/openssl/blowfish.h | 61 - Android/app/libs/x86/include/openssl/bn.h | 575 --- Android/app/libs/x86/include/openssl/buffer.h | 73 - .../app/libs/x86/include/openssl/camellia.h | 83 - Android/app/libs/x86/include/openssl/cast.h | 53 - Android/app/libs/x86/include/openssl/cmac.h | 41 - Android/app/libs/x86/include/openssl/cms.h | 512 -- Android/app/libs/x86/include/openssl/comp.h | 72 - Android/app/libs/x86/include/openssl/conf.h | 217 - .../app/libs/x86/include/openssl/conf_api.h | 40 - Android/app/libs/x86/include/openssl/crypto.h | 467 -- Android/app/libs/x86/include/openssl/ct.h | 533 -- Android/app/libs/x86/include/openssl/des.h | 174 - Android/app/libs/x86/include/openssl/dh.h | 361 -- Android/app/libs/x86/include/openssl/dsa.h | 283 - Android/app/libs/x86/include/openssl/dtls1.h | 56 - Android/app/libs/x86/include/openssl/e_os2.h | 297 -- Android/app/libs/x86/include/openssl/ebcdic.h | 33 - Android/app/libs/x86/include/openssl/ec.h | 1576 ------ Android/app/libs/x86/include/openssl/ecdh.h | 10 - Android/app/libs/x86/include/openssl/ecdsa.h | 10 - Android/app/libs/x86/include/openssl/engine.h | 840 --- Android/app/libs/x86/include/openssl/err.h | 260 - Android/app/libs/x86/include/openssl/evp.h | 1597 ------ Android/app/libs/x86/include/openssl/hmac.h | 49 - Android/app/libs/x86/include/openssl/idea.h | 64 - Android/app/libs/x86/include/openssl/kdf.h | 75 - Android/app/libs/x86/include/openssl/lhash.h | 217 - Android/app/libs/x86/include/openssl/md2.h | 44 - Android/app/libs/x86/include/openssl/md4.h | 51 - Android/app/libs/x86/include/openssl/md5.h | 50 - Android/app/libs/x86/include/openssl/mdc2.h | 42 - Android/app/libs/x86/include/openssl/modes.h | 203 - .../app/libs/x86/include/openssl/obj_mac.h | 4577 ----------------- .../app/libs/x86/include/openssl/objects.h | 1097 ---- Android/app/libs/x86/include/openssl/ocsp.h | 398 -- .../libs/x86/include/openssl/opensslconf.h | 169 - .../libs/x86/include/openssl/opensslconf.h.in | 141 - .../app/libs/x86/include/openssl/opensslv.h | 110 - .../app/libs/x86/include/openssl/ossl_typ.h | 190 - Android/app/libs/x86/include/openssl/pem.h | 501 -- Android/app/libs/x86/include/openssl/pem2.h | 20 - Android/app/libs/x86/include/openssl/pkcs12.h | 282 - Android/app/libs/x86/include/openssl/pkcs7.h | 404 -- Android/app/libs/x86/include/openssl/rand.h | 89 - Android/app/libs/x86/include/openssl/rc2.h | 51 - Android/app/libs/x86/include/openssl/rc4.h | 36 - Android/app/libs/x86/include/openssl/rc5.h | 63 - Android/app/libs/x86/include/openssl/ripemd.h | 47 - Android/app/libs/x86/include/openssl/rsa.h | 590 --- .../app/libs/x86/include/openssl/safestack.h | 164 - Android/app/libs/x86/include/openssl/seed.h | 96 - Android/app/libs/x86/include/openssl/sha.h | 119 - Android/app/libs/x86/include/openssl/srp.h | 131 - Android/app/libs/x86/include/openssl/srtp.h | 50 - Android/app/libs/x86/include/openssl/ssl.h | 2567 --------- Android/app/libs/x86/include/openssl/ssl2.h | 24 - Android/app/libs/x86/include/openssl/ssl3.h | 310 -- Android/app/libs/x86/include/openssl/stack.h | 78 - .../app/libs/x86/include/openssl/symhacks.h | 52 - Android/app/libs/x86/include/openssl/tls1.h | 972 ---- Android/app/libs/x86/include/openssl/ts.h | 643 --- Android/app/libs/x86/include/openssl/txt_db.h | 57 - Android/app/libs/x86/include/openssl/ui.h | 378 -- .../app/libs/x86/include/openssl/whrlpool.h | 48 - Android/app/libs/x86/include/openssl/x509.h | 1123 ---- .../app/libs/x86/include/openssl/x509_vfy.h | 544 -- Android/app/libs/x86/include/openssl/x509v3.h | 1008 ---- Android/app/libs/x86/libcrypto.a | Bin 4152940 -> 0 bytes Android/app/libs/x86/libssl.a | Bin 649328 -> 0 bytes .../include/openssl/__DECC_INCLUDE_EPILOGUE.H | 16 - .../include/openssl/__DECC_INCLUDE_PROLOGUE.H | 20 - Android/app/libs/x86_64/include/openssl/aes.h | 92 - .../app/libs/x86_64/include/openssl/asn1.h | 1100 ---- .../libs/x86_64/include/openssl/asn1_mac.h | 10 - .../app/libs/x86_64/include/openssl/asn1t.h | 929 ---- .../app/libs/x86_64/include/openssl/async.h | 98 - Android/app/libs/x86_64/include/openssl/bio.h | 852 --- .../libs/x86_64/include/openssl/blowfish.h | 61 - Android/app/libs/x86_64/include/openssl/bn.h | 575 --- .../app/libs/x86_64/include/openssl/buffer.h | 73 - .../libs/x86_64/include/openssl/camellia.h | 83 - .../app/libs/x86_64/include/openssl/cast.h | 53 - .../app/libs/x86_64/include/openssl/cmac.h | 41 - Android/app/libs/x86_64/include/openssl/cms.h | 512 -- .../app/libs/x86_64/include/openssl/comp.h | 72 - .../app/libs/x86_64/include/openssl/conf.h | 217 - .../libs/x86_64/include/openssl/conf_api.h | 40 - .../app/libs/x86_64/include/openssl/crypto.h | 467 -- Android/app/libs/x86_64/include/openssl/ct.h | 533 -- Android/app/libs/x86_64/include/openssl/des.h | 174 - Android/app/libs/x86_64/include/openssl/dh.h | 361 -- Android/app/libs/x86_64/include/openssl/dsa.h | 283 - .../app/libs/x86_64/include/openssl/dtls1.h | 56 - .../app/libs/x86_64/include/openssl/e_os2.h | 297 -- .../app/libs/x86_64/include/openssl/ebcdic.h | 33 - Android/app/libs/x86_64/include/openssl/ec.h | 1576 ------ .../app/libs/x86_64/include/openssl/ecdh.h | 10 - .../app/libs/x86_64/include/openssl/ecdsa.h | 10 - .../app/libs/x86_64/include/openssl/engine.h | 840 --- Android/app/libs/x86_64/include/openssl/err.h | 260 - Android/app/libs/x86_64/include/openssl/evp.h | 1597 ------ .../app/libs/x86_64/include/openssl/hmac.h | 49 - .../app/libs/x86_64/include/openssl/idea.h | 64 - Android/app/libs/x86_64/include/openssl/kdf.h | 75 - .../app/libs/x86_64/include/openssl/lhash.h | 217 - Android/app/libs/x86_64/include/openssl/md2.h | 44 - Android/app/libs/x86_64/include/openssl/md4.h | 51 - Android/app/libs/x86_64/include/openssl/md5.h | 50 - .../app/libs/x86_64/include/openssl/mdc2.h | 42 - .../app/libs/x86_64/include/openssl/modes.h | 203 - .../app/libs/x86_64/include/openssl/obj_mac.h | 4577 ----------------- .../app/libs/x86_64/include/openssl/objects.h | 1097 ---- .../app/libs/x86_64/include/openssl/ocsp.h | 398 -- .../libs/x86_64/include/openssl/opensslconf.h | 169 - .../x86_64/include/openssl/opensslconf.h.in | 141 - .../libs/x86_64/include/openssl/opensslv.h | 110 - .../libs/x86_64/include/openssl/ossl_typ.h | 190 - Android/app/libs/x86_64/include/openssl/pem.h | 501 -- .../app/libs/x86_64/include/openssl/pem2.h | 20 - .../app/libs/x86_64/include/openssl/pkcs12.h | 282 - .../app/libs/x86_64/include/openssl/pkcs7.h | 404 -- .../app/libs/x86_64/include/openssl/rand.h | 89 - Android/app/libs/x86_64/include/openssl/rc2.h | 51 - Android/app/libs/x86_64/include/openssl/rc4.h | 36 - Android/app/libs/x86_64/include/openssl/rc5.h | 63 - .../app/libs/x86_64/include/openssl/ripemd.h | 47 - Android/app/libs/x86_64/include/openssl/rsa.h | 590 --- .../libs/x86_64/include/openssl/safestack.h | 164 - .../app/libs/x86_64/include/openssl/seed.h | 96 - Android/app/libs/x86_64/include/openssl/sha.h | 119 - Android/app/libs/x86_64/include/openssl/srp.h | 131 - .../app/libs/x86_64/include/openssl/srtp.h | 50 - Android/app/libs/x86_64/include/openssl/ssl.h | 2567 --------- .../app/libs/x86_64/include/openssl/ssl2.h | 24 - .../app/libs/x86_64/include/openssl/ssl3.h | 310 -- .../app/libs/x86_64/include/openssl/stack.h | 78 - .../libs/x86_64/include/openssl/symhacks.h | 52 - .../app/libs/x86_64/include/openssl/tls1.h | 972 ---- Android/app/libs/x86_64/include/openssl/ts.h | 643 --- .../app/libs/x86_64/include/openssl/txt_db.h | 57 - Android/app/libs/x86_64/include/openssl/ui.h | 378 -- .../libs/x86_64/include/openssl/whrlpool.h | 48 - .../app/libs/x86_64/include/openssl/x509.h | 1123 ---- .../libs/x86_64/include/openssl/x509_vfy.h | 544 -- .../app/libs/x86_64/include/openssl/x509v3.h | 1008 ---- Android/app/libs/x86_64/libcrypto.a | Bin 4600468 -> 0 bytes Android/app/libs/x86_64/libssl.a | Bin 781808 -> 0 bytes 390 files changed, 146325 deletions(-) delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/__DECC_INCLUDE_EPILOGUE.H delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/__DECC_INCLUDE_PROLOGUE.H delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/aes.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/asn1.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/asn1_mac.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/asn1t.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/async.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/bio.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/blowfish.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/bn.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/buffer.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/camellia.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/cast.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/cmac.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/cms.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/comp.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/conf.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/conf_api.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/crypto.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ct.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/des.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/dh.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/dsa.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/dtls1.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/e_os2.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ebcdic.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ec.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ecdh.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ecdsa.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/engine.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/err.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/evp.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/hmac.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/idea.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/kdf.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/lhash.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/md2.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/md4.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/md5.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/mdc2.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/modes.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/obj_mac.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/objects.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ocsp.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/opensslconf.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/opensslconf.h.in delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/opensslv.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ossl_typ.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/pem.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/pem2.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/pkcs12.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/pkcs7.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/rand.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/rc2.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/rc4.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/rc5.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ripemd.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/rsa.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/safestack.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/seed.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/sha.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/srp.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/srtp.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ssl.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ssl2.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ssl3.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/stack.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/symhacks.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/tls1.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ts.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/txt_db.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/ui.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/whrlpool.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/x509.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/x509_vfy.h delete mode 100644 Android/app/libs/arm64-v8a/include/openssl/x509v3.h delete mode 100644 Android/app/libs/arm64-v8a/libcrypto.a delete mode 100644 Android/app/libs/arm64-v8a/libssl.a delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/__DECC_INCLUDE_EPILOGUE.H delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/__DECC_INCLUDE_PROLOGUE.H delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/aes.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/asn1.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/asn1_mac.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/asn1t.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/async.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/bio.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/blowfish.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/bn.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/buffer.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/camellia.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/cast.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/cmac.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/cms.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/comp.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/conf.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/conf_api.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/crypto.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ct.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/des.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/dh.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/dsa.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/dtls1.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/e_os2.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ebcdic.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ec.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ecdh.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ecdsa.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/engine.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/err.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/evp.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/hmac.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/idea.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/kdf.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/lhash.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/md2.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/md4.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/md5.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/mdc2.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/modes.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/obj_mac.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/objects.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ocsp.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/opensslconf.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/opensslconf.h.in delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/opensslv.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ossl_typ.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/pem.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/pem2.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/pkcs12.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/pkcs7.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/rand.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/rc2.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/rc4.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/rc5.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ripemd.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/rsa.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/safestack.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/seed.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/sha.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/srp.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/srtp.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ssl.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ssl2.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ssl3.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/stack.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/symhacks.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/tls1.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ts.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/txt_db.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/ui.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/whrlpool.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/x509.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/x509_vfy.h delete mode 100644 Android/app/libs/armeabi-v7a/include/openssl/x509v3.h delete mode 100644 Android/app/libs/armeabi-v7a/libcrypto.a delete mode 100644 Android/app/libs/armeabi-v7a/libssl.a delete mode 100644 Android/app/libs/armeabi/include/openssl/__DECC_INCLUDE_EPILOGUE.H delete mode 100644 Android/app/libs/armeabi/include/openssl/__DECC_INCLUDE_PROLOGUE.H delete mode 100644 Android/app/libs/armeabi/include/openssl/aes.h delete mode 100644 Android/app/libs/armeabi/include/openssl/asn1.h delete mode 100644 Android/app/libs/armeabi/include/openssl/asn1_mac.h delete mode 100644 Android/app/libs/armeabi/include/openssl/asn1t.h delete mode 100644 Android/app/libs/armeabi/include/openssl/async.h delete mode 100644 Android/app/libs/armeabi/include/openssl/bio.h delete mode 100644 Android/app/libs/armeabi/include/openssl/blowfish.h delete mode 100644 Android/app/libs/armeabi/include/openssl/bn.h delete mode 100644 Android/app/libs/armeabi/include/openssl/buffer.h delete mode 100644 Android/app/libs/armeabi/include/openssl/camellia.h delete mode 100644 Android/app/libs/armeabi/include/openssl/cast.h delete mode 100644 Android/app/libs/armeabi/include/openssl/cmac.h delete mode 100644 Android/app/libs/armeabi/include/openssl/cms.h delete mode 100644 Android/app/libs/armeabi/include/openssl/comp.h delete mode 100644 Android/app/libs/armeabi/include/openssl/conf.h delete mode 100644 Android/app/libs/armeabi/include/openssl/conf_api.h delete mode 100644 Android/app/libs/armeabi/include/openssl/crypto.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ct.h delete mode 100644 Android/app/libs/armeabi/include/openssl/des.h delete mode 100644 Android/app/libs/armeabi/include/openssl/dh.h delete mode 100644 Android/app/libs/armeabi/include/openssl/dsa.h delete mode 100644 Android/app/libs/armeabi/include/openssl/dtls1.h delete mode 100644 Android/app/libs/armeabi/include/openssl/e_os2.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ebcdic.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ec.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ecdh.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ecdsa.h delete mode 100644 Android/app/libs/armeabi/include/openssl/engine.h delete mode 100644 Android/app/libs/armeabi/include/openssl/err.h delete mode 100644 Android/app/libs/armeabi/include/openssl/evp.h delete mode 100644 Android/app/libs/armeabi/include/openssl/hmac.h delete mode 100644 Android/app/libs/armeabi/include/openssl/idea.h delete mode 100644 Android/app/libs/armeabi/include/openssl/kdf.h delete mode 100644 Android/app/libs/armeabi/include/openssl/lhash.h delete mode 100644 Android/app/libs/armeabi/include/openssl/md2.h delete mode 100644 Android/app/libs/armeabi/include/openssl/md4.h delete mode 100644 Android/app/libs/armeabi/include/openssl/md5.h delete mode 100644 Android/app/libs/armeabi/include/openssl/mdc2.h delete mode 100644 Android/app/libs/armeabi/include/openssl/modes.h delete mode 100644 Android/app/libs/armeabi/include/openssl/obj_mac.h delete mode 100644 Android/app/libs/armeabi/include/openssl/objects.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ocsp.h delete mode 100644 Android/app/libs/armeabi/include/openssl/opensslconf.h delete mode 100644 Android/app/libs/armeabi/include/openssl/opensslconf.h.in delete mode 100644 Android/app/libs/armeabi/include/openssl/opensslv.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ossl_typ.h delete mode 100644 Android/app/libs/armeabi/include/openssl/pem.h delete mode 100644 Android/app/libs/armeabi/include/openssl/pem2.h delete mode 100644 Android/app/libs/armeabi/include/openssl/pkcs12.h delete mode 100644 Android/app/libs/armeabi/include/openssl/pkcs7.h delete mode 100644 Android/app/libs/armeabi/include/openssl/rand.h delete mode 100644 Android/app/libs/armeabi/include/openssl/rc2.h delete mode 100644 Android/app/libs/armeabi/include/openssl/rc4.h delete mode 100644 Android/app/libs/armeabi/include/openssl/rc5.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ripemd.h delete mode 100644 Android/app/libs/armeabi/include/openssl/rsa.h delete mode 100644 Android/app/libs/armeabi/include/openssl/safestack.h delete mode 100644 Android/app/libs/armeabi/include/openssl/seed.h delete mode 100644 Android/app/libs/armeabi/include/openssl/sha.h delete mode 100644 Android/app/libs/armeabi/include/openssl/srp.h delete mode 100644 Android/app/libs/armeabi/include/openssl/srtp.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ssl.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ssl2.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ssl3.h delete mode 100644 Android/app/libs/armeabi/include/openssl/stack.h delete mode 100644 Android/app/libs/armeabi/include/openssl/symhacks.h delete mode 100644 Android/app/libs/armeabi/include/openssl/tls1.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ts.h delete mode 100644 Android/app/libs/armeabi/include/openssl/txt_db.h delete mode 100644 Android/app/libs/armeabi/include/openssl/ui.h delete mode 100644 Android/app/libs/armeabi/include/openssl/whrlpool.h delete mode 100644 Android/app/libs/armeabi/include/openssl/x509.h delete mode 100644 Android/app/libs/armeabi/include/openssl/x509_vfy.h delete mode 100644 Android/app/libs/armeabi/include/openssl/x509v3.h delete mode 100644 Android/app/libs/armeabi/libcrypto.a delete mode 100644 Android/app/libs/armeabi/libssl.a delete mode 100644 Android/app/libs/x86/include/openssl/__DECC_INCLUDE_EPILOGUE.H delete mode 100644 Android/app/libs/x86/include/openssl/__DECC_INCLUDE_PROLOGUE.H delete mode 100644 Android/app/libs/x86/include/openssl/aes.h delete mode 100644 Android/app/libs/x86/include/openssl/asn1.h delete mode 100644 Android/app/libs/x86/include/openssl/asn1_mac.h delete mode 100644 Android/app/libs/x86/include/openssl/asn1t.h delete mode 100644 Android/app/libs/x86/include/openssl/async.h delete mode 100644 Android/app/libs/x86/include/openssl/bio.h delete mode 100644 Android/app/libs/x86/include/openssl/blowfish.h delete mode 100644 Android/app/libs/x86/include/openssl/bn.h delete mode 100644 Android/app/libs/x86/include/openssl/buffer.h delete mode 100644 Android/app/libs/x86/include/openssl/camellia.h delete mode 100644 Android/app/libs/x86/include/openssl/cast.h delete mode 100644 Android/app/libs/x86/include/openssl/cmac.h delete mode 100644 Android/app/libs/x86/include/openssl/cms.h delete mode 100644 Android/app/libs/x86/include/openssl/comp.h delete mode 100644 Android/app/libs/x86/include/openssl/conf.h delete mode 100644 Android/app/libs/x86/include/openssl/conf_api.h delete mode 100644 Android/app/libs/x86/include/openssl/crypto.h delete mode 100644 Android/app/libs/x86/include/openssl/ct.h delete mode 100644 Android/app/libs/x86/include/openssl/des.h delete mode 100644 Android/app/libs/x86/include/openssl/dh.h delete mode 100644 Android/app/libs/x86/include/openssl/dsa.h delete mode 100644 Android/app/libs/x86/include/openssl/dtls1.h delete mode 100644 Android/app/libs/x86/include/openssl/e_os2.h delete mode 100644 Android/app/libs/x86/include/openssl/ebcdic.h delete mode 100644 Android/app/libs/x86/include/openssl/ec.h delete mode 100644 Android/app/libs/x86/include/openssl/ecdh.h delete mode 100644 Android/app/libs/x86/include/openssl/ecdsa.h delete mode 100644 Android/app/libs/x86/include/openssl/engine.h delete mode 100644 Android/app/libs/x86/include/openssl/err.h delete mode 100644 Android/app/libs/x86/include/openssl/evp.h delete mode 100644 Android/app/libs/x86/include/openssl/hmac.h delete mode 100644 Android/app/libs/x86/include/openssl/idea.h delete mode 100644 Android/app/libs/x86/include/openssl/kdf.h delete mode 100644 Android/app/libs/x86/include/openssl/lhash.h delete mode 100644 Android/app/libs/x86/include/openssl/md2.h delete mode 100644 Android/app/libs/x86/include/openssl/md4.h delete mode 100644 Android/app/libs/x86/include/openssl/md5.h delete mode 100644 Android/app/libs/x86/include/openssl/mdc2.h delete mode 100644 Android/app/libs/x86/include/openssl/modes.h delete mode 100644 Android/app/libs/x86/include/openssl/obj_mac.h delete mode 100644 Android/app/libs/x86/include/openssl/objects.h delete mode 100644 Android/app/libs/x86/include/openssl/ocsp.h delete mode 100644 Android/app/libs/x86/include/openssl/opensslconf.h delete mode 100644 Android/app/libs/x86/include/openssl/opensslconf.h.in delete mode 100644 Android/app/libs/x86/include/openssl/opensslv.h delete mode 100644 Android/app/libs/x86/include/openssl/ossl_typ.h delete mode 100644 Android/app/libs/x86/include/openssl/pem.h delete mode 100644 Android/app/libs/x86/include/openssl/pem2.h delete mode 100644 Android/app/libs/x86/include/openssl/pkcs12.h delete mode 100644 Android/app/libs/x86/include/openssl/pkcs7.h delete mode 100644 Android/app/libs/x86/include/openssl/rand.h delete mode 100644 Android/app/libs/x86/include/openssl/rc2.h delete mode 100644 Android/app/libs/x86/include/openssl/rc4.h delete mode 100644 Android/app/libs/x86/include/openssl/rc5.h delete mode 100644 Android/app/libs/x86/include/openssl/ripemd.h delete mode 100644 Android/app/libs/x86/include/openssl/rsa.h delete mode 100644 Android/app/libs/x86/include/openssl/safestack.h delete mode 100644 Android/app/libs/x86/include/openssl/seed.h delete mode 100644 Android/app/libs/x86/include/openssl/sha.h delete mode 100644 Android/app/libs/x86/include/openssl/srp.h delete mode 100644 Android/app/libs/x86/include/openssl/srtp.h delete mode 100644 Android/app/libs/x86/include/openssl/ssl.h delete mode 100644 Android/app/libs/x86/include/openssl/ssl2.h delete mode 100644 Android/app/libs/x86/include/openssl/ssl3.h delete mode 100644 Android/app/libs/x86/include/openssl/stack.h delete mode 100644 Android/app/libs/x86/include/openssl/symhacks.h delete mode 100644 Android/app/libs/x86/include/openssl/tls1.h delete mode 100644 Android/app/libs/x86/include/openssl/ts.h delete mode 100644 Android/app/libs/x86/include/openssl/txt_db.h delete mode 100644 Android/app/libs/x86/include/openssl/ui.h delete mode 100644 Android/app/libs/x86/include/openssl/whrlpool.h delete mode 100644 Android/app/libs/x86/include/openssl/x509.h delete mode 100644 Android/app/libs/x86/include/openssl/x509_vfy.h delete mode 100644 Android/app/libs/x86/include/openssl/x509v3.h delete mode 100644 Android/app/libs/x86/libcrypto.a delete mode 100644 Android/app/libs/x86/libssl.a delete mode 100644 Android/app/libs/x86_64/include/openssl/__DECC_INCLUDE_EPILOGUE.H delete mode 100644 Android/app/libs/x86_64/include/openssl/__DECC_INCLUDE_PROLOGUE.H delete mode 100644 Android/app/libs/x86_64/include/openssl/aes.h delete mode 100644 Android/app/libs/x86_64/include/openssl/asn1.h delete mode 100644 Android/app/libs/x86_64/include/openssl/asn1_mac.h delete mode 100644 Android/app/libs/x86_64/include/openssl/asn1t.h delete mode 100644 Android/app/libs/x86_64/include/openssl/async.h delete mode 100644 Android/app/libs/x86_64/include/openssl/bio.h delete mode 100644 Android/app/libs/x86_64/include/openssl/blowfish.h delete mode 100644 Android/app/libs/x86_64/include/openssl/bn.h delete mode 100644 Android/app/libs/x86_64/include/openssl/buffer.h delete mode 100644 Android/app/libs/x86_64/include/openssl/camellia.h delete mode 100644 Android/app/libs/x86_64/include/openssl/cast.h delete mode 100644 Android/app/libs/x86_64/include/openssl/cmac.h delete mode 100644 Android/app/libs/x86_64/include/openssl/cms.h delete mode 100644 Android/app/libs/x86_64/include/openssl/comp.h delete mode 100644 Android/app/libs/x86_64/include/openssl/conf.h delete mode 100644 Android/app/libs/x86_64/include/openssl/conf_api.h delete mode 100644 Android/app/libs/x86_64/include/openssl/crypto.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ct.h delete mode 100644 Android/app/libs/x86_64/include/openssl/des.h delete mode 100644 Android/app/libs/x86_64/include/openssl/dh.h delete mode 100644 Android/app/libs/x86_64/include/openssl/dsa.h delete mode 100644 Android/app/libs/x86_64/include/openssl/dtls1.h delete mode 100644 Android/app/libs/x86_64/include/openssl/e_os2.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ebcdic.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ec.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ecdh.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ecdsa.h delete mode 100644 Android/app/libs/x86_64/include/openssl/engine.h delete mode 100644 Android/app/libs/x86_64/include/openssl/err.h delete mode 100644 Android/app/libs/x86_64/include/openssl/evp.h delete mode 100644 Android/app/libs/x86_64/include/openssl/hmac.h delete mode 100644 Android/app/libs/x86_64/include/openssl/idea.h delete mode 100644 Android/app/libs/x86_64/include/openssl/kdf.h delete mode 100644 Android/app/libs/x86_64/include/openssl/lhash.h delete mode 100644 Android/app/libs/x86_64/include/openssl/md2.h delete mode 100644 Android/app/libs/x86_64/include/openssl/md4.h delete mode 100644 Android/app/libs/x86_64/include/openssl/md5.h delete mode 100644 Android/app/libs/x86_64/include/openssl/mdc2.h delete mode 100644 Android/app/libs/x86_64/include/openssl/modes.h delete mode 100644 Android/app/libs/x86_64/include/openssl/obj_mac.h delete mode 100644 Android/app/libs/x86_64/include/openssl/objects.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ocsp.h delete mode 100644 Android/app/libs/x86_64/include/openssl/opensslconf.h delete mode 100644 Android/app/libs/x86_64/include/openssl/opensslconf.h.in delete mode 100644 Android/app/libs/x86_64/include/openssl/opensslv.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ossl_typ.h delete mode 100644 Android/app/libs/x86_64/include/openssl/pem.h delete mode 100644 Android/app/libs/x86_64/include/openssl/pem2.h delete mode 100644 Android/app/libs/x86_64/include/openssl/pkcs12.h delete mode 100644 Android/app/libs/x86_64/include/openssl/pkcs7.h delete mode 100644 Android/app/libs/x86_64/include/openssl/rand.h delete mode 100644 Android/app/libs/x86_64/include/openssl/rc2.h delete mode 100644 Android/app/libs/x86_64/include/openssl/rc4.h delete mode 100644 Android/app/libs/x86_64/include/openssl/rc5.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ripemd.h delete mode 100644 Android/app/libs/x86_64/include/openssl/rsa.h delete mode 100644 Android/app/libs/x86_64/include/openssl/safestack.h delete mode 100644 Android/app/libs/x86_64/include/openssl/seed.h delete mode 100644 Android/app/libs/x86_64/include/openssl/sha.h delete mode 100644 Android/app/libs/x86_64/include/openssl/srp.h delete mode 100644 Android/app/libs/x86_64/include/openssl/srtp.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ssl.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ssl2.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ssl3.h delete mode 100644 Android/app/libs/x86_64/include/openssl/stack.h delete mode 100644 Android/app/libs/x86_64/include/openssl/symhacks.h delete mode 100644 Android/app/libs/x86_64/include/openssl/tls1.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ts.h delete mode 100644 Android/app/libs/x86_64/include/openssl/txt_db.h delete mode 100644 Android/app/libs/x86_64/include/openssl/ui.h delete mode 100644 Android/app/libs/x86_64/include/openssl/whrlpool.h delete mode 100644 Android/app/libs/x86_64/include/openssl/x509.h delete mode 100644 Android/app/libs/x86_64/include/openssl/x509_vfy.h delete mode 100644 Android/app/libs/x86_64/include/openssl/x509v3.h delete mode 100644 Android/app/libs/x86_64/libcrypto.a delete mode 100644 Android/app/libs/x86_64/libssl.a diff --git a/Android/app/libs/arm64-v8a/include/openssl/__DECC_INCLUDE_EPILOGUE.H b/Android/app/libs/arm64-v8a/include/openssl/__DECC_INCLUDE_EPILOGUE.H deleted file mode 100644 index c350018a..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/__DECC_INCLUDE_EPILOGUE.H +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * This file is only used by HP C on VMS, and is included automatically - * after each header file from this directory - */ - -/* restore state. Must correspond to the save in __decc_include_prologue.h */ -#pragma names restore diff --git a/Android/app/libs/arm64-v8a/include/openssl/__DECC_INCLUDE_PROLOGUE.H b/Android/app/libs/arm64-v8a/include/openssl/__DECC_INCLUDE_PROLOGUE.H deleted file mode 100644 index 9a9c777f..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/__DECC_INCLUDE_PROLOGUE.H +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * This file is only used by HP C on VMS, and is included automatically - * after each header file from this directory - */ - -/* save state */ -#pragma names save -/* have the compiler shorten symbols larger than 31 chars to 23 chars - * followed by a 8 hex char CRC - */ -#pragma names as_is,shortened diff --git a/Android/app/libs/arm64-v8a/include/openssl/aes.h b/Android/app/libs/arm64-v8a/include/openssl/aes.h deleted file mode 100644 index 245c552a..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/asn1.h b/Android/app/libs/arm64-v8a/include/openssl/asn1.h deleted file mode 100644 index 05ae1dbe..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/asn1.h +++ /dev/null @@ -1,1100 +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_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 0x1f - -# 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 -/* 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 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ASN1_strings(void); - -/* Error codes for the ASN1 functions. */ - -/* Function codes. */ -# define ASN1_F_A2D_ASN1_OBJECT 100 -# define ASN1_F_A2I_ASN1_INTEGER 102 -# define ASN1_F_A2I_ASN1_STRING 103 -# define ASN1_F_APPEND_EXP 176 -# define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 -# define ASN1_F_ASN1_CB 177 -# define ASN1_F_ASN1_CHECK_TLEN 104 -# define ASN1_F_ASN1_COLLECT 106 -# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 -# define ASN1_F_ASN1_D2I_FP 109 -# define ASN1_F_ASN1_D2I_READ_BIO 107 -# define ASN1_F_ASN1_DIGEST 184 -# define ASN1_F_ASN1_DO_ADB 110 -# define ASN1_F_ASN1_DO_LOCK 233 -# define ASN1_F_ASN1_DUP 111 -# define ASN1_F_ASN1_EX_C2I 204 -# define ASN1_F_ASN1_FIND_END 190 -# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 -# define ASN1_F_ASN1_GENERATE_V3 178 -# define ASN1_F_ASN1_GET_INT64 224 -# define ASN1_F_ASN1_GET_OBJECT 114 -# define ASN1_F_ASN1_GET_UINT64 225 -# define ASN1_F_ASN1_I2D_BIO 116 -# define ASN1_F_ASN1_I2D_FP 117 -# define ASN1_F_ASN1_ITEM_D2I_FP 206 -# define ASN1_F_ASN1_ITEM_DUP 191 -# define ASN1_F_ASN1_ITEM_EMBED_D2I 120 -# define ASN1_F_ASN1_ITEM_EMBED_NEW 121 -# define ASN1_F_ASN1_ITEM_I2D_BIO 192 -# define ASN1_F_ASN1_ITEM_I2D_FP 193 -# define ASN1_F_ASN1_ITEM_PACK 198 -# define ASN1_F_ASN1_ITEM_SIGN 195 -# define ASN1_F_ASN1_ITEM_SIGN_CTX 220 -# define ASN1_F_ASN1_ITEM_UNPACK 199 -# define ASN1_F_ASN1_ITEM_VERIFY 197 -# define ASN1_F_ASN1_MBSTRING_NCOPY 122 -# define ASN1_F_ASN1_OBJECT_NEW 123 -# define ASN1_F_ASN1_OUTPUT_DATA 214 -# define ASN1_F_ASN1_PCTX_NEW 205 -# define ASN1_F_ASN1_SCTX_NEW 221 -# define ASN1_F_ASN1_SIGN 128 -# define ASN1_F_ASN1_STR2TYPE 179 -# define ASN1_F_ASN1_STRING_GET_INT64 227 -# define ASN1_F_ASN1_STRING_GET_UINT64 230 -# define ASN1_F_ASN1_STRING_SET 186 -# define ASN1_F_ASN1_STRING_TABLE_ADD 129 -# define ASN1_F_ASN1_STRING_TO_BN 228 -# define ASN1_F_ASN1_STRING_TYPE_NEW 130 -# define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 -# define ASN1_F_ASN1_TEMPLATE_NEW 133 -# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 -# define ASN1_F_ASN1_TIME_ADJ 217 -# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 -# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 -# define ASN1_F_ASN1_UTCTIME_ADJ 218 -# define ASN1_F_ASN1_VERIFY 137 -# define ASN1_F_B64_READ_ASN1 209 -# define ASN1_F_B64_WRITE_ASN1 210 -# define ASN1_F_BIO_NEW_NDEF 208 -# define ASN1_F_BITSTR_CB 180 -# define ASN1_F_BN_TO_ASN1_STRING 229 -# define ASN1_F_C2I_ASN1_BIT_STRING 189 -# define ASN1_F_C2I_ASN1_INTEGER 194 -# define ASN1_F_C2I_ASN1_OBJECT 196 -# define ASN1_F_C2I_IBUF 226 -# define ASN1_F_C2I_UINT64_INT 101 -# define ASN1_F_COLLECT_DATA 140 -# define ASN1_F_D2I_ASN1_OBJECT 147 -# define ASN1_F_D2I_ASN1_UINTEGER 150 -# define ASN1_F_D2I_AUTOPRIVATEKEY 207 -# define ASN1_F_D2I_PRIVATEKEY 154 -# define ASN1_F_D2I_PUBLICKEY 155 -# define ASN1_F_DO_TCREATE 222 -# define ASN1_F_I2D_ASN1_BIO_STREAM 211 -# define ASN1_F_I2D_DSA_PUBKEY 161 -# define ASN1_F_I2D_EC_PUBKEY 181 -# define ASN1_F_I2D_PRIVATEKEY 163 -# define ASN1_F_I2D_PUBLICKEY 164 -# define ASN1_F_I2D_RSA_PUBKEY 165 -# define ASN1_F_LONG_C2I 166 -# define ASN1_F_OID_MODULE_INIT 174 -# define ASN1_F_PARSE_TAGGING 182 -# define ASN1_F_PKCS5_PBE2_SET_IV 167 -# define ASN1_F_PKCS5_PBE2_SET_SCRYPT 231 -# define ASN1_F_PKCS5_PBE_SET 202 -# define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 -# define ASN1_F_PKCS5_PBKDF2_SET 219 -# define ASN1_F_PKCS5_SCRYPT_SET 232 -# define ASN1_F_SMIME_READ_ASN1 212 -# define ASN1_F_SMIME_TEXT 213 -# define ASN1_F_STBL_MODULE_INIT 223 -# define ASN1_F_UINT32_C2I 105 -# define ASN1_F_UINT64_C2I 112 -# define ASN1_F_X509_CRL_ADD0_REVOKED 169 -# define ASN1_F_X509_INFO_NEW 170 -# define ASN1_F_X509_NAME_ENCODE 203 -# define ASN1_F_X509_NAME_EX_D2I 158 -# define ASN1_F_X509_NAME_EX_NEW 171 -# define ASN1_F_X509_PKEY_NEW 173 - -/* Reason codes. */ -# define ASN1_R_ADDING_OBJECT 171 -# define ASN1_R_ASN1_PARSE_ERROR 203 -# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 -# define ASN1_R_AUX_ERROR 100 -# define ASN1_R_BAD_OBJECT_HEADER 102 -# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 -# define ASN1_R_BN_LIB 105 -# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 -# define ASN1_R_BUFFER_TOO_SMALL 107 -# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 -# define ASN1_R_CONTEXT_NOT_INITIALISED 217 -# define ASN1_R_DATA_IS_WRONG 109 -# define ASN1_R_DECODE_ERROR 110 -# define ASN1_R_DEPTH_EXCEEDED 174 -# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 -# define ASN1_R_ENCODE_ERROR 112 -# define ASN1_R_ERROR_GETTING_TIME 173 -# define ASN1_R_ERROR_LOADING_SECTION 172 -# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 -# define ASN1_R_EXPECTING_AN_INTEGER 115 -# define ASN1_R_EXPECTING_AN_OBJECT 116 -# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 -# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 -# define ASN1_R_FIELD_MISSING 121 -# define ASN1_R_FIRST_NUM_TOO_LARGE 122 -# define ASN1_R_HEADER_TOO_LONG 123 -# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 -# define ASN1_R_ILLEGAL_BOOLEAN 176 -# define ASN1_R_ILLEGAL_CHARACTERS 124 -# define ASN1_R_ILLEGAL_FORMAT 177 -# define ASN1_R_ILLEGAL_HEX 178 -# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 -# define ASN1_R_ILLEGAL_INTEGER 180 -# define ASN1_R_ILLEGAL_NEGATIVE_VALUE 226 -# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 -# define ASN1_R_ILLEGAL_NULL 125 -# define ASN1_R_ILLEGAL_NULL_VALUE 182 -# define ASN1_R_ILLEGAL_OBJECT 183 -# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 -# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 -# define ASN1_R_ILLEGAL_PADDING 221 -# define ASN1_R_ILLEGAL_TAGGED_ANY 127 -# define ASN1_R_ILLEGAL_TIME_VALUE 184 -# define ASN1_R_ILLEGAL_ZERO_CONTENT 222 -# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 -# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 -# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 -# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 -# define ASN1_R_INVALID_DIGIT 130 -# define ASN1_R_INVALID_MIME_TYPE 205 -# define ASN1_R_INVALID_MODIFIER 186 -# define ASN1_R_INVALID_NUMBER 187 -# define ASN1_R_INVALID_OBJECT_ENCODING 216 -# define ASN1_R_INVALID_SCRYPT_PARAMETERS 227 -# define ASN1_R_INVALID_SEPARATOR 131 -# define ASN1_R_INVALID_STRING_TABLE_VALUE 218 -# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 -# define ASN1_R_INVALID_UTF8STRING 134 -# define ASN1_R_INVALID_VALUE 219 -# define ASN1_R_LIST_ERROR 188 -# define ASN1_R_MIME_NO_CONTENT_TYPE 206 -# define ASN1_R_MIME_PARSE_ERROR 207 -# define ASN1_R_MIME_SIG_PARSE_ERROR 208 -# define ASN1_R_MISSING_EOC 137 -# define ASN1_R_MISSING_SECOND_NUMBER 138 -# define ASN1_R_MISSING_VALUE 189 -# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 -# define ASN1_R_MSTRING_WRONG_TAG 140 -# define ASN1_R_NESTED_ASN1_STRING 197 -# define ASN1_R_NESTED_TOO_DEEP 201 -# define ASN1_R_NON_HEX_CHARACTERS 141 -# define ASN1_R_NOT_ASCII_FORMAT 190 -# define ASN1_R_NOT_ENOUGH_DATA 142 -# define ASN1_R_NO_CONTENT_TYPE 209 -# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 -# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 -# define ASN1_R_NO_MULTIPART_BOUNDARY 211 -# define ASN1_R_NO_SIG_CONTENT_TYPE 212 -# define ASN1_R_NULL_IS_WRONG_LENGTH 144 -# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 -# define ASN1_R_ODD_NUMBER_OF_CHARS 145 -# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 -# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 -# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 -# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 -# define ASN1_R_SHORT_LINE 150 -# define ASN1_R_SIG_INVALID_MIME_TYPE 213 -# define ASN1_R_STREAMING_NOT_SUPPORTED 202 -# define ASN1_R_STRING_TOO_LONG 151 -# define ASN1_R_STRING_TOO_SHORT 152 -# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 -# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 -# define ASN1_R_TOO_LARGE 223 -# define ASN1_R_TOO_LONG 155 -# define ASN1_R_TOO_SMALL 224 -# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 -# define ASN1_R_TYPE_NOT_PRIMITIVE 195 -# define ASN1_R_UNEXPECTED_EOC 159 -# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 -# define ASN1_R_UNKNOWN_FORMAT 160 -# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 -# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 -# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 -# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 -# define ASN1_R_UNKNOWN_TAG 194 -# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 -# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 -# define ASN1_R_UNSUPPORTED_TYPE 196 -# define ASN1_R_WRONG_INTEGER_TYPE 225 -# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 -# define ASN1_R_WRONG_TAG 168 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/asn1_mac.h b/Android/app/libs/arm64-v8a/include/openssl/asn1_mac.h deleted file mode 100644 index 7ac1782a..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/asn1t.h b/Android/app/libs/arm64-v8a/include/openssl/asn1t.h deleted file mode 100644 index a5248293..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/asn1t.h +++ /dev/null @@ -1,929 +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) \ - OPENSSL_GLOBAL 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),\ - #stname \ - 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),\ - #stname \ - 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(LONG) -DECLARE_ASN1_ITEM(ZLONG) - -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/Android/app/libs/arm64-v8a/include/openssl/async.h b/Android/app/libs/arm64-v8a/include/openssl/async.h deleted file mode 100644 index 5b2e496d..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/async.h +++ /dev/null @@ -1,98 +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 - */ - -#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 - - -# 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ASYNC_strings(void); - -/* Error codes for the ASYNC functions. */ - -/* Function codes. */ -# define ASYNC_F_ASYNC_CTX_NEW 100 -# define ASYNC_F_ASYNC_INIT_THREAD 101 -# define ASYNC_F_ASYNC_JOB_NEW 102 -# define ASYNC_F_ASYNC_PAUSE_JOB 103 -# define ASYNC_F_ASYNC_START_FUNC 104 -# define ASYNC_F_ASYNC_START_JOB 105 - -/* Reason codes. */ -# define ASYNC_R_FAILED_TO_SET_POOL 101 -# define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 -# define ASYNC_R_INIT_FAILED 105 -# define ASYNC_R_INVALID_POOL_SIZE 103 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/bio.h b/Android/app/libs/arm64-v8a/include/openssl/bio.h deleted file mode 100644 index f435bd8e..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/bio.h +++ /dev/null @@ -1,852 +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_BIO_H -# define HEADER_BIO_H - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include - -# include - -# ifndef OPENSSL_NO_SCTP -# include -# endif - -#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_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 - -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); -BIO_callback_fn BIO_get_callback(const BIO *b); -void BIO_set_callback(BIO *b, BIO_callback_fn 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) - -/* 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 len); -int BIO_gets(BIO *bp, char *buf, int size); -int BIO_write(BIO *b, const void *data, int len); -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_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_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); - */ - -# ifdef __GNUC__ -# define __bio_h__attr__ __attribute__ -# else -# define __bio_h__attr__(x) -# endif -int BIO_printf(BIO *bio, const char *format, ...) -__bio_h__attr__((__format__(__printf__, 2, 3))); -int BIO_vprintf(BIO *bio, const char *format, va_list args) -__bio_h__attr__((__format__(__printf__, 2, 0))); -int BIO_snprintf(char *buf, size_t n, const char *format, ...) -__bio_h__attr__((__format__(__printf__, 3, 4))); -int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) -__bio_h__attr__((__format__(__printf__, 3, 0))); -# undef __bio_h__attr__ - - -BIO_METHOD *BIO_meth_new(int type, const char *name); -void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int); -int BIO_meth_set_write(BIO_METHOD *biom, - int (*write) (BIO *, const char *, int)); -int (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int); -int BIO_meth_set_read(BIO_METHOD *biom, - int (*read) (BIO *, char *, int)); -int (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *); -int BIO_meth_set_puts(BIO_METHOD *biom, - int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int); -int BIO_meth_set_gets(BIO_METHOD *biom, - int (*gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(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(BIO_METHOD *bion)) (BIO *); -int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *); -int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(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 *)); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BIO_strings(void); - -/* Error codes for the BIO functions. */ - -/* Function codes. */ -# define BIO_F_ACPT_STATE 100 -# define BIO_F_ADDR_STRINGS 134 -# define BIO_F_BIO_ACCEPT 101 -# define BIO_F_BIO_ACCEPT_EX 137 -# define BIO_F_BIO_ADDR_NEW 144 -# define BIO_F_BIO_CALLBACK_CTRL 131 -# define BIO_F_BIO_CONNECT 138 -# define BIO_F_BIO_CTRL 103 -# define BIO_F_BIO_GETS 104 -# define BIO_F_BIO_GET_HOST_IP 106 -# define BIO_F_BIO_GET_NEW_INDEX 102 -# define BIO_F_BIO_GET_PORT 107 -# define BIO_F_BIO_LISTEN 139 -# define BIO_F_BIO_LOOKUP 135 -# define BIO_F_BIO_MAKE_PAIR 121 -# define BIO_F_BIO_METH_NEW 146 -# define BIO_F_BIO_NEW 108 -# define BIO_F_BIO_NEW_FILE 109 -# define BIO_F_BIO_NEW_MEM_BUF 126 -# define BIO_F_BIO_NREAD 123 -# define BIO_F_BIO_NREAD0 124 -# define BIO_F_BIO_NWRITE 125 -# define BIO_F_BIO_NWRITE0 122 -# define BIO_F_BIO_PARSE_HOSTSERV 136 -# define BIO_F_BIO_PUTS 110 -# define BIO_F_BIO_READ 111 -# define BIO_F_BIO_SOCKET 140 -# define BIO_F_BIO_SOCKET_NBIO 142 -# define BIO_F_BIO_SOCK_INFO 141 -# define BIO_F_BIO_SOCK_INIT 112 -# define BIO_F_BIO_WRITE 113 -# define BIO_F_BUFFER_CTRL 114 -# define BIO_F_CONN_CTRL 127 -# define BIO_F_CONN_STATE 115 -# define BIO_F_DGRAM_SCTP_READ 132 -# define BIO_F_DGRAM_SCTP_WRITE 133 -# define BIO_F_FILE_CTRL 116 -# define BIO_F_FILE_READ 130 -# define BIO_F_LINEBUFFER_CTRL 129 -# define BIO_F_MEM_WRITE 117 -# define BIO_F_SSL_NEW 118 - -/* Reason codes. */ -# define BIO_R_ACCEPT_ERROR 100 -# define BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET 141 -# define BIO_R_AMBIGUOUS_HOST_OR_SERVICE 129 -# define BIO_R_BAD_FOPEN_MODE 101 -# define BIO_R_BROKEN_PIPE 124 -# define BIO_R_CONNECT_ERROR 103 -# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 -# define BIO_R_GETSOCKNAME_ERROR 132 -# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133 -# define BIO_R_GETTING_SOCKTYPE 134 -# define BIO_R_INVALID_ARGUMENT 125 -# define BIO_R_INVALID_SOCKET 135 -# define BIO_R_IN_USE 123 -# define BIO_R_LISTEN_V6_ONLY 136 -# define BIO_R_LOOKUP_RETURNED_NOTHING 142 -# define BIO_R_MALFORMED_HOST_OR_SERVICE 130 -# define BIO_R_NBIO_CONNECT_ERROR 110 -# define BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED 143 -# define BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED 144 -# define BIO_R_NO_PORT_DEFINED 113 -# define BIO_R_NO_SUCH_FILE 128 -# define BIO_R_NULL_PARAMETER 115 -# define BIO_R_UNABLE_TO_BIND_SOCKET 117 -# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 -# define BIO_R_UNABLE_TO_KEEPALIVE 137 -# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 -# define BIO_R_UNABLE_TO_NODELAY 138 -# define BIO_R_UNABLE_TO_REUSEADDR 139 -# define BIO_R_UNAVAILABLE_IP_FAMILY 145 -# define BIO_R_UNINITIALIZED 120 -# define BIO_R_UNKNOWN_INFO_TYPE 140 -# define BIO_R_UNSUPPORTED_IP_FAMILY 146 -# define BIO_R_UNSUPPORTED_METHOD 121 -# define BIO_R_UNSUPPORTED_PROTOCOL_FAMILY 131 -# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 -# define BIO_R_WSASTARTUP 122 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/blowfish.h b/Android/app/libs/arm64-v8a/include/openssl/blowfish.h deleted file mode 100644 index cd3e460e..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/bn.h b/Android/app/libs/arm64-v8a/include/openssl/bn.h deleted file mode 100644 index 54ae7601..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/bn.h +++ /dev/null @@ -1,575 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the Eric Young open source - * license provided above. - * - * The binary polynomial arithmetic software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - -#ifndef HEADER_BN_H -# define HEADER_BN_H - -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# 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 */ - -/* - * number of Miller-Rabin iterations for an error rate of less than 2^-80 for - * random 'b'-bit input, b >= 100 (taken from table 4.4 in the Handbook of - * Applied Cryptography [Menezes, van Oorschot, Vanstone; CRC Press 1996]; - * original paper: Damgaard, Landrock, Pomerance: Average case error - * estimates for the strong probable prime test. -- Math. Comp. 61 (1993) - * 177-194) - */ -# define BN_prime_checks_for_size(b) ((b) >= 1300 ? 2 : \ - (b) >= 850 ? 3 : \ - (b) >= 650 ? 4 : \ - (b) >= 550 ? 5 : \ - (b) >= 450 ? 6 : \ - (b) >= 400 ? 7 : \ - (b) >= 350 ? 8 : \ - (b) >= 300 ? 9 : \ - (b) >= 250 ? 12 : \ - (b) >= 200 ? 15 : \ - (b) >= 150 ? 18 : \ - /* b >= 100 */ 27) - -# 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_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); -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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BN_strings(void); - -/* Error codes for the BN functions. */ - -/* Function codes. */ -# define BN_F_BNRAND 127 -# define BN_F_BN_BLINDING_CONVERT_EX 100 -# define BN_F_BN_BLINDING_CREATE_PARAM 128 -# define BN_F_BN_BLINDING_INVERT_EX 101 -# define BN_F_BN_BLINDING_NEW 102 -# define BN_F_BN_BLINDING_UPDATE 103 -# define BN_F_BN_BN2DEC 104 -# define BN_F_BN_BN2HEX 105 -# define BN_F_BN_COMPUTE_WNAF 142 -# define BN_F_BN_CTX_GET 116 -# define BN_F_BN_CTX_NEW 106 -# define BN_F_BN_CTX_START 129 -# define BN_F_BN_DIV 107 -# define BN_F_BN_DIV_RECP 130 -# define BN_F_BN_EXP 123 -# define BN_F_BN_EXPAND_INTERNAL 120 -# define BN_F_BN_GENCB_NEW 143 -# define BN_F_BN_GENERATE_DSA_NONCE 140 -# define BN_F_BN_GENERATE_PRIME_EX 141 -# define BN_F_BN_GF2M_MOD 131 -# define BN_F_BN_GF2M_MOD_EXP 132 -# define BN_F_BN_GF2M_MOD_MUL 133 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 -# define BN_F_BN_GF2M_MOD_SQR 136 -# define BN_F_BN_GF2M_MOD_SQRT 137 -# define BN_F_BN_LSHIFT 145 -# define BN_F_BN_MOD_EXP2_MONT 118 -# define BN_F_BN_MOD_EXP_MONT 109 -# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 -# define BN_F_BN_MOD_EXP_MONT_WORD 117 -# define BN_F_BN_MOD_EXP_RECP 125 -# define BN_F_BN_MOD_EXP_SIMPLE 126 -# define BN_F_BN_MOD_INVERSE 110 -# define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 -# define BN_F_BN_MOD_LSHIFT_QUICK 119 -# define BN_F_BN_MOD_SQRT 121 -# define BN_F_BN_MPI2BN 112 -# define BN_F_BN_NEW 113 -# define BN_F_BN_RAND 114 -# define BN_F_BN_RAND_RANGE 122 -# define BN_F_BN_RSHIFT 146 -# define BN_F_BN_SET_WORDS 144 -# define BN_F_BN_USUB 115 - -/* Reason codes. */ -# define BN_R_ARG2_LT_ARG3 100 -# define BN_R_BAD_RECIPROCAL 101 -# define BN_R_BIGNUM_TOO_LONG 114 -# define BN_R_BITS_TOO_SMALL 118 -# define BN_R_CALLED_WITH_EVEN_MODULUS 102 -# define BN_R_DIV_BY_ZERO 103 -# define BN_R_ENCODING_ERROR 104 -# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 -# define BN_R_INPUT_NOT_REDUCED 110 -# define BN_R_INVALID_LENGTH 106 -# define BN_R_INVALID_RANGE 115 -# define BN_R_INVALID_SHIFT 119 -# define BN_R_NOT_A_SQUARE 111 -# define BN_R_NOT_INITIALIZED 107 -# define BN_R_NO_INVERSE 108 -# define BN_R_NO_SOLUTION 116 -# define BN_R_PRIVATE_KEY_TOO_LARGE 117 -# define BN_R_P_IS_NOT_PRIME 112 -# define BN_R_TOO_MANY_ITERATIONS 113 -# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/buffer.h b/Android/app/libs/arm64-v8a/include/openssl/buffer.h deleted file mode 100644 index 35160b4f..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/buffer.h +++ /dev/null @@ -1,73 +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_BUFFER_H -# define HEADER_BUFFER_H - -# include -# ifndef HEADER_CRYPTO_H -# include -# endif - - -#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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BUF_strings(void); - -/* Error codes for the BUF functions. */ - -/* Function codes. */ -# define BUF_F_BUF_MEM_GROW 100 -# define BUF_F_BUF_MEM_GROW_CLEAN 105 -# define BUF_F_BUF_MEM_NEW 101 - -/* Reason codes. */ - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/camellia.h b/Android/app/libs/arm64-v8a/include/openssl/camellia.h deleted file mode 100644 index 151f3c13..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/cast.h b/Android/app/libs/arm64-v8a/include/openssl/cast.h deleted file mode 100644 index 2cc89ae0..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/cmac.h b/Android/app/libs/arm64-v8a/include/openssl/cmac.h deleted file mode 100644 index 3535a9ab..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/cms.h b/Android/app/libs/arm64-v8a/include/openssl/cms.h deleted file mode 100644 index 7e534e0d..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/cms.h +++ /dev/null @@ -1,512 +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_CMS_H -# define HEADER_CMS_H - -# include - -# ifndef OPENSSL_NO_CMS -# 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); - -# ifdef HEADER_X509V3_H - -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); -# endif -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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CMS_strings(void); - -/* Error codes for the CMS functions. */ - -/* Function codes. */ -# define CMS_F_CHECK_CONTENT 99 -# define CMS_F_CMS_ADD0_CERT 164 -# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 -# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 -# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 -# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 -# define CMS_F_CMS_ADD1_SIGNER 102 -# define CMS_F_CMS_ADD1_SIGNINGTIME 103 -# define CMS_F_CMS_COMPRESS 104 -# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 -# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 -# define CMS_F_CMS_COPY_CONTENT 107 -# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 -# define CMS_F_CMS_DATA 109 -# define CMS_F_CMS_DATAFINAL 110 -# define CMS_F_CMS_DATAINIT 111 -# define CMS_F_CMS_DECRYPT 112 -# define CMS_F_CMS_DECRYPT_SET1_KEY 113 -# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 -# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 -# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 -# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 -# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 -# define CMS_F_CMS_DIGEST_VERIFY 118 -# define CMS_F_CMS_ENCODE_RECEIPT 161 -# define CMS_F_CMS_ENCRYPT 119 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 -# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 -# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 -# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 -# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 -# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 -# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 -# define CMS_F_CMS_ENV_ASN1_CTRL 171 -# define CMS_F_CMS_FINAL 127 -# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 -# define CMS_F_CMS_GET0_CONTENT 129 -# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 -# define CMS_F_CMS_GET0_ENVELOPED 131 -# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 -# define CMS_F_CMS_GET0_SIGNED 133 -# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 -# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 -# define CMS_F_CMS_RECEIPT_VERIFY 160 -# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 -# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 -# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 -# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 -# define CMS_F_CMS_SD_ASN1_CTRL 170 -# define CMS_F_CMS_SET1_IAS 176 -# define CMS_F_CMS_SET1_KEYID 177 -# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 -# define CMS_F_CMS_SET_DETACHED 147 -# define CMS_F_CMS_SIGN 148 -# define CMS_F_CMS_SIGNED_DATA_INIT 149 -# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 -# define CMS_F_CMS_SIGNERINFO_SIGN 151 -# define CMS_F_CMS_SIGNERINFO_VERIFY 152 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 -# define CMS_F_CMS_SIGN_RECEIPT 163 -# define CMS_F_CMS_STREAM 155 -# define CMS_F_CMS_UNCOMPRESS 156 -# define CMS_F_CMS_VERIFY 157 - -/* Reason codes. */ -# define CMS_R_ADD_SIGNER_ERROR 99 -# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 -# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 -# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 -# define CMS_R_CIPHER_INITIALISATION_ERROR 101 -# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 -# define CMS_R_CMS_DATAFINAL_ERROR 103 -# define CMS_R_CMS_LIB 104 -# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 -# define CMS_R_CONTENT_NOT_FOUND 105 -# define CMS_R_CONTENT_TYPE_MISMATCH 171 -# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 -# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 -# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 -# define CMS_R_CONTENT_VERIFY_ERROR 109 -# define CMS_R_CTRL_ERROR 110 -# define CMS_R_CTRL_FAILURE 111 -# define CMS_R_DECRYPT_ERROR 112 -# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 -# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 -# define CMS_R_ERROR_SETTING_KEY 115 -# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 -# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 -# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 -# define CMS_R_INVALID_KEY_LENGTH 118 -# define CMS_R_MD_BIO_INIT_ERROR 119 -# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 -# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 -# define CMS_R_MSGSIGDIGEST_ERROR 172 -# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 -# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 -# define CMS_R_NEED_ONE_SIGNER 164 -# define CMS_R_NOT_A_SIGNED_RECEIPT 165 -# define CMS_R_NOT_ENCRYPTED_DATA 122 -# define CMS_R_NOT_KEK 123 -# define CMS_R_NOT_KEY_AGREEMENT 181 -# define CMS_R_NOT_KEY_TRANSPORT 124 -# define CMS_R_NOT_PWRI 177 -# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 -# define CMS_R_NO_CIPHER 126 -# define CMS_R_NO_CONTENT 127 -# define CMS_R_NO_CONTENT_TYPE 173 -# define CMS_R_NO_DEFAULT_DIGEST 128 -# define CMS_R_NO_DIGEST_SET 129 -# define CMS_R_NO_KEY 130 -# define CMS_R_NO_KEY_OR_CERT 174 -# define CMS_R_NO_MATCHING_DIGEST 131 -# define CMS_R_NO_MATCHING_RECIPIENT 132 -# define CMS_R_NO_MATCHING_SIGNATURE 166 -# define CMS_R_NO_MSGSIGDIGEST 167 -# define CMS_R_NO_PASSWORD 178 -# define CMS_R_NO_PRIVATE_KEY 133 -# define CMS_R_NO_PUBLIC_KEY 134 -# define CMS_R_NO_RECEIPT_REQUEST 168 -# define CMS_R_NO_SIGNERS 135 -# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 -# define CMS_R_RECEIPT_DECODE_ERROR 169 -# define CMS_R_RECIPIENT_ERROR 137 -# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 -# define CMS_R_SIGNFINAL_ERROR 139 -# define CMS_R_SMIME_TEXT_ERROR 140 -# define CMS_R_STORE_INIT_ERROR 141 -# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 -# define CMS_R_TYPE_NOT_DATA 143 -# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 -# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 -# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 -# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 -# define CMS_R_UNKNOWN_CIPHER 148 -# define CMS_R_UNKNOWN_DIGEST_ALGORIHM 149 -# define CMS_R_UNKNOWN_ID 150 -# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 -# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 -# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 -# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 -# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 -# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE 155 -# define CMS_R_UNSUPPORTED_TYPE 156 -# define CMS_R_UNWRAP_ERROR 157 -# define CMS_R_UNWRAP_FAILURE 180 -# define CMS_R_VERIFICATION_FAILURE 158 -# define CMS_R_WRAP_ERROR 159 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/comp.h b/Android/app/libs/arm64-v8a/include/openssl/comp.h deleted file mode 100644 index 260ff1e0..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/comp.h +++ /dev/null @@ -1,72 +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 - */ - -#ifndef HEADER_COMP_H -# define HEADER_COMP_H - -# include - -# ifndef OPENSSL_NO_COMP -# 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 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_COMP_strings(void); - -/* Error codes for the COMP functions. */ - -/* Function codes. */ -# define COMP_F_BIO_ZLIB_FLUSH 99 -# define COMP_F_BIO_ZLIB_NEW 100 -# define COMP_F_BIO_ZLIB_READ 101 -# define COMP_F_BIO_ZLIB_WRITE 102 - -/* Reason codes. */ -# define COMP_R_ZLIB_DEFLATE_ERROR 99 -# define COMP_R_ZLIB_INFLATE_ERROR 100 -# define COMP_R_ZLIB_NOT_SUPPORTED 101 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/conf.h b/Android/app/libs/arm64-v8a/include/openssl/conf.h deleted file mode 100644 index 980a51b1..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/conf.h +++ /dev/null @@ -1,217 +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_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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CONF_strings(void); - -/* Error codes for the CONF functions. */ - -/* Function codes. */ -# define CONF_F_CONF_DUMP_FP 104 -# define CONF_F_CONF_LOAD 100 -# define CONF_F_CONF_LOAD_FP 103 -# define CONF_F_CONF_PARSE_LIST 119 -# define CONF_F_DEF_LOAD 120 -# define CONF_F_DEF_LOAD_BIO 121 -# define CONF_F_MODULE_INIT 115 -# define CONF_F_MODULE_LOAD_DSO 117 -# define CONF_F_MODULE_RUN 118 -# define CONF_F_NCONF_DUMP_BIO 105 -# define CONF_F_NCONF_DUMP_FP 106 -# define CONF_F_NCONF_GET_NUMBER_E 112 -# define CONF_F_NCONF_GET_SECTION 108 -# define CONF_F_NCONF_GET_STRING 109 -# define CONF_F_NCONF_LOAD 113 -# define CONF_F_NCONF_LOAD_BIO 110 -# define CONF_F_NCONF_LOAD_FP 114 -# define CONF_F_NCONF_NEW 111 -# define CONF_F_STR_COPY 101 - -/* Reason codes. */ -# define CONF_R_ERROR_LOADING_DSO 110 -# define CONF_R_LIST_CANNOT_BE_NULL 115 -# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 -# define CONF_R_MISSING_EQUAL_SIGN 101 -# define CONF_R_MISSING_INIT_FUNCTION 112 -# define CONF_R_MODULE_INITIALIZATION_ERROR 109 -# define CONF_R_NO_CLOSE_BRACE 102 -# define CONF_R_NO_CONF 105 -# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 -# define CONF_R_NO_SECTION 107 -# define CONF_R_NO_SUCH_FILE 114 -# define CONF_R_NO_VALUE 108 -# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 -# define CONF_R_UNKNOWN_MODULE_NAME 113 -# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 -# define CONF_R_VARIABLE_HAS_NO_VALUE 104 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/conf_api.h b/Android/app/libs/arm64-v8a/include/openssl/conf_api.h deleted file mode 100644 index a0275ad7..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/crypto.h b/Android/app/libs/arm64-v8a/include/openssl/crypto.h deleted file mode 100644 index 1ba7f25f..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/crypto.h +++ /dev/null @@ -1,467 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_CRYPTO_H -# define HEADER_CRYPTO_H - -# 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__COUNT 14 - -/* - * This is the default callbacks, but we can have others as well: this is - * needed in Win32 where the application malloc and the library malloc may - * not be the same. - */ -#define OPENSSL_malloc_init() \ - CRYPTO_set_mem_functions(CRYPTO_malloc, CRYPTO_realloc, CRYPTO_free) - -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 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); - -/*- - * 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); - -# 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); - -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 volatile void * volatile in_a, - const volatile void * volatile 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 flag 0x00010000 reserved for internal use */ -/* 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_appname(OPENSSL_INIT_SETTINGS *settings, - const char *config_file); -# 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CRYPTO_strings(void); - -/* Error codes for the CRYPTO functions. */ - -/* Function codes. */ -# define CRYPTO_F_CRYPTO_DUP_EX_DATA 110 -# define CRYPTO_F_CRYPTO_FREE_EX_DATA 111 -# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 -# define CRYPTO_F_CRYPTO_MEMDUP 115 -# define CRYPTO_F_CRYPTO_NEW_EX_DATA 112 -# define CRYPTO_F_CRYPTO_SET_EX_DATA 102 -# define CRYPTO_F_FIPS_MODE_SET 109 -# define CRYPTO_F_GET_AND_LOCK 113 -# define CRYPTO_F_OPENSSL_BUF2HEXSTR 117 -# define CRYPTO_F_OPENSSL_HEXSTR2BUF 118 -# define CRYPTO_F_OPENSSL_INIT_CRYPTO 116 - -/* Reason codes. */ -# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 -# define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 -# define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/ct.h b/Android/app/libs/arm64-v8a/include/openssl/ct.h deleted file mode 100644 index bf29fbab..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/ct.h +++ /dev/null @@ -1,533 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CT_H -# define HEADER_CT_H - -# include - -# ifndef OPENSSL_NO_CT -# 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|. - * See internal/cryptlib.h for the environment variable and file path that are - * consulted to find the default file. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CT_strings(void); - -/* Error codes for the CT functions. */ - -/* Function codes. */ -# define CT_F_CTLOG_NEW 117 -# define CT_F_CTLOG_NEW_FROM_BASE64 118 -# define CT_F_CTLOG_NEW_FROM_CONF 119 -# define CT_F_CTLOG_STORE_LOAD_CTX_NEW 122 -# define CT_F_CTLOG_STORE_LOAD_FILE 123 -# define CT_F_CTLOG_STORE_LOAD_LOG 130 -# define CT_F_CTLOG_STORE_NEW 131 -# define CT_F_CT_BASE64_DECODE 124 -# define CT_F_CT_POLICY_EVAL_CTX_NEW 133 -# define CT_F_CT_V1_LOG_ID_FROM_PKEY 125 -# define CT_F_I2O_SCT 107 -# define CT_F_I2O_SCT_LIST 108 -# define CT_F_I2O_SCT_SIGNATURE 109 -# define CT_F_O2I_SCT 110 -# define CT_F_O2I_SCT_LIST 111 -# define CT_F_O2I_SCT_SIGNATURE 112 -# define CT_F_SCT_CTX_NEW 126 -# define CT_F_SCT_CTX_VERIFY 128 -# define CT_F_SCT_NEW 100 -# define CT_F_SCT_NEW_FROM_BASE64 127 -# define CT_F_SCT_SET0_LOG_ID 101 -# define CT_F_SCT_SET1_EXTENSIONS 114 -# define CT_F_SCT_SET1_LOG_ID 115 -# define CT_F_SCT_SET1_SIGNATURE 116 -# define CT_F_SCT_SET_LOG_ENTRY_TYPE 102 -# define CT_F_SCT_SET_SIGNATURE_NID 103 -# define CT_F_SCT_SET_VERSION 104 - -/* Reason codes. */ -# define CT_R_BASE64_DECODE_ERROR 108 -# define CT_R_INVALID_LOG_ID_LENGTH 100 -# define CT_R_LOG_CONF_INVALID 109 -# define CT_R_LOG_CONF_INVALID_KEY 110 -# define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 -# define CT_R_LOG_CONF_MISSING_KEY 112 -# define CT_R_LOG_KEY_INVALID 113 -# define CT_R_SCT_FUTURE_TIMESTAMP 116 -# define CT_R_SCT_INVALID 104 -# define CT_R_SCT_INVALID_SIGNATURE 107 -# define CT_R_SCT_LIST_INVALID 105 -# define CT_R_SCT_LOG_ID_MISMATCH 114 -# define CT_R_SCT_NOT_SET 106 -# define CT_R_SCT_UNSUPPORTED_VERSION 115 -# define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 -# define CT_R_UNSUPPORTED_ENTRY_TYPE 102 -# define CT_R_UNSUPPORTED_VERSION 103 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/des.h b/Android/app/libs/arm64-v8a/include/openssl/des.h deleted file mode 100644 index be4abbdf..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/dh.h b/Android/app/libs/arm64-v8a/include/openssl/dh.h deleted file mode 100644 index fbd47903..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/dh.h +++ /dev/null @@ -1,361 +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_DH_H -# define HEADER_DH_H - -# include - -# ifndef OPENSSL_NO_DH -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -# 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(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); - -# 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); -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(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_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) - -/* KDF types */ -# define EVP_PKEY_DH_KDF_NONE 1 -# ifndef OPENSSL_NO_CMS -# define EVP_PKEY_DH_KDF_X9_42 2 -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_DH_strings(void); - -/* Error codes for the DH functions. */ - -/* Function codes. */ -# define DH_F_COMPUTE_KEY 102 -# define DH_F_DHPARAMS_PRINT_FP 101 -# define DH_F_DH_BUILTIN_GENPARAMS 106 -# define DH_F_DH_CMS_DECRYPT 114 -# define DH_F_DH_CMS_SET_PEERKEY 115 -# define DH_F_DH_CMS_SET_SHARED_INFO 116 -# define DH_F_DH_METH_DUP 117 -# define DH_F_DH_METH_NEW 118 -# define DH_F_DH_METH_SET1_NAME 119 -# define DH_F_DH_NEW_METHOD 105 -# define DH_F_DH_PARAM_DECODE 107 -# define DH_F_DH_PRIV_DECODE 110 -# define DH_F_DH_PRIV_ENCODE 111 -# define DH_F_DH_PUB_DECODE 108 -# define DH_F_DH_PUB_ENCODE 109 -# define DH_F_DO_DH_PRINT 100 -# define DH_F_GENERATE_KEY 103 -# define DH_F_PKEY_DH_DERIVE 112 -# define DH_F_PKEY_DH_KEYGEN 113 - -/* Reason codes. */ -# define DH_R_BAD_GENERATOR 101 -# define DH_R_BN_DECODE_ERROR 109 -# define DH_R_BN_ERROR 106 -# define DH_R_DECODE_ERROR 104 -# define DH_R_INVALID_PUBKEY 102 -# define DH_R_KDF_PARAMETER_ERROR 112 -# define DH_R_KEYS_NOT_SET 108 -# define DH_R_MODULUS_TOO_LARGE 103 -# define DH_R_NO_PARAMETERS_SET 107 -# define DH_R_NO_PRIVATE_VALUE 100 -# define DH_R_PARAMETER_ENCODING_ERROR 105 -# define DH_R_PEER_KEY_ERROR 111 -# define DH_R_SHARED_INFO_ERROR 113 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/dsa.h b/Android/app/libs/arm64-v8a/include/openssl/dsa.h deleted file mode 100644 index 139718ed..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/dsa.h +++ /dev/null @@ -1,283 +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 - */ - -/* - * The DSS routines are based on patches supplied by - * Steven Schoch . - */ - -#ifndef HEADER_DSA_H -# define HEADER_DSA_H - -# include - -# ifndef OPENSSL_NO_DSA -# ifdef __cplusplus -extern "C" { -# endif -# include -# include -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -# 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 */ -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 50 -/* - * Primality test according to FIPS PUB 186[-1], Appendix 2.1: 50 rounds of - * Rabin-Miller - */ -# 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_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); -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(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 *)); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_DSA_strings(void); - -/* Error codes for the DSA functions. */ - -/* Function codes. */ -# define DSA_F_DSAPARAMS_PRINT 100 -# define DSA_F_DSAPARAMS_PRINT_FP 101 -# define DSA_F_DSA_BUILTIN_PARAMGEN 125 -# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 -# define DSA_F_DSA_DO_SIGN 112 -# define DSA_F_DSA_DO_VERIFY 113 -# define DSA_F_DSA_METH_DUP 127 -# define DSA_F_DSA_METH_NEW 128 -# define DSA_F_DSA_METH_SET1_NAME 129 -# define DSA_F_DSA_NEW_METHOD 103 -# define DSA_F_DSA_PARAM_DECODE 119 -# define DSA_F_DSA_PRINT_FP 105 -# define DSA_F_DSA_PRIV_DECODE 115 -# define DSA_F_DSA_PRIV_ENCODE 116 -# define DSA_F_DSA_PUB_DECODE 117 -# define DSA_F_DSA_PUB_ENCODE 118 -# define DSA_F_DSA_SIGN 106 -# define DSA_F_DSA_SIGN_SETUP 107 -# define DSA_F_DSA_SIG_NEW 102 -# define DSA_F_OLD_DSA_PRIV_DECODE 122 -# define DSA_F_PKEY_DSA_CTRL 120 -# define DSA_F_PKEY_DSA_KEYGEN 121 - -/* Reason codes. */ -# define DSA_R_BAD_Q_VALUE 102 -# define DSA_R_BN_DECODE_ERROR 108 -# define DSA_R_BN_ERROR 109 -# define DSA_R_DECODE_ERROR 104 -# define DSA_R_INVALID_DIGEST_TYPE 106 -# define DSA_R_INVALID_PARAMETERS 112 -# define DSA_R_MISSING_PARAMETERS 101 -# define DSA_R_MODULUS_TOO_LARGE 103 -# define DSA_R_NO_PARAMETERS_SET 107 -# define DSA_R_PARAMETER_ENCODING_ERROR 105 -# define DSA_R_Q_NOT_PRIME 113 -# define DSA_R_SEED_LEN_SMALL 110 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/dtls1.h b/Android/app/libs/arm64-v8a/include/openssl/dtls1.h deleted file mode 100644 index f4769f83..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/dtls1.h +++ /dev/null @@ -1,56 +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_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 */ -# 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 - -# ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE -# define DTLS1_AL_HEADER_LENGTH 7 -# else -# define DTLS1_AL_HEADER_LENGTH 2 -# endif - - -/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */ -# 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/Android/app/libs/arm64-v8a/include/openssl/e_os2.h b/Android/app/libs/arm64-v8a/include/openssl/e_os2.h deleted file mode 100644 index 9800e154..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/e_os2.h +++ /dev/null @@ -1,297 +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_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 - -/*- - * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare - * certain global symbols that, with some compilers under VMS, have to be - * defined and declared explicitly with globaldef and globalref. - * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare - * DLL exports and imports for compilers under Win32. These are a little - * more complicated to use. Basically, for any library that exports some - * global variables, the following code must be present in the header file - * that declares them, before OPENSSL_EXTERN is used: - * - * #ifdef SOME_BUILD_FLAG_MACRO - * # undef OPENSSL_EXTERN - * # define OPENSSL_EXTERN OPENSSL_EXPORT - * #endif - * - * The default is to have OPENSSL_EXPORT, OPENSSL_EXTERN and OPENSSL_GLOBAL - * have some generally sensible values. - */ - -# if defined(OPENSSL_SYS_VMS_NODECC) -# define OPENSSL_EXPORT globalref -# define OPENSSL_EXTERN globalref -# define OPENSSL_GLOBAL globaldef -# elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) -# define OPENSSL_EXPORT extern __declspec(dllexport) -# define OPENSSL_EXTERN extern __declspec(dllimport) -# define OPENSSL_GLOBAL -# else -# define OPENSSL_EXPORT extern -# define OPENSSL_EXTERN extern -# define OPENSSL_GLOBAL -# endif - -/*- - * 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) OPENSSL_GLOBAL 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 -# 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<=1500 -/* - * 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 -# define ossl_noreturn _Noreturn -# elif defined(__GNUC__) && __GNUC__ >= 2 -# define ossl_noreturn __attribute__((noreturn)) -# else -# define ossl_noreturn -# endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/ebcdic.h b/Android/app/libs/arm64-v8a/include/openssl/ebcdic.h deleted file mode 100644 index aa012855..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/ec.h b/Android/app/libs/arm64-v8a/include/openssl/ec.h deleted file mode 100644 index f06680a7..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/ec.h +++ /dev/null @@ -1,1576 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * The elliptic curve binary polynomial software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - -#ifndef HEADER_EC_H -# define HEADER_EC_H - -# include - -# ifndef OPENSSL_NO_EC -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# 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 it's 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 parameter of a ec over GFp defined by y^2 = x^3 + a*x + b - * \param group EC_GROUP object - * \param p BIGNUM with the prime number - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b - * \param group EC_GROUP object - * \param p BIGNUM for the prime number - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M -/** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b - * \param group EC_GROUP object - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b - * \param group EC_GROUP object - * \param p BIGNUM for the polynomial defining the underlying field - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx); -# 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 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 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 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 ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GFp - * \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_GFp(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - int y_bit, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Sets the affine coordinates of a EC_POINT over GF2m - * \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_GF2m(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of a EC_POINT over GF2m - * \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_GF2m(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m - * \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_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, \ - (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) -# define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \ - (unsigned char *)(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); - -/** 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 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); - -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 0 - */ -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 pointer - * \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); - -/** Setter for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG pointer - * \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) - -# 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) -/* KDF types */ -# define EVP_PKEY_ECDH_KDF_NONE 1 -# define EVP_PKEY_ECDH_KDF_X9_62 2 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_EC_strings(void); - -/* Error codes for the EC functions. */ - -/* Function codes. */ -# define EC_F_BN_TO_FELEM 224 -# define EC_F_D2I_ECPARAMETERS 144 -# define EC_F_D2I_ECPKPARAMETERS 145 -# define EC_F_D2I_ECPRIVATEKEY 146 -# define EC_F_DO_EC_KEY_PRINT 221 -# define EC_F_ECDH_CMS_DECRYPT 238 -# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 -# define EC_F_ECDH_COMPUTE_KEY 246 -# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 257 -# define EC_F_ECDSA_DO_SIGN_EX 251 -# define EC_F_ECDSA_DO_VERIFY 252 -# define EC_F_ECDSA_SIGN_EX 254 -# define EC_F_ECDSA_SIGN_SETUP 248 -# define EC_F_ECDSA_SIG_NEW 265 -# define EC_F_ECDSA_VERIFY 253 -# define EC_F_ECKEY_PARAM2TYPE 223 -# define EC_F_ECKEY_PARAM_DECODE 212 -# define EC_F_ECKEY_PRIV_DECODE 213 -# define EC_F_ECKEY_PRIV_ENCODE 214 -# define EC_F_ECKEY_PUB_DECODE 215 -# define EC_F_ECKEY_PUB_ENCODE 216 -# define EC_F_ECKEY_TYPE2PARAM 220 -# define EC_F_ECPARAMETERS_PRINT 147 -# define EC_F_ECPARAMETERS_PRINT_FP 148 -# define EC_F_ECPKPARAMETERS_PRINT 149 -# define EC_F_ECPKPARAMETERS_PRINT_FP 150 -# define EC_F_ECP_NISTZ256_GET_AFFINE 240 -# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 -# define EC_F_ECP_NISTZ256_POINTS_MUL 241 -# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 -# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 -# define EC_F_ECX_KEY_OP 266 -# define EC_F_ECX_PRIV_ENCODE 267 -# define EC_F_ECX_PUB_ENCODE 268 -# define EC_F_EC_ASN1_GROUP2CURVE 153 -# define EC_F_EC_ASN1_GROUP2FIELDID 154 -# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 -# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 -# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 -# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 -# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 -# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 -# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 -# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 -# define EC_F_EC_GFP_MONT_FIELD_DECODE 133 -# define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 -# define EC_F_EC_GFP_MONT_FIELD_MUL 131 -# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 -# define EC_F_EC_GFP_MONT_FIELD_SQR 132 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 -# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 -# define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 -# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 -# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 -# define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 -# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 -# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 -# define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 -# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 -# define EC_F_EC_GFP_NIST_FIELD_MUL 200 -# define EC_F_EC_GFP_NIST_FIELD_SQR 201 -# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 -# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 -# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 -# define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 -# define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 -# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 -# define EC_F_EC_GROUP_CHECK 170 -# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 -# define EC_F_EC_GROUP_COPY 106 -# define EC_F_EC_GROUP_GET_CURVE_GF2M 172 -# define EC_F_EC_GROUP_GET_CURVE_GFP 130 -# define EC_F_EC_GROUP_GET_DEGREE 173 -# define EC_F_EC_GROUP_GET_ECPARAMETERS 261 -# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 262 -# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 -# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 -# define EC_F_EC_GROUP_NEW 108 -# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 -# define EC_F_EC_GROUP_NEW_FROM_DATA 175 -# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 263 -# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 264 -# define EC_F_EC_GROUP_SET_CURVE_GF2M 176 -# define EC_F_EC_GROUP_SET_CURVE_GFP 109 -# define EC_F_EC_GROUP_SET_GENERATOR 111 -# define EC_F_EC_KEY_CHECK_KEY 177 -# define EC_F_EC_KEY_COPY 178 -# define EC_F_EC_KEY_GENERATE_KEY 179 -# define EC_F_EC_KEY_NEW 182 -# define EC_F_EC_KEY_NEW_METHOD 245 -# define EC_F_EC_KEY_OCT2PRIV 255 -# define EC_F_EC_KEY_PRINT 180 -# define EC_F_EC_KEY_PRINT_FP 181 -# define EC_F_EC_KEY_PRIV2OCT 256 -# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 -# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 258 -# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 259 -# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 260 -# define EC_F_EC_POINTS_MAKE_AFFINE 136 -# define EC_F_EC_POINT_ADD 112 -# define EC_F_EC_POINT_CMP 113 -# define EC_F_EC_POINT_COPY 114 -# define EC_F_EC_POINT_DBL 115 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 -# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 -# define EC_F_EC_POINT_INVERT 210 -# define EC_F_EC_POINT_IS_AT_INFINITY 118 -# define EC_F_EC_POINT_IS_ON_CURVE 119 -# define EC_F_EC_POINT_MAKE_AFFINE 120 -# define EC_F_EC_POINT_NEW 121 -# define EC_F_EC_POINT_OCT2POINT 122 -# define EC_F_EC_POINT_POINT2OCT 123 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 -# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 -# define EC_F_EC_POINT_SET_TO_INFINITY 127 -# define EC_F_EC_PRE_COMP_NEW 196 -# define EC_F_EC_WNAF_MUL 187 -# define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 -# define EC_F_I2D_ECPARAMETERS 190 -# define EC_F_I2D_ECPKPARAMETERS 191 -# define EC_F_I2D_ECPRIVATEKEY 192 -# define EC_F_I2O_ECPUBLICKEY 151 -# define EC_F_NISTP224_PRE_COMP_NEW 227 -# define EC_F_NISTP256_PRE_COMP_NEW 236 -# define EC_F_NISTP521_PRE_COMP_NEW 237 -# define EC_F_O2I_ECPUBLICKEY 152 -# define EC_F_OLD_EC_PRIV_DECODE 222 -# define EC_F_OSSL_ECDH_COMPUTE_KEY 247 -# define EC_F_OSSL_ECDSA_SIGN_SIG 249 -# define EC_F_OSSL_ECDSA_VERIFY_SIG 250 -# define EC_F_PKEY_ECX_DERIVE 269 -# define EC_F_PKEY_EC_CTRL 197 -# define EC_F_PKEY_EC_CTRL_STR 198 -# define EC_F_PKEY_EC_DERIVE 217 -# define EC_F_PKEY_EC_KEYGEN 199 -# define EC_F_PKEY_EC_PARAMGEN 219 -# define EC_F_PKEY_EC_SIGN 218 - -/* Reason codes. */ -# define EC_R_ASN1_ERROR 115 -# define EC_R_BAD_SIGNATURE 156 -# define EC_R_BIGNUM_OUT_OF_RANGE 144 -# define EC_R_BUFFER_TOO_SMALL 100 -# define EC_R_COORDINATES_OUT_OF_RANGE 146 -# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 -# define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 -# define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 -# define EC_R_DECODE_ERROR 142 -# define EC_R_DISCRIMINANT_IS_ZERO 118 -# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 -# define EC_R_FIELD_TOO_LARGE 143 -# define EC_R_GF2M_NOT_SUPPORTED 147 -# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 -# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 -# define EC_R_INCOMPATIBLE_OBJECTS 101 -# define EC_R_INVALID_ARGUMENT 112 -# define EC_R_INVALID_COMPRESSED_POINT 110 -# define EC_R_INVALID_COMPRESSION_BIT 109 -# define EC_R_INVALID_CURVE 141 -# define EC_R_INVALID_DIGEST 151 -# define EC_R_INVALID_DIGEST_TYPE 138 -# define EC_R_INVALID_ENCODING 102 -# define EC_R_INVALID_FIELD 103 -# define EC_R_INVALID_FORM 104 -# define EC_R_INVALID_GROUP_ORDER 122 -# define EC_R_INVALID_KEY 116 -# define EC_R_INVALID_OUTPUT_LENGTH 161 -# define EC_R_INVALID_PEER_KEY 133 -# define EC_R_INVALID_PENTANOMIAL_BASIS 132 -# define EC_R_INVALID_PRIVATE_KEY 123 -# define EC_R_INVALID_TRINOMIAL_BASIS 137 -# define EC_R_KDF_PARAMETER_ERROR 148 -# define EC_R_KEYS_NOT_SET 140 -# define EC_R_MISSING_PARAMETERS 124 -# define EC_R_MISSING_PRIVATE_KEY 125 -# define EC_R_NEED_NEW_SETUP_VALUES 157 -# define EC_R_NOT_A_NIST_PRIME 135 -# define EC_R_NOT_IMPLEMENTED 126 -# define EC_R_NOT_INITIALIZED 111 -# define EC_R_NO_PARAMETERS_SET 139 -# define EC_R_NO_PRIVATE_VALUE 154 -# define EC_R_OPERATION_NOT_SUPPORTED 152 -# define EC_R_PASSED_NULL_PARAMETER 134 -# define EC_R_PEER_KEY_ERROR 149 -# define EC_R_PKPARAMETERS2GROUP_FAILURE 127 -# define EC_R_POINT_ARITHMETIC_FAILURE 155 -# define EC_R_POINT_AT_INFINITY 106 -# define EC_R_POINT_IS_NOT_ON_CURVE 107 -# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 158 -# define EC_R_SHARED_INFO_ERROR 150 -# define EC_R_SLOT_FULL 108 -# define EC_R_UNDEFINED_GENERATOR 113 -# define EC_R_UNDEFINED_ORDER 128 -# define EC_R_UNKNOWN_GROUP 129 -# define EC_R_UNKNOWN_ORDER 114 -# define EC_R_UNSUPPORTED_FIELD 131 -# define EC_R_WRONG_CURVE_PARAMETERS 145 -# define EC_R_WRONG_ORDER 130 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/ecdh.h b/Android/app/libs/arm64-v8a/include/openssl/ecdh.h deleted file mode 100644 index 681f3d5e..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/ecdsa.h b/Android/app/libs/arm64-v8a/include/openssl/ecdsa.h deleted file mode 100644 index 681f3d5e..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/engine.h b/Android/app/libs/arm64-v8a/include/openssl/engine.h deleted file mode 100644 index 26cf7148..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/engine.h +++ /dev/null @@ -1,840 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_ENGINE_H -# define HEADER_ENGINE_H - -# include - -# ifndef OPENSSL_NO_ENGINE -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# include -# include -# include -# include -# include -# endif -# 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 parametrised 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); \ - 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(HAVE_CRYPTODEV) -DEPRECATEDIN_1_1_0(void ENGINE_setup_bsd_cryptodev(void)) -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ENGINE_strings(void); - -/* Error codes for the ENGINE functions. */ - -/* Function codes. */ -# define ENGINE_F_DYNAMIC_CTRL 180 -# define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 -# define ENGINE_F_DYNAMIC_LOAD 182 -# define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 -# define ENGINE_F_ENGINE_ADD 105 -# define ENGINE_F_ENGINE_BY_ID 106 -# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 -# define ENGINE_F_ENGINE_CTRL 142 -# define ENGINE_F_ENGINE_CTRL_CMD 178 -# define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 -# define ENGINE_F_ENGINE_FINISH 107 -# define ENGINE_F_ENGINE_GET_CIPHER 185 -# define ENGINE_F_ENGINE_GET_DIGEST 186 -# define ENGINE_F_ENGINE_GET_FIRST 195 -# define ENGINE_F_ENGINE_GET_LAST 196 -# define ENGINE_F_ENGINE_GET_NEXT 115 -# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 -# define ENGINE_F_ENGINE_GET_PKEY_METH 192 -# define ENGINE_F_ENGINE_GET_PREV 116 -# define ENGINE_F_ENGINE_INIT 119 -# define ENGINE_F_ENGINE_LIST_ADD 120 -# define ENGINE_F_ENGINE_LIST_REMOVE 121 -# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 -# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 -# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 -# define ENGINE_F_ENGINE_NEW 122 -# define ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR 197 -# define ENGINE_F_ENGINE_REMOVE 123 -# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 -# define ENGINE_F_ENGINE_SET_ID 129 -# define ENGINE_F_ENGINE_SET_NAME 130 -# define ENGINE_F_ENGINE_TABLE_REGISTER 184 -# define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 -# define ENGINE_F_ENGINE_UP_REF 190 -# define ENGINE_F_INT_CTRL_HELPER 172 -# define ENGINE_F_INT_ENGINE_CONFIGURE 188 -# define ENGINE_F_INT_ENGINE_MODULE_INIT 187 - -/* Reason codes. */ -# define ENGINE_R_ALREADY_LOADED 100 -# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 -# define ENGINE_R_CMD_NOT_EXECUTABLE 134 -# define ENGINE_R_COMMAND_TAKES_INPUT 135 -# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 -# define ENGINE_R_CONFLICTING_ENGINE_ID 103 -# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 -# define ENGINE_R_DSO_FAILURE 104 -# define ENGINE_R_DSO_NOT_FOUND 132 -# define ENGINE_R_ENGINES_SECTION_ERROR 148 -# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 -# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 -# define ENGINE_R_ENGINE_SECTION_ERROR 149 -# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 -# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 -# define ENGINE_R_FINISH_FAILED 106 -# define ENGINE_R_ID_OR_NAME_MISSING 108 -# define ENGINE_R_INIT_FAILED 109 -# define ENGINE_R_INTERNAL_LIST_ERROR 110 -# define ENGINE_R_INVALID_ARGUMENT 143 -# define ENGINE_R_INVALID_CMD_NAME 137 -# define ENGINE_R_INVALID_CMD_NUMBER 138 -# define ENGINE_R_INVALID_INIT_VALUE 151 -# define ENGINE_R_INVALID_STRING 150 -# define ENGINE_R_NOT_INITIALISED 117 -# define ENGINE_R_NOT_LOADED 112 -# define ENGINE_R_NO_CONTROL_FUNCTION 120 -# define ENGINE_R_NO_INDEX 144 -# define ENGINE_R_NO_LOAD_FUNCTION 125 -# define ENGINE_R_NO_REFERENCE 130 -# define ENGINE_R_NO_SUCH_ENGINE 116 -# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 -# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 -# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 -# define ENGINE_R_VERSION_INCOMPATIBILITY 145 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/err.h b/Android/app/libs/arm64-v8a/include/openssl/err.h deleted file mode 100644 index 29a261ce..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/err.h +++ /dev/null @@ -1,260 +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_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_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_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_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 STOREerr(f,r) ERR_PUT_error(ERR_LIB_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 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 - -/* 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_ECDSA_LIB ERR_LIB_ECDSA/* 42 */ - -# 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) - -/* - * 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_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); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/evp.h b/Android/app/libs/arm64-v8a/include/openssl/evp.h deleted file mode 100644 index 43c97a75..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/evp.h +++ /dev/null @@ -1,1597 +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_ENVELOPE_H -# define HEADER_ENVELOPE_H - -# 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_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_HMAC NID_hmac -# define EVP_PKEY_CMAC NID_cmac -# define EVP_PKEY_TLS1_PRF NID_tls1_prf -# define EVP_PKEY_HKDF NID_hkdf - -#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 - -/* 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 - -/* 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 - -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 -/* 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 - -/* 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 - -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 - -/* 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_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); - -#ifndef OPENSSL_NO_UI -int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); -int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, - const char *prompt, int verify); -void EVP_set_pw_prompt(const char *prompt); -char *EVP_get_pw_prompt(void); -#endif - -__owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, - const unsigned char *salt, - 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_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, - unsigned int siglen, EVP_PKEY *pkey); - -/*__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); -# 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 -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_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 - -# 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_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS \ - | OPENSSL_INIT_LOAD_CONFIG, NULL) -# else -# define OpenSSL_add_all_algorithms() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) -# 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(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); -# ifndef OPENSSL_NO_ENGINE -int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); -# 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_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_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_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); - -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_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_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); - -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); - -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_get_init(EVP_PKEY_METHOD *pmeth, - int (**pinit) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth, - int (**pcopy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth, - void (**pcleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_paramgen(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(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(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(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(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(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(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(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(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(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(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_add_alg_module(void); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_EVP_strings(void); - -/* Error codes for the EVP functions. */ - -/* Function codes. */ -# define EVP_F_AESNI_INIT_KEY 165 -# define EVP_F_AES_INIT_KEY 133 -# define EVP_F_AES_OCB_CIPHER 169 -# define EVP_F_AES_T4_INIT_KEY 178 -# define EVP_F_AES_WRAP_CIPHER 170 -# define EVP_F_ALG_MODULE_INIT 177 -# define EVP_F_CAMELLIA_INIT_KEY 159 -# define EVP_F_CHACHA20_POLY1305_CTRL 182 -# define EVP_F_CMLL_T4_INIT_KEY 179 -# define EVP_F_DES_EDE3_WRAP_CIPHER 171 -# define EVP_F_DO_SIGVER_INIT 161 -# define EVP_F_EVP_CIPHERINIT_EX 123 -# define EVP_F_EVP_CIPHER_CTX_COPY 163 -# define EVP_F_EVP_CIPHER_CTX_CTRL 124 -# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 -# define EVP_F_EVP_DECRYPTFINAL_EX 101 -# define EVP_F_EVP_DECRYPTUPDATE 166 -# define EVP_F_EVP_DIGESTINIT_EX 128 -# define EVP_F_EVP_ENCRYPTFINAL_EX 127 -# define EVP_F_EVP_ENCRYPTUPDATE 167 -# define EVP_F_EVP_MD_CTX_COPY_EX 110 -# define EVP_F_EVP_MD_SIZE 162 -# define EVP_F_EVP_OPENINIT 102 -# define EVP_F_EVP_PBE_ALG_ADD 115 -# define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 -# define EVP_F_EVP_PBE_CIPHERINIT 116 -# define EVP_F_EVP_PBE_SCRYPT 181 -# define EVP_F_EVP_PKCS82PKEY 111 -# define EVP_F_EVP_PKEY2PKCS8 113 -# define EVP_F_EVP_PKEY_ASN1_ADD0 168 -# define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 -# define EVP_F_EVP_PKEY_CTX_CTRL 137 -# define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 -# define EVP_F_EVP_PKEY_CTX_DUP 156 -# define EVP_F_EVP_PKEY_DECRYPT 104 -# define EVP_F_EVP_PKEY_DECRYPT_INIT 138 -# define EVP_F_EVP_PKEY_DECRYPT_OLD 151 -# define EVP_F_EVP_PKEY_DERIVE 153 -# define EVP_F_EVP_PKEY_DERIVE_INIT 154 -# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 -# define EVP_F_EVP_PKEY_ENCRYPT 105 -# define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 -# define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 -# define EVP_F_EVP_PKEY_GET0_DH 119 -# define EVP_F_EVP_PKEY_GET0_DSA 120 -# define EVP_F_EVP_PKEY_GET0_EC_KEY 131 -# define EVP_F_EVP_PKEY_GET0_HMAC 183 -# define EVP_F_EVP_PKEY_GET0_RSA 121 -# define EVP_F_EVP_PKEY_KEYGEN 146 -# define EVP_F_EVP_PKEY_KEYGEN_INIT 147 -# define EVP_F_EVP_PKEY_NEW 106 -# define EVP_F_EVP_PKEY_PARAMGEN 148 -# define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 -# define EVP_F_EVP_PKEY_SET1_ENGINE 187 -# define EVP_F_EVP_PKEY_SIGN 140 -# define EVP_F_EVP_PKEY_SIGN_INIT 141 -# define EVP_F_EVP_PKEY_VERIFY 142 -# define EVP_F_EVP_PKEY_VERIFY_INIT 143 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 -# define EVP_F_EVP_SIGNFINAL 107 -# define EVP_F_EVP_VERIFYFINAL 108 -# define EVP_F_INT_CTX_NEW 157 -# define EVP_F_PKCS5_PBE_KEYIVGEN 117 -# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 -# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 -# define EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN 180 -# define EVP_F_PKEY_SET_TYPE 158 -# define EVP_F_RC2_MAGIC_TO_METH 109 -# define EVP_F_RC5_CTRL 125 - -/* Reason codes. */ -# define EVP_R_AES_KEY_SETUP_FAILED 143 -# define EVP_R_BAD_DECRYPT 100 -# define EVP_R_BUFFER_TOO_SMALL 155 -# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 -# define EVP_R_CIPHER_PARAMETER_ERROR 122 -# define EVP_R_COMMAND_NOT_SUPPORTED 147 -# define EVP_R_COPY_ERROR 173 -# define EVP_R_CTRL_NOT_IMPLEMENTED 132 -# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 -# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 -# define EVP_R_DECODE_ERROR 114 -# define EVP_R_DIFFERENT_KEY_TYPES 101 -# define EVP_R_DIFFERENT_PARAMETERS 153 -# define EVP_R_ERROR_LOADING_SECTION 165 -# define EVP_R_ERROR_SETTING_FIPS_MODE 166 -# define EVP_R_EXPECTING_AN_HMAC_KEY 174 -# define EVP_R_EXPECTING_AN_RSA_KEY 127 -# define EVP_R_EXPECTING_A_DH_KEY 128 -# define EVP_R_EXPECTING_A_DSA_KEY 129 -# define EVP_R_EXPECTING_A_EC_KEY 142 -# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 -# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171 -# define EVP_R_INITIALIZATION_ERROR 134 -# define EVP_R_INPUT_NOT_INITIALIZED 111 -# define EVP_R_INVALID_DIGEST 152 -# define EVP_R_INVALID_FIPS_MODE 168 -# define EVP_R_INVALID_KEY 163 -# define EVP_R_INVALID_KEY_LENGTH 130 -# define EVP_R_INVALID_OPERATION 148 -# define EVP_R_KEYGEN_FAILURE 120 -# define EVP_R_MEMORY_LIMIT_EXCEEDED 172 -# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 -# define EVP_R_METHOD_NOT_SUPPORTED 144 -# define EVP_R_MISSING_PARAMETERS 103 -# define EVP_R_NO_CIPHER_SET 131 -# define EVP_R_NO_DEFAULT_DIGEST 158 -# define EVP_R_NO_DIGEST_SET 139 -# define EVP_R_NO_KEY_SET 154 -# define EVP_R_NO_OPERATION_SET 149 -# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 -# define EVP_R_OPERATON_NOT_INITIALIZED 151 -# define EVP_R_PARTIALLY_OVERLAPPING 162 -# define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 175 -# define EVP_R_PKEY_ASN1_METHOD_ALREADY_REGISTERED 164 -# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 -# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 -# define EVP_R_PUBLIC_KEY_NOT_RSA 106 -# define EVP_R_UNKNOWN_CIPHER 160 -# define EVP_R_UNKNOWN_DIGEST 161 -# define EVP_R_UNKNOWN_OPTION 169 -# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 -# define EVP_R_UNSUPPORTED_ALGORITHM 156 -# define EVP_R_UNSUPPORTED_CIPHER 107 -# define EVP_R_UNSUPPORTED_KEYLENGTH 123 -# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 -# define EVP_R_UNSUPPORTED_KEY_SIZE 108 -# define EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS 135 -# define EVP_R_UNSUPPORTED_PRF 125 -# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 -# define EVP_R_UNSUPPORTED_SALT_TYPE 126 -# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 -# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/hmac.h b/Android/app/libs/arm64-v8a/include/openssl/hmac.h deleted file mode 100644 index 9f068960..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/hmac.h +++ /dev/null @@ -1,49 +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_HMAC_H -# define HEADER_HMAC_H - -# include - -# include - -# define HMAC_MAX_MD_CBLOCK 128/* largest known is SHA512 */ - -#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/Android/app/libs/arm64-v8a/include/openssl/idea.h b/Android/app/libs/arm64-v8a/include/openssl/idea.h deleted file mode 100644 index 4334f3ea..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/kdf.h b/Android/app/libs/arm64-v8a/include/openssl/kdf.h deleted file mode 100644 index 9f87f788..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/kdf.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_KDF_H -# define HEADER_KDF_H - -#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_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) - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_KDF_strings(void); - -/* Error codes for the KDF functions. */ - -/* Function codes. */ -# define KDF_F_PKEY_TLS1_PRF_CTRL_STR 100 -# define KDF_F_PKEY_TLS1_PRF_DERIVE 101 - -/* Reason codes. */ -# define KDF_R_INVALID_DIGEST 100 -# define KDF_R_MISSING_PARAMETER 101 -# define KDF_R_VALUE_MISSING 102 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/lhash.h b/Android/app/libs/arm64-v8a/include/openssl/lhash.h deleted file mode 100644 index 82d40c1e..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/lhash.h +++ /dev/null @@ -1,217 +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 - */ - -/* - * 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_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_inline void lh_##type##_free(LHASH_OF(type) *lh) \ - { \ - OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ - { \ - return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ - { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ - } \ - static 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_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 - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/md2.h b/Android/app/libs/arm64-v8a/include/openssl/md2.h deleted file mode 100644 index 7faf8e3d..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/md4.h b/Android/app/libs/arm64-v8a/include/openssl/md4.h deleted file mode 100644 index 940e29db..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/md5.h b/Android/app/libs/arm64-v8a/include/openssl/md5.h deleted file mode 100644 index 2deb7721..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/mdc2.h b/Android/app/libs/arm64-v8a/include/openssl/mdc2.h deleted file mode 100644 index aabd2bfa..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/modes.h b/Android/app/libs/arm64-v8a/include/openssl/modes.h deleted file mode 100644 index a04c6a59..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/modes.h +++ /dev/null @@ -1,203 +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 - */ - -#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 diff --git a/Android/app/libs/arm64-v8a/include/openssl/obj_mac.h b/Android/app/libs/arm64-v8a/include/openssl/obj_mac.h deleted file mode 100644 index f97f3eaa..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/obj_mac.h +++ /dev/null @@ -1,4577 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by crypto/objects/objects.pl - * - * 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 - */ - -#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_certicom_arc "certicom-arc" -#define NID_certicom_arc 677 -#define OBJ_certicom_arc OBJ_identified_organization,132L - -#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_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_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_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 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 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 Smartcardlogin" -#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 Universal 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_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 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_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_aes_128_xts "AES-128-XTS" -#define LN_aes_128_xts "aes-128-xts" -#define NID_aes_128_xts 913 - -#define SN_aes_256_xts "AES-256-XTS" -#define LN_aes_256_xts "aes-256-xts" -#define NID_aes_256_xts 914 - -#define SN_des_cfb1 "DES-CFB1" -#define LN_des_cfb1 "des-cfb1" -#define NID_des_cfb1 656 - -#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 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 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_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_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_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_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_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 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_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 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_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_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 diff --git a/Android/app/libs/arm64-v8a/include/openssl/objects.h b/Android/app/libs/arm64-v8a/include/openssl/objects.h deleted file mode 100644 index d4462fee..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/objects.h +++ /dev/null @@ -1,1097 +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_OBJECTS_H -# define HEADER_OBJECTS_H - -# define USE_OBJ_MAC - -# ifdef USE_OBJ_MAC -# include -# else -# define SN_undef "UNDEF" -# define LN_undef "undefined" -# define NID_undef 0 -# define OBJ_undef 0L - -# define SN_Algorithm "Algorithm" -# define LN_algorithm "algorithm" -# define NID_algorithm 38 -# define OBJ_algorithm 1L,3L,14L,3L,2L - -# define LN_rsadsi "rsadsi" -# define NID_rsadsi 1 -# define OBJ_rsadsi 1L,2L,840L,113549L - -# define LN_pkcs "pkcs" -# define NID_pkcs 2 -# define OBJ_pkcs OBJ_rsadsi,1L - -# define SN_md2 "MD2" -# define LN_md2 "md2" -# define NID_md2 3 -# define OBJ_md2 OBJ_rsadsi,2L,2L - -# define SN_md5 "MD5" -# define LN_md5 "md5" -# define NID_md5 4 -# define OBJ_md5 OBJ_rsadsi,2L,5L - -# define SN_rc4 "RC4" -# define LN_rc4 "rc4" -# define NID_rc4 5 -# define OBJ_rc4 OBJ_rsadsi,3L,4L - -# define LN_rsaEncryption "rsaEncryption" -# define NID_rsaEncryption 6 -# define OBJ_rsaEncryption OBJ_pkcs,1L,1L - -# define SN_md2WithRSAEncryption "RSA-MD2" -# define LN_md2WithRSAEncryption "md2WithRSAEncryption" -# define NID_md2WithRSAEncryption 7 -# define OBJ_md2WithRSAEncryption OBJ_pkcs,1L,2L - -# define SN_md5WithRSAEncryption "RSA-MD5" -# define LN_md5WithRSAEncryption "md5WithRSAEncryption" -# define NID_md5WithRSAEncryption 8 -# define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L - -# define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -# define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -# define NID_pbeWithMD2AndDES_CBC 9 -# define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L - -# define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -# define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -# define NID_pbeWithMD5AndDES_CBC 10 -# define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L - -# define LN_X500 "X500" -# define NID_X500 11 -# define OBJ_X500 2L,5L - -# define LN_X509 "X509" -# define NID_X509 12 -# define OBJ_X509 OBJ_X500,4L - -# define SN_commonName "CN" -# define LN_commonName "commonName" -# define NID_commonName 13 -# define OBJ_commonName OBJ_X509,3L - -# define SN_countryName "C" -# define LN_countryName "countryName" -# define NID_countryName 14 -# define OBJ_countryName OBJ_X509,6L - -# define SN_localityName "L" -# define LN_localityName "localityName" -# define NID_localityName 15 -# define OBJ_localityName OBJ_X509,7L - -/* Postal Address? PA */ - -/* should be "ST" (rfc1327) but MS uses 'S' */ -# define SN_stateOrProvinceName "ST" -# define LN_stateOrProvinceName "stateOrProvinceName" -# define NID_stateOrProvinceName 16 -# define OBJ_stateOrProvinceName OBJ_X509,8L - -# define SN_organizationName "O" -# define LN_organizationName "organizationName" -# define NID_organizationName 17 -# define OBJ_organizationName OBJ_X509,10L - -# define SN_organizationalUnitName "OU" -# define LN_organizationalUnitName "organizationalUnitName" -# define NID_organizationalUnitName 18 -# define OBJ_organizationalUnitName OBJ_X509,11L - -# define SN_rsa "RSA" -# define LN_rsa "rsa" -# define NID_rsa 19 -# define OBJ_rsa OBJ_X500,8L,1L,1L - -# define LN_pkcs7 "pkcs7" -# define NID_pkcs7 20 -# define OBJ_pkcs7 OBJ_pkcs,7L - -# define LN_pkcs7_data "pkcs7-data" -# define NID_pkcs7_data 21 -# define OBJ_pkcs7_data OBJ_pkcs7,1L - -# define LN_pkcs7_signed "pkcs7-signedData" -# define NID_pkcs7_signed 22 -# define OBJ_pkcs7_signed OBJ_pkcs7,2L - -# define LN_pkcs7_enveloped "pkcs7-envelopedData" -# define NID_pkcs7_enveloped 23 -# define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -# define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -# define NID_pkcs7_signedAndEnveloped 24 -# define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -# define LN_pkcs7_digest "pkcs7-digestData" -# define NID_pkcs7_digest 25 -# define OBJ_pkcs7_digest OBJ_pkcs7,5L - -# define LN_pkcs7_encrypted "pkcs7-encryptedData" -# define NID_pkcs7_encrypted 26 -# define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -# define LN_pkcs3 "pkcs3" -# define NID_pkcs3 27 -# define OBJ_pkcs3 OBJ_pkcs,3L - -# define LN_dhKeyAgreement "dhKeyAgreement" -# define NID_dhKeyAgreement 28 -# define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -# define SN_des_ecb "DES-ECB" -# define LN_des_ecb "des-ecb" -# define NID_des_ecb 29 -# define OBJ_des_ecb OBJ_algorithm,6L - -# define SN_des_cfb64 "DES-CFB" -# define LN_des_cfb64 "des-cfb" -# define NID_des_cfb64 30 -/* IV + num */ -# define OBJ_des_cfb64 OBJ_algorithm,9L - -# define SN_des_cbc "DES-CBC" -# define LN_des_cbc "des-cbc" -# define NID_des_cbc 31 -/* IV */ -# define OBJ_des_cbc OBJ_algorithm,7L - -# define SN_des_ede "DES-EDE" -# define LN_des_ede "des-ede" -# define NID_des_ede 32 -/* ?? */ -# define OBJ_des_ede OBJ_algorithm,17L - -# define SN_des_ede3 "DES-EDE3" -# define LN_des_ede3 "des-ede3" -# define NID_des_ede3 33 - -# define SN_idea_cbc "IDEA-CBC" -# define LN_idea_cbc "idea-cbc" -# define NID_idea_cbc 34 -# define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -# define SN_idea_cfb64 "IDEA-CFB" -# define LN_idea_cfb64 "idea-cfb" -# define NID_idea_cfb64 35 - -# define SN_idea_ecb "IDEA-ECB" -# define LN_idea_ecb "idea-ecb" -# define NID_idea_ecb 36 - -# define SN_rc2_cbc "RC2-CBC" -# define LN_rc2_cbc "rc2-cbc" -# define NID_rc2_cbc 37 -# define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -# define SN_rc2_ecb "RC2-ECB" -# define LN_rc2_ecb "rc2-ecb" -# define NID_rc2_ecb 38 - -# define SN_rc2_cfb64 "RC2-CFB" -# define LN_rc2_cfb64 "rc2-cfb" -# define NID_rc2_cfb64 39 - -# define SN_rc2_ofb64 "RC2-OFB" -# define LN_rc2_ofb64 "rc2-ofb" -# define NID_rc2_ofb64 40 - -# define SN_sha "SHA" -# define LN_sha "sha" -# define NID_sha 41 -# define OBJ_sha OBJ_algorithm,18L - -# define SN_shaWithRSAEncryption "RSA-SHA" -# define LN_shaWithRSAEncryption "shaWithRSAEncryption" -# define NID_shaWithRSAEncryption 42 -# define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -# define SN_des_ede_cbc "DES-EDE-CBC" -# define LN_des_ede_cbc "des-ede-cbc" -# define NID_des_ede_cbc 43 - -# define SN_des_ede3_cbc "DES-EDE3-CBC" -# define LN_des_ede3_cbc "des-ede3-cbc" -# define NID_des_ede3_cbc 44 -# define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -# define SN_des_ofb64 "DES-OFB" -# define LN_des_ofb64 "des-ofb" -# define NID_des_ofb64 45 -# define OBJ_des_ofb64 OBJ_algorithm,8L - -# define SN_idea_ofb64 "IDEA-OFB" -# define LN_idea_ofb64 "idea-ofb" -# define NID_idea_ofb64 46 - -# define LN_pkcs9 "pkcs9" -# define NID_pkcs9 47 -# define OBJ_pkcs9 OBJ_pkcs,9L - -# define SN_pkcs9_emailAddress "Email" -# define LN_pkcs9_emailAddress "emailAddress" -# define NID_pkcs9_emailAddress 48 -# define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -# define LN_pkcs9_unstructuredName "unstructuredName" -# define NID_pkcs9_unstructuredName 49 -# define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -# define LN_pkcs9_contentType "contentType" -# define NID_pkcs9_contentType 50 -# define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -# define LN_pkcs9_messageDigest "messageDigest" -# define NID_pkcs9_messageDigest 51 -# define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -# define LN_pkcs9_signingTime "signingTime" -# define NID_pkcs9_signingTime 52 -# define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -# define LN_pkcs9_countersignature "countersignature" -# define NID_pkcs9_countersignature 53 -# define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -# define LN_pkcs9_challengePassword "challengePassword" -# define NID_pkcs9_challengePassword 54 -# define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -# define LN_pkcs9_unstructuredAddress "unstructuredAddress" -# define NID_pkcs9_unstructuredAddress 55 -# define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -# define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -# define NID_pkcs9_extCertAttributes 56 -# define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -# define SN_netscape "Netscape" -# define LN_netscape "Netscape Communications Corp." -# define NID_netscape 57 -# define OBJ_netscape 2L,16L,840L,1L,113730L - -# define SN_netscape_cert_extension "nsCertExt" -# define LN_netscape_cert_extension "Netscape Certificate Extension" -# define NID_netscape_cert_extension 58 -# define OBJ_netscape_cert_extension OBJ_netscape,1L - -# define SN_netscape_data_type "nsDataType" -# define LN_netscape_data_type "Netscape Data Type" -# define NID_netscape_data_type 59 -# define OBJ_netscape_data_type OBJ_netscape,2L - -# define SN_des_ede_cfb64 "DES-EDE-CFB" -# define LN_des_ede_cfb64 "des-ede-cfb" -# define NID_des_ede_cfb64 60 - -# define SN_des_ede3_cfb64 "DES-EDE3-CFB" -# define LN_des_ede3_cfb64 "des-ede3-cfb" -# define NID_des_ede3_cfb64 61 - -# define SN_des_ede_ofb64 "DES-EDE-OFB" -# define LN_des_ede_ofb64 "des-ede-ofb" -# define NID_des_ede_ofb64 62 - -# define SN_des_ede3_ofb64 "DES-EDE3-OFB" -# define LN_des_ede3_ofb64 "des-ede3-ofb" -# define NID_des_ede3_ofb64 63 - -/* I'm not sure about the object ID */ -# define SN_sha1 "SHA1" -# define LN_sha1 "sha1" -# define NID_sha1 64 -# define OBJ_sha1 OBJ_algorithm,26L -/* 28 Jun 1996 - eay */ -/* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */ - -# define SN_sha1WithRSAEncryption "RSA-SHA1" -# define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -# define NID_sha1WithRSAEncryption 65 -# define OBJ_sha1WithRSAEncryption OBJ_pkcs,1L,5L - -# define SN_dsaWithSHA "DSA-SHA" -# define LN_dsaWithSHA "dsaWithSHA" -# define NID_dsaWithSHA 66 -# define OBJ_dsaWithSHA OBJ_algorithm,13L - -# define SN_dsa_2 "DSA-old" -# define LN_dsa_2 "dsaEncryption-old" -# define NID_dsa_2 67 -# define OBJ_dsa_2 OBJ_algorithm,12L - -/* proposed by microsoft to RSA */ -# define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -# define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -# define NID_pbeWithSHA1AndRC2_CBC 68 -# define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L - -/* - * proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now defined - * explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something completely - * different. - */ -# define LN_id_pbkdf2 "PBKDF2" -# define NID_id_pbkdf2 69 -# define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L - -# define SN_dsaWithSHA1_2 "DSA-SHA1-old" -# define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -# define NID_dsaWithSHA1_2 70 -/* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */ -# define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -# define SN_netscape_cert_type "nsCertType" -# define LN_netscape_cert_type "Netscape Cert Type" -# define NID_netscape_cert_type 71 -# define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -# define SN_netscape_base_url "nsBaseUrl" -# define LN_netscape_base_url "Netscape Base Url" -# define NID_netscape_base_url 72 -# define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -# define SN_netscape_revocation_url "nsRevocationUrl" -# define LN_netscape_revocation_url "Netscape Revocation Url" -# define NID_netscape_revocation_url 73 -# define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -# define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -# define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -# define NID_netscape_ca_revocation_url 74 -# define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -# define SN_netscape_renewal_url "nsRenewalUrl" -# define LN_netscape_renewal_url "Netscape Renewal Url" -# define NID_netscape_renewal_url 75 -# define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -# define SN_netscape_ca_policy_url "nsCaPolicyUrl" -# define LN_netscape_ca_policy_url "Netscape CA Policy Url" -# define NID_netscape_ca_policy_url 76 -# define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -# define SN_netscape_ssl_server_name "nsSslServerName" -# define LN_netscape_ssl_server_name "Netscape SSL Server Name" -# define NID_netscape_ssl_server_name 77 -# define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -# define SN_netscape_comment "nsComment" -# define LN_netscape_comment "Netscape Comment" -# define NID_netscape_comment 78 -# define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -# define SN_netscape_cert_sequence "nsCertSequence" -# define LN_netscape_cert_sequence "Netscape Certificate Sequence" -# define NID_netscape_cert_sequence 79 -# define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -# define SN_desx_cbc "DESX-CBC" -# define LN_desx_cbc "desx-cbc" -# define NID_desx_cbc 80 - -# define SN_id_ce "id-ce" -# define NID_id_ce 81 -# define OBJ_id_ce 2L,5L,29L - -# define SN_subject_key_identifier "subjectKeyIdentifier" -# define LN_subject_key_identifier "X509v3 Subject Key Identifier" -# define NID_subject_key_identifier 82 -# define OBJ_subject_key_identifier OBJ_id_ce,14L - -# define SN_key_usage "keyUsage" -# define LN_key_usage "X509v3 Key Usage" -# define NID_key_usage 83 -# define OBJ_key_usage OBJ_id_ce,15L - -# define SN_private_key_usage_period "privateKeyUsagePeriod" -# define LN_private_key_usage_period "X509v3 Private Key Usage Period" -# define NID_private_key_usage_period 84 -# define OBJ_private_key_usage_period OBJ_id_ce,16L - -# define SN_subject_alt_name "subjectAltName" -# define LN_subject_alt_name "X509v3 Subject Alternative Name" -# define NID_subject_alt_name 85 -# define OBJ_subject_alt_name OBJ_id_ce,17L - -# define SN_issuer_alt_name "issuerAltName" -# define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -# define NID_issuer_alt_name 86 -# define OBJ_issuer_alt_name OBJ_id_ce,18L - -# define SN_basic_constraints "basicConstraints" -# define LN_basic_constraints "X509v3 Basic Constraints" -# define NID_basic_constraints 87 -# define OBJ_basic_constraints OBJ_id_ce,19L - -# define SN_crl_number "crlNumber" -# define LN_crl_number "X509v3 CRL Number" -# define NID_crl_number 88 -# define OBJ_crl_number OBJ_id_ce,20L - -# define SN_certificate_policies "certificatePolicies" -# define LN_certificate_policies "X509v3 Certificate Policies" -# define NID_certificate_policies 89 -# define OBJ_certificate_policies OBJ_id_ce,32L - -# define SN_authority_key_identifier "authorityKeyIdentifier" -# define LN_authority_key_identifier "X509v3 Authority Key Identifier" -# define NID_authority_key_identifier 90 -# define OBJ_authority_key_identifier OBJ_id_ce,35L - -# define SN_bf_cbc "BF-CBC" -# define LN_bf_cbc "bf-cbc" -# define NID_bf_cbc 91 -# define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -# define SN_bf_ecb "BF-ECB" -# define LN_bf_ecb "bf-ecb" -# define NID_bf_ecb 92 - -# define SN_bf_cfb64 "BF-CFB" -# define LN_bf_cfb64 "bf-cfb" -# define NID_bf_cfb64 93 - -# define SN_bf_ofb64 "BF-OFB" -# define LN_bf_ofb64 "bf-ofb" -# define NID_bf_ofb64 94 - -# define SN_mdc2 "MDC2" -# define LN_mdc2 "mdc2" -# define NID_mdc2 95 -# define OBJ_mdc2 2L,5L,8L,3L,101L -/* An alternative? 1L,3L,14L,3L,2L,19L */ - -# define SN_mdc2WithRSA "RSA-MDC2" -# define LN_mdc2WithRSA "mdc2withRSA" -# define NID_mdc2WithRSA 96 -# define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L - -# define SN_rc4_40 "RC4-40" -# define LN_rc4_40 "rc4-40" -# define NID_rc4_40 97 - -# define SN_rc2_40_cbc "RC2-40-CBC" -# define LN_rc2_40_cbc "rc2-40-cbc" -# define NID_rc2_40_cbc 98 - -# define SN_givenName "G" -# define LN_givenName "givenName" -# define NID_givenName 99 -# define OBJ_givenName OBJ_X509,42L - -# define SN_surname "S" -# define LN_surname "surname" -# define NID_surname 100 -# define OBJ_surname OBJ_X509,4L - -# define SN_initials "I" -# define LN_initials "initials" -# define NID_initials 101 -# define OBJ_initials OBJ_X509,43L - -# define SN_uniqueIdentifier "UID" -# define LN_uniqueIdentifier "uniqueIdentifier" -# define NID_uniqueIdentifier 102 -# define OBJ_uniqueIdentifier OBJ_X509,45L - -# define SN_crl_distribution_points "crlDistributionPoints" -# define LN_crl_distribution_points "X509v3 CRL Distribution Points" -# define NID_crl_distribution_points 103 -# define OBJ_crl_distribution_points OBJ_id_ce,31L - -# define SN_md5WithRSA "RSA-NP-MD5" -# define LN_md5WithRSA "md5WithRSA" -# define NID_md5WithRSA 104 -# define OBJ_md5WithRSA OBJ_algorithm,3L - -# define SN_serialNumber "SN" -# define LN_serialNumber "serialNumber" -# define NID_serialNumber 105 -# define OBJ_serialNumber OBJ_X509,5L - -# define SN_title "T" -# define LN_title "title" -# define NID_title 106 -# define OBJ_title OBJ_X509,12L - -# define SN_description "D" -# define LN_description "description" -# define NID_description 107 -# define OBJ_description OBJ_X509,13L - -/* CAST5 is CAST-128, I'm just sticking with the documentation */ -# define SN_cast5_cbc "CAST5-CBC" -# define LN_cast5_cbc "cast5-cbc" -# define NID_cast5_cbc 108 -# define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L - -# define SN_cast5_ecb "CAST5-ECB" -# define LN_cast5_ecb "cast5-ecb" -# define NID_cast5_ecb 109 - -# define SN_cast5_cfb64 "CAST5-CFB" -# define LN_cast5_cfb64 "cast5-cfb" -# define NID_cast5_cfb64 110 - -# define SN_cast5_ofb64 "CAST5-OFB" -# define LN_cast5_ofb64 "cast5-ofb" -# define NID_cast5_ofb64 111 - -# define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -# define NID_pbeWithMD5AndCast5_CBC 112 -# define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L - -/*- - * This is one sun will soon be using :-( - * id-dsa-with-sha1 ID ::= { - * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } - */ -# define SN_dsaWithSHA1 "DSA-SHA1" -# define LN_dsaWithSHA1 "dsaWithSHA1" -# define NID_dsaWithSHA1 113 -# define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L - -# define NID_md5_sha1 114 -# define SN_md5_sha1 "MD5-SHA1" -# define LN_md5_sha1 "md5-sha1" - -# define SN_sha1WithRSA "RSA-SHA1-2" -# define LN_sha1WithRSA "sha1WithRSA" -# define NID_sha1WithRSA 115 -# define OBJ_sha1WithRSA OBJ_algorithm,29L - -# define SN_dsa "DSA" -# define LN_dsa "dsaEncryption" -# define NID_dsa 116 -# define OBJ_dsa 1L,2L,840L,10040L,4L,1L - -# define SN_ripemd160 "RIPEMD160" -# define LN_ripemd160 "ripemd160" -# define NID_ripemd160 117 -# define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -/* - * The name should actually be rsaSignatureWithripemd160, but I'm going to - * continue using the convention I'm using with the other ciphers - */ -# define SN_ripemd160WithRSA "RSA-RIPEMD160" -# define LN_ripemd160WithRSA "ripemd160WithRSA" -# define NID_ripemd160WithRSA 119 -# define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -/*- - * Taken from rfc2040 - * RC5_CBC_Parameters ::= SEQUENCE { - * version INTEGER (v1_0(16)), - * rounds INTEGER (8..127), - * blockSizeInBits INTEGER (64, 128), - * iv OCTET STRING OPTIONAL - * } - */ -# define SN_rc5_cbc "RC5-CBC" -# define LN_rc5_cbc "rc5-cbc" -# define NID_rc5_cbc 120 -# define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -# define SN_rc5_ecb "RC5-ECB" -# define LN_rc5_ecb "rc5-ecb" -# define NID_rc5_ecb 121 - -# define SN_rc5_cfb64 "RC5-CFB" -# define LN_rc5_cfb64 "rc5-cfb" -# define NID_rc5_cfb64 122 - -# define SN_rc5_ofb64 "RC5-OFB" -# define LN_rc5_ofb64 "rc5-ofb" -# define NID_rc5_ofb64 123 - -# define SN_rle_compression "RLE" -# define LN_rle_compression "run length compression" -# define NID_rle_compression 124 -# define OBJ_rle_compression 1L,1L,1L,1L,666L,1L - -# define SN_zlib_compression "ZLIB" -# define LN_zlib_compression "zlib compression" -# define NID_zlib_compression 125 -# define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L - -# define SN_ext_key_usage "extendedKeyUsage" -# define LN_ext_key_usage "X509v3 Extended Key Usage" -# define NID_ext_key_usage 126 -# define OBJ_ext_key_usage OBJ_id_ce,37 - -# define SN_id_pkix "PKIX" -# define NID_id_pkix 127 -# define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -# define SN_id_kp "id-kp" -# define NID_id_kp 128 -# define OBJ_id_kp OBJ_id_pkix,3L - -/* PKIX extended key usage OIDs */ - -# define SN_server_auth "serverAuth" -# define LN_server_auth "TLS Web Server Authentication" -# define NID_server_auth 129 -# define OBJ_server_auth OBJ_id_kp,1L - -# define SN_client_auth "clientAuth" -# define LN_client_auth "TLS Web Client Authentication" -# define NID_client_auth 130 -# define OBJ_client_auth OBJ_id_kp,2L - -# define SN_code_sign "codeSigning" -# define LN_code_sign "Code Signing" -# define NID_code_sign 131 -# define OBJ_code_sign OBJ_id_kp,3L - -# define SN_email_protect "emailProtection" -# define LN_email_protect "E-mail Protection" -# define NID_email_protect 132 -# define OBJ_email_protect OBJ_id_kp,4L - -# define SN_time_stamp "timeStamping" -# define LN_time_stamp "Time Stamping" -# define NID_time_stamp 133 -# define OBJ_time_stamp OBJ_id_kp,8L - -/* Additional extended key usage OIDs: Microsoft */ - -# define SN_ms_code_ind "msCodeInd" -# define LN_ms_code_ind "Microsoft Individual Code Signing" -# define NID_ms_code_ind 134 -# define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L - -# define SN_ms_code_com "msCodeCom" -# define LN_ms_code_com "Microsoft Commercial Code Signing" -# define NID_ms_code_com 135 -# define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L - -# define SN_ms_ctl_sign "msCTLSign" -# define LN_ms_ctl_sign "Microsoft Trust List Signing" -# define NID_ms_ctl_sign 136 -# define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L - -# define SN_ms_sgc "msSGC" -# define LN_ms_sgc "Microsoft Server Gated Crypto" -# define NID_ms_sgc 137 -# define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L - -# define SN_ms_efs "msEFS" -# define LN_ms_efs "Microsoft Encrypted File System" -# define NID_ms_efs 138 -# define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L - -/* Additional usage: Netscape */ - -# define SN_ns_sgc "nsSGC" -# define LN_ns_sgc "Netscape Server Gated Crypto" -# define NID_ns_sgc 139 -# define OBJ_ns_sgc OBJ_netscape,4L,1L - -# define SN_delta_crl "deltaCRL" -# define LN_delta_crl "X509v3 Delta CRL Indicator" -# define NID_delta_crl 140 -# define OBJ_delta_crl OBJ_id_ce,27L - -# define SN_crl_reason "CRLReason" -# define LN_crl_reason "CRL Reason Code" -# define NID_crl_reason 141 -# define OBJ_crl_reason OBJ_id_ce,21L - -# define SN_invalidity_date "invalidityDate" -# define LN_invalidity_date "Invalidity Date" -# define NID_invalidity_date 142 -# define OBJ_invalidity_date OBJ_id_ce,24L - -# define SN_sxnet "SXNetID" -# define LN_sxnet "Strong Extranet ID" -# define NID_sxnet 143 -# define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -/* PKCS12 and related OBJECT IDENTIFIERS */ - -# define OBJ_pkcs12 OBJ_pkcs,12L -# define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 - -# define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -# define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -# define NID_pbe_WithSHA1And128BitRC4 144 -# define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L - -# define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -# define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -# define NID_pbe_WithSHA1And40BitRC4 145 -# define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L - -# define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -# define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -# define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -# define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L - -# define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -# define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -# define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -# define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L - -# define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -# define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -# define NID_pbe_WithSHA1And128BitRC2_CBC 148 -# define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L - -# define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -# define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -# define NID_pbe_WithSHA1And40BitRC2_CBC 149 -# define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L - -# define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L - -# define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L - -# define LN_keyBag "keyBag" -# define NID_keyBag 150 -# define OBJ_keyBag OBJ_pkcs12_BagIds, 1L - -# define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -# define NID_pkcs8ShroudedKeyBag 151 -# define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L - -# define LN_certBag "certBag" -# define NID_certBag 152 -# define OBJ_certBag OBJ_pkcs12_BagIds, 3L - -# define LN_crlBag "crlBag" -# define NID_crlBag 153 -# define OBJ_crlBag OBJ_pkcs12_BagIds, 4L - -# define LN_secretBag "secretBag" -# define NID_secretBag 154 -# define OBJ_secretBag OBJ_pkcs12_BagIds, 5L - -# define LN_safeContentsBag "safeContentsBag" -# define NID_safeContentsBag 155 -# define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L - -# define LN_friendlyName "friendlyName" -# define NID_friendlyName 156 -# define OBJ_friendlyName OBJ_pkcs9, 20L - -# define LN_localKeyID "localKeyID" -# define NID_localKeyID 157 -# define OBJ_localKeyID OBJ_pkcs9, 21L - -# define OBJ_certTypes OBJ_pkcs9, 22L - -# define LN_x509Certificate "x509Certificate" -# define NID_x509Certificate 158 -# define OBJ_x509Certificate OBJ_certTypes, 1L - -# define LN_sdsiCertificate "sdsiCertificate" -# define NID_sdsiCertificate 159 -# define OBJ_sdsiCertificate OBJ_certTypes, 2L - -# define OBJ_crlTypes OBJ_pkcs9, 23L - -# define LN_x509Crl "x509Crl" -# define NID_x509Crl 160 -# define OBJ_x509Crl OBJ_crlTypes, 1L - -/* PKCS#5 v2 OIDs */ - -# define LN_pbes2 "PBES2" -# define NID_pbes2 161 -# define OBJ_pbes2 OBJ_pkcs,5L,13L - -# define LN_pbmac1 "PBMAC1" -# define NID_pbmac1 162 -# define OBJ_pbmac1 OBJ_pkcs,5L,14L - -# define LN_hmacWithSHA1 "hmacWithSHA1" -# define NID_hmacWithSHA1 163 -# define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -/* Policy Qualifier Ids */ - -# define LN_id_qt_cps "Policy Qualifier CPS" -# define SN_id_qt_cps "id-qt-cps" -# define NID_id_qt_cps 164 -# define OBJ_id_qt_cps OBJ_id_pkix,2L,1L - -# define LN_id_qt_unotice "Policy Qualifier User Notice" -# define SN_id_qt_unotice "id-qt-unotice" -# define NID_id_qt_unotice 165 -# define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L - -# define SN_rc2_64_cbc "RC2-64-CBC" -# define LN_rc2_64_cbc "rc2-64-cbc" -# define NID_rc2_64_cbc 166 - -# define SN_SMIMECapabilities "SMIME-CAPS" -# define LN_SMIMECapabilities "S/MIME Capabilities" -# define NID_SMIMECapabilities 167 -# define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -# define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -# define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -# define NID_pbeWithMD2AndRC2_CBC 168 -# define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L - -# define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -# define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -# define NID_pbeWithMD5AndRC2_CBC 169 -# define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L - -# define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -# define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -# define NID_pbeWithSHA1AndDES_CBC 170 -# define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L - -/* Extension request OIDs */ - -# define LN_ms_ext_req "Microsoft Extension Request" -# define SN_ms_ext_req "msExtReq" -# define NID_ms_ext_req 171 -# define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -# define LN_ext_req "Extension Request" -# define SN_ext_req "extReq" -# define NID_ext_req 172 -# define OBJ_ext_req OBJ_pkcs9,14L - -# define SN_name "name" -# define LN_name "name" -# define NID_name 173 -# define OBJ_name OBJ_X509,41L - -# define SN_dnQualifier "dnQualifier" -# define LN_dnQualifier "dnQualifier" -# define NID_dnQualifier 174 -# define OBJ_dnQualifier OBJ_X509,46L - -# define SN_id_pe "id-pe" -# define NID_id_pe 175 -# define OBJ_id_pe OBJ_id_pkix,1L - -# define SN_id_ad "id-ad" -# define NID_id_ad 176 -# define OBJ_id_ad OBJ_id_pkix,48L - -# define SN_info_access "authorityInfoAccess" -# define LN_info_access "Authority Information Access" -# define NID_info_access 177 -# define OBJ_info_access OBJ_id_pe,1L - -# define SN_ad_OCSP "OCSP" -# define LN_ad_OCSP "OCSP" -# define NID_ad_OCSP 178 -# define OBJ_ad_OCSP OBJ_id_ad,1L - -# define SN_ad_ca_issuers "caIssuers" -# define LN_ad_ca_issuers "CA Issuers" -# define NID_ad_ca_issuers 179 -# define OBJ_ad_ca_issuers OBJ_id_ad,2L - -# define SN_OCSP_sign "OCSPSigning" -# define LN_OCSP_sign "OCSP Signing" -# define NID_OCSP_sign 180 -# define OBJ_OCSP_sign OBJ_id_kp,9L -# endif /* USE_OBJ_MAC */ - -# include -# include - -# 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_OBJ_strings(void); - -/* Error codes for the OBJ functions. */ - -/* Function codes. */ -# define OBJ_F_OBJ_ADD_OBJECT 105 -# define OBJ_F_OBJ_CREATE 100 -# define OBJ_F_OBJ_DUP 101 -# define OBJ_F_OBJ_NAME_NEW_INDEX 106 -# define OBJ_F_OBJ_NID2LN 102 -# define OBJ_F_OBJ_NID2OBJ 103 -# define OBJ_F_OBJ_NID2SN 104 - -/* Reason codes. */ -# define OBJ_R_OID_EXISTS 102 -# define OBJ_R_UNKNOWN_NID 101 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/ocsp.h b/Android/app/libs/arm64-v8a/include/openssl/ocsp.h deleted file mode 100644 index 90ebe5cc..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/ocsp.h +++ /dev/null @@ -1,398 +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_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 - -#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) -DECLARE_ASN1_FUNCTIONS(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_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); -int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); -int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); -int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, - 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); -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_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(OCSP_CERTID *a, OCSP_CERTID *b); -int OCSP_id_cmp(OCSP_CERTID *a, 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_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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_OCSP_strings(void); - -/* Error codes for the OCSP functions. */ - -/* Function codes. */ -# define OCSP_F_D2I_OCSP_NONCE 102 -# define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 -# define OCSP_F_OCSP_BASIC_SIGN 104 -# define OCSP_F_OCSP_BASIC_VERIFY 105 -# define OCSP_F_OCSP_CERT_ID_NEW 101 -# define OCSP_F_OCSP_CHECK_DELEGATED 106 -# define OCSP_F_OCSP_CHECK_IDS 107 -# define OCSP_F_OCSP_CHECK_ISSUER 108 -# define OCSP_F_OCSP_CHECK_VALIDITY 115 -# define OCSP_F_OCSP_MATCH_ISSUERID 109 -# define OCSP_F_OCSP_PARSE_URL 114 -# define OCSP_F_OCSP_REQUEST_SIGN 110 -# define OCSP_F_OCSP_REQUEST_VERIFY 116 -# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 -# define OCSP_F_PARSE_HTTP_LINE1 118 - -/* Reason codes. */ -# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 -# define OCSP_R_DIGEST_ERR 102 -# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 -# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 -# define OCSP_R_ERROR_PARSING_URL 121 -# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 -# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 -# define OCSP_R_NOT_BASIC_RESPONSE 104 -# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 -# define OCSP_R_NO_RESPONSE_DATA 108 -# define OCSP_R_NO_REVOKED_TIME 109 -# define OCSP_R_NO_SIGNER_KEY 130 -# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 -# define OCSP_R_REQUEST_NOT_SIGNED 128 -# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 -# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 -# define OCSP_R_SERVER_RESPONSE_ERROR 114 -# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 -# define OCSP_R_SIGNATURE_FAILURE 117 -# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 -# define OCSP_R_STATUS_EXPIRED 125 -# define OCSP_R_STATUS_NOT_YET_VALID 126 -# define OCSP_R_STATUS_TOO_OLD 127 -# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 -# define OCSP_R_UNKNOWN_NID 120 -# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/opensslconf.h b/Android/app/libs/arm64-v8a/include/openssl/opensslconf.h deleted file mode 100644 index 629c4490..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/opensslconf.h +++ /dev/null @@ -1,169 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by Makefile from include/openssl/opensslconf.h.in - * - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#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_NO_ASAN -# define OPENSSL_NO_ASAN -#endif -#ifndef OPENSSL_NO_CRYPTO_MDEBUG -# define OPENSSL_NO_CRYPTO_MDEBUG -#endif -#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -#endif -#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -# define OPENSSL_NO_EC_NISTP_64_GCC_128 -#endif -#ifndef OPENSSL_NO_EGD -# define OPENSSL_NO_EGD -#endif -#ifndef OPENSSL_NO_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_AFALGENG -# define OPENSSL_NO_AFALGENG -#endif - - -/* - * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers - * don't like that. This will hopefully silence them. - */ -#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; - -/* - * Applications should use -DOPENSSL_API_COMPAT= to suppress the - * declarations of functions deprecated in or before . Otherwise, they - * still won't see them if the library has been built to disable deprecated - * functions. - */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; -#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 - -#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 - -#define OPENSSL_CPUID_OBJ - -/* Generate 80386 code? */ -#undef I386_ONLY - -#undef OPENSSL_UNISTD -#define OPENSSL_UNISTD - -#undef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* - * The following are cipher-specific, but are part of the public API. - */ -#if !defined(OPENSSL_SYS_UEFI) -# undef BN_LLONG -/* Only one for the following should be defined */ -# define SIXTY_FOUR_BIT_LONG -# undef SIXTY_FOUR_BIT -# undef THIRTY_TWO_BIT -#endif - -#define RC4_INT unsigned char - -#ifdef __cplusplus -} -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/opensslconf.h.in b/Android/app/libs/arm64-v8a/include/openssl/opensslconf.h.in deleted file mode 100644 index 9f8634a3..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/opensslconf.h.in +++ /dev/null @@ -1,141 +0,0 @@ -/* - * {- join("\n * ", @autowarntext) -} - * - * 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 - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef OPENSSL_ALGORITHM_DEFINES -# error OPENSSL_ALGORITHM_DEFINES no longer supported -#endif - -/* - * OpenSSL was configured with the following options: - */ - -{- if (@{$config{openssl_sys_defines}}) { - foreach (@{$config{openssl_sys_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_ 1\n"; - $OUT .= "#endif\n"; - } - } - foreach (@{$config{openssl_api_defines}}) { - (my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/; - $OUT .= "#define $macro $value\n"; - } - if (@{$config{openssl_algorithm_defines}}) { - foreach (@{$config{openssl_algorithm_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_\n"; - $OUT .= "#endif\n"; - } - } - if (@{$config{openssl_thread_defines}}) { - foreach (@{$config{openssl_thread_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_\n"; - $OUT .= "#endif\n"; - } - } - if (@{$config{openssl_other_defines}}) { - foreach (@{$config{openssl_other_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_\n"; - $OUT .= "#endif\n"; - } - } - ""; --} - -/* - * 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. - */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; -#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 - -#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 - -{- $target{cpuid_obj} ne "mem_clr.o" ? "#define OPENSSL_CPUID_OBJ" : "" -} - -/* Generate 80386 code? */ -{- $config{processor} eq "386" ? "#define" : "#undef" -} I386_ONLY - -#undef OPENSSL_UNISTD -#define OPENSSL_UNISTD {- $target{unistd} -} - -{- $config{export_var_as_fn} ? "#define" : "#undef" -} OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* - * The following are cipher-specific, but are part of the public API. - */ -#if !defined(OPENSSL_SYS_UEFI) -{- $config{bn_ll} ? "# define" : "# undef" -} BN_LLONG -/* Only one for the following should be defined */ -{- $config{b64l} ? "# define" : "# undef" -} SIXTY_FOUR_BIT_LONG -{- $config{b64} ? "# define" : "# undef" -} SIXTY_FOUR_BIT -{- $config{b32} ? "# define" : "# undef" -} THIRTY_TWO_BIT -#endif - -#define RC4_INT {- $config{rc4_int} -} - -#ifdef __cplusplus -} -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/opensslv.h b/Android/app/libs/arm64-v8a/include/openssl/opensslv.h deleted file mode 100644 index 4fb437f2..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/opensslv.h +++ /dev/null @@ -1,110 +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_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 0x1010008fL -# ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0h-fips 27 Mar 2018" -# else -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0h 27 Mar 2018" -# endif - -#define OPENSSL_MAKE_VERSION(maj,min,fix,patch) ((0x10000000L)+((maj&0xff)<<20)+((min&0xff)<<12)+((fix&0xff)<<4)+patch) - -/* use this for #if tests, should never depend upon fix/patch */ -#define OPENSSL_VERSION_AT_LEAST(maj,min) (OPENSSL_MAKE_VERSION(maj,min, 0, 0) >= OPENSSL_VERSION_NUMBER) - -/*- - * 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/Android/app/libs/arm64-v8a/include/openssl/ossl_typ.h b/Android/app/libs/arm64-v8a/include/openssl/ossl_typ.h deleted file mode 100644 index 129a67f0..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/ossl_typ.h +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2001-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_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 ec_key_st EC_KEY; -typedef struct ec_key_method_st EC_KEY_METHOD; - -typedef struct rand_meth_st RAND_METHOD; - -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 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; - -#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/Android/app/libs/arm64-v8a/include/openssl/pem.h b/Android/app/libs/arm64-v8a/include/openssl/pem.h deleted file mode 100644 index 2375d635..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/pem.h +++ /dev/null @@ -1,501 +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_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 - -typedef struct pem_recip_st { - char *name; - X509_NAME *dn; - int cipher; - int key_enc; - /* char iv[8]; unused and wrong size */ -} PEM_USER; - -typedef struct pem_ctx_st { - int type; /* what type of object */ - struct { - int version; - int mode; - } proc_type; - - char *domain; - - struct { - int cipher; - /*- - unused, and wrong size - unsigned char iv[8]; */ - } DEK_info; - - PEM_USER *originator; - - int num_recipient; - PEM_USER **recipient; - -/*- - XXX(ben): don#t think this is used! - STACK *x509_chain; / * certificate chain */ - EVP_MD *md; /* signature type */ - - int md_enc; /* is the md encrypted or not? */ - int md_len; /* length of md_data */ - char *md_data; /* message digest, could be pkey encrypted */ - - EVP_CIPHER *dec; /* date encryption cipher */ - int key_len; /* key length */ - unsigned char *key; /* key */ - /*- - unused, and wrong size - unsigned char iv[8]; */ - - int data_enc; /* is the data encrypted */ - int data_len; - unsigned char *data; -} PEM_CTX; - -/* - * These macros make the PEM_read/PEM_write functions easier to maintain and - * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or - * 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); -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); - -int PEM_def_callback(char *buf, int num, int w, void *key); -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 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PEM_strings(void); - -/* Error codes for the PEM functions. */ - -/* Function codes. */ -# define PEM_F_B2I_DSS 127 -# define PEM_F_B2I_PVK_BIO 128 -# define PEM_F_B2I_RSA 129 -# define PEM_F_CHECK_BITLEN_DSA 130 -# define PEM_F_CHECK_BITLEN_RSA 131 -# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 -# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 -# define PEM_F_DO_B2I 132 -# define PEM_F_DO_B2I_BIO 133 -# define PEM_F_DO_BLOB_HEADER 134 -# define PEM_F_DO_PK8PKEY 126 -# define PEM_F_DO_PK8PKEY_FP 125 -# define PEM_F_DO_PVK_BODY 135 -# define PEM_F_DO_PVK_HEADER 136 -# define PEM_F_I2B_PVK 137 -# define PEM_F_I2B_PVK_BIO 138 -# define PEM_F_LOAD_IV 101 -# define PEM_F_PEM_ASN1_READ 102 -# define PEM_F_PEM_ASN1_READ_BIO 103 -# define PEM_F_PEM_ASN1_WRITE 104 -# define PEM_F_PEM_ASN1_WRITE_BIO 105 -# define PEM_F_PEM_DEF_CALLBACK 100 -# define PEM_F_PEM_DO_HEADER 106 -# define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 -# define PEM_F_PEM_READ 108 -# define PEM_F_PEM_READ_BIO 109 -# define PEM_F_PEM_READ_BIO_DHPARAMS 141 -# define PEM_F_PEM_READ_BIO_PARAMETERS 140 -# define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 -# define PEM_F_PEM_READ_DHPARAMS 142 -# define PEM_F_PEM_READ_PRIVATEKEY 124 -# define PEM_F_PEM_SIGNFINAL 112 -# define PEM_F_PEM_WRITE 113 -# define PEM_F_PEM_WRITE_BIO 114 -# define PEM_F_PEM_WRITE_PRIVATEKEY 139 -# define PEM_F_PEM_X509_INFO_READ 115 -# define PEM_F_PEM_X509_INFO_READ_BIO 116 -# define PEM_F_PEM_X509_INFO_WRITE_BIO 117 - -/* Reason codes. */ -# define PEM_R_BAD_BASE64_DECODE 100 -# define PEM_R_BAD_DECRYPT 101 -# define PEM_R_BAD_END_LINE 102 -# define PEM_R_BAD_IV_CHARS 103 -# define PEM_R_BAD_MAGIC_NUMBER 116 -# define PEM_R_BAD_PASSWORD_READ 104 -# define PEM_R_BAD_VERSION_NUMBER 117 -# define PEM_R_BIO_WRITE_FAILURE 118 -# define PEM_R_CIPHER_IS_NULL 127 -# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 -# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 -# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 -# define PEM_R_HEADER_TOO_LONG 128 -# define PEM_R_INCONSISTENT_HEADER 121 -# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 -# define PEM_R_KEYBLOB_TOO_SHORT 123 -# define PEM_R_MISSING_DEK_IV 129 -# define PEM_R_NOT_DEK_INFO 105 -# define PEM_R_NOT_ENCRYPTED 106 -# define PEM_R_NOT_PROC_TYPE 107 -# define PEM_R_NO_START_LINE 108 -# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 -# define PEM_R_PVK_DATA_TOO_SHORT 124 -# define PEM_R_PVK_TOO_SHORT 125 -# define PEM_R_READ_KEY 111 -# define PEM_R_SHORT_HEADER 112 -# define PEM_R_UNEXPECTED_DEK_IV 130 -# define PEM_R_UNSUPPORTED_CIPHER 113 -# define PEM_R_UNSUPPORTED_ENCRYPTION 114 -# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/pem2.h b/Android/app/libs/arm64-v8a/include/openssl/pem2.h deleted file mode 100644 index cfe73f13..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/pem2.h +++ /dev/null @@ -1,20 +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 - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef HEADER_PEM_H -int ERR_load_PEM_strings(void); -#endif - -#ifdef __cplusplus -} -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/pkcs12.h b/Android/app/libs/arm64-v8a/include/openssl/pkcs12.h deleted file mode 100644 index deaded9d..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/pkcs12.h +++ /dev/null @@ -1,282 +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 - -#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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PKCS12_strings(void); - -/* Error codes for the PKCS12 functions. */ - -/* Function codes. */ -# define PKCS12_F_PKCS12_CREATE 105 -# define PKCS12_F_PKCS12_GEN_MAC 107 -# define PKCS12_F_PKCS12_INIT 109 -# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 -# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 -# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 -# define PKCS12_F_PKCS12_KEY_GEN_ASC 110 -# define PKCS12_F_PKCS12_KEY_GEN_UNI 111 -# define PKCS12_F_PKCS12_KEY_GEN_UTF8 116 -# define PKCS12_F_PKCS12_NEWPASS 128 -# define PKCS12_F_PKCS12_PACK_P7DATA 114 -# define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 -# define PKCS12_F_PKCS12_PARSE 118 -# define PKCS12_F_PKCS12_PBE_CRYPT 119 -# define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_P8INF 112 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_PKCS8 113 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE_PKCS8_ENCRYPT 133 -# define PKCS12_F_PKCS12_SETUP_MAC 122 -# define PKCS12_F_PKCS12_SET_MAC 123 -# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 -# define PKCS12_F_PKCS12_UNPACK_P7DATA 131 -# define PKCS12_F_PKCS12_VERIFY_MAC 126 -# define PKCS12_F_PKCS8_ENCRYPT 125 -# define PKCS12_F_PKCS8_SET0_PBE 132 - -/* Reason codes. */ -# define PKCS12_R_CANT_PACK_STRUCTURE 100 -# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 -# define PKCS12_R_DECODE_ERROR 101 -# define PKCS12_R_ENCODE_ERROR 102 -# define PKCS12_R_ENCRYPT_ERROR 103 -# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 -# define PKCS12_R_INVALID_NULL_ARGUMENT 104 -# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 -# define PKCS12_R_IV_GEN_ERROR 106 -# define PKCS12_R_KEY_GEN_ERROR 107 -# define PKCS12_R_MAC_ABSENT 108 -# define PKCS12_R_MAC_GENERATION_ERROR 109 -# define PKCS12_R_MAC_SETUP_ERROR 110 -# define PKCS12_R_MAC_STRING_SET_ERROR 111 -# define PKCS12_R_MAC_VERIFY_FAILURE 113 -# define PKCS12_R_PARSE_ERROR 114 -# define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 -# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 -# define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 -# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 -# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/pkcs7.h b/Android/app/libs/arm64-v8a/include/openssl/pkcs7.h deleted file mode 100644 index 691f7220..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/pkcs7.h +++ /dev/null @@ -1,404 +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 - -#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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PKCS7_strings(void); - -/* Error codes for the PKCS7 functions. */ - -/* Function codes. */ -# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 -# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 -# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 -# define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 -# define PKCS7_F_PKCS7_ADD_CRL 101 -# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 -# define PKCS7_F_PKCS7_ADD_SIGNATURE 131 -# define PKCS7_F_PKCS7_ADD_SIGNER 103 -# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 -# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 -# define PKCS7_F_PKCS7_CTRL 104 -# define PKCS7_F_PKCS7_DATADECODE 112 -# define PKCS7_F_PKCS7_DATAFINAL 128 -# define PKCS7_F_PKCS7_DATAINIT 105 -# define PKCS7_F_PKCS7_DATAVERIFY 107 -# define PKCS7_F_PKCS7_DECRYPT 114 -# define PKCS7_F_PKCS7_DECRYPT_RINFO 133 -# define PKCS7_F_PKCS7_ENCODE_RINFO 132 -# define PKCS7_F_PKCS7_ENCRYPT 115 -# define PKCS7_F_PKCS7_FINAL 134 -# define PKCS7_F_PKCS7_FIND_DIGEST 127 -# define PKCS7_F_PKCS7_GET0_SIGNERS 124 -# define PKCS7_F_PKCS7_RECIP_INFO_SET 130 -# define PKCS7_F_PKCS7_SET_CIPHER 108 -# define PKCS7_F_PKCS7_SET_CONTENT 109 -# define PKCS7_F_PKCS7_SET_DIGEST 126 -# define PKCS7_F_PKCS7_SET_TYPE 110 -# define PKCS7_F_PKCS7_SIGN 116 -# define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 -# define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 -# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 -# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 -# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 -# define PKCS7_F_PKCS7_VERIFY 117 - -/* Reason codes. */ -# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 -# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 -# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 -# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 -# define PKCS7_R_CTRL_ERROR 152 -# define PKCS7_R_DECRYPT_ERROR 119 -# define PKCS7_R_DIGEST_FAILURE 101 -# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 -# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 -# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 -# define PKCS7_R_ERROR_SETTING_CIPHER 121 -# define PKCS7_R_INVALID_NULL_POINTER 143 -# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 -# define PKCS7_R_NO_CONTENT 122 -# define PKCS7_R_NO_DEFAULT_DIGEST 151 -# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 -# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 -# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 -# define PKCS7_R_NO_SIGNERS 142 -# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 -# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 -# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 -# define PKCS7_R_PKCS7_DATASIGN 145 -# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 -# define PKCS7_R_SIGNATURE_FAILURE 105 -# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 -# define PKCS7_R_SIGNING_CTRL_FAILURE 147 -# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 -# define PKCS7_R_SMIME_TEXT_ERROR 129 -# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 -# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 -# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 -# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 -# define PKCS7_R_UNKNOWN_OPERATION 110 -# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 -# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 -# define PKCS7_R_WRONG_CONTENT_TYPE 113 -# define PKCS7_R_WRONG_PKCS7_TYPE 114 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/rand.h b/Android/app/libs/arm64-v8a/include/openssl/rand.h deleted file mode 100644 index d521ae19..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/rand.h +++ /dev/null @@ -1,89 +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_RAND_H -# define HEADER_RAND_H - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Already defined in ossl_typ.h */ -/* typedef struct rand_meth_st RAND_METHOD; */ - -struct rand_meth_st { - int (*seed) (const void *buf, int num); - int (*bytes) (unsigned char *buf, int num); - void (*cleanup) (void); - int (*add) (const void *buf, int num, double entropy); - int (*pseudorand) (unsigned char *buf, int num); - int (*status) (void); -}; - -# ifdef BN_DEBUG -extern int rand_predictable; -# endif - -int RAND_set_rand_method(const RAND_METHOD *meth); -const RAND_METHOD *RAND_get_rand_method(void); -# ifndef OPENSSL_NO_ENGINE -int RAND_set_rand_engine(ENGINE *engine); -# endif -RAND_METHOD *RAND_OpenSSL(void); -#if OPENSSL_API_COMPAT < 0x10100000L -# define RAND_cleanup() while(0) continue -#endif -int RAND_bytes(unsigned char *buf, int num); -DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num)) -void RAND_seed(const void *buf, int num); -#if defined(__ANDROID__) && defined(__NDK_FPABI__) -__NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */ -#endif -void RAND_add(const void *buf, int num, double entropy); -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 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_RAND_strings(void); - -/* Error codes for the RAND functions. */ - -/* Function codes. */ -# define RAND_F_RAND_BYTES 100 - -/* Reason codes. */ -# define RAND_R_PRNG_NOT_SEEDED 100 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/rc2.h b/Android/app/libs/arm64-v8a/include/openssl/rc2.h deleted file mode 100644 index 585f9e4c..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/rc4.h b/Android/app/libs/arm64-v8a/include/openssl/rc4.h deleted file mode 100644 index 86803b37..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/rc5.h b/Android/app/libs/arm64-v8a/include/openssl/rc5.h deleted file mode 100644 index 793f88e4..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/ripemd.h b/Android/app/libs/arm64-v8a/include/openssl/ripemd.h deleted file mode 100644 index c42026aa..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/rsa.h b/Android/app/libs/arm64-v8a/include/openssl/rsa.h deleted file mode 100644 index d97d6e07..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/rsa.h +++ /dev/null @@ -1,590 +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_RSA_H -# define HEADER_RSA_H - -# include - -# ifndef OPENSSL_NO_RSA -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# 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 - -# 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) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, EVP_PKEY_CTRL_RSA_PADDING, \ - pad, NULL) - -# define EVP_PKEY_CTX_get_rsa_padding(ctx, ppad) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, \ - EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) - -# define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_RSA_PSS_SALTLEN, \ - len, NULL) - -# define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, \ - 0, plen) - -# define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) - -# define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) - -# define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)pmd) - -# 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_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 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); -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); -void RSA_get0_crt_params(const RSA *r, - const BIGNUM **dmp1, const BIGNUM **dmq1, - const BIGNUM **iqmp); -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); -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); - -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_get_method(const RSA *rsa); -int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); - -/* these are the actual RSA functions */ -const RSA_METHOD *RSA_PKCS1_OpenSSL(void); - -const RSA_METHOD *RSA_null_method(void); - -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) - -typedef struct rsa_pss_params_st { - X509_ALGOR *hashAlgorithm; - X509_ALGOR *maskGenAlgorithm; - ASN1_INTEGER *saltLength; - ASN1_INTEGER *trailerField; -} RSA_PSS_PARAMS; - -DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) - -typedef struct rsa_oaep_params_st { - X509_ALGOR *hashFunc; - X509_ALGOR *maskGenFunc; - X509_ALGOR *pSourceFunc; -} 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(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)); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_RSA_strings(void); - -/* Error codes for the RSA functions. */ - -/* Function codes. */ -# define RSA_F_CHECK_PADDING_MD 140 -# define RSA_F_ENCODE_PKCS1 146 -# define RSA_F_INT_RSA_VERIFY 145 -# define RSA_F_OLD_RSA_PRIV_DECODE 147 -# define RSA_F_PKEY_RSA_CTRL 143 -# define RSA_F_PKEY_RSA_CTRL_STR 144 -# define RSA_F_PKEY_RSA_SIGN 142 -# define RSA_F_PKEY_RSA_VERIFY 149 -# define RSA_F_PKEY_RSA_VERIFYRECOVER 141 -# define RSA_F_RSA_ALGOR_TO_MD 156 -# define RSA_F_RSA_BUILTIN_KEYGEN 129 -# define RSA_F_RSA_CHECK_KEY 123 -# define RSA_F_RSA_CHECK_KEY_EX 160 -# define RSA_F_RSA_CMS_DECRYPT 159 -# define RSA_F_RSA_ITEM_VERIFY 148 -# define RSA_F_RSA_METH_DUP 161 -# define RSA_F_RSA_METH_NEW 162 -# define RSA_F_RSA_METH_SET1_NAME 163 -# define RSA_F_RSA_MGF1_TO_MD 157 -# define RSA_F_RSA_NEW_METHOD 106 -# define RSA_F_RSA_NULL 124 -# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 -# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 -# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 -# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 -# define RSA_F_RSA_OSSL_PRIVATE_DECRYPT 101 -# define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 102 -# define RSA_F_RSA_OSSL_PUBLIC_DECRYPT 103 -# define RSA_F_RSA_OSSL_PUBLIC_ENCRYPT 104 -# define RSA_F_RSA_PADDING_ADD_NONE 107 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 154 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 152 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 -# define RSA_F_RSA_PADDING_ADD_SSLV23 110 -# define RSA_F_RSA_PADDING_ADD_X931 127 -# define RSA_F_RSA_PADDING_CHECK_NONE 111 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 153 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 -# define RSA_F_RSA_PADDING_CHECK_SSLV23 114 -# define RSA_F_RSA_PADDING_CHECK_X931 128 -# define RSA_F_RSA_PRINT 115 -# define RSA_F_RSA_PRINT_FP 116 -# define RSA_F_RSA_PRIV_ENCODE 138 -# define RSA_F_RSA_PSS_TO_CTX 155 -# define RSA_F_RSA_PUB_DECODE 139 -# define RSA_F_RSA_SETUP_BLINDING 136 -# define RSA_F_RSA_SIGN 117 -# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 -# define RSA_F_RSA_VERIFY 119 -# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 -# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 126 - -/* Reason codes. */ -# define RSA_R_ALGORITHM_MISMATCH 100 -# define RSA_R_BAD_E_VALUE 101 -# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 -# define RSA_R_BAD_PAD_BYTE_COUNT 103 -# define RSA_R_BAD_SIGNATURE 104 -# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 -# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 -# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 -# define RSA_R_DATA_TOO_LARGE 109 -# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 -# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 -# define RSA_R_DATA_TOO_SMALL 111 -# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 -# define RSA_R_DIGEST_DOES_NOT_MATCH 158 -# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 -# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 -# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 -# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 -# define RSA_R_FIRST_OCTET_INVALID 133 -# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 -# define RSA_R_INVALID_DIGEST 157 -# define RSA_R_INVALID_DIGEST_LENGTH 143 -# define RSA_R_INVALID_HEADER 137 -# define RSA_R_INVALID_LABEL 160 -# define RSA_R_INVALID_MESSAGE_LENGTH 131 -# define RSA_R_INVALID_MGF1_MD 156 -# define RSA_R_INVALID_OAEP_PARAMETERS 161 -# define RSA_R_INVALID_PADDING 138 -# define RSA_R_INVALID_PADDING_MODE 141 -# define RSA_R_INVALID_PSS_PARAMETERS 149 -# define RSA_R_INVALID_PSS_SALTLEN 146 -# define RSA_R_INVALID_SALT_LENGTH 150 -# define RSA_R_INVALID_TRAILER 139 -# define RSA_R_INVALID_X931_DIGEST 142 -# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 -# define RSA_R_KEY_SIZE_TOO_SMALL 120 -# define RSA_R_LAST_OCTET_INVALID 134 -# define RSA_R_MODULUS_TOO_LARGE 105 -# define RSA_R_NO_PUBLIC_EXPONENT 140 -# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 -# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 -# define RSA_R_OAEP_DECODING_ERROR 121 -# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 -# define RSA_R_PADDING_CHECK_FAILED 114 -# define RSA_R_PKCS_DECODING_ERROR 159 -# define RSA_R_P_NOT_PRIME 128 -# define RSA_R_Q_NOT_PRIME 129 -# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 -# define RSA_R_SLEN_CHECK_FAILED 136 -# define RSA_R_SLEN_RECOVERY_FAILED 135 -# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 -# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 -# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 -# define RSA_R_UNKNOWN_DIGEST 166 -# define RSA_R_UNKNOWN_MASK_DIGEST 151 -# define RSA_R_UNKNOWN_PADDING_TYPE 118 -# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 162 -# define RSA_R_UNSUPPORTED_LABEL_SOURCE 163 -# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 -# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 -# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 -# define RSA_R_VALUE_MISSING 147 -# define RSA_R_WRONG_SIGNATURE_LENGTH 119 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/safestack.h b/Android/app/libs/arm64-v8a/include/openssl/safestack.h deleted file mode 100644 index 9fe733c2..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/safestack.h +++ /dev/null @@ -1,164 +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_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_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ - } \ - static ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ - { \ - return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \ - } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \ - } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ - } \ - static ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_free((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ - { \ - return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \ - } \ - static ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \ - (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ - { \ - OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \ - } \ - static ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ - { \ - return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \ - } \ - static ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \ - } \ - static ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \ - } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ - 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_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) - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/seed.h b/Android/app/libs/arm64-v8a/include/openssl/seed.h deleted file mode 100644 index de10b085..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/sha.h b/Android/app/libs/arm64-v8a/include/openssl/sha.h deleted file mode 100644 index 6a1eb0de..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/srp.h b/Android/app/libs/arm64-v8a/include/openssl/srp.h deleted file mode 100644 index f2b6ec75..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/srp.h +++ /dev/null @@ -1,131 +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 - */ - -#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/Android/app/libs/arm64-v8a/include/openssl/srtp.h b/Android/app/libs/arm64-v8a/include/openssl/srtp.h deleted file mode 100644 index 0b57c235..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/ssl.h b/Android/app/libs/arm64-v8a/include/openssl/ssl.h deleted file mode 100644 index f070bd2d..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/ssl.h +++ /dev/null @@ -1,2567 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - -#ifndef HEADER_SSL_H -# define HEADER_SSL_H - -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# include -# endif -# 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_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'. - */ -# define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL" -/* - * 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); - -/* 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 for verification callback */ -typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); - -/* Allow initial connection to servers that don't support RI */ -# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004U -# define SSL_OP_TLSEXT_PADDING 0x00000010U -# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040U - -/* - * 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 -/* - * 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 - -# 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_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) -# 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 put onto a free-list in the context or - * just freed (depending on the context's setting for freelist_max_len). - */ -# 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 - -/* 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 - -/* - * 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) (const 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)); -# ifndef OPENSSL_NO_NEXTPROTONEG -void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - const unsigned char - **out, - unsigned int *outlen, - void *arg), void *arg); -void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg), void *arg); -void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, - unsigned *len); -# 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); -void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, - int (*cb) (SSL *ssl, - const unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg), 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 -void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, - unsigned int (*psk_client_callback) (SSL - *ssl, - const - char - *hint, - char - *identity, - unsigned - int - max_identity_len, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_set_psk_client_callback(SSL *ssl, - unsigned int (*psk_client_callback) (SSL - *ssl, - const - char - *hint, - char - *identity, - unsigned - int - max_identity_len, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, - unsigned int (*psk_server_callback) (SSL - *ssl, - const - char - *identity, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_set_psk_server_callback(SSL *ssl, - unsigned int (*psk_server_callback) (SSL - *ssl, - const - char - *identity, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -__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 - -/* 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_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 - -/* 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_MAC_FLAG_READ_MAC_STREAM 1 -# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 - -#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)) - - -/* - * 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 -} 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(SSL *s); -int SSL_in_before(SSL *s); -int SSL_is_init_finished(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 2 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 OpenSSL_add_ssl_algorithms() SSL_library_init() -# if OPENSSL_API_COMPAT < 0x10100000L -# 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_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_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_CURVES 90 -# define SSL_CTRL_SET_CURVES 91 -# define SSL_CTRL_SET_CURVES_LIST 92 -# define SSL_CTRL_GET_SHARED_CURVE 93 -# define SSL_CTRL_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_SERVER_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_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_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_set0_chain(ctx,sk) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) -# define SSL_set1_chain(ctx,sk) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) -# define SSL_add0_chain_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) -# define SSL_add1_chain_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) -# define SSL_get0_chain_certs(ctx,px509) \ - SSL_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_clear_chain_certs(ctx) \ - SSL_set0_chain(ctx,NULL) -# define SSL_build_cert_chain(s, flags) \ - SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_select_current_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) -# define SSL_set_current_cert(ctx,op) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_set0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) -# define SSL_set1_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) -# define SSL_set0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) -# define SSL_set1_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) -# define SSL_get1_curves(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_GET_CURVES,0,(char *)s) -# define SSL_CTX_set1_curves(ctx, clist, clistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) -# define SSL_CTX_set1_curves_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) -# define SSL_set1_curves(ctx, clist, clistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) -# define SSL_set1_curves_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) -# define SSL_get_shared_curve(s, n) \ - SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL) -# 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(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) -# define SSL_set1_sigalgs_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) -# 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(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)slist) -# define SSL_set1_client_sigalgs_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) -# 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_peer_signature_nid(s, pn) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) -# define SSL_get_server_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk) -# define SSL_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) - -#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 *); -__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 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 uint32_t SSL_CIPHER_get_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 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 len); -__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); -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); - -/* 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_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 const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); -__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); -__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 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 SSL_SESSION *SSL_SESSION_new(void); -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 *s, SSL_SESSION *c); -int SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c); -__owur int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); -__owur int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); -__owur int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, - unsigned int id_len); -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); - -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 *s, int purpose); -__owur int SSL_set_purpose(SSL *s, int purpose); -__owur int SSL_CTX_set_trust(SSL_CTX *s, int trust); -__owur int SSL_set_trust(SSL *s, int trust); - -__owur int SSL_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 - -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_connect(SSL *ssl); -__owur int SSL_read(SSL *ssl, void *buf, int num); -__owur int SSL_peek(SSL *ssl, void *buf, int num); -__owur int SSL_write(SSL *ssl, const void *buf, int num); -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)); - -__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)) /* SSLv3 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) /* SSLv3 */ -# 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)) /* TLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* TLSv1.0 */ -# endif - -# ifndef OPENSSL_NO_TLS1_1_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) /* TLSv1.1 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) /* TLSv1.1 */ -# endif - -# ifndef OPENSSL_NO_TLS1_2_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) /* TLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */ -# endif - -# ifndef OPENSSL_NO_DTLS1_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_method(void)) /* DTLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) /* DTLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) /* DTLSv1.0 */ -# endif - -# ifndef OPENSSL_NO_DTLS1_2_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) /* DTLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) /* DTLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) /* DTLSv1.2 */ -#endif - -__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 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_renegotiate(SSL *s); -__owur int SSL_renegotiate_abbreviated(SSL *s); -__owur int SSL_renegotiate_pending(SSL *s); -int SSL_shutdown(SSL *s); - -__owur const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx); -__owur const SSL_METHOD *SSL_get_ssl_method(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_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(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 *ssl, - unsigned char *out, size_t outlen); - -#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(SSL *s); -__owur const COMP_METHOD *SSL_get_current_expansion(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); - -/* 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 tls_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)); -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_cache_hit(s) SSL_session_reused(s) -# endif - -__owur int SSL_session_reused(SSL *s); -__owur int SSL_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); -__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); -# 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 - -extern const char SSL_version_str[]; - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_SSL_strings(void); - -/* Error codes for the SSL functions. */ - -/* Function codes. */ -# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 -# define SSL_F_CT_MOVE_SCTS 345 -# define SSL_F_CT_STRICT 349 -# define SSL_F_D2I_SSL_SESSION 103 -# define SSL_F_DANE_CTX_ENABLE 347 -# define SSL_F_DANE_MTYPE_SET 393 -# define SSL_F_DANE_TLSA_ADD 394 -# define SSL_F_DO_DTLS1_WRITE 245 -# define SSL_F_DO_SSL3_WRITE 104 -# define SSL_F_DTLS1_BUFFER_RECORD 247 -# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 318 -# define SSL_F_DTLS1_HEARTBEAT 305 -# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 -# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424 -# define SSL_F_DTLS1_PROCESS_RECORD 257 -# define SSL_F_DTLS1_READ_BYTES 258 -# define SSL_F_DTLS1_READ_FAILED 339 -# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 390 -# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 -# define SSL_F_DTLSV1_LISTEN 350 -# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 371 -# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385 -# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370 -# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386 -# define SSL_F_DTLS_WAIT_FOR_DRY 592 -# define SSL_F_OPENSSL_INIT_SSL 342 -# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 417 -# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 418 -# define SSL_F_READ_STATE_MACHINE 352 -# define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 -# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 -# define SSL_F_SSL3_CTRL 213 -# define SSL_F_SSL3_CTX_CTRL 133 -# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 -# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 -# define SSL_F_SSL3_FINAL_FINISH_MAC 285 -# define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 -# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 -# define SSL_F_SSL3_GET_RECORD 143 -# define SSL_F_SSL3_INIT_FINISHED_MAC 397 -# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 -# define SSL_F_SSL3_READ_BYTES 148 -# define SSL_F_SSL3_READ_N 149 -# define SSL_F_SSL3_SETUP_KEY_BLOCK 157 -# define SSL_F_SSL3_SETUP_READ_BUFFER 156 -# define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 -# define SSL_F_SSL3_TAKE_MAC 425 -# define SSL_F_SSL3_WRITE_BYTES 158 -# define SSL_F_SSL3_WRITE_PENDING 159 -# define SSL_F_SSL_ADD_CERT_CHAIN 316 -# define SSL_F_SSL_ADD_CERT_TO_BUF 319 -# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 -# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 -# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 -# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 -# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 -# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 -# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 -# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 -# define SSL_F_SSL_BAD_METHOD 160 -# define SSL_F_SSL_BUILD_CERT_CHAIN 332 -# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 -# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 346 -# define SSL_F_SSL_CERT_DUP 221 -# define SSL_F_SSL_CERT_NEW 162 -# define SSL_F_SSL_CERT_SET0_CHAIN 340 -# define SSL_F_SSL_CHECK_PRIVATE_KEY 163 -# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 -# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 -# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 -# define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 -# define SSL_F_SSL_CLEAR 164 -# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 -# define SSL_F_SSL_CONF_CMD 334 -# define SSL_F_SSL_CREATE_CIPHER_LIST 166 -# define SSL_F_SSL_CTRL 232 -# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 -# define SSL_F_SSL_CTX_ENABLE_CT 398 -# define SSL_F_SSL_CTX_MAKE_PROFILES 309 -# define SSL_F_SSL_CTX_NEW 169 -# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 343 -# define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 -# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 -# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 396 -# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 -# define SSL_F_SSL_CTX_SET_SSL_VERSION 170 -# define SSL_F_SSL_CTX_USE_CERTIFICATE 171 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 -# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 -# define SSL_F_SSL_CTX_USE_SERVERINFO 336 -# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 -# define SSL_F_SSL_DANE_DUP 403 -# define SSL_F_SSL_DANE_ENABLE 395 -# define SSL_F_SSL_DO_CONFIG 391 -# define SSL_F_SSL_DO_HANDSHAKE 180 -# define SSL_F_SSL_DUP_CA_LIST 408 -# define SSL_F_SSL_ENABLE_CT 402 -# define SSL_F_SSL_GET_NEW_SESSION 181 -# define SSL_F_SSL_GET_PREV_SESSION 217 -# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 -# define SSL_F_SSL_GET_SIGN_PKEY 183 -# define SSL_F_SSL_INIT_WBIO_BUFFER 184 -# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 -# define SSL_F_SSL_MODULE_INIT 392 -# define SSL_F_SSL_NEW 186 -# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 -# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 -# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 -# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 -# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 -# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 -# define SSL_F_SSL_PEEK 270 -# define SSL_F_SSL_READ 223 -# define SSL_F_SSL_RENEGOTIATE 516 -# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 546 -# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 -# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 -# define SSL_F_SSL_SESSION_DUP 348 -# define SSL_F_SSL_SESSION_NEW 189 -# define SSL_F_SSL_SESSION_PRINT_FP 190 -# define SSL_F_SSL_SESSION_SET1_ID 423 -# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 -# define SSL_F_SSL_SET_ALPN_PROTOS 344 -# define SSL_F_SSL_SET_CERT 191 -# define SSL_F_SSL_SET_CIPHER_LIST 271 -# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 399 -# define SSL_F_SSL_SET_FD 192 -# define SSL_F_SSL_SET_PKEY 193 -# define SSL_F_SSL_SET_RFD 194 -# define SSL_F_SSL_SET_SESSION 195 -# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 -# define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 -# define SSL_F_SSL_SET_WFD 196 -# define SSL_F_SSL_SHUTDOWN 224 -# define SSL_F_SSL_SRP_CTX_INIT 313 -# define SSL_F_SSL_START_ASYNC_JOB 389 -# define SSL_F_SSL_UNDEFINED_FUNCTION 197 -# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 -# define SSL_F_SSL_USE_CERTIFICATE 198 -# define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 -# define SSL_F_SSL_USE_CERTIFICATE_FILE 200 -# define SSL_F_SSL_USE_PRIVATEKEY 201 -# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 -# define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 -# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 -# define SSL_F_SSL_USE_RSAPRIVATEKEY 204 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 -# define SSL_F_SSL_VALIDATE_CT 400 -# define SSL_F_SSL_VERIFY_CERT_CHAIN 207 -# define SSL_F_SSL_WRITE 208 -# define SSL_F_STATE_MACHINE 353 -# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 -# define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 -# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 341 -# define SSL_F_TLS1_ENC 401 -# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 -# define SSL_F_TLS1_GET_CURVELIST 338 -# define SSL_F_TLS1_PRF 284 -# define SSL_F_TLS1_SETUP_KEY_BLOCK 211 -# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 -# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 354 -# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 372 -# define SSL_F_TLS_CONSTRUCT_CKE_DHE 404 -# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 405 -# define SSL_F_TLS_CONSTRUCT_CKE_GOST 406 -# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 407 -# define SSL_F_TLS_CONSTRUCT_CKE_RSA 409 -# define SSL_F_TLS_CONSTRUCT_CKE_SRP 410 -# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 355 -# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 356 -# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 357 -# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 358 -# define SSL_F_TLS_CONSTRUCT_FINISHED 359 -# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 373 -# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 428 -# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 374 -# define SSL_F_TLS_CONSTRUCT_SERVER_DONE 375 -# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 376 -# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 377 -# define SSL_F_TLS_GET_MESSAGE_BODY 351 -# define SSL_F_TLS_GET_MESSAGE_HEADER 387 -# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 378 -# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 384 -# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 360 -# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 361 -# define SSL_F_TLS_PROCESS_CERT_STATUS 362 -# define SSL_F_TLS_PROCESS_CERT_VERIFY 379 -# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 363 -# define SSL_F_TLS_PROCESS_CKE_DHE 411 -# define SSL_F_TLS_PROCESS_CKE_ECDHE 412 -# define SSL_F_TLS_PROCESS_CKE_GOST 413 -# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 414 -# define SSL_F_TLS_PROCESS_CKE_RSA 415 -# define SSL_F_TLS_PROCESS_CKE_SRP 416 -# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 380 -# define SSL_F_TLS_PROCESS_CLIENT_HELLO 381 -# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 382 -# define SSL_F_TLS_PROCESS_FINISHED 364 -# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 365 -# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 366 -# define SSL_F_TLS_PROCESS_NEXT_PROTO 383 -# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 367 -# define SSL_F_TLS_PROCESS_SERVER_DONE 368 -# define SSL_F_TLS_PROCESS_SERVER_HELLO 369 -# define SSL_F_TLS_PROCESS_SKE_DHE 419 -# define SSL_F_TLS_PROCESS_SKE_ECDHE 420 -# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 421 -# define SSL_F_TLS_PROCESS_SKE_SRP 422 -# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 220 - -/* Reason codes. */ -# define SSL_R_APP_DATA_IN_HANDSHAKE 100 -# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 -# define SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE 143 -# define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158 -# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 -# define SSL_R_BAD_DATA 390 -# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 -# define SSL_R_BAD_DECOMPRESSION 107 -# define SSL_R_BAD_DH_VALUE 102 -# define SSL_R_BAD_DIGEST_LENGTH 111 -# define SSL_R_BAD_ECC_CERT 304 -# define SSL_R_BAD_ECPOINT 306 -# define SSL_R_BAD_HANDSHAKE_LENGTH 332 -# define SSL_R_BAD_HELLO_REQUEST 105 -# define SSL_R_BAD_LENGTH 271 -# define SSL_R_BAD_PACKET_LENGTH 115 -# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 -# define SSL_R_BAD_RSA_ENCRYPT 119 -# define SSL_R_BAD_SIGNATURE 123 -# define SSL_R_BAD_SRP_A_LENGTH 347 -# define SSL_R_BAD_SRP_PARAMETERS 371 -# define SSL_R_BAD_SRTP_MKI_VALUE 352 -# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 -# define SSL_R_BAD_SSL_FILETYPE 124 -# define SSL_R_BAD_VALUE 384 -# define SSL_R_BAD_WRITE_RETRY 127 -# define SSL_R_BIO_NOT_SET 128 -# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 -# define SSL_R_BN_LIB 130 -# define SSL_R_CA_DN_LENGTH_MISMATCH 131 -# define SSL_R_CA_KEY_TOO_SMALL 397 -# define SSL_R_CA_MD_TOO_WEAK 398 -# define SSL_R_CCS_RECEIVED_EARLY 133 -# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 -# define SSL_R_CERT_CB_ERROR 377 -# define SSL_R_CERT_LENGTH_MISMATCH 135 -# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 -# define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 -# define SSL_R_CLIENTHELLO_TLSEXT 226 -# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 -# define SSL_R_COMPRESSION_DISABLED 343 -# define SSL_R_COMPRESSION_FAILURE 141 -# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 -# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 -# define SSL_R_CONNECTION_TYPE_NOT_SET 144 -# define SSL_R_CONTEXT_NOT_DANE_ENABLED 167 -# define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400 -# define SSL_R_COOKIE_MISMATCH 308 -# define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206 -# define SSL_R_DANE_ALREADY_ENABLED 172 -# define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173 -# define SSL_R_DANE_NOT_ENABLED 175 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184 -# define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189 -# define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192 -# define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200 -# define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201 -# define SSL_R_DANE_TLSA_BAD_SELECTOR 202 -# define SSL_R_DANE_TLSA_NULL_DATA 203 -# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 -# define SSL_R_DATA_LENGTH_TOO_LONG 146 -# define SSL_R_DECRYPTION_FAILED 147 -# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 -# define SSL_R_DH_KEY_TOO_SMALL 394 -# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 -# define SSL_R_DIGEST_CHECK_FAILED 149 -# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 -# define SSL_R_DUPLICATE_COMPRESSION_ID 309 -# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 -# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 -# define SSL_R_EE_KEY_TOO_SMALL 399 -# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 -# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 -# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 -# define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204 -# define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194 -# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 -# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 -# define SSL_R_FAILED_TO_INIT_ASYNC 405 -# define SSL_R_FRAGMENTED_CLIENT_HELLO 401 -# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 -# define SSL_R_HTTPS_PROXY_REQUEST 155 -# define SSL_R_HTTP_REQUEST 156 -# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 -# define SSL_R_INAPPROPRIATE_FALLBACK 373 -# define SSL_R_INCONSISTENT_COMPRESSION 340 -# define SSL_R_INCONSISTENT_EXTMS 104 -# define SSL_R_INVALID_COMMAND 280 -# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 -# define SSL_R_INVALID_CONFIGURATION_NAME 113 -# define SSL_R_INVALID_CT_VALIDATION_TYPE 212 -# define SSL_R_INVALID_NULL_CMD_NAME 385 -# define SSL_R_INVALID_SEQUENCE_NUMBER 402 -# define SSL_R_INVALID_SERVERINFO_DATA 388 -# define SSL_R_INVALID_SRP_USERNAME 357 -# define SSL_R_INVALID_STATUS_RESPONSE 328 -# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 -# define SSL_R_LENGTH_MISMATCH 159 -# define SSL_R_LENGTH_TOO_LONG 404 -# define SSL_R_LENGTH_TOO_SHORT 160 -# define SSL_R_LIBRARY_BUG 274 -# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 -# define SSL_R_MISSING_DSA_SIGNING_CERT 165 -# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 -# define SSL_R_MISSING_RSA_CERTIFICATE 168 -# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 -# define SSL_R_MISSING_RSA_SIGNING_CERT 170 -# define SSL_R_MISSING_SRP_PARAM 358 -# define SSL_R_MISSING_TMP_DH_KEY 171 -# define SSL_R_MISSING_TMP_ECDH_KEY 311 -# define SSL_R_NO_CERTIFICATES_RETURNED 176 -# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 -# define SSL_R_NO_CERTIFICATE_SET 179 -# define SSL_R_NO_CIPHERS_AVAILABLE 181 -# define SSL_R_NO_CIPHERS_SPECIFIED 183 -# define SSL_R_NO_CIPHER_MATCH 185 -# define SSL_R_NO_CLIENT_CERT_METHOD 331 -# define SSL_R_NO_COMPRESSION_SPECIFIED 187 -# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 -# define SSL_R_NO_METHOD_SPECIFIED 188 -# define SSL_R_NO_PEM_EXTENSIONS 389 -# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 -# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 -# define SSL_R_NO_RENEGOTIATION 339 -# define SSL_R_NO_REQUIRED_DIGEST 324 -# define SSL_R_NO_SHARED_CIPHER 193 -# define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376 -# define SSL_R_NO_SRTP_PROFILES 359 -# define SSL_R_NO_VALID_SCTS 216 -# define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403 -# define SSL_R_NULL_SSL_CTX 195 -# define SSL_R_NULL_SSL_METHOD_PASSED 196 -# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 -# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 -# define SSL_R_PACKET_LENGTH_TOO_LONG 198 -# define SSL_R_PARSE_TLSEXT 227 -# define SSL_R_PATH_TOO_LONG 270 -# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 -# define SSL_R_PEM_NAME_BAD_PREFIX 391 -# define SSL_R_PEM_NAME_TOO_SHORT 392 -# define SSL_R_PIPELINE_FAILURE 406 -# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 -# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 -# define SSL_R_PSK_NO_CLIENT_CB 224 -# define SSL_R_PSK_NO_SERVER_CB 225 -# define SSL_R_READ_BIO_NOT_SET 211 -# define SSL_R_READ_TIMEOUT_EXPIRED 312 -# define SSL_R_RECORD_LENGTH_MISMATCH 213 -# define SSL_R_RECORD_TOO_SMALL 298 -# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 -# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 -# define SSL_R_RENEGOTIATION_MISMATCH 337 -# define SSL_R_REQUIRED_CIPHER_MISSING 215 -# define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342 -# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 -# define SSL_R_SCT_VERIFICATION_FAILED 208 -# define SSL_R_SERVERHELLO_TLSEXT 275 -# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 -# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 -# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 -# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 -# define SSL_R_SRP_A_CALC 361 -# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 -# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 -# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 -# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 -# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 -# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 -# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 -# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 -# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 -# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 -# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 -# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 -# define SSL_R_SSL_COMMAND_SECTION_EMPTY 117 -# define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125 -# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 -# define SSL_R_SSL_HANDSHAKE_FAILURE 229 -# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 -# define SSL_R_SSL_NEGATIVE_LENGTH 372 -# define SSL_R_SSL_SECTION_EMPTY 126 -# define SSL_R_SSL_SECTION_NOT_FOUND 136 -# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 -# define SSL_R_SSL_SESSION_ID_CONFLICT 302 -# define SSL_R_SSL_SESSION_ID_TOO_LONG 408 -# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 -# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 -# define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 -# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 -# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 -# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 -# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 -# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 -# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 -# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 -# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 -# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 -# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 -# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 -# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 -# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 -# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 -# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 -# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 -# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 -# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 -# define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 -# define SSL_R_TLS_HEARTBEAT_PENDING 366 -# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 -# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 -# define SSL_R_TOO_MANY_WARN_ALERTS 409 -# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 -# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 -# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 -# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 -# define SSL_R_UNEXPECTED_MESSAGE 244 -# define SSL_R_UNEXPECTED_RECORD 245 -# define SSL_R_UNINITIALIZED 276 -# define SSL_R_UNKNOWN_ALERT_TYPE 246 -# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 -# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 -# define SSL_R_UNKNOWN_CIPHER_TYPE 249 -# define SSL_R_UNKNOWN_CMD_NAME 386 -# define SSL_R_UNKNOWN_COMMAND 139 -# define SSL_R_UNKNOWN_DIGEST 368 -# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 -# define SSL_R_UNKNOWN_PKEY_TYPE 251 -# define SSL_R_UNKNOWN_PROTOCOL 252 -# define SSL_R_UNKNOWN_SSL_VERSION 254 -# define SSL_R_UNKNOWN_STATE 255 -# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 -# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 -# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 -# define SSL_R_UNSUPPORTED_PROTOCOL 258 -# define SSL_R_UNSUPPORTED_SSL_VERSION 259 -# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 -# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 -# define SSL_R_VERSION_TOO_HIGH 166 -# define SSL_R_VERSION_TOO_LOW 396 -# define SSL_R_WRONG_CERTIFICATE_TYPE 383 -# define SSL_R_WRONG_CIPHER_RETURNED 261 -# define SSL_R_WRONG_CURVE 378 -# define SSL_R_WRONG_SIGNATURE_LENGTH 264 -# define SSL_R_WRONG_SIGNATURE_SIZE 265 -# define SSL_R_WRONG_SIGNATURE_TYPE 370 -# define SSL_R_WRONG_SSL_VERSION 266 -# define SSL_R_WRONG_VERSION_NUMBER 267 -# define SSL_R_X509_LIB 268 -# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/ssl2.h b/Android/app/libs/arm64-v8a/include/openssl/ssl2.h deleted file mode 100644 index 5321bd27..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/ssl3.h b/Android/app/libs/arm64-v8a/include/openssl/ssl3.h deleted file mode 100644 index 4ca434e7..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/ssl3.h +++ /dev/null @@ -1,310 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_SSL3_H -# define HEADER_SSL3_H - -# 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 - -# 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) - -/* - * 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_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 type for SSL/TLS header info */ -# define SSL3_RT_HEADER 0x100 - -# 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 either for SSLv3 and TLSv1. - */ -# define SSL3_CT_NUMBER 9 - -# 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 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_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_STATUS 22 -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_MT_NEXT_PROTO 67 -# endif -# 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 0x01 -# define SSL3_CC_WRITE 0x02 -# define SSL3_CC_CLIENT 0x10 -# define SSL3_CC_SERVER 0x20 -# 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/Android/app/libs/arm64-v8a/include/openssl/stack.h b/Android/app/libs/arm64-v8a/include/openssl/stack.h deleted file mode 100644 index 23ad3b89..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/stack.h +++ /dev/null @@ -1,78 +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_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); -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/Android/app/libs/arm64-v8a/include/openssl/symhacks.h b/Android/app/libs/arm64-v8a/include/openssl/symhacks.h deleted file mode 100644 index caf1f1a7..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/symhacks.h +++ /dev/null @@ -1,52 +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_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 - -/* - * These functions do not seem to exist! However, I'm paranoid... Original - * command in x509v3.h: These functions are being redefined in another - * directory, and clash when the linker is case-insensitive, so let's hide - * them a little, by giving them an extra 'o' at the beginning of the name... - */ -# undef X509v3_cleanup_extensions -# define X509v3_cleanup_extensions oX509v3_cleanup_extensions -# undef X509v3_add_extension -# define X509v3_add_extension oX509v3_add_extension -# undef X509v3_add_netscape_extensions -# define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions -# undef X509v3_add_standard_extensions -# define X509v3_add_standard_extensions oX509v3_add_standard_extensions - -/* This one clashes with CMS_data_create */ -# undef cms_Data_create -# define cms_Data_create priv_cms_Data_create - -# endif - -#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/Android/app/libs/arm64-v8a/include/openssl/tls1.h b/Android/app/libs/arm64-v8a/include/openssl/tls1.h deleted file mode 100644 index 3fe01fe8..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/tls1.h +++ /dev/null @@ -1,972 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * ECC cipher suite support in OpenSSL originally written by - * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. - * - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - -#ifndef HEADER_TLS1_H -# define HEADER_TLS1_H - -# 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 TLS_MAX_VERSION TLS1_2_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 -/* 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 */ -# define TLSEXT_TYPE_elliptic_curves 10 -# 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 - -/* 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 - -# 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); - -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,(char *)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, (void *)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, (void *)arg) - -# define SSL_set_tlsext_status_exts(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) - -# define SSL_get_tlsext_status_ids(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) - -# define SSL_set_tlsext_status_ids(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) - -# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0, (void *)arg) - -# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen, (void *)arg) - -# 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, (void *)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 (**)(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, (void *)arg) -# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) - -#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 - -/* - * 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" - -# 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 9 - -# 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\x63\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/Android/app/libs/arm64-v8a/include/openssl/ts.h b/Android/app/libs/arm64-v8a/include/openssl/ts.h deleted file mode 100644 index a5659825..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/ts.h +++ /dev/null @@ -1,643 +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_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 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); - -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); - -/* 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); - -/* -------------------------------------------------- */ -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_TS_strings(void); - -/* Error codes for the TS functions. */ - -/* Function codes. */ -# define TS_F_DEF_SERIAL_CB 110 -# define TS_F_DEF_TIME_CB 111 -# define TS_F_ESS_ADD_SIGNING_CERT 112 -# define TS_F_ESS_CERT_ID_NEW_INIT 113 -# define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 -# define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 -# define TS_F_PKCS7_TO_TS_TST_INFO 148 -# define TS_F_TS_ACCURACY_SET_MICROS 115 -# define TS_F_TS_ACCURACY_SET_MILLIS 116 -# define TS_F_TS_ACCURACY_SET_SECONDS 117 -# define TS_F_TS_CHECK_IMPRINTS 100 -# define TS_F_TS_CHECK_NONCES 101 -# define TS_F_TS_CHECK_POLICY 102 -# define TS_F_TS_CHECK_SIGNING_CERTS 103 -# define TS_F_TS_CHECK_STATUS_INFO 104 -# define TS_F_TS_COMPUTE_IMPRINT 145 -# define TS_F_TS_CONF_INVALID 151 -# define TS_F_TS_CONF_LOAD_CERT 153 -# define TS_F_TS_CONF_LOAD_CERTS 154 -# define TS_F_TS_CONF_LOAD_KEY 155 -# define TS_F_TS_CONF_LOOKUP_FAIL 152 -# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 -# define TS_F_TS_GET_STATUS_TEXT 105 -# define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 -# define TS_F_TS_REQ_SET_MSG_IMPRINT 119 -# define TS_F_TS_REQ_SET_NONCE 120 -# define TS_F_TS_REQ_SET_POLICY_ID 121 -# define TS_F_TS_RESP_CREATE_RESPONSE 122 -# define TS_F_TS_RESP_CREATE_TST_INFO 123 -# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 -# define TS_F_TS_RESP_CTX_ADD_MD 125 -# define TS_F_TS_RESP_CTX_ADD_POLICY 126 -# define TS_F_TS_RESP_CTX_NEW 127 -# define TS_F_TS_RESP_CTX_SET_ACCURACY 128 -# define TS_F_TS_RESP_CTX_SET_CERTS 129 -# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 -# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 -# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 -# define TS_F_TS_RESP_GET_POLICY 133 -# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 -# define TS_F_TS_RESP_SET_STATUS_INFO 135 -# define TS_F_TS_RESP_SET_TST_INFO 150 -# define TS_F_TS_RESP_SIGN 136 -# define TS_F_TS_RESP_VERIFY_SIGNATURE 106 -# define TS_F_TS_TST_INFO_SET_ACCURACY 137 -# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 -# define TS_F_TS_TST_INFO_SET_NONCE 139 -# define TS_F_TS_TST_INFO_SET_POLICY_ID 140 -# define TS_F_TS_TST_INFO_SET_SERIAL 141 -# define TS_F_TS_TST_INFO_SET_TIME 142 -# define TS_F_TS_TST_INFO_SET_TSA 143 -# define TS_F_TS_VERIFY 108 -# define TS_F_TS_VERIFY_CERT 109 -# define TS_F_TS_VERIFY_CTX_NEW 144 - -/* Reason codes. */ -# define TS_R_BAD_PKCS7_TYPE 132 -# define TS_R_BAD_TYPE 133 -# define TS_R_CANNOT_LOAD_CERT 137 -# define TS_R_CANNOT_LOAD_KEY 138 -# define TS_R_CERTIFICATE_VERIFY_ERROR 100 -# define TS_R_COULD_NOT_SET_ENGINE 127 -# define TS_R_COULD_NOT_SET_TIME 115 -# define TS_R_DETACHED_CONTENT 134 -# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 -# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 -# define TS_R_INVALID_NULL_POINTER 102 -# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 -# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 -# define TS_R_NONCE_MISMATCH 104 -# define TS_R_NONCE_NOT_RETURNED 105 -# define TS_R_NO_CONTENT 106 -# define TS_R_NO_TIME_STAMP_TOKEN 107 -# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 -# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 -# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 -# define TS_R_POLICY_MISMATCH 108 -# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 -# define TS_R_RESPONSE_SETUP_ERROR 121 -# define TS_R_SIGNATURE_FAILURE 109 -# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 -# define TS_R_TIME_SYSCALL_ERROR 122 -# define TS_R_TOKEN_NOT_PRESENT 130 -# define TS_R_TOKEN_PRESENT 131 -# define TS_R_TSA_NAME_MISMATCH 111 -# define TS_R_TSA_UNTRUSTED 112 -# define TS_R_TST_INFO_SETUP_ERROR 123 -# define TS_R_TS_DATASIGN 124 -# define TS_R_UNACCEPTABLE_POLICY 125 -# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 -# define TS_R_UNSUPPORTED_VERSION 113 -# define TS_R_VAR_BAD_VALUE 135 -# define TS_R_VAR_LOOKUP_FAILURE 136 -# define TS_R_WRONG_CONTENT_TYPE 114 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/txt_db.h b/Android/app/libs/arm64-v8a/include/openssl/txt_db.h deleted file mode 100644 index 0e6c943e..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/txt_db.h +++ /dev/null @@ -1,57 +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_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/Android/app/libs/arm64-v8a/include/openssl/ui.h b/Android/app/libs/arm64-v8a/include/openssl/ui.h deleted file mode 100644 index 49e763de..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/ui.h +++ /dev/null @@ -1,378 +0,0 @@ -/* - * Copyright 2001-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_UI_H -# define HEADER_UI_H - -# include - -# ifndef OPENSSL_NO_UI - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# include - -#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); -/* 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); - -/* When all strings have been added, process the whole thing. */ -int UI_process(UI *ui); - -/* - * Give a user interface parametrised control commands. This can be used to - * 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); - -/* The method with all the built-in thingies */ -UI_METHOD *UI_OpenSSL(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_prompt_constructor(UI_METHOD *method, - char *(*prompt_constructor) (UI *ui, - const char - *object_desc, - const char - *object_name)); -int (*UI_method_get_opener(UI_METHOD *method)) (UI *); -int (*UI_method_get_writer(UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_flusher(UI_METHOD *method)) (UI *); -int (*UI_method_get_reader(UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_closer(UI_METHOD *method)) (UI *); -char *(*UI_method_get_prompt_constructor(UI_METHOD *method)) (UI *, - const char *, - const char *); - -/* - * 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); -/* - * 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); - -/* 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_UI_strings(void); - -/* Error codes for the UI functions. */ - -/* Function codes. */ -# define UI_F_CLOSE_CONSOLE 115 -# define UI_F_ECHO_CONSOLE 116 -# define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 -# define UI_F_GENERAL_ALLOCATE_PROMPT 109 -# define UI_F_NOECHO_CONSOLE 117 -# define UI_F_OPEN_CONSOLE 114 -# define UI_F_UI_CREATE_METHOD 112 -# define UI_F_UI_CTRL 111 -# define UI_F_UI_DUP_ERROR_STRING 101 -# define UI_F_UI_DUP_INFO_STRING 102 -# define UI_F_UI_DUP_INPUT_BOOLEAN 110 -# define UI_F_UI_DUP_INPUT_STRING 103 -# define UI_F_UI_DUP_VERIFY_STRING 106 -# define UI_F_UI_GET0_RESULT 107 -# define UI_F_UI_NEW_METHOD 104 -# define UI_F_UI_PROCESS 113 -# define UI_F_UI_SET_RESULT 105 - -/* Reason codes. */ -# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 -# define UI_R_INDEX_TOO_LARGE 102 -# define UI_R_INDEX_TOO_SMALL 103 -# define UI_R_NO_RESULT_BUFFER 105 -# define UI_R_PROCESSING_ERROR 107 -# define UI_R_RESULT_TOO_LARGE 100 -# define UI_R_RESULT_TOO_SMALL 101 -# define UI_R_SYSASSIGN_ERROR 109 -# define UI_R_SYSDASSGN_ERROR 110 -# define UI_R_SYSQIOW_ERROR 111 -# define UI_R_UNKNOWN_CONTROL_COMMAND 106 -# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/whrlpool.h b/Android/app/libs/arm64-v8a/include/openssl/whrlpool.h deleted file mode 100644 index 20ea3503..00000000 --- a/Android/app/libs/arm64-v8a/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/Android/app/libs/arm64-v8a/include/openssl/x509.h b/Android/app/libs/arm64-v8a/include/openssl/x509.h deleted file mode 100644 index ee98df8e..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/x509.h +++ /dev/null @@ -1,1123 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_X509_H -# define HEADER_X509_H - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# 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 were sent to me by Pat Richard - * and are used to manipulate Netscapes 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; - -#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); - -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); - -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_NAME(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); -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(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(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) - -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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_X509_strings(void); - -/* Error codes for the X509 functions. */ - -/* Function codes. */ -# define X509_F_ADD_CERT_DIR 100 -# define X509_F_BUILD_CHAIN 106 -# define X509_F_BY_FILE_CTRL 101 -# define X509_F_CHECK_NAME_CONSTRAINTS 149 -# define X509_F_CHECK_POLICY 145 -# define X509_F_DANE_I2D 107 -# define X509_F_DIR_CTRL 102 -# define X509_F_GET_CERT_BY_SUBJECT 103 -# define X509_F_NETSCAPE_SPKI_B64_DECODE 129 -# define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 -# define X509_F_X509AT_ADD1_ATTR 135 -# define X509_F_X509V3_ADD_EXT 104 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 -# define X509_F_X509_ATTRIBUTE_GET0_DATA 139 -# define X509_F_X509_ATTRIBUTE_SET1_DATA 138 -# define X509_F_X509_CHECK_PRIVATE_KEY 128 -# define X509_F_X509_CRL_DIFF 105 -# define X509_F_X509_CRL_PRINT_FP 147 -# define X509_F_X509_EXTENSION_CREATE_BY_NID 108 -# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 -# define X509_F_X509_GET_PUBKEY_PARAMETERS 110 -# define X509_F_X509_LOAD_CERT_CRL_FILE 132 -# define X509_F_X509_LOAD_CERT_FILE 111 -# define X509_F_X509_LOAD_CRL_FILE 112 -# define X509_F_X509_NAME_ADD_ENTRY 113 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 -# define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 -# define X509_F_X509_NAME_ONELINE 116 -# define X509_F_X509_NAME_PRINT 117 -# define X509_F_X509_OBJECT_NEW 150 -# define X509_F_X509_PRINT_EX_FP 118 -# define X509_F_X509_PUBKEY_DECODE 148 -# define X509_F_X509_PUBKEY_GET0 119 -# define X509_F_X509_PUBKEY_SET 120 -# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 -# define X509_F_X509_REQ_PRINT_EX 121 -# define X509_F_X509_REQ_PRINT_FP 122 -# define X509_F_X509_REQ_TO_X509 123 -# define X509_F_X509_STORE_ADD_CERT 124 -# define X509_F_X509_STORE_ADD_CRL 125 -# define X509_F_X509_STORE_CTX_GET1_ISSUER 146 -# define X509_F_X509_STORE_CTX_INIT 143 -# define X509_F_X509_STORE_CTX_NEW 142 -# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 -# define X509_F_X509_TO_X509_REQ 126 -# define X509_F_X509_TRUST_ADD 133 -# define X509_F_X509_TRUST_SET 141 -# define X509_F_X509_VERIFY_CERT 127 - -/* Reason codes. */ -# define X509_R_AKID_MISMATCH 110 -# define X509_R_BAD_SELECTOR 133 -# define X509_R_BAD_X509_FILETYPE 100 -# define X509_R_BASE64_DECODE_ERROR 118 -# define X509_R_CANT_CHECK_DH_KEY 114 -# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 -# define X509_R_CRL_ALREADY_DELTA 127 -# define X509_R_CRL_VERIFY_FAILURE 131 -# define X509_R_IDP_MISMATCH 128 -# define X509_R_INVALID_DIRECTORY 113 -# define X509_R_INVALID_FIELD_NAME 119 -# define X509_R_INVALID_TRUST 123 -# define X509_R_ISSUER_MISMATCH 129 -# define X509_R_KEY_TYPE_MISMATCH 115 -# define X509_R_KEY_VALUES_MISMATCH 116 -# define X509_R_LOADING_CERT_DIR 103 -# define X509_R_LOADING_DEFAULTS 104 -# define X509_R_METHOD_NOT_SUPPORTED 124 -# define X509_R_NAME_TOO_LONG 134 -# define X509_R_NEWER_CRL_NOT_NEWER 132 -# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 -# define X509_R_NO_CRL_NUMBER 130 -# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 -# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 -# define X509_R_SHOULD_RETRY 106 -# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 -# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 -# define X509_R_UNKNOWN_KEY_TYPE 117 -# define X509_R_UNKNOWN_NID 109 -# define X509_R_UNKNOWN_PURPOSE_ID 121 -# define X509_R_UNKNOWN_TRUST_ID 120 -# define X509_R_UNSUPPORTED_ALGORITHM 111 -# define X509_R_WRONG_LOOKUP_TYPE 112 -# define X509_R_WRONG_TYPE 122 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/include/openssl/x509_vfy.h b/Android/app/libs/arm64-v8a/include/openssl/x509_vfy.h deleted file mode 100644 index 1aa0a33b..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/x509_vfy.h +++ /dev/null @@ -1,544 +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_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 - -/* 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); -X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a); -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_cert X509_STORE_CTX_get1_certs -# 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); - -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_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); -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/Android/app/libs/arm64-v8a/include/openssl/x509v3.h b/Android/app/libs/arm64-v8a/include/openssl/x509v3.h deleted file mode 100644 index c93b112f..00000000 --- a/Android/app/libs/arm64-v8a/include/openssl/x509v3.h +++ /dev/null @@ -1,1008 +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_X509V3_H -# define HEADER_X509V3_H - -# 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 -/* Self signed */ -# define EXFLAG_SS 0x2000 - -# 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(GENERAL_NAME *a, int *ptype); -int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, - ASN1_OBJECT *oid, ASN1_TYPE *value); -int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen, - 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); - -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 */ - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_X509V3_strings(void); - -/* Error codes for the X509V3 functions. */ - -/* Function codes. */ -# define X509V3_F_A2I_GENERAL_NAME 164 -# define X509V3_F_ADDR_VALIDATE_PATH_INTERNAL 166 -# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 -# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 -# define X509V3_F_BIGNUM_TO_STRING 167 -# define X509V3_F_COPY_EMAIL 122 -# define X509V3_F_COPY_ISSUER 123 -# define X509V3_F_DO_DIRNAME 144 -# define X509V3_F_DO_EXT_I2D 135 -# define X509V3_F_DO_EXT_NCONF 151 -# define X509V3_F_GNAMES_FROM_SECTNAME 156 -# define X509V3_F_I2S_ASN1_ENUMERATED 121 -# define X509V3_F_I2S_ASN1_IA5STRING 149 -# define X509V3_F_I2S_ASN1_INTEGER 120 -# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 -# define X509V3_F_NOTICE_SECTION 132 -# define X509V3_F_NREF_NOS 133 -# define X509V3_F_POLICY_SECTION 131 -# define X509V3_F_PROCESS_PCI_VALUE 150 -# define X509V3_F_R2I_CERTPOL 130 -# define X509V3_F_R2I_PCI 155 -# define X509V3_F_S2I_ASN1_IA5STRING 100 -# define X509V3_F_S2I_ASN1_INTEGER 108 -# define X509V3_F_S2I_ASN1_OCTET_STRING 112 -# define X509V3_F_S2I_SKEY_ID 115 -# define X509V3_F_SET_DIST_POINT_NAME 158 -# define X509V3_F_SXNET_ADD_ID_ASC 125 -# define X509V3_F_SXNET_ADD_ID_INTEGER 126 -# define X509V3_F_SXNET_ADD_ID_ULONG 127 -# define X509V3_F_SXNET_GET_ID_ASC 128 -# define X509V3_F_SXNET_GET_ID_ULONG 129 -# define X509V3_F_V2I_ASIDENTIFIERS 163 -# define X509V3_F_V2I_ASN1_BIT_STRING 101 -# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 -# define X509V3_F_V2I_AUTHORITY_KEYID 119 -# define X509V3_F_V2I_BASIC_CONSTRAINTS 102 -# define X509V3_F_V2I_CRLD 134 -# define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 -# define X509V3_F_V2I_GENERAL_NAMES 118 -# define X509V3_F_V2I_GENERAL_NAME_EX 117 -# define X509V3_F_V2I_IDP 157 -# define X509V3_F_V2I_IPADDRBLOCKS 159 -# define X509V3_F_V2I_ISSUER_ALT 153 -# define X509V3_F_V2I_NAME_CONSTRAINTS 147 -# define X509V3_F_V2I_POLICY_CONSTRAINTS 146 -# define X509V3_F_V2I_POLICY_MAPPINGS 145 -# define X509V3_F_V2I_SUBJECT_ALT 154 -# define X509V3_F_V2I_TLS_FEATURE 165 -# define X509V3_F_V3_GENERIC_EXTENSION 116 -# define X509V3_F_X509V3_ADD1_I2D 140 -# define X509V3_F_X509V3_ADD_VALUE 105 -# define X509V3_F_X509V3_EXT_ADD 104 -# define X509V3_F_X509V3_EXT_ADD_ALIAS 106 -# define X509V3_F_X509V3_EXT_I2D 136 -# define X509V3_F_X509V3_EXT_NCONF 152 -# define X509V3_F_X509V3_GET_SECTION 142 -# define X509V3_F_X509V3_GET_STRING 143 -# define X509V3_F_X509V3_GET_VALUE_BOOL 110 -# define X509V3_F_X509V3_PARSE_LIST 109 -# define X509V3_F_X509_PURPOSE_ADD 137 -# define X509V3_F_X509_PURPOSE_SET 141 - -/* Reason codes. */ -# define X509V3_R_BAD_IP_ADDRESS 118 -# define X509V3_R_BAD_OBJECT 119 -# define X509V3_R_BN_DEC2BN_ERROR 100 -# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 -# define X509V3_R_DIRNAME_ERROR 149 -# define X509V3_R_DISTPOINT_ALREADY_SET 160 -# define X509V3_R_DUPLICATE_ZONE_ID 133 -# define X509V3_R_ERROR_CONVERTING_ZONE 131 -# define X509V3_R_ERROR_CREATING_EXTENSION 144 -# define X509V3_R_ERROR_IN_EXTENSION 128 -# define X509V3_R_EXPECTED_A_SECTION_NAME 137 -# define X509V3_R_EXTENSION_EXISTS 145 -# define X509V3_R_EXTENSION_NAME_ERROR 115 -# define X509V3_R_EXTENSION_NOT_FOUND 102 -# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 -# define X509V3_R_EXTENSION_VALUE_ERROR 116 -# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 -# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 -# define X509V3_R_INVALID_ASNUMBER 162 -# define X509V3_R_INVALID_ASRANGE 163 -# define X509V3_R_INVALID_BOOLEAN_STRING 104 -# define X509V3_R_INVALID_EXTENSION_STRING 105 -# define X509V3_R_INVALID_INHERITANCE 165 -# define X509V3_R_INVALID_IPADDRESS 166 -# define X509V3_R_INVALID_MULTIPLE_RDNS 161 -# define X509V3_R_INVALID_NAME 106 -# define X509V3_R_INVALID_NULL_ARGUMENT 107 -# define X509V3_R_INVALID_NULL_NAME 108 -# define X509V3_R_INVALID_NULL_VALUE 109 -# define X509V3_R_INVALID_NUMBER 140 -# define X509V3_R_INVALID_NUMBERS 141 -# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 -# define X509V3_R_INVALID_OPTION 138 -# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 -# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 -# define X509V3_R_INVALID_PURPOSE 146 -# define X509V3_R_INVALID_SAFI 164 -# define X509V3_R_INVALID_SECTION 135 -# define X509V3_R_INVALID_SYNTAX 143 -# define X509V3_R_ISSUER_DECODE_ERROR 126 -# define X509V3_R_MISSING_VALUE 124 -# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 -# define X509V3_R_NO_CONFIG_DATABASE 136 -# define X509V3_R_NO_ISSUER_CERTIFICATE 121 -# define X509V3_R_NO_ISSUER_DETAILS 127 -# define X509V3_R_NO_POLICY_IDENTIFIER 139 -# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 -# define X509V3_R_NO_PUBLIC_KEY 114 -# define X509V3_R_NO_SUBJECT_DETAILS 125 -# define X509V3_R_OPERATION_NOT_DEFINED 148 -# define X509V3_R_OTHERNAME_ERROR 147 -# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 -# define X509V3_R_POLICY_PATH_LENGTH 156 -# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 -# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 -# define X509V3_R_SECTION_NOT_FOUND 150 -# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 -# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 -# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 -# define X509V3_R_UNKNOWN_EXTENSION 129 -# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 -# define X509V3_R_UNKNOWN_OPTION 120 -# define X509V3_R_UNSUPPORTED_OPTION 117 -# define X509V3_R_UNSUPPORTED_TYPE 167 -# define X509V3_R_USER_TOO_LONG 132 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/arm64-v8a/libcrypto.a b/Android/app/libs/arm64-v8a/libcrypto.a deleted file mode 100644 index 6f890f91ebd4f5e088b1659537f8239643f05117..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4380770 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

Z?!9rf6w}lbvNyMGF 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

C)otjC+nb zIkTu2kEK;x1@E1!(y)muqnOcv^74b9UxPNvN@=UGpBy=}6ZJLuSJGCAeQ;YPQ-^O# zPPT2;hg@5AUNmpu{Aizn+CN*jw~@yD?U0lD-HNonigNK|?9p}#W#e7EL$}+u^>EkL z5r287OWH!dJMzosNAqVfzo{?gJ@dWl&7Ml;IrEeA^NY_uFpm({=MnSgq=fT%WZvq5KRxq^_JU>3vRoJ`s7)XY?+woVzjo8W{$Gm>CH`xSg}E~0c(D%p`pUYfd5#9p z^Q9dHTHj`5Td)#yjC^08c9J%dcJN);NA_8}(0;rIG*}n5e5LJU#M&N+y0+l{=!i4z z7n;ib(UE6hcRANi1D)y*uo^* zEiAL|!G4xlJ9lZ@YRn^C9seaiZEdW=JVp4!wZ#W;?$u?r4`WZpdYo^;dER}O-_H3d zm>*C^S}Yp8n{~*QZHHlOWOqB-Lv}78&hw*}&5FhnU0=uf8#puEOZaw+Z$9}h+$hV7 zV@M}JkG5c040Oy(@*yq5M2E7!0y~HA+ni%{K)&f>-`O)ANUQ7bxp@e%uV*+n#Lut6 z`@HNAx5tKY{>U-LgSKC0eV^=pt!uj#*IkZ&XaVYKw2Zo7n0C1Aouh}C*~57#?8kaJ zIL{)9J{|Kd`CIe_@eJ+9Ioy*yrSiqiL&2PusQb>0u~n;^81AXdcIf3tqL=R@Ebl)^ z-)`LL2buY-vaS^7#YA`Bi|^tXYbsj@KAg|OGTMdtP#l9|`q)N(5@iT`q0QcRk(oUV zdACl+lcr%lDr{33=5yKcq?Kz;%aoyJ_SG0qS|{U4Y=62o73=h{vd^LZt&_1N^5%YC z>oAVQHH&Dolf|ZG&k!^F1^gI)4`?_Bl|&))?;C@`MXRl;?!er(5QxQ`g$;eLE= z<(e4-nI5KfCEoGxpbdukh_>(Zy7cdvX4+$>nd3%`xBfx1d>7JjFWU*AI~g60cLm=m zL(BHzdLw?Mi=a)&Ja%n8*DrNzsJXENwna(j+N2y$;~cE)IZ0lA(B*TSyFEn{z1ap{oz%-5a-)NxyHYH^%!vOp$p2KmP5)uNfd# zg6=8AkALMj)1U3mn{U1V$K7}H@t@c~!Hlb3x_EI7wwD;UWNBT^xEpW%!qqG5s;X-l zcgTUZhRHMk)syRS%<$>CM+_a6Tt^I?g2w<0gz@PUBsYI5pM>W`1hnC^zGZs>=o?7i z15fAuw5NyA-zxNe?H<1$3FnpQZ{@hP$3pzig+BnC@$MB>cz&!bx#+{@=R6TY|38I) z!exXREb;s>g#L)o-zJU#e$9##g4c=D=)>q3@xa(>PC4HR!TTZ~a;58%5WFA+M>{1a zpKC(!Plw>21#W#;WL*QMhsT|QpB8*F?(HETW$pA6H_e1|9@K6nAn>yw?9MKnc9Q)# zYa$9~m@HYk0y8?Sy9w?%-@=AGXVMCR72Nk^<-&VwNX}hTvU!sPR$yM$WWTG46F9T0 zOx8v#q_*LExpH<#j-{NuyGv#^2v-eh zL_&J)tFuYrLsYu7zq-bc3VqNw=6S(`zA@VWe5m3-xu3hCJR0}=I|T6sLeF$*`VPg1 z{uch|-``!4kH-CaxIuiXqSyI&r^0o#XFNU5kvrFhHr^bDu59%#0N(tgK6|Ut>Dm+V{A^5`z*L+$-@Iwlh zORM*n6|VWb9fA)MM>nQR^Lbd|nony8{!9q|dZD;2Kety8$xkKR8*r+1g4*Z3)gYdQUXe?j@zh|t6(=~fS$6t3mj8-kx! zxK7tp2~7UFJSj*Z^!L0rqTAOv5daIK%T!nHnkD_rwG zs&L6_E63Xk*ZEs6H5gEG=5movv28-mldw*-&VM$FOWhXpGA+nL?VTMgYuHw3~0Sorv zS$2pe@YBapDa@T>Y}ou^JktF7!1-m#K)jwedFW#-Zpbq@;&8swbLF_E^FeWI33@*hj&X7=t8G}<={kHzm;xVD1l_pp6AAh`m!+{rJWO;m$710x z-a@)awQ2D*9TD#Tz;B6IhYHV$GaSYa%Q%Lp$I!hm9QpCvwf~;ZF#Ns=pU6tA5ncI8 zbm$rQieP-+@s;OixbE7o5zaoxw+ue7!k8_er?Bqaag0UBG1i@gA5^>_&hROWV_mN# z{1kd6wh=l3qgr^%xS{)b}`{|Stxre{Q3-t9{h8fjwK zqB!QGnU8f&$9L>je4Bmx)d=%)xit(Y6wMLiyn?*lD1Z|wS5$2`A>f$@4h&UqO7 zXWWdJvNqy-FXj09>D9-r+=KFtRG7Rb>XhGt@tx`jzgN74G3@^f=MmuZIL>ERe=odT z;#(KX8q4P7K)D1zeCOd>ey&`8Tgv5$;z*`k8q5!L^0_ip(eBD7!(zPqoNqg4SO3(0 z2O!ViLbi^BZcR3(fjUnN>n)opTnEeMJF0Awmd_g`FFvSj#xF)0h5u~f#b)`12>Ue3 zXMCG!!Cu&BN>D~SD&P-$9sE_{8;-`r>=U@g_pGw%Lri($7_( ze3zQji0^o7;Y*W*4^3w@zo`iK8^LF@iPRdbJ$Vz#aUuL_I`A#<4*05VSr=`Y5*yhx z*^F!|f;^E}L1!WS#22AH%mY7O!-mg_MX+`p>JH;z-Ra=>*rV$nrJi=9yzh-gTlU;d zKP=P->sL9l?fdu!y=QHHTg@nZr%XM+;Y;fdZKy$dTOUjw|N7d0-mnh5SjKHxdOvym z%RR~C+h^hV=TS#cSIB#2ee(Ed{2EhVlKM2Vjp1y)1MPO!C)PcLA-$_hy)=99Y#-=$ zgYNr6!?2oeA87D8YW_ZXf!6c7=W^IZ*cE=0`VGDtqUqAiy+5Kcd~QL-3okF$y0V&|4bNJK0CHO#*E^HthvhU-Lh(zS0MM9_nim<_%Oq zhb&{h-hP(l7Ud3kbBuf`!wtZAJp<&V(b2Y<(&pWY6Wm*qRAN8vBKpTMfA>JY8 z$ff4e^|XmautRYZUyu7Xevdr6`tSd+E%-BM3;6vz>pk^ni7s2Gl|9%*djR?fY&3PS z4K(qfJxIA{VfMiJZvP@<6aI^7N4l9l@}y1ZDCo5b@sH)U3EcaH?<>-3n~?l~_m#H^ zJ@Bdj++}!g4aa-yM^X3QS|{%<|E&}6r{4EgUhjJgVVQr0W|VzzJzkyY+Wn(g%hPu! zy3#XZE&Jvsx_;B0JpSu7$>XO{@1AHF(f0BB(PiwK8AVA3gi! zw)f6{rR}@m*@}37fH=Po-prHleK;Z@(R35PmS;y+88w=P_3)V+W%-?I7Ah>seRcjh3&k zi{`I?H;Q>GXxm{vM%M{^^RGg?(If8eZw}UU^ zo_6pGoY^k<1kTQ`#g$!)+Is(C?b?sQ>+I^?;dZU0x9xr2ZJe#q@HS4uJ@Yp0-1hf# z8GB~iI2A5kEKAJKRB^98YsWQp$b6LNXLK8fw0wR5I^*;6ZR5m;qOCIo?eY;g4@a8^ z>vsRFNZLHHh->rwD7(!QxeWVkq0N(kzcChLDxZcn&p%y`Hcv@!n}_eEV4DXWc4_mN zOq*ve+CLp=^CZyb*&2(X&10Ir06)_BWw43SQJvHBoh>cK^E93pfd_hyO~fn2mVOTJ zLi)??MjxT|n~8l%w5vwLjhWB$ci>6hoC`ub)rfZhWn56QHK8xXfn72n;OZ!9{N*;UQ16I+V z*Rt*P2TXGnO`)Y9~>mTQ^vMo9sVIttgw&*ZizY~j>eOSF-Wte(WTP>px_>)95eqc~Kn;{9#= zu^)#&YVlR{6+|CX`myM1Uh-$skNqFmXMy&35BSiI$E6>OezLXc?_%6$3);vdv0uY= z*oz?oc}_$x>!eRV`>|1^m)E)au_@J$rEOzfO2dY*zP7=JlpyTmur;$rw{KWq`qK^H zfj#(DDQqv=SgmN&94`IIhCR0@x*jimc0=2zOxHI`VSi~$uQ;^fiR)k&-oN>{K{)#8 zbIuj(?v5Fzi}m608)2W74VYgH-~V{xk@?Ui%M{Bg<$>HSl%pcmA9dgR2bv=dsJE-^ z7!T*(o;$|l`;5it)6GMlv3M}fsJF%WIHTScqkhdpJ{A|?jC?GLqdp^UmJeT_zk>Qe z-l%h#zU3EzQT|Gt--3_hTAZg`>H3mW(3hNozGRerN$^{n=}TT}>+j!!mhWtq5&Eto zoz3{QaE_wCHtm6X^x3kWqrH=Lk2=JA?g_wm?^)PLj&tIBO*8wPE732c-l@}eu6JeQ zbYql${q*EP_R*bgJq^b&`P`U97x^dGvLEPZQi{)iARS5DraJf8zw?=`v*$kRaJo45 zznmUSj~ws&i@^Qa0PgRx?t9jO^w|S_@63@!fEzwQ`N|x@I2l%l$q?egKht4!T;$7V zUOw{CadAAI&$QfnjGf;g`0PCfltX`)pi7c}hD&>pOv~fL=`){uIfL?PI)6AkP_n}ScrnRr|>-ShvP;L8MmNa+7u za9^mCf-e?4DTO^D_}2ta3qD!!ZwcNZ_;|s2ie+j>FX;5+YfLZxcesowdh{pk@s!~H z-k+Zn+{fqfR|NOz_xO8)CvoQC@r#hPjCYlTGkBTc%>n#+!FL4kFA3frz|r=#{9g>< zyp3gQq&$>UEK}oq@rS_2`iKjJadvxb0zSBxEOYgE2p+bV!rl=2_7MC?2!1RCe&nNULvGcRO)gpj z`89TrXq!szMnTnM!U6WQSWsyC#06!XH!g8b1_*zbH86 z*Kgep!M$&?k3!F78RJ2m_4=l4oA@IE`^1BCmbpv&zf$mEymts5j2B}l_8=b}?_q@( zDgG}i{yN_~6n~Asq4*RlKAj=-{l)H69$g;%o>#&0p!d_({Plj?x;(5={B?PlFYhPD zJ66fru5g|2Z-(Ic(gY3abFARp2VU#h?->%L_j8XX2k8C!vFGHk@DJv1U5Gq>kC7n# zDMhc#Tc^Txc^fQ+`y6>f@TB0uc-II{J!n1qy*{Wnjc*is>PO=*Dn3OjA5RM&EI)4w zPI+{>?N)qrx$=8}1nJ>NVh_r%%WXpNV7#{}dd+{C!gaZAR`_U@u9p>lg~G8OK}Mb{ z6|VQt(0E)rsX_hE55dz4*X8;75IlcCuRNOG&yfn&ip zf(Of|pUV|2=SLMEU2b0%JV^hBqSy6eur%a@@x}#bdNu!q!gak!DqPo#hs5zdSgtk+ z9@OVkA^2dK=n-a140 z=Sc@ENWV;Q>Ot3wMuqEo@tEL2dHkHPApS;3yo05m7}Wnr!GrZ;jNrj~u|VjR(y21-4sH%~}^$U}UrvRBV2 zT)!9E1rO%SVZnpt;YGzqm*<4^ql4uHPDz=1q{~UG;6Xj?5Im@VKMoM2-yK5l#|MJ+ zheGK6xIvKq`4Dgkh0@1J|zk4Nta@WCLbJ=z1f zAE)-?qMnZ*rxx;$e2OC^RF$PGGE49uj$NW>ch~!^#@~m{Ia?-1a-_VU*sNeY{UxB! z54M4cOY-HZF>eIo^$$p^586cX{HWn4AS`)C@zckf68~W7H~MGtdh@sD)40kdzn=j6 zW`@#T`1E^t3N9E$!UJ-CXrjCD;i*4%aeR2MzuCYT|9JfL@uo}|9iu^9d;R(ImldW- zN9u{F>VXgEA->Lny5}<={;Qr)&cX1!59*$z4@vxf4IDNbwTrnv=@TUuustLDCSRT8u*ozX}WlTC!f;?M6d0~`FM8SG|Y9f zYp7ujv9}Rt7yQnDhxj?y0ZD?7DE;v=ez>()V_m)B7jTVE@nykUyKiHidQ_`s_))g( z9)Ni%eG@Gx`}v!r!_K6!PF@1(ZHOlBXBe!x(L%mh-|rtH@TD6CpC0%_4=DmY*CZ=~ z?C`;3t7&7rr>FcK%yIjd3(an>6GqIRxmLEncI(x<=U6AOEe;*&`F&}ucgK71K1Lqx z1I;8Kujg^!Fw(enP&t24&mHVt-}5Kd4=&d;=HuDb?m5%>Mcgy4!dvo}@50^+#P0Rj z%nO$f66|k0Rytt$qIVqK_dK?-|MKVFcGwFZ%j>s%tYE+M*wntuAAZZx4Ts;9jkm7P z@;9(%ALG5&W4rQ}-y+!Gcddt7tuZ=nq^-1K8m`VQ&X|&H#SIC>!cI`ks^Y`iB_mpEiZMj=lm1~8& zc&sc~^AqW`{%*d^()W#N|2)p+cn06_5vQ;wXUyps>%Y7GgIL$GR6z5)mzgfCdEJ8b zJ5jzPJO3H=l)h>7=fm3N*rqZyr^JQbn2wn8SAT!!w6WRiF?*Xt`-6Rsus?=di~d6F-Pj@P z9QyUhvHwI{9QM`Uvs|R3W_M(&tLF*m8n2sXtfkPr8vc0S8)s%ehV!a^37amKS*$~B z%NA+f{qQV3z?XOu*TwX4fF{H?JZsa+vc`QDn7@hldo0fb@djsi&hp;v*U%8l`$f^J z^j^kE+K%p?^17=`3)%u!-#f7n4Q=ISte@I}_k_2fq^0eozF$Iqb3IP_FavLn;D>Vy zY-vly$DJME+LH7|WEp^eFY-FCjd{Q2O710p2T?WEqfTnV2;YdeSG z^K5U~fISzTIDf*RPW-x-u!+Zf9mW12s56c}ZuP?bOt40!q(5bKGpy}Cq~Z=?U}@VE`9xmBjBXx zM3-E*obzU;!ESpWPW`TAx!i{N1FS=wC%`pQe~))N*8Fa}1#^<7(Y9la?rE^+k3na* zU_H)hu;b6*8sA_lr@?-|jBBjjS2+!KyBpW|wp2L{_PPM}_c^3#8tn8`T+?rO8tn69 zxE{o7*yV0q??QQ)CiZwb?DN$2)TkcV4br2{)SLv*EtjO`9K;@=)hG+4I5TgNA9K)b z&%YDrxmXAFJCyz?T&e;LYuuCT2ttgqMF?w?)l=JmL;xAqvzUh%~)zBJ||bm0BZ zxLKZHd+oI^^Q^zgi_LD>2f9r(oA|#x%J3%7{GulsScOI?yOm4;ulk1LINAO4#4AcbdIh^Mp#$^tQ+Z|*zJpw{4>CG?MIRN{?=Uf`tEtHcRP)|w6xLyVAbnv3huri|j%|LzS z^Zn6++7#aLTd?je-%V()|8Mr*1-_;$?H}LgoZK&RIk{itoSZ~%RWGfgMq6VfE`tf92Cpb4|L?Q+S|`it z*)!9=@B9D%{-1Z&Cr|d?-~Fs-UH3Zc@~mh1P~K49Qoiy0CEm@5XX6+;M-26LiMfUU z29@6KN^OFUyM%n*fcH3q0Bwj;PIc%DGy&Uy_jFDP$!Wvye{1(W5QNF;f zdF#GWFiJc5mGDgWNVnWp*WH9H=-g|aq-9j*&5$)8?QZK|vHxlm!bRT%`v7Q9{LYI# zP=|3=K%qo^T)!>(@bfnG@acR6vbnqgI`xTA#)evM|HeO{%uBi3ct;z*AQofX^47nAGW^!l_eOCypnp$t$#%Ozl8!bZow?ZeVpv+YhT=97`9pr1 zT%;3?*!N8NPidn5KFKZtZz<{^}ybZAX!o&8#*`PMrWHe}<> zj*f!+T_Y&IWM6~gK=GqE{2Fp8-zn}?1|LG+$B?xV;p9W!eo5C++=P8KW7iDbq~Q zOx4WL%+bu(EY!TNS*BU7Y1VAiyrrpwS}>vD7hbR%`6bz^iTy2-j~ zU5#$0u0gj%w@TNf+pOEB+o5aG9o8MyozR`po!4E~-O}CFJ{aO1f_P6aH*gHD7J9s(xJA^ry9O4`j9C94;90oWH zav1C|++n1{7>5dn*$(p^7C0<)Sm)5>(Co0yp~YdZ!y$)H9ZorX<#68Nmcu=V2M&)M zoE`O!VUAIb8IDDc#g0Q9hdPdQ9OYQ%IN7nrakgWFiJC`_DIafQ+bYAGZ*m;TbTIXix&Cc7L4?BP5e9^hX`KI$-=X=hNob@hYE=HFm zmn@eYmq9M0T*_R^T_(6pb(!HZ$7Q}ty~{$E2AAb7t6WyQtasV$vejjm%RZL_F2`NI za=Gks#pQ;}EtlIaI#(}OU)Nw)lWUA?AJ<&h0j@(`N4bu5t#F;{I>&Xf>+7z|U01uV zb=~dS;(E~asOxdpbFS^K*Ie(qK5%t(b9M7_i*!qHOLEI|8{<~uR^~R@t;TJp+XA=6 zZp++Ox~+5D;kL`I#ci+KVYiEJm)$ztZn@oad*G&V*SUMR>)pfLjqY*oecW^0bKQry zk94nepY2}nzR-PanE9${uTbZ11tVM@x@`Jx=sE z-Q#SJ8$E9JxZlIk!_~vx!`~y)BgP}iqrhW;$6${k9>YCGdyMgz;8Eo<-(#gmlSi}1 zCXa0%J3MxI?DaU|amwQ>k82(`Jsx;G^3ZvDc!qfzJtIBiJhMD=JaavVdRBVYc+U2m z@hc<(}(2n>{yrzUR5!bFb$C&m*2!Ja2j4_I%`N@8#;{>lNkI$1BUL$ZLSt zXs;5la<59Ssb2M73%p+UTI<#1wb5&n*H*8CUWdF+c%AXO;&s#OuGa%EckfW|FmIE0 zjCY)Ol6Qu8p7#Ln;oc?Q)!sGUv%TkeFY#XG{hs#@?_J(4-ut}|cz^1B!u!1UBX38& zyFO4KrSGH9&==^7^n>(6^rQ4+^%L}!`pNn^`g;8$eS?0Pez|^~e!c!Z{a*b+{b~JI z`t$k@{SEzX{e69xKG?_Tli-u$lkHRFGuUUePnFM9pK6~OKCk<%_F3=K$}T$ukQihL%yH-p7Fis>*(j~=i#UK^Ysh#3-*ijOYzI{%keAn8{#+8uhMU_ z-&DUDe#`w<`K|Zc?DwAEF28+#2mOxwo$~w2@2p?D-(|lJzZ-t{{Ow}tPNNfuqj|$z>a{HfCB-C15N~-3HU1D ze8A;^j)1!Xj{Px*}-|i1A>PHj|?6iToGIqToXJ$ zctP;8;B~>9g7*g>3O*5hCitu1o5A;jokR2?fgw>LaUp#|QbKYUp^5(VpjeUhH|Z=e?efdTPSl z!#u)*!?MB#g%yVl4Vw@)BWzCC!mwpwtHM@?tqa>2_FmYou)SfY!rH^Ggmr}74(kf@ zG6Wk!4N-;|LmxwmVSr(2)l#&gEY#%sn~ z#=FJ`MqRjbxJP(!xG_93JT5#bJS)67d`NhC_=ND9@EPIr!xx4x3SSn!E_{7>bNKG? zec@-r+rux1-w3}Kt}{8CTuo7?7*m2N#gt|$G7U8iH;p!xo2pC;OiN5FO`A;HOxsQS zO@~ZJOs7rfOczZzO}9<=P4*G45&jW@5it=t5qS{>5rZR2A|^ysMa+(v7coC#VZ_>q zrik|vXSky>9lp+si*HFe)u7 zBWiHe@TiedB~evTlcQ>)W=74AS{b!AYF*T(sQ03FM72a6h&mK?BI;t)%_v>8W3+p; zJ~}u$EZP{I6rB^D8$Bp`X!MxqvC(DG6QXBC*GI34ULUst76y1w#4p@Jrw(C?77&B zu^q9uVjslnpdoSv}y!ZOv+j{Tly}S3( z-p6~N?cLt{V()9cZ}#r$?bs)@PgtMqJ_UUS^%>l!tWQOs>OPD6tn1U%XLFw&eRlOZ z)aP)YQ+>|&(ZuWG9pl~O1LMQuBjfwTr^IK(XT|5nkBT1?KQ(@K{QUTZ@yp{^#jlHR zj^7x+J$`rmf%t>*pT?hxzY^aOZ=c|t;F{o-5S0*0AWZz`}ytMnZ%f{hygT_w^3mku$tRMpCErNCoqRvp zF(oo3E+ru)EhR5yK+2eul9UN4RVg(ovs31$EJ$feX-?Ue(vor@)Qr@k)RC#9Qp-~-Qzxg^r#7T6OI?+^E_Gw-d#QUBG}UrppQfKk zznFe4{a(5zLzm&05uA~mQIs(#V@Sr>jIxXw8S^t<&uGrroUt|INXF@m^BK1?ZfD%f zu+MbOG-jq`re)@34#+Id9G*EUvm~=3b82RF=Df@$nX5B5W$w;AlzAlcc;@NMGnwZy z+cPg_c4ca^LbFU+ky$ZW30XN=d0B(A#$;7x&CZ&awIHh@YgyLHthHH9S(~!n%i58( zH*0^^r&;H+E@yRQ-OPHBrR%Hj>)SW1Z&cs7zDa$H`ws0prf+%Q34JH`o!xg)-;I4Y z_ubw1)4r$sw)ef^|99*+tpIvqxu_WLIa;$*#{{oV_-C zefGxeP1)PBcW1X`AIv_QeIolzc6;{4?7P`r*_wXt{k;15_Y3P6(=V-GLBApWhW8uO zucBX7zv_Mq`z`Lbs^6x5yZY_#cevk)e&_m~?{}-;y?(kJ_ng3-;GD1=V@{u(l$?y5 z+?;}(sW~+{Gje9<%*k1pvn*#-&bpkfIq&7{%GsN9Am>QV@toT^_Whmvd-V6}AKKs4 zKc;^||CIiD{YUjL?_be>X8-#Bi~2Y9Z|T3U|Nj05`yc9mr2m=zXZyGJztaC^|E~V7 zx$e0cx!Jinxp}#xb4zk7awp`@&YhRrkh?5*TkihcPjgS@p3A+K+mU-K_fc-J*=UY5 z$C;DNx#j|Mk$J4S%sjz7*}TZS%-n3=Y~F6(ZQf@-Yd&x8FyF&8opYXRo>!i4o-r>a zFD)-SFE?*=UPWG2-psr?dCT**=Izegm$yIfXx^2)n|ZhM?&sO(JLU)Ghvl2{WAYR7 z3-X8OkIWyFUzT5!KQDhl{=)pl`OETG<*&=%m47JzX#T1EbNLtZZ{<4{coc*cL>5F9 zq!eTnWEBi47*$YN&`|Jt!SaHQ1)B@rE7(=Aui$XO@q+e(D+L_|HwtbQ+%Ir0bS?BR zG!@1aW*6ob78Mp34lNvBIJ&T+aBAU#!X<@Gg&PaE7H%utSGd3MNa2~nvxWBy9~9ab zc@^o4;);@r@`?r(4KEs5R8};zXkO9$q9sMmMcazrE81IhxQJ95X+51(vS?y}_B@7x zNFR)J_2NLJ>yiedCFLAY0cZed5NHT!IA}De3{(M{0IC8_233RRgBE}mgBn09L90Nt zudo@k2}BFJ+dw-&yFmLv2SA5Fhe4-6=RoH{7eSXn*FZNxw?Owm4?r3X_V9w-K^`E| zi3$Xf4wMlT35o-yfJpx-3q<<{3qZvn82ppQfX0H#KodZfpsAo4pxK}~p!uMMphck9 zLCZkPL90Q{pp78f&$k`43$z=w7jyu01oSEBIOr6J_TROGu7El~H$b;R_dt(8&X}Nd z1$ltHK)#?*kO>q8>H|surGTMC=6lgT41XK>9y>XSGD$oqjOi(>& z0ca8Ebr9``TM1eVY65KpZ3S%y?Etla_JJ^8CmjME0UZaO0i6Y%16>4N0o?@M1z{pp z!W@^R(Mgg$$Q7gq1%g6BVW1dL94HBt2Fd_sgK|IvK!ZTTK_fw7pMhv0CX616m$Y~26PT|9&{Ph0lEpg z1;U)Y^Z@h-q{C#RBgh%#4)Op6f`UPjpeRruP!cEulm*HK6@ZFBgFr(-BSB+9WuS6U zC8!282ZXs^sUEZtv3Dmv>db&v>LP?v$W?bQE+PbOLl5gmo9` z9Ow$@8VEK@rQ4tfAPp8X?Lm$pcaRsz9~1^Mfnq>$paf6`COqS@4WQRS%Rs9@>p<&48$p{vTS2=(dqD?5M?jx~ zj)P8t&Vt%Omq8t%8=zaDd!YNEE|5JGuv|eNAYYI_C=_G_nLtsX7*GlbXLL$=pd!!! z&`{8D&}h(DPzeZg@KPmcDySMX2Q&|~0JI3S60{n$7PKDJ1lkDN2HFAI4cZ6V4>|}s z0y+vh0XhRZ3pxjC2VDVO1KkAO2HgeS2iZHL?t#i`YAUAJR!*H_c($x^QpNbbhH;g( zHHQ8MSwoDD+N!ObHmR~=I=0c))*$ZFXHTo0nlNq({+Je7Iezw#*n)z-hG-n=7h_1p z_+=J!$daH;mYiaUo;JM#<{T=@YARwRDZXa*;~gM ziz0iYTuArQ7G9=;Q$NlY|4bG9Wfgph3Qqk%Tk@M#@ZYH5)L*nE=co!!#eXEQ{*zO_E2Ym%I6sH7 zQGP2)jVf~9VRE9`r!*eVeA%QK6(v)r$Yv6ll?3ok9Y3Dl zl0^k>Ap8VL;zLNH_$d`L z8TvxS^r`F?zlSAA6Fp6@nOOO(d}oo$yjY$Y=d_xN8RMsxOfQ=rZ<>iCH`sJ22!-qdnGQLti<8#_{s}M=d_{!($g1n~-5=fT`6;mpvm(}vP zA;Lw&hLud4fij;yed=_nVA$xVMhq!=0aasaIeAd>HHp9ANuDHUcar=)eIox?#@AxK z{6fHKeu2BI?1skU^c&0F9d@G!F8*3}GMvWoB5q*cGs)3&A-EO_cn<-8TEKk-yi~w_ z1swWnvLpE-K1&6EO~9egYH^}X2!9JIN$(5%d|w5<{=I-xUxPa*eD~xiK5UzX{2Zc! zC#vAo4w18#^Rx;+Nd>P{!O1A6E&1=L;QSnA>-c=G!f(g=H*^jb^k*$jv`4uTCk|X{wufVeTGx~#d`ROfQ$L?rGSg=h8=4hNltH`X}J0bcpm{b2zb1JCknWj z56=j=nE$m5r~GjdjEz3X9(-pQGO-~;U)@rvVe={BBuyAx8Y%3e?~Al*7bysCn;PppRor;c7%)a-xYAN zyyjw#fgCRvo}b+2hjl)$VEiOMP4O!K-=iYu6NX#M`CLWL9ThnbRpi)VZiF1gCtbOf z|9c9!*v^LtxL6+|1YE2SsSLL+mwpVlE|x ztQGLbeqRLqv3wJ7k-tp^7j3kN;Tl|(NL%M~1jDWKxi`bD^Py0{V}*Pu6>zbgsTFXs zoq0{b#q>4`xY$0tFW^~1xUB*%wi`Zdpil7^+n;C^e4>Dh>3UVbMLDekF8=Nmx+{^R za7BEnfQ#{bOTfkc@J<02`CA2Cl>eoGi}`k41sBif7QYuEYk$zK0ltv*$Hq7$$V~s> z?8Hh*&obKmkNU!dnY$tRZYfKw6H52TyqA$r;#{>NfcozZH7*c_jVsw&|-pb*G=FV<2A8z1S8J zZvbTsT(okr{OA7obtvBOdkYh8%*?-t(Y-aV7clF*BR=lGj2;AM?Vp~l^N!fxVc}0> z{YLuiDNC)(pPF@B;RjH`!qr*{w+>&Kewt!A$n~G?Y0u0`Pc+ExU*FR%8RV$Q|IFSAueZ}n1)NteBZ{lU_tkm2(A1Wp(l;rtik!{B~rnYX!x z_P-nTQd$}O811C$LYxI+0#Bvccr@nLyi?^kb0x+oov_0`7YE2J)0*$w)S0kiMd3I9P1?;gQ z8H)dDr${czu-DkfLU+I-<1&*G!DPJim<)SC#>7(;ACh6GvHOAXDE)7U$J74}@p$UL zAsz$&>+ztxM4n!j>|-lXCWlb2S3(L;T}7D~QLa=bn^2yPky2*U#4=W{PFu|}M3tP1SKp?9c^Q2g7`~Mv45NG9 zuyCikVHdHN?IQ(WAz`l*?Mb42%FsKI&+~X}FK8U?p;f*G{4lt-AA41p4!X0CCqG}p8?1!pdm|7^i93D=qzwR&l;gT6+qEk>(STrhjv^ctK) z1-*`CGhApdy#JO9h)<25AS8S}G_1b9MR|b5|B)4cm*(Uuyi@yi@dzVXlJq zg>BI~(|$ZRk-+GFRBeZzU1#eM&e<|uofDgQJq{|-V%A>u%L`zZ|CZ%#64|CF^{l1aFh?H8qR zD9_cxq4?Z^A35&WTiA$lzT+S*qqyIPodC42KKpyT)IofMvG0)h3_9t481~p@nXsP@ zd#ZVwG&$Q(hU)^3)|YISc*j)UcgWHQ6?(bCu5#JgJx7KH2(QZRTCrte`kH zI!S352P!rWaISM>xzs}Y?7+V>5NF7IJh8&M0T7D)u;F zQvv(v^&JOLMuCVg<%fj4D23Vt$tT&UcfAv-#aK*`abJf*_vIIvZXw3McLAKphel%KUbQGZ#Gs! z*v3|AXl?|~T!t-#zOcdKrwejD1OIpN8|RBF?Q_?_AH^kaX3ybmC|4@O>nK+v%C)ga zce%PjMk(4NJ^0ONdsctgx1nIZVJ&ZC%IB^rF2!%Ta*_&?rUwgYRzy&SA@>cX~U01I4rELt_KkD4_3*;>Eu+iW}Jkpm6bRrqVmY zXzy<$%2SkEhJCU8eG~c&*vlCU{kHoW@a^&bZkcnt12|i{BM)Vbz0N1wkT<1rIV<7V zDrfEw^Rde^5sxOhe3`wO|Lodzla()Y(6*RSzVu9Sp);2(wtmnrqTd2KGn~Fv`cBQ* z2OHKZRhJ@vc>7CfE=7Al?;9}`Hy}K!cijF@J>p9k&dqAchYb{ir;<+o-e70Wl4b>Y zOCi$muu@HRo}5Q$tK>blXzyUlfTxlBDMS4)buee0ljEz{1flv!b`NY?}Pu1b!X%?&tk}lI10OcEXbGe28-<_t`coLPALKv9z2J^*KL^k! zdn^o;4~1dIetz1It;DH2jJz8*!ax~P7$)rVx8NqFi>A9j8@nVu$7JjZ8pL{ou)9Fui5rvJZ}{S>O6(fc-1z4(>WVq;JctO z7F@CIr}fWWBhF)=J+)61Z)%^Y%p}%EY0l#J0`DKq+1K4)*Ha%|BcF3id_=d=PD`*8 zMD`@K_>IUz-<5D0xAML-+VWU_e^*caU&SWaqd5oVF$R4Lgez^gf?0kGT&4SZ#1ZZO zvNEl?B@Z?`bm+@dzmmqOk{M$YEzX%l{9&&t7JA}x|AzRt#pavL zti1e!!lEB>oL~8zinZ<{W(&%RCvwsZnKcqt@aVP=^EhrwbmaKnk>g|7^S^Z*m5flP zP*Kxtxc`cdBh5i^_kDC3mHBn+8A(YZJqV4|jq^JL!}%N@zf#!WM<)`EzN~{q{>VK< zB_@{&5@pID{-M8V6CbRCk5R!Zfs<|-5APWkZjB26d=>l^75tYf_!)csRP~w_y;3=P2Ha!`BNP$i~a0!o4*MnxAe7qCW`a?`fCZvlBbfTJH zSq{E`YD&Duq4`4d&}R)+KZQDP@aA6el%-;N1#*e5J|;ksiKu9%O zCc~}eye;6O&es!$Tr62pqNsd9lG0!PG!i@qh>N<(}?8AOXi9cN6Hwd^%z(w66 zF+KxXg(o?Y0{=4t-b=u_E|PUTKN9%Gcye7K>v+l^GvpF3#V_qr!h(1rHH)B}6$-so-@gxTw1!%DJS%AHe!y*7-9~1)r;e zzs7K0A9xY3U^uT29Dhqi&PM_s$C+{cM8JCsc$iOBAVrmkQUSxgBI-yqnIWM)n)_F(oxc@TF$gb95(X(~l5$hfnejTf< z)a(+()6e@VR6T5kpXrMiaAX@obXJcvq@fK-{5S~1KhvGTL|eK+cK^EWOn~qqn&rrt zC0C?`&Rxir!m4cP5MaG1me!T-z@BR!)`?1BS2qu9EzMZ#MS7Q(V!p5)>*L&(^UJQv zT%`oudcBgLKTwQyw_L2jltE4j!aasHqFFs9FZ6Sl24Dg9Tg)?(jq;c5>W2BvH!p8a zkTAcg*f*s$%;p5lK{`u2f7h&8ro7|lB24%dt)FXPgBraXBlYj({KviOie5rEj{?W+QaIGrN~%{i$N!4HDhY& zfP-|xP*p}vW3r*jn90K-o2x9Wj@z(Zt>AuJE+9P@U3i?nYoDFx3tt@Jt`GbhQ0l`T)%Jn(K(Kxhi}57ZFto8{LK|U%4#4+qBNV-ePvkX>IIDKz zU9=N#pq(I{mOs3x)7L=fiPq|=o%k9$AkEN6;rcVAyUTs*ee-9=X8*N*yI>Nx&STbHOrt&;*H^%PuFuPnP?l9o!9ECV25M`edk7e zM-+yot$|(r#`AeuBqQu?m_X8IW(-1l!k*AnN8|bsGH9LtAAR#;UbJcT4K-xD{F{=@ zHu!~pkNmAGI!ZxX#vw2MQ5z%5B3%~foD9YJ4cS%J<& z>Iygf7DDd=Yj)nWe$ChCkdHVs#diyIA5vuub&C8n{=F+b1AG@Ly(FuLBC8cT5`RG6 zb9p3-WO8{Vs}*Ol@Mrqnq3@tk)0x3B;%U6!&BM>RsFS*R8atKqT*wdcoAK>Zyh;_uhxxpxJXA*e-w3i*p6m<8DEd}?3HNm3YDo|d0qV_(#3)t^4AVo5FoH3SZItT!8g-sle0#9<&AiTbi}H;`x%MdhXJfg7`U6b>M+L zGFRAHYuT^WRSiNLtN}mokZpiIDC@H=y?}nG26@!2qY52K#F65Qc&MKFgR)xI zsw?>eZ-?t~?#c#yvk@Ume~|KzWYGC*8*ruq$wyltf9r;aT|1kANywXKoOSRve#JYj>Xj)THW6&)$Ch0n zVzISW?**LJ47u}U16-PCwKc4cQo++y@V+W|feQYl3jVYT{+tT_Ja9@EPY=H?WVnHi z)!$_4UBPg^Uzpoh*q|bRn+o2df*)4FKU2YJEuG?D%O(+ceE!1lL>Jt^1+e&25!xy* zvTM%iv%*)z@j_hP1}qqv zVMcJ6NfkkSw;YRsmGL!YB~zwODX)+wS4=LSHk&SFfoAx?ytJg`l0jIa=l3J0VVS;y zKmDk3O4%fyIC*)QuYprar_{*n(`4L*CLqXJuQAYE969SXhNl!*UK?P`2Qu<1!>#2k zWw^DRcLX_XIY34}5^y$MFC$+FxYD*MK%0Pz)1*(J9+9KDW3j%LGTb^o69s;1^SBf3 zv3PS3*Xshmm=6Ql_hy|B+%AfBxTTDr;wj4E?T)paM#gU~XOAF9%+D_bT+Gi)0xssK zxP~p}=QHS#le5mxX$-fH&n$so%uls7?1uusm=DjecGx-}CNbPP+**cP=jZz>a`vdm z`CO1A<|khRCi!B1J{0)H{B&YJ!Nf1-C(hBc)S^Rw@&XdfnUt$C)mQE zb$QhaxR}pv0xs$(aJv@P`TvmdTgS&qSOXU2M+>;9i-0k(CA|U4t^EHP0cSsDGF~g- z)Cb}2H31jph-=THoZk!lqMXkKoCX%$wF$V$e@DPYemC~JO!+VJM+>-EzKIOC&Sx{j zt@Bx2I~Vi$DHS=TDsm<0Uc}u{>`tXj5d~V;vI-cU%yeR*YAYZHx+>QsuM=VFK zb4R$SbHmrvtn+ywTWhnHGf}`rIkN;@EU(uDTr6MF{)Wi^z6w9r4YZEuC4pb8529`X z`_$yB_>l2i=d&HF+$3MjXE%mh*Q*eQTg!=7kuyoa#qye~BL8I-`ELqx#CG)y0e?)# zLcm2Gmxlr_>Xf*##8W;P_{WQDhzc&+*%0~rsqhaJaHAl9l7Nfx7j-hkcD|AETbIi_ z47V;9(f&rb5bp1Va7_Y^IcwQj*9XxqhuAMl6!;@VIse6b1N@^XRM*r8ij@F->}M2r zic?!t?_@uATz7^(3krudE0(sS7sFZiLJ^ApTxZ1sup5#gy54vonLpHj68w_PWRU21 z_+lGJ?|J-rJj}r8J`p6kMwV~UB8YqLk6#A~n8^BxRlf6g+#i3YY_?82z2p8zb4GTx z_D|2OtN9pbH0wO^ej_4bCIS{2rx+p7~zM`RP(iX|mKp z@e}udN>pp&pgDwi;C9fWgo`5ZF#?PW+U(2GcFg>}T6gl_lCRSiQyeAW`?2p?@e_bKbKfo8k3n9qQo_2x=F01^KD8eF zZy+qn6JGbQ_J#E_`OM}mZCc7xpDn1T^4gRUac{jx>srcs9PA>b{Z5Xjl18eZ^o({# z)=kOt#C$i_<;w9r6k-jE@{r>C8`+O?-aD-gn6Xx9)ML*+;**MJ4ekv@lJw(7U>m^y z-MY@ss>j}Bs!tnGr|+UZk$j$yl;>2xn}RWqj`{){Gdpv!|J#hUHl8=QPo?#Q3rJ^o z{a5Dp;Xjtk63d*|aeh9%gnS@Ao<3W=RNw!MbRd3@pCKT(vdAHF|DLNyCZH9y;r`#8 zt50R&Q-4wH>+xvC;)dpsIo}iPh1#6_K*nFk_?}`{>I2x4U#5aj22SCA&ip^kuJcs* z7pma&V`D4ab-+nJ%}JAcOSwo}aka(2M+HBqg8!pAd0X<^Acx}f5sS}LtV48NMgAQX z{O>BbJ>=R7m(H%Tg$JtOQ7U*caEiYV>zsdrc#s>Y!Y|L&Q>ROqs~=WW@RV$(owk(` zgM7tAx#b1ziej_z-Il{GZ}}D}`D(RQ%)-Qsvs*02b4%w|^YLh^Dq-y$rt4`&U(N13 zEdpTLo>-U_bmC-I=V==nwRrS)2Ak3EwjR&SyU*x0o389xd)!Pqyb22j%q%=f6(Uzt zJzbIva&9YguWYy{BZ&;BH5n1lWVrR%vXJ4{W6P%)PGd!JPV*T77v+yv!B+^l&?UBf zeANFm9nV%7{qEYsF@{^OL0w`v$)}DSck~^RBV3&8d8oiL?!)fsBCZ*Tb6z9h zpB%{%=RU>@c!0tp|F08pac)RlOAzOh-WB*o{EmQ&@p&lVVtkxfyJ8*BL;)Anccp#; zF6M)1tDUJH%jtSe;1}mO-V$&z{;dKo#`AL(TwIe7%S&975X+bEo2K-N;Rc}NMvicC z&L~m9#rQuV;39vifQxfXe9TJn#r#BH-V(0J|F(b|6c+jaP5~F=kAAxBtiKDsZ_oPs z{i7hqD9FDm;Nb$^kG10zf3aQ_3b{|nvvLMk#Gu&9FK>Y-SgiWdPk1$M~qe;E&sVcepQ=$DrMnYJhB_^kK<}{Pu%|x zoqK9!;q&j9ij#<^pXZC(+*2mKfE!{JVXH^#<;W+T@X4otwjU!UJvsIJ&OJ>OewfX2 zth(o(VDGMj&)3ixlI(W1LQl*HyIbR6t5gfSTSnM7gSQoRcGAvL*tM#2ky^^hz7@vE z6^iYulk>6f;bq)U#&~nXtkO=Sopww8EJLRRTVi<+=bxGn`)g0Y&Rscde>@N`Cy3bM?q`Hz$=$YNR2R*a%THlVDTL0oU%#G04AM*~e*MhIhI?b@xI{snasd6drRD@32MSEPf(L4fdbJ|PaoO}uP|6tRy!TfRw zngjDM*Gpj?rFP~m&7SMml)e&1X|E<5fV+|YQJ5c~xs6Pu4LWj`xh9%>;bZafFNAlJ z9v#I`gZv|2ilZ7o&lh>V40eF1j46LExOZlhAsQp($4XCM{^2| zNNYW8DE`Ptnof0M1L8LUSlE}w&I7QE_zKGOn$98i;~t$EuOd%gf{uKVw}u0557?A;5x9rr1KRg9JTmmWarD0rnnt@0v6+$?9sM+XpY9r(+n?{ zGz~Z-)T>ORX^5R2HvA&OaROE!nitAAB z^$6$Um(Oab!)oWVhvQ z!^dk(cGCTbm%}=9C8rLmCudRiXz!PnB5p=+?89NY(QmUoQQRIAeIGnNbbki^O!MZQ zqHqSa#x%gr@X4zv6K6N)2C7Gnm1Uh#mBvmZ>TRy1>!?Rqt?)x>_yE_(>JjETsUFe% zWj@N?fNzuP5p-Uwo`c@38GABFC!XpR_9l&Jx06z}W@%Y7 z=z^qe*pIodOQ=)lk&X+vz9ea5$6+s7F6vec>eh#-TbLiK3WvVzIK=hhm$jYm7^Gz% zgPJAeH{zN%I;Crp8zVLG4^U;(?gmWJLKD@Il?Qh6?%-2>^95Jsw zB8uui>dqyd8p^?EdeF6#(o1!N*Qq?APQ8qIO^O@UAJW0SsFX-LcIA-yzkUwTP0j?3{NMVYtvNttTx`2z^nLVoX?#R; zHQas9ZfLyY$wA>teK_Lhd;!dBiVA;!75v9c&Q<20>%oms;UA-dKc|AvV)7GNCq0vm zAzxDA@9umFlTiG?IdsfsD%O5z{)V4U_xOB_r~|6_YoJ&V{I|q-e?fW5x-b33I&`xhTQ$0 z;nrhPe%_e%nDh%ljyPr)$C5r=IIb&Lxmu@-pPOZ!E>ETuV;vs@!>!{J&2W+<#z%<4 z54ttL7iB#YZ;@eUcN48%{HtTk&)FE`O%e`Ak92E2M(M?Hmfd(#+&fm`a-50dkMbE` zB=d**Pl8{PnQW1$-0<-ESc<>q@#pa{;|1L(at3y7W$~x>Np##FzYfAnelPM}{TI_u zb=*4bB!~MSEegfGby)PwKC#C*`8i&l%!3Qw67lr&e4%o+6+Ze{vipT{vHZ6VpT?Ng z)A)Q}k7uHF8V%NVSb#`J+|33PV53trr>->E%rZT}^c^djMv{p-d2`{kyf^}b~ zciw?+f!l%$?*1>zJ{yt&Tll%DQeV!oeQfYU&qV z#5y^xGt;^;-)Gf^{aCbajXkHaNEXIevq>U94}6x^(E9ZZ>eu3$);V7*b!Yev@vDJK{~>L>qKMlrg!Y8*&fzbiUT7qY-t0>mOj=Vv8C2 zIjgkNF50WdafJV!I{0YLX?b6Jn3L3E0PlQZ?7{Po^L&MTQtEV|T%OoFyc1)U>NlZpuO*H7;}|@s7#v+G|MP&OYz)=FoN8I8q7F5BFt>)X!Bnm)P*!; z>7?TO7_YU;`@iX%Rq7tBpF8;7NqIM zJ_hzbr?*f(b@Jp27@drtGPSlMe!!C>`{1PO@+w5;A3194F?H2ti%0jJUm}G|XY<#D zeq*eA9?I|0cYo2i9NRyjw#F{hKNZIumi0B@V&77ctek;m3(r#F|B(t#6@tR$;qi5` z@hbe)D)@^k_(BzYxeDF{oZ{2TIs{)*0m9J_hOP8slG7&Ms)8R?!T+Fw|49Xx$42Nh z$Ri`A1A$#;(_z4s-f&Z=HT;3wJC%XQ9?PKc7U%g=JfsLCIll1E$6d;*yF~SY9QFNKw@Q9~ zOa8CmF6^EzzZY;<0q5(_Bu5$FD=#}4kM%nI)2#fh$1b%3F0P03zCQ7bW4@gNzleXL zg8xy##rWS5a4}prl`-PW0xs6yw;4|9<^5U8f>r^iel>T06mW6uC9dm=@e$W)#WA8d zHudGgaean$pef(P^~`q#TwKp=6L2y9T)&0n@cuak)0;J&ga-=YJ|WXc5Fc@si`$zQVoyg8k#` zs3J!9+#koOjIHBN@3{XTb4GTx_D|336MT&GRhEC#*h^{~DW9zKpKx2@ce1^2Hy@Mw z-S{g_z2!*9e>z4@Pfh*aXF5(4K76wrA2a6J$S&O;OJ7}CH$;D2=&vibr?gn>ptGtJ zz1v2tN6~l^ebti?wW1Nawe+0Fo}urbIuh%pG$x@j7V&5>-r@aEjCax`@Y)`CD0Zp1 zzgC=;l!i4C{w&IAlWqO@BEFBGNhjK2qOd7lQkXn;fKIm32dA;iKk~=JgMAL@{Bl3a z^?^KYQSKXIe}%s%yLtSc#$WtivD>2X(^v+&-8=7kQJQFc&2^G-wjLjsLytQhd53D} zLpF-Q6HEC^X{p0`Q0Fmb|Ls()zj|%# zc9+iMQqJz8_`Hj80qXwJQpDE?8&6uc9v7kPiC979{0fa7SUI%a#`wfWooKy9`K-)K z%%<^&JZ7iyvyvv1Ln=?>ID{qV1$5yXVKas77*cv^>`P}iUSjF2Lq0a)J*7j@`&QE5 zD%)(LIRUacBadAze%fHKiNfY}yA;ojxfDk5mJN{gn0)BSlkFB|jIV^tZDBRy>?L|f zc|~!>*?>D0Ir_)qLT4^<`NSvT{2nnsFW_97atZdc;*>P6XL(6u=(=l^myg#WSq9En znkMHV&0+X#$!GZ`;T$E(C(1`l`sA~cXl{e@+A9BWCekU$5#tli%6B~M2T@pa@Sf@u zo%5!Y57jfpj#b@XDKDuGQT{(JyHP$1NwH;C>dh( z4l=2JQ{APy#Qn5hRO+=d5BGSzYrDYfB+b!1{!YR>k|(FPqbp7MHs~9mJrT;c(blH4 zJrq~sQ@#u zR=zE|ZJMtIwoJpa0J{!L5tPA-q`HiN%2oasuXHu)W-8FC)q z`+>n4JA&zd{kpF*-m>n2QI1g`>bo6QWv%YJxWdmmShDZ#fB%Y|rV-4m+PZHP#ED}% zEZTjQNd5B;D1)Zzfr*- zsNfE$YPQPJO9dwz>$dnKRPaOw)Fv#~5*)|e80f^5t{e!8fDN_(W1| ze436p`D_^73+ATik#AjL8&w2N2naxp>mKvc+=n=qWR~A5b7$gQ7_|rFh+o7NX$mgR zaZFR#Wqwg_L7bZt=Z4-D_{Dm>N5DlnZ2~UNmD~|Rsp+7WqGY zALNMNN4b^%)AvEn8Xu^Fk5Iu&Rq#nF_)-BE=ZwTXCSv}7F7OLOXz3dPmw)h;0 zu7J`d=Cin$gwNZMmqNyGt*0@9;nsQ@&j|9xxweS{E|%jg0T;_loVyg`xm4g6_Zsjy zO-ffVODkRW2>c-e{-uD6dr8DO&7K0k8wMHVNWQo?Bt*asGKcanQ@}<35i0n20T;`0 zu7Hd2c}>8LLbxj!Ze3n)Gu*no#5q>6ymkum#q#=Gz{UD0?o|=<`JuocF2pmyPI;jG z6!SlV;nwj_Ww>?x`w4Qy_&+V+Vti@^Tnx8Pz{PsV=XR~*^CsiBj!&Z?M~u%q47ZlE zM@3GniX1*yOZg_Y1AH$G;o|r5jUdM)QDe#N=@V!ghewyKw&mxYw3E5fKt7#0kuAj3QPVp4$=c@uP zwm;lns&%@)6!^vO=#qeo<#I>B#d2|D;~bJN=7VT&PQ(jU_<240p;rSuA_}T&Bz!!^ z<+IOg)Ul70ua(eTJcVODN8gL#thuzvUBS|80oV=65M6IPkjx+IKM8(GW->^0 zZ?f>kJ^{Vw@#pa{1Ec#ykm%lL{>3^=@3}vI9VB3)|1bZ=^wV#Yb=pY|_di+`ihCX| zhv}Jh2{2Wt>D^|I{^=S^T4v_= zUSsJLI=*H(B4+gQoxhWA*2M9sKDPIoz%J&_pStnpxw<2z)l*vPuKpzKlk+Qn^8AIT z5`VSj+RUE}xb*bO0aLUOf9)Q4Brfx>r{kqHub!C{GO(e*8JnyYb=>*U(zJ;ij`uuR zb^F_z!B<|~=XrX2(~CF81`gbMKXl=boDPND9)DnLWaH|qtBTT}+gjV!Bk6pf&cfVI zeeC34&)Tr#ZofE(zURi=(4|bAeRWamhWW+ozCE{aLBcDa94)R&{L7^A4{K5ne`5-I zXHd6y4a^;-NmDROH8wl+={E+X-b`V_tH<_D&N}o*@(BR zmjCDTkv9fB{Q3S(VYSk!b+7+6`IGG5CAHLi{?P|tzIHx&^Ka+Q%)E5@@7_~?*<3r? z>x0QX@2~jtA8Kn|$Mo6n{nyfgxz8@?Z#U7d-;^^~=VvCr@wfQvM}G44GpF^<+m8iy ze6v67=Q&%Ry8HashjurdZgPmexb|;<^N0DaDb;{ye~E{@LKY zUwrnvNuL$o@L7Aj<81%00~Y`EmG`4o`6qoDwe-gD=idK~CNVD|^X%mw!+*8SVMSNx zzKq}HJl}K1kw5*YSLy%x;}-{dO`Cgi=eGybfBCXD^+?*C!An|yz4VW}yIwhPZprI! z{$=O#%|Ctrbks73&qD@IGd_PVc+Y!hE_^mErY!8nl`%tKY05TjIJmTN$Q%D>_1M;` zCkKq48~yA5_#n*Z;VR*UKr)yzSqq#$3Gx0Y}okcKIvbheg4bwPCx(3;oF2;RewDh)a&HM&(@Vi{f_-PhCp+cyJxo%Fr@+{(Yq9kenl!2ju$|9Ld-Pe+D5G4-3VhjuO5 z;COw*f~d8+S9%2Wp82bb*`KAy|LA8+ljj-({=;cf?Jc`EfB)kr)7&OZe&da4jxncy zwRhM;!%uFH3wdK(^B+xPD;AU-k9hP>u3zPvQzJvt2Y&sg{r>W%J#(cGbH-e{KJ?k> zL4OV_p6eB{{x=)fFaGI+s?5LM*zIuVx6gFBR^7<>^|kyb?tJ{>&&EB!YvHA$4~I^k zoYp=h!>8nLlU?ExgA4k8x+8Gq&2x6CznJaxD}O z!?=$>O8s!6al_XhNBDQouMy^B|E~Z4uK)jQ>;LK`hkv(!|BKtd|2WzA-@iZqAN>B* zbp7~OVP2a&{`QMMJe+>9V(p9(CBr70{*-prDGi^-Bjof9Lj_ zKZ*U)>EN6YyJK&~4F615^W>uU{`|sayQNX3WwUl9+&%lCx9;2PCuc;xu<2*>PQM?q z%TzRC;LOff|D3#TOwf<~7df_^yj4GbQo##`eb4*VJuvm%x#~Z%XZlnX_KXhQ)c@e= zyw6A1)OOuD>r(6f&R>4E>iY88_ebto?wat%=75;1TfRO0z&_~N9ew@Q_^&KI{{DpB zH!8E7u0Hk1?(5A1=YQ&+q$}R)Z91LPG-2k9w&nFVRyXcE8dKB!ROzmq6~9b+==j$~ zffc`<{$9e(^CMo{aOJgM z4OsTGt}yLS<70O1xt8$r`FlRteDTM<<}Ucn?qm0UT$6w4wfU3g6~xc1c;%zr5jm$5 z&PKhFnzd4Me#+g~-iqu0sKK{s-MQh#xlca-aQmUN^$SJ}$ocK>F1r4zbgj?g*)5-J zPp$v_n+ezF{#<+hk5|Lj>>c^rx`NKn8?%=_?Hlt#>80Y$9}oT0(WogSONNvTJ{DM9 zw)w9g)IIU;>N}wu&+eV`w*M=!x3<3!mDTcIznkkWI&`!qgnqn!Ou_RD{+>DX(V8t& zR^2)JMMCSO>Gu78e`DhHQ9Yi0_HN9fg#pLs#H=0p(x9>1E4SVG#b>|$!-%q-XAX}& z@%7@;&}Rny;!;D)Qy0EG-PZQ;FaMw)n4Nj5{x5ITp0EAG^A(YAJ(0BGSFZiKW-Kb3 zUV8P=l5br)Q{MW+>pQl!xV-mQKCq!N7$1j;W54f<*Fg>uIZ;k2o{7kbxEaqx+V&C^Jjj&$8er+ z9H%pnNX|een&ULrNqDIhZesW>D?EweORex+hQDKl4`z6)6+VXHUs~bvS~n(ju+%-C z?%AT|CmporKX@q_mXp_)SVo7Q?8RQZc=(meTTg($XG(Ov;j}t9l?7*2pVuo3 z&c0h-uQ<-X+g2<2{JZ7#iu3dDma+ff3$2qPt5oN_tpyXW=!|$E%zEC_EHVlA*8ZdL z&I$BG{nMN`$+Z3jFasm^4Qt<&r|#cG{+xvyTk%h1bN1hGMs}sRijFECRROaI;@*kP zvvU8`eo}qp{&{_T0vLtQ>lbciXJ88?(Hvk`o`3v05;(sXSqF*>EW!(GUbQ)M?!Q9t zOSjhk>DfB(iSKUEcd9^L1 zY)gLD(X89^PSu2;S+nbJ^G;=%q!XDFXYl>>7Ts0i4KwIY`?TrT8YZT7?h2Pq?AHc% zG(j(#E-7an55Q|WUDF~d#QCuGi)(cV|{;w9dwn)VZTL@*>n_sPA+t_Z+O{F z+prO~troz(mUeFGsb}YsEjIg({JMfIW~T#dq*pa-TkE7PTHKrKG;0qa-eOoh@9wbu z3$*W@@{;t>xn4Etx_>F_zt)|k{l<^x?6Z_1@lhHK(6?6P9+dZKH~CBVNluf$`Mw$F z#g;3Z1SD|^^AVm$J;9dRN#Bm>{hh&;$BgA9_J_n>PR@lgD^&OXu_i~Jh~`~J|~ z)|1Y>tSgT6#vTVB?JeiL^sWrgn8furN?KWNDV}NXy_gSFmnknPAKQ^1w9fJed*Z&f?ePi52uoo$j^hcjpEAdkYXhaBizyVfD?DPN{_oO4(4oE)vqq8G;`64X&OpJ?2FWG^h?~?WwX<<^G z>O&svAfk20-U{X14a$?Y$Lh$3avh;KKR_5{15GXmls92!_$SPObc{nfOi;lqM>xi~!A!qZgneBdOX%WcIoxhFxk(7pkXZL7nU7at&1rzzlBT2b#0V zXSR|iEcY{hhO80Gb!bH$SV5sz)bpkLDHRjSYH5EuVqnpcrG7xSIWWHeonp-IYow=H z`bf`2_(_*02{`rBxOw2+XN7=^az0`>?I9QA`HjFY z>JhoIv66MV3<563M~K=Fx;4NTqNX~wK_}!fXZ5J6&+`o%+wpRxvZio&ne)EAsy>f( zKr9v{InxIr1?3r7lhSx2ruQ|Wi{*>I=DvB}{+#8LPMGpe zMT+TpGv$k9;zLkvk!1K)3NQA)LLl{Jl9Q?YiC$OvfkOM0BV2lk^%iLWkKB+pK{YFK zYThl{s?}`+gYXv7+OYm6C@>J8JFC^fZQHgsyjr}#xnoh1j>Z`Z7T+!O2EWvJCKdUw zR)%k$#rF*Q=J^3=wC~n^>`(Lv-#ydWLyxil=O5U2bc^r}9TcD~`5EN%hJz(8b2)wXQEL$e2cl(6JZzNpHY1B+rr={QrK1aiA@nE z@`7(kYy8l<>(j92yHR|@-1ZiHD&&Rq#=XTTfBNQG{AQT;Qxd;{=I|Z2$h%D7oxbTc z&pYiiW{&s92HuYw{7$1B=^O7)49|^gc!ZzZmfoYp`q92eO9h^#vMOy)J}AkmF}`y& z=EoV%zoPGFi4Qts%Sg||cf7UVxz@&~?+Z)Y{5>Cb58pI`F6JTny4>BT!OKAx^CH=m z;=5fn&ciCl_w~!clQgUx-|nuE(CE9x3j$A-hHrR@SNitW_}wN48pfZT>HA>H+xUGi zeYeF-bb$nf4|%3CGAvGsr+kPebA7|Uyd zeq}7%9r^}+*_vi(3+J^-h)3VwcEBISO$43JkxO{&VAwCtaCV&V-cNn>0otuG;?BZ* zUtc$tqsIFWJwvztrmx}{Kpggu!v2}6xc=mQN)&=o!N1`TS1=Tz_ZTCzYEHaz*s}r z8t_z7u1NTS-n~rop*D@^lnyH{#j<|1!m~8&CnN^p_iGVe`cKAx>WubBy?&1cO`UbeChse(sI?3cYAuD5-+WUE*%SqmC&W}GbMCseE1WF%k-Um zzJx9vQ`jJ(JB!TVR~&Pqd>TsVm1g2gzp<2#5h#ThHp)l(&8oA6F1}w=F@X}gv|YMM z=u$otC3LBr2TSNu{gHlSDUC1vrcwG0s#3r^;@?&x2S*8A+V0YQ>7;TFmc*BS%PRe* zQCjX`NqlKP65sWSA1Ph>t)P@oanhXPOY;}^Ni)qSN_ZDHjh`!_i|^$m4(VR-QaLP< z#Fx?~B7CV^HBzA}X2*b53+0NL3t|)>&5i+S1)+&@p*m7IVqHZYH8%z%ep^^mkZ?nJ zNH2dpP@aN%)&xCodh(kn&%m0L#v3ucuL)f&U;KRy;o`kCs79d0ti?KxETSD>MZo+nwld1fPURU`pf-#`IG^CfwBTF8Yo{*MPyE*$m zjRCdBP|%Bx0g2!95+9s_84lyhw%GS>#~M5q8}=v1+3~=K62vgP6PMzhNsV_S>ACOX zcns=L%n;^oh>!VCoC8mB#W`8VSqURxhQbir)AR3k${(T|hGYb%f)rZE_i7iKr%n53#WiPQ9k#ym|Z~n^! zn81tC{`{RzeM}|-H|{z7iC10c&KUD~Rs|@&k#35BjHwYuYX!wiYDW~$c&TCx>T_aG ztfdhKN#FV6g`f!hO7j#`3@}5l>6A75$3P*`%n9kEhNg_fER*n0tOAuFcK*~^=_hw_kK z=4`Q;UX-7hMl4@^ZigGn)6^b`={Yf?@N1er2=uz@FYZqfC8VSJ6H18b#rj8rM&-B0 zpY%E7Z&IncZ|-3OY)a}*-@n$X2`;_ur+dXs33_A{vKG9^>rFqIvp6VnT3 zrzR`Y^zq^vq-)&|- zsclF|>lgJUR*T>R4mblB9L5D`4_){Y7Fd5|0Y3oiTxg98{E1?mdx^7FjPp1&##t(i z#Y)$vRKj3trzv4-TwNO|e1sd%On~&!dv!=FRGrI?R+9{C#P$xwHT2DS420XqG!{Xq`|Jr?vp&;yY__N4X>1U(pZ4)kEqgOR@j=)s_e zf*uIE7IZB;9@d)m@zru6>7nd+rW*86R&pM5WIVGtxDtO+IQMp^mfcc5>2gwO$x3Xl zk3Tsb^LjC@nPUXb#-%u3%%UhsR^AcTo^a_zp2e5ozRx_KT6#S`i25c4DGZFE3p*<6TQ#hv==d^-`Hr#cynU-i*aK2C#+A$IBx2w`f zizXV{5Oprub<9XxgFaY=_De*&?J76YY>0-oOGKOP+F+y&Lf@@IyCtH%c9j}w2Qb%O zg*Hn>TkR?~()@^q_DV!M?aDLKreh6p71}BhZM18ck#+?#sX{v?qJ4HH8fno)LmMTc zZFa>PX=`XM6z!9UcG<-lX*NVd+a#h*b_E(~gD`(viFPShH`9{6P&;$l#JkP3ozP$M zAV=x5JD%^Ok6pstXEp2w<}FVYehn z&R05*-xW-u@$|r%%H7zlEACh`jP^PYytYIiU1{ilme(d1PhK3MW?L?yj7;#e6Mb;s z-2^TCEo?Q+Le$N$wi@lW6MfLE9CBk1pINEb3`lQb>grh%t9z!_V*V-Q8ZU{%)?nK}8DMvW^rDr+9(bm?EEF_WA zqn&r6kNRvtIQpmO285&Ct(}qH72#;}o#?ARr3gnq^(;j=bimpL;Y|>Z_TPy<>r;$y z^jFVfghL;!-4G6pQ9u`VqVM|TAsqeIGY{d=4Qn;Rfhh{;#ZL5LpJ50`|MeV(aOjD( z7s7!p3h2mA^ktt!grgsOCL$a_ngTiA6a2vu7;Ap+DCC2nVJppgTL! zw|zK-qhEV+2!}3N2O=EUqJSRlL?8DFL^%4lXCT6%SJuHS#2x9C&?#^9bsu$tR)N0m zt8S*HvwE$yETjr^;xm}#!Ku)dNc8(^+*dsAa`Gwqe+ByIf#1fT^n>nq1wF=zIa)Jo z*bd90Wc2-um|wpJeZjo>2^so-IO1309PI?)dNp(j>%4&j@*c~81uOBKXqg|n2Wzeg z4+sa8GMgfI;6mx;r+w0Z2Y7KP@xbp=^!?`0tz`Tis74s{3onl)9yb%ThOnE>w8_w| zE0+)ke87NJiASXnR*5j^l?{bKukcb^;&Ds}JBBdml;1^!L8mZTP~uT8gq0%<`V@Tu zVbCXRPFCWvK?vJ`FzC{t^9X}3VZ*=@k5VD56k*V#>E{pzJ!0+%D;C0v5e6MvQ-v_- z5NnRGJRvL(VbGrgl?a3WFh7J16T*fe47zjWEW)5WEC6ANLRccgpf@%Y2EDj$+ldp289Iy2jAlK&LR%i=6Yi z==82n`NRte#CP|u0zFTlPZNIo;J2=PhM1v`F+(S(m&z5_6(kBT$qUWI2iDYCE?&m! zq<>|G{w?TKt~d``ER=i3O#ItIe5~s-TrPOIGF&xX!^^mJwJ;V=W89s4_lxb*Ghr+i zA7rN(h7yO3!iobLU#uA;M?AwC1RAR3_1RcDVW*9)nP-aeAnwX*VUa}XpIJ|Bc zh8Ip`dp0Ya21lGAEM?djF*l5g8mQ9b!l=EF+E|7(UQU{EWdvR@1u@W=Bz%vWOB^Gi zF-a+1EySQPNg7uXuUO%R=+gP|ObOjijErB>54udtEi;n;M&BUNP5IFYbShV>&*f&~ z9~0=NYurzniC-zuDSs#7o_;P1_onWN zN&Zs$7J+VBFY%iV(|R3}7W05 z@=TvvCOE^bag3hURX1bu;r9l}@O>)7`es^NtyuHt2#Ymd@at)u%@6NWE%3heO{ins zibM;|JIsdX-R(3yV|p*VPtjPJAKrml;2lYfGa7Mz@UYXoX~Fa@@D9`*?>c^XZwbJA zO&RhjNVL-oMx2@M^)%g-$OrE&G-l-&ia2-|5%bAHoGiqNv1j_ccC1eT$AvUwis9Z} z@XpbV3-OBLLMo77MPfb8X{O-&ds=AvtC?OKi|{^NNXvo9H=YYgL7bFC7flMQ&!?!Z zG@ZThjdC!)XHVopTBV}Q!HAd1h1}@q7+4JjVc6=`Gdw`bSU~ccKqceL?8S_cb zF4dNt6lTTuSIBtiTyg67_>=A!UyYpT5;vez)X4=*Su)&>Ii-b0ogAmIFBvp2_GH(D z*pnD{EAf@tmv|~)D+-KH*Ht54D(j-RviqpFU+ySf|IxF1w~ZgJvyfZx9dgI%B9DHN z4ftrv@9SHP@!f{}pBJa}PE~&o{vG&P ztR9~Z9=FL{`2*u!;-V(TpF9SB++@mAx?h+ZADBBx=ZdnH zC@lC?W{+P--qG_keq9Z6oUN$OyUE@7)3T=gRE0Gk4O#U=`41qw8<159${GM3TolTZ z^WgI`_#21&6!7E?dHH}R8^~@yKc3%#8DJ)8wD?QPU*}4LRmw~TVXrJb}>4x@G$7kva z(GKl%-_^aAJ62c97~cxK6|lzWZm#%q;OBVm!LNd^4_&??V?2kkxL7r(@A9;;cZ3(G zU$J6x?|qPQncMQ5+cHaDarmp8&T<8Rfm!hLz~?mZHWGY}0$)nVW-)k61Z_U}OUHeG z$Pcr=CGF!!=)9C(MHS$49{B9+QqnsJdbGOJ!rsBTBXxJ=D&8x8lx~E)0k6(Y)a|kT z0_{6iR|q}q<|AQ*`&CKfY*hFYxS%HYFZYP|gMLxrJ*GmjYf^Mn(V|Eco6Yd-*WPDuY?` zo{`0>Oyo7J%Vbq-H+;_@F-LVHV!FyNVwNge%k*m^W~-t@vA02wnX2eSrk~!uNEMyR z^n<$3P(^1leRTKtRWVvlA3d1quPPigR}_w#!pJy{#%6}<3Z4UOid4#oUYZ`=IQw zoc^>jPt`;@Rn^sz>5oL@t9s-yeUD7+uhC_iD$)fQjJ({t%vOaJV!sDP{k1&?bNa4@ zoPN69hX#6N9`c!H466v8s^Z*e4+rbDU8iw+Dx;m<5|uU4@!S&m42)%Zx6s)t4(W33 z7OVQ&EmD=(&I7NUev|EdRhTo=59q`6vi2XSe(sp3>K~8%+P$ypHxP0uW%{4mO;^R2 zF}+{gg{r=*f!AY;Rd23ide^aYRPo1{{)>(?RoI6@|6t5q6=xySf6%c=)lVtYhm9>! zMcd2td6I=C`RBv!h|9$RM)wFRRsyY)kf5-GG5~dIPh3WZWOy7MZ z(|5~d`k3*!FUS2}-0w%&A=KqE%Kik2!~4TZf1-=1k6DQq?MQ70Gt(b(Dz#cP`D3QvRmA^VaET3E#U zsxZ`fS0rSEI_F0eslrg_q=*@+&gl1Hi1!n8G)&FuA3#srLr=FtN8ObLs<2pUTgBSW z=!fdA3srX_7Z~Y%1UmZbrpQGq=dK?Z>G1*`c{S}aU$r=Lo`IekIad`n5VDEPQ}yav zs4DD|5B-6h2cmq)XLQ%as<3!YA2_y96@lMFXfO9JC_hukFBbab$n*x!d ziI#%C7BQaFw+JmzMZ2J`q4}yMxsz2ZbKh4*tY-T9uP;$WK(C`$BOkOyO6X)&58ST} zoucxC&SZ8hP-TS9P(^mkS2YhUQuTCZ`q`b(PxqsZ&~DQ^7OT3up^qS4^dY9dj&%J3 znck-3RMi`y4Esb*Q*j*AC!!rhy%>-P9ZH4n41?a3)wXGTFmy=^z3B$M8Hsk!h3=F> zKh{A%^3eW;(2;47)lBF^F?3@-bYvm)WeN0V19WK%c+x@FwljTQ`th`Y9jEyhHrOrh zBEDzC7)LR;UtL6g+C8j&@Mm1eUie=J;D5QpPy1F4{|Uay5%^l}@OS)@EHwM!x9x@h z=ALM;ISl{m2*MA+*E*79tN9i_n>#R%{F#IB-PR}BYxcrFI|M&XBeUh*)k@6)_+$Iw zj~#+vvqon0`+71?U*v9~@pe~gdRTD!Zc0uc0J{`z4;v(_&u1a-0r+ijfAP^Hr(Xy9 z8pPQvv$eIC*=q{N7pjWjBdteTvIprh8(a7tngipfsMaIBpG?WGa_00^@QqeGa{84_ zRx$UaDYv4lv|Wkz-9!&C%OST*)LzE zFXkP(=v&4Q)wRyeG593@xr24&pD1Nc{7jVF8n&usZnmx%w$oAW#IMbJ3t{#7RpoE# z9O1)!#=Wg`@Yv4}L%33I3)^eMUy@nzw&0}!csU5Zg22N`@MHr%vQYLR@D?2Zj*iNo zDYGcC1rMm7k-yyGIsuLbNa`5ip$WDs~$LPjmXQzXh!g0_jhZJ^CmSMYWy zcVph$x|xVG1itDt;uH0-gU$R7_H!@FrSj{;X4-(ad62;g$ixDC`GJqN@gu>LcTq6P z?hU(d2fhkPPPrp=B%@E|b_O2^dBBF}=w{37!-l5n4uF?bl)bk6Z5_1}^5T8n_u|(P z_Phc3bl@$ZJ4eC85%5q9nH+&_E`dxAqWl@4L6#-0;s1D}d>*_Uh217z3lZKjcPRWH z_>X8iYMY*N2gtcTnpq?f6wJ0Wz`0eLcPq zyhS2xHh7qe@`$!3-y7b>?kf@yz$Do zVVKLy#+=;{%*|zC4sI~!+TNi#HO!r5VvZ~Wb7AS2^Gd_q)=v2DmBzN z4@G`=D)5+WKK|$v5of|iC*We&{jH0lP=^cU>^R16iVfI^cUeD%_fcSDOWf|Bhte!#;Pz({)c(*PrHB-PXS0}qd&T?2rTJm@^)s)37s zz{ex*mYNp8#Q=FdzB#aQox8oJ67q>b{F}furnb@aJe8vxgm_nhd->=a*MWgY&^K(+ z7XHu;3=KKwLr)5s?0A(-W;+8icORdx%7gsfnI#YW)f7SYJg}6LG252RPGdPfPepmG z1GY~0H+&CYGT9e!EK!z(+se zfC~D(9$}=1mdfTuE1_>r&?QIcSeo3DcK}8-07k83j(l(QLr3VK1N5yI{QV%gBR?HJ z$4Yu1apUwsh+pgiJK*sR`d$M*0Q%;@Z*HCJ_k>M;Kd(25I=Z#FCmPkvWXWeyCGyiyb%wM z@xyeRz@GzTRE+xD1EV*=P7qIoQ#Rnm9z0z{*)!1xXX1ATuxPsbH^9ewkVymHT_)p6 z9@I7gz$I#vHt7EwQ9iXrE6|+P;iR3~0DFaWjkdFi2^+_H_P|jrd z0W%SnkN!cncDDNw$j6qS3_i%FkX$|oFKbbD5cq-Kmux_}t-()AqM=-B2UR@u6ZfB^ z{3C)~Y+)BjE~GD((CKW0&9LR`1IKM4v*yqb2Dz-n`*Ib^T#5Hm_!M}L-^G8<>99}Ual*oLO~Vh8-(Kw^FCtt##|G*u^9Jgw$_GNea{d}O5E#w)V&L9v;9d*J zbq(^I1^jylv`o-4aDNH+7jb_9_a3-+$GsZ&go{H3TpSEsdAu7#x`%>%zS)&Sb2FlyLj;;yKvzGn>=|k z>)W?4YumOhyL$C1v$wZrpMCZj3kwTlo}QlU#*G^+D=Ul5n>UX|L`1MAO`5QkD_1gi zcXxLE`gK;netp)nXHV9nM-TSOE3dFL%p1;~JC}X^_1A35lqpPyA(YQQ|D4U4Glz{I zKb~E?c8xV_){GrFa)iD9`s*w(Fp&N7%P%Y;A%VU9_S@{6Z@yu6c6Q9w)s?MUwTe|$ zRk4te5cci2-?Hz&|DJX2+LgWa)?2J&$Byi$pMGL8d?nDoe}DGF4?nP8y?U`X-+Yq| z9z2+J@7|pi6&101_3E+3ix;!>^mO*;pMSDLhYqm~8#b_jfB-gfB5d4J<2w1 z+Qjzk*~7MO-O9#}9m`5eN|=|I7gH*g?DFNyZ1w8ZEHN>WJ%0R{4H`6v#m2_6wQJY1 zW5C>mPwouo2kAJtHH7 z{qe^i?9QD#?4yr9ViPA$WIK26WarMEW4(L#W*>g|Av<;I6!Z4>X8ZT=XYJd!XB8C{ ztV4$mEI&V=z5o9EEIT`!#l*xgl}g2S?AXClQc_sUmMz(pD_7Wy(@$A=csQFjZ5ms?d^wvn zYZiO-=n>1w$zj&k)=aP0vp3#&gFSfgfc^ga?`++=bWGBYz- zXlN+YYO(6-)-6_6R>nBIefs+PvXduIvT@_av9G@RiXAv`fOYQNneE!Oi#2T6kexq& zo~>WMp548Bm%aP$yKLXSeJn38kA3{{$HM>s{^*%n*ptHV>j%tTax(XdM z1fBDHbj-KVDStwT?2pda3mtJVI$;qy;9_*XKhg0vpwo>+hiie(b`u?~5S{ESI@m#U zu3&Vm(dbk|(4p3#GaW}qvOp(tMhAKgo#$6{oCfGLtH9$8Uxl()LeW#9`_qa z8Bpj;P-Yt_@);=cR48x(l=mP{$WZz$*~DCd4CW(AZo9}1Zb zWmG{CQ=o)bpn#u1`IbWQwnORspl}bNY^|VZTcBjQP%tYfS2YxCIF#x;DAcD=rfE>5 zSx}-JD3Bh?^8kvo4ocGw3ZsFtghEknK}k3$$Vn*2S5S=3P>P07i1kp0ccBRIjq@e} z{C@-R`vCMW0`MmT?Arq9?E&&(0QegK_jv&JCIEGJ06NBy>-PYVrvb#j27v1T-g5xl z*8ti_0N8;5>jVJxHvnl@0CW|=`C9;USAcRy05aB@%6uvz+1c0g~0QF0NX%K+4F+lW30BAhGGYP=i6rkw_z;pmu zHUdz(03Osc7MTDFEkL3S0O1R87zbcD z08rQkKsXODxC zbz}m`w36FEa8D+SpqAi{OaPfNK#jqKk(nbiO^`@%MW&aal1w|9e1bnRi)8i*>d75Q zgvla!B-kccCX-F3kW4L^a58xWqhy{4W(l?lddUQmJ40rL;F=(ipqHSP%mtZzGR5RZ zkZVI`pG+5-buz`|GLYFM6G|=v2dE`igG>jRF)~kNh6w)2RFa!S5KZQlTq%NYGI?Zr z$ZV5ICG$vThfFfLJOth3YLJ^j?gP0*1o>pz3FgVnlIbP)hFmmqcgP(g*Nn_QnIbYN zWVXnyB6CWv7(qR`W@M7dM3dV=t`E6&WXi~NlgTHOLnfbGIWk9NHpoPhNhecBE(4i8 zGCSk~kx3!*PiB@}JaUQ1U7(9hHo0Ep4w9QlZV#CsGL2-`$t@vQirgbIQ)F7nwITP9 zOdz>LWXj1cAlH%HF>)Ko4J0>`Oe>jma(T!FAUBXqAenn|$;b^Omxs(ZnOAbb$n_vM zj@&A81IR@nH;3EoWnvknWE&;i!l->*N}dYeB9d zxvAtTlN&~E8o3+fvXe5w|^aCxd#^K0E#jI3C#dEE@;xB=q{f_C0jwX=g`$A13K!VTg9OXZo)fW0`*UW z+FeB#TLHNG43P6Ny5VmSQ65wv0No-B>bx3i+yY&!9lFvgsL(eM)fB);cXa1A=uS_d zcIkk_c&N+!fUDQg)olPR3($=mA^u!I$0I60I z0C=2)uJZ*T@MoyTcYuk7fRoFBuOdK_9BOq95MhgM?GIIZ1u(DyP>~JQorNwv4Qf#z zD%k{GdMY5f2VmF^>a+%`W)Jlo1668(ZZHv0;eoDE4VCE!c&Y;AoJP}jL>JwU?&gGU zWdV2@2^H!C=m(Nae z0NdX}^@gGQKLy0MMi&?a7*hh)lBxd#CcOYN$I(6h1pID8m%R>EkANx3hkB1d_ZfmN zPzb163N`#4-GT>n?*SaP1gz|WO3KjPFTpf42W&+Fh8F?$^?>lrFcsqfTMq#RM*z7y zVRFvGYzzm4_yJlDqniu{Y^ea3seq6V0nsTiA0Gkk%3+FP07YK{u2ur7ro+@E04_EH z`Wpi#@4}>P2MnBqDT_q+JqkE!k8b`ppsXvPXg*-^5g`3By3hc?{0D%azhD~r!;Gv0 zEQSJhx&dYsFd=OL6L$c+o`5tROypZIneU+c&V||h9+2h^$nF9d?gjX%01UkcSPwxr zEdb>Fg6_W-=59Q?@VhWKZ^A5F0w$UQ;>rM{4PowrVG3S_Idy}Xd;n0-YZSu?LjKGHSwOK6c8t|0soU3|uO zc7_Wd%oylp^^MQsy2@06t`q1MLi~JzzFqZfd{(oVOx&oVv#`1>AuhaUJga$%$VwZ7 zZQ~?_p@#1JF@>c1imeNu+^{GzceQ$b@T&C&i*|hEyy;vwePe?%O{UU2j9fkJ)fHIR@rsby$89X>4B{}7}*O&&k z4#v9xuIFE4>L?KqXW+%SulQuf+5)zUR~q+`a+coz`|Q<=9|TD<`|q<+rpRDyOmntN zYFp?#EV@XQO#2Pd+nS-rn4u3eLuWNgWUwtYrUYu0kY=YfDk9BwHAA> z8Z1U_w3>9r@0f&WA{C6_vM~Oz_Glo%EEp&v#%WFHBK{MG3+BQQUz82yLw!uVLIf?Z#XA7v^>$)fp z>1ECqJa2l@7MNnWnEs!z+}!?vg;FLZ_on=t!*Ve_FG)+crs?UqE-XJLq$53|i*%J_ zZz_MHOP~@@#!D$=nj;c~U(@o9-7r1*xv{)mp!P+vT-@J^Sl|qN7_rtAS)5KjJX>BYt7JmfKIkSOfUYXnu$MNh%aJ;7=Nyr_<{|9@|oCx z^kl+!5x8q?Lk&T|cQesaK(9^wOk4?Fe3L_lFQU~h?r_>JH)$*%a&>xW~Pg5Ly-t^{dkeJ@rgbA^H@zCIuInBLb+`63_YuyLeGI`L6V zCqA3QMlt=%Vq>{bfVdCHi(=z`fl>0Yq?alG25d}Ad4B)A^^1?SM47?Hi8vRS!+v7m zk6aMv|0H}QnUSpie;i{G{X8%5FWysq#LL_mixDG98J@*RP-^{M(XTZ-I#P=fgmt91 z;$<(~{J+LPQyGXDE%If~KNK-AP>A@V7#J%SVDf9)2hCyN^QJe4fnxfX#lTz>zQspV z{>@>anEqukaKBLC%VOX$fze2japBjLe**>%88kv1aQ;XCux)F@xt1?7-aJfV;5Y*x zM*py8-(P$qS8CXUmTmFOZQ?W$-;pE&8?mqA@MYMC@eaPJJBPhwtFV_{r9!U3*@xuz z&QElb>1FuVq!MA${e<0Fo)ew7jWDN&_{BaYYdOa-J)PrSrLds1&UMlLr(v*h+YD2U zFf`B$jfprSiFBMh)0hQw$1jDMUadi(_+mUVfOK`nUtRGNL8tgM211t@e>m>zif_bn zgHk^W=5#_drc-N2wf{D`S~CnHLVd))nr;1?9q3ZWL@Q&V2Cn~pZkLD=WD}(0*)xUs zM3?TjBamPEM~#%!+UES_Vw0So*H-un{X0rXuN2CmU%LLuUp{7x_P77UtMoEwE1oyK zIa?v7_mvigd$D}+*POrnz$BgcD5evi&Djbu{ma^lD4`&6U$7VTmlp~?>THow;n$RZ zgRRJZf${AB!m$MCY;lD!p8cPM()HoX{>@>dnEqw4v0NzfW&P;q z9!p5TWJkMTajNeh&+iCo*Y1VaZAb_AIYYffKiYU6Je{dP=S_>}R{Yt5J^TZE1Jl{d zf5P{D2tWEh_7V%d3<74TP@CxF6pFbcx@T>iT+Mb`(bp(eq_coTcqnI2W0zbp&;5@q9?cYLqziSJL7>a!4ce7By6CHl!$EJRK;TNWZi zc#0g$kPw#agm2Uv;Tv^V7D8t%OnUTmi&)?9WOdh->dD+#oLE| z3!=pSNOJ7&VS)WYtgs(Q*FXHljIfL^^DT1?Xw89SYD>VKd~Qr@(F`!)_SImG-Qr zee%Kf{NMhEVXhIUOf}xnfG>o(_DCYd+%3i|a8yIxn5!{EXGUeMMdD`$=n02w24$WB z<$*$ZrkK1=Lbny}|0{mf$mCyPvRHqytmnn#)j~gdSxmkw7HINo+QQ~A`FYcu!(=i2 z%VM&dDWgI?Ov&ajSxo=3n4BpT^s?_0!-V#0{}1vvtkkV}oA_r;ZikOkUv%x@2IpEP zIKwT6aY!Yz$KEfr_S*yR2++%7A3Vd96i<@L?PzUywZb~45Wijh_qn1v#VNSI0t~&3 z{a-F&FPLzOLwjY#57MoQPuC5?Ua3*>8MNnBj4kq{{m6W<*A32`vTK38Z@$G|OTO3> zC{kw4UsKq{?DIe9>W4jnuG9WD$mbgJtVaG<6gDw9*Gu0Md&>-oAENs-K1(+h`L35a z#L)g~EwR7RCo*fh7HZnN#+v_KQ9lOzrp5$d|089<0ar)tALKy$tYLo_YwR6#T~RM) z81@RH{HB4|HOR|a?qG*~d-*HOCdLnY(0I$N?DqQ~akWBx+CQ#7@~}o8RIj1fYlrGJ z1N+A9L!D5M7#`(!!~Q+fz>jsnVb^Qm|0?*ugt}Zt9o8alI@0z4?*Yia2(mfC>c{wC zf2azXot*~zMbX}5zSv*t66AG7VGDU2aBYcwr>-K8E6DE>@~K9iRKFJ3|0^4LMuYzu z$afX^sg~KG4z_$C_NBVStYZ8)lC?d5Q{fo1k16e1b>Z}vQ78W>PEY&uS))$2sGkz` zx}k80Y1xg_&y63hBVMVD;mETq_~d0yF}`wZ>>H)D>yG`3R-=x}fMc$9NM}oOp*)b^ zJ4hFc`hALYQ;{xK<`{Dj`}Zj2)^@Z{osY~e=Cc1$S1Y8kL0W61p*>sU{)3r#q zANrw0JKD-@W1>+W_Exr21{`rEe#Q16o(Cg7wFk8W@k#CA8_VgZBCUTP+MCPT&U+xI zr+vSEQ`pC35)bjD6Ng+cDXe1bkss~9XOIDS3CQF0gR!?$5411IU>fqoUPv(-wAVD$ z9rfoS-(V~xYQmvM+y7wS;bhP{PjxK)+Z5tAeGbaW7c-Q znY5>@O-!r7_@#Cpi9IzT3xDDReEESdY7?JfoSyWZ+Jkg|Cio*+4TgTV$i=>mC?jAz z>Aj8J4Dd<19R)s>0Y_a)##Bd{&^}bRo=CeUK1r7kUZRT*nTQ*SdQC-o)W_~Kq_>BRNj6kwSLkn*|6x~e#3f(L7qW3jdTJYL z(-fqSK$;3>9g~8+(<+$44j91OS};A{UG(H*J?+en6Gqqpb8rsmLl3k?xEExGIua&% zqmG10m=`IAPf?tKwxu?_gtpiS+$qN29+dsLjC;5n<7TBPVRpa}CGE8dJ+p#LQ9u6^uKN&oKhjX04j>Po{uw$u zq&bKBR3QB|q>Dxw*vAlkOu=I>b-f>Sz5?_~kOAq~3j7{`juCc~Zuz4wKBx;}x-aVE zjXo2Nwk7?d_F9MbT8;c{(8dAiNB+VX3QGqrmj5!Rxj)K2$!D|J0 zy{u5iv;@|~BEM{4Ea~og^e4h8?0XhNdoOxxfon2byMR#I1J0JG_N2To`|o$9{^$t) z9Kb7KZZWW$@*&Knet8*k;*k&G5n-+m_`3qV)gZpFP&aC)p@>U;(ugaAus5dC&R4({ z+KVy@^{@d}QySXm&WB`ya(f}oAoRJ_C~qow4w5y9!8wkoKlalEmiY!7`WsK!4O!S- zL48TS0sfqx!L>>W3%F`jH zl|84ohm58JCkRh`15Oxl!4$W90~bC)Uel3BZ{R)pDjy}cK|fXU`>-R)760R|8k9?Y zzz4h#K7EQZGmvHm(hw%SBeRWx{Y2Z?*u|jC{W7~48`ufjzfXhshP23oa3~sS318Qe zj1m6|%F!TwB;;`bdt~|nzbFm0i7%Cha*02}qHai=g?5~QGRe+kFG)T5DyX+zCSf0N zg?ts@ubp+kKG!>nT0e#GjC>T}O-UirF9R+SK1CyM?6n&+2>koO{&<5A5t|5qq}bzw zcflv)zA(JM(wHlazur$#7{*}#9AUX;S!d(9$ICm>IILprJ&e2JJu|of@3-+d&u}r` zZ$T-e@ji|Iorw44{7KEUNqAq*o7+swftJ6#nKlgcyxsJyj4RmGOq+kA znKtiSGwr0?&9qgIp7ts2#64WrnS00#XArs-x!AiLBw01{WE+_pYvP)*5*JTa(hO%t z_E)$RWnwJ|?uXmpd{s-V_prcU8I}R$L5_VP$4QXme8>@d7KTiQEaxXPO#$RM6*63j zvF0g|V_vvSvz$|CnyRfe{V-nOg>x?}|LS~l3;1xuxrn9h*~2`@k>pw0fj!KXv!diW zl_i3?dcs%v=t6{*rsLkh9dJL57nMK3=WV^kh>GBTTLy|Afb}S;9E^BX;b7Oni!KWTxA|yKz&NVM-ygIREqj>c&7G4*zf~5r}B|PrFpDy(QLOOlNeqo#4SX;0)~FV*9nm;E*Ai6aELZJebkF?xU30+!l znS?IQf3<`z&0iPmg^;ynwECSth z50+yl@s)ypd}k70q<0f4W6GzH?4^IyNQo+%o&P*06&B(NYJfZAWo`}p1{y@BOPEI^ z@l!cseg0`(qoY*ll#g&x9@5Jn50s}+Oij@9rWeQB;paSaiRn!-*0lcS_H0oL{QEwW zYwi4}SP%GCf14AfBvH>Ek#Qmobaq(Bz3YN{+`Wsxjo*&JC&**sauiVtKV z%RiKblrEKpzz^Kwj5SAY@He+&-O*+X7R+Uh)Gpg2D{(JxgY)JSv?H+gNR4$kiCMw4 z4yj}W)*&s$8XQ`4ggO0SaV?NJKCI!BT3N$~wuA5N03TWfU%D~;)TZ#Go3W6S@;cTn z8Qvp|>y|1N4e|cmcg|6Z8_?_4D~KW zz4yZh{ZCq_L+V31{O?@1YBW8jJ%vi9zJ?K%I`rS`i`rGEZspj#Wh2gVrQ(K zAvSc*n&mmqcy){=3i**u63lBIoV_?njU<${X-zrM=o0H;e0qMHlqcYTXnP3Ds2o#F z^A_k5*f11zS*Wk!LGsU(Y|bVK(H_KtM{Ju)}t-<(Ym)AJ%j z!mnw1dakReM1goyNJlzDvNx5#IhztIG)PM!z4&8VeoDd!e5q190bH{tr=42eHZTZN zy~gjbf&v5E1!E;?Q0w6Ktql{v&%Y1Yg8;E~#yG>RasKydf#vZ|92>5X=k<0!R^WQR zKwcuA*CRc5wlao2?8KU7J)LN~=IKN`{MqBL-kQU9tdE*wy(kZyiROgN8&vVE568+o zUVz<6&toNNXxU5Xsij^s|J#=8vhd~4%fmkas%*T(B^ zprPEr+IZ{n-J78v!L{+~ffj-KGA+q~>dUf*U~DZMa!H0v&c$#KJNdHVmHU>uUicF8 z=X-EATY;j4!x?vlp^kBtn>qa>j2l1Lhq=a+oc{M8IsGEodo+EqqLX9Xy|bMDhmJT` z_b8{&OsuE5_z7qDX71by%oEETG*w;M!(GWX8YSk7G_0ZK?$0Ds!4W z!6k0S>rp3Xy&ZdU9p>3--l#d|d8S}~Vk6=uVt$6sVHyXzAM&e!Zxe{}$0?k6CwXJO zE#k!@pI*qPFY<{-J{6cB9j9o>YcLO=hIy~P@$c&LFi#PIb9h$bjM*8WtwcWKLEFHZ zpv>Vq8=R+8LG%8oQwZuaT+x945pmUWoIR_+d4@>yq0Eh+6F){rbANqt`bC<;68sHC zUJg9X!-PT>>5u^cmFK}XEEpeQ$1wNWkdK5sRwMrpQGbRr>;e$4A$%WO%%fOi4ATi? znNv`|A8@`=1kQl!fU|(C-{$hB$OSA)Pz-19 zz8*4YhjettR(tS(e$6igUth=?;cTwPd^!038T|hO-VcHIcOZ|IIJ3A1bS)r$oNgiJ zqJvPEY{)AJa-D@deIb`7INz9_dpBnKR;XWZ)ae%5^gi1DI@)k5Im7IUQ4$dlI8^g}*_aMn~cbA-Oy;LnBELr*88ej(7g z=HRz2#`(246Po4#)1V7on=ySL&Wz4M80Fap`liKM)>+WC4Dd^9QnH{MF`i7H1^INv zT9k;Uq}M}rcc2#msNV?W(+#p30ofFRUz`ud--7IOAm!`Lllh=hPD8ITGZo@ zsZ8Gvyyt<>4yeu{A~5C|xV?))su- zht3U#9KFGBFy!|ep05;OO)L6(8g#KQ;?mihEfGhHI$TjS*1U_pbsza%L7Ux|8{0wy znPQ|6^3K)WQ#8~JLVakBMi$!UKAp3LHuu7I+ zpFGro&S)eZzKk=CFQUyaf;WH27``alB?IA&_!RJiEwh0USnB~@3xHg!F(*qhY>AuJic;Ru^NZE3f22)`hNB_m9Yzrty(TR7sJ1Kk7n z9e>PGAPn!)`X}^jyy^uuI`{bL znXkS+eeIJ4d8uu`d@%jprcS#qu|{6?w_f(Q+;DVFg9fb@T(n(O{oBanQ|7tN3)eKr zKR^1l8vz?1pE=Who=^)4$h{u(BU<&ua34qzUAha9$TJV|JdTKWex2z zgX%@~|Mjb)@arF?2VMScU-g1Hotic|n^Uh%-l$&T*7F}7es5sPkR6|AJkQsd}_e^ZydWb zDdU4b(|g$I8kTk)@Je>&lWw}bvv&{8x!m`0?%32WZ%tV=@B5-eMSb<)KN5ZkS;6ey zy8U^|XRUuInqWWEaaeTh$*(NVF7(sfwO?3rcgTlvXC{0cHMzvfdcwi@mN!Or*!Z+n z??cM2Cl32ea2w!$t?b;1TcO&qTbj6x?in7EIJs^0uZ=&t)b^UsxIaEWpu4xN-QkSA zHX9wM?;5xBm8u7>hpm(q!-n^1^L9Z0=wH9HI#!YDUs1k&bG>67gXhc{7T)yxcO8;@ zdha};^ZNM9T@6#4uZ-+*@y7>=`R!j{d3ZtY%7#lOPx~O^Qo_D*d+fJa|NQBS(N?d1 z=rM6z%fg@^mp1pxxx3?m?r}oF?Ok_=EZBJO{l_owIdVpIgqq|GLBH^DA$LmGPyE z_TLY^wC%UKLu46eu1#vx@a*s5tG6U>dopTV@hu0%dG*J;PkD972&vL_T6LpO;MCzA zj^6$vJhk=GLuCyQT12>RnDyR;TNj)1g}C zLgx3>sOm5Hva{QJzqk5Y)y`x2w^nCb%sbnD`XsNtd#>GC_vIfA`<}@SzLA}jar?r- zs9kU8_b&d_A?)omuNhm)CZ2A2fg5+Zuypp7sw>mu9~YmzG2o>2nfY%<{k-Yok6M{5 zr|yJ09Q$M$os?fcfUI>4cCujwr&*_<8hI_T@$7o65QxJ67IyZn#JCQ+wf z>pA*Xw-#>i)_Zf~;f%t9dTkvZY5U#zI3(P9+@f|JZ3^ory}pJYcPg>KzGzJ|e{FPw zmCZ+A`SQ54Rg72j`dte~+fSPHas2Uq>Uyt!m0mW<_Vk0ml3Nz#J%(;e?d83wo@e!| zdFwaD$})eyTCjZ6tdH*%U2VcuPR_X3qRrEt0qOJJtT>uIahAsEz=xkMQzrh}?6j}C zdb^LjkzXnf@Ok7ispwX0gM*v=2UfSTxcA zPv*wy)fb+e+AwBd=O;z4%3`CthjreeedYJil1@uLnY$zX1LfWIzi&IbV~SIggIB*` zyA!=He4RFGY%{OaHNQknN?*Tu&y+-!@9MLs>~6aaX}e?kyN*Y$Y}!0$t=#g}w&ix3 zds&SpJ$1U)U{KWgMx(l)eEQnB9!)bkC$z8pV@bif{OBX;;cdPQn>Vw(b62ETUD z&v$#*_S>3wZE@nARj)StVeF%A1MRJEweOO=sQQaWr%r@Vb9&!)X!**jjE_gET$PV= z?uQ)T7|}ldVf@)9N8h}^XGh?+q2*pp-L3tm?T(lj^!9-U-^|{AC33sg`O&2cKK}By z$n8DW7sbwrOz7;F+rh=_*3xaSOuFmv$LB+O_+L$(d%jT--)HWgo*%O7Ggp0@n|)yM z;xAWP4IMgp)0)uVT&GPb*m1=|S^v!)x8CT`?qc;@x0h|6{ME1bLlu7|wMib?$hVs! zbfo=|(}TZRJ7#^=g;4qao4xwqd9ZM4nRg?<7N>qc-%9(+Vtr5h+`g^98uwGh>uXlM zJ9J=C+QEH+y}v8sj<@*o_435rSyuYHecG>hZ-3xjx$2Yst!EC=@2LLnTEIs|JFNa3 zGX^JER=<06R8iTi8x7+37gT2FX3bjFIHiB-{eh3#u+wjC*g5;Q;~xFJyxmtz$Bx!3 zH=OusMdR?3V`dF^mA})bVsYY=20rIw^E$6qF0$HtePYKOErv`QU3jfW^P{t((!W2@ zF04nj@3*!|yN|Ak?s!&ze%qy4316gs{@L71-|u_P#&Y$?@5x%+9@eRG*`7wPo_Y9V zWy7hujj`YNT-svNw*JY)#{rg*T9*a-RTf8&iygp*8<*UEM z1rPOG^h5U3!O>Hqm%3SBKX>+cc#iI~3BNXRee-q8nc3?bx(!ZF@3yBzy?L~E`dj%bM&a5xotw;>gm~f*;{U{JI=4Vw?{V5JEoO<>AndQ7KK_Y==t{7 ze?IC|fBpT@cju-1WgltQaYw|f6~UiwJ^AIs7Wd18Et+O*&FRr`#oRY!^E|drTz%qb z#+RQZW@(*WI_}vX_+ELb_O?}{Cm;4o*;9P-qxee?#`Nj>gU)SD(vuJF_Ivm0M{#`v zj>a#3bA3vW%ehTkMoxH;m*zYs|IXbvPM6#XT+X$fv+(!{m-An2kA2k1{U+D(v#-nd zblV*ty{X-tUc*jqEG#&3-Qo1%Xmwd!u!t&C;FM&n-LqQQw;d`YG2_bgRB_4cYPbudVOT zxue}UeR@*#tu|k`Z&H4`!s_0Hx05d{x~g0edfv0gp&t*9$>_W+s>%D#E5468@E70M zd0Dzk>D7Rr3rn-3R@?AN(^fD1ocWdXOP8hiE~-kjzq3E|MsCa2O};FHlaz_lMSmZ=bb*Eb@}kg9V0_m2DFdrGO-)?-PY54>TetJNs|!ePrq+ly5Z>0 z(Q)<}J!DHd4h++Oo%&8negDHhy|-=Ji0rG$`|PTJUVOXltTWvP&Ybn#&2w@2y7Yz1 zl>4uqbDjQqH($?5bJxc02%fjo{k0C~V>&mo3c0#?=$^|remY$I;Iknfc`M4eJvK`w zoV8v(f7PM4#}8Pw`4x{=rGpmtnUSBF?YHU3YlY=;Z?v2K*NjU$n{S_yyk%!gkE2o9 z>zYrUw`NV+&tJz?|CwE#`y}H^O4~JdyIKU#zS4Br<$5FYq94Df+`nk&g;}Mt2Fpf` zIXSW1yZ`B)i<(`Ye%N=x^`&i|>>Eqd#CcGzAMHVmGpsRS;Q_qF5rUqM~R5QKLyr#1_R8H8$+1 z(O}1J)F}2INNix^J?Gvz%W&mB5})7mmjC~m5A59e&Y3f3+L>}^<~E-F=-z@&ZQA^O zWJ-;Vam_p2iER|_eL3UdY~z~G>g5G@bh$Na^|+U-p7r-`9~WY^P&F@noL7bOuebXZ zHXG8Q-K+MqbZ>fRom%|_~-8{9bQ-A(%V+Q+Ev`0e`9vSzFUE9`hMkk z)Vh28yqt2)XI$9n?Y6-5+V@{o%$|Aw=@+qWzB^P-aC7fhtK#UNvY%DH7$eM{HcsWR z?^Q;|52IS|j~_Pdyzs97mch3-9XGeHGQIjQU)h?SjyY%Dv-63O&M)Wgn^m`b@>fTb z7u^olO#Je6kLmu|+uy7|*m+!dRyTj+uYCJBUk<$;?Q&&Ez{vXfW)%;tvUBRUBW&21 z^f|4jbv;?ZDeuRzaZ?-5x^`aOro!*7Jf^rE9AP=ep<;5{<*#47bjmO*_iW0-y+vh!a+lAGBUiPN_rCu%9y>3+H@!MxB8>D@6tBYk~BcF}l z^Y;kV+xLu``at-*x(jaGIv6l<$)LW`dkXKnUFmpk=)t7)=K}y+iyd6ZM^<+d&ea`IySmu+<)|xE?S>?jRPKyU)gWig<5{epP#)nZj7~O_8L=D zyJdGX=X_lo=EhGo-wZpvsLr=f9$62W-}J8??~Gp0`_k;i%kAGS-QT;@y4#=kY*(+` zy#beRrvKGD;@sn>o-Z1>YKTk6hA-Doe77$=@&59ACsn`Y*Yx)JRe#{c33bgGF5YW4)i`dG zasb>1N`r<~n@^akfZB_fe+5Tn2_jPy8GyXoq&D4BA?c>_7cHMv8 zFQ!qgRSPdYDSyCx@v22@ce)-P{eD89kXO(CR_iy04gAsaY0AQ_Rg;H4zPagM#aRQ# z=3ZL;zNv4^yCXw{tTV>tzFhz7*capHH|tQ&^6z#t1{v=QvOk*ceo?>N`o`H|+v2jm zwF`T4*Y5m-&Tsl}dAcF{XyO`&soyT_0y{~Ee|yg5y+x6)<)aD>%Wv-6YVEl2oqfwK z{4F(Z^_opZ%Le2fT)yOPla||m3UMEO&sNah7+LXf}sf`NcEaa&7*zJrCQjpVc_7BB=z2V?iqRM|)q{G=uZO3c z89(UdvzLdAUmv8&-vr}Jm_ThU0rvF@(a8@Gkfb|t(sOm za3t_(%JU^NzlaLzYdx>(c*mQ~>uibHn!2{urB$7G)v5V~RqBQ%%bR!Kcy`F0r9-^V zd0Aii`}bJ^N3Qx7-gy?~9a-y<_2i1bt*RF?EjG~e`SgLc7L7h~GTC@vbj<0KTb`Z$ zTsJ{8U$sjAz1P)Sntevj2Q!8{uX_BqyRUsrjp21$)QNfdtmtfQUv;CotuFbtez#+k z`b+BuUnpY^z-|-Q`>znoC3LY`9SW<%Byg$0SXS zS7~3L${D=xRdVAn)1J=?URH@tT#}x?u6uunF%O5YcslN8qSN|_vrWS~WK?NCquKl0 zwMH%4(NGnU@nT`4lNa~bFA8hnIUs&t`K5n-r_C*_=d<%qn+is4Gmkm#uJPXf!SsrQ zl6`_J#}Akid}U41xDnmG`foP7-Xrq-{fBuf(=9(-f4JQ?Z_>WiiF+xqbmDDmQEJu-u3OUD(iQlWxX1csyD1%wa=fU`W>s%JGE%+`@qjy28Nca{r


X&_E&b;MbKA6^Kc$;rkZSz7n=ad{ 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�aett?ci%Um-+F-l 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%0Dnss&VQ&c=!!2S<{E(rJ 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

ZkalGczhegG04p%xVZM*4@h8KqImB+N zJP{gSj9oTX&Lq!XpNwSaZwJx21@x^R<{De+TXIiWhQ8IEqxQ)e-D^{BnBN>hg4k8+NI$7%@M(cmIk+E04{r$#>!b)UYWA< z{=k7}*=LSTA5ATCZDpNLkTsPdky(KX@T0OuO3rMPv&&OUJ$Trs^}`L`aOh8;3W%-B zndPbF9z5*T`jG~2B>DkaAZND8ndPZlJb2iz^%onwi_tIWx`5cSoLQb)<-x?OZT%#JH;MA0#{$^8a%OqzQyx5Q-ukHqZz|Z%?Gc_ zgNF@VpKtK;DIa<+Ambj+El(vqc!l5<8N4D_zXilTo(0}o4<2Ko`dJ2V7UeT%w#m8W zsr4Q_#zys*8@$UYpEtB7@m2k`2Jc$R#~HQ(=3<5CQgt3Y#y|C? z2Cp;_{UN;PwUe#>6Mb)Wp#M%j(fgwBMeloczKs9hPv^H5o!9xx__jK~K766hpWxB? z_-1oYFa}`!6iK1?1N1Ym&d2_*C}7W;)%yWtjKBiOq_RIz-(SR8K+2!&*P29 z{P{Hc4;egG?2`<-e>VL)gr2WQJ~2Ao&~cw2p6JRw#Cd_b@5UC~jSV5X zQ{wj+`$6tvlKZm79@;~C=%UWF%0F`q8$#~Ow)R6h<=PKIi;3hlmGuHIyt}wdY_NYu z_nl@h-W2SIXlN4l!lWh{d)x9zIc^J09C<(c=Oq6Z@F#rTqpwrw>r0DVeSMs?WZjZI z<1>}yOmuX1j|vpOtna#W{WDeQ>kiSy=<6QzHDlRzDb~=pqpy23o~y43FYXwnN)$ev zDttJile<~B6krTkkKWA$9rqp+xd#v37(%u+Ajj&FZ3*nx24q=Wc%3sZ(wqSvLZ*qH zZ9sReNuX<#f#zBT@9L~6ip(8_Af`dM7Kz7w5&omD5 zOXF}phQrt|v;Z7*XajPq9$BVwkX;&w^EkrdBSMCW-V~W7a;%K9)+4tZbYfV}=71lA z*E(8OiTu*x$SWPrSsSOZGj1D1NA@D8g#V-sU0Y4o(GG2^aS@fa)tX4_{p6eQ&{g1x zPe^pG=wV$h^sX)!XO?{OoxXj+;q2AMrV@RdT5536xf+KvO~S@c)W>*Kbgk%Loeug| z<8bDQGCrd|#-^fYQ|MlegRa#$oQWbjQv64Kj8jF&ir&>Y=vj@!c`F_0NAV@~F=iG0 zDmqu=pkp--=cULPQ2a`Lj9*2!ioVr2=vR%ynJ6jo520uK@MYAaS4G!q9CWM3;Y^g6 z_=@1eKE}49Q$^2e9C%UVz>ALfhv3CN#<`+TMaOC!cv0iPi(z!8_@eq4^NKDN{i<=` zMU4Y5${DBPm+E8uD|%FPtHyyBH4ePk&H1L{qv~TUEIL&5s>XpAH4ePkfu0mz>|0Lv9y(tEIf4$w7B5LT?oyBMXf0 ziafNfm|~2o{aV=3;uDFZv&tBwW;VXp81=CBb*AxGW$;(U@KMz<&igUHf5PuC(jV>G zrXb@{Sx5gO{;U^*p|P77C*FbX2op#8k=)VtH073c>#g`zWqi2> zQnAHw;eq#j2zX8GiqC z_RI4=&6o?>)hzNs{Mup0T&bWs7bi@Kj~;n0vhN`B-aFL5(kC zE}O3Sx>=*`!ylM_H#($0eRRYL#$4~2KKi6Tee}g~##{sOed)ue;w#Tkheg!kv~SFn z8f46MHZ-X?L)(|H-!@>(m0EY*fH9Yx^(gwp+eg~*Gfn_D6kloHgr9`3q%Z#vo|5z8 z#3sIxH|-uxm!G$(Y3FDr=-Sle6Ws*QmZ2+T{GDFn!DFnJ!A~h;x-@>uFg9A*Nbt}X z=?V`XW3>!^OO1!$vKyUIb}@M9jPwc*9%Ho(eoT#rA5(maW#|p@Z>Cpz@EEIQ@M~&3 z{F*WJOBuRD{GI9BJa~-NGWa<)9)3>QyHJMy5dUZT4i6q4XQb5WGTzS4jELC1vOm@tLOAc<>mjW$=~i^zfC6 zJ}E<=hz~Wr&V$ETErah=#vRgH&lHHK~}L$`>}HGQ84kFius4@-{eWv#_dGwg)H)nm)}wt6f+O%q^S9gGQ~#rnZS*lJbb2Ivva!xr=d;lw%iT7~WGaYO-`$qzve}leP>o@p)dL&+^d819jPU^p@3Ohl~!}$=-;;bl9=?&|zXv%UDF( z@<-4h%s$|q%nM06$2|Hhh7U2t*kcR&OmtQr=N0DRi_FL0l=p|vcLmT{4s$a(zI=&}GfaqT}0j>PXcC~iTdgZVC-o{Vn-7Y~J77>Q{eX3|B61;-DCTM&V- z&!>z23QQUbw~)J|RAme0ZItq&!}6x8v0}$L)J@h7aHn+?-CoflXYE3-v(Q2G*7kMV zw4MrsXZuS`<6WoECl)`UUuR7jRA=S234d-h`e_C42Ik5{ABm0eWY>FKN<&}ltN!MFyAJ6 zNc4{AB8`LY(KzTMnFni-`8RY>2Av~%NaLV)G!DARVLa4O2oCxuQwR<^NaGY5oI<7N z!5U_QgYFSsBl<_y(4-?bdSbC*JvE{PdB=$VGcOx9MLhNcQg)q zM&qD+IvDFT%m)X3Bl<;jj>bX9XdLuT8r{{f5FB)k=oZm88VCKNanLz(=V8M&;Gkzj zuZXVEIOrCQgT4`+)o_EWV??Kjp3yky6^(GeE0zJk@Y#q!ijCknfP_E*Y~rwV+YUI)P&B>D!23A zLe@3S2ETg?=5ok zko^qy+^}<74?n5UQ??xL+O)}SHXljjU+EtM`~jpRcAdoS2>I5(jhA&%a&A_jEy&st z=BSUp2`$KDM_oBGMDIJ9&{j{q6OT4L{?>TbIZ!rPZzbiBwRFLMO0BfxPSME$S*u05 z1*|iZai?NEounr;PH{(#yFb|OSz!-_Crv3|koW=OloLPnE6!6RA0FRdc$y1vBJMjj z!+odjao_2?+;_(^_ub9<3;oyQzQX6+xAU*=JNB&mPRY7I{?h-=eRr_TNB+9^>#Gws zTzU6~>eZXBGz(Fa60~&DqHDslm#+B4W#N)J(K%Z<-(?;Lz06+_o_){8)oj&R9pAM2 zGNtBhdf@KO@dWS98{Kz}{Th5f$HooS`XUeaEz#!9iF}kRJ*1SVvX64!Q%J}4|2Np# zp3E8YC%Fv#lcnuJ5BwJRd3ef$5xQWdxl(RA z{uStMq>#$-#6JHSQf8t5d62rAZ`q?^*F68$RJ{T?K9LLlK0X9IF$BDJ2>8|^;Ew>8 z^6WBA_USAD{C$f@;I?Y7n()6h@K;9)7WZSADn7%v;Q!XFiGRkB>fa1JJw>pUI%42& z^DX!_1sbek20o4~1%70f3zs6u-z?sP(dR0QKikE-*?p;{L*TD4__=f~`Li87HUxgH z!LKp+R;aLEcF^+J#pZgi4gI}p?cMj@wYjP!apz_Us#;qU-&EuNoKdYduD;v-HfM{u z0>Ztqh1*%UrbXRy>y0Z`t-84?zVYs4{GO^?bt-q(-nqHzzKENm&cOcA$@61ig6@4U z17V(vUQD*Wi(U-Ww~uBZt~vf}V9It^j(arPz_2wGeN&Asp4>ol_dWKPNm}lL8F)2~ z38-CtzeT+}eiu8I>@O2;grS+h*WWPVY9DMgx~}df{L8;M+bViE-|^{u6vJ{1MZi zrvNufTjRZM;8LEcZdCpM7}Gxmf4T=g+rXv1Mr7&Gxdtxv^}??+a7jPxN#|A%oH2j@ zpOp*#^zRuW{VfJA;5|5AM9_TrSuWU0?hl!mF`E{ zFp=nM$;bAaJcBpWz)f=+s8T=i@}Db)7Jpy&W$623)#&EPGa@A0Kv=+`U3G2TPzDMhJs{|;IBZcDs9BjaO+nk#hyg2-p zO}9O8OHujQ+Kt&|8|Gz?T5)Un_}YzG@?CJt%IR}gBrD5qSy?`=cFgp7E0WW`zhd*W zxwX05cHaDz^4!|g@i#}0nO;)caQw{`f#bg)J=O`(mfw!5RlrtGFRY!&@8`=W*3O&0uyz9ZPxy|yS;jQ^;m~j78EeW{@*U@9DdW5m z;T2NO)bSIe=S?pn&l4*$$4`BzJQaDWobU=rP^-2L%ukVDGNn$9VjNfUonx9d3xT~J z`tsv~f9tkmx*TIDholiIA5)ve=k)Pyzqnb-HjA<)r-f@9kH13sX4O7){FN2(My{>T zMkiD&>32~6*B5;G@!gbtCG|K&J=C-rwVC5@thkl5%BRh&l{^ckU0Um}mZrXI$oDCb--T<4v#~AQ} zdmw5zY+gNwVdYAz3gqRrT%FuJi8wT1oO2DBUXPx@bUs$^}3HvMTi z<}2;1|CoLZ_oIN9#P`e9ZeKhb%~sR?mLZhL>5m#;bh1B9N&AE5Ka@_g@voD_Jb(VY znlV%$|@E4xE<o zt?Y??jrC?N>Y}DSHEYFp-W<;Iy*hvJw@I&vl|R`Q0%Myt(*JukeIlLHKM>_-w*wc*188 z9`=NX37_T(pT->lc}_II{Yha-KaV|*xlXi${Bou(D_)jM_!#Ea2+y9jqI{rg#E8L7pt0VLaJ9!+COeF5(%%Gm`ye zfwl}j*f{yY!(Wm6lGKRQ(E`eHJU6wnHDC4a!cV<>7WJbnG0G7xQ2S!XSwE7`x=eh% zJ>^EFJ4uA9r_UeunpL6L8>yA6oHJ@Qk&7wf_`ochS#U)F-YNiL8 z%j1(*6(RIoHdXiZ)E*h&M?lr<;^*o zpDmosn!kV(eT{j+VR`wh6!&&Lh&dkneSRdyJZVg^Rw+x(OEY&84ydTC^Nd~ZL?yre zJUBaQ-Su+MK^gaUIK7uqu1hJ?;_F$LI_jd47paSuUp7cNIBU1R9Kk$Q(m`IYet>cy zD0Dd-Q;x%?u9s1cn<$5r;bdq;+v3lw=B1S3&S7N{Tc*LvLpd~Epih5!I0vw#`+drD z%+RI3JfC;zGN3%4cgwT9UNtZNscOEd%!w|gTpzYPhd68QLzm~LgOul|raT8J&pFCd zPkAWUhb>P_&POQEIo6oLH_v+8>l}PTdld%)%|+J-nr9zGMp3RDcqj`VN{z}HnWJ)+ z=Xm&sy+9uq{uTaV&6?)p2G#=z|GdI_xh%uS)$noH@Nt;1cG?R$P|*!s__*NuvS^s~ zVmX08#q8@@7a)BY8FYSb!<~CsO}~3BG_q|s>8@r@?pox=49fWmJk|(oMj#M<71)i? z@>PR(<3SZ|7g(7GRtm+0*Qui?Vx{<(~9j%H{5j=G;`$6_`#J__?j_UR#l&A_IfuFLQMw|3p{H z8Igi3GVc?}Jr;mP#6l;K=!Rlx0k>F-ZjZGmtnvj;gN)a;*65xr2r{;GQE zTSh-fzoNY=dVtl-K7j4P=9Ygb=iHT%O+x>8eN}`$HsYeoem>IKI3|)`$r29Si226umAw zdVeU;yomJ{-K>KNP_Dderi0FwbscJvKjD16;;uJ5rI!S5KR_GK$+mkDi&a+%Ye z(3V`nzD3eK%$Xc($~iNGc9Szy)&`wk)>L#RmvD~9#Dh=nnv}Jdb67e>=kKDQNmwg= zw41g}R5-m-rZhS~zJmScGM8Mz9!>DV^1XudUKkgj=HB5rW8wQab3WN<(SOt-^X6d$tBo+ltJ#Jlr|K(^3R+@zc5SfQ)8s;+;RJES(nfv zg)A}c+1%0Bw_j*88rrZ|a9{O8!Od-}VJ=_VG)W!gEXFm+5_rFPbwjXu?IHR|p!9{j zi=8(ztPSEW*9&OhOI@ujW)D;I51~z8aPr9{eL>E%r5r2&Y7oA9{cPW3vY(Z~=)U2a zuO_x7R!W&BwpHK8z8TVb1-@FlQuW?>htrGg+*|V*r}r>?wB|O$Ynr!)?Og}$FXg{TbEU${GfTy2Qyt%Gbi#hcWVDZAE7W+zfGr-_qcv zhu^q2on8OrBE1*It;6I$4qs^b>!+sdj*q{D7A}vuda|0lgdPcaD+WE+ke{r9OTuG~ z)NM887T%FER#Q(o14rarhIM55vY(Fk@yBF6vwQw`JNxwQx@HG^qmU=XTCjZf)E(q4 zvMwD|`izlOA^SVnLzhX4PFEG_LhK6GOQl#dlh2;H%vu9yos66@l46}qK6~Uc>kXW> zF>=NThuC^)UJDfy-<%aMr-c86zpyz~r;%Epxwtv+jkCQ<-Aj zOJ=KqvCc*IDoOv7_O@rpr?*2Z+B%Q(X}jrPaoSsj@*`>5$`M&WyQWP$#c0z{(^sf} zRMx&_7MZkz$YEq|DjPU^D>F+CJR2LHHGQcOz}ZWgS#IDX7>6NWQlo*hcQSK}fsc0A zPNl{HXRl;tm4S~Veb!W^CIV+~Wag6wK9TfUN0pjFJwIh&Q&jX2_l>2dgG(D_stlYp zP8Y#jgSC;v8mhtCC?#XULE5N;wNit%krMbIZRD^9Sho@9+<4na)=GWzL&zQ(^UMB= z4ymPKU&dc@-%=818*g6Bb;muJPx_ckjT3$8$2xLP zn6+82{G}_8OeMYg&>*ZV~_d>=J z8Rz}Nd%34(Y+mi+o)cNDKCbX&e#EhH#yUVXvCRF~e|#O_|10bN4!I<=tY1~@{J25n z7h*YZ{I6;qo;ay$ou5p{JD`zw_D2i3!$M>v*WCRC+g zp45r{6nU7zZ@pz0b1v-WjXHEFaclI_2WbWn;>LZCRPQSWLN9XLH6+xS3UM z(;Z9F)Y&r@)+w27VV#mV7S<`LV_}_={;LIY%84wHb3~G*ZsVo~7Sh>PzUk$IA{sY2 z&seAGgREClRmUumjY=--q3rUvlw8(Bsj6eTPo*)GpHojSC3or>rsSfhhUL}#zd~If zPCcuY+^NUD*S1~HQRQCrN89x4J=jIAs*LjQF2-D7H13he`@ui0F~TQocZ&s!?#qp`mAd1^r0CSk@*7>%krR# z{Ozi~N;4|qIG-)IRC15yE$~0up1A?(pPwyPx8Ciq`fsPgZ*L1jtT8J5h7P%ozobQe zeh_;y*nh2*|5kP(cI{7_{cJM3(<}dC`lYTp^G@_=|JT@+V%Onnu^g)+(jwDbr@}8$ zCnJ%{rKQua^F_+F%J3VRY7EAtXZ#$8#`qEEwl<($=X3vF?;=~J^_#Kr8xhp_Q!|3^ zx<1dI(K7#RzURu^v%L4Zl6Nol{zJbr7XFpF%iowMJ;t-yAq+7tVNBa2eX{vJT_Jlf zOlEID_S}2l$GnyPzWprj8P+gYeS$p*WdFOPyw_>%nIPYC;X5hp55r!G6ZzI`QdT10 zN@ol|XH52S#`+U`=4T)0-Mt-UV-k+9W-cl%KkNAHFKEF?qj@Yk99oW>^2VqS~6+Sh; zhwgmdPvn_PPu$O9erpb9Hv0lt=X|NS=UjH`EatexPZoOsXn*p4r|FM*F4G_H`)hwC z>@#TkW3J2e$GiR7Uj_RRnEsgWGX0&W&-qd-S!ZYZi&y^0d+m>^Vfkb3%k0_?a^v7JK>94&$mylY>{Z^Xf3-gtdpUhX+ z)_Gb&dG*MjmO4xJ?ZTXVu~FNsU-_L=E2tB{QVu=xZ%Qo$OWrAUi90UpHtz5KH{Ol< z)4I5v@i*R>H*Sh?;a^`MC)YgNMx4g@)9-&{-JG;de{R{VpsKpZkuz1TkCSnSjIs5v zQa6mMk+OgH#S#TR&!WBjk4)*;CG_h0;y`>df%=DURvD<%6x7GE9+JA4mXY5Y@a;%Ho?o_{9@re>j z9%)2$w!UzbDyU}4zc!rVPn(oI!T$03v#s6kkebR0I{E$ewc8VHgL=Oi5xq`sqd8Y2 z{oX_D9j)KZ)qP@0l>bNqZS-wf#`|CA7d&^`2tCX?9iEl_`MbPUKVp6Bue5`~vm?*i z&b;scipO0n>l*g+K5vI2|8bd9s^nO{$t&L^mT&k@^ETMIxK{k}xbxY+nmHjaec5Ns zKUKKB3x2OPV{Hk2au=Q%Zln*piGA08@ibT~&)H}F;rV&YAANU^{^QEsIc`sXdFDRq zk74Zp-h}x#`BrZ1TGsBp-;X#y{&|lst3GDm>fJrM^kF~$mafqLkALp!;&FNUulktp z`R&H;VQxH(`8E2w!Z1H;2J0U-Zi_!&%Cneb?zjcl(#LJ$`AcaBSwGllZ3+9+`3&aK z&ypYX$2{x(*Lf!2dJfFVsr4XIF7kcOGSV+&l)`ZT5!pjZ)?yqZ-!{p+}8fx?>c z$K_jd8E_K!MdXpBr6^R&*!upij15Xud5oYu@+gliH_!1Xk6g+_)=x?qlu-tyltBq) zu$l2eDPxE-%Ak<3Qz>OoLKzhD>_XO07T#u<`OY)@pA*RcGUD!I52o47m-Zmf|5ZAx zI>-FvE}ai`nTwq4Hj1~H^P$0c-1YmJyEWI6$oy@rxz|bO)2APh`CXY4rSVvQAM03T zo>lU|%{mgPuZ-i?Rv1P{9d0G%qt~*?GedDB{;N9At=6Iq#O1IVmzUSfS97y^O-tpp zSGkGG1w z%glXo*bDC_w|D1??(FMC`LAT2S?a(F=9+2v&Ffj>xPp0Q;>q{I>#r^3+7sDI=ALE# zx3rnwqa>C+NUV8a-gQ{4)1=ob;AfGc;`JG6;(1E3)-8HVS!Ym4-J9(;_^ykwK*9@# zBm1sMovOE1o-G@^L*dk~*L+I;NWMs0CF>3D=h{f%dN_J&*{;Q06Gu-!b7Yn~*1RU9 z4CHyY)+OH#)aw8wPi4K8tRIrRvDzlN#^ihHA!gahd-;CGhq5ln`rfwe#UlH)Sb6ak zZNXE2oPI!bFrI%u-l%tYFYaZn$}!fW$bJHIr2defzEGp%a-KtHQC2VV+}TT9%Vx13 zkB_xWm&Oc{=g!B5dy?3bI_X%VE9o@*v)n;>pXPabUrZPITgdl!6PQOYleJ6eEc6&1 zemHH7!^SA1nYgTEyY5vFGh zlrw)aU1fi7f1%AuRb$%bruRS3+sl~F{(ioUTjVG69U_l0kMuhxhGFSZ0~U2oj7z~q zPUxT3Bgg0RTtMbKbeLL~n1evZ-a4JrReH0P+^e#5p*ZF@8LHAVyBfJPJfdHZ<(ez~ zE30w;q;kJrCHYC^-q3?I^Jc($8kH$ufSfu`&SXx?o+dNtxp^b9<$d+hHwCQO*l)?3 zG=B1hd=)KOronF^z>eMYp{2Zabx7Cnv4n z5@pK#rhPuws|LVM`Eez8&SRcba_2l|FI8Tmr;Z9sj8Qf@eQ)4bq~uQhw=20*Ki_*Z zf6jRNY;yb5WmlWrUT=mfxeiyK)9*MoCH^u6t>tuWVV46ZSNV6S-FwnIG)G)6I|D${W(w?`-$l z?K>r(^E+vWR9YkwelsR|-uZ)T^^FM@Rx zCHMHt_grfHyrK{5wQenpba`1n+S533M_u-2WbbqtpRVXG_i>C{9X3Q{%$#GUG@%Voo0^PTu0_-&+0w0r`t&6Ban}Dn`>D8>{Go* z_HoNcJ_dQd+gwNHXK(5~vUl5fOE$>`^v+CL4s?9nz2 z`Ax{Dp`SV89y9!1N@k>Wsl3HtEvvhWnGfWLqvR?^4arGjSwe)h86!+wCv(~-*> zv~=Fb5IK9-?qLtWegrIan#l3BJ{>{sjWgPgK0rEK?JhMcl3IgC6VIb~Z)+3xL+oU)aD zYyAU}Q?{j)?cM>%DO;b&hajhHODWsEgOO9VS>GVP8oBJ_NZIba3OQw4atQf#vc4JF zwa6$}?;+}6CT=O$Qp$Dj-;h(T{SM-`it9J)Yvfg2za?KGuj2ZxJb=84>(?jpDz4wG z{mA9|rCjaTuW#S!p|RxWf6KER>BgilJ@fYM#IXfLwCHnL|8-t@7v0F}e4zYK;0<{mU3v zbUMeF+W*rdWj5B_Z{KfcJH^$Wdd!M1zimP2Daj&Y@=`rdj%CY2;Mnq>DV^*kf zT{Goh8_xV6pP4&)QgDcQ*1dSzCnult^PFL}%fW9(#BW3zVQ1`nV9t*+A1Uu$l`sc6 z8*sYBoTFr}kN0!R{mf+>yw4!$+9B-@-dyuC?pk{&G1ti*xIV6Me}p zc^_9~d(pMoE%U?HJa8iG7Nidfgp2%3+|D-Nt1R4AihtRQ_0$Zt2AQ$7%-t6K{aw|i>h+pwHkTPYUJtF z$ge~$@z?R5z_I+YpsH{Ut8p;9AU&nmtKZ;E*52kCnVET$CXE}M7-Kyz5+1yCZnu~4iIuIKM)0s9R)Hl4_HysS{Ho>5-qfx8|s= z;{wYt<Jw=@;}b#U{7w>1&hQ z^=Nbf44`yU0BvwEZ@! z^x8zG)hVuS-s-RVZ--XVnd}Hi`)}ot>+rRCvGVV5W>jhijuTFCbz=hUzyDeMi@vJH z1j$OM*L6#sIhQd(r7DooX9<6N=7`Y~CI<%vfqADcJ|8>vF&Wj~oM&p6oZLxPI<`yc z(B7J%`s-^vKCvaxZ^p-3;~{;O^jW87yuKy@yUaiNSjR}z7nRm199&7?Sr%P5IEQC^ z2RzoZSn0dzo0Cq>*rfWqz&ki9DY*WR^?Cny@4YQqU)BAJ)js~Y547CdCJoK9v;I}p zmrB2KMxUwN%hGGJFH*v!dlOxbBYXv>u6NxcUT&YUoH zigZrnrDM@;l00Luw}-k7kY@~bxo$J04Y&6l61V@!&xdEZuI*uoKEM3q*UK^j|DE?) z)wRis)OFNX`II(6!jX1CemectwaG=6vp@Y89rj;!ZSr6BuiNDIcBR;FSI5pW*YVf! z@Z(PGx_p#3<3VLq(V=e{p=Ut1&WHzN{gqZYYX2bj&e zNEvq$w{mmtqAPj!pKQCN@A-4@q2J?lUa?j?WM6Y-cX2LlogNRG!ShdF z>$GX|0gMavxG#77xV#HHwQJul@UaXzt$kVVsM_P8?XpHj+r_nRKb`WRrhm`o!<&>* zb!}iET}r(@P9mzV4b+2&zRI6mdlHWG8mz7j9H#s^4bfr$Ro4b;|IYY2kE?3~wf|Q3 zz_9D^wOL&oSm^Ml54AsiTwNQe{r|gd;Cm_nJ@+AP-MNg@K2Z^s=NpniXUS0O?C`5l5>$zo~yHwV5 zGc8xjI_`QBhFZHVGI{U9$NaafRhRYEB9pxrWp3V@+qU)zG3WM?8_cciHSG5J^h&}z zz?$^#e6ODOe22=r2%=l&^7pc~U?1@n-4$%ZV68K@_M?=!a^$g$`WDHYLw3!=!HMD4 zyu%7i@grf{=h^oXUpIME#(agF^tjj?82_<7$+IoY)5|*#2MBXEdF3~ZosvI=$`oBz zeg*e}mS-X*#9#I};l0iziMNC+c_Pn6Sf8FmqgE_3$xpwTU)FkbkO9#2Tr~jJk)( z$F))qWUo{g=}UAO=JOJX2d(k~`yMHlF7MiSgMGj#hpODjUY~B>?L20GK0>_Qs(#A( zx%Ab{L{LWlF3ZW^G~zG$A@6Tw6Nl>b{)SE$dp?rqbrLF!K?&Hqe_~9ez{SrZImRqD zM(s_t$|U$bKpylgI!>JRyGOE?U-JH_+bRdCLk9ai?yGCn5%c*{gt7hvZlyx^w-$&Sw9?QLFZDM`)pT5Ytre(iCt#dQ_dvWe;xw{^(OBuc-hxl{7Sex%=&QVH6qUpC0*IPW5O%pi#mE;3;0N&diSCJ+RcqD|0SGX z=8ivn0d+gq9lIbFxAM$x32u9bacz^IbKI`tglOt<`G_FjBy4&VE2!Cs^} z(f)g9@qU9TuZ&NXZ~N9W>MeNvNPMc!AN{OPAJe`s@|pRyWpx5|YPc1bSh;?WsI-=< zwq-x*KcM0&X|>+5v0axuAN+>)*h;UwTVp+QldS9mH+En`>SzTHV z(*M|4`v0!)AX@j_&Ys`OwW{U;qRmr(o{N=k-2UD~XG?|ANXh-`SjI&9SJjx@((fFx zT0YL@dx!G8(>`A@R0W!%|@VcedqvQ{&drFfoSzI8Qn?zvmjqp~NpAI%;B+6^+)v>!fogpR=(&!myJ zx18wHw^$oY>1i}Po6i(7%}3qV;{}PA#6$gby_RPO_WZtGop(ML*7Zo_b+i)9|cVN2KM%{IB01l4l%td0XXP!i}}LUtyEm-w)YnliS;pw`_8Ie1@ue z@63nk)yUto$z>sp{^|FroX>8e)%D|icGFzRo%zt!=H8wUekFIt^GciCo?iW)kGPjM zR{xgR+}q{fRTHjPUC++^kG08V9zg$6l-ya4ykBYlM33ElmQ8Li-$$yEZ&h+9Oa}Pc}XF-sHGVk6k`gwNuV;vy|K!?kFXf`Y&s4^zU{hcjo6ho1A-%z;C-v z?h8o&=N8c=mxMiyqSY_|`2D29wT{l5j}lpRb3cV@aZ81&Pf~{^oN)2Puc2iaEipx| zoGB^K%$yNYXT+`jC;gP@{CEAg!>{O6moql&r^CgE+74cBk9_V*bgs;LJPGqy1;wm11{>CCARZ6EDf? zal0NjNOh2BLpuGs{AFBORrq~Xqu0(6pyQBkf6C|^^MaF4XM0B2zH{eJ=Q{T^Oh=ly z`a%9%Ye9qiuW~M%ft5{ z34QOr!P`#1KB-qh&!zKDUa`1&L|A&n=GlXnpPaLkeelZ@3{O;e?TENH!aZ>ZF1mBD z+Z7hYyjE0mqhwO1;myCR9`7d%^$%hmqjs7RIw(BGU!Ie3-{1qxz4XjjIVq&0F{l@2 zSggN%O+kF! zns0aHc3V3sJj58(EW(q1a9yj~f5$KTc|;w!pm6Xg!uiSwiOMPP#`PtP)~B*|uXv$w zaO;^Nbw?GnA{=jAi<$G&!;vpD;`8r_Hfpc*hD0@gwy1IVOjq64k*z}JnK?K8jdk-H zheZ?j@S>=k@OkMuMp#r%6aS!`wjBrMum?hRMZyzXYZ^nB->`63g5O{4i7!8rkb6<_ z+>a}coPYGz-8mN=JksK-+jjLfN{*}=^x&=osBI^oGU7yW$T=)-a0uK70GaE5mQ!xw610UUlG>-P>Y97HlDYIY#J$?33w> zo1L7$GyCY=!MO#!mKL4tvAF2u+?@vvZ`8qcO$VJeT=}hdS0tHNDt(*b+1bA!X=$sO zt(Lxha@OMhxRrA0Z$w5lcZEkCI_P-8V?DN zh)C~0Gpg>Ydh>S{MR?PH;BSwjdE9vQQn$-^F$lvA>l?j!qn#dQ)%{lARseWv=Zc8x?h4C)yS6d3b%uXX67vqNU7>^eQulMIlV5whNmA#f?q7!a1o_s7`Y-i< zWkE~w*sA+0Ro%}GDN0{S{ab;~jpKE|`&P5%f&dW8hv!Kn=qJr=^ zUH_%-_o43Qlb>bO|9tYjtiT<2JJ&!S^*@t(o=!cN{FeGZ{Mk8Y)PL{HBD4M%h0lp9 zqV5+__lv0eMb!OXo0>n-i~Ze(t9%(rz8oT7dXq0B%zSaDw<2E-k}qF#&F(S6^P_p! zE0R2E8FjpKK6x^nJUQfXC#4b3Jn}^1`y_cXk~}FZNF+~MElsoK$syWj7 zNg8>Qwkh$670iqGGQ2yt(O%KE9R8l;ZSLcpwo$i=n9tot-J-2t&oHh$o3-*SF=cK^ z=0+uN*8Fg~6LqIH_Is&2wI@;!nZGj6qr)4$*~UOKR0i5?$2PQ&-_2}{8f6&s^)Gixnp37P}c9sT!8-Ru}^htM_MTN z+Fe^UkVsYXq3U?M9-yeff;mZ`@3BYTC<6$?GPqGbQ=XZfJH{!>9X(=%8AUy|lQFzC zKc-{;KQn!Jmt1fT;rz(t*Tiu`-Ktn8`Cr|b+^@zldh8{K5{?p|bxeM}BU~L|u*57$ zbz}0s>R*q^onvC{UzfKtd>xPKp2xDER+T^PPoJ!AOsxI)*AA8G^e@M{%GsU1r^5Fs z4^n3&@16Ny-I(|%HKxAYt`xg7{PCINvTw`_E`~nan7B*3PUpOCE+!!u3BPI8YoYxo z5_k{D;QLGoz^PdKvrX>p7s+#vLf#81v9^(4lI`}Fcjvin6we8=*dGZ$$O_H(fk@pB z{VYKI$T`-$oDg?DgYP$0;ZDNKqAk~Zy@?<8*jR)q)0c~QhE+`Ti#ZmS6!Jc`Y4W{2 zKmIHk`gulC$oH6JAG3J+n98tajk6k``JR%TGw|b-OE~*3DjclBArD?R_nzaqUwIb$R5yIO++^WxEOWDV+ggPmHdG?s3pV?KF2PJ0wc;1d%=GE8JkDj;=GtSHV=j`=Ydg}CgSGaLP zp4sWJdhuOg9lj1zp2wTdR^=SJ_TXOPs?UpzybfGD5^e>1PRMvj?r-# z$4R^R^?QvJDX;aiUjpg-*j>BMWb)vnTVm?y^4r*k{papJZzElLtjOe=6}RTIYwD%w z;d$c364Lj8+vw=xI_bf)>QbI}%5(QK^UeAF&TZy981}q0@S~p>*Co84%(Mi*Eh_6A zblp5gI=KH&l07&j9+kFz3U#^Yz5As7YYaSpDZYmHL=5V`_>uasmp$$_$60wS&sq)M z7tJOw4EE%hOkR|R8s*QsjdIx=@kP@ALZo5(l{!?(7`KpoFQm;9ec80B@!UJ|d}XM} zMdl$LBG2Ob9Zns};u@B+<@tT_=JN^%vmd2dzVd8Y+CA~Z`9IY$ofh(S@IT2HiJ$h% zH!s<{t{(NJ(b_b=w<&H!kKTJxx5?JKv#umFot!VR<(bwmc_rz-pZHX$_&k3JYaEGx z>3*Yl1M3(>x1_&Br5`i|mP%=TtcDQ&d)Eo;DjE@pqkJ|H>N3(}>Z%b%JN ztaqd}=@@H~N_txUB_E|dlkW-{v`xAW8b8h4y_b9&-qydjVx$M1}W5$W{=_B6NiUy?|h zB>R(^ZtCVovyR1dL-?DyKNQ`8Ym4<#I)8OuNE*!kiM0aM?_z0xrH)FOPD!-dWm%IV zGM9?0WtaBY%B!Q~yT~M7IxO9PiCp4PLU~GFYd=}4PR-(4;$7_%v$&q@ex>a6U5Z{8 zFnmm2&Xma)=^+-`qkjM4bprqG-$}Bj`^jC$&$-_s*R=Wb@n7~~)W;Jnv2mf27pY@y z_E7TaDu{*Z`~W4_YaC;gT%NCs{)WnZijt2~^2?Q6?p5S>Gl=`6YK*SscbR9oA{;*% zOuCGq+&t*T#1Gv|55x@G!II~LmZ`H_UeLz)u&Z|a#VKwq@)ySoD zs7ikpa+!?P07p6%(-!bF@E?M(?RB_?8&3FWAinJ%<+>akIf7^ z5Z9tAbHvnfIg>NZ6)8&Jh;hc5nh}_xW{w?YI?T)+Pq?y?t0kUt^Mt(2aZ_)!E1Wzf zJ10Nj%@{kLBNcgDd?w{h$u!K@C?o=zqDWToNaXYk-sF5!wLZMOudEON|C4~NNR=8nM;t=IThU0ab}*` z5-Gurn@Yw9A}}(zjjfI(dt#g!GKnXbCyma#$rf`q&d^a&OQdu-I3LXy+$IH=FCnqk z90h`%lxObEYx9zuH#TpIO}|xt0;xxZS!FV_Cyflo{)|dycS}{uBnNMtY)q889rR&- zUe2}}3%z6kx~GjJ(QFN3ixRJ7SAD{&yf&9-tj3ap8b86h9?mQfv%;8egKdJW2Z>W{ zg&00%mvtrfKDU*UOMhpVCo8$kJ?lPPM7?Zs`+5`Z|IMFMPnMF4p7WGlj3qX?eI3e! zO74v3BQ`lrVqjcX;*jg{n{Fp%y^K9wtCf3^iyrO%NrzmI8`mkh#NVgvVr*1)ktf*X zTWxZCx;{{HXMBFDMy|)3k`MNFUaxl(J$894$MTbMPqeJ&e;FUh&zYZkU7NGKo>cCg z<^G;czr9}RafnmTCpJCyau1hGSMd>Rk$FUU+T`}~YN+JSd~0Hp+x0Y8a*2O)rCW?# zo4lD#&igOs&zV09mE0LFa~I}M^tZIE=6~i}%%3wKN^JV+Is?BIHo3hVS1UO;`Dd)> zdQ!=q<-ShI<()md{*BehUr};r`Bqfp{sSdXb;RcjC6{>G>qDi@yC_XhSx-jU+{*;1 z{w-8;XL^^|+}p30_iS=|xRo|}qE?RilTB{VXXZT2pQN{q%{_CZ=Fb@)-Do=V*{d#2 zr~70j7x&F<`cswMd42hn+?j7fZF(-S=^0y%`{_3Ka&NDH4_4#8#OB^!F3g3RKWF@X zO74um-XC7%_UpHma_>x6TbtbOKE)QUy*=q=lPBv$VcPefZ)cMiDEH2CDYEIY_v3m! zywm-IHuv^=xL(Pf?N5cxy}cf8wYgVWZpQX4n|piypR~!_+tL-Q=1Zhp?D|t|a(jKd zT*;l~HB`x+<)WYYivE_ia3|RG>w7&pU7+O7eACZvMb8=etlT^6$sMu|5zn=hC9V3w_kVqJI7A_ zMK=AZHvRfL$IkLvVsmf5PD^azO1kuXp#CnhPOp}4wCU++3wNtSk3RLDl50I${(((T z7cIn$RvGAwf2@*Ae%k9>s*>yc)T;b8J@$Gy)TZYW?HDuHChuyKkG1KS{5h)X*#w(@ zyL^gGPdA&MMM^I9(60YMoBK;`?jKQdUGDl+iIVI3smI?dlw9Ytman$y@2-_#uCvMg zHu**+cZO?o@^4vv_#)|s%D#XOzp}lj!qq42WhOEiqlwH9_Fonc)#bOYhGoi{5eY}D zYiNnhHdEwk7@?%}iQ<8uGd$<9%!7+gr~ih^e=AX9`|0qtNcunt-`;1)Iqlyk2ezN~ zFMj0b2eI3)T@H=ZYQoq4wAoMj7eDr2mhx|xiCz2C^4eIOX_s@_|25j7GM)bASgsT2 zuR?|2P*sdb97tK~^y~5yXH|v&iP{fgzT>1be3{qF&7KliAb+;CK4DH2fo!-9+>GSpR-vjU`+Afn@})( zvCm+QgKe#j(Q4}Z*nku_}MR^ zz&m7CsxgteRQnKNHe*e5Yt~hN)5eI|7403+ysZ(#wK&k{s^}KxH3m+F#eA>h0n9^2 z_<}|u#z2YZ{g{L2mkfvvGX@TNY{LL|$fmA6=D#?g2)(`Lmk(gij{KhUUl?%7=H~|_ zJhEXx^5*Aj7GYi-nlP|M#q%{|u3b9dl8WaC_*aBq)YY3XFedcUfh&hC9WbABOOeOS ze`(xG@1+BC@Y8rj%tf{DUq5bT(JSM&;bsEo2laV&fUzQG{KNPyU9x`MHr(dnH*H1u zcvr8|0o#i3KWxze-zwk0cB_1~u0+RH+}(ovmMeU`w}-Pn+|&_n(=j)_A374zk%Nx8 zzAcUAy%Ac^9XG})9SyaPQK{Qyjrlp~xT2BL(cGpZ=G=5#&_L-(w&{pHHyt&2-$(Ma zSy!75(seFr`M!?Q(buM<$+_uxJ4WdkYSZC6Hyuy$K98A}ESnDU_gvC)SG3YG)~2J? zx#_r(_a)4DOtU^+eG~K=6YSp^}3SlwG6+# zqeIeL7$NCz_}*x|(!AC}cCbEY@Z>*O9~e_uo{fD1_E5~*cb`s~hdtis`A|duVUD-x z!^|XgQV?{J{z^MdX1`c ze8KQ}Q5Nfg{Pg9-c^7WY?=ZNKCz$=|Upp3m@?8ac-zYky&+Ta#QPSTxGxYf8r8SIq z2Fe&m);zty`YUU_lJ$*UpLcdwS<7Xv=Ob=Dqp({gYgT2v!+=G`E9SQ)eBs7=SwCp- z?cT%&vYxad{XOfO*vF=jJ#|XzGag|-r>vUnXCv$3a3^l&;8xsK5MMuQ3rh$?pP!As zed@fd74x%3vxIe1_VZ~CE&nB~#q={SV!ha|C9=lrmdVFuUn)0i4=d3*g!E>34Rd@T z>oe8YrZMCF?N*y2(>pd7FM^>{Lnqh@aWN zpI%?e*hbdhxv5i`i()29*&R~jr{U~-)Pr%Dhx(Eb?Ou>AbyCKwN>13tiO9JFSfJOu zA)_2wA4^{45Jo9${g$&9aQSl9&ORA$Qirua#);c+&@5G5P7fIgi z<$c34$RVuUCRW~v8`-C)DmTqp=c)2!*EjznZF8zgTMuX2Mh!o%j?QRaRhE?Z-mByFWWHRQ~?TTKPEZ;no^|iA0`ghtP*#nI4 z9(d)k51HPLt)TC?g*BbCJdN|8qK*&o#L<4$TRZtySKTSMHi(Pe zlCnUqwF=gH%39DnxsHEleXzKH5q;5;k;!!`{;d7{x0q|mr5`-=*jPk77nN|mOaC%w zTH)ZixGBOedJ4^ZN%}R~6JNA^v)$^4d}BWL?btHI0<(NvEv;m9_lKJhI9v5$ApIdd#|PbEsZ?hDbrK$@ZYI>>)B&Y_W#;T*-IW&64x&1v1GLA*hQYj zUU4E5JJ(JfXFajr``Bsb`?dRT-YxGZh69LX7awL!{GPn}n0_;%!l-?k?S#L3kgz_V+S&XJZfO3(@mNs9$NPz+*ehGl#@fXMk#5MF!y=l zRKC{BXQF86F?XDqukYec-e-`wnDPAW^ajZn$&*VtcLKi;ntJP{AKTnEMgJD4A003AWJ^leBT~W=-TGQA#l5v3Vd1V$3oUmt z9v9uR*W>17OaC!*-`C)KM7Ht45;>>qx0dT;IVWk=a(P!#;w5!V@<`$(*SDB*-3G5S z>ph&{yK=VuB&mZkmnU`lsO;5B{nLAtmeBUnXmV^_ue90Zdp+KTvC<)aeCoS(6`b=a zIqzYdD5)d+Hq=|oGfb)XOXM91iPP&G>ucHC-&V)X>ihJ#b2j6e&1!7g{Av}RwePLk zYFGA3s8UD{IGa{0z? zB75Wd*@HFUhI@_7jmAVDrrejzp*@~V+ck^+mV4V+x$l``3#0J#>5fCmYYA7}a|23S zDep|lzQOg)vNueb6@N)1eNSyE14+Z>znvbc>l4>dl66nBbv5}>EaL;I>-*6s-|ah! z&e`Yr*;Ch*#JDC!bP#^Z{ltki(`NkWV~Rg;#BU1ix5Q7zN@7aBeS|$r+P2t2bH1K3 z*(KqbGTKnFYgs(^`7Idm*nc&`J@slB@5W=j-#>Pf;kA&K(-2==lDeqXJSSYW)!douyH5H@^~y4C`X=2Sl>L4!Q{Tx%us1) z#y~z?N5z$OL^r^Foc|kUCS(Ek1;%j5fn3Og5ik;DEzxKg1Nkr(ZUkA2Jsu{&M3@AV zVG2A&csY;*RtoOQ?yd3 z1%)shsPo2LD1zxA1K7Ig%z{k#7C(2RKMa$5Fe3sYAqt|Q2GoRF5CgTL4#;~6u}}}{ z0}o6LS##J38bcg3fu?XC#DfnKAQ75Db7%oA;e2QXtsx2I{f4%10bB?dK{B+1_Rs-R zpd)kw#&##F}867{0+v!jW7>g@FYA9&%io( z7N!yQbhsIAff+zQV}6vb1Lv=R0Wc7*gpSY&I)kjS>;f0VCD0YR!KKh0{Lll^peOW# z-f$W8fxgfW`a?Qg4!ht(_yj(Of50Bt4~O6zAd1E_#Bm+S`%&~k#zeRu`vdSGlt2UA zHiQQuoVNNQi=HxSs&m;r4gzvQKUo>_?FO0sn+e z=-&)mU@QEB>@@reZ*aT~-h}ON6q$i}4D;`pJ76cg1sl*Eju`<_5DE1EMg|OqAutH8 zg708Ad;lN8$M7k924BFJPzihC0DKEC5wxrwco|}WJqsi%hKq2?8lx!(%Q4Txj0Ybi zKnrBd`xvsuV>-+w?yKQRcnY3|XJ8#X3(vvxupTzR3-BUrgmQQZUWQlTRd@|v2j+x~ zhhZr^0*}IDunZazkH!!OO+eoFs|mFr25Lhckaa(?P!H-u184}1pfSWj6L^+%$XYmA z#}f}eNPt9W2F>9vxEmfIZYK$I1%6gS3uLn~=fGSjf|kh6hgL9;&<@%|2S|aA&3+Bbp6M8{!xD5J0U+4$@ zAsu9$+7&PW2Evsv2nNFt7z!D16RZ6;6W*8SPIXPEzd(f^081G-O*43E=GO{yny^g*a+qD73aQ&gK!we;${NW#9j+z znT#x*TZmg(Bhv$l2~M};VCFX$8uN!DC9WKY18@D$WXHV@{*ZBQb4 z0A;Wo5|K57KIBDT=m-5F9WDpvoQwf55Ej4=bnb+=;B9yZ-i7zzeb@!N;RE;(K7x zI12xSU*RQq8D4=`;Wc<2Dqs`b4x3>MY=t*q8@vhI;qUM&;l2j1Lj`Pt&9DU?gJn0e6a>vbY0Yq%1Z z@Fr}BzrzmL32(vM@D98S@4@@93wA>tbR^O)HiNp@n`3@}{6qK%K88==Q}_%%hcDnu z_y_EPO4tkgU_Tsyui$Gq2#4Ss_!bVsckn&@06)S{@G~5NU*IVG6MltbFjF9I$1zX9 zZ}2;ugj4VboCbq(xgX;Jcn}_fhhZrs!prD*1zrUo=}Z7=5AOrHp6^C3ZKm{Ba;-Oo z=dnv$DP|@vG8eh@Gt%EkTX-vOrQQ@Fo`+co(k4hdbOGmOEO8M?J1S!f8Dq48 zcA(o>X>av7<5TRPL0f1Kdfd?(dor94GFE8?GH#J^$`|k@B*8kuej1*EXFx~c1|w3||2rLLNF7xNC>ErGtsrM>76 zec)n{HbdHuE^rB?LqCu&t*h&d@sk}qVrnpSHnmc26ur6zt>(pN0O{d$l-VkO6SBEJi6=UDm^=|5hB z71)b0AIH28a|1}fA^pe#+}{m%aJ-6R=~G^Z)!3y!xgYxrApOWw952M}J#Z(-(&tDY zQvuTN+>1FK^8kDW(*8CgpBq49V9zU~DKv!o&;%yo=Q`4R16&V(1AVPN#JPvzT>Dh% z6RyXf9w+N@v2#o<<7YiqmT|IujBOuR%Q#xb&=b)q{gbrKo3YFN$#M7{wsO1$r=eNSir@b1k6-NWUrlp!BKF z!F-s3JRWy)Z*m^yBFtiFiroiopetMo3D6e0!M(Uy4BfF`0QoQyT~}g0kNF%l!7k&U zr{Nh`2hW0xi`Kwecmke;DBRvce5PS9fTuZ@eq6>GAApQCq`%(;dJIy4{WjPNQ*hrC z(qJN728rmAaZqc{H^3~xY=qeu;-CpMgk;=KCoNO4r((~+dW=I0DDuIQ$ci!U^~lqPZTf787bfQ&^6k^DyJV2MO>sVaS+j7u?LT zjBjQ_D)ugLFSZK7CJ!+bbwU206Ib&Xb0^f27Sqxg~YibW*w*pO`tZ!L0yQ2#!w#`KqCl; z>mUNMARDfSOt=A_L8r_~g4X6b*AqMUzkD@R~f(N=lSLhCxLO1ZkC2%pMK@WJF zIKPhWkKr@;5@fvgDf|Pz06o6@0sHqL5u zh4DL_gg@X_*a~mJ4%i9XLB`Z?!Zz3pzrhK32mO1X686IT@DKO~_Q8j62)=~_@Hy;) z{qPASqN5o!hYMi^<@7f3%EO+=`9I)$WIwo3jycGBp3zZkO^6kkHc$; zgBv<@_iO!n_f;5u9HQ6Ce`S zz!F#li{W0l4~k(e^nzdTdl24(OmuC)d=XxNJ+K|h;T6~jZ^Ena5`N?0Wr&4(&>?W z&;rhfme2}9AR89rZ#w2Ja5Kz+5y;-c?^Nv5U=j8kkyT*63w4o&g3QI-%<%)9TLk;C zFGb!AGZC7@GLEkkzqs85n_&xVg*RXuyb0Uk?;!L0JK-&O7{8yP<8AEnEZ|*u58j7e zup2&r58)&D7(Rhd;WPLg>~s7xI37n_A|MLFAreLt&P2|6AQWzenNR?;U^dKwLhwQ+ zOn|X41#W_=Fc~JnILL>QFbc-NXvl$V$b#XJ2O}UCnt&fJhWbzoE`hGl02)FJ^nj*N z8_t6?=n3)A4I05PxDc*{i(n934Oc-g=nXzdfJC?q`aoZ32F;-b^n=Dw2QG!~5C_T7 z2|B z81r$=`!F}a8te;jcQ@R@@hXmA$6Ss11l*7P1$YYkLfqT~cXGUz;|k0tG4I7Z+dbHI z#PbHY9{vXU{;MYTAJMrP9sk5U4!^@zj<>)O?3*zE!2AieVgD8L1e}EJ9KQ*_V1EPi zH0IB+1N$+|-{2Iy#qmx!iv91H1~~6?ZbepuQ+Gir>H3{xxz8Do{Wge4J{SMzVJ^Zf zhNjqk&<47~rH}yC-Je{^xdL=e!AygRa2fQ3*2r@(on!Qw$PkdTf***lv=#S&T>o-y%TLec z==;cMWE-Iz%o zrtlEQ55rP;1RjOQU>TG^DU`u-SOF_x75sqT>oK1vto2Y1FTs=W6g&;jzy^33UV+zO z9Xt!q!3*#rY=l?gb(o0G{pfz4IM&8~8f4J-GO`D;uEdQ8*)`ZFV|K!PfO89A4)(dw z9y-E9FcOBr6x_Ci7Vr{mgcqS4j^cL<{0Ps%d{~H|8Jx=(9hlF9Cg_#On z;9|H0IzTt*3YS6(bcR9D7y3beNQcYeD(D04zz;nj4SGT^=na=acenxuz(BYX+CwMk z2)x$c1|#4@ST`(p`v~Sr7}eVJ^&pdQb%OVII_n+aMHwGckK& zUIx9P7c4-w5blC#jz_~77zKj}XEoPA81?~hE%b*gVIT~F!O$1_!5|n0*TB_q1!TZg zFcdC_K9CM|3GcsYj^SG3a~<)DfGo&{>md_vfM>{yv&}O+NM0?4had_+Bf$eJ@VgSa zVDAdu;Zo=Zez*iKhBW8_Zxa^-9j{}244=W5@DqFr|9~&x5PSna!1wSi?1zK!9efRk zVIO=22jFw~2tI)i;6wNk_CO`aN4ls*z$Kf|P0f*pr z2HL01KfxG2^fWaG$h0QxOoU3hNbWbJPMD&GMEiR(RCAUAHeS) z96t}|!QWvsjNsfN%o{N)FyDnx{1oB-X6*d^*Uu&BXMS^t>^RbKC#Lh6-)Pb?8zysZ zB5CtLDBKD&p#WyVY?uRu5CSf6gBLPk0*r-eFdnABO)wR1gc&d$ZiZW6GE9PTkPjna z6pVqRKG3SuD|YCtMo*TEX?7M4Ldn*0rPM_22LVd zi>_(N*24&7(~)(?YzGstzmI%8=2Xm8xP2VE*!)E zW9Te_r1^d4AFE;gcUgwpt;`V1^mx^2mvZ28DHkr6J{6)*g?KVDycu3khBq|B8 z&+tZOc%w4H1D?Z_wlM7_Olu4C=u=v4n2LfcEL5G+PCTwQH9hW7`4=Jo!sK7=HlZ%B zYj)SLKny)@k=K!bwJZ%D(`C3)7oklZnFt-32pv*{j!cA(OoWb1gicFDKwm`G{JyUF z$J3PIQl=S=#wsvZh{UIc{EJqikSJ}57IB>RuKl~*TH?_bueO9~OSrZ~YfBAfaff6y z&1hOPqiL;-rZE{!YiBgAlhL$pM$_1groN1(&CG0jAj9R(2>0YcZiY80!%H!?iMY4r z9gB~&&2_cSXc{juqhLcaywMq6v(EfFGb}AqVlEa*%R8xFk2q^;*W@gOLU-eM(cRGqFuTIL) zLGO`4|B*ojkpT@6u{ulYX-j<_vxxeE`q)6rLiFVtQqyuzA64gFA-WES z=xB#Ts?2e_lonS+%?xkr4DW@O5~V9y9qB`D>avMQA`bk$lWP9c;RNDp#gNhtSX7gP zNIQy%2}C$XXL>}8RuvJWGd&_k$37y)2zoYxzKx)FBk11LuodYYD4KZlyXC9H#w20sj19b%8ap0mkQUV!gZ-|>CDX7x>UF> z6|PH#>r&ymbt|sidz5?nW7EG!#mlSG=~dy;pP1*pDm<_9?^XW2%D-2I=T+f(wLXLpi>^AlOCee9-WqTp(2+a zRLlm-Y-pL`Dt-~#RPl^Z@r+RMj8O56RPG{`yGZ3OQn`y%?xK{tXl*L@(aL?YHkH3* zT^`B0Jd$;JB*5#3`%OhD=$7Ed}lXZnmcBvdoc16jMMPQuTrj2AYe}cqG;$g-C zQ%*_#o0Zh-T5$24VSy1+BW?56$Z&=5*I6}AI+{8>f-`eEk`Z#>jHb;qns&};YIdL9 z@bOMJvkStImgk*rX2Z)Yp~<+R{*4T5C&^wzSa}MvKz=zmsakKGp2dAPo=-R=ALUDIKmGO4UoZXj(cj(lcYyx->2HAk?xDYf^mmB<4%6Qe`a4R0N&0&x z{T-uhr95n){A-~6YoPpVpuB6KygQHb_X7M;`~{T97m(%x(p*5A3n-5-Al(I|yMXfe z0?OkHD32RS-$?pK(l?Tx8b0vhi2HCH5sl>3*hp55be-zL{?iH0bHC4{-_7)^nKHfk z2Ku{^{%E#lnydLkFQ&4N>Zy%V0dF|}6zw~>^t{|v1N<+#biQ!7iBH3P)@|Tg$Q4{y zyn-%JpFs1{iTDbsc{WI8zCo(;4N{SBxRguW9a5<8kV1Wj6zWtPz4c{Hr*1uUD{8ek zulO?ueFwmwYKZVj#a&&|NyJ@R;afPLY}^$UIG=1{{$$hWE~LP5Rf2Ei2)?lj_;zgs z^o9U2fRF3& z5y!{%__zokH{jz&d^F+XJbXM3A6Md|0UtZ?@o0Rs;^Xo7xC$RvjCKAuDw+|+=NMto3?H#D7x584?Tnl8XcGd?cF$3^(K7$28V6HILQ+Utj}z2nLE zH^1&J2kHDzr~cq)WA$fK<2!eq*Vu4j1Akw^-?#9$#J6(zHvVqp?<@KH*5PX}9KQCN z;cKsb^8Hu6?k&CklPVN0L=_7EeLjEt3L7=xx&5-)Ulyam$L)pq!Fy~IS2YvWOQMGA zp0|=yW={)%jL)`_w&X53~@h0+|LmA zGhFXIulJJcz2rte-;F-*Mjv;hkGsjo-Q?pg=Pxh0+)FNZOSrIsu7Qz34d*#b-^^(% zI8Ix^eY@)e6mXB(F?=nz9W_%?M~z939&TzGZhGu+(`Ca=mk&2xG2HaH;ifBxn_7pP z9zWc4)o|0*!%f!=H(fj2^n~H2>xP@+!%f!@H{CGYbmMT-O~Xw$4>vt=xamp5O>M(X zw+}ZZhMRT`H+2j*?H+F0Gu*UyxakhsFSvQYHM?TpI$w4v*D4C)T1D~WDv1hq#A}4? zlpnXtk3?|T(e5V)BdvSzvxyonr70_D=V=Je0IooMx^Mg3LC2131jUaXXbr`WM)}bs zKhBdM=gW@^ z6nPC7Q_Y9x@EYq^wi;TL9Nr!E6uIUmIV4Iw4dK3w;P0lr4N&<`S(MDa1QTG_5?y*MQWu(Kt zb*>5HKCq3?HDPRsW&2{hh((9-B^DjVpjdPmw_?#@Y>P#QaWR&BL7`*u!`N>e!{?fw zKmv>II-@Rb)LloqR7 zfGxLk}owXAQyQ8!@J-DA`pH0m&(*0LTLPixU(EUra|vAY&sl602onIy8*V=?~E zQa{C5XNwMFaV}s2efro@3NK*Qk3Q=`7p#`J}TEXnCF^Kk-(C^Ea@!gkDSr(g+|?Jqi&pZmi=^s zbe1V^5s{`~)ZtzQOZx65ou&R#GA_4FI?Hye7?(R~^fM;U-EWGvnsZH4B(T)O&YsJN z<6mUdz1XO;%3exB%XQp)?uOgkL z{Cl-gH)GVj#;E%Zqwck&vy>aJBb{Y`dA(8hn?~ImNM|WuW=Ut+9=~PO{kBo}Mx*Xc zM%|l@y5Aw4py&a$8WzESsf(pmPGcNlf^M%^Ef&axiw zH0s_(I!k%_fKm5uqwWt$XPMqZBFp+N7fUG6y`OZJ{on&ezYmhmQcixzsQV+* zSDzsQZjj_gT_e&X<2>)P2sV`)i|a#i;um zqwa5wx(AKA&l`1rXVm?@QTGo<-KtUd1*7gCjk+%ybq^VJ|76sC$*B8hqi)Tp`?68@ z6{GH}M%}|k-Peq|e=+L*)u>xH>i*5B`?^v04WsUxM%}*~b>A}T{==x-FzWu(sQWLY z?%PJ)cZ|C48g<_@>b`H(Z5nkyFzSA2)cwe)`>|2?6Ql0Gjk=#2bz4T={}^>YGwObB z)cwM!`=wF$zee4!j5<`tE%mDg(pl=oJ4k1_?!oh>EV?G6?mVOJe539HqpsPg!}Gc< z>wA$=hv#-#{P3(ai|$dRvuxi>jk-r0buC8SV~o1T8g-W$b(b4;R~U7VGwQB1>ROGu z#~XE58Fg11b=Mem*BW(r4whvRw>f(Pgb^I&SnEHR@7E-3g;EZPbk!bs3}Xq)~UusLL94Iiv1{ zM%`(nZrrGwAf4rWo;T_WMqSaUyVs~I8FhH3u4R2IMjf7sYVkW`)ZJ&)O_8q2P$J;D z$d-QM7m;paU%liJhQ8#VWz09b4xlwn&QTGa??vK2T;_ZoHYGwR-N)P2CH`=C+x zA<|jOt3M*0WxrZ9>i*cM`xDa9|8q_sCXr=5K4M(%pOVf}zI>E)mgDHpjJhSG?qf#X zpOemV-v78!_X(r!FO0gsH0nNS)GZrzpEBw`ZPb0nsQau@_g6;U=Zw0)HtJT4y1y~% z{?@2_(5U;oQTKO7-QOE^|6tUu8g*YV>i*HF`=U|zkWu$fM%|Z;x_>t6){MF@8+BhX z>b`2!J#5r{&8YhqqwZggx^<)O-;BDi8+G3>>b_~z{ku{3Eu-!~jJge@?mvyX|1#>n zZPb0osQa!__dTQT`$pZSQTGF*?uSO*kBqt>8+AW1>i*lP`zh%x_0uiVS+2YPhjfAd8 z%Pj3{c(<8Fhxedaba-!?MThsOS#)^Mnnj0qu~~F@zneve_ug4_co&{Uhxg=Jba=;| zMThszS#)?;okfRt*I9IUC!j@#cLiE>c%Ps}hxZ9uba+poMThqXT6B0HqD6;yAzE~J zSE5CS_b6I)aib3JShV=zJ&YC|-p^>!;T?_^9p3Y3(cxW=7TuGKI=mCo;)i!dT69k~ z>hR7Vk)a^Iw zdW^bWqpr`WyW6NcVAS;+bpuA-Jx1L@qwbJVci5=Idw(ta72XGI(c#_37Tq(AI=nyF z;)nMgTXaK49p0C0@x!~DEjqmC*`mWcqAfbSOWC5s`<5*_ypP$U!@HX;I=tK2qQiTk zExO}I-KbHQGU`qkb!nq+%&5y4btjFwQ$}6ZsLL63FEr{-8+GGG-Got>H|h#TU6FK_ z_N#l1x{^^>HtH%y-K0@>#;CiGbe8tIDWmSJQTHOF?!`vkOGsxauU=}@{hCqt>qgzQ zQTH;V?&YMj?9ca;&N5!$6{NF_7kDMu8qnp)2}&5+JAUf?xG-ESDv_gbUw zbw=Imjk@17>fT_~%^G#TWz_w)QTIlp?oFh#w0pnVsQVq#S^5ormvolnW6r4iJ)`a| zq_eE=TaA8iBc0{={e7eE?MB@@jJkQF?hlN*cN%r?GU^^6ouwRlH|Z?f?GH&u|IazS z$LO~}I?I0gUea0igZCMA?>Fi`U`*c!jk*sRb$?{kEgE%yY}EaUQTJh^?juIspBi-^ zHR}G%s9Q4XK4#SYxl#9VqwW(%-Cr1We`(Zx(x_V|ou$6^DWmSwM%`zOy3ZPQe`VBt z&Zzrqqi)5h`x~R~Z;iSKjk?bpb$@5n{k>854@TXpQTGL-?jMc1FB)|Z8Fl|;)P2dQ z`)8wW&8YjbQTG+2?yE-K!$#fLjJkg@>i*TJTQ}V8N%OMU!DM%|B% zx}O+z|83O$)TrAcon`tTqwZ%$-Or7>Ul?`2H0u7Bbe8S=E29nvk;Sipbe7|7hf&vP z)LFJIH0P0@rM=kdXVo>+axM9Hp;32{QFpOXcZpH=D5LID(pj$KA8pjN7?=APqwcY! zvy{7+8FiPF&a%E&7`>aHZ6rJbTWgaZZqoIjk=wrvrM-e z{SrpqE~Bo)sM}3COZl?LsM~AQ-C@+-Y1DNZb^DCErxYirQJ>95#hEdmL z)O8zm`;EFDqpsJe>oe-^HtG%-b^S)&fKhjkQFqX&J7m-yHtLQTbw`c5q*3=w(pl;+ z$Beo`qi)Ek8#d~mWz;>Jbe3s^be8(Yb4X{gd@hMB`TRVi-}8;S7Z`Q_$EZ7Q)QuW- zDWmR$QI|IA#*Dg*QFqd)J7v^mjk=ss_d=uYv{5&1)J+(5d84ji)D?}odyTr1QCBwV zDn{L;QFq3uyU(bbGV0D6buTjNUToC8#Hf2I=`8IQzeYOC^y{RvoEN5zx|bPsFE{G$ zH|kzt)V7RK6=`8!-tWoz{ zq_a%FZPdNdsC$!9_hzH+cZ|B5jw;FYCGwOcdsC&Cn_YR|O z-l+QnqwbwX-Mfss2aLLR8+CtZ)V;^3TQKV0OFBzC=KGAg_ZxK|FzP-?I?M6)A*0_P z8Fhi&#$mT~n-Cr1W ze@Qya^hu*`*{J&z=`8I6pEl|~W7K`tsQW9U?sG=nUmJBRM%~{Sb$@HrJ!sT@-l+RK z(pk#CzbBogpXnb+XPH)wx-XEeh|R{WqiT>!h>nr{6H9@0-Tu{yXU`$M3g{y8kfh zHb`eV-u~05`!CX2j>~Tw)At>t-*-u8Dc8Pd)P3Km+cfHaKsw9xL!<6TM%|B%x}O+z z|83O$)TrAs>i);5`UJ1)jYeIQQFoqE zcfL_~0qHE|cr)oN<==%y-9@Cc>3hwNZDCQFpCTXW5tkUo>%AuH`!ZdZX?JqwYqd?xqM` zx^%W!DcoK-@xn~HQpWf3u~cPeTGoB%&Eu2!J$$6M?{4~@%#USG=JJ^_7L>}Vv2rdJ zJ2u!I?@d)w@xe@bvXrZwy)8bFPw$KsPp8X}M#RUH2YUt)f4H{;U$KcX|9!Z3FNgj2 zv7S9HTuSqIIn|eUiO&`C6hr>)@SyphovUOiSQE|hdntZz-T37GKFr_V+vk!KE1t+e zN2ohLMzFnSe-9Gib$hq#_SWh~_9hb0kL5~~v4zsvcsWx#lS^mH@wSnj6nP6`V=>b0 z!*|aSe8ytw!o)-&esFR4Si)QK~}O7erFr(P1yp@u~6Qe6HeEl(9}g+ueO*``$^v+;=|H$B zB7Bs?1qu)L`|VfG`b~o428_aWj|-Pyy?wzd@%jd<#PPdDAo(Ez#AEs3SiW0-0KI;Q z;0fCq2SjEfl^gFK8!KhXWkgNp%azh(x-wbHjOqO~UC38x!w#J-`U7Ty^r=&sUbmyr zeAuIM`BOtVKA_SCI*u|W;1tZ@jVYZ?jgM#Yr!vV@xqM%tB;}i4u1ZcUGewIX%Z&A8 zN|oHnT$+xy?ndCWjZUYUZW;!cXsm*LbmMZ2h* zWd68XK%Am8`LZkU@?{(a!DOTX?-4ub21Bv9jAQWw(ui7skh8#H$6oBQD!q`HW?@W5>T^ zkCfv;RIIq8!xiMo{ReyRrc(_sXO~!1m*PeC9qXvVBqlJ!4VAKUo;hrO$d{ zpd(+;y)s`OERPS;sVh@*hh3l>96UtldhobD9?6$>a97m2oCx%_nD_U=%)OHtIz3g7 zmzw>(8jW&yM9LT#(|$H3Wemc(v3A(R%9E}pLxujp7^Q*^%}fdLIM1Hh9Ut`3af*-E z2u^3t4x`|J78C2CtKr2`?hGC4#2rp%O1T2c3f3omwDWg@I4d|^-Q#>74W);8rbH!D z?o7sKXRchH%#;GT_zyT7-zJZpNR@Nx9x72PrBp6oab>1j584ZJX)0{C#ivW-MFgsyXFS~tKZOSvMJ<%B)mgF}0(s~tNUDxnoeJtjD>P(8n0&N-Mz&O7aHZ}8_Mz5U7G zS=XFbFyBD3?{M#~J6vU+!jxB;iLq)JzFHH+YjgPY_*^ZeeQqM`>ur0v-bV41Yc8I0 z3-QP$gpoVXJv89zOfMSGoru##LJ<`s*=Xc1^${tU2)T*(8&`9n>Pod>;`rpjff4+q z^7C|&zHya8-C%{4<5j^UDcmYrU&TkG8XS~m*p-!eRmJm=(yTLqPuhBw9aSCmCOX4PrYAozO8RZ z$NP9CMWqNQQ_d^Bz;To=$R66d1$Wk@>(XO~j%8A1E*+}nJt;kRnL+zc{tR7*j!{8R z^-?NW27)kZq?y>@2&HVGH#S%)74oN0lP#t48QL1XJ|(!W=6c(n_FWyFl0GgExc){F z`*Rhv1=Q%N;I7r}NwBP{+f6kHGOg9^Zl~jAh>qFu3@WmGjgMsq{vGw^>p1s(IDwpV zJ^Zy?&GP(-CzMWJpQ=1|I&*e^iuQb5FLe%PONB`~x@lz`Btx99@te*k4wWhoh^j#e0(2Oel{?H<>R`S%dS`Hr+6l zRPiGc?XGk0*i+qtIA2pZIA0GQ9ym-_vEAN178|@BAl{QIrcUIj0Y&OF*zRZt!e*e$ z2iXq39SAVg4zx{&^Hxab_G`Zzi68IJ)tzplOozm=%)MB5Ox1G172PQ6>42juL)l*; zW>{T6maZqc1!*iFWUce1e03M4^qoT4n34+EK>lQ*J5B9Ve#@ZXcJ($Y5Kb0K6Yhc~ zUKJee8BD@3o$^&u*`9RyPy?V-#d{24T@DTm`WC5Nx!}?_kwIm&{X}8xtP4|o{IFy3 z{a_SsAErG7e0Z=X%IQb;weLlH)X2V_{GE11xeLd84#%J2WbU{@WdX+zs!VSGz_;5k z-2PXdpmR$5gsa|TfArzB&;KBtN;$)7c-)yU_9bC`0SU`-3uievYr1 zKV5037SRkg;^06h0uUU?dFBj?RDIqCsHH*|7ImNF+@s%zuRzJ91rFE#7! z4n(d7L4*Y8<>?Q2PDyeY++VLDZB#fvUNi!agdKD8I`!`2e448Xsyz!?dwaIk*I>Z8aNUf_Q7(fE(y&eu1~6z&eA1yjaS$Y`-dyJ zWTy@-Z|qFE+)f|0^NpWs?;GsxzmF;-To;Utr}H=BFjd!s=Er>Zl~ULkHJtQ}YdMzZ zTtfPu!-LAoDQf&EUMvHi9%~;TbBnIk)A_{huw_)2O72_&K`>uUd{CXL#?$%7&0j1P z3MY@AJX*?~%F!_s%pZzB#$|U@JY7i8=Ho(4rz7Muh}LsDHllpGi+xni!%>>=lGlAiwLK1=BDrT1noKW?XG#~yEsN? zB*drv_r2)Rgbq~!#FPK7_RLg~T2pfscQ#Z!H&LGl`hB~R-oPi&2i(;NN)x`MB%QAz za61%-Pg5@wW!Oo&BJ>HU!<}I;KbI&RzL)FYXhki_I&iwMyimMPn~G0K--nyuuMg%! zQS6R)q^?p(7i5F-atrCQPY8!`=)xBH;n%a+kw8!CiCkeKL(O7oKI89~u&bZOV)v%0 z=%EW?T+d+sRGO+2bUE5bjTIF-rBb+(DxJzyxV<2i!ilj|ke0dfiBrY)ToGM7`{~-} zG(0dlP8E|vzA#akEYsCCwV?^8t1fD`t!c!oP{q7@RYL1gq_cltevB{EV*^R*AdeG} z3wO5^)(uVO^ISvlx+-u!xaMKKkFNsMQ4l2=Ncl(mVmg(iY^PHtP7`iU&ryQn{F};^ zP=->Dc}{2MTFjhUo9J9lU2lVDCnmc2IC1_YAEpDOLQO5MCdSL1Byk=EJ|~xbs5fo0 zSS*yNiR0)%FE$jXXYxeQ3|Ui+svGZXV&2)$f7-80GF3`V(ENdKE$4EZ(oJVI^z#+7 zCF-4VM&3sbKH4`<=1SPkygoks>{PCTGgH9n3h5NJpdF@)IrklqzLYuDQ<07!9}cRi z@Z)%VS1TxrqZ&+^r(0oMI%Ga7Z<44H`!=|0zN`3de-=IJ+I8LWp!})(47-EBvR7P= zP}Hnwv$|~I^kO0Hla-U5*khER<0vtFru%%Ma5+(v5JwKy@A6<4VhQx-4p9 z?Pw+N&9zltEb#WC^0=MKkjiAanvF;oc#i9?L3?BkuTTw>&T5Rpxa>*wwmkunn=w-%|N0YFT z^p8=qOg%ncN|BNpPV#)s$Np4+`9oQS-9g4-RM$>t)FBk`Q$F*8us?``9A!=o45hP4 zT4^pOC7rY}4(0NvkI_|%ZyIGi^J+qw(bCBW-d1`_vQIle7T&|{E zeo!%j?UOlra(}KQ?a!nKFOH|uH4)5Dx$Wcg6FS$uUpjmAWDhmzyofr>vvh9f{H}>V zmMLT3acxT+Pv>`c3ChPFb_Kb*^!qX5T?>gX@o`!~{$M^DK2V~1)2Sea`6)U@xCC&R zPB=k%L-hz(cX(#c;Msg7HPwEG8YD8t84r~|C z#a%q0z8`~H4&4PB+OnMvZQ=yu0j>6%p!P6H3wK8^I!gQuOk**sin>OYV#@ECG#I5^ zIaVn6vnusJxK{oupu!E!XIbe-pz%^QB_Q?7BmxaBx6U}R_P7!pJ$ArtKN^?izI%`Q z{2lYnQ?Y^WBi)F|rSh)*B=B=;8s{M6&^SDCYQiP`FzHY6*eFC%wUl}aQH}C-@4ir& z`@dt{(M|nDzHNhTV^q6wZ5D1=xS>4$l)Zu4^wZBTMkCykXf1gk^4g7v9uqO zC_ZE9qpo9L!oBD`p^1v4R4z|_GjuFaqB%_K>o|=o7(V3cAmz+B^(bZNXbozr6<_o5 zK7$+|4@U90!5y+YQa@LQDi_uA!uKcd!F2|jw<(CzCKcuAw4#a5XLLTDIxFQU_y40r z!LHA(tduW2AOR8ETUmqhg-R+UtQ?a9r0B+OP(3Bo;m`ejzHOsUhrh1`tEKtXmwuq` zp7@ZiCev|9EePFbc&i2dKSv6B^ofhdF;44EAXw(T$yS-?UnlqDw5)~i;hN=BxMukju30{X zYnG4sxrbl;_3}IR-chsu2*Y(oJ zF{rR&z9N?xlWBhiUCfQUbC3HD%B*UGSS|Mz4CjOSd{NpnPM1Jnn4JCqYAYV)y7y97 zEtOt8Ynm>U22SM*rOZGmM$NB^Xy->`pQPuQ>H!#eN#%2T5@#1b7mcSV`1+)9Iz_v# zxYFG{ogE!?C7v3mt2&zR$eg(RSNbt~urz9hD&vwaBWI}aFTlEVGEM7) zv)_rr6oqqKwLFL?xBE?H_eAw8C(H(0jdI|3)%`MVV4tFM5{ zs5hJ+eSQzgcpnZw3u9pER3-7gzptuyRU|%_A^lluei@>3B&8>xQ3<5;KlLl8f(Ad= zu3cTt80}+~!-X;Q?T+!KGwf>kezea}!y-oAy8N%%pF7Z<7n>Mi0RlATsmI36;DfR9 z(e4_MKGJ=-PZ8SH3p93vc9xpmC|2dZ499vVDQ{DH@G&hzu2>`=CkoVUTqj40RGTW* z$*9nN8JsX`$Jt9QG!}ayMn|Z8#D0YC65pfZFYK}ECnj^_xL6azvB7TF;p;9=D85W_ zmBJi;cx-oIrx^CfGLi&G)rtgYwAr&L8d{;q%wm>>amEJ~267$sw{DwbPdw;a0479%vq@ObnZFX&EC3Vp51`Osx%vik^Mf>XQ?bCXmMKAIoL zb*>LnqaB}*IDUXvkK>cu;-Md=Iw9@@f!5F0f3$ZXU!0_M_hFPibbUwzQBH9?n&xMy zJwu{GJeb9E8qVR;PXmWJVV)-kXc#6fKvFNuO%AjV?RWba>jI5l&b_Rurk~UM2;2>- z3)UBUm#|=t+VqCgCF>E$C7;sw_M}QjZ^(VC8ud z4Ox_+@OENemRywO?oUC#%bdEKE*B}| zWXbFkPNw9)=OV7=r{lrO*6@M+y=oJ9|GrYGP;xFlOvgKQ9O0ZmXZQVm!TiYqIp#f; zeDTK(?WB;p$@>JyQzWn5-s*VbIe7i~_^&Qt8)qY4Zq4z8xpaE`{^1u8;*{@^+>O%> zmh19ReC7D+lhu*!gX7M5s`>QdwT`*BsMQC_61^NRp?nRFqaY#d3tc((7Hr zU4pa^B{Z<|T<`yWFWAogES?AZd9cf{zwFQ9^$NITu+|5Op*@fJu|w#rbN6piWq14W zQ5(PQc-!AIphx4^&QGWEcB)qNpj9a5>K9Z?aBW0|Q`Aot?ElbBA~Suf|h|q4YvW!<~K2!_V#3gL!wJ&(jD~e@6N=nmBmA^ckLkIw+`R9BuD$>ZT9Y z9J+R2uV|-BkP5;*Fv_N=@-|j&*A$L=M)hjbEyw9y`m4oc;NyBA=~$Sgc1TnN#HZrA zJgGv*=@U-heW)9$Fe+v;Tqxkl1J8a=Iy{I|`Ma~Ox+oGqs;yB5RTCO;3>i`@Cfr}- z)A3t7TomcR)k-@~5Lg8XbGl;1)LC5a#!u0u$9<`@@o-v2?`sFu`l4`JE-jR<7yXSt z;n}e~x521!Y$!`N@^CgfPTShI1FCen<+S%5eijR5IiBxNB+)*n^nUs6J^ViGiQR;q4lKp?M!?u<2n+m zGhjQo`gQw2_fU5`{RQjKyqE5pmtGy`&%B!s8S2Z;Q%ifP+Adu6yT{!OTn#@fhg+|! z;lp%=O>F~IgTNB2{7B&pb!fN|#=VE{=GDdhKJDo-9!x@z`X!Eb_a!N_x$%0iZwT6f zq2YG?$W1%{qjnm#OT!GHppd_T4Mj`4zN+;XG6On3t{Yx_ zJlzj5L6>D|T8%>mHv$Q%(Bq(k_;DRSQ65ensnOBZC6#PtD&S~e&Qmun{gSI=ZXc!g zSZcp?Ey&WoO6`{}EbXT?@n|1a@!b9x%+KwQ)%m@DC(^I{U0C^7cQl#P{{~(f!)q1oLO;{&iVF9gmrGJi^p~n!)w2|E@N46Og@2)u zGTJ1_UCM`SihghJ0%G0n&OL#Sen;x|?&5-t{OEV2uA`&sN58l0=*9wJNOa!kj%Mngg1_oN3c}i7^&dGugtb4yHU4*YRQ+lFcPI8# z!?e8JdxQQem!92s)TU?8?p-BLADxeiyLNR*5a%Zs=H&TsM`vw3g=^yPNStOnufHQv ztEX^{eqTq8o_3sYxMqIZA#37kN34n8+Yzh|mS5SmYqySfVYU3quIlQ0J%wxH@7S%E zSE1dj){nw9`hB5z3hVfe-L-xcuJNPITeG~5&XB&dR=+1vtEX^{-`+cS)%a03i09*t z20l$tpBf!?_f^KrwDIb4+UM(X+BfTR+DGehD(mWUYMHOg=|oYN?~CBO67}`Fc17?G z>SsP1)NN5RaJi1tL=E@XG>20~+$c&#QEmTtmD7nNcY;nNAzRVYX$8^oZT?47r^hpA zsk^h|NIQxcH%^m&XpW-5ar)6i-4cfm4RpIsVd(^=_%xl6#>aCh$E7orcvX*1SN{wm z!b*?IgWQ#_^mNeG)q~g5>rU$$f7N*%PEYkV@Y?i9XRp>{x%Kqm_4G)ObTWt2Bc09K zpT-2#*Zay9N!=9Wr^_GiM5dS^|6TqBx2voCSCvMsM>?f)NIdZ8^hmiH_=DHeb9%Pv zIX%Lw{ysfYv8(#~^a!u&ef|iq>V0~I2YODA@IcS$5gzD~57KEL&L8Q#59d!^J*B6f z9?Pw#2UmI?XA=x}3c3>M*vG`jzYMzxbk%V`UWn^$Dlv5Hj(gOCcL{vxau>2X&tzbs zt2g=Q13??~gK;`gGnVd}n)rhQ{(%Ii-PIn|)B5^)_3=~A&{!sQ+_-pEKDc;woV$3H ze=c6-o1edWJox#m$3Z{c&Rc!Dguk!1ogT6v`QhSmS1W_+h+YrqOeIfNq6%PUjO<)Q zkvd@UxTQE%6{)RDFzS=N{a%?ug|jzzlKSM@`>BwmF7L1!^;V2`$LMlgHw>kugD_1U z%XDp$lN;-Lx@q8&0yLl8*NJ<++$Ff`=6Cg4>VYe#bGadERX~NCMmOFKPM3Dr>HVEQ z9HyODhp}_|uo_2%UTHichlUDJ`-U1{RHPF+`pJdTPund_hp`Y9cIGPVOlg$V@%t!qj^hG^Qd<)ygZr|%(s;2D-2dU*LFwwy zrIN~DG(XV&A*!GC09{fZ+r4MkuJ(O<{0J-|iFUdv#P4Ybjt&mRkHvTI+39p~q#>@L zNNM}X-1YqSadkbWW`(YfpO;RI9Y00si<%Gn2M!6nOt+?hK7Ep8p8+rnR*H~Hhpd7V z%0g@6DHY(IRKIe(qjT4uJKGUt-kz50S?K7I8txhnhBf-?;YZi)C)=Sd@dj`U7rn~w z?!U-#6LMIG zVOv_Fmh1L|A-X-u-8M3aRt;B<9H7+>_Pby?T2$2q>51?O;sc-dZYl_=`M-8~b#(iU zx*nsh*Qh&6&#f!9@1lRUbc#M<)E^t@33-R|J%QsrB0sTRT>LrmvyQHAe%8^|&Cfcz zy7^g0H$pwZ)vQtbUuZo@r;_-HI+es49geS1&TWscpL36-Q^`WPCdY?A&ef5qlJ$tX z+8n{wuQ~3v`PSx49X;(YZjfZy2YkP8fT~G1ap@@8#%uM#ahc{4v$nkSc}ZujxIR{p zLX@5R_Q+gZ&Z5Z2R_Dk2;A{sSHk&A&zt_3aGFXCNZJn?6&tr7^2&AeUjXaO3WSq;_ z?OAX>w{P8KYk%Ipl4Cx>fiGo{b8ykr=~;?XNvTunGXm#P{6akh-x#krPNxDcR@L)U zT#S3}Rhf$TlhntOr7~Y`P2_s`-Hh=FB-kOn{yrtDZBk>f>OpkTF&f(HV`?8GNbOO$ zL*)QH<_*1Q7@tQY@Tgm-hx)qcju3Rwy2-bf*S4P@r7CVZv)_#mEoRTs6Z_~6DZZcD z$5s0=DxtBM2v4bTnFv#l@en05M?Esz(tk3QrlGNQhcLSIP3`K~RZSh`hwi`04fY=4 zWzkKCG;*ItC5~ye>o=fVZQX#nnkPz81>4_ADl2w4Ll2svai6pSD4*R7+9|kSlx_%@ zTOO%BAD!VYo&I?-u~^|g>Rls(`y-B~)06Z(4JV-MnC@|UwhYG4$^{5!bmM8O7hkb- zx4IOgcyzks2A;EY`vX7Z0gv!<&sE|JwonXQQI9Rq#;zLUhDq>Do_h7ubOUW@|DYPM zyDhr57liT;_d`$z2tD_t=7G2Vxq<$PIPlHVP09K(g4O(z8<70<>=+*KRVT$`6aI0! zw7=ti%;d9=4YVKZI~eQX<15X_7vlZ(&Ve3u1xvryDgSsK94{Q-Qxl)w7LV&88lUN| za@=u-`RKYy`BEt4OGNonDCA3|o-eMys=f%-`hrw_5vuhCsr7aJcW8PUI)>~I@_|Ny zx^U3Hr{j@c74Md+;@xsNp7K$eTB;Y9Vj2M3)U`iW^IZ8ErFK=NT^$O~kDnDV#ZyZca(ARUje z#N&CJuFZfiK=Is7l;zT(;dR`$Aj_eq4RzOW^}d(7dgOl{Jj8Zh6|%5nR2{c>w*7xc*Jjvm>cBzb0I%3GYL1 zj*8#cQ4>#B*ER7Ju8rS&M{WGxJ8I&0choMQ!nN_Pcc!|0y4iF;aW?KAuT6JzkM;Ju`@K((oop|svvdQZpDjX1>ljkj_oFRm z($PAZbhK`dq)Qj*G)gT?bylV(eYLvnD?{u4NcwFn^~n0|EBDCy?JMc@*h=lR_7w18 zSqlg29iNo@)$&jsZ{SW($Duyn0)6QC6g_>{)r0Hf6Z&-JI8`Cg+IqZ9FS3aB4AJlp z7nbJL!JZ*H6)Ih^K*Lw$IRM-B)ZAN**7IS|PtcCLeLfm1RE@@b)kIM~l3vvg;yzKt zUr09rmFdZw7@LP0XiXS(TdImwYk#%zgF~S(Rinc1e$alXIM;;zy;9Czw(C)T1%Z^e z1%3sAY{!~-+I~77+egPEEb%q{1^(1bsZsqeIP1wtns|-gpQ^X(<)pn$&nMZiznqM> z>ABLgOo%B0>o%B0>HT_iIp(n*)M6I7FTuFD_q1rjA2bH35U5$25A9D34 z=upY^_vQO)G3r&0o~NGX2)_^Hhsy&e7bj*fTv=UW}sR;c=`c(>l| z&-MA^(kZQ#@u8lMJL+a*Y~Tn+%hLFi1IOHt!6O5Qa0SQx=BT_3p_dLnuq_aX7f#BH zGk6?&Als&sPHd#Jb6<6&35SCoYl)XL0o@T%E@ulxy3f>gYwIvhcRGx2YaOP#U~M=Q zk7K?ko1*_6)JahoKf7ypLOQN#&?5aOP6LHB7ro0Y`VgIjY1Gw8dh#HR1@{Ec$-i3x z3R4FPcaD(+qqOLWAi@0$ZamPy!9MYGVR}FTMp4rqO4saknNAC(HxfAs4g9AeRorP# zq=%j`b~`m5oyoaJLqEGasUFTu@m~MzA--Jodg?AydTtx^Pb~4{+6S}LzwRI1&j}kG z?2l`pbabme4YXD|4e;QsWA5>IUNA`ExB`f$;ipzvFx5*==4FX%qOu}4lVb%%q`2;@ji~y;T#W64Iab3MB#FY8a)n9 zp~P`v9Lh1|8P){trhZLavK*&1;rR2Y}@{2^NovtN) z=NNA5-g$!Zd1tBM11=UnchWDSJKe)LBp!CVc6P>g`mrpP*iL%3Y-T5=2hZxOK0njv z?)J|HLQSzB{Azm)-dl^TYiSJPU*YJ$jGMDh>%x`0!;4n9D z#h%Js%8wuuc&_L6 z%YD%KSGk_EF?Nv`g+3c&7lueI_5~u6$2#)s5&U}*{3j9o7ZLo?v_CzTa&(pxo+TZo z>xkD&PiF)lh~Up*|1I`!_4ct0^A^sEB?@DzMEJZUg8xPYe_I59Uj+Xcapc1aZ?cDd za$#*-{_+U^2IAOWpM9*)n748M zyoLGbWwrd>%zweWjr0GHBm6%V!T&LWe?5Z#kT}wL(-l5Ft};kJ|CjmmnKyBIE~M=V z{pjPo9>)WwYlzp|zBfnk_6WY0{U5s0`^x#Qi}^-~#|pulp>LXUPeaU47Iz&VE8s>u z+;mI9j@saE4yMLvr0a3apQiU1+%y&&&*Rte{eyko$9npY_Z&_hzxzn6T$fg7c1>37 z5}p^B{>rd+-(=>$3$c98Exa6~*J2*006i)dBX7G0kL)^rbpJhlJwwN7P)LT}boHF% z&{6-JDmO?g4KBdf(PZBddfnymL;c4oqM8oB*2igRM2#d^hK{NF#pZ2JHPuj#Gop zargFI`aMpAGEX|{R+I?VO=79RA^3eF-$4&T#yzFnKXCMTIZw}b z%vVmj#g6BL6qKt!DIsoMQypW+)i(Cq+h^?YGCdmD17w?rv9XR^%?wyGn8{kE@umTv zU;Zc0SavC+2Q$;dr|7O@>HtO~Ns*pc>{CfE6{hDmz>PEsyj?v-hun}q>|$5baeV{- z#@F-t_hrPdQGASlUlHO(=2sEFQR$@|gpaO$%qt(wSC!9A%16#y@Yh_*De#+>{w@k* z!g9F?ap5lJNWbPu=3)Oa=3$>~gpZVuVIQ3TF-bl&`C#k;<%4_>{t4#TE>C1FzSbjn zl26p(bPh2OukSSTaK61w`AAx@+_&8-zS9M(97n9O;kC z1atV`5~yRb!MECi8<)ioKapvLeRZ%{Adre39%trXk zMffZ!AHBYxRX&5cFiitu@U zgwH%*r{nzY1`zPRzQR0wynLQ{czxHIhu8NKzTSrq4%rs=Z&4iQ@h(0OwK7LOX#Gu! zYkeDYEcZ_K#@AiSUvJ+o<)is0lpgzS940iagt(`%*sAi;`t=YO{cXJBNas@o(s!@o zXrq-WsrX$2>H8ImKTYuk#hig|c_ zXPINUyH&m|C?9uR^Y;6I;z<7x&4+1`d9c2$|E%I#zrsAcz7H#Zy*X#feydvU z=M}$A@pZ*@I=7gIw^uW_bB4E93v=X8Lix8b5BqdR`1D5jyiV~W%70Puql#b7J2%pk zRJ>F1Ly9LA*Zyx(T>E?^f{SGX@8@j{_%t6AE_o#J!n;^6@xtX;l6Y{GC(=JBX%qb@ z`;73n@GOVrTYSECyN{R(>1Q}R9pbYbmT&R-F8j=f^m80u2yxLZDUS8}3Hz)lj&eih zUk&j^4zDW?pI@@irsD9CyUe7IF{_(=NVAuj1lD30`8%0AN0CfjAh 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

qSL2>w; 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

`MhiCJ(_GT&fGuhCO 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�&Kw z)o=s*?M4!DBP`nl@tXaxVClF9_EQm%IJC3AbNY_7j)OI_!br8tkLqa*?=tIc;9*>2Z-ckP`MnZ=#wqZpitlEB*cuOMvt;aMhp{uDA2=ey|j z&A%$f-tI8oLlN)a**Jt@{mRPx1G|@y=j1SL%gHkf`^LD01Lv^@b}7g7myBDVZ{0J( zFv<~@oLz%3?cQ#=vygIbyCh8GcJPQ{&+s}tw_U>Z{zKaWGySE|Zz!9bdqX+sw{;Nq zQ#k(}^pEr9w&U44s2#Y^xM!|0@FjLj<0MglD)Kn4eswJ5E8i>r(c!3stSJc}<~t5Q z*9wc&6vst(8bBdi5B3a7tNNLh~AUE)x2;)APeL(RK|$ynjr zZkLxjPBN2#HK2M*!Mb)^fgI9@i=4yys^^$W>I?r{l++g-<4Ik@tTNK&7ylbo+~NLM zZob3G-(^vY+^TTRzsli$xHSsbe577sxE%M3+3a43qfd}DTNN&GC&c=ShV;Y3SNq@Y z-hKI>Q@ED@d52SeEhpQEx&EpQt-({cr?EJg$j2Y;Vhl3(Ima3 zH66+oz1B~a!Y{QP!oOOF`|*;sn7-a*EvBE}SRc~(dXuq^&%ag4qxH5=;T(U9Ii_$O z-;)ma^YbZ(`{BN#_~>-uUJ@GWljA-y=N#_ym(1a(m#hILuJvE&GLx@2Sp(|JxyaG` z^4#ihpT0`be?WxCv&P}R{IbTBYoj&&CdKDs#pk&Qe1L0*D5s{MAA!p~Ha@)y>OH;2 z;fqP7=dH*n;2+E$Cr@bWUMCV`USmBF;HS-Ix0b2HRTAufF&sW=Brjfxcj8_!=2ah{ zCm7OdGaeT5^vT8lSWWC`H8cqp^32yD-lP0W`10g>DS6i{vUTOC9DG`q8DDmii+}ce zwekJa?y{IBGc_*!*^W7rBMU!Y|50-#d))MIhZmq{4IA-QbxT*f$&z=PE1CQr?rq5w zp&@^OAOA1HY)NN&pBK*G^<6t&lQVPVd@Y{2wGZd?fOrdbR4r(&H~VAxoIA+Ixm($7 z7h_C33^>~L&EI=Dt%YaUd^bJTa;ZBDCxLTm)8fqw%<9|EkO#)Kc_!n`H0}kby&Pwk z;T+Yxk7In=f%%FU?v}v(^=X`)Tsl1y=aXQXG!5qn<(M>!b>M6%>_=aKz3>Yf)6M=> z{mq?g2bnu9FLP#E`Jmv=j^2jLk05Wbe|i?qi?LI!IEw;jnGtXAZ3aL5IkV#U4<8

yrr(ud)k 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%0DCVb*@D5@q)*~NA;le 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 diff --git a/Android/app/libs/arm64-v8a/libssl.a b/Android/app/libs/arm64-v8a/libssl.a deleted file mode 100644 index a9fc3f6c13554bcfd9f12979c8f4157ecf86271c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 681576 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 Q%%$dZglBPcHoyG;12`e@0{{R3 diff --git a/Android/app/libs/armeabi-v7a/include/openssl/__DECC_INCLUDE_EPILOGUE.H b/Android/app/libs/armeabi-v7a/include/openssl/__DECC_INCLUDE_EPILOGUE.H deleted file mode 100644 index c350018a..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/__DECC_INCLUDE_EPILOGUE.H +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * This file is only used by HP C on VMS, and is included automatically - * after each header file from this directory - */ - -/* restore state. Must correspond to the save in __decc_include_prologue.h */ -#pragma names restore diff --git a/Android/app/libs/armeabi-v7a/include/openssl/__DECC_INCLUDE_PROLOGUE.H b/Android/app/libs/armeabi-v7a/include/openssl/__DECC_INCLUDE_PROLOGUE.H deleted file mode 100644 index 9a9c777f..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/__DECC_INCLUDE_PROLOGUE.H +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * This file is only used by HP C on VMS, and is included automatically - * after each header file from this directory - */ - -/* save state */ -#pragma names save -/* have the compiler shorten symbols larger than 31 chars to 23 chars - * followed by a 8 hex char CRC - */ -#pragma names as_is,shortened diff --git a/Android/app/libs/armeabi-v7a/include/openssl/aes.h b/Android/app/libs/armeabi-v7a/include/openssl/aes.h deleted file mode 100644 index 245c552a..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/asn1.h b/Android/app/libs/armeabi-v7a/include/openssl/asn1.h deleted file mode 100644 index 05ae1dbe..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/asn1.h +++ /dev/null @@ -1,1100 +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_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 0x1f - -# 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 -/* 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 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ASN1_strings(void); - -/* Error codes for the ASN1 functions. */ - -/* Function codes. */ -# define ASN1_F_A2D_ASN1_OBJECT 100 -# define ASN1_F_A2I_ASN1_INTEGER 102 -# define ASN1_F_A2I_ASN1_STRING 103 -# define ASN1_F_APPEND_EXP 176 -# define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 -# define ASN1_F_ASN1_CB 177 -# define ASN1_F_ASN1_CHECK_TLEN 104 -# define ASN1_F_ASN1_COLLECT 106 -# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 -# define ASN1_F_ASN1_D2I_FP 109 -# define ASN1_F_ASN1_D2I_READ_BIO 107 -# define ASN1_F_ASN1_DIGEST 184 -# define ASN1_F_ASN1_DO_ADB 110 -# define ASN1_F_ASN1_DO_LOCK 233 -# define ASN1_F_ASN1_DUP 111 -# define ASN1_F_ASN1_EX_C2I 204 -# define ASN1_F_ASN1_FIND_END 190 -# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 -# define ASN1_F_ASN1_GENERATE_V3 178 -# define ASN1_F_ASN1_GET_INT64 224 -# define ASN1_F_ASN1_GET_OBJECT 114 -# define ASN1_F_ASN1_GET_UINT64 225 -# define ASN1_F_ASN1_I2D_BIO 116 -# define ASN1_F_ASN1_I2D_FP 117 -# define ASN1_F_ASN1_ITEM_D2I_FP 206 -# define ASN1_F_ASN1_ITEM_DUP 191 -# define ASN1_F_ASN1_ITEM_EMBED_D2I 120 -# define ASN1_F_ASN1_ITEM_EMBED_NEW 121 -# define ASN1_F_ASN1_ITEM_I2D_BIO 192 -# define ASN1_F_ASN1_ITEM_I2D_FP 193 -# define ASN1_F_ASN1_ITEM_PACK 198 -# define ASN1_F_ASN1_ITEM_SIGN 195 -# define ASN1_F_ASN1_ITEM_SIGN_CTX 220 -# define ASN1_F_ASN1_ITEM_UNPACK 199 -# define ASN1_F_ASN1_ITEM_VERIFY 197 -# define ASN1_F_ASN1_MBSTRING_NCOPY 122 -# define ASN1_F_ASN1_OBJECT_NEW 123 -# define ASN1_F_ASN1_OUTPUT_DATA 214 -# define ASN1_F_ASN1_PCTX_NEW 205 -# define ASN1_F_ASN1_SCTX_NEW 221 -# define ASN1_F_ASN1_SIGN 128 -# define ASN1_F_ASN1_STR2TYPE 179 -# define ASN1_F_ASN1_STRING_GET_INT64 227 -# define ASN1_F_ASN1_STRING_GET_UINT64 230 -# define ASN1_F_ASN1_STRING_SET 186 -# define ASN1_F_ASN1_STRING_TABLE_ADD 129 -# define ASN1_F_ASN1_STRING_TO_BN 228 -# define ASN1_F_ASN1_STRING_TYPE_NEW 130 -# define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 -# define ASN1_F_ASN1_TEMPLATE_NEW 133 -# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 -# define ASN1_F_ASN1_TIME_ADJ 217 -# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 -# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 -# define ASN1_F_ASN1_UTCTIME_ADJ 218 -# define ASN1_F_ASN1_VERIFY 137 -# define ASN1_F_B64_READ_ASN1 209 -# define ASN1_F_B64_WRITE_ASN1 210 -# define ASN1_F_BIO_NEW_NDEF 208 -# define ASN1_F_BITSTR_CB 180 -# define ASN1_F_BN_TO_ASN1_STRING 229 -# define ASN1_F_C2I_ASN1_BIT_STRING 189 -# define ASN1_F_C2I_ASN1_INTEGER 194 -# define ASN1_F_C2I_ASN1_OBJECT 196 -# define ASN1_F_C2I_IBUF 226 -# define ASN1_F_C2I_UINT64_INT 101 -# define ASN1_F_COLLECT_DATA 140 -# define ASN1_F_D2I_ASN1_OBJECT 147 -# define ASN1_F_D2I_ASN1_UINTEGER 150 -# define ASN1_F_D2I_AUTOPRIVATEKEY 207 -# define ASN1_F_D2I_PRIVATEKEY 154 -# define ASN1_F_D2I_PUBLICKEY 155 -# define ASN1_F_DO_TCREATE 222 -# define ASN1_F_I2D_ASN1_BIO_STREAM 211 -# define ASN1_F_I2D_DSA_PUBKEY 161 -# define ASN1_F_I2D_EC_PUBKEY 181 -# define ASN1_F_I2D_PRIVATEKEY 163 -# define ASN1_F_I2D_PUBLICKEY 164 -# define ASN1_F_I2D_RSA_PUBKEY 165 -# define ASN1_F_LONG_C2I 166 -# define ASN1_F_OID_MODULE_INIT 174 -# define ASN1_F_PARSE_TAGGING 182 -# define ASN1_F_PKCS5_PBE2_SET_IV 167 -# define ASN1_F_PKCS5_PBE2_SET_SCRYPT 231 -# define ASN1_F_PKCS5_PBE_SET 202 -# define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 -# define ASN1_F_PKCS5_PBKDF2_SET 219 -# define ASN1_F_PKCS5_SCRYPT_SET 232 -# define ASN1_F_SMIME_READ_ASN1 212 -# define ASN1_F_SMIME_TEXT 213 -# define ASN1_F_STBL_MODULE_INIT 223 -# define ASN1_F_UINT32_C2I 105 -# define ASN1_F_UINT64_C2I 112 -# define ASN1_F_X509_CRL_ADD0_REVOKED 169 -# define ASN1_F_X509_INFO_NEW 170 -# define ASN1_F_X509_NAME_ENCODE 203 -# define ASN1_F_X509_NAME_EX_D2I 158 -# define ASN1_F_X509_NAME_EX_NEW 171 -# define ASN1_F_X509_PKEY_NEW 173 - -/* Reason codes. */ -# define ASN1_R_ADDING_OBJECT 171 -# define ASN1_R_ASN1_PARSE_ERROR 203 -# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 -# define ASN1_R_AUX_ERROR 100 -# define ASN1_R_BAD_OBJECT_HEADER 102 -# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 -# define ASN1_R_BN_LIB 105 -# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 -# define ASN1_R_BUFFER_TOO_SMALL 107 -# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 -# define ASN1_R_CONTEXT_NOT_INITIALISED 217 -# define ASN1_R_DATA_IS_WRONG 109 -# define ASN1_R_DECODE_ERROR 110 -# define ASN1_R_DEPTH_EXCEEDED 174 -# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 -# define ASN1_R_ENCODE_ERROR 112 -# define ASN1_R_ERROR_GETTING_TIME 173 -# define ASN1_R_ERROR_LOADING_SECTION 172 -# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 -# define ASN1_R_EXPECTING_AN_INTEGER 115 -# define ASN1_R_EXPECTING_AN_OBJECT 116 -# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 -# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 -# define ASN1_R_FIELD_MISSING 121 -# define ASN1_R_FIRST_NUM_TOO_LARGE 122 -# define ASN1_R_HEADER_TOO_LONG 123 -# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 -# define ASN1_R_ILLEGAL_BOOLEAN 176 -# define ASN1_R_ILLEGAL_CHARACTERS 124 -# define ASN1_R_ILLEGAL_FORMAT 177 -# define ASN1_R_ILLEGAL_HEX 178 -# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 -# define ASN1_R_ILLEGAL_INTEGER 180 -# define ASN1_R_ILLEGAL_NEGATIVE_VALUE 226 -# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 -# define ASN1_R_ILLEGAL_NULL 125 -# define ASN1_R_ILLEGAL_NULL_VALUE 182 -# define ASN1_R_ILLEGAL_OBJECT 183 -# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 -# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 -# define ASN1_R_ILLEGAL_PADDING 221 -# define ASN1_R_ILLEGAL_TAGGED_ANY 127 -# define ASN1_R_ILLEGAL_TIME_VALUE 184 -# define ASN1_R_ILLEGAL_ZERO_CONTENT 222 -# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 -# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 -# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 -# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 -# define ASN1_R_INVALID_DIGIT 130 -# define ASN1_R_INVALID_MIME_TYPE 205 -# define ASN1_R_INVALID_MODIFIER 186 -# define ASN1_R_INVALID_NUMBER 187 -# define ASN1_R_INVALID_OBJECT_ENCODING 216 -# define ASN1_R_INVALID_SCRYPT_PARAMETERS 227 -# define ASN1_R_INVALID_SEPARATOR 131 -# define ASN1_R_INVALID_STRING_TABLE_VALUE 218 -# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 -# define ASN1_R_INVALID_UTF8STRING 134 -# define ASN1_R_INVALID_VALUE 219 -# define ASN1_R_LIST_ERROR 188 -# define ASN1_R_MIME_NO_CONTENT_TYPE 206 -# define ASN1_R_MIME_PARSE_ERROR 207 -# define ASN1_R_MIME_SIG_PARSE_ERROR 208 -# define ASN1_R_MISSING_EOC 137 -# define ASN1_R_MISSING_SECOND_NUMBER 138 -# define ASN1_R_MISSING_VALUE 189 -# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 -# define ASN1_R_MSTRING_WRONG_TAG 140 -# define ASN1_R_NESTED_ASN1_STRING 197 -# define ASN1_R_NESTED_TOO_DEEP 201 -# define ASN1_R_NON_HEX_CHARACTERS 141 -# define ASN1_R_NOT_ASCII_FORMAT 190 -# define ASN1_R_NOT_ENOUGH_DATA 142 -# define ASN1_R_NO_CONTENT_TYPE 209 -# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 -# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 -# define ASN1_R_NO_MULTIPART_BOUNDARY 211 -# define ASN1_R_NO_SIG_CONTENT_TYPE 212 -# define ASN1_R_NULL_IS_WRONG_LENGTH 144 -# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 -# define ASN1_R_ODD_NUMBER_OF_CHARS 145 -# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 -# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 -# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 -# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 -# define ASN1_R_SHORT_LINE 150 -# define ASN1_R_SIG_INVALID_MIME_TYPE 213 -# define ASN1_R_STREAMING_NOT_SUPPORTED 202 -# define ASN1_R_STRING_TOO_LONG 151 -# define ASN1_R_STRING_TOO_SHORT 152 -# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 -# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 -# define ASN1_R_TOO_LARGE 223 -# define ASN1_R_TOO_LONG 155 -# define ASN1_R_TOO_SMALL 224 -# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 -# define ASN1_R_TYPE_NOT_PRIMITIVE 195 -# define ASN1_R_UNEXPECTED_EOC 159 -# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 -# define ASN1_R_UNKNOWN_FORMAT 160 -# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 -# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 -# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 -# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 -# define ASN1_R_UNKNOWN_TAG 194 -# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 -# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 -# define ASN1_R_UNSUPPORTED_TYPE 196 -# define ASN1_R_WRONG_INTEGER_TYPE 225 -# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 -# define ASN1_R_WRONG_TAG 168 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/asn1_mac.h b/Android/app/libs/armeabi-v7a/include/openssl/asn1_mac.h deleted file mode 100644 index 7ac1782a..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/asn1t.h b/Android/app/libs/armeabi-v7a/include/openssl/asn1t.h deleted file mode 100644 index a5248293..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/asn1t.h +++ /dev/null @@ -1,929 +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) \ - OPENSSL_GLOBAL 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),\ - #stname \ - 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),\ - #stname \ - 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(LONG) -DECLARE_ASN1_ITEM(ZLONG) - -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/Android/app/libs/armeabi-v7a/include/openssl/async.h b/Android/app/libs/armeabi-v7a/include/openssl/async.h deleted file mode 100644 index 5b2e496d..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/async.h +++ /dev/null @@ -1,98 +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 - */ - -#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 - - -# 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ASYNC_strings(void); - -/* Error codes for the ASYNC functions. */ - -/* Function codes. */ -# define ASYNC_F_ASYNC_CTX_NEW 100 -# define ASYNC_F_ASYNC_INIT_THREAD 101 -# define ASYNC_F_ASYNC_JOB_NEW 102 -# define ASYNC_F_ASYNC_PAUSE_JOB 103 -# define ASYNC_F_ASYNC_START_FUNC 104 -# define ASYNC_F_ASYNC_START_JOB 105 - -/* Reason codes. */ -# define ASYNC_R_FAILED_TO_SET_POOL 101 -# define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 -# define ASYNC_R_INIT_FAILED 105 -# define ASYNC_R_INVALID_POOL_SIZE 103 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/bio.h b/Android/app/libs/armeabi-v7a/include/openssl/bio.h deleted file mode 100644 index f435bd8e..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/bio.h +++ /dev/null @@ -1,852 +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_BIO_H -# define HEADER_BIO_H - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include - -# include - -# ifndef OPENSSL_NO_SCTP -# include -# endif - -#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_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 - -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); -BIO_callback_fn BIO_get_callback(const BIO *b); -void BIO_set_callback(BIO *b, BIO_callback_fn 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) - -/* 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 len); -int BIO_gets(BIO *bp, char *buf, int size); -int BIO_write(BIO *b, const void *data, int len); -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_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_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); - */ - -# ifdef __GNUC__ -# define __bio_h__attr__ __attribute__ -# else -# define __bio_h__attr__(x) -# endif -int BIO_printf(BIO *bio, const char *format, ...) -__bio_h__attr__((__format__(__printf__, 2, 3))); -int BIO_vprintf(BIO *bio, const char *format, va_list args) -__bio_h__attr__((__format__(__printf__, 2, 0))); -int BIO_snprintf(char *buf, size_t n, const char *format, ...) -__bio_h__attr__((__format__(__printf__, 3, 4))); -int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) -__bio_h__attr__((__format__(__printf__, 3, 0))); -# undef __bio_h__attr__ - - -BIO_METHOD *BIO_meth_new(int type, const char *name); -void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int); -int BIO_meth_set_write(BIO_METHOD *biom, - int (*write) (BIO *, const char *, int)); -int (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int); -int BIO_meth_set_read(BIO_METHOD *biom, - int (*read) (BIO *, char *, int)); -int (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *); -int BIO_meth_set_puts(BIO_METHOD *biom, - int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int); -int BIO_meth_set_gets(BIO_METHOD *biom, - int (*gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(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(BIO_METHOD *bion)) (BIO *); -int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *); -int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(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 *)); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BIO_strings(void); - -/* Error codes for the BIO functions. */ - -/* Function codes. */ -# define BIO_F_ACPT_STATE 100 -# define BIO_F_ADDR_STRINGS 134 -# define BIO_F_BIO_ACCEPT 101 -# define BIO_F_BIO_ACCEPT_EX 137 -# define BIO_F_BIO_ADDR_NEW 144 -# define BIO_F_BIO_CALLBACK_CTRL 131 -# define BIO_F_BIO_CONNECT 138 -# define BIO_F_BIO_CTRL 103 -# define BIO_F_BIO_GETS 104 -# define BIO_F_BIO_GET_HOST_IP 106 -# define BIO_F_BIO_GET_NEW_INDEX 102 -# define BIO_F_BIO_GET_PORT 107 -# define BIO_F_BIO_LISTEN 139 -# define BIO_F_BIO_LOOKUP 135 -# define BIO_F_BIO_MAKE_PAIR 121 -# define BIO_F_BIO_METH_NEW 146 -# define BIO_F_BIO_NEW 108 -# define BIO_F_BIO_NEW_FILE 109 -# define BIO_F_BIO_NEW_MEM_BUF 126 -# define BIO_F_BIO_NREAD 123 -# define BIO_F_BIO_NREAD0 124 -# define BIO_F_BIO_NWRITE 125 -# define BIO_F_BIO_NWRITE0 122 -# define BIO_F_BIO_PARSE_HOSTSERV 136 -# define BIO_F_BIO_PUTS 110 -# define BIO_F_BIO_READ 111 -# define BIO_F_BIO_SOCKET 140 -# define BIO_F_BIO_SOCKET_NBIO 142 -# define BIO_F_BIO_SOCK_INFO 141 -# define BIO_F_BIO_SOCK_INIT 112 -# define BIO_F_BIO_WRITE 113 -# define BIO_F_BUFFER_CTRL 114 -# define BIO_F_CONN_CTRL 127 -# define BIO_F_CONN_STATE 115 -# define BIO_F_DGRAM_SCTP_READ 132 -# define BIO_F_DGRAM_SCTP_WRITE 133 -# define BIO_F_FILE_CTRL 116 -# define BIO_F_FILE_READ 130 -# define BIO_F_LINEBUFFER_CTRL 129 -# define BIO_F_MEM_WRITE 117 -# define BIO_F_SSL_NEW 118 - -/* Reason codes. */ -# define BIO_R_ACCEPT_ERROR 100 -# define BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET 141 -# define BIO_R_AMBIGUOUS_HOST_OR_SERVICE 129 -# define BIO_R_BAD_FOPEN_MODE 101 -# define BIO_R_BROKEN_PIPE 124 -# define BIO_R_CONNECT_ERROR 103 -# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 -# define BIO_R_GETSOCKNAME_ERROR 132 -# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133 -# define BIO_R_GETTING_SOCKTYPE 134 -# define BIO_R_INVALID_ARGUMENT 125 -# define BIO_R_INVALID_SOCKET 135 -# define BIO_R_IN_USE 123 -# define BIO_R_LISTEN_V6_ONLY 136 -# define BIO_R_LOOKUP_RETURNED_NOTHING 142 -# define BIO_R_MALFORMED_HOST_OR_SERVICE 130 -# define BIO_R_NBIO_CONNECT_ERROR 110 -# define BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED 143 -# define BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED 144 -# define BIO_R_NO_PORT_DEFINED 113 -# define BIO_R_NO_SUCH_FILE 128 -# define BIO_R_NULL_PARAMETER 115 -# define BIO_R_UNABLE_TO_BIND_SOCKET 117 -# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 -# define BIO_R_UNABLE_TO_KEEPALIVE 137 -# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 -# define BIO_R_UNABLE_TO_NODELAY 138 -# define BIO_R_UNABLE_TO_REUSEADDR 139 -# define BIO_R_UNAVAILABLE_IP_FAMILY 145 -# define BIO_R_UNINITIALIZED 120 -# define BIO_R_UNKNOWN_INFO_TYPE 140 -# define BIO_R_UNSUPPORTED_IP_FAMILY 146 -# define BIO_R_UNSUPPORTED_METHOD 121 -# define BIO_R_UNSUPPORTED_PROTOCOL_FAMILY 131 -# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 -# define BIO_R_WSASTARTUP 122 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/blowfish.h b/Android/app/libs/armeabi-v7a/include/openssl/blowfish.h deleted file mode 100644 index cd3e460e..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/bn.h b/Android/app/libs/armeabi-v7a/include/openssl/bn.h deleted file mode 100644 index 54ae7601..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/bn.h +++ /dev/null @@ -1,575 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the Eric Young open source - * license provided above. - * - * The binary polynomial arithmetic software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - -#ifndef HEADER_BN_H -# define HEADER_BN_H - -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# 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 */ - -/* - * number of Miller-Rabin iterations for an error rate of less than 2^-80 for - * random 'b'-bit input, b >= 100 (taken from table 4.4 in the Handbook of - * Applied Cryptography [Menezes, van Oorschot, Vanstone; CRC Press 1996]; - * original paper: Damgaard, Landrock, Pomerance: Average case error - * estimates for the strong probable prime test. -- Math. Comp. 61 (1993) - * 177-194) - */ -# define BN_prime_checks_for_size(b) ((b) >= 1300 ? 2 : \ - (b) >= 850 ? 3 : \ - (b) >= 650 ? 4 : \ - (b) >= 550 ? 5 : \ - (b) >= 450 ? 6 : \ - (b) >= 400 ? 7 : \ - (b) >= 350 ? 8 : \ - (b) >= 300 ? 9 : \ - (b) >= 250 ? 12 : \ - (b) >= 200 ? 15 : \ - (b) >= 150 ? 18 : \ - /* b >= 100 */ 27) - -# 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_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); -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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BN_strings(void); - -/* Error codes for the BN functions. */ - -/* Function codes. */ -# define BN_F_BNRAND 127 -# define BN_F_BN_BLINDING_CONVERT_EX 100 -# define BN_F_BN_BLINDING_CREATE_PARAM 128 -# define BN_F_BN_BLINDING_INVERT_EX 101 -# define BN_F_BN_BLINDING_NEW 102 -# define BN_F_BN_BLINDING_UPDATE 103 -# define BN_F_BN_BN2DEC 104 -# define BN_F_BN_BN2HEX 105 -# define BN_F_BN_COMPUTE_WNAF 142 -# define BN_F_BN_CTX_GET 116 -# define BN_F_BN_CTX_NEW 106 -# define BN_F_BN_CTX_START 129 -# define BN_F_BN_DIV 107 -# define BN_F_BN_DIV_RECP 130 -# define BN_F_BN_EXP 123 -# define BN_F_BN_EXPAND_INTERNAL 120 -# define BN_F_BN_GENCB_NEW 143 -# define BN_F_BN_GENERATE_DSA_NONCE 140 -# define BN_F_BN_GENERATE_PRIME_EX 141 -# define BN_F_BN_GF2M_MOD 131 -# define BN_F_BN_GF2M_MOD_EXP 132 -# define BN_F_BN_GF2M_MOD_MUL 133 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 -# define BN_F_BN_GF2M_MOD_SQR 136 -# define BN_F_BN_GF2M_MOD_SQRT 137 -# define BN_F_BN_LSHIFT 145 -# define BN_F_BN_MOD_EXP2_MONT 118 -# define BN_F_BN_MOD_EXP_MONT 109 -# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 -# define BN_F_BN_MOD_EXP_MONT_WORD 117 -# define BN_F_BN_MOD_EXP_RECP 125 -# define BN_F_BN_MOD_EXP_SIMPLE 126 -# define BN_F_BN_MOD_INVERSE 110 -# define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 -# define BN_F_BN_MOD_LSHIFT_QUICK 119 -# define BN_F_BN_MOD_SQRT 121 -# define BN_F_BN_MPI2BN 112 -# define BN_F_BN_NEW 113 -# define BN_F_BN_RAND 114 -# define BN_F_BN_RAND_RANGE 122 -# define BN_F_BN_RSHIFT 146 -# define BN_F_BN_SET_WORDS 144 -# define BN_F_BN_USUB 115 - -/* Reason codes. */ -# define BN_R_ARG2_LT_ARG3 100 -# define BN_R_BAD_RECIPROCAL 101 -# define BN_R_BIGNUM_TOO_LONG 114 -# define BN_R_BITS_TOO_SMALL 118 -# define BN_R_CALLED_WITH_EVEN_MODULUS 102 -# define BN_R_DIV_BY_ZERO 103 -# define BN_R_ENCODING_ERROR 104 -# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 -# define BN_R_INPUT_NOT_REDUCED 110 -# define BN_R_INVALID_LENGTH 106 -# define BN_R_INVALID_RANGE 115 -# define BN_R_INVALID_SHIFT 119 -# define BN_R_NOT_A_SQUARE 111 -# define BN_R_NOT_INITIALIZED 107 -# define BN_R_NO_INVERSE 108 -# define BN_R_NO_SOLUTION 116 -# define BN_R_PRIVATE_KEY_TOO_LARGE 117 -# define BN_R_P_IS_NOT_PRIME 112 -# define BN_R_TOO_MANY_ITERATIONS 113 -# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/buffer.h b/Android/app/libs/armeabi-v7a/include/openssl/buffer.h deleted file mode 100644 index 35160b4f..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/buffer.h +++ /dev/null @@ -1,73 +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_BUFFER_H -# define HEADER_BUFFER_H - -# include -# ifndef HEADER_CRYPTO_H -# include -# endif - - -#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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BUF_strings(void); - -/* Error codes for the BUF functions. */ - -/* Function codes. */ -# define BUF_F_BUF_MEM_GROW 100 -# define BUF_F_BUF_MEM_GROW_CLEAN 105 -# define BUF_F_BUF_MEM_NEW 101 - -/* Reason codes. */ - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/camellia.h b/Android/app/libs/armeabi-v7a/include/openssl/camellia.h deleted file mode 100644 index 151f3c13..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/cast.h b/Android/app/libs/armeabi-v7a/include/openssl/cast.h deleted file mode 100644 index 2cc89ae0..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/cmac.h b/Android/app/libs/armeabi-v7a/include/openssl/cmac.h deleted file mode 100644 index 3535a9ab..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/cms.h b/Android/app/libs/armeabi-v7a/include/openssl/cms.h deleted file mode 100644 index 7e534e0d..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/cms.h +++ /dev/null @@ -1,512 +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_CMS_H -# define HEADER_CMS_H - -# include - -# ifndef OPENSSL_NO_CMS -# 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); - -# ifdef HEADER_X509V3_H - -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); -# endif -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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CMS_strings(void); - -/* Error codes for the CMS functions. */ - -/* Function codes. */ -# define CMS_F_CHECK_CONTENT 99 -# define CMS_F_CMS_ADD0_CERT 164 -# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 -# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 -# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 -# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 -# define CMS_F_CMS_ADD1_SIGNER 102 -# define CMS_F_CMS_ADD1_SIGNINGTIME 103 -# define CMS_F_CMS_COMPRESS 104 -# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 -# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 -# define CMS_F_CMS_COPY_CONTENT 107 -# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 -# define CMS_F_CMS_DATA 109 -# define CMS_F_CMS_DATAFINAL 110 -# define CMS_F_CMS_DATAINIT 111 -# define CMS_F_CMS_DECRYPT 112 -# define CMS_F_CMS_DECRYPT_SET1_KEY 113 -# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 -# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 -# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 -# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 -# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 -# define CMS_F_CMS_DIGEST_VERIFY 118 -# define CMS_F_CMS_ENCODE_RECEIPT 161 -# define CMS_F_CMS_ENCRYPT 119 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 -# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 -# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 -# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 -# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 -# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 -# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 -# define CMS_F_CMS_ENV_ASN1_CTRL 171 -# define CMS_F_CMS_FINAL 127 -# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 -# define CMS_F_CMS_GET0_CONTENT 129 -# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 -# define CMS_F_CMS_GET0_ENVELOPED 131 -# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 -# define CMS_F_CMS_GET0_SIGNED 133 -# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 -# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 -# define CMS_F_CMS_RECEIPT_VERIFY 160 -# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 -# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 -# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 -# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 -# define CMS_F_CMS_SD_ASN1_CTRL 170 -# define CMS_F_CMS_SET1_IAS 176 -# define CMS_F_CMS_SET1_KEYID 177 -# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 -# define CMS_F_CMS_SET_DETACHED 147 -# define CMS_F_CMS_SIGN 148 -# define CMS_F_CMS_SIGNED_DATA_INIT 149 -# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 -# define CMS_F_CMS_SIGNERINFO_SIGN 151 -# define CMS_F_CMS_SIGNERINFO_VERIFY 152 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 -# define CMS_F_CMS_SIGN_RECEIPT 163 -# define CMS_F_CMS_STREAM 155 -# define CMS_F_CMS_UNCOMPRESS 156 -# define CMS_F_CMS_VERIFY 157 - -/* Reason codes. */ -# define CMS_R_ADD_SIGNER_ERROR 99 -# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 -# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 -# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 -# define CMS_R_CIPHER_INITIALISATION_ERROR 101 -# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 -# define CMS_R_CMS_DATAFINAL_ERROR 103 -# define CMS_R_CMS_LIB 104 -# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 -# define CMS_R_CONTENT_NOT_FOUND 105 -# define CMS_R_CONTENT_TYPE_MISMATCH 171 -# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 -# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 -# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 -# define CMS_R_CONTENT_VERIFY_ERROR 109 -# define CMS_R_CTRL_ERROR 110 -# define CMS_R_CTRL_FAILURE 111 -# define CMS_R_DECRYPT_ERROR 112 -# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 -# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 -# define CMS_R_ERROR_SETTING_KEY 115 -# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 -# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 -# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 -# define CMS_R_INVALID_KEY_LENGTH 118 -# define CMS_R_MD_BIO_INIT_ERROR 119 -# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 -# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 -# define CMS_R_MSGSIGDIGEST_ERROR 172 -# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 -# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 -# define CMS_R_NEED_ONE_SIGNER 164 -# define CMS_R_NOT_A_SIGNED_RECEIPT 165 -# define CMS_R_NOT_ENCRYPTED_DATA 122 -# define CMS_R_NOT_KEK 123 -# define CMS_R_NOT_KEY_AGREEMENT 181 -# define CMS_R_NOT_KEY_TRANSPORT 124 -# define CMS_R_NOT_PWRI 177 -# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 -# define CMS_R_NO_CIPHER 126 -# define CMS_R_NO_CONTENT 127 -# define CMS_R_NO_CONTENT_TYPE 173 -# define CMS_R_NO_DEFAULT_DIGEST 128 -# define CMS_R_NO_DIGEST_SET 129 -# define CMS_R_NO_KEY 130 -# define CMS_R_NO_KEY_OR_CERT 174 -# define CMS_R_NO_MATCHING_DIGEST 131 -# define CMS_R_NO_MATCHING_RECIPIENT 132 -# define CMS_R_NO_MATCHING_SIGNATURE 166 -# define CMS_R_NO_MSGSIGDIGEST 167 -# define CMS_R_NO_PASSWORD 178 -# define CMS_R_NO_PRIVATE_KEY 133 -# define CMS_R_NO_PUBLIC_KEY 134 -# define CMS_R_NO_RECEIPT_REQUEST 168 -# define CMS_R_NO_SIGNERS 135 -# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 -# define CMS_R_RECEIPT_DECODE_ERROR 169 -# define CMS_R_RECIPIENT_ERROR 137 -# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 -# define CMS_R_SIGNFINAL_ERROR 139 -# define CMS_R_SMIME_TEXT_ERROR 140 -# define CMS_R_STORE_INIT_ERROR 141 -# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 -# define CMS_R_TYPE_NOT_DATA 143 -# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 -# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 -# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 -# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 -# define CMS_R_UNKNOWN_CIPHER 148 -# define CMS_R_UNKNOWN_DIGEST_ALGORIHM 149 -# define CMS_R_UNKNOWN_ID 150 -# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 -# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 -# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 -# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 -# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 -# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE 155 -# define CMS_R_UNSUPPORTED_TYPE 156 -# define CMS_R_UNWRAP_ERROR 157 -# define CMS_R_UNWRAP_FAILURE 180 -# define CMS_R_VERIFICATION_FAILURE 158 -# define CMS_R_WRAP_ERROR 159 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/comp.h b/Android/app/libs/armeabi-v7a/include/openssl/comp.h deleted file mode 100644 index 260ff1e0..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/comp.h +++ /dev/null @@ -1,72 +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 - */ - -#ifndef HEADER_COMP_H -# define HEADER_COMP_H - -# include - -# ifndef OPENSSL_NO_COMP -# 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 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_COMP_strings(void); - -/* Error codes for the COMP functions. */ - -/* Function codes. */ -# define COMP_F_BIO_ZLIB_FLUSH 99 -# define COMP_F_BIO_ZLIB_NEW 100 -# define COMP_F_BIO_ZLIB_READ 101 -# define COMP_F_BIO_ZLIB_WRITE 102 - -/* Reason codes. */ -# define COMP_R_ZLIB_DEFLATE_ERROR 99 -# define COMP_R_ZLIB_INFLATE_ERROR 100 -# define COMP_R_ZLIB_NOT_SUPPORTED 101 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/conf.h b/Android/app/libs/armeabi-v7a/include/openssl/conf.h deleted file mode 100644 index 980a51b1..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/conf.h +++ /dev/null @@ -1,217 +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_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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CONF_strings(void); - -/* Error codes for the CONF functions. */ - -/* Function codes. */ -# define CONF_F_CONF_DUMP_FP 104 -# define CONF_F_CONF_LOAD 100 -# define CONF_F_CONF_LOAD_FP 103 -# define CONF_F_CONF_PARSE_LIST 119 -# define CONF_F_DEF_LOAD 120 -# define CONF_F_DEF_LOAD_BIO 121 -# define CONF_F_MODULE_INIT 115 -# define CONF_F_MODULE_LOAD_DSO 117 -# define CONF_F_MODULE_RUN 118 -# define CONF_F_NCONF_DUMP_BIO 105 -# define CONF_F_NCONF_DUMP_FP 106 -# define CONF_F_NCONF_GET_NUMBER_E 112 -# define CONF_F_NCONF_GET_SECTION 108 -# define CONF_F_NCONF_GET_STRING 109 -# define CONF_F_NCONF_LOAD 113 -# define CONF_F_NCONF_LOAD_BIO 110 -# define CONF_F_NCONF_LOAD_FP 114 -# define CONF_F_NCONF_NEW 111 -# define CONF_F_STR_COPY 101 - -/* Reason codes. */ -# define CONF_R_ERROR_LOADING_DSO 110 -# define CONF_R_LIST_CANNOT_BE_NULL 115 -# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 -# define CONF_R_MISSING_EQUAL_SIGN 101 -# define CONF_R_MISSING_INIT_FUNCTION 112 -# define CONF_R_MODULE_INITIALIZATION_ERROR 109 -# define CONF_R_NO_CLOSE_BRACE 102 -# define CONF_R_NO_CONF 105 -# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 -# define CONF_R_NO_SECTION 107 -# define CONF_R_NO_SUCH_FILE 114 -# define CONF_R_NO_VALUE 108 -# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 -# define CONF_R_UNKNOWN_MODULE_NAME 113 -# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 -# define CONF_R_VARIABLE_HAS_NO_VALUE 104 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/conf_api.h b/Android/app/libs/armeabi-v7a/include/openssl/conf_api.h deleted file mode 100644 index a0275ad7..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/crypto.h b/Android/app/libs/armeabi-v7a/include/openssl/crypto.h deleted file mode 100644 index 1ba7f25f..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/crypto.h +++ /dev/null @@ -1,467 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_CRYPTO_H -# define HEADER_CRYPTO_H - -# 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__COUNT 14 - -/* - * This is the default callbacks, but we can have others as well: this is - * needed in Win32 where the application malloc and the library malloc may - * not be the same. - */ -#define OPENSSL_malloc_init() \ - CRYPTO_set_mem_functions(CRYPTO_malloc, CRYPTO_realloc, CRYPTO_free) - -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 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); - -/*- - * 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); - -# 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); - -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 volatile void * volatile in_a, - const volatile void * volatile 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 flag 0x00010000 reserved for internal use */ -/* 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_appname(OPENSSL_INIT_SETTINGS *settings, - const char *config_file); -# 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CRYPTO_strings(void); - -/* Error codes for the CRYPTO functions. */ - -/* Function codes. */ -# define CRYPTO_F_CRYPTO_DUP_EX_DATA 110 -# define CRYPTO_F_CRYPTO_FREE_EX_DATA 111 -# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 -# define CRYPTO_F_CRYPTO_MEMDUP 115 -# define CRYPTO_F_CRYPTO_NEW_EX_DATA 112 -# define CRYPTO_F_CRYPTO_SET_EX_DATA 102 -# define CRYPTO_F_FIPS_MODE_SET 109 -# define CRYPTO_F_GET_AND_LOCK 113 -# define CRYPTO_F_OPENSSL_BUF2HEXSTR 117 -# define CRYPTO_F_OPENSSL_HEXSTR2BUF 118 -# define CRYPTO_F_OPENSSL_INIT_CRYPTO 116 - -/* Reason codes. */ -# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 -# define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 -# define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/ct.h b/Android/app/libs/armeabi-v7a/include/openssl/ct.h deleted file mode 100644 index bf29fbab..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/ct.h +++ /dev/null @@ -1,533 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CT_H -# define HEADER_CT_H - -# include - -# ifndef OPENSSL_NO_CT -# 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|. - * See internal/cryptlib.h for the environment variable and file path that are - * consulted to find the default file. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CT_strings(void); - -/* Error codes for the CT functions. */ - -/* Function codes. */ -# define CT_F_CTLOG_NEW 117 -# define CT_F_CTLOG_NEW_FROM_BASE64 118 -# define CT_F_CTLOG_NEW_FROM_CONF 119 -# define CT_F_CTLOG_STORE_LOAD_CTX_NEW 122 -# define CT_F_CTLOG_STORE_LOAD_FILE 123 -# define CT_F_CTLOG_STORE_LOAD_LOG 130 -# define CT_F_CTLOG_STORE_NEW 131 -# define CT_F_CT_BASE64_DECODE 124 -# define CT_F_CT_POLICY_EVAL_CTX_NEW 133 -# define CT_F_CT_V1_LOG_ID_FROM_PKEY 125 -# define CT_F_I2O_SCT 107 -# define CT_F_I2O_SCT_LIST 108 -# define CT_F_I2O_SCT_SIGNATURE 109 -# define CT_F_O2I_SCT 110 -# define CT_F_O2I_SCT_LIST 111 -# define CT_F_O2I_SCT_SIGNATURE 112 -# define CT_F_SCT_CTX_NEW 126 -# define CT_F_SCT_CTX_VERIFY 128 -# define CT_F_SCT_NEW 100 -# define CT_F_SCT_NEW_FROM_BASE64 127 -# define CT_F_SCT_SET0_LOG_ID 101 -# define CT_F_SCT_SET1_EXTENSIONS 114 -# define CT_F_SCT_SET1_LOG_ID 115 -# define CT_F_SCT_SET1_SIGNATURE 116 -# define CT_F_SCT_SET_LOG_ENTRY_TYPE 102 -# define CT_F_SCT_SET_SIGNATURE_NID 103 -# define CT_F_SCT_SET_VERSION 104 - -/* Reason codes. */ -# define CT_R_BASE64_DECODE_ERROR 108 -# define CT_R_INVALID_LOG_ID_LENGTH 100 -# define CT_R_LOG_CONF_INVALID 109 -# define CT_R_LOG_CONF_INVALID_KEY 110 -# define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 -# define CT_R_LOG_CONF_MISSING_KEY 112 -# define CT_R_LOG_KEY_INVALID 113 -# define CT_R_SCT_FUTURE_TIMESTAMP 116 -# define CT_R_SCT_INVALID 104 -# define CT_R_SCT_INVALID_SIGNATURE 107 -# define CT_R_SCT_LIST_INVALID 105 -# define CT_R_SCT_LOG_ID_MISMATCH 114 -# define CT_R_SCT_NOT_SET 106 -# define CT_R_SCT_UNSUPPORTED_VERSION 115 -# define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 -# define CT_R_UNSUPPORTED_ENTRY_TYPE 102 -# define CT_R_UNSUPPORTED_VERSION 103 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/des.h b/Android/app/libs/armeabi-v7a/include/openssl/des.h deleted file mode 100644 index be4abbdf..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/dh.h b/Android/app/libs/armeabi-v7a/include/openssl/dh.h deleted file mode 100644 index fbd47903..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/dh.h +++ /dev/null @@ -1,361 +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_DH_H -# define HEADER_DH_H - -# include - -# ifndef OPENSSL_NO_DH -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -# 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(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); - -# 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); -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(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_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) - -/* KDF types */ -# define EVP_PKEY_DH_KDF_NONE 1 -# ifndef OPENSSL_NO_CMS -# define EVP_PKEY_DH_KDF_X9_42 2 -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_DH_strings(void); - -/* Error codes for the DH functions. */ - -/* Function codes. */ -# define DH_F_COMPUTE_KEY 102 -# define DH_F_DHPARAMS_PRINT_FP 101 -# define DH_F_DH_BUILTIN_GENPARAMS 106 -# define DH_F_DH_CMS_DECRYPT 114 -# define DH_F_DH_CMS_SET_PEERKEY 115 -# define DH_F_DH_CMS_SET_SHARED_INFO 116 -# define DH_F_DH_METH_DUP 117 -# define DH_F_DH_METH_NEW 118 -# define DH_F_DH_METH_SET1_NAME 119 -# define DH_F_DH_NEW_METHOD 105 -# define DH_F_DH_PARAM_DECODE 107 -# define DH_F_DH_PRIV_DECODE 110 -# define DH_F_DH_PRIV_ENCODE 111 -# define DH_F_DH_PUB_DECODE 108 -# define DH_F_DH_PUB_ENCODE 109 -# define DH_F_DO_DH_PRINT 100 -# define DH_F_GENERATE_KEY 103 -# define DH_F_PKEY_DH_DERIVE 112 -# define DH_F_PKEY_DH_KEYGEN 113 - -/* Reason codes. */ -# define DH_R_BAD_GENERATOR 101 -# define DH_R_BN_DECODE_ERROR 109 -# define DH_R_BN_ERROR 106 -# define DH_R_DECODE_ERROR 104 -# define DH_R_INVALID_PUBKEY 102 -# define DH_R_KDF_PARAMETER_ERROR 112 -# define DH_R_KEYS_NOT_SET 108 -# define DH_R_MODULUS_TOO_LARGE 103 -# define DH_R_NO_PARAMETERS_SET 107 -# define DH_R_NO_PRIVATE_VALUE 100 -# define DH_R_PARAMETER_ENCODING_ERROR 105 -# define DH_R_PEER_KEY_ERROR 111 -# define DH_R_SHARED_INFO_ERROR 113 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/dsa.h b/Android/app/libs/armeabi-v7a/include/openssl/dsa.h deleted file mode 100644 index 139718ed..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/dsa.h +++ /dev/null @@ -1,283 +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 - */ - -/* - * The DSS routines are based on patches supplied by - * Steven Schoch . - */ - -#ifndef HEADER_DSA_H -# define HEADER_DSA_H - -# include - -# ifndef OPENSSL_NO_DSA -# ifdef __cplusplus -extern "C" { -# endif -# include -# include -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -# 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 */ -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 50 -/* - * Primality test according to FIPS PUB 186[-1], Appendix 2.1: 50 rounds of - * Rabin-Miller - */ -# 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_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); -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(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 *)); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_DSA_strings(void); - -/* Error codes for the DSA functions. */ - -/* Function codes. */ -# define DSA_F_DSAPARAMS_PRINT 100 -# define DSA_F_DSAPARAMS_PRINT_FP 101 -# define DSA_F_DSA_BUILTIN_PARAMGEN 125 -# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 -# define DSA_F_DSA_DO_SIGN 112 -# define DSA_F_DSA_DO_VERIFY 113 -# define DSA_F_DSA_METH_DUP 127 -# define DSA_F_DSA_METH_NEW 128 -# define DSA_F_DSA_METH_SET1_NAME 129 -# define DSA_F_DSA_NEW_METHOD 103 -# define DSA_F_DSA_PARAM_DECODE 119 -# define DSA_F_DSA_PRINT_FP 105 -# define DSA_F_DSA_PRIV_DECODE 115 -# define DSA_F_DSA_PRIV_ENCODE 116 -# define DSA_F_DSA_PUB_DECODE 117 -# define DSA_F_DSA_PUB_ENCODE 118 -# define DSA_F_DSA_SIGN 106 -# define DSA_F_DSA_SIGN_SETUP 107 -# define DSA_F_DSA_SIG_NEW 102 -# define DSA_F_OLD_DSA_PRIV_DECODE 122 -# define DSA_F_PKEY_DSA_CTRL 120 -# define DSA_F_PKEY_DSA_KEYGEN 121 - -/* Reason codes. */ -# define DSA_R_BAD_Q_VALUE 102 -# define DSA_R_BN_DECODE_ERROR 108 -# define DSA_R_BN_ERROR 109 -# define DSA_R_DECODE_ERROR 104 -# define DSA_R_INVALID_DIGEST_TYPE 106 -# define DSA_R_INVALID_PARAMETERS 112 -# define DSA_R_MISSING_PARAMETERS 101 -# define DSA_R_MODULUS_TOO_LARGE 103 -# define DSA_R_NO_PARAMETERS_SET 107 -# define DSA_R_PARAMETER_ENCODING_ERROR 105 -# define DSA_R_Q_NOT_PRIME 113 -# define DSA_R_SEED_LEN_SMALL 110 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/dtls1.h b/Android/app/libs/armeabi-v7a/include/openssl/dtls1.h deleted file mode 100644 index f4769f83..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/dtls1.h +++ /dev/null @@ -1,56 +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_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 */ -# 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 - -# ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE -# define DTLS1_AL_HEADER_LENGTH 7 -# else -# define DTLS1_AL_HEADER_LENGTH 2 -# endif - - -/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */ -# 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/Android/app/libs/armeabi-v7a/include/openssl/e_os2.h b/Android/app/libs/armeabi-v7a/include/openssl/e_os2.h deleted file mode 100644 index 9800e154..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/e_os2.h +++ /dev/null @@ -1,297 +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_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 - -/*- - * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare - * certain global symbols that, with some compilers under VMS, have to be - * defined and declared explicitly with globaldef and globalref. - * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare - * DLL exports and imports for compilers under Win32. These are a little - * more complicated to use. Basically, for any library that exports some - * global variables, the following code must be present in the header file - * that declares them, before OPENSSL_EXTERN is used: - * - * #ifdef SOME_BUILD_FLAG_MACRO - * # undef OPENSSL_EXTERN - * # define OPENSSL_EXTERN OPENSSL_EXPORT - * #endif - * - * The default is to have OPENSSL_EXPORT, OPENSSL_EXTERN and OPENSSL_GLOBAL - * have some generally sensible values. - */ - -# if defined(OPENSSL_SYS_VMS_NODECC) -# define OPENSSL_EXPORT globalref -# define OPENSSL_EXTERN globalref -# define OPENSSL_GLOBAL globaldef -# elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) -# define OPENSSL_EXPORT extern __declspec(dllexport) -# define OPENSSL_EXTERN extern __declspec(dllimport) -# define OPENSSL_GLOBAL -# else -# define OPENSSL_EXPORT extern -# define OPENSSL_EXTERN extern -# define OPENSSL_GLOBAL -# endif - -/*- - * 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) OPENSSL_GLOBAL 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 -# 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<=1500 -/* - * 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 -# define ossl_noreturn _Noreturn -# elif defined(__GNUC__) && __GNUC__ >= 2 -# define ossl_noreturn __attribute__((noreturn)) -# else -# define ossl_noreturn -# endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/ebcdic.h b/Android/app/libs/armeabi-v7a/include/openssl/ebcdic.h deleted file mode 100644 index aa012855..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/ec.h b/Android/app/libs/armeabi-v7a/include/openssl/ec.h deleted file mode 100644 index f06680a7..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/ec.h +++ /dev/null @@ -1,1576 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * The elliptic curve binary polynomial software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - -#ifndef HEADER_EC_H -# define HEADER_EC_H - -# include - -# ifndef OPENSSL_NO_EC -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# 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 it's 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 parameter of a ec over GFp defined by y^2 = x^3 + a*x + b - * \param group EC_GROUP object - * \param p BIGNUM with the prime number - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b - * \param group EC_GROUP object - * \param p BIGNUM for the prime number - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M -/** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b - * \param group EC_GROUP object - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b - * \param group EC_GROUP object - * \param p BIGNUM for the polynomial defining the underlying field - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx); -# 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 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 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 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 ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GFp - * \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_GFp(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - int y_bit, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Sets the affine coordinates of a EC_POINT over GF2m - * \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_GF2m(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of a EC_POINT over GF2m - * \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_GF2m(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m - * \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_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, \ - (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) -# define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \ - (unsigned char *)(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); - -/** 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 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); - -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 0 - */ -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 pointer - * \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); - -/** Setter for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG pointer - * \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) - -# 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) -/* KDF types */ -# define EVP_PKEY_ECDH_KDF_NONE 1 -# define EVP_PKEY_ECDH_KDF_X9_62 2 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_EC_strings(void); - -/* Error codes for the EC functions. */ - -/* Function codes. */ -# define EC_F_BN_TO_FELEM 224 -# define EC_F_D2I_ECPARAMETERS 144 -# define EC_F_D2I_ECPKPARAMETERS 145 -# define EC_F_D2I_ECPRIVATEKEY 146 -# define EC_F_DO_EC_KEY_PRINT 221 -# define EC_F_ECDH_CMS_DECRYPT 238 -# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 -# define EC_F_ECDH_COMPUTE_KEY 246 -# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 257 -# define EC_F_ECDSA_DO_SIGN_EX 251 -# define EC_F_ECDSA_DO_VERIFY 252 -# define EC_F_ECDSA_SIGN_EX 254 -# define EC_F_ECDSA_SIGN_SETUP 248 -# define EC_F_ECDSA_SIG_NEW 265 -# define EC_F_ECDSA_VERIFY 253 -# define EC_F_ECKEY_PARAM2TYPE 223 -# define EC_F_ECKEY_PARAM_DECODE 212 -# define EC_F_ECKEY_PRIV_DECODE 213 -# define EC_F_ECKEY_PRIV_ENCODE 214 -# define EC_F_ECKEY_PUB_DECODE 215 -# define EC_F_ECKEY_PUB_ENCODE 216 -# define EC_F_ECKEY_TYPE2PARAM 220 -# define EC_F_ECPARAMETERS_PRINT 147 -# define EC_F_ECPARAMETERS_PRINT_FP 148 -# define EC_F_ECPKPARAMETERS_PRINT 149 -# define EC_F_ECPKPARAMETERS_PRINT_FP 150 -# define EC_F_ECP_NISTZ256_GET_AFFINE 240 -# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 -# define EC_F_ECP_NISTZ256_POINTS_MUL 241 -# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 -# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 -# define EC_F_ECX_KEY_OP 266 -# define EC_F_ECX_PRIV_ENCODE 267 -# define EC_F_ECX_PUB_ENCODE 268 -# define EC_F_EC_ASN1_GROUP2CURVE 153 -# define EC_F_EC_ASN1_GROUP2FIELDID 154 -# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 -# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 -# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 -# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 -# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 -# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 -# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 -# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 -# define EC_F_EC_GFP_MONT_FIELD_DECODE 133 -# define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 -# define EC_F_EC_GFP_MONT_FIELD_MUL 131 -# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 -# define EC_F_EC_GFP_MONT_FIELD_SQR 132 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 -# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 -# define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 -# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 -# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 -# define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 -# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 -# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 -# define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 -# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 -# define EC_F_EC_GFP_NIST_FIELD_MUL 200 -# define EC_F_EC_GFP_NIST_FIELD_SQR 201 -# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 -# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 -# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 -# define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 -# define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 -# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 -# define EC_F_EC_GROUP_CHECK 170 -# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 -# define EC_F_EC_GROUP_COPY 106 -# define EC_F_EC_GROUP_GET_CURVE_GF2M 172 -# define EC_F_EC_GROUP_GET_CURVE_GFP 130 -# define EC_F_EC_GROUP_GET_DEGREE 173 -# define EC_F_EC_GROUP_GET_ECPARAMETERS 261 -# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 262 -# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 -# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 -# define EC_F_EC_GROUP_NEW 108 -# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 -# define EC_F_EC_GROUP_NEW_FROM_DATA 175 -# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 263 -# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 264 -# define EC_F_EC_GROUP_SET_CURVE_GF2M 176 -# define EC_F_EC_GROUP_SET_CURVE_GFP 109 -# define EC_F_EC_GROUP_SET_GENERATOR 111 -# define EC_F_EC_KEY_CHECK_KEY 177 -# define EC_F_EC_KEY_COPY 178 -# define EC_F_EC_KEY_GENERATE_KEY 179 -# define EC_F_EC_KEY_NEW 182 -# define EC_F_EC_KEY_NEW_METHOD 245 -# define EC_F_EC_KEY_OCT2PRIV 255 -# define EC_F_EC_KEY_PRINT 180 -# define EC_F_EC_KEY_PRINT_FP 181 -# define EC_F_EC_KEY_PRIV2OCT 256 -# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 -# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 258 -# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 259 -# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 260 -# define EC_F_EC_POINTS_MAKE_AFFINE 136 -# define EC_F_EC_POINT_ADD 112 -# define EC_F_EC_POINT_CMP 113 -# define EC_F_EC_POINT_COPY 114 -# define EC_F_EC_POINT_DBL 115 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 -# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 -# define EC_F_EC_POINT_INVERT 210 -# define EC_F_EC_POINT_IS_AT_INFINITY 118 -# define EC_F_EC_POINT_IS_ON_CURVE 119 -# define EC_F_EC_POINT_MAKE_AFFINE 120 -# define EC_F_EC_POINT_NEW 121 -# define EC_F_EC_POINT_OCT2POINT 122 -# define EC_F_EC_POINT_POINT2OCT 123 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 -# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 -# define EC_F_EC_POINT_SET_TO_INFINITY 127 -# define EC_F_EC_PRE_COMP_NEW 196 -# define EC_F_EC_WNAF_MUL 187 -# define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 -# define EC_F_I2D_ECPARAMETERS 190 -# define EC_F_I2D_ECPKPARAMETERS 191 -# define EC_F_I2D_ECPRIVATEKEY 192 -# define EC_F_I2O_ECPUBLICKEY 151 -# define EC_F_NISTP224_PRE_COMP_NEW 227 -# define EC_F_NISTP256_PRE_COMP_NEW 236 -# define EC_F_NISTP521_PRE_COMP_NEW 237 -# define EC_F_O2I_ECPUBLICKEY 152 -# define EC_F_OLD_EC_PRIV_DECODE 222 -# define EC_F_OSSL_ECDH_COMPUTE_KEY 247 -# define EC_F_OSSL_ECDSA_SIGN_SIG 249 -# define EC_F_OSSL_ECDSA_VERIFY_SIG 250 -# define EC_F_PKEY_ECX_DERIVE 269 -# define EC_F_PKEY_EC_CTRL 197 -# define EC_F_PKEY_EC_CTRL_STR 198 -# define EC_F_PKEY_EC_DERIVE 217 -# define EC_F_PKEY_EC_KEYGEN 199 -# define EC_F_PKEY_EC_PARAMGEN 219 -# define EC_F_PKEY_EC_SIGN 218 - -/* Reason codes. */ -# define EC_R_ASN1_ERROR 115 -# define EC_R_BAD_SIGNATURE 156 -# define EC_R_BIGNUM_OUT_OF_RANGE 144 -# define EC_R_BUFFER_TOO_SMALL 100 -# define EC_R_COORDINATES_OUT_OF_RANGE 146 -# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 -# define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 -# define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 -# define EC_R_DECODE_ERROR 142 -# define EC_R_DISCRIMINANT_IS_ZERO 118 -# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 -# define EC_R_FIELD_TOO_LARGE 143 -# define EC_R_GF2M_NOT_SUPPORTED 147 -# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 -# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 -# define EC_R_INCOMPATIBLE_OBJECTS 101 -# define EC_R_INVALID_ARGUMENT 112 -# define EC_R_INVALID_COMPRESSED_POINT 110 -# define EC_R_INVALID_COMPRESSION_BIT 109 -# define EC_R_INVALID_CURVE 141 -# define EC_R_INVALID_DIGEST 151 -# define EC_R_INVALID_DIGEST_TYPE 138 -# define EC_R_INVALID_ENCODING 102 -# define EC_R_INVALID_FIELD 103 -# define EC_R_INVALID_FORM 104 -# define EC_R_INVALID_GROUP_ORDER 122 -# define EC_R_INVALID_KEY 116 -# define EC_R_INVALID_OUTPUT_LENGTH 161 -# define EC_R_INVALID_PEER_KEY 133 -# define EC_R_INVALID_PENTANOMIAL_BASIS 132 -# define EC_R_INVALID_PRIVATE_KEY 123 -# define EC_R_INVALID_TRINOMIAL_BASIS 137 -# define EC_R_KDF_PARAMETER_ERROR 148 -# define EC_R_KEYS_NOT_SET 140 -# define EC_R_MISSING_PARAMETERS 124 -# define EC_R_MISSING_PRIVATE_KEY 125 -# define EC_R_NEED_NEW_SETUP_VALUES 157 -# define EC_R_NOT_A_NIST_PRIME 135 -# define EC_R_NOT_IMPLEMENTED 126 -# define EC_R_NOT_INITIALIZED 111 -# define EC_R_NO_PARAMETERS_SET 139 -# define EC_R_NO_PRIVATE_VALUE 154 -# define EC_R_OPERATION_NOT_SUPPORTED 152 -# define EC_R_PASSED_NULL_PARAMETER 134 -# define EC_R_PEER_KEY_ERROR 149 -# define EC_R_PKPARAMETERS2GROUP_FAILURE 127 -# define EC_R_POINT_ARITHMETIC_FAILURE 155 -# define EC_R_POINT_AT_INFINITY 106 -# define EC_R_POINT_IS_NOT_ON_CURVE 107 -# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 158 -# define EC_R_SHARED_INFO_ERROR 150 -# define EC_R_SLOT_FULL 108 -# define EC_R_UNDEFINED_GENERATOR 113 -# define EC_R_UNDEFINED_ORDER 128 -# define EC_R_UNKNOWN_GROUP 129 -# define EC_R_UNKNOWN_ORDER 114 -# define EC_R_UNSUPPORTED_FIELD 131 -# define EC_R_WRONG_CURVE_PARAMETERS 145 -# define EC_R_WRONG_ORDER 130 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/ecdh.h b/Android/app/libs/armeabi-v7a/include/openssl/ecdh.h deleted file mode 100644 index 681f3d5e..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/ecdsa.h b/Android/app/libs/armeabi-v7a/include/openssl/ecdsa.h deleted file mode 100644 index 681f3d5e..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/engine.h b/Android/app/libs/armeabi-v7a/include/openssl/engine.h deleted file mode 100644 index 26cf7148..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/engine.h +++ /dev/null @@ -1,840 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_ENGINE_H -# define HEADER_ENGINE_H - -# include - -# ifndef OPENSSL_NO_ENGINE -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# include -# include -# include -# include -# include -# endif -# 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 parametrised 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); \ - 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(HAVE_CRYPTODEV) -DEPRECATEDIN_1_1_0(void ENGINE_setup_bsd_cryptodev(void)) -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ENGINE_strings(void); - -/* Error codes for the ENGINE functions. */ - -/* Function codes. */ -# define ENGINE_F_DYNAMIC_CTRL 180 -# define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 -# define ENGINE_F_DYNAMIC_LOAD 182 -# define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 -# define ENGINE_F_ENGINE_ADD 105 -# define ENGINE_F_ENGINE_BY_ID 106 -# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 -# define ENGINE_F_ENGINE_CTRL 142 -# define ENGINE_F_ENGINE_CTRL_CMD 178 -# define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 -# define ENGINE_F_ENGINE_FINISH 107 -# define ENGINE_F_ENGINE_GET_CIPHER 185 -# define ENGINE_F_ENGINE_GET_DIGEST 186 -# define ENGINE_F_ENGINE_GET_FIRST 195 -# define ENGINE_F_ENGINE_GET_LAST 196 -# define ENGINE_F_ENGINE_GET_NEXT 115 -# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 -# define ENGINE_F_ENGINE_GET_PKEY_METH 192 -# define ENGINE_F_ENGINE_GET_PREV 116 -# define ENGINE_F_ENGINE_INIT 119 -# define ENGINE_F_ENGINE_LIST_ADD 120 -# define ENGINE_F_ENGINE_LIST_REMOVE 121 -# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 -# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 -# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 -# define ENGINE_F_ENGINE_NEW 122 -# define ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR 197 -# define ENGINE_F_ENGINE_REMOVE 123 -# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 -# define ENGINE_F_ENGINE_SET_ID 129 -# define ENGINE_F_ENGINE_SET_NAME 130 -# define ENGINE_F_ENGINE_TABLE_REGISTER 184 -# define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 -# define ENGINE_F_ENGINE_UP_REF 190 -# define ENGINE_F_INT_CTRL_HELPER 172 -# define ENGINE_F_INT_ENGINE_CONFIGURE 188 -# define ENGINE_F_INT_ENGINE_MODULE_INIT 187 - -/* Reason codes. */ -# define ENGINE_R_ALREADY_LOADED 100 -# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 -# define ENGINE_R_CMD_NOT_EXECUTABLE 134 -# define ENGINE_R_COMMAND_TAKES_INPUT 135 -# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 -# define ENGINE_R_CONFLICTING_ENGINE_ID 103 -# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 -# define ENGINE_R_DSO_FAILURE 104 -# define ENGINE_R_DSO_NOT_FOUND 132 -# define ENGINE_R_ENGINES_SECTION_ERROR 148 -# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 -# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 -# define ENGINE_R_ENGINE_SECTION_ERROR 149 -# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 -# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 -# define ENGINE_R_FINISH_FAILED 106 -# define ENGINE_R_ID_OR_NAME_MISSING 108 -# define ENGINE_R_INIT_FAILED 109 -# define ENGINE_R_INTERNAL_LIST_ERROR 110 -# define ENGINE_R_INVALID_ARGUMENT 143 -# define ENGINE_R_INVALID_CMD_NAME 137 -# define ENGINE_R_INVALID_CMD_NUMBER 138 -# define ENGINE_R_INVALID_INIT_VALUE 151 -# define ENGINE_R_INVALID_STRING 150 -# define ENGINE_R_NOT_INITIALISED 117 -# define ENGINE_R_NOT_LOADED 112 -# define ENGINE_R_NO_CONTROL_FUNCTION 120 -# define ENGINE_R_NO_INDEX 144 -# define ENGINE_R_NO_LOAD_FUNCTION 125 -# define ENGINE_R_NO_REFERENCE 130 -# define ENGINE_R_NO_SUCH_ENGINE 116 -# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 -# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 -# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 -# define ENGINE_R_VERSION_INCOMPATIBILITY 145 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/err.h b/Android/app/libs/armeabi-v7a/include/openssl/err.h deleted file mode 100644 index 29a261ce..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/err.h +++ /dev/null @@ -1,260 +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_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_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_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_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 STOREerr(f,r) ERR_PUT_error(ERR_LIB_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 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 - -/* 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_ECDSA_LIB ERR_LIB_ECDSA/* 42 */ - -# 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) - -/* - * 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_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); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/evp.h b/Android/app/libs/armeabi-v7a/include/openssl/evp.h deleted file mode 100644 index 43c97a75..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/evp.h +++ /dev/null @@ -1,1597 +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_ENVELOPE_H -# define HEADER_ENVELOPE_H - -# 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_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_HMAC NID_hmac -# define EVP_PKEY_CMAC NID_cmac -# define EVP_PKEY_TLS1_PRF NID_tls1_prf -# define EVP_PKEY_HKDF NID_hkdf - -#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 - -/* 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 - -/* 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 - -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 -/* 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 - -/* 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 - -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 - -/* 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_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); - -#ifndef OPENSSL_NO_UI -int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); -int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, - const char *prompt, int verify); -void EVP_set_pw_prompt(const char *prompt); -char *EVP_get_pw_prompt(void); -#endif - -__owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, - const unsigned char *salt, - 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_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, - unsigned int siglen, EVP_PKEY *pkey); - -/*__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); -# 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 -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_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 - -# 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_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS \ - | OPENSSL_INIT_LOAD_CONFIG, NULL) -# else -# define OpenSSL_add_all_algorithms() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) -# 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(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); -# ifndef OPENSSL_NO_ENGINE -int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); -# 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_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_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_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); - -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_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_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); - -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); - -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_get_init(EVP_PKEY_METHOD *pmeth, - int (**pinit) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth, - int (**pcopy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth, - void (**pcleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_paramgen(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(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(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(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(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(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(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(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(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(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(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_add_alg_module(void); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_EVP_strings(void); - -/* Error codes for the EVP functions. */ - -/* Function codes. */ -# define EVP_F_AESNI_INIT_KEY 165 -# define EVP_F_AES_INIT_KEY 133 -# define EVP_F_AES_OCB_CIPHER 169 -# define EVP_F_AES_T4_INIT_KEY 178 -# define EVP_F_AES_WRAP_CIPHER 170 -# define EVP_F_ALG_MODULE_INIT 177 -# define EVP_F_CAMELLIA_INIT_KEY 159 -# define EVP_F_CHACHA20_POLY1305_CTRL 182 -# define EVP_F_CMLL_T4_INIT_KEY 179 -# define EVP_F_DES_EDE3_WRAP_CIPHER 171 -# define EVP_F_DO_SIGVER_INIT 161 -# define EVP_F_EVP_CIPHERINIT_EX 123 -# define EVP_F_EVP_CIPHER_CTX_COPY 163 -# define EVP_F_EVP_CIPHER_CTX_CTRL 124 -# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 -# define EVP_F_EVP_DECRYPTFINAL_EX 101 -# define EVP_F_EVP_DECRYPTUPDATE 166 -# define EVP_F_EVP_DIGESTINIT_EX 128 -# define EVP_F_EVP_ENCRYPTFINAL_EX 127 -# define EVP_F_EVP_ENCRYPTUPDATE 167 -# define EVP_F_EVP_MD_CTX_COPY_EX 110 -# define EVP_F_EVP_MD_SIZE 162 -# define EVP_F_EVP_OPENINIT 102 -# define EVP_F_EVP_PBE_ALG_ADD 115 -# define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 -# define EVP_F_EVP_PBE_CIPHERINIT 116 -# define EVP_F_EVP_PBE_SCRYPT 181 -# define EVP_F_EVP_PKCS82PKEY 111 -# define EVP_F_EVP_PKEY2PKCS8 113 -# define EVP_F_EVP_PKEY_ASN1_ADD0 168 -# define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 -# define EVP_F_EVP_PKEY_CTX_CTRL 137 -# define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 -# define EVP_F_EVP_PKEY_CTX_DUP 156 -# define EVP_F_EVP_PKEY_DECRYPT 104 -# define EVP_F_EVP_PKEY_DECRYPT_INIT 138 -# define EVP_F_EVP_PKEY_DECRYPT_OLD 151 -# define EVP_F_EVP_PKEY_DERIVE 153 -# define EVP_F_EVP_PKEY_DERIVE_INIT 154 -# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 -# define EVP_F_EVP_PKEY_ENCRYPT 105 -# define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 -# define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 -# define EVP_F_EVP_PKEY_GET0_DH 119 -# define EVP_F_EVP_PKEY_GET0_DSA 120 -# define EVP_F_EVP_PKEY_GET0_EC_KEY 131 -# define EVP_F_EVP_PKEY_GET0_HMAC 183 -# define EVP_F_EVP_PKEY_GET0_RSA 121 -# define EVP_F_EVP_PKEY_KEYGEN 146 -# define EVP_F_EVP_PKEY_KEYGEN_INIT 147 -# define EVP_F_EVP_PKEY_NEW 106 -# define EVP_F_EVP_PKEY_PARAMGEN 148 -# define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 -# define EVP_F_EVP_PKEY_SET1_ENGINE 187 -# define EVP_F_EVP_PKEY_SIGN 140 -# define EVP_F_EVP_PKEY_SIGN_INIT 141 -# define EVP_F_EVP_PKEY_VERIFY 142 -# define EVP_F_EVP_PKEY_VERIFY_INIT 143 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 -# define EVP_F_EVP_SIGNFINAL 107 -# define EVP_F_EVP_VERIFYFINAL 108 -# define EVP_F_INT_CTX_NEW 157 -# define EVP_F_PKCS5_PBE_KEYIVGEN 117 -# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 -# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 -# define EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN 180 -# define EVP_F_PKEY_SET_TYPE 158 -# define EVP_F_RC2_MAGIC_TO_METH 109 -# define EVP_F_RC5_CTRL 125 - -/* Reason codes. */ -# define EVP_R_AES_KEY_SETUP_FAILED 143 -# define EVP_R_BAD_DECRYPT 100 -# define EVP_R_BUFFER_TOO_SMALL 155 -# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 -# define EVP_R_CIPHER_PARAMETER_ERROR 122 -# define EVP_R_COMMAND_NOT_SUPPORTED 147 -# define EVP_R_COPY_ERROR 173 -# define EVP_R_CTRL_NOT_IMPLEMENTED 132 -# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 -# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 -# define EVP_R_DECODE_ERROR 114 -# define EVP_R_DIFFERENT_KEY_TYPES 101 -# define EVP_R_DIFFERENT_PARAMETERS 153 -# define EVP_R_ERROR_LOADING_SECTION 165 -# define EVP_R_ERROR_SETTING_FIPS_MODE 166 -# define EVP_R_EXPECTING_AN_HMAC_KEY 174 -# define EVP_R_EXPECTING_AN_RSA_KEY 127 -# define EVP_R_EXPECTING_A_DH_KEY 128 -# define EVP_R_EXPECTING_A_DSA_KEY 129 -# define EVP_R_EXPECTING_A_EC_KEY 142 -# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 -# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171 -# define EVP_R_INITIALIZATION_ERROR 134 -# define EVP_R_INPUT_NOT_INITIALIZED 111 -# define EVP_R_INVALID_DIGEST 152 -# define EVP_R_INVALID_FIPS_MODE 168 -# define EVP_R_INVALID_KEY 163 -# define EVP_R_INVALID_KEY_LENGTH 130 -# define EVP_R_INVALID_OPERATION 148 -# define EVP_R_KEYGEN_FAILURE 120 -# define EVP_R_MEMORY_LIMIT_EXCEEDED 172 -# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 -# define EVP_R_METHOD_NOT_SUPPORTED 144 -# define EVP_R_MISSING_PARAMETERS 103 -# define EVP_R_NO_CIPHER_SET 131 -# define EVP_R_NO_DEFAULT_DIGEST 158 -# define EVP_R_NO_DIGEST_SET 139 -# define EVP_R_NO_KEY_SET 154 -# define EVP_R_NO_OPERATION_SET 149 -# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 -# define EVP_R_OPERATON_NOT_INITIALIZED 151 -# define EVP_R_PARTIALLY_OVERLAPPING 162 -# define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 175 -# define EVP_R_PKEY_ASN1_METHOD_ALREADY_REGISTERED 164 -# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 -# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 -# define EVP_R_PUBLIC_KEY_NOT_RSA 106 -# define EVP_R_UNKNOWN_CIPHER 160 -# define EVP_R_UNKNOWN_DIGEST 161 -# define EVP_R_UNKNOWN_OPTION 169 -# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 -# define EVP_R_UNSUPPORTED_ALGORITHM 156 -# define EVP_R_UNSUPPORTED_CIPHER 107 -# define EVP_R_UNSUPPORTED_KEYLENGTH 123 -# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 -# define EVP_R_UNSUPPORTED_KEY_SIZE 108 -# define EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS 135 -# define EVP_R_UNSUPPORTED_PRF 125 -# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 -# define EVP_R_UNSUPPORTED_SALT_TYPE 126 -# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 -# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/hmac.h b/Android/app/libs/armeabi-v7a/include/openssl/hmac.h deleted file mode 100644 index 9f068960..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/hmac.h +++ /dev/null @@ -1,49 +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_HMAC_H -# define HEADER_HMAC_H - -# include - -# include - -# define HMAC_MAX_MD_CBLOCK 128/* largest known is SHA512 */ - -#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/Android/app/libs/armeabi-v7a/include/openssl/idea.h b/Android/app/libs/armeabi-v7a/include/openssl/idea.h deleted file mode 100644 index 4334f3ea..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/kdf.h b/Android/app/libs/armeabi-v7a/include/openssl/kdf.h deleted file mode 100644 index 9f87f788..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/kdf.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_KDF_H -# define HEADER_KDF_H - -#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_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) - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_KDF_strings(void); - -/* Error codes for the KDF functions. */ - -/* Function codes. */ -# define KDF_F_PKEY_TLS1_PRF_CTRL_STR 100 -# define KDF_F_PKEY_TLS1_PRF_DERIVE 101 - -/* Reason codes. */ -# define KDF_R_INVALID_DIGEST 100 -# define KDF_R_MISSING_PARAMETER 101 -# define KDF_R_VALUE_MISSING 102 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/lhash.h b/Android/app/libs/armeabi-v7a/include/openssl/lhash.h deleted file mode 100644 index 82d40c1e..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/lhash.h +++ /dev/null @@ -1,217 +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 - */ - -/* - * 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_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_inline void lh_##type##_free(LHASH_OF(type) *lh) \ - { \ - OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ - { \ - return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ - { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ - } \ - static 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_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 - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/md2.h b/Android/app/libs/armeabi-v7a/include/openssl/md2.h deleted file mode 100644 index 7faf8e3d..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/md4.h b/Android/app/libs/armeabi-v7a/include/openssl/md4.h deleted file mode 100644 index 940e29db..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/md5.h b/Android/app/libs/armeabi-v7a/include/openssl/md5.h deleted file mode 100644 index 2deb7721..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/mdc2.h b/Android/app/libs/armeabi-v7a/include/openssl/mdc2.h deleted file mode 100644 index aabd2bfa..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/modes.h b/Android/app/libs/armeabi-v7a/include/openssl/modes.h deleted file mode 100644 index a04c6a59..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/modes.h +++ /dev/null @@ -1,203 +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 - */ - -#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 diff --git a/Android/app/libs/armeabi-v7a/include/openssl/obj_mac.h b/Android/app/libs/armeabi-v7a/include/openssl/obj_mac.h deleted file mode 100644 index f97f3eaa..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/obj_mac.h +++ /dev/null @@ -1,4577 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by crypto/objects/objects.pl - * - * 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 - */ - -#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_certicom_arc "certicom-arc" -#define NID_certicom_arc 677 -#define OBJ_certicom_arc OBJ_identified_organization,132L - -#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_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_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_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 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 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 Smartcardlogin" -#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 Universal 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_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 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_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_aes_128_xts "AES-128-XTS" -#define LN_aes_128_xts "aes-128-xts" -#define NID_aes_128_xts 913 - -#define SN_aes_256_xts "AES-256-XTS" -#define LN_aes_256_xts "aes-256-xts" -#define NID_aes_256_xts 914 - -#define SN_des_cfb1 "DES-CFB1" -#define LN_des_cfb1 "des-cfb1" -#define NID_des_cfb1 656 - -#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 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 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_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_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_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_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_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 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_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 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_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_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 diff --git a/Android/app/libs/armeabi-v7a/include/openssl/objects.h b/Android/app/libs/armeabi-v7a/include/openssl/objects.h deleted file mode 100644 index d4462fee..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/objects.h +++ /dev/null @@ -1,1097 +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_OBJECTS_H -# define HEADER_OBJECTS_H - -# define USE_OBJ_MAC - -# ifdef USE_OBJ_MAC -# include -# else -# define SN_undef "UNDEF" -# define LN_undef "undefined" -# define NID_undef 0 -# define OBJ_undef 0L - -# define SN_Algorithm "Algorithm" -# define LN_algorithm "algorithm" -# define NID_algorithm 38 -# define OBJ_algorithm 1L,3L,14L,3L,2L - -# define LN_rsadsi "rsadsi" -# define NID_rsadsi 1 -# define OBJ_rsadsi 1L,2L,840L,113549L - -# define LN_pkcs "pkcs" -# define NID_pkcs 2 -# define OBJ_pkcs OBJ_rsadsi,1L - -# define SN_md2 "MD2" -# define LN_md2 "md2" -# define NID_md2 3 -# define OBJ_md2 OBJ_rsadsi,2L,2L - -# define SN_md5 "MD5" -# define LN_md5 "md5" -# define NID_md5 4 -# define OBJ_md5 OBJ_rsadsi,2L,5L - -# define SN_rc4 "RC4" -# define LN_rc4 "rc4" -# define NID_rc4 5 -# define OBJ_rc4 OBJ_rsadsi,3L,4L - -# define LN_rsaEncryption "rsaEncryption" -# define NID_rsaEncryption 6 -# define OBJ_rsaEncryption OBJ_pkcs,1L,1L - -# define SN_md2WithRSAEncryption "RSA-MD2" -# define LN_md2WithRSAEncryption "md2WithRSAEncryption" -# define NID_md2WithRSAEncryption 7 -# define OBJ_md2WithRSAEncryption OBJ_pkcs,1L,2L - -# define SN_md5WithRSAEncryption "RSA-MD5" -# define LN_md5WithRSAEncryption "md5WithRSAEncryption" -# define NID_md5WithRSAEncryption 8 -# define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L - -# define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -# define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -# define NID_pbeWithMD2AndDES_CBC 9 -# define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L - -# define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -# define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -# define NID_pbeWithMD5AndDES_CBC 10 -# define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L - -# define LN_X500 "X500" -# define NID_X500 11 -# define OBJ_X500 2L,5L - -# define LN_X509 "X509" -# define NID_X509 12 -# define OBJ_X509 OBJ_X500,4L - -# define SN_commonName "CN" -# define LN_commonName "commonName" -# define NID_commonName 13 -# define OBJ_commonName OBJ_X509,3L - -# define SN_countryName "C" -# define LN_countryName "countryName" -# define NID_countryName 14 -# define OBJ_countryName OBJ_X509,6L - -# define SN_localityName "L" -# define LN_localityName "localityName" -# define NID_localityName 15 -# define OBJ_localityName OBJ_X509,7L - -/* Postal Address? PA */ - -/* should be "ST" (rfc1327) but MS uses 'S' */ -# define SN_stateOrProvinceName "ST" -# define LN_stateOrProvinceName "stateOrProvinceName" -# define NID_stateOrProvinceName 16 -# define OBJ_stateOrProvinceName OBJ_X509,8L - -# define SN_organizationName "O" -# define LN_organizationName "organizationName" -# define NID_organizationName 17 -# define OBJ_organizationName OBJ_X509,10L - -# define SN_organizationalUnitName "OU" -# define LN_organizationalUnitName "organizationalUnitName" -# define NID_organizationalUnitName 18 -# define OBJ_organizationalUnitName OBJ_X509,11L - -# define SN_rsa "RSA" -# define LN_rsa "rsa" -# define NID_rsa 19 -# define OBJ_rsa OBJ_X500,8L,1L,1L - -# define LN_pkcs7 "pkcs7" -# define NID_pkcs7 20 -# define OBJ_pkcs7 OBJ_pkcs,7L - -# define LN_pkcs7_data "pkcs7-data" -# define NID_pkcs7_data 21 -# define OBJ_pkcs7_data OBJ_pkcs7,1L - -# define LN_pkcs7_signed "pkcs7-signedData" -# define NID_pkcs7_signed 22 -# define OBJ_pkcs7_signed OBJ_pkcs7,2L - -# define LN_pkcs7_enveloped "pkcs7-envelopedData" -# define NID_pkcs7_enveloped 23 -# define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -# define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -# define NID_pkcs7_signedAndEnveloped 24 -# define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -# define LN_pkcs7_digest "pkcs7-digestData" -# define NID_pkcs7_digest 25 -# define OBJ_pkcs7_digest OBJ_pkcs7,5L - -# define LN_pkcs7_encrypted "pkcs7-encryptedData" -# define NID_pkcs7_encrypted 26 -# define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -# define LN_pkcs3 "pkcs3" -# define NID_pkcs3 27 -# define OBJ_pkcs3 OBJ_pkcs,3L - -# define LN_dhKeyAgreement "dhKeyAgreement" -# define NID_dhKeyAgreement 28 -# define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -# define SN_des_ecb "DES-ECB" -# define LN_des_ecb "des-ecb" -# define NID_des_ecb 29 -# define OBJ_des_ecb OBJ_algorithm,6L - -# define SN_des_cfb64 "DES-CFB" -# define LN_des_cfb64 "des-cfb" -# define NID_des_cfb64 30 -/* IV + num */ -# define OBJ_des_cfb64 OBJ_algorithm,9L - -# define SN_des_cbc "DES-CBC" -# define LN_des_cbc "des-cbc" -# define NID_des_cbc 31 -/* IV */ -# define OBJ_des_cbc OBJ_algorithm,7L - -# define SN_des_ede "DES-EDE" -# define LN_des_ede "des-ede" -# define NID_des_ede 32 -/* ?? */ -# define OBJ_des_ede OBJ_algorithm,17L - -# define SN_des_ede3 "DES-EDE3" -# define LN_des_ede3 "des-ede3" -# define NID_des_ede3 33 - -# define SN_idea_cbc "IDEA-CBC" -# define LN_idea_cbc "idea-cbc" -# define NID_idea_cbc 34 -# define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -# define SN_idea_cfb64 "IDEA-CFB" -# define LN_idea_cfb64 "idea-cfb" -# define NID_idea_cfb64 35 - -# define SN_idea_ecb "IDEA-ECB" -# define LN_idea_ecb "idea-ecb" -# define NID_idea_ecb 36 - -# define SN_rc2_cbc "RC2-CBC" -# define LN_rc2_cbc "rc2-cbc" -# define NID_rc2_cbc 37 -# define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -# define SN_rc2_ecb "RC2-ECB" -# define LN_rc2_ecb "rc2-ecb" -# define NID_rc2_ecb 38 - -# define SN_rc2_cfb64 "RC2-CFB" -# define LN_rc2_cfb64 "rc2-cfb" -# define NID_rc2_cfb64 39 - -# define SN_rc2_ofb64 "RC2-OFB" -# define LN_rc2_ofb64 "rc2-ofb" -# define NID_rc2_ofb64 40 - -# define SN_sha "SHA" -# define LN_sha "sha" -# define NID_sha 41 -# define OBJ_sha OBJ_algorithm,18L - -# define SN_shaWithRSAEncryption "RSA-SHA" -# define LN_shaWithRSAEncryption "shaWithRSAEncryption" -# define NID_shaWithRSAEncryption 42 -# define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -# define SN_des_ede_cbc "DES-EDE-CBC" -# define LN_des_ede_cbc "des-ede-cbc" -# define NID_des_ede_cbc 43 - -# define SN_des_ede3_cbc "DES-EDE3-CBC" -# define LN_des_ede3_cbc "des-ede3-cbc" -# define NID_des_ede3_cbc 44 -# define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -# define SN_des_ofb64 "DES-OFB" -# define LN_des_ofb64 "des-ofb" -# define NID_des_ofb64 45 -# define OBJ_des_ofb64 OBJ_algorithm,8L - -# define SN_idea_ofb64 "IDEA-OFB" -# define LN_idea_ofb64 "idea-ofb" -# define NID_idea_ofb64 46 - -# define LN_pkcs9 "pkcs9" -# define NID_pkcs9 47 -# define OBJ_pkcs9 OBJ_pkcs,9L - -# define SN_pkcs9_emailAddress "Email" -# define LN_pkcs9_emailAddress "emailAddress" -# define NID_pkcs9_emailAddress 48 -# define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -# define LN_pkcs9_unstructuredName "unstructuredName" -# define NID_pkcs9_unstructuredName 49 -# define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -# define LN_pkcs9_contentType "contentType" -# define NID_pkcs9_contentType 50 -# define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -# define LN_pkcs9_messageDigest "messageDigest" -# define NID_pkcs9_messageDigest 51 -# define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -# define LN_pkcs9_signingTime "signingTime" -# define NID_pkcs9_signingTime 52 -# define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -# define LN_pkcs9_countersignature "countersignature" -# define NID_pkcs9_countersignature 53 -# define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -# define LN_pkcs9_challengePassword "challengePassword" -# define NID_pkcs9_challengePassword 54 -# define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -# define LN_pkcs9_unstructuredAddress "unstructuredAddress" -# define NID_pkcs9_unstructuredAddress 55 -# define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -# define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -# define NID_pkcs9_extCertAttributes 56 -# define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -# define SN_netscape "Netscape" -# define LN_netscape "Netscape Communications Corp." -# define NID_netscape 57 -# define OBJ_netscape 2L,16L,840L,1L,113730L - -# define SN_netscape_cert_extension "nsCertExt" -# define LN_netscape_cert_extension "Netscape Certificate Extension" -# define NID_netscape_cert_extension 58 -# define OBJ_netscape_cert_extension OBJ_netscape,1L - -# define SN_netscape_data_type "nsDataType" -# define LN_netscape_data_type "Netscape Data Type" -# define NID_netscape_data_type 59 -# define OBJ_netscape_data_type OBJ_netscape,2L - -# define SN_des_ede_cfb64 "DES-EDE-CFB" -# define LN_des_ede_cfb64 "des-ede-cfb" -# define NID_des_ede_cfb64 60 - -# define SN_des_ede3_cfb64 "DES-EDE3-CFB" -# define LN_des_ede3_cfb64 "des-ede3-cfb" -# define NID_des_ede3_cfb64 61 - -# define SN_des_ede_ofb64 "DES-EDE-OFB" -# define LN_des_ede_ofb64 "des-ede-ofb" -# define NID_des_ede_ofb64 62 - -# define SN_des_ede3_ofb64 "DES-EDE3-OFB" -# define LN_des_ede3_ofb64 "des-ede3-ofb" -# define NID_des_ede3_ofb64 63 - -/* I'm not sure about the object ID */ -# define SN_sha1 "SHA1" -# define LN_sha1 "sha1" -# define NID_sha1 64 -# define OBJ_sha1 OBJ_algorithm,26L -/* 28 Jun 1996 - eay */ -/* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */ - -# define SN_sha1WithRSAEncryption "RSA-SHA1" -# define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -# define NID_sha1WithRSAEncryption 65 -# define OBJ_sha1WithRSAEncryption OBJ_pkcs,1L,5L - -# define SN_dsaWithSHA "DSA-SHA" -# define LN_dsaWithSHA "dsaWithSHA" -# define NID_dsaWithSHA 66 -# define OBJ_dsaWithSHA OBJ_algorithm,13L - -# define SN_dsa_2 "DSA-old" -# define LN_dsa_2 "dsaEncryption-old" -# define NID_dsa_2 67 -# define OBJ_dsa_2 OBJ_algorithm,12L - -/* proposed by microsoft to RSA */ -# define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -# define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -# define NID_pbeWithSHA1AndRC2_CBC 68 -# define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L - -/* - * proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now defined - * explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something completely - * different. - */ -# define LN_id_pbkdf2 "PBKDF2" -# define NID_id_pbkdf2 69 -# define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L - -# define SN_dsaWithSHA1_2 "DSA-SHA1-old" -# define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -# define NID_dsaWithSHA1_2 70 -/* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */ -# define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -# define SN_netscape_cert_type "nsCertType" -# define LN_netscape_cert_type "Netscape Cert Type" -# define NID_netscape_cert_type 71 -# define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -# define SN_netscape_base_url "nsBaseUrl" -# define LN_netscape_base_url "Netscape Base Url" -# define NID_netscape_base_url 72 -# define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -# define SN_netscape_revocation_url "nsRevocationUrl" -# define LN_netscape_revocation_url "Netscape Revocation Url" -# define NID_netscape_revocation_url 73 -# define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -# define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -# define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -# define NID_netscape_ca_revocation_url 74 -# define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -# define SN_netscape_renewal_url "nsRenewalUrl" -# define LN_netscape_renewal_url "Netscape Renewal Url" -# define NID_netscape_renewal_url 75 -# define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -# define SN_netscape_ca_policy_url "nsCaPolicyUrl" -# define LN_netscape_ca_policy_url "Netscape CA Policy Url" -# define NID_netscape_ca_policy_url 76 -# define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -# define SN_netscape_ssl_server_name "nsSslServerName" -# define LN_netscape_ssl_server_name "Netscape SSL Server Name" -# define NID_netscape_ssl_server_name 77 -# define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -# define SN_netscape_comment "nsComment" -# define LN_netscape_comment "Netscape Comment" -# define NID_netscape_comment 78 -# define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -# define SN_netscape_cert_sequence "nsCertSequence" -# define LN_netscape_cert_sequence "Netscape Certificate Sequence" -# define NID_netscape_cert_sequence 79 -# define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -# define SN_desx_cbc "DESX-CBC" -# define LN_desx_cbc "desx-cbc" -# define NID_desx_cbc 80 - -# define SN_id_ce "id-ce" -# define NID_id_ce 81 -# define OBJ_id_ce 2L,5L,29L - -# define SN_subject_key_identifier "subjectKeyIdentifier" -# define LN_subject_key_identifier "X509v3 Subject Key Identifier" -# define NID_subject_key_identifier 82 -# define OBJ_subject_key_identifier OBJ_id_ce,14L - -# define SN_key_usage "keyUsage" -# define LN_key_usage "X509v3 Key Usage" -# define NID_key_usage 83 -# define OBJ_key_usage OBJ_id_ce,15L - -# define SN_private_key_usage_period "privateKeyUsagePeriod" -# define LN_private_key_usage_period "X509v3 Private Key Usage Period" -# define NID_private_key_usage_period 84 -# define OBJ_private_key_usage_period OBJ_id_ce,16L - -# define SN_subject_alt_name "subjectAltName" -# define LN_subject_alt_name "X509v3 Subject Alternative Name" -# define NID_subject_alt_name 85 -# define OBJ_subject_alt_name OBJ_id_ce,17L - -# define SN_issuer_alt_name "issuerAltName" -# define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -# define NID_issuer_alt_name 86 -# define OBJ_issuer_alt_name OBJ_id_ce,18L - -# define SN_basic_constraints "basicConstraints" -# define LN_basic_constraints "X509v3 Basic Constraints" -# define NID_basic_constraints 87 -# define OBJ_basic_constraints OBJ_id_ce,19L - -# define SN_crl_number "crlNumber" -# define LN_crl_number "X509v3 CRL Number" -# define NID_crl_number 88 -# define OBJ_crl_number OBJ_id_ce,20L - -# define SN_certificate_policies "certificatePolicies" -# define LN_certificate_policies "X509v3 Certificate Policies" -# define NID_certificate_policies 89 -# define OBJ_certificate_policies OBJ_id_ce,32L - -# define SN_authority_key_identifier "authorityKeyIdentifier" -# define LN_authority_key_identifier "X509v3 Authority Key Identifier" -# define NID_authority_key_identifier 90 -# define OBJ_authority_key_identifier OBJ_id_ce,35L - -# define SN_bf_cbc "BF-CBC" -# define LN_bf_cbc "bf-cbc" -# define NID_bf_cbc 91 -# define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -# define SN_bf_ecb "BF-ECB" -# define LN_bf_ecb "bf-ecb" -# define NID_bf_ecb 92 - -# define SN_bf_cfb64 "BF-CFB" -# define LN_bf_cfb64 "bf-cfb" -# define NID_bf_cfb64 93 - -# define SN_bf_ofb64 "BF-OFB" -# define LN_bf_ofb64 "bf-ofb" -# define NID_bf_ofb64 94 - -# define SN_mdc2 "MDC2" -# define LN_mdc2 "mdc2" -# define NID_mdc2 95 -# define OBJ_mdc2 2L,5L,8L,3L,101L -/* An alternative? 1L,3L,14L,3L,2L,19L */ - -# define SN_mdc2WithRSA "RSA-MDC2" -# define LN_mdc2WithRSA "mdc2withRSA" -# define NID_mdc2WithRSA 96 -# define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L - -# define SN_rc4_40 "RC4-40" -# define LN_rc4_40 "rc4-40" -# define NID_rc4_40 97 - -# define SN_rc2_40_cbc "RC2-40-CBC" -# define LN_rc2_40_cbc "rc2-40-cbc" -# define NID_rc2_40_cbc 98 - -# define SN_givenName "G" -# define LN_givenName "givenName" -# define NID_givenName 99 -# define OBJ_givenName OBJ_X509,42L - -# define SN_surname "S" -# define LN_surname "surname" -# define NID_surname 100 -# define OBJ_surname OBJ_X509,4L - -# define SN_initials "I" -# define LN_initials "initials" -# define NID_initials 101 -# define OBJ_initials OBJ_X509,43L - -# define SN_uniqueIdentifier "UID" -# define LN_uniqueIdentifier "uniqueIdentifier" -# define NID_uniqueIdentifier 102 -# define OBJ_uniqueIdentifier OBJ_X509,45L - -# define SN_crl_distribution_points "crlDistributionPoints" -# define LN_crl_distribution_points "X509v3 CRL Distribution Points" -# define NID_crl_distribution_points 103 -# define OBJ_crl_distribution_points OBJ_id_ce,31L - -# define SN_md5WithRSA "RSA-NP-MD5" -# define LN_md5WithRSA "md5WithRSA" -# define NID_md5WithRSA 104 -# define OBJ_md5WithRSA OBJ_algorithm,3L - -# define SN_serialNumber "SN" -# define LN_serialNumber "serialNumber" -# define NID_serialNumber 105 -# define OBJ_serialNumber OBJ_X509,5L - -# define SN_title "T" -# define LN_title "title" -# define NID_title 106 -# define OBJ_title OBJ_X509,12L - -# define SN_description "D" -# define LN_description "description" -# define NID_description 107 -# define OBJ_description OBJ_X509,13L - -/* CAST5 is CAST-128, I'm just sticking with the documentation */ -# define SN_cast5_cbc "CAST5-CBC" -# define LN_cast5_cbc "cast5-cbc" -# define NID_cast5_cbc 108 -# define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L - -# define SN_cast5_ecb "CAST5-ECB" -# define LN_cast5_ecb "cast5-ecb" -# define NID_cast5_ecb 109 - -# define SN_cast5_cfb64 "CAST5-CFB" -# define LN_cast5_cfb64 "cast5-cfb" -# define NID_cast5_cfb64 110 - -# define SN_cast5_ofb64 "CAST5-OFB" -# define LN_cast5_ofb64 "cast5-ofb" -# define NID_cast5_ofb64 111 - -# define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -# define NID_pbeWithMD5AndCast5_CBC 112 -# define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L - -/*- - * This is one sun will soon be using :-( - * id-dsa-with-sha1 ID ::= { - * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } - */ -# define SN_dsaWithSHA1 "DSA-SHA1" -# define LN_dsaWithSHA1 "dsaWithSHA1" -# define NID_dsaWithSHA1 113 -# define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L - -# define NID_md5_sha1 114 -# define SN_md5_sha1 "MD5-SHA1" -# define LN_md5_sha1 "md5-sha1" - -# define SN_sha1WithRSA "RSA-SHA1-2" -# define LN_sha1WithRSA "sha1WithRSA" -# define NID_sha1WithRSA 115 -# define OBJ_sha1WithRSA OBJ_algorithm,29L - -# define SN_dsa "DSA" -# define LN_dsa "dsaEncryption" -# define NID_dsa 116 -# define OBJ_dsa 1L,2L,840L,10040L,4L,1L - -# define SN_ripemd160 "RIPEMD160" -# define LN_ripemd160 "ripemd160" -# define NID_ripemd160 117 -# define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -/* - * The name should actually be rsaSignatureWithripemd160, but I'm going to - * continue using the convention I'm using with the other ciphers - */ -# define SN_ripemd160WithRSA "RSA-RIPEMD160" -# define LN_ripemd160WithRSA "ripemd160WithRSA" -# define NID_ripemd160WithRSA 119 -# define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -/*- - * Taken from rfc2040 - * RC5_CBC_Parameters ::= SEQUENCE { - * version INTEGER (v1_0(16)), - * rounds INTEGER (8..127), - * blockSizeInBits INTEGER (64, 128), - * iv OCTET STRING OPTIONAL - * } - */ -# define SN_rc5_cbc "RC5-CBC" -# define LN_rc5_cbc "rc5-cbc" -# define NID_rc5_cbc 120 -# define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -# define SN_rc5_ecb "RC5-ECB" -# define LN_rc5_ecb "rc5-ecb" -# define NID_rc5_ecb 121 - -# define SN_rc5_cfb64 "RC5-CFB" -# define LN_rc5_cfb64 "rc5-cfb" -# define NID_rc5_cfb64 122 - -# define SN_rc5_ofb64 "RC5-OFB" -# define LN_rc5_ofb64 "rc5-ofb" -# define NID_rc5_ofb64 123 - -# define SN_rle_compression "RLE" -# define LN_rle_compression "run length compression" -# define NID_rle_compression 124 -# define OBJ_rle_compression 1L,1L,1L,1L,666L,1L - -# define SN_zlib_compression "ZLIB" -# define LN_zlib_compression "zlib compression" -# define NID_zlib_compression 125 -# define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L - -# define SN_ext_key_usage "extendedKeyUsage" -# define LN_ext_key_usage "X509v3 Extended Key Usage" -# define NID_ext_key_usage 126 -# define OBJ_ext_key_usage OBJ_id_ce,37 - -# define SN_id_pkix "PKIX" -# define NID_id_pkix 127 -# define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -# define SN_id_kp "id-kp" -# define NID_id_kp 128 -# define OBJ_id_kp OBJ_id_pkix,3L - -/* PKIX extended key usage OIDs */ - -# define SN_server_auth "serverAuth" -# define LN_server_auth "TLS Web Server Authentication" -# define NID_server_auth 129 -# define OBJ_server_auth OBJ_id_kp,1L - -# define SN_client_auth "clientAuth" -# define LN_client_auth "TLS Web Client Authentication" -# define NID_client_auth 130 -# define OBJ_client_auth OBJ_id_kp,2L - -# define SN_code_sign "codeSigning" -# define LN_code_sign "Code Signing" -# define NID_code_sign 131 -# define OBJ_code_sign OBJ_id_kp,3L - -# define SN_email_protect "emailProtection" -# define LN_email_protect "E-mail Protection" -# define NID_email_protect 132 -# define OBJ_email_protect OBJ_id_kp,4L - -# define SN_time_stamp "timeStamping" -# define LN_time_stamp "Time Stamping" -# define NID_time_stamp 133 -# define OBJ_time_stamp OBJ_id_kp,8L - -/* Additional extended key usage OIDs: Microsoft */ - -# define SN_ms_code_ind "msCodeInd" -# define LN_ms_code_ind "Microsoft Individual Code Signing" -# define NID_ms_code_ind 134 -# define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L - -# define SN_ms_code_com "msCodeCom" -# define LN_ms_code_com "Microsoft Commercial Code Signing" -# define NID_ms_code_com 135 -# define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L - -# define SN_ms_ctl_sign "msCTLSign" -# define LN_ms_ctl_sign "Microsoft Trust List Signing" -# define NID_ms_ctl_sign 136 -# define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L - -# define SN_ms_sgc "msSGC" -# define LN_ms_sgc "Microsoft Server Gated Crypto" -# define NID_ms_sgc 137 -# define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L - -# define SN_ms_efs "msEFS" -# define LN_ms_efs "Microsoft Encrypted File System" -# define NID_ms_efs 138 -# define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L - -/* Additional usage: Netscape */ - -# define SN_ns_sgc "nsSGC" -# define LN_ns_sgc "Netscape Server Gated Crypto" -# define NID_ns_sgc 139 -# define OBJ_ns_sgc OBJ_netscape,4L,1L - -# define SN_delta_crl "deltaCRL" -# define LN_delta_crl "X509v3 Delta CRL Indicator" -# define NID_delta_crl 140 -# define OBJ_delta_crl OBJ_id_ce,27L - -# define SN_crl_reason "CRLReason" -# define LN_crl_reason "CRL Reason Code" -# define NID_crl_reason 141 -# define OBJ_crl_reason OBJ_id_ce,21L - -# define SN_invalidity_date "invalidityDate" -# define LN_invalidity_date "Invalidity Date" -# define NID_invalidity_date 142 -# define OBJ_invalidity_date OBJ_id_ce,24L - -# define SN_sxnet "SXNetID" -# define LN_sxnet "Strong Extranet ID" -# define NID_sxnet 143 -# define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -/* PKCS12 and related OBJECT IDENTIFIERS */ - -# define OBJ_pkcs12 OBJ_pkcs,12L -# define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 - -# define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -# define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -# define NID_pbe_WithSHA1And128BitRC4 144 -# define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L - -# define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -# define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -# define NID_pbe_WithSHA1And40BitRC4 145 -# define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L - -# define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -# define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -# define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -# define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L - -# define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -# define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -# define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -# define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L - -# define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -# define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -# define NID_pbe_WithSHA1And128BitRC2_CBC 148 -# define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L - -# define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -# define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -# define NID_pbe_WithSHA1And40BitRC2_CBC 149 -# define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L - -# define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L - -# define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L - -# define LN_keyBag "keyBag" -# define NID_keyBag 150 -# define OBJ_keyBag OBJ_pkcs12_BagIds, 1L - -# define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -# define NID_pkcs8ShroudedKeyBag 151 -# define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L - -# define LN_certBag "certBag" -# define NID_certBag 152 -# define OBJ_certBag OBJ_pkcs12_BagIds, 3L - -# define LN_crlBag "crlBag" -# define NID_crlBag 153 -# define OBJ_crlBag OBJ_pkcs12_BagIds, 4L - -# define LN_secretBag "secretBag" -# define NID_secretBag 154 -# define OBJ_secretBag OBJ_pkcs12_BagIds, 5L - -# define LN_safeContentsBag "safeContentsBag" -# define NID_safeContentsBag 155 -# define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L - -# define LN_friendlyName "friendlyName" -# define NID_friendlyName 156 -# define OBJ_friendlyName OBJ_pkcs9, 20L - -# define LN_localKeyID "localKeyID" -# define NID_localKeyID 157 -# define OBJ_localKeyID OBJ_pkcs9, 21L - -# define OBJ_certTypes OBJ_pkcs9, 22L - -# define LN_x509Certificate "x509Certificate" -# define NID_x509Certificate 158 -# define OBJ_x509Certificate OBJ_certTypes, 1L - -# define LN_sdsiCertificate "sdsiCertificate" -# define NID_sdsiCertificate 159 -# define OBJ_sdsiCertificate OBJ_certTypes, 2L - -# define OBJ_crlTypes OBJ_pkcs9, 23L - -# define LN_x509Crl "x509Crl" -# define NID_x509Crl 160 -# define OBJ_x509Crl OBJ_crlTypes, 1L - -/* PKCS#5 v2 OIDs */ - -# define LN_pbes2 "PBES2" -# define NID_pbes2 161 -# define OBJ_pbes2 OBJ_pkcs,5L,13L - -# define LN_pbmac1 "PBMAC1" -# define NID_pbmac1 162 -# define OBJ_pbmac1 OBJ_pkcs,5L,14L - -# define LN_hmacWithSHA1 "hmacWithSHA1" -# define NID_hmacWithSHA1 163 -# define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -/* Policy Qualifier Ids */ - -# define LN_id_qt_cps "Policy Qualifier CPS" -# define SN_id_qt_cps "id-qt-cps" -# define NID_id_qt_cps 164 -# define OBJ_id_qt_cps OBJ_id_pkix,2L,1L - -# define LN_id_qt_unotice "Policy Qualifier User Notice" -# define SN_id_qt_unotice "id-qt-unotice" -# define NID_id_qt_unotice 165 -# define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L - -# define SN_rc2_64_cbc "RC2-64-CBC" -# define LN_rc2_64_cbc "rc2-64-cbc" -# define NID_rc2_64_cbc 166 - -# define SN_SMIMECapabilities "SMIME-CAPS" -# define LN_SMIMECapabilities "S/MIME Capabilities" -# define NID_SMIMECapabilities 167 -# define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -# define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -# define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -# define NID_pbeWithMD2AndRC2_CBC 168 -# define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L - -# define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -# define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -# define NID_pbeWithMD5AndRC2_CBC 169 -# define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L - -# define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -# define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -# define NID_pbeWithSHA1AndDES_CBC 170 -# define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L - -/* Extension request OIDs */ - -# define LN_ms_ext_req "Microsoft Extension Request" -# define SN_ms_ext_req "msExtReq" -# define NID_ms_ext_req 171 -# define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -# define LN_ext_req "Extension Request" -# define SN_ext_req "extReq" -# define NID_ext_req 172 -# define OBJ_ext_req OBJ_pkcs9,14L - -# define SN_name "name" -# define LN_name "name" -# define NID_name 173 -# define OBJ_name OBJ_X509,41L - -# define SN_dnQualifier "dnQualifier" -# define LN_dnQualifier "dnQualifier" -# define NID_dnQualifier 174 -# define OBJ_dnQualifier OBJ_X509,46L - -# define SN_id_pe "id-pe" -# define NID_id_pe 175 -# define OBJ_id_pe OBJ_id_pkix,1L - -# define SN_id_ad "id-ad" -# define NID_id_ad 176 -# define OBJ_id_ad OBJ_id_pkix,48L - -# define SN_info_access "authorityInfoAccess" -# define LN_info_access "Authority Information Access" -# define NID_info_access 177 -# define OBJ_info_access OBJ_id_pe,1L - -# define SN_ad_OCSP "OCSP" -# define LN_ad_OCSP "OCSP" -# define NID_ad_OCSP 178 -# define OBJ_ad_OCSP OBJ_id_ad,1L - -# define SN_ad_ca_issuers "caIssuers" -# define LN_ad_ca_issuers "CA Issuers" -# define NID_ad_ca_issuers 179 -# define OBJ_ad_ca_issuers OBJ_id_ad,2L - -# define SN_OCSP_sign "OCSPSigning" -# define LN_OCSP_sign "OCSP Signing" -# define NID_OCSP_sign 180 -# define OBJ_OCSP_sign OBJ_id_kp,9L -# endif /* USE_OBJ_MAC */ - -# include -# include - -# 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_OBJ_strings(void); - -/* Error codes for the OBJ functions. */ - -/* Function codes. */ -# define OBJ_F_OBJ_ADD_OBJECT 105 -# define OBJ_F_OBJ_CREATE 100 -# define OBJ_F_OBJ_DUP 101 -# define OBJ_F_OBJ_NAME_NEW_INDEX 106 -# define OBJ_F_OBJ_NID2LN 102 -# define OBJ_F_OBJ_NID2OBJ 103 -# define OBJ_F_OBJ_NID2SN 104 - -/* Reason codes. */ -# define OBJ_R_OID_EXISTS 102 -# define OBJ_R_UNKNOWN_NID 101 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/ocsp.h b/Android/app/libs/armeabi-v7a/include/openssl/ocsp.h deleted file mode 100644 index 90ebe5cc..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/ocsp.h +++ /dev/null @@ -1,398 +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_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 - -#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) -DECLARE_ASN1_FUNCTIONS(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_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); -int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); -int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); -int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, - 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); -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_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(OCSP_CERTID *a, OCSP_CERTID *b); -int OCSP_id_cmp(OCSP_CERTID *a, 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_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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_OCSP_strings(void); - -/* Error codes for the OCSP functions. */ - -/* Function codes. */ -# define OCSP_F_D2I_OCSP_NONCE 102 -# define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 -# define OCSP_F_OCSP_BASIC_SIGN 104 -# define OCSP_F_OCSP_BASIC_VERIFY 105 -# define OCSP_F_OCSP_CERT_ID_NEW 101 -# define OCSP_F_OCSP_CHECK_DELEGATED 106 -# define OCSP_F_OCSP_CHECK_IDS 107 -# define OCSP_F_OCSP_CHECK_ISSUER 108 -# define OCSP_F_OCSP_CHECK_VALIDITY 115 -# define OCSP_F_OCSP_MATCH_ISSUERID 109 -# define OCSP_F_OCSP_PARSE_URL 114 -# define OCSP_F_OCSP_REQUEST_SIGN 110 -# define OCSP_F_OCSP_REQUEST_VERIFY 116 -# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 -# define OCSP_F_PARSE_HTTP_LINE1 118 - -/* Reason codes. */ -# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 -# define OCSP_R_DIGEST_ERR 102 -# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 -# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 -# define OCSP_R_ERROR_PARSING_URL 121 -# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 -# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 -# define OCSP_R_NOT_BASIC_RESPONSE 104 -# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 -# define OCSP_R_NO_RESPONSE_DATA 108 -# define OCSP_R_NO_REVOKED_TIME 109 -# define OCSP_R_NO_SIGNER_KEY 130 -# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 -# define OCSP_R_REQUEST_NOT_SIGNED 128 -# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 -# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 -# define OCSP_R_SERVER_RESPONSE_ERROR 114 -# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 -# define OCSP_R_SIGNATURE_FAILURE 117 -# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 -# define OCSP_R_STATUS_EXPIRED 125 -# define OCSP_R_STATUS_NOT_YET_VALID 126 -# define OCSP_R_STATUS_TOO_OLD 127 -# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 -# define OCSP_R_UNKNOWN_NID 120 -# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/opensslconf.h b/Android/app/libs/armeabi-v7a/include/openssl/opensslconf.h deleted file mode 100644 index 1fe7a9f9..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/opensslconf.h +++ /dev/null @@ -1,169 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by Makefile from include/openssl/opensslconf.h.in - * - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#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_NO_ASAN -# define OPENSSL_NO_ASAN -#endif -#ifndef OPENSSL_NO_CRYPTO_MDEBUG -# define OPENSSL_NO_CRYPTO_MDEBUG -#endif -#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -#endif -#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -# define OPENSSL_NO_EC_NISTP_64_GCC_128 -#endif -#ifndef OPENSSL_NO_EGD -# define OPENSSL_NO_EGD -#endif -#ifndef OPENSSL_NO_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_AFALGENG -# define OPENSSL_NO_AFALGENG -#endif - - -/* - * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers - * don't like that. This will hopefully silence them. - */ -#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; - -/* - * Applications should use -DOPENSSL_API_COMPAT= to suppress the - * declarations of functions deprecated in or before . Otherwise, they - * still won't see them if the library has been built to disable deprecated - * functions. - */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; -#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 - -#if OPENSSL_API_COMPAT < 0x10100000L -# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) -#else -# define DEPRECATEDIN_1_1_0(f) -#endif - -#if OPENSSL_API_COMPAT < 0x10000000L -# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) -#else -# define DEPRECATEDIN_1_0_0(f) -#endif - -#if OPENSSL_API_COMPAT < 0x00908000L -# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) -#else -# define DEPRECATEDIN_0_9_8(f) -#endif - - - -/* Generate 80386 code? */ -#undef I386_ONLY - -#undef OPENSSL_UNISTD -#define OPENSSL_UNISTD - -#undef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* - * The following are cipher-specific, but are part of the public API. - */ -#if !defined(OPENSSL_SYS_UEFI) -# define BN_LLONG -/* Only one for the following should be defined */ -# undef SIXTY_FOUR_BIT_LONG -# undef SIXTY_FOUR_BIT -# define THIRTY_TWO_BIT -#endif - -#define RC4_INT unsigned char - -#ifdef __cplusplus -} -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/opensslconf.h.in b/Android/app/libs/armeabi-v7a/include/openssl/opensslconf.h.in deleted file mode 100644 index 9f8634a3..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/opensslconf.h.in +++ /dev/null @@ -1,141 +0,0 @@ -/* - * {- join("\n * ", @autowarntext) -} - * - * 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 - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef OPENSSL_ALGORITHM_DEFINES -# error OPENSSL_ALGORITHM_DEFINES no longer supported -#endif - -/* - * OpenSSL was configured with the following options: - */ - -{- if (@{$config{openssl_sys_defines}}) { - foreach (@{$config{openssl_sys_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_ 1\n"; - $OUT .= "#endif\n"; - } - } - foreach (@{$config{openssl_api_defines}}) { - (my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/; - $OUT .= "#define $macro $value\n"; - } - if (@{$config{openssl_algorithm_defines}}) { - foreach (@{$config{openssl_algorithm_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_\n"; - $OUT .= "#endif\n"; - } - } - if (@{$config{openssl_thread_defines}}) { - foreach (@{$config{openssl_thread_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_\n"; - $OUT .= "#endif\n"; - } - } - if (@{$config{openssl_other_defines}}) { - foreach (@{$config{openssl_other_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_\n"; - $OUT .= "#endif\n"; - } - } - ""; --} - -/* - * 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. - */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; -#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 - -#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 - -{- $target{cpuid_obj} ne "mem_clr.o" ? "#define OPENSSL_CPUID_OBJ" : "" -} - -/* Generate 80386 code? */ -{- $config{processor} eq "386" ? "#define" : "#undef" -} I386_ONLY - -#undef OPENSSL_UNISTD -#define OPENSSL_UNISTD {- $target{unistd} -} - -{- $config{export_var_as_fn} ? "#define" : "#undef" -} OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* - * The following are cipher-specific, but are part of the public API. - */ -#if !defined(OPENSSL_SYS_UEFI) -{- $config{bn_ll} ? "# define" : "# undef" -} BN_LLONG -/* Only one for the following should be defined */ -{- $config{b64l} ? "# define" : "# undef" -} SIXTY_FOUR_BIT_LONG -{- $config{b64} ? "# define" : "# undef" -} SIXTY_FOUR_BIT -{- $config{b32} ? "# define" : "# undef" -} THIRTY_TWO_BIT -#endif - -#define RC4_INT {- $config{rc4_int} -} - -#ifdef __cplusplus -} -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/opensslv.h b/Android/app/libs/armeabi-v7a/include/openssl/opensslv.h deleted file mode 100644 index 4fb437f2..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/opensslv.h +++ /dev/null @@ -1,110 +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_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 0x1010008fL -# ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0h-fips 27 Mar 2018" -# else -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0h 27 Mar 2018" -# endif - -#define OPENSSL_MAKE_VERSION(maj,min,fix,patch) ((0x10000000L)+((maj&0xff)<<20)+((min&0xff)<<12)+((fix&0xff)<<4)+patch) - -/* use this for #if tests, should never depend upon fix/patch */ -#define OPENSSL_VERSION_AT_LEAST(maj,min) (OPENSSL_MAKE_VERSION(maj,min, 0, 0) >= OPENSSL_VERSION_NUMBER) - -/*- - * 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/Android/app/libs/armeabi-v7a/include/openssl/ossl_typ.h b/Android/app/libs/armeabi-v7a/include/openssl/ossl_typ.h deleted file mode 100644 index 129a67f0..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/ossl_typ.h +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2001-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_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 ec_key_st EC_KEY; -typedef struct ec_key_method_st EC_KEY_METHOD; - -typedef struct rand_meth_st RAND_METHOD; - -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 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; - -#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/Android/app/libs/armeabi-v7a/include/openssl/pem.h b/Android/app/libs/armeabi-v7a/include/openssl/pem.h deleted file mode 100644 index 2375d635..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/pem.h +++ /dev/null @@ -1,501 +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_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 - -typedef struct pem_recip_st { - char *name; - X509_NAME *dn; - int cipher; - int key_enc; - /* char iv[8]; unused and wrong size */ -} PEM_USER; - -typedef struct pem_ctx_st { - int type; /* what type of object */ - struct { - int version; - int mode; - } proc_type; - - char *domain; - - struct { - int cipher; - /*- - unused, and wrong size - unsigned char iv[8]; */ - } DEK_info; - - PEM_USER *originator; - - int num_recipient; - PEM_USER **recipient; - -/*- - XXX(ben): don#t think this is used! - STACK *x509_chain; / * certificate chain */ - EVP_MD *md; /* signature type */ - - int md_enc; /* is the md encrypted or not? */ - int md_len; /* length of md_data */ - char *md_data; /* message digest, could be pkey encrypted */ - - EVP_CIPHER *dec; /* date encryption cipher */ - int key_len; /* key length */ - unsigned char *key; /* key */ - /*- - unused, and wrong size - unsigned char iv[8]; */ - - int data_enc; /* is the data encrypted */ - int data_len; - unsigned char *data; -} PEM_CTX; - -/* - * These macros make the PEM_read/PEM_write functions easier to maintain and - * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or - * 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); -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); - -int PEM_def_callback(char *buf, int num, int w, void *key); -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 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PEM_strings(void); - -/* Error codes for the PEM functions. */ - -/* Function codes. */ -# define PEM_F_B2I_DSS 127 -# define PEM_F_B2I_PVK_BIO 128 -# define PEM_F_B2I_RSA 129 -# define PEM_F_CHECK_BITLEN_DSA 130 -# define PEM_F_CHECK_BITLEN_RSA 131 -# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 -# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 -# define PEM_F_DO_B2I 132 -# define PEM_F_DO_B2I_BIO 133 -# define PEM_F_DO_BLOB_HEADER 134 -# define PEM_F_DO_PK8PKEY 126 -# define PEM_F_DO_PK8PKEY_FP 125 -# define PEM_F_DO_PVK_BODY 135 -# define PEM_F_DO_PVK_HEADER 136 -# define PEM_F_I2B_PVK 137 -# define PEM_F_I2B_PVK_BIO 138 -# define PEM_F_LOAD_IV 101 -# define PEM_F_PEM_ASN1_READ 102 -# define PEM_F_PEM_ASN1_READ_BIO 103 -# define PEM_F_PEM_ASN1_WRITE 104 -# define PEM_F_PEM_ASN1_WRITE_BIO 105 -# define PEM_F_PEM_DEF_CALLBACK 100 -# define PEM_F_PEM_DO_HEADER 106 -# define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 -# define PEM_F_PEM_READ 108 -# define PEM_F_PEM_READ_BIO 109 -# define PEM_F_PEM_READ_BIO_DHPARAMS 141 -# define PEM_F_PEM_READ_BIO_PARAMETERS 140 -# define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 -# define PEM_F_PEM_READ_DHPARAMS 142 -# define PEM_F_PEM_READ_PRIVATEKEY 124 -# define PEM_F_PEM_SIGNFINAL 112 -# define PEM_F_PEM_WRITE 113 -# define PEM_F_PEM_WRITE_BIO 114 -# define PEM_F_PEM_WRITE_PRIVATEKEY 139 -# define PEM_F_PEM_X509_INFO_READ 115 -# define PEM_F_PEM_X509_INFO_READ_BIO 116 -# define PEM_F_PEM_X509_INFO_WRITE_BIO 117 - -/* Reason codes. */ -# define PEM_R_BAD_BASE64_DECODE 100 -# define PEM_R_BAD_DECRYPT 101 -# define PEM_R_BAD_END_LINE 102 -# define PEM_R_BAD_IV_CHARS 103 -# define PEM_R_BAD_MAGIC_NUMBER 116 -# define PEM_R_BAD_PASSWORD_READ 104 -# define PEM_R_BAD_VERSION_NUMBER 117 -# define PEM_R_BIO_WRITE_FAILURE 118 -# define PEM_R_CIPHER_IS_NULL 127 -# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 -# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 -# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 -# define PEM_R_HEADER_TOO_LONG 128 -# define PEM_R_INCONSISTENT_HEADER 121 -# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 -# define PEM_R_KEYBLOB_TOO_SHORT 123 -# define PEM_R_MISSING_DEK_IV 129 -# define PEM_R_NOT_DEK_INFO 105 -# define PEM_R_NOT_ENCRYPTED 106 -# define PEM_R_NOT_PROC_TYPE 107 -# define PEM_R_NO_START_LINE 108 -# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 -# define PEM_R_PVK_DATA_TOO_SHORT 124 -# define PEM_R_PVK_TOO_SHORT 125 -# define PEM_R_READ_KEY 111 -# define PEM_R_SHORT_HEADER 112 -# define PEM_R_UNEXPECTED_DEK_IV 130 -# define PEM_R_UNSUPPORTED_CIPHER 113 -# define PEM_R_UNSUPPORTED_ENCRYPTION 114 -# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/pem2.h b/Android/app/libs/armeabi-v7a/include/openssl/pem2.h deleted file mode 100644 index cfe73f13..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/pem2.h +++ /dev/null @@ -1,20 +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 - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef HEADER_PEM_H -int ERR_load_PEM_strings(void); -#endif - -#ifdef __cplusplus -} -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/pkcs12.h b/Android/app/libs/armeabi-v7a/include/openssl/pkcs12.h deleted file mode 100644 index deaded9d..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/pkcs12.h +++ /dev/null @@ -1,282 +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 - -#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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PKCS12_strings(void); - -/* Error codes for the PKCS12 functions. */ - -/* Function codes. */ -# define PKCS12_F_PKCS12_CREATE 105 -# define PKCS12_F_PKCS12_GEN_MAC 107 -# define PKCS12_F_PKCS12_INIT 109 -# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 -# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 -# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 -# define PKCS12_F_PKCS12_KEY_GEN_ASC 110 -# define PKCS12_F_PKCS12_KEY_GEN_UNI 111 -# define PKCS12_F_PKCS12_KEY_GEN_UTF8 116 -# define PKCS12_F_PKCS12_NEWPASS 128 -# define PKCS12_F_PKCS12_PACK_P7DATA 114 -# define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 -# define PKCS12_F_PKCS12_PARSE 118 -# define PKCS12_F_PKCS12_PBE_CRYPT 119 -# define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_P8INF 112 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_PKCS8 113 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE_PKCS8_ENCRYPT 133 -# define PKCS12_F_PKCS12_SETUP_MAC 122 -# define PKCS12_F_PKCS12_SET_MAC 123 -# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 -# define PKCS12_F_PKCS12_UNPACK_P7DATA 131 -# define PKCS12_F_PKCS12_VERIFY_MAC 126 -# define PKCS12_F_PKCS8_ENCRYPT 125 -# define PKCS12_F_PKCS8_SET0_PBE 132 - -/* Reason codes. */ -# define PKCS12_R_CANT_PACK_STRUCTURE 100 -# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 -# define PKCS12_R_DECODE_ERROR 101 -# define PKCS12_R_ENCODE_ERROR 102 -# define PKCS12_R_ENCRYPT_ERROR 103 -# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 -# define PKCS12_R_INVALID_NULL_ARGUMENT 104 -# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 -# define PKCS12_R_IV_GEN_ERROR 106 -# define PKCS12_R_KEY_GEN_ERROR 107 -# define PKCS12_R_MAC_ABSENT 108 -# define PKCS12_R_MAC_GENERATION_ERROR 109 -# define PKCS12_R_MAC_SETUP_ERROR 110 -# define PKCS12_R_MAC_STRING_SET_ERROR 111 -# define PKCS12_R_MAC_VERIFY_FAILURE 113 -# define PKCS12_R_PARSE_ERROR 114 -# define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 -# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 -# define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 -# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 -# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/pkcs7.h b/Android/app/libs/armeabi-v7a/include/openssl/pkcs7.h deleted file mode 100644 index 691f7220..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/pkcs7.h +++ /dev/null @@ -1,404 +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 - -#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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PKCS7_strings(void); - -/* Error codes for the PKCS7 functions. */ - -/* Function codes. */ -# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 -# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 -# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 -# define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 -# define PKCS7_F_PKCS7_ADD_CRL 101 -# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 -# define PKCS7_F_PKCS7_ADD_SIGNATURE 131 -# define PKCS7_F_PKCS7_ADD_SIGNER 103 -# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 -# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 -# define PKCS7_F_PKCS7_CTRL 104 -# define PKCS7_F_PKCS7_DATADECODE 112 -# define PKCS7_F_PKCS7_DATAFINAL 128 -# define PKCS7_F_PKCS7_DATAINIT 105 -# define PKCS7_F_PKCS7_DATAVERIFY 107 -# define PKCS7_F_PKCS7_DECRYPT 114 -# define PKCS7_F_PKCS7_DECRYPT_RINFO 133 -# define PKCS7_F_PKCS7_ENCODE_RINFO 132 -# define PKCS7_F_PKCS7_ENCRYPT 115 -# define PKCS7_F_PKCS7_FINAL 134 -# define PKCS7_F_PKCS7_FIND_DIGEST 127 -# define PKCS7_F_PKCS7_GET0_SIGNERS 124 -# define PKCS7_F_PKCS7_RECIP_INFO_SET 130 -# define PKCS7_F_PKCS7_SET_CIPHER 108 -# define PKCS7_F_PKCS7_SET_CONTENT 109 -# define PKCS7_F_PKCS7_SET_DIGEST 126 -# define PKCS7_F_PKCS7_SET_TYPE 110 -# define PKCS7_F_PKCS7_SIGN 116 -# define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 -# define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 -# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 -# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 -# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 -# define PKCS7_F_PKCS7_VERIFY 117 - -/* Reason codes. */ -# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 -# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 -# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 -# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 -# define PKCS7_R_CTRL_ERROR 152 -# define PKCS7_R_DECRYPT_ERROR 119 -# define PKCS7_R_DIGEST_FAILURE 101 -# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 -# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 -# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 -# define PKCS7_R_ERROR_SETTING_CIPHER 121 -# define PKCS7_R_INVALID_NULL_POINTER 143 -# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 -# define PKCS7_R_NO_CONTENT 122 -# define PKCS7_R_NO_DEFAULT_DIGEST 151 -# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 -# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 -# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 -# define PKCS7_R_NO_SIGNERS 142 -# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 -# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 -# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 -# define PKCS7_R_PKCS7_DATASIGN 145 -# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 -# define PKCS7_R_SIGNATURE_FAILURE 105 -# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 -# define PKCS7_R_SIGNING_CTRL_FAILURE 147 -# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 -# define PKCS7_R_SMIME_TEXT_ERROR 129 -# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 -# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 -# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 -# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 -# define PKCS7_R_UNKNOWN_OPERATION 110 -# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 -# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 -# define PKCS7_R_WRONG_CONTENT_TYPE 113 -# define PKCS7_R_WRONG_PKCS7_TYPE 114 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/rand.h b/Android/app/libs/armeabi-v7a/include/openssl/rand.h deleted file mode 100644 index d521ae19..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/rand.h +++ /dev/null @@ -1,89 +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_RAND_H -# define HEADER_RAND_H - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Already defined in ossl_typ.h */ -/* typedef struct rand_meth_st RAND_METHOD; */ - -struct rand_meth_st { - int (*seed) (const void *buf, int num); - int (*bytes) (unsigned char *buf, int num); - void (*cleanup) (void); - int (*add) (const void *buf, int num, double entropy); - int (*pseudorand) (unsigned char *buf, int num); - int (*status) (void); -}; - -# ifdef BN_DEBUG -extern int rand_predictable; -# endif - -int RAND_set_rand_method(const RAND_METHOD *meth); -const RAND_METHOD *RAND_get_rand_method(void); -# ifndef OPENSSL_NO_ENGINE -int RAND_set_rand_engine(ENGINE *engine); -# endif -RAND_METHOD *RAND_OpenSSL(void); -#if OPENSSL_API_COMPAT < 0x10100000L -# define RAND_cleanup() while(0) continue -#endif -int RAND_bytes(unsigned char *buf, int num); -DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num)) -void RAND_seed(const void *buf, int num); -#if defined(__ANDROID__) && defined(__NDK_FPABI__) -__NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */ -#endif -void RAND_add(const void *buf, int num, double entropy); -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 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_RAND_strings(void); - -/* Error codes for the RAND functions. */ - -/* Function codes. */ -# define RAND_F_RAND_BYTES 100 - -/* Reason codes. */ -# define RAND_R_PRNG_NOT_SEEDED 100 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/rc2.h b/Android/app/libs/armeabi-v7a/include/openssl/rc2.h deleted file mode 100644 index 585f9e4c..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/rc4.h b/Android/app/libs/armeabi-v7a/include/openssl/rc4.h deleted file mode 100644 index 86803b37..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/rc5.h b/Android/app/libs/armeabi-v7a/include/openssl/rc5.h deleted file mode 100644 index 793f88e4..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/ripemd.h b/Android/app/libs/armeabi-v7a/include/openssl/ripemd.h deleted file mode 100644 index c42026aa..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/rsa.h b/Android/app/libs/armeabi-v7a/include/openssl/rsa.h deleted file mode 100644 index d97d6e07..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/rsa.h +++ /dev/null @@ -1,590 +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_RSA_H -# define HEADER_RSA_H - -# include - -# ifndef OPENSSL_NO_RSA -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# 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 - -# 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) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, EVP_PKEY_CTRL_RSA_PADDING, \ - pad, NULL) - -# define EVP_PKEY_CTX_get_rsa_padding(ctx, ppad) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, \ - EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) - -# define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_RSA_PSS_SALTLEN, \ - len, NULL) - -# define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, \ - 0, plen) - -# define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) - -# define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) - -# define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)pmd) - -# 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_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 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); -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); -void RSA_get0_crt_params(const RSA *r, - const BIGNUM **dmp1, const BIGNUM **dmq1, - const BIGNUM **iqmp); -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); -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); - -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_get_method(const RSA *rsa); -int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); - -/* these are the actual RSA functions */ -const RSA_METHOD *RSA_PKCS1_OpenSSL(void); - -const RSA_METHOD *RSA_null_method(void); - -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) - -typedef struct rsa_pss_params_st { - X509_ALGOR *hashAlgorithm; - X509_ALGOR *maskGenAlgorithm; - ASN1_INTEGER *saltLength; - ASN1_INTEGER *trailerField; -} RSA_PSS_PARAMS; - -DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) - -typedef struct rsa_oaep_params_st { - X509_ALGOR *hashFunc; - X509_ALGOR *maskGenFunc; - X509_ALGOR *pSourceFunc; -} 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(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)); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_RSA_strings(void); - -/* Error codes for the RSA functions. */ - -/* Function codes. */ -# define RSA_F_CHECK_PADDING_MD 140 -# define RSA_F_ENCODE_PKCS1 146 -# define RSA_F_INT_RSA_VERIFY 145 -# define RSA_F_OLD_RSA_PRIV_DECODE 147 -# define RSA_F_PKEY_RSA_CTRL 143 -# define RSA_F_PKEY_RSA_CTRL_STR 144 -# define RSA_F_PKEY_RSA_SIGN 142 -# define RSA_F_PKEY_RSA_VERIFY 149 -# define RSA_F_PKEY_RSA_VERIFYRECOVER 141 -# define RSA_F_RSA_ALGOR_TO_MD 156 -# define RSA_F_RSA_BUILTIN_KEYGEN 129 -# define RSA_F_RSA_CHECK_KEY 123 -# define RSA_F_RSA_CHECK_KEY_EX 160 -# define RSA_F_RSA_CMS_DECRYPT 159 -# define RSA_F_RSA_ITEM_VERIFY 148 -# define RSA_F_RSA_METH_DUP 161 -# define RSA_F_RSA_METH_NEW 162 -# define RSA_F_RSA_METH_SET1_NAME 163 -# define RSA_F_RSA_MGF1_TO_MD 157 -# define RSA_F_RSA_NEW_METHOD 106 -# define RSA_F_RSA_NULL 124 -# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 -# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 -# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 -# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 -# define RSA_F_RSA_OSSL_PRIVATE_DECRYPT 101 -# define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 102 -# define RSA_F_RSA_OSSL_PUBLIC_DECRYPT 103 -# define RSA_F_RSA_OSSL_PUBLIC_ENCRYPT 104 -# define RSA_F_RSA_PADDING_ADD_NONE 107 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 154 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 152 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 -# define RSA_F_RSA_PADDING_ADD_SSLV23 110 -# define RSA_F_RSA_PADDING_ADD_X931 127 -# define RSA_F_RSA_PADDING_CHECK_NONE 111 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 153 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 -# define RSA_F_RSA_PADDING_CHECK_SSLV23 114 -# define RSA_F_RSA_PADDING_CHECK_X931 128 -# define RSA_F_RSA_PRINT 115 -# define RSA_F_RSA_PRINT_FP 116 -# define RSA_F_RSA_PRIV_ENCODE 138 -# define RSA_F_RSA_PSS_TO_CTX 155 -# define RSA_F_RSA_PUB_DECODE 139 -# define RSA_F_RSA_SETUP_BLINDING 136 -# define RSA_F_RSA_SIGN 117 -# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 -# define RSA_F_RSA_VERIFY 119 -# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 -# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 126 - -/* Reason codes. */ -# define RSA_R_ALGORITHM_MISMATCH 100 -# define RSA_R_BAD_E_VALUE 101 -# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 -# define RSA_R_BAD_PAD_BYTE_COUNT 103 -# define RSA_R_BAD_SIGNATURE 104 -# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 -# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 -# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 -# define RSA_R_DATA_TOO_LARGE 109 -# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 -# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 -# define RSA_R_DATA_TOO_SMALL 111 -# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 -# define RSA_R_DIGEST_DOES_NOT_MATCH 158 -# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 -# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 -# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 -# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 -# define RSA_R_FIRST_OCTET_INVALID 133 -# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 -# define RSA_R_INVALID_DIGEST 157 -# define RSA_R_INVALID_DIGEST_LENGTH 143 -# define RSA_R_INVALID_HEADER 137 -# define RSA_R_INVALID_LABEL 160 -# define RSA_R_INVALID_MESSAGE_LENGTH 131 -# define RSA_R_INVALID_MGF1_MD 156 -# define RSA_R_INVALID_OAEP_PARAMETERS 161 -# define RSA_R_INVALID_PADDING 138 -# define RSA_R_INVALID_PADDING_MODE 141 -# define RSA_R_INVALID_PSS_PARAMETERS 149 -# define RSA_R_INVALID_PSS_SALTLEN 146 -# define RSA_R_INVALID_SALT_LENGTH 150 -# define RSA_R_INVALID_TRAILER 139 -# define RSA_R_INVALID_X931_DIGEST 142 -# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 -# define RSA_R_KEY_SIZE_TOO_SMALL 120 -# define RSA_R_LAST_OCTET_INVALID 134 -# define RSA_R_MODULUS_TOO_LARGE 105 -# define RSA_R_NO_PUBLIC_EXPONENT 140 -# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 -# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 -# define RSA_R_OAEP_DECODING_ERROR 121 -# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 -# define RSA_R_PADDING_CHECK_FAILED 114 -# define RSA_R_PKCS_DECODING_ERROR 159 -# define RSA_R_P_NOT_PRIME 128 -# define RSA_R_Q_NOT_PRIME 129 -# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 -# define RSA_R_SLEN_CHECK_FAILED 136 -# define RSA_R_SLEN_RECOVERY_FAILED 135 -# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 -# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 -# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 -# define RSA_R_UNKNOWN_DIGEST 166 -# define RSA_R_UNKNOWN_MASK_DIGEST 151 -# define RSA_R_UNKNOWN_PADDING_TYPE 118 -# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 162 -# define RSA_R_UNSUPPORTED_LABEL_SOURCE 163 -# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 -# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 -# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 -# define RSA_R_VALUE_MISSING 147 -# define RSA_R_WRONG_SIGNATURE_LENGTH 119 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/safestack.h b/Android/app/libs/armeabi-v7a/include/openssl/safestack.h deleted file mode 100644 index 9fe733c2..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/safestack.h +++ /dev/null @@ -1,164 +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_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_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ - } \ - static ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ - { \ - return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \ - } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \ - } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ - } \ - static ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_free((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ - { \ - return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \ - } \ - static ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \ - (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ - { \ - OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \ - } \ - static ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ - { \ - return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \ - } \ - static ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \ - } \ - static ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \ - } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ - 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_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) - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/seed.h b/Android/app/libs/armeabi-v7a/include/openssl/seed.h deleted file mode 100644 index de10b085..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/sha.h b/Android/app/libs/armeabi-v7a/include/openssl/sha.h deleted file mode 100644 index 6a1eb0de..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/srp.h b/Android/app/libs/armeabi-v7a/include/openssl/srp.h deleted file mode 100644 index f2b6ec75..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/srp.h +++ /dev/null @@ -1,131 +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 - */ - -#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/Android/app/libs/armeabi-v7a/include/openssl/srtp.h b/Android/app/libs/armeabi-v7a/include/openssl/srtp.h deleted file mode 100644 index 0b57c235..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/ssl.h b/Android/app/libs/armeabi-v7a/include/openssl/ssl.h deleted file mode 100644 index f070bd2d..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/ssl.h +++ /dev/null @@ -1,2567 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - -#ifndef HEADER_SSL_H -# define HEADER_SSL_H - -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# include -# endif -# 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_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'. - */ -# define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL" -/* - * 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); - -/* 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 for verification callback */ -typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); - -/* Allow initial connection to servers that don't support RI */ -# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004U -# define SSL_OP_TLSEXT_PADDING 0x00000010U -# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040U - -/* - * 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 -/* - * 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 - -# 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_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) -# 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 put onto a free-list in the context or - * just freed (depending on the context's setting for freelist_max_len). - */ -# 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 - -/* 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 - -/* - * 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) (const 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)); -# ifndef OPENSSL_NO_NEXTPROTONEG -void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - const unsigned char - **out, - unsigned int *outlen, - void *arg), void *arg); -void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg), void *arg); -void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, - unsigned *len); -# 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); -void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, - int (*cb) (SSL *ssl, - const unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg), 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 -void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, - unsigned int (*psk_client_callback) (SSL - *ssl, - const - char - *hint, - char - *identity, - unsigned - int - max_identity_len, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_set_psk_client_callback(SSL *ssl, - unsigned int (*psk_client_callback) (SSL - *ssl, - const - char - *hint, - char - *identity, - unsigned - int - max_identity_len, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, - unsigned int (*psk_server_callback) (SSL - *ssl, - const - char - *identity, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_set_psk_server_callback(SSL *ssl, - unsigned int (*psk_server_callback) (SSL - *ssl, - const - char - *identity, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -__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 - -/* 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_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 - -/* 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_MAC_FLAG_READ_MAC_STREAM 1 -# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 - -#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)) - - -/* - * 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 -} 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(SSL *s); -int SSL_in_before(SSL *s); -int SSL_is_init_finished(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 2 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 OpenSSL_add_ssl_algorithms() SSL_library_init() -# if OPENSSL_API_COMPAT < 0x10100000L -# 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_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_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_CURVES 90 -# define SSL_CTRL_SET_CURVES 91 -# define SSL_CTRL_SET_CURVES_LIST 92 -# define SSL_CTRL_GET_SHARED_CURVE 93 -# define SSL_CTRL_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_SERVER_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_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_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_set0_chain(ctx,sk) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) -# define SSL_set1_chain(ctx,sk) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) -# define SSL_add0_chain_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) -# define SSL_add1_chain_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) -# define SSL_get0_chain_certs(ctx,px509) \ - SSL_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_clear_chain_certs(ctx) \ - SSL_set0_chain(ctx,NULL) -# define SSL_build_cert_chain(s, flags) \ - SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_select_current_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) -# define SSL_set_current_cert(ctx,op) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_set0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) -# define SSL_set1_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) -# define SSL_set0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) -# define SSL_set1_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) -# define SSL_get1_curves(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_GET_CURVES,0,(char *)s) -# define SSL_CTX_set1_curves(ctx, clist, clistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) -# define SSL_CTX_set1_curves_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) -# define SSL_set1_curves(ctx, clist, clistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) -# define SSL_set1_curves_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) -# define SSL_get_shared_curve(s, n) \ - SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL) -# 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(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) -# define SSL_set1_sigalgs_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) -# 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(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)slist) -# define SSL_set1_client_sigalgs_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) -# 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_peer_signature_nid(s, pn) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) -# define SSL_get_server_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk) -# define SSL_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) - -#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 *); -__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 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 uint32_t SSL_CIPHER_get_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 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 len); -__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); -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); - -/* 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_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 const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); -__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); -__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 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 SSL_SESSION *SSL_SESSION_new(void); -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 *s, SSL_SESSION *c); -int SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c); -__owur int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); -__owur int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); -__owur int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, - unsigned int id_len); -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); - -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 *s, int purpose); -__owur int SSL_set_purpose(SSL *s, int purpose); -__owur int SSL_CTX_set_trust(SSL_CTX *s, int trust); -__owur int SSL_set_trust(SSL *s, int trust); - -__owur int SSL_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 - -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_connect(SSL *ssl); -__owur int SSL_read(SSL *ssl, void *buf, int num); -__owur int SSL_peek(SSL *ssl, void *buf, int num); -__owur int SSL_write(SSL *ssl, const void *buf, int num); -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)); - -__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)) /* SSLv3 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) /* SSLv3 */ -# 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)) /* TLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* TLSv1.0 */ -# endif - -# ifndef OPENSSL_NO_TLS1_1_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) /* TLSv1.1 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) /* TLSv1.1 */ -# endif - -# ifndef OPENSSL_NO_TLS1_2_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) /* TLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */ -# endif - -# ifndef OPENSSL_NO_DTLS1_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_method(void)) /* DTLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) /* DTLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) /* DTLSv1.0 */ -# endif - -# ifndef OPENSSL_NO_DTLS1_2_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) /* DTLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) /* DTLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) /* DTLSv1.2 */ -#endif - -__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 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_renegotiate(SSL *s); -__owur int SSL_renegotiate_abbreviated(SSL *s); -__owur int SSL_renegotiate_pending(SSL *s); -int SSL_shutdown(SSL *s); - -__owur const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx); -__owur const SSL_METHOD *SSL_get_ssl_method(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_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(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 *ssl, - unsigned char *out, size_t outlen); - -#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(SSL *s); -__owur const COMP_METHOD *SSL_get_current_expansion(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); - -/* 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 tls_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)); -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_cache_hit(s) SSL_session_reused(s) -# endif - -__owur int SSL_session_reused(SSL *s); -__owur int SSL_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); -__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); -# 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 - -extern const char SSL_version_str[]; - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_SSL_strings(void); - -/* Error codes for the SSL functions. */ - -/* Function codes. */ -# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 -# define SSL_F_CT_MOVE_SCTS 345 -# define SSL_F_CT_STRICT 349 -# define SSL_F_D2I_SSL_SESSION 103 -# define SSL_F_DANE_CTX_ENABLE 347 -# define SSL_F_DANE_MTYPE_SET 393 -# define SSL_F_DANE_TLSA_ADD 394 -# define SSL_F_DO_DTLS1_WRITE 245 -# define SSL_F_DO_SSL3_WRITE 104 -# define SSL_F_DTLS1_BUFFER_RECORD 247 -# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 318 -# define SSL_F_DTLS1_HEARTBEAT 305 -# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 -# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424 -# define SSL_F_DTLS1_PROCESS_RECORD 257 -# define SSL_F_DTLS1_READ_BYTES 258 -# define SSL_F_DTLS1_READ_FAILED 339 -# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 390 -# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 -# define SSL_F_DTLSV1_LISTEN 350 -# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 371 -# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385 -# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370 -# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386 -# define SSL_F_DTLS_WAIT_FOR_DRY 592 -# define SSL_F_OPENSSL_INIT_SSL 342 -# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 417 -# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 418 -# define SSL_F_READ_STATE_MACHINE 352 -# define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 -# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 -# define SSL_F_SSL3_CTRL 213 -# define SSL_F_SSL3_CTX_CTRL 133 -# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 -# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 -# define SSL_F_SSL3_FINAL_FINISH_MAC 285 -# define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 -# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 -# define SSL_F_SSL3_GET_RECORD 143 -# define SSL_F_SSL3_INIT_FINISHED_MAC 397 -# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 -# define SSL_F_SSL3_READ_BYTES 148 -# define SSL_F_SSL3_READ_N 149 -# define SSL_F_SSL3_SETUP_KEY_BLOCK 157 -# define SSL_F_SSL3_SETUP_READ_BUFFER 156 -# define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 -# define SSL_F_SSL3_TAKE_MAC 425 -# define SSL_F_SSL3_WRITE_BYTES 158 -# define SSL_F_SSL3_WRITE_PENDING 159 -# define SSL_F_SSL_ADD_CERT_CHAIN 316 -# define SSL_F_SSL_ADD_CERT_TO_BUF 319 -# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 -# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 -# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 -# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 -# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 -# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 -# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 -# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 -# define SSL_F_SSL_BAD_METHOD 160 -# define SSL_F_SSL_BUILD_CERT_CHAIN 332 -# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 -# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 346 -# define SSL_F_SSL_CERT_DUP 221 -# define SSL_F_SSL_CERT_NEW 162 -# define SSL_F_SSL_CERT_SET0_CHAIN 340 -# define SSL_F_SSL_CHECK_PRIVATE_KEY 163 -# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 -# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 -# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 -# define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 -# define SSL_F_SSL_CLEAR 164 -# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 -# define SSL_F_SSL_CONF_CMD 334 -# define SSL_F_SSL_CREATE_CIPHER_LIST 166 -# define SSL_F_SSL_CTRL 232 -# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 -# define SSL_F_SSL_CTX_ENABLE_CT 398 -# define SSL_F_SSL_CTX_MAKE_PROFILES 309 -# define SSL_F_SSL_CTX_NEW 169 -# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 343 -# define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 -# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 -# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 396 -# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 -# define SSL_F_SSL_CTX_SET_SSL_VERSION 170 -# define SSL_F_SSL_CTX_USE_CERTIFICATE 171 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 -# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 -# define SSL_F_SSL_CTX_USE_SERVERINFO 336 -# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 -# define SSL_F_SSL_DANE_DUP 403 -# define SSL_F_SSL_DANE_ENABLE 395 -# define SSL_F_SSL_DO_CONFIG 391 -# define SSL_F_SSL_DO_HANDSHAKE 180 -# define SSL_F_SSL_DUP_CA_LIST 408 -# define SSL_F_SSL_ENABLE_CT 402 -# define SSL_F_SSL_GET_NEW_SESSION 181 -# define SSL_F_SSL_GET_PREV_SESSION 217 -# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 -# define SSL_F_SSL_GET_SIGN_PKEY 183 -# define SSL_F_SSL_INIT_WBIO_BUFFER 184 -# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 -# define SSL_F_SSL_MODULE_INIT 392 -# define SSL_F_SSL_NEW 186 -# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 -# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 -# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 -# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 -# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 -# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 -# define SSL_F_SSL_PEEK 270 -# define SSL_F_SSL_READ 223 -# define SSL_F_SSL_RENEGOTIATE 516 -# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 546 -# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 -# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 -# define SSL_F_SSL_SESSION_DUP 348 -# define SSL_F_SSL_SESSION_NEW 189 -# define SSL_F_SSL_SESSION_PRINT_FP 190 -# define SSL_F_SSL_SESSION_SET1_ID 423 -# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 -# define SSL_F_SSL_SET_ALPN_PROTOS 344 -# define SSL_F_SSL_SET_CERT 191 -# define SSL_F_SSL_SET_CIPHER_LIST 271 -# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 399 -# define SSL_F_SSL_SET_FD 192 -# define SSL_F_SSL_SET_PKEY 193 -# define SSL_F_SSL_SET_RFD 194 -# define SSL_F_SSL_SET_SESSION 195 -# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 -# define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 -# define SSL_F_SSL_SET_WFD 196 -# define SSL_F_SSL_SHUTDOWN 224 -# define SSL_F_SSL_SRP_CTX_INIT 313 -# define SSL_F_SSL_START_ASYNC_JOB 389 -# define SSL_F_SSL_UNDEFINED_FUNCTION 197 -# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 -# define SSL_F_SSL_USE_CERTIFICATE 198 -# define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 -# define SSL_F_SSL_USE_CERTIFICATE_FILE 200 -# define SSL_F_SSL_USE_PRIVATEKEY 201 -# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 -# define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 -# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 -# define SSL_F_SSL_USE_RSAPRIVATEKEY 204 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 -# define SSL_F_SSL_VALIDATE_CT 400 -# define SSL_F_SSL_VERIFY_CERT_CHAIN 207 -# define SSL_F_SSL_WRITE 208 -# define SSL_F_STATE_MACHINE 353 -# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 -# define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 -# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 341 -# define SSL_F_TLS1_ENC 401 -# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 -# define SSL_F_TLS1_GET_CURVELIST 338 -# define SSL_F_TLS1_PRF 284 -# define SSL_F_TLS1_SETUP_KEY_BLOCK 211 -# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 -# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 354 -# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 372 -# define SSL_F_TLS_CONSTRUCT_CKE_DHE 404 -# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 405 -# define SSL_F_TLS_CONSTRUCT_CKE_GOST 406 -# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 407 -# define SSL_F_TLS_CONSTRUCT_CKE_RSA 409 -# define SSL_F_TLS_CONSTRUCT_CKE_SRP 410 -# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 355 -# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 356 -# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 357 -# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 358 -# define SSL_F_TLS_CONSTRUCT_FINISHED 359 -# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 373 -# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 428 -# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 374 -# define SSL_F_TLS_CONSTRUCT_SERVER_DONE 375 -# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 376 -# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 377 -# define SSL_F_TLS_GET_MESSAGE_BODY 351 -# define SSL_F_TLS_GET_MESSAGE_HEADER 387 -# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 378 -# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 384 -# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 360 -# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 361 -# define SSL_F_TLS_PROCESS_CERT_STATUS 362 -# define SSL_F_TLS_PROCESS_CERT_VERIFY 379 -# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 363 -# define SSL_F_TLS_PROCESS_CKE_DHE 411 -# define SSL_F_TLS_PROCESS_CKE_ECDHE 412 -# define SSL_F_TLS_PROCESS_CKE_GOST 413 -# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 414 -# define SSL_F_TLS_PROCESS_CKE_RSA 415 -# define SSL_F_TLS_PROCESS_CKE_SRP 416 -# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 380 -# define SSL_F_TLS_PROCESS_CLIENT_HELLO 381 -# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 382 -# define SSL_F_TLS_PROCESS_FINISHED 364 -# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 365 -# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 366 -# define SSL_F_TLS_PROCESS_NEXT_PROTO 383 -# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 367 -# define SSL_F_TLS_PROCESS_SERVER_DONE 368 -# define SSL_F_TLS_PROCESS_SERVER_HELLO 369 -# define SSL_F_TLS_PROCESS_SKE_DHE 419 -# define SSL_F_TLS_PROCESS_SKE_ECDHE 420 -# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 421 -# define SSL_F_TLS_PROCESS_SKE_SRP 422 -# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 220 - -/* Reason codes. */ -# define SSL_R_APP_DATA_IN_HANDSHAKE 100 -# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 -# define SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE 143 -# define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158 -# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 -# define SSL_R_BAD_DATA 390 -# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 -# define SSL_R_BAD_DECOMPRESSION 107 -# define SSL_R_BAD_DH_VALUE 102 -# define SSL_R_BAD_DIGEST_LENGTH 111 -# define SSL_R_BAD_ECC_CERT 304 -# define SSL_R_BAD_ECPOINT 306 -# define SSL_R_BAD_HANDSHAKE_LENGTH 332 -# define SSL_R_BAD_HELLO_REQUEST 105 -# define SSL_R_BAD_LENGTH 271 -# define SSL_R_BAD_PACKET_LENGTH 115 -# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 -# define SSL_R_BAD_RSA_ENCRYPT 119 -# define SSL_R_BAD_SIGNATURE 123 -# define SSL_R_BAD_SRP_A_LENGTH 347 -# define SSL_R_BAD_SRP_PARAMETERS 371 -# define SSL_R_BAD_SRTP_MKI_VALUE 352 -# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 -# define SSL_R_BAD_SSL_FILETYPE 124 -# define SSL_R_BAD_VALUE 384 -# define SSL_R_BAD_WRITE_RETRY 127 -# define SSL_R_BIO_NOT_SET 128 -# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 -# define SSL_R_BN_LIB 130 -# define SSL_R_CA_DN_LENGTH_MISMATCH 131 -# define SSL_R_CA_KEY_TOO_SMALL 397 -# define SSL_R_CA_MD_TOO_WEAK 398 -# define SSL_R_CCS_RECEIVED_EARLY 133 -# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 -# define SSL_R_CERT_CB_ERROR 377 -# define SSL_R_CERT_LENGTH_MISMATCH 135 -# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 -# define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 -# define SSL_R_CLIENTHELLO_TLSEXT 226 -# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 -# define SSL_R_COMPRESSION_DISABLED 343 -# define SSL_R_COMPRESSION_FAILURE 141 -# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 -# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 -# define SSL_R_CONNECTION_TYPE_NOT_SET 144 -# define SSL_R_CONTEXT_NOT_DANE_ENABLED 167 -# define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400 -# define SSL_R_COOKIE_MISMATCH 308 -# define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206 -# define SSL_R_DANE_ALREADY_ENABLED 172 -# define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173 -# define SSL_R_DANE_NOT_ENABLED 175 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184 -# define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189 -# define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192 -# define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200 -# define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201 -# define SSL_R_DANE_TLSA_BAD_SELECTOR 202 -# define SSL_R_DANE_TLSA_NULL_DATA 203 -# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 -# define SSL_R_DATA_LENGTH_TOO_LONG 146 -# define SSL_R_DECRYPTION_FAILED 147 -# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 -# define SSL_R_DH_KEY_TOO_SMALL 394 -# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 -# define SSL_R_DIGEST_CHECK_FAILED 149 -# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 -# define SSL_R_DUPLICATE_COMPRESSION_ID 309 -# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 -# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 -# define SSL_R_EE_KEY_TOO_SMALL 399 -# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 -# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 -# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 -# define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204 -# define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194 -# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 -# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 -# define SSL_R_FAILED_TO_INIT_ASYNC 405 -# define SSL_R_FRAGMENTED_CLIENT_HELLO 401 -# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 -# define SSL_R_HTTPS_PROXY_REQUEST 155 -# define SSL_R_HTTP_REQUEST 156 -# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 -# define SSL_R_INAPPROPRIATE_FALLBACK 373 -# define SSL_R_INCONSISTENT_COMPRESSION 340 -# define SSL_R_INCONSISTENT_EXTMS 104 -# define SSL_R_INVALID_COMMAND 280 -# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 -# define SSL_R_INVALID_CONFIGURATION_NAME 113 -# define SSL_R_INVALID_CT_VALIDATION_TYPE 212 -# define SSL_R_INVALID_NULL_CMD_NAME 385 -# define SSL_R_INVALID_SEQUENCE_NUMBER 402 -# define SSL_R_INVALID_SERVERINFO_DATA 388 -# define SSL_R_INVALID_SRP_USERNAME 357 -# define SSL_R_INVALID_STATUS_RESPONSE 328 -# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 -# define SSL_R_LENGTH_MISMATCH 159 -# define SSL_R_LENGTH_TOO_LONG 404 -# define SSL_R_LENGTH_TOO_SHORT 160 -# define SSL_R_LIBRARY_BUG 274 -# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 -# define SSL_R_MISSING_DSA_SIGNING_CERT 165 -# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 -# define SSL_R_MISSING_RSA_CERTIFICATE 168 -# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 -# define SSL_R_MISSING_RSA_SIGNING_CERT 170 -# define SSL_R_MISSING_SRP_PARAM 358 -# define SSL_R_MISSING_TMP_DH_KEY 171 -# define SSL_R_MISSING_TMP_ECDH_KEY 311 -# define SSL_R_NO_CERTIFICATES_RETURNED 176 -# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 -# define SSL_R_NO_CERTIFICATE_SET 179 -# define SSL_R_NO_CIPHERS_AVAILABLE 181 -# define SSL_R_NO_CIPHERS_SPECIFIED 183 -# define SSL_R_NO_CIPHER_MATCH 185 -# define SSL_R_NO_CLIENT_CERT_METHOD 331 -# define SSL_R_NO_COMPRESSION_SPECIFIED 187 -# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 -# define SSL_R_NO_METHOD_SPECIFIED 188 -# define SSL_R_NO_PEM_EXTENSIONS 389 -# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 -# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 -# define SSL_R_NO_RENEGOTIATION 339 -# define SSL_R_NO_REQUIRED_DIGEST 324 -# define SSL_R_NO_SHARED_CIPHER 193 -# define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376 -# define SSL_R_NO_SRTP_PROFILES 359 -# define SSL_R_NO_VALID_SCTS 216 -# define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403 -# define SSL_R_NULL_SSL_CTX 195 -# define SSL_R_NULL_SSL_METHOD_PASSED 196 -# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 -# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 -# define SSL_R_PACKET_LENGTH_TOO_LONG 198 -# define SSL_R_PARSE_TLSEXT 227 -# define SSL_R_PATH_TOO_LONG 270 -# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 -# define SSL_R_PEM_NAME_BAD_PREFIX 391 -# define SSL_R_PEM_NAME_TOO_SHORT 392 -# define SSL_R_PIPELINE_FAILURE 406 -# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 -# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 -# define SSL_R_PSK_NO_CLIENT_CB 224 -# define SSL_R_PSK_NO_SERVER_CB 225 -# define SSL_R_READ_BIO_NOT_SET 211 -# define SSL_R_READ_TIMEOUT_EXPIRED 312 -# define SSL_R_RECORD_LENGTH_MISMATCH 213 -# define SSL_R_RECORD_TOO_SMALL 298 -# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 -# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 -# define SSL_R_RENEGOTIATION_MISMATCH 337 -# define SSL_R_REQUIRED_CIPHER_MISSING 215 -# define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342 -# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 -# define SSL_R_SCT_VERIFICATION_FAILED 208 -# define SSL_R_SERVERHELLO_TLSEXT 275 -# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 -# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 -# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 -# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 -# define SSL_R_SRP_A_CALC 361 -# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 -# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 -# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 -# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 -# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 -# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 -# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 -# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 -# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 -# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 -# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 -# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 -# define SSL_R_SSL_COMMAND_SECTION_EMPTY 117 -# define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125 -# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 -# define SSL_R_SSL_HANDSHAKE_FAILURE 229 -# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 -# define SSL_R_SSL_NEGATIVE_LENGTH 372 -# define SSL_R_SSL_SECTION_EMPTY 126 -# define SSL_R_SSL_SECTION_NOT_FOUND 136 -# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 -# define SSL_R_SSL_SESSION_ID_CONFLICT 302 -# define SSL_R_SSL_SESSION_ID_TOO_LONG 408 -# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 -# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 -# define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 -# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 -# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 -# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 -# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 -# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 -# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 -# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 -# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 -# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 -# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 -# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 -# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 -# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 -# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 -# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 -# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 -# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 -# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 -# define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 -# define SSL_R_TLS_HEARTBEAT_PENDING 366 -# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 -# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 -# define SSL_R_TOO_MANY_WARN_ALERTS 409 -# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 -# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 -# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 -# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 -# define SSL_R_UNEXPECTED_MESSAGE 244 -# define SSL_R_UNEXPECTED_RECORD 245 -# define SSL_R_UNINITIALIZED 276 -# define SSL_R_UNKNOWN_ALERT_TYPE 246 -# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 -# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 -# define SSL_R_UNKNOWN_CIPHER_TYPE 249 -# define SSL_R_UNKNOWN_CMD_NAME 386 -# define SSL_R_UNKNOWN_COMMAND 139 -# define SSL_R_UNKNOWN_DIGEST 368 -# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 -# define SSL_R_UNKNOWN_PKEY_TYPE 251 -# define SSL_R_UNKNOWN_PROTOCOL 252 -# define SSL_R_UNKNOWN_SSL_VERSION 254 -# define SSL_R_UNKNOWN_STATE 255 -# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 -# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 -# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 -# define SSL_R_UNSUPPORTED_PROTOCOL 258 -# define SSL_R_UNSUPPORTED_SSL_VERSION 259 -# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 -# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 -# define SSL_R_VERSION_TOO_HIGH 166 -# define SSL_R_VERSION_TOO_LOW 396 -# define SSL_R_WRONG_CERTIFICATE_TYPE 383 -# define SSL_R_WRONG_CIPHER_RETURNED 261 -# define SSL_R_WRONG_CURVE 378 -# define SSL_R_WRONG_SIGNATURE_LENGTH 264 -# define SSL_R_WRONG_SIGNATURE_SIZE 265 -# define SSL_R_WRONG_SIGNATURE_TYPE 370 -# define SSL_R_WRONG_SSL_VERSION 266 -# define SSL_R_WRONG_VERSION_NUMBER 267 -# define SSL_R_X509_LIB 268 -# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/ssl2.h b/Android/app/libs/armeabi-v7a/include/openssl/ssl2.h deleted file mode 100644 index 5321bd27..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/ssl3.h b/Android/app/libs/armeabi-v7a/include/openssl/ssl3.h deleted file mode 100644 index 4ca434e7..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/ssl3.h +++ /dev/null @@ -1,310 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_SSL3_H -# define HEADER_SSL3_H - -# 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 - -# 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) - -/* - * 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_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 type for SSL/TLS header info */ -# define SSL3_RT_HEADER 0x100 - -# 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 either for SSLv3 and TLSv1. - */ -# define SSL3_CT_NUMBER 9 - -# 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 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_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_STATUS 22 -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_MT_NEXT_PROTO 67 -# endif -# 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 0x01 -# define SSL3_CC_WRITE 0x02 -# define SSL3_CC_CLIENT 0x10 -# define SSL3_CC_SERVER 0x20 -# 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/Android/app/libs/armeabi-v7a/include/openssl/stack.h b/Android/app/libs/armeabi-v7a/include/openssl/stack.h deleted file mode 100644 index 23ad3b89..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/stack.h +++ /dev/null @@ -1,78 +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_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); -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/Android/app/libs/armeabi-v7a/include/openssl/symhacks.h b/Android/app/libs/armeabi-v7a/include/openssl/symhacks.h deleted file mode 100644 index caf1f1a7..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/symhacks.h +++ /dev/null @@ -1,52 +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_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 - -/* - * These functions do not seem to exist! However, I'm paranoid... Original - * command in x509v3.h: These functions are being redefined in another - * directory, and clash when the linker is case-insensitive, so let's hide - * them a little, by giving them an extra 'o' at the beginning of the name... - */ -# undef X509v3_cleanup_extensions -# define X509v3_cleanup_extensions oX509v3_cleanup_extensions -# undef X509v3_add_extension -# define X509v3_add_extension oX509v3_add_extension -# undef X509v3_add_netscape_extensions -# define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions -# undef X509v3_add_standard_extensions -# define X509v3_add_standard_extensions oX509v3_add_standard_extensions - -/* This one clashes with CMS_data_create */ -# undef cms_Data_create -# define cms_Data_create priv_cms_Data_create - -# endif - -#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/Android/app/libs/armeabi-v7a/include/openssl/tls1.h b/Android/app/libs/armeabi-v7a/include/openssl/tls1.h deleted file mode 100644 index 3fe01fe8..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/tls1.h +++ /dev/null @@ -1,972 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * ECC cipher suite support in OpenSSL originally written by - * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. - * - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - -#ifndef HEADER_TLS1_H -# define HEADER_TLS1_H - -# 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 TLS_MAX_VERSION TLS1_2_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 -/* 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 */ -# define TLSEXT_TYPE_elliptic_curves 10 -# 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 - -/* 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 - -# 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); - -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,(char *)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, (void *)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, (void *)arg) - -# define SSL_set_tlsext_status_exts(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) - -# define SSL_get_tlsext_status_ids(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) - -# define SSL_set_tlsext_status_ids(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) - -# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0, (void *)arg) - -# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen, (void *)arg) - -# 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, (void *)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 (**)(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, (void *)arg) -# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) - -#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 - -/* - * 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" - -# 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 9 - -# 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\x63\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/Android/app/libs/armeabi-v7a/include/openssl/ts.h b/Android/app/libs/armeabi-v7a/include/openssl/ts.h deleted file mode 100644 index a5659825..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/ts.h +++ /dev/null @@ -1,643 +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_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 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); - -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); - -/* 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); - -/* -------------------------------------------------- */ -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_TS_strings(void); - -/* Error codes for the TS functions. */ - -/* Function codes. */ -# define TS_F_DEF_SERIAL_CB 110 -# define TS_F_DEF_TIME_CB 111 -# define TS_F_ESS_ADD_SIGNING_CERT 112 -# define TS_F_ESS_CERT_ID_NEW_INIT 113 -# define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 -# define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 -# define TS_F_PKCS7_TO_TS_TST_INFO 148 -# define TS_F_TS_ACCURACY_SET_MICROS 115 -# define TS_F_TS_ACCURACY_SET_MILLIS 116 -# define TS_F_TS_ACCURACY_SET_SECONDS 117 -# define TS_F_TS_CHECK_IMPRINTS 100 -# define TS_F_TS_CHECK_NONCES 101 -# define TS_F_TS_CHECK_POLICY 102 -# define TS_F_TS_CHECK_SIGNING_CERTS 103 -# define TS_F_TS_CHECK_STATUS_INFO 104 -# define TS_F_TS_COMPUTE_IMPRINT 145 -# define TS_F_TS_CONF_INVALID 151 -# define TS_F_TS_CONF_LOAD_CERT 153 -# define TS_F_TS_CONF_LOAD_CERTS 154 -# define TS_F_TS_CONF_LOAD_KEY 155 -# define TS_F_TS_CONF_LOOKUP_FAIL 152 -# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 -# define TS_F_TS_GET_STATUS_TEXT 105 -# define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 -# define TS_F_TS_REQ_SET_MSG_IMPRINT 119 -# define TS_F_TS_REQ_SET_NONCE 120 -# define TS_F_TS_REQ_SET_POLICY_ID 121 -# define TS_F_TS_RESP_CREATE_RESPONSE 122 -# define TS_F_TS_RESP_CREATE_TST_INFO 123 -# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 -# define TS_F_TS_RESP_CTX_ADD_MD 125 -# define TS_F_TS_RESP_CTX_ADD_POLICY 126 -# define TS_F_TS_RESP_CTX_NEW 127 -# define TS_F_TS_RESP_CTX_SET_ACCURACY 128 -# define TS_F_TS_RESP_CTX_SET_CERTS 129 -# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 -# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 -# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 -# define TS_F_TS_RESP_GET_POLICY 133 -# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 -# define TS_F_TS_RESP_SET_STATUS_INFO 135 -# define TS_F_TS_RESP_SET_TST_INFO 150 -# define TS_F_TS_RESP_SIGN 136 -# define TS_F_TS_RESP_VERIFY_SIGNATURE 106 -# define TS_F_TS_TST_INFO_SET_ACCURACY 137 -# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 -# define TS_F_TS_TST_INFO_SET_NONCE 139 -# define TS_F_TS_TST_INFO_SET_POLICY_ID 140 -# define TS_F_TS_TST_INFO_SET_SERIAL 141 -# define TS_F_TS_TST_INFO_SET_TIME 142 -# define TS_F_TS_TST_INFO_SET_TSA 143 -# define TS_F_TS_VERIFY 108 -# define TS_F_TS_VERIFY_CERT 109 -# define TS_F_TS_VERIFY_CTX_NEW 144 - -/* Reason codes. */ -# define TS_R_BAD_PKCS7_TYPE 132 -# define TS_R_BAD_TYPE 133 -# define TS_R_CANNOT_LOAD_CERT 137 -# define TS_R_CANNOT_LOAD_KEY 138 -# define TS_R_CERTIFICATE_VERIFY_ERROR 100 -# define TS_R_COULD_NOT_SET_ENGINE 127 -# define TS_R_COULD_NOT_SET_TIME 115 -# define TS_R_DETACHED_CONTENT 134 -# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 -# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 -# define TS_R_INVALID_NULL_POINTER 102 -# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 -# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 -# define TS_R_NONCE_MISMATCH 104 -# define TS_R_NONCE_NOT_RETURNED 105 -# define TS_R_NO_CONTENT 106 -# define TS_R_NO_TIME_STAMP_TOKEN 107 -# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 -# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 -# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 -# define TS_R_POLICY_MISMATCH 108 -# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 -# define TS_R_RESPONSE_SETUP_ERROR 121 -# define TS_R_SIGNATURE_FAILURE 109 -# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 -# define TS_R_TIME_SYSCALL_ERROR 122 -# define TS_R_TOKEN_NOT_PRESENT 130 -# define TS_R_TOKEN_PRESENT 131 -# define TS_R_TSA_NAME_MISMATCH 111 -# define TS_R_TSA_UNTRUSTED 112 -# define TS_R_TST_INFO_SETUP_ERROR 123 -# define TS_R_TS_DATASIGN 124 -# define TS_R_UNACCEPTABLE_POLICY 125 -# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 -# define TS_R_UNSUPPORTED_VERSION 113 -# define TS_R_VAR_BAD_VALUE 135 -# define TS_R_VAR_LOOKUP_FAILURE 136 -# define TS_R_WRONG_CONTENT_TYPE 114 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/txt_db.h b/Android/app/libs/armeabi-v7a/include/openssl/txt_db.h deleted file mode 100644 index 0e6c943e..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/txt_db.h +++ /dev/null @@ -1,57 +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_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/Android/app/libs/armeabi-v7a/include/openssl/ui.h b/Android/app/libs/armeabi-v7a/include/openssl/ui.h deleted file mode 100644 index 49e763de..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/ui.h +++ /dev/null @@ -1,378 +0,0 @@ -/* - * Copyright 2001-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_UI_H -# define HEADER_UI_H - -# include - -# ifndef OPENSSL_NO_UI - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# include - -#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); -/* 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); - -/* When all strings have been added, process the whole thing. */ -int UI_process(UI *ui); - -/* - * Give a user interface parametrised control commands. This can be used to - * 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); - -/* The method with all the built-in thingies */ -UI_METHOD *UI_OpenSSL(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_prompt_constructor(UI_METHOD *method, - char *(*prompt_constructor) (UI *ui, - const char - *object_desc, - const char - *object_name)); -int (*UI_method_get_opener(UI_METHOD *method)) (UI *); -int (*UI_method_get_writer(UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_flusher(UI_METHOD *method)) (UI *); -int (*UI_method_get_reader(UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_closer(UI_METHOD *method)) (UI *); -char *(*UI_method_get_prompt_constructor(UI_METHOD *method)) (UI *, - const char *, - const char *); - -/* - * 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); -/* - * 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); - -/* 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_UI_strings(void); - -/* Error codes for the UI functions. */ - -/* Function codes. */ -# define UI_F_CLOSE_CONSOLE 115 -# define UI_F_ECHO_CONSOLE 116 -# define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 -# define UI_F_GENERAL_ALLOCATE_PROMPT 109 -# define UI_F_NOECHO_CONSOLE 117 -# define UI_F_OPEN_CONSOLE 114 -# define UI_F_UI_CREATE_METHOD 112 -# define UI_F_UI_CTRL 111 -# define UI_F_UI_DUP_ERROR_STRING 101 -# define UI_F_UI_DUP_INFO_STRING 102 -# define UI_F_UI_DUP_INPUT_BOOLEAN 110 -# define UI_F_UI_DUP_INPUT_STRING 103 -# define UI_F_UI_DUP_VERIFY_STRING 106 -# define UI_F_UI_GET0_RESULT 107 -# define UI_F_UI_NEW_METHOD 104 -# define UI_F_UI_PROCESS 113 -# define UI_F_UI_SET_RESULT 105 - -/* Reason codes. */ -# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 -# define UI_R_INDEX_TOO_LARGE 102 -# define UI_R_INDEX_TOO_SMALL 103 -# define UI_R_NO_RESULT_BUFFER 105 -# define UI_R_PROCESSING_ERROR 107 -# define UI_R_RESULT_TOO_LARGE 100 -# define UI_R_RESULT_TOO_SMALL 101 -# define UI_R_SYSASSIGN_ERROR 109 -# define UI_R_SYSDASSGN_ERROR 110 -# define UI_R_SYSQIOW_ERROR 111 -# define UI_R_UNKNOWN_CONTROL_COMMAND 106 -# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/whrlpool.h b/Android/app/libs/armeabi-v7a/include/openssl/whrlpool.h deleted file mode 100644 index 20ea3503..00000000 --- a/Android/app/libs/armeabi-v7a/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/Android/app/libs/armeabi-v7a/include/openssl/x509.h b/Android/app/libs/armeabi-v7a/include/openssl/x509.h deleted file mode 100644 index ee98df8e..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/x509.h +++ /dev/null @@ -1,1123 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_X509_H -# define HEADER_X509_H - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# 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 were sent to me by Pat Richard - * and are used to manipulate Netscapes 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; - -#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); - -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); - -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_NAME(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); -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(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(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) - -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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_X509_strings(void); - -/* Error codes for the X509 functions. */ - -/* Function codes. */ -# define X509_F_ADD_CERT_DIR 100 -# define X509_F_BUILD_CHAIN 106 -# define X509_F_BY_FILE_CTRL 101 -# define X509_F_CHECK_NAME_CONSTRAINTS 149 -# define X509_F_CHECK_POLICY 145 -# define X509_F_DANE_I2D 107 -# define X509_F_DIR_CTRL 102 -# define X509_F_GET_CERT_BY_SUBJECT 103 -# define X509_F_NETSCAPE_SPKI_B64_DECODE 129 -# define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 -# define X509_F_X509AT_ADD1_ATTR 135 -# define X509_F_X509V3_ADD_EXT 104 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 -# define X509_F_X509_ATTRIBUTE_GET0_DATA 139 -# define X509_F_X509_ATTRIBUTE_SET1_DATA 138 -# define X509_F_X509_CHECK_PRIVATE_KEY 128 -# define X509_F_X509_CRL_DIFF 105 -# define X509_F_X509_CRL_PRINT_FP 147 -# define X509_F_X509_EXTENSION_CREATE_BY_NID 108 -# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 -# define X509_F_X509_GET_PUBKEY_PARAMETERS 110 -# define X509_F_X509_LOAD_CERT_CRL_FILE 132 -# define X509_F_X509_LOAD_CERT_FILE 111 -# define X509_F_X509_LOAD_CRL_FILE 112 -# define X509_F_X509_NAME_ADD_ENTRY 113 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 -# define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 -# define X509_F_X509_NAME_ONELINE 116 -# define X509_F_X509_NAME_PRINT 117 -# define X509_F_X509_OBJECT_NEW 150 -# define X509_F_X509_PRINT_EX_FP 118 -# define X509_F_X509_PUBKEY_DECODE 148 -# define X509_F_X509_PUBKEY_GET0 119 -# define X509_F_X509_PUBKEY_SET 120 -# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 -# define X509_F_X509_REQ_PRINT_EX 121 -# define X509_F_X509_REQ_PRINT_FP 122 -# define X509_F_X509_REQ_TO_X509 123 -# define X509_F_X509_STORE_ADD_CERT 124 -# define X509_F_X509_STORE_ADD_CRL 125 -# define X509_F_X509_STORE_CTX_GET1_ISSUER 146 -# define X509_F_X509_STORE_CTX_INIT 143 -# define X509_F_X509_STORE_CTX_NEW 142 -# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 -# define X509_F_X509_TO_X509_REQ 126 -# define X509_F_X509_TRUST_ADD 133 -# define X509_F_X509_TRUST_SET 141 -# define X509_F_X509_VERIFY_CERT 127 - -/* Reason codes. */ -# define X509_R_AKID_MISMATCH 110 -# define X509_R_BAD_SELECTOR 133 -# define X509_R_BAD_X509_FILETYPE 100 -# define X509_R_BASE64_DECODE_ERROR 118 -# define X509_R_CANT_CHECK_DH_KEY 114 -# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 -# define X509_R_CRL_ALREADY_DELTA 127 -# define X509_R_CRL_VERIFY_FAILURE 131 -# define X509_R_IDP_MISMATCH 128 -# define X509_R_INVALID_DIRECTORY 113 -# define X509_R_INVALID_FIELD_NAME 119 -# define X509_R_INVALID_TRUST 123 -# define X509_R_ISSUER_MISMATCH 129 -# define X509_R_KEY_TYPE_MISMATCH 115 -# define X509_R_KEY_VALUES_MISMATCH 116 -# define X509_R_LOADING_CERT_DIR 103 -# define X509_R_LOADING_DEFAULTS 104 -# define X509_R_METHOD_NOT_SUPPORTED 124 -# define X509_R_NAME_TOO_LONG 134 -# define X509_R_NEWER_CRL_NOT_NEWER 132 -# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 -# define X509_R_NO_CRL_NUMBER 130 -# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 -# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 -# define X509_R_SHOULD_RETRY 106 -# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 -# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 -# define X509_R_UNKNOWN_KEY_TYPE 117 -# define X509_R_UNKNOWN_NID 109 -# define X509_R_UNKNOWN_PURPOSE_ID 121 -# define X509_R_UNKNOWN_TRUST_ID 120 -# define X509_R_UNSUPPORTED_ALGORITHM 111 -# define X509_R_WRONG_LOOKUP_TYPE 112 -# define X509_R_WRONG_TYPE 122 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/include/openssl/x509_vfy.h b/Android/app/libs/armeabi-v7a/include/openssl/x509_vfy.h deleted file mode 100644 index 1aa0a33b..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/x509_vfy.h +++ /dev/null @@ -1,544 +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_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 - -/* 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); -X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a); -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_cert X509_STORE_CTX_get1_certs -# 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); - -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_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); -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/Android/app/libs/armeabi-v7a/include/openssl/x509v3.h b/Android/app/libs/armeabi-v7a/include/openssl/x509v3.h deleted file mode 100644 index c93b112f..00000000 --- a/Android/app/libs/armeabi-v7a/include/openssl/x509v3.h +++ /dev/null @@ -1,1008 +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_X509V3_H -# define HEADER_X509V3_H - -# 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 -/* Self signed */ -# define EXFLAG_SS 0x2000 - -# 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(GENERAL_NAME *a, int *ptype); -int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, - ASN1_OBJECT *oid, ASN1_TYPE *value); -int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen, - 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); - -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 */ - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_X509V3_strings(void); - -/* Error codes for the X509V3 functions. */ - -/* Function codes. */ -# define X509V3_F_A2I_GENERAL_NAME 164 -# define X509V3_F_ADDR_VALIDATE_PATH_INTERNAL 166 -# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 -# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 -# define X509V3_F_BIGNUM_TO_STRING 167 -# define X509V3_F_COPY_EMAIL 122 -# define X509V3_F_COPY_ISSUER 123 -# define X509V3_F_DO_DIRNAME 144 -# define X509V3_F_DO_EXT_I2D 135 -# define X509V3_F_DO_EXT_NCONF 151 -# define X509V3_F_GNAMES_FROM_SECTNAME 156 -# define X509V3_F_I2S_ASN1_ENUMERATED 121 -# define X509V3_F_I2S_ASN1_IA5STRING 149 -# define X509V3_F_I2S_ASN1_INTEGER 120 -# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 -# define X509V3_F_NOTICE_SECTION 132 -# define X509V3_F_NREF_NOS 133 -# define X509V3_F_POLICY_SECTION 131 -# define X509V3_F_PROCESS_PCI_VALUE 150 -# define X509V3_F_R2I_CERTPOL 130 -# define X509V3_F_R2I_PCI 155 -# define X509V3_F_S2I_ASN1_IA5STRING 100 -# define X509V3_F_S2I_ASN1_INTEGER 108 -# define X509V3_F_S2I_ASN1_OCTET_STRING 112 -# define X509V3_F_S2I_SKEY_ID 115 -# define X509V3_F_SET_DIST_POINT_NAME 158 -# define X509V3_F_SXNET_ADD_ID_ASC 125 -# define X509V3_F_SXNET_ADD_ID_INTEGER 126 -# define X509V3_F_SXNET_ADD_ID_ULONG 127 -# define X509V3_F_SXNET_GET_ID_ASC 128 -# define X509V3_F_SXNET_GET_ID_ULONG 129 -# define X509V3_F_V2I_ASIDENTIFIERS 163 -# define X509V3_F_V2I_ASN1_BIT_STRING 101 -# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 -# define X509V3_F_V2I_AUTHORITY_KEYID 119 -# define X509V3_F_V2I_BASIC_CONSTRAINTS 102 -# define X509V3_F_V2I_CRLD 134 -# define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 -# define X509V3_F_V2I_GENERAL_NAMES 118 -# define X509V3_F_V2I_GENERAL_NAME_EX 117 -# define X509V3_F_V2I_IDP 157 -# define X509V3_F_V2I_IPADDRBLOCKS 159 -# define X509V3_F_V2I_ISSUER_ALT 153 -# define X509V3_F_V2I_NAME_CONSTRAINTS 147 -# define X509V3_F_V2I_POLICY_CONSTRAINTS 146 -# define X509V3_F_V2I_POLICY_MAPPINGS 145 -# define X509V3_F_V2I_SUBJECT_ALT 154 -# define X509V3_F_V2I_TLS_FEATURE 165 -# define X509V3_F_V3_GENERIC_EXTENSION 116 -# define X509V3_F_X509V3_ADD1_I2D 140 -# define X509V3_F_X509V3_ADD_VALUE 105 -# define X509V3_F_X509V3_EXT_ADD 104 -# define X509V3_F_X509V3_EXT_ADD_ALIAS 106 -# define X509V3_F_X509V3_EXT_I2D 136 -# define X509V3_F_X509V3_EXT_NCONF 152 -# define X509V3_F_X509V3_GET_SECTION 142 -# define X509V3_F_X509V3_GET_STRING 143 -# define X509V3_F_X509V3_GET_VALUE_BOOL 110 -# define X509V3_F_X509V3_PARSE_LIST 109 -# define X509V3_F_X509_PURPOSE_ADD 137 -# define X509V3_F_X509_PURPOSE_SET 141 - -/* Reason codes. */ -# define X509V3_R_BAD_IP_ADDRESS 118 -# define X509V3_R_BAD_OBJECT 119 -# define X509V3_R_BN_DEC2BN_ERROR 100 -# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 -# define X509V3_R_DIRNAME_ERROR 149 -# define X509V3_R_DISTPOINT_ALREADY_SET 160 -# define X509V3_R_DUPLICATE_ZONE_ID 133 -# define X509V3_R_ERROR_CONVERTING_ZONE 131 -# define X509V3_R_ERROR_CREATING_EXTENSION 144 -# define X509V3_R_ERROR_IN_EXTENSION 128 -# define X509V3_R_EXPECTED_A_SECTION_NAME 137 -# define X509V3_R_EXTENSION_EXISTS 145 -# define X509V3_R_EXTENSION_NAME_ERROR 115 -# define X509V3_R_EXTENSION_NOT_FOUND 102 -# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 -# define X509V3_R_EXTENSION_VALUE_ERROR 116 -# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 -# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 -# define X509V3_R_INVALID_ASNUMBER 162 -# define X509V3_R_INVALID_ASRANGE 163 -# define X509V3_R_INVALID_BOOLEAN_STRING 104 -# define X509V3_R_INVALID_EXTENSION_STRING 105 -# define X509V3_R_INVALID_INHERITANCE 165 -# define X509V3_R_INVALID_IPADDRESS 166 -# define X509V3_R_INVALID_MULTIPLE_RDNS 161 -# define X509V3_R_INVALID_NAME 106 -# define X509V3_R_INVALID_NULL_ARGUMENT 107 -# define X509V3_R_INVALID_NULL_NAME 108 -# define X509V3_R_INVALID_NULL_VALUE 109 -# define X509V3_R_INVALID_NUMBER 140 -# define X509V3_R_INVALID_NUMBERS 141 -# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 -# define X509V3_R_INVALID_OPTION 138 -# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 -# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 -# define X509V3_R_INVALID_PURPOSE 146 -# define X509V3_R_INVALID_SAFI 164 -# define X509V3_R_INVALID_SECTION 135 -# define X509V3_R_INVALID_SYNTAX 143 -# define X509V3_R_ISSUER_DECODE_ERROR 126 -# define X509V3_R_MISSING_VALUE 124 -# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 -# define X509V3_R_NO_CONFIG_DATABASE 136 -# define X509V3_R_NO_ISSUER_CERTIFICATE 121 -# define X509V3_R_NO_ISSUER_DETAILS 127 -# define X509V3_R_NO_POLICY_IDENTIFIER 139 -# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 -# define X509V3_R_NO_PUBLIC_KEY 114 -# define X509V3_R_NO_SUBJECT_DETAILS 125 -# define X509V3_R_OPERATION_NOT_DEFINED 148 -# define X509V3_R_OTHERNAME_ERROR 147 -# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 -# define X509V3_R_POLICY_PATH_LENGTH 156 -# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 -# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 -# define X509V3_R_SECTION_NOT_FOUND 150 -# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 -# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 -# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 -# define X509V3_R_UNKNOWN_EXTENSION 129 -# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 -# define X509V3_R_UNKNOWN_OPTION 120 -# define X509V3_R_UNSUPPORTED_OPTION 117 -# define X509V3_R_UNSUPPORTED_TYPE 167 -# define X509V3_R_USER_TOO_LONG 132 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi-v7a/libcrypto.a b/Android/app/libs/armeabi-v7a/libcrypto.a deleted file mode 100644 index 29eeb767b2393aa4f07fb9bed45e43714305f582..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3166134 zcmeFa3vi^@bsl&%qDJC~Z;1~LAEAaKMN!lc0B1NPoyf+chlDr-KmcY$GPUe98jV47 z05sGM%!BL5Hk0MX+E{VqTG>%0a!IyXG3}^qB~h|U71yS1IZ?pAub7Lmf zmbHnpW_juTzH{#5-24BH8A?O?$>JUK`OdlLp8I~^|DAun)o-u9f6rYv=l_i!JUB9X z-+=>%?!Niv5nrxPP?bb_Ms(=H0Fu_r}XV<%YVOH{2UvjT`y0dt;ru z_hasj!`$>W?u~RG{HVIeUU6@{5N@#Fz3~$_CHHd(<3hWCxzD{Zxc_^?y|Kn!H1+{^ z(Rb{37d^P5ZuTj6QR$ZUxQo`WQg`YFchN_l$ldop?=G_Le?9CjqWjTLx{H1S{(kC? zo!#f3a~GBFfB(3-L^< zyXkIyO5J-u;dbxj{=(B+a26Lh8@p>{#Rdn?cLY+xZT6t@89Nj8~5h@ueev`CXc%} zmu~Sk_vY38?#*XD=HC2QceywJ^(Wk$fA}W%=BGdZ$JhM=;&CC}^Uu0B)BXP5bGo-& z{VA8Z?|8p^OK^)Hb#Jk*b=bWnxWPBwTfXpn9QPA@+@AAwKl_r~ zvy=OUd)ywnFMaCV?suMWd(P9n^~Pu2P&faKd+Sc_@ejDS*17NfqZ?*1+ zpL1^w?lVj7t^eRW-9Lq%(!Fqpduwq2e!qL`Z{1e!es_<1YvC@r@vH8VeNQHL`+j%H zog40wk;jueIPWgG@1yRL@7(7unfzRGk6h+1d2H$2?r-jPm;7zWe)@TL$!90d?SAeH z?vmHiz5ES#$pv(mzU3(w-Ib5KORd}YlDqUmxuegxOV^H{zxyknbeFyw_k&+|m!7YC zX2V_jdb@wQ;w}yDx98oZuaUcK-z)BdxJNeJWps}{@{3m7fd?#y%U^6z`uUH-p3sqTmFahLzdOYZVdd-pTn zbeDe~@%x3(4Ru$%@&7Ej zEB?RRYTcEWyyz~dyWt6U<%M?d{*t?r?z^6LS03J<+{{hx%B@$vb@$gk=dS#LFS{#$ z*tmak*j@Sah{J_+zcS&je7)R%_>8+UxR;-HS6%Yu++BT>yNd3*FSx7z++*%4tSw*l z{@vf2YeNs*+m3uHxup&Fw%|@*OS${0zI!{} z&wj+c{mak)(Q>am;og3M+|^e+=l;~W2llwDOZWJf+|{K!{g}J@hd!FSzw-%q^^d)% z?q_duSC{VBzUi(m-Pba819aj-L*TpiBGy~ zAKP_q*ZqLIcJ0~W?k_*#u03D(1D|u(?&N-W$z40l{pe@iwL7_=e9T=t%>69F9p=7( zG&q<0#i!l1!`%OY{2k{0^`q|EKO}eE4cEBqZu>xT@B5;=Zss%U+PmF#n-lK3zxIr~ z?jJtxu6y<)7smZ^-(B}=+`ol=e+1n-?*5t+cj%Mu9dzGuJa^OgyLVh@cXF?LhjnN7 zyLZri{3G@5>5sX0yju6q9(C`q?pHzoyQj|2{pO4A9d+*aU?bfhe97&-;;G!-_(iw( zwwqp^JM^U6`<-8TZC(3OxA(i}tM2;`yS;zrGz~ueoZDOH{=s8z@Aez zzu4#Y{@W$D_ur4Xz5j8)+xybqs{6gG++O3ZfAeSD_1L34r@QX3yPocr=W}=OSKamR zA9L4FKJ`b_wO}t@_i1&T_q*%Q>~`0G&!=9!`vm-)%YEhB1=W@UIguCIDUGBy= z^v}=TcbU79Zu%2DyZ(f`F}Nqc>29R^!H@6ke(J04#`ASA9(OmMhr4O_%kHMjzLC4@ zpLI9g{;0bB&$*lE?ta4EbZEc3={xqFznh+LHw8EUqPuA)_xKC$rVHS1-t|>?^TkW* zuDH$JY~9Vr-OYdI&MysSKI(4%c3taPck}wjA20X)A9pvuTKDM>xSQ+T&mjJ#d;S@B z^Q&?H;VbUu;9j10HxF^|yzE8yr_xQ_=H5B?Y;q@Va_{_B+>fugcmCv;FO2*7z3!do za$kPNy)(Ffhd5aGAMbJRwC+E{wjJEQ_dMrzboce$zSqLdyx;9RmplFuw~y|zXR2-! zSa9F{8Mp6A#3Q&L`heT_^f&9>&pqn)J^!NH_pcsP_iLYU`@S9b+q>Mpo!mE9+%3C4 z>u%Zo%%5C0GUINkbASGEcgwfpzV}6U%Y}5GxyIdM9o8Ig8Rq^qWPj_Ex%-2w+%0hL zdiM+NUGMw&x!rxwyLUbKN^*;zckc?Wb%%Rb=L_y#YjFK}_pZ}VyLWxhUUh%8LxTdn&?Uw5~DZLhlj^ci=nbuYiv+wS> zQ0{kN^Le`Wy05tR-q`=v-JKtG@BP!{e)5!i?;i#C&+m8deJ$L-S#j^ZQ0~7x>fRgN z@9uK%weI(xcJKXzkNuhZHqzkEyT0s(y8E7UcfKC(f7s*hJeNE10e9!O>OOkP-Fczh zr@!IuJYV>fI}d8{GS@ z`NAKrdveLW?{9vx>i*VO-1~NNzqI1s_d2`%yT9RT-P_09e(SI{u>V52##3(p>*Y>A z=k~vr?q}Zb_S5}upB(PK_*u9A^>V+Cd<*VH*!61N%S&#*cXzpc?!4S}UvYPx%N_cn zyX*Kp=jU2`++EhKf6m=i=gu5=ca`p```umE{m4`9uGiZA(wE#_!Tp~vxVyex_gi0c zcLn!fce%S>V>fc>v3n~}3FH!k&Q=g;p6r|zMZ}gn zqBvqUAkP!oPJ1c%7rJ|*lhI4vW(oB+x4ONJfr$62HlOadHe;~c8;M+)8EsBXFE$qz z=ci{LXu?X@9cwqobKJGZx)rRDq2K0G7s;0UZJro{w^uvulPbLo^-JAeB33r_cXz9^ z-psfW2_nl#ih&PRnFd(i&J=-a4K_w$(nhD>TI)X1S>EcdcbZ$h=GMA~_&{T(F+YA} z`q9SJ;`Gr*(^y%u7~#QIzq@gw-fL_5@p=YRSyHLgxCv!jt|>OI_cm0hJGPt>heU|E z#5U(Lxva?a%wpq##(XoTLjc`S_?`o5Xn>h6H87>O zYjBDW!E?P(;3j66S=NeN2F!^Wg&H%*jv^};8&gsQO~{5**qU?d^jHg$bVX9_V71Yx zF+n834Jol$U(zDf+-UbU(NwVVL`)#&r@*rlA81T2x>iAV$F?$lcdV7s#&2_@b6SH? zUCot#r<1bX2M}}J(^f&d-)U`iypGAmMr=7^37fSjiWD}@d~oEx=FB*%wD@gy z&bTTR>y{0Mq7qU8mcp>~*y7=PwTU@}=4H9L+6zsS_sjCO+*xUDuWdEgTLa(zc_wSf zP-f{9twcLBOB0fn#2QO)OJ|!i(^DC&!mZ`y8nnIEX>FjXjOBn0p~^{YNcm{GlF(;rI$nnVoD}R(p4J5+!`rdImFVJBM7yLir5+yI8%OedugrPu4DAO zr`X8ls>DmH-&(K1Yiyx-d#k@zBR%M}xBK0#vm7ne8OEG(jrsZJTCe4sel6`7-m!bo zim}ycp1QjL(1&dJN&p{YsezH|#kB5jKsyGLzTQKA06RGntKqUB^p+m)w0+eTs~A0|3uaZOUVyUfovb zjL%ork{)`i_1^OKnzx47V5_yX*2!RLHQ4Z}`9f+-=q9FTn=8_S$WP5I*0X+RrF$k} zELA1O+A`Q)smK`&1)w=I)i^BO(wtV&hcLO4UTS-*S3q-8yD1>)EKN2;>9w~yTUv$; zM@o7vhkh`2+reMSjpMH{W^RR1bO54+89+uMgGD(lSs3~G;kc(+3{13zjL~Mg%rq7k zCdbj=HD)H~ADQD&n9aPDpJBWqxKzktJgIeAfYo3Gi3+5*VV%yAs-nrpJjR%f4<17l z8c8~Xn|?$Rb!FUPp0dz0AKE-HK64X|x$*h&qb~diK?OQ7s4k$YVD6#Gg@et_r4HMS z5%fbRdVQCHT9zjoV=)l@WkRX2d^lb(CfMA>LsN&NaQvM#MF>{L-;%4A7Jb3Slgle( z(%uE2BV@CCDn&yD7NmGJB^nE&G)FSEUdupNSycBa=!uIX-Bak|G;NTC_ck$2INs#& zWP0ZCtOQ+PF_z~kE@@bmP1$yDa}x_Ul5ajdq1m*TbhEX!)gM?CP3Nef*}&VZvTU@l z=Ac70X`C!;dp!;84bEmL4)~Y0SFHD?4Nt}LzcBaEw3T3&6PISB&F-9OqI{c1Jg2}$ zYhu_Nn3og~1*DNjOxC+w-BTS+KfyGR)JF@5an0r$Mph~(Q5QKW9f?HXRfJiVL?Sge zx%hAzD+rbR3dyE@Wvz9>51s^LYL*z~Hr6XJMQdP6w>$l+8p_u)=!2bX87@84;gm-| zRV!cMl8B}}Eo6xzR7w;fshqwvNh1_8sDO>hB1)56o14uvrimIN%+^!#%dQ8gUW^PiO#}Eu!fQ76c2;t@rX-0HlPB`LMwP0WC5mdOGX~};yt4_ z*hpppMpT1}WC|ofx%%nxgI0YcGxZTw^^r{K6O^m>tHCyi49bGZI2u$2rQmWn57Mt2 zsQ<8tVApqQ1!74HK60f#z_5g#85h91xCCCkhZty~z9{3zrx&KNplA~@gR+1#js}}S zDG_rxk8iPJ=@YY9#>^5m=hb_N@h#LB@trt2XX6^lES?e7pdy*#m!LduGslh`QBVAp zDJ@vhUJ=Z-aQ3BI#%CVMlq8PK(4rEdawW0qtENb1`XX8iMa@wnCFIof!rYPZM;03o zFFNx(C^k^Wrb@%J`sT4vKRf@3&zY&|j81wp7`ifAGN;7yBnk7PCX!VnY>^O-wDp#u zb7n3jEnorP_!Xk?W(2Z+mveE7iuS`3v$IDU<1-OhEP;}a_5>AvM*^gb6=i_6+UvGC zds@R16y{FCkO5X5W4VU~Gb~Jq6c%eSZ4b&wNyUJw?DajskXO2$wdLj} zR%yfsRJWFwB-v!oVEo7fv-7%rAU{Kr)iYU65+@atge@5ULRFb%%T`|UsZ$g~!}<}U zjr`{NvPHPmH90Z;0Jg^%RQe@aIK`5ZmnccON4W)f&jI>)H2orY_gDb+R}zeJNi4}9 znZ!PdsBO6; zgbxdKvbnX&rA_ZsRnezP_+WD(34OcY?_eb^i4r~CfZ+pXHW?7x$ zx)8{zA*m0I<0M3yJ7thbuPDa4CE>4x$V3)Rt4CXFYv5FZlo+nIHcoI=yUJ#&U@piR zH`6r48f(PT9&)#4;3f_?+bc_`q~Tx*fN(GbKkcy+lKz+reul#*_-PNofW%pnTpxqu znHH}0j!#X^OIr~MNu@}M(MfW>b+VJFe(Q7&thCmPf4ew2R{Ptn@y~!XGjqz zk)n07X^=^7_Iq2fZ7ug7VxrqBnTNp2J(MXXA;w(MEe6Jo(GZ_&z1~Ue^>WWZe`+Vn zptu!*PIQ@-uDvAE0@>dl#%ywmSvM8L37 za~Pwgv&=6+m^9k^d%o<$H@j*pYnl`y**u|WXmWT)gFfgVLS5_?XnxR3tKIHwVo64L zBBqG?fWTIJvx&r7YiSwwN;VKmR0^Z8+nIuppD2(U++riV)*WnN>61TwcsP4Ns=d}5 zbWGSQO)LVgbTkE4;BTXo0Svae#e-4wz0%y+Uel;7L+%9H`?a+t?&8GukYb@V8au)3LTnx5Y4IGfnhhPgL6{DAXTX zV}vOiz?A16Q6w;|OhmLHviYOAi7i?lETd-uPFrMid$6jZ_fnbeceeUxahPvbIES_ZeC76Lp3O7$|;~d4tmTy=h zlPQZbfs;1A*%FS9a4NhFA|q-Cf9fyM@6nW-le053n2^U35$ISbFaS1pyd4O}1i#r=c%88yfL!XyC}&9ithG}Zxur+OA8L#(HK#e(p76x6 zP1Jmt?#aX5jTTxCp$1lR(99$UO_k)io24}j7RQzjj*iIz8YKr~2k+te%WaHuE}Iu)@1dv(b|EHY|WHui)qZ*-l#yV zrM`1Df()pN>S0h+bEz6eeA^cQ1EE6IMcKnNlOgw4+G7WBP7^~vY>^(i=iYk8=*XBP zu=jHJ!LfV1m(hcFOA)DZ#zqcUZN|^tBZtOJIEDjLhG@HI^uQ1c?j5~Pw1s&jV#c3x z=u3|^c_b7H;c`Ar8%XeUmj8)psAW8_j*U}E7b2LmSAL@f8le9~&>U0am>OwBDId&Cz>CGVc+z-Xn;XZKjEOX-1|qX<#~oDkBm& zs>GjYFWVW7Q}d`2Jk`eIk<=9=$th{6;s!K7G2_B!wbd{NRjT4dd)aYB$F>D_NVUZ& zE+3d7A2>XQ?R;&Wx_mq5u#Py?2vwz^nk2^|QrMBsp9 zZw2FQE}&8wtZJQYb|kG%_IsGio#ea>r54_#ZN$h=o3}*ac=&dw31PBWRe2Uv0-;Ks zK!KqRc;0plPPe4U`_&cIO!KH}o2$F{>;IscfMQxA(Z+l}#sd7m1?hAb!~fV_VZU&4A|#~}q3LC~QI5qx3FH9Ea%*E*8gdGS zSO$-NhAMMoRAmW)a=kT)XapD;C8(WqPv}0a%E^<{ocPOAs`x_{Jf{Ppb`PtaZ7tZ~ zAfd+al^6Vy6!gE<4Eg|rr+uXuk=WQkr4f`ZjwYKlJ{TB%c)N?4KYf7bhfw}!&hrg` z@IEX>nm^YDtKF5Y(V)PSxlaY_u;7g?T%Kzy{oZ;39i5%g1=&y`BH(LAq(jC;07=Q9 zA{|mX0!(X;embFOu5Wh5xXmt87g@kDps681I7G}5Mq{JbU&jC!d{W4@?f!rT*#oQH z6RY93cuo?`12nQ;aIJT`&_yJZ-oW~hWSbvkM0!jIM2Xgsa-{FR_W&ao>4RgEfhd(D z3hIcCG5j0VIO2PL3R&dlhzNegU~|MZ8aqfW_)uKag3RfURW+&lEcX= zyu9jXPPHuLJ;#%^{upLFP_N2#RF1|9E0tv97Z%9*3xKbA0Q@hU%JaYATgM0TgSUg= zC9c2EG%@FuvbH(sY-2|;kV}{eBUb~-za&mbOK4;h80}piv^Y=0y%dCm&Eq*4KZeQ@ z0bf}n9V$x%d}TpV>mp&171YNb7l_1y_1+h5BVk&CergmHr3M9=>>T5yYCniI<`@+u@?cJm-Y0awheatFdQ(^^8KOr@hVqe;A%CP~Y7i-zLL|yhHE3Jt z1(-77cbF*B{xE}-xS%NrG7sN(_b66maAw_);C-1EJZ9#@n;)jf9E>G0Ez}-6oW{fW zeH7>ZC4^1BRj~iJQO&78gy4A1MVYkJiFnb4Xb44KR zmPG(9fZP&~KymGQa(rR2*p3q@3yv~TGl{5Ge4ESY;y2%o6DS%=4+~AXv2l+RmZuJ8 z)S-+zkWqJM)L2H1X4HtATy5e1u@NpC-aY2p>#erl9^-1Gl5%8P$jPJFL=O|nf7`#Ny#L8ve6qX5tU_&cS4o=Da^&D$p@no&HnS(I4yV)%QnrjUPYcaD$2(`oPhc=x z%be|ZPhbTP2V~-%nqYsFj}dtYr{+^ys(HYsxrx}tshWP^&Tb)>!HH=b7{C_M{SBgS zn~Y55G7(Op!{Xxyl$+FpLEZw9?pyzpSapLL@X%3F%waU=rw4=WPJeu3c>y`xTAR@w z3D4vOV(iPKeCoM=y&cI?RdW1Q+aWBRagt(I__7!_5IdOL@=}3?(Y5HEf?ALl4GP`S zL%4)sOv-p$*zYksse|0Ou{yUm3X3s4;r&qhtMW`5)G~vm6=trlOo=ES&Clf{Tx)s8 zE}~k5vO0*)9@(8ix@}m6#j`a3+KewC zhPDCo$yN1u5)Cb@ncSAD3or>ti9~a{c-wDK#QDeCqsmPQnIU)CgWt zHbyvH)y7Om1r?1a#g|xKYmtO_k^_p0*VyG(I30gNNAuGrU{xSnW0PS|%{C2*#h=izK(K zqz$ALuMbWvbWdo-lmrme>uF+m%ggUfOe8D@0Kq5;63M|^v>`QEXL+`e*6=rP*UBCw z_cZ|~AP~B>Y1xX9A2#v$+h}DTRIlzrC@}2JUHUcmf=N;mu``2!lPyz!cI5XvCu{3h zRM11WKcse1#rF&iz${4jK^85WDx!h*VB5F#PPI#y(%+B%|?!s~xav1Ewsto=Y(i7@_^ zsyEW?_>dO)#0ot~KT$!kz_Q%gYT+#aZBZeW049)hB$bYCoVQxB-imjJY#*bQFfq~B zp+%K3y|hgu&FWB0jFZ+@S}U3=t(c`okcZU)pYiFtFZG!EvQfE|rzKt*BwVJ~MgxyS z=!HGD_lzf6X}12{pAC?t7+;YfUkDMZsbFBDXYph3WL7`a(!{HlxlJ?}O+Tqb+|iW9 zu`YMlW7xvzry;d)N>HobfI6g;r0&f(lm%wH%JsM5am^982@6SfnDw^bL^|B^FQ*f@r!W38j+& zHb8m25sga7CPjRpa)>$_T0=#Hga>MNt}(N)a0Krk;DQ2ECKg1Xwpfzu4*(V<+9oi!@b#!A#Ag@_eNe0DVe zTNea57NEeHea-|_6%U#&0Dsgy_W1!%BW_D(7dJ^p{wg9k%w(M~4pXCt; z+^~1M)Eac~7UbmOk=X|-Xfk#&wWJ~`#Zx^k;L>D6ht0xLx*}kb(ufHfvO&{7SmJF$ zMq#&;w*)jep>c##ra2-jh&~La6MdsUN@INsQ<@&;&5V8;LU;sIgI>Y$Nc3}LdSNk& z3Bf4_wRz5RA^^_K9+{qeq}kxTt=REYVV_PFag+cZ{vz7-Oq2mEehy*dXew9E5i;{t zvSgT~oVltAM3PR2dQ}UAIoyJn?0QABUb{SoC#4Z>NEagt^ob~D7}{aHuFW%3S9fSb zIvY}wjyN0F$d4%NJjO=@_O#@ZX1T!_4oB{#oA>aD;3yuR9xZ4w6o#Qv1x2v{VIw~J z!?f)ThKLMt5F|%yFdby;5Hcq2f>{f5*%vk*Y{w3!}5qNjBm;9 zEO($XyQyd4xWg!#Dq`@MNqEhp64b)n7B^$$w`Yu5;%*`Qz+QJW8$v zPu*+-a2}24f$)~2SfTGILe_#P-lsdQlcFN{qX;G?e0C9?s6}fq#|9WTsG5|EL5MHv z836J+q@m;c$TU~9Mq~_-=HeL}Z;gFM*nR&_~g81C3Au1E;bieh*?K8IDC$71|T5 zHNv@-h?t!KSao{K-NQh9FES z%mzhk9ZK0GBh3+HIhsl+yCZ=9Zk!Jw+=}v=4aq~KVg?`K6lwd?sLEq`>cc0L$)zg& z%~sVvdFca5lr-i(0buh;Oboq}EVuOF$z0O&Ds)gCLdAocxTMH{89nJ}!|xDxVQAS? zAqiRrY(W$TjOq|BAT&LOBpR5oIU;)E(^SEyM5cmLUo0&?+EHySgFcFa5^iX~|>LAWMLhaH#%?2sK;>P(0{{ zaH&6>;t#amKETmL&kwf|91pI==42qdE>jERO+3kQpa*{ID*;DjjngVx%}fN5J9l?_!Ll&A^q3}|f*@k0u^ zw55TFkr$Se$L9)atZ;EBqT4I!oEs|AQ0V!$QDJxuuQ(oIEE14sd3GJ1YDly7sl_bWe zic%KEC{(8?X)q>Q*$yDq#IZRZbn6VF8ZWuo!`O8U&q0(7K)AldCAtu>^?_TtxW(FR;azKtd>lZK^t%#vDc zCTKrqQ?<% z`CPNMe7Kenr)M7Gy!UJx06J=!pFO7gWLQRqb+V|I;T$jZ)^RqI3(Z~3^sFZ|i`W{q zY|QEI8EazWWO00E_UJU0PB{RmqS9b0JozBr`o@Q9=COE$W$wif`Ipc{Qw>wRB6@rw zya8|e@^uDaPMp!=g=0*h4<(NjG9(YBa@d-qr4ZwjOK9t_>gCmJeElfA_m1Sk(}%}B zl2MW}IpU*cvIRFmVm2b!oO7~{$8n`>4AgtIZ0kR!P6{rjMS{FkKFmjIRDgD`c5?y9m2vIEWYX@lL;R{ zS~APMBs^MzS%@^;!BX}l8Nlph8^&RY4TFL;u!>hK66tfGe$;(Tr7AFU!Z+ERc3JUSobp*!O|htfDIJEXe1U~K zim^FJKF=W{rKN-AZfhO(9!p3Nt|TYH6uqq1k@CTr0>+P~GqTd`jBFl-zN^HSJ2In) zvNiJr@aAUm_H5|Fln9kflOa&b^Gz71DoJtrc2rat`Z(2*Q@+nrg&C0*Tjew6cGeO@ zAmanLmdo#O@dl}xr-rms4NTJW7OYMvs>*6*H1#z^P8Fh^oFqgdO%GJEnBOHiGY^R% zV_X}y6qJ-)wKCQ|&WWJa=ZzBT-A;`{xcPM5pqMHKN){iY%9;*R!y2~yU_De@9L76q zpE!sj7?xNOFd=4ifH0=cW3(yEPzb;y7*H17sm8;S*^Ogyd@Whl-=)GMJuXyp00 z4a!-JydNd{K;?xDO%H3Nfh+M6Ud2v>(oP?upm~VC*oxX67DP8g`PLeRsuO#*ueTxMILry%V4C4 z{<%8fTvyR0=1k2?Q@VVrRPs1W$eNK)u2$2|m%@C3G^P=`I}Ic1G&1JZ-ndAfxQZBq z^7$24Nh3q;w530bXQljSWro~y8WWdGW0-N>Ga`NvlSjC+avH_$m?HNh(WwkCSpB`> zu{xfS%@EUzb=n?^+vTn?^T6~>1KTHf;4Q2N>8>Xhgp`N4pmT~xv7NHjiyUD>^K=T8 z3+qMdLAHRxZ(Qy{EIViLl99Y8VTEuf3S++HiF7z(X+v4&bKF>nkubuyY`wp@tfXp~ zUw)PyG#e-=_kR1G6MQ3E9^KS4ge8Lyy|Dw91BTutedrR0Sha(ZqbN9mrSCt5mcT0# z5&zq_5$IcE-2BtxP3eoB-^wyvH&hsJyEa1vIjc3EGP|VwA`Cb*=y@#DU&(LG+p73k3 zu}Gq6@mtNdm0Y$i*AfdwjP{NpC4u^o$Uj#g zF@U(5tLYSC5EqgST<8onO1$)!d0f;c7_E>dG%VJtCZ?l>eX=VQTDYKE(QQ0CW<~2Wz5jqpD{6_EyHjc zRPd}-1xrlR`=weQLYxyL2A!ZFB#Om%6f%}$t{eoT)peL8VUo4h8u2U0t@K1(kMeEGW7K_+PBhU7nfG}37|MV0Lalu z6~)bReE+11TklOQ4nl#2Bm({oDt&q%LCL@jf;y7&-zcl%NswulDBLB`FeEfxypk}5 zrmR}P&-wV>C6~nG$Y=ZtR^wF^6&~d4K#7rps0lTRr2xf$VNOz#7_^@w(HM!P zehUvWOPIC0PneRQp;51Ypfaq zuI(&UunNExNj}trPb=v~RwcB@)X!(Y7DM8qGv0F*AGi_Ql@I8JK{I2=TIKs&v8v?x zzDX^{H!miq=N@d#%i^`}Qx%vj;1`%o1Np%W>zQeWCrbSljykTNJk|Nb#F-DZU}XY# zNb3CR{J6#|CcZv(>b!-4Y8{UT%kWW-5ut&u(azF!E*V|LC_K|+t<7W%x0&2wHj{TQ zn<+!Llg$zaUtD8^k50+GM4U#&)71u$4e-Q|IX)#Lk!em-x#kavgc#DljG6d{`RrWo zMIaj{SKfk%w@Vh|l9o(5M4^Qna(rVISImSTXuNrv(YTkF(fYh=1uB7ibAUs0#99Km zZ!8ZKbQUP+EKthJo3gnIKqX)Tr6&_8KdWJ5O4^&!4D%!b< z$JOv+vWDmhoXuG~J9_uXK|$q)vCjkf9Tk%bapUix)Jtg@_k^aZNa2ygkf)K(bmHoG zt{1e`tyjy9N$IY6v{<0bINrvtY6+#lTOwE1Gg~u_8Ic;4?s5mOMR|jih!GMp7$QV4 zf+r(oIi0PR*4C&W`5k|U*ja$ZSLhI$5dF54Yx%9Y9>hYYm(f}aM4EhG`jRFeA+Oc9 zB&0%g_&dagzwuSxkP0LZ;AC0Uq3uw=eE_fz;(#`X>&sfucyKFvP$Jb4p+mSrgn*HA zXQDTJ^kjCb5g#OB${HvRQw$b|5C-Fm2jW%s-8q^uq`Vt%Xfu{+h) zJ|SQ%K}?8b!!nDBH<(*^o0L^UqsNP6dQ>QbteB`aGD_<-#6OF{u2{ZATBJxCYKt9q z7^(_mR`|F?+8YpQ!w*AFBN8B!$Q*fd^PxJwk*wkpJlJJiwD4hKC`O zwQ-l36_x{J(r6iCb5)-D`E0Gse{xkCwAJB_3EvAZQU!<2@I4dkuybE7k9BC!iUM1} z!^>|yM=o-tfb?K#=H|2Io5zt7lt3Psxn4@Cpk? zNU3O0?6j#`8Sl2#huc+np%O)g8>Y$ zsFg|FFiK5^RcM==Xke8O&n{xMFV-6aN)$<>Xlb&LDEdc2wmgwW!m8hgCKv7NpkS)ii})Uv7_iZW_$@yPKW$Wqe~)IB~jbZ9>)UPvy>+MSS6 zhoqNW;*lv`b0w%U9_*aj427gzFUArkMw+6_msCaYMdv=>Xk=_rql{Rjf(VP$!6pkH zjB|-XU(`Ltn?(V_A?UH@gZP?H6=^O!I6ms(Q@D5wWrcS^MMGrJHYu&k{(WJ7Krw=T z2qRxrjG#Q~5vlyakpzduYf(Os#{lAKkYK{S z#-M@iS85elC)u#pDh;9>TPE#5@#detn-rslx5ecuTL=Y3MazDu^&>LXE40W4o%PZz z5qzV8n|MJ+!j_%pfG{B4dp5{uj)*UuGqw#DTcQ!{4p+d@3aEkNAc6@2VdemWG(euf zJnj|zau-L=e+3|pMHA+h5@2d%Af5GH(y&ej@M zYh<#zEXP1oSV))AW-Xf+6l1ePA~h`woz_}pkua>RWzxngan&M-q|J~BC7blHe<7k^ zMToC!fK@AuL5(nzr%;)@VTv!Ido+oKh9DR7s1-vNA$v1r{u6shcJ7&)ilmI>TgJv{ z*9!juPJ(Ets$vQzp)gkQYtj-gV#r@CmN+)uG7O?!?WLwXsJNCDuOJ8~`00x84Ol{l(k^6M>i# zjDoG26p9N7QHn_308$Pu;#gIdmvgEpQyjaj_*6PyYK<*{s9_^io4%f##-!08s*594 zi{cJAROJCkICUas8N#>xinv}_FJ+D5Q>8n1Ol~a?$#}ZSr5@$A%*6tghIgLQ#KA|afwC5 z2`LS@kR1Isr~R(G5XW>mL4Iq0D?eq*F2C5qNV6F!T~8L0s$68SEscbfKvD@}q;=97 zrIdueNYq&Dg`DU`Q!I zhVE|Q-Tss|uvcg6)(>u+^t<@3uf_BnxKSj4e4E~YSgyn)L>-KF4Jfs~cX~sT+cG5o z>lkvt%N?CMAT`EedheGYS<(DU3gr4K#GmrU7|3wDRSne!sp9rAT z*E;DZGNpbMiVqNYZHk1jL%v8I<9D0m7aOzzjwaxyVh00A8mwJiEoYf`QfoP^kJ!t? zj2fQ>3Gp&Y3ows`%+K)z9z#d^;*#A@q|Ta z#&R@tW&v%lQxE);0npG#MhqWBE9wfoH<1<>!8f`wAQ!lPa^{Ls|BF%w)euiUjv)k^Q-Bp0K%(S{|l&^64GTCGWwM z36HR^@VVs?oJhsF=UAn2K&p(Zhm2Q`aM%H3;sDIUS)zE%B#K9hMDb{mC?3rt=Rp%W zk4OuLHxhgVF(@&`Eue(t)R~tey}eN)q%ls96*);+6zAh?2%)8&n&!c8c(ySS>egw=u4WLpu&G(#~Y1N0O!u00*_P>1#^Qh>m=EYg1y$pbCX7V z4NY#OF=NK@qy89&+d&2xw930&0m9Dan8ML~i0DD>e)M=^T|V^^JSmCAW8ghScsEj=D5ACdwviQ#k8 zl)_w;hYX(B5fbni$oPAJ?4u9BYx;9(&}sGCtDHy(E6_r~t316&Km5(@4gOx+i0~l& z1UCl8-@zvT1w4AxpWZ@@$*2np!5ghVR^>Bp^ zd*M8$?qv*yEtv>2X+%;ysvqgM`8?w68oK!eO^4*2W8VUhi6rxCo+w-0#Rr1 zQBiuVfv-eKtRX_8R9Y3VO2tR1bYX7dk;TSBQ0vJ;@em=SJou}spPgCo#bCa%Fh{DQ zyhbEbEuN~HLlL0f>8Xm=f}LrEc&YFB>_d$yn{5#&G)Fw7Sp;O^)8|hD^MF_Y7Zy=D ze3BKNW)_HNFubb z5Ji{H#a|w#5Je@+pQjkcL+?7&A095>>b7ynsLpc^`lA=HCC4SlXd$}CoFhen9K4oX z;V@DP`Yx;{q6Npsv&xFmtg`Z0=KRctGLA`9K6RI(=o!@*CPs>2Y6)uMSY_I1)^cM^ zYq@!3D5ksSrzCsvUgLsxc1CS~svb@Mo1`7v$0T%Smq-H$K z1$;{;dTc8o!0Of(#{O1B`V^#Aj!FWpVxEf~bRXQtGNh`;Z$yhibcm#CJHX^vJVv>I zL_oggj!8&N7y)os>X{-_L|r#&HZ{w{NNpz z3fLuM3Dm>B2M?1(#?};Yjhf0Dn9){{BQB&AixS!ZIe6yFhQ(zwC#g=u3h#ZrwbjNP zG)ef4%V=X7OoY-DBIG6UG0a{YUBCYbF&Ehbgag+6LZYErmHG8dyYRq-s8_zj3GkPOYks9`aP47MRO=Z;PARGigs zu}piF0o@jinsGv}NTH-?7_W+3b(LTsZm~>%l~G8G=A8qSV-tgvFpxG-7F-3-Wn(n( z;A~B?VZG0vqD_I;;3?#x%%Kb)RBnVSgr6KXR@>wh7^fypxv>^i@m$t>FTzS1!Z#cx z2^6k@7>}t3!^c@!c7v$JVhoI}f*Cr6Tmd~0XJ-s1OwRaQ+Bz=P#O7O!&fx-z!3mDn zsG68|tu3|Colqrasck)*OKKVKtH=pC65|UqqY{w%>^1#Rh&=So_zHWxMIg&Z#PiTZ z!!Ss+3R8ZCq>F^Zad!Wu+rc(I9Ck)HOT18)M?cyr=NPzH%BK9@l;J~hymLaML(u9k zL83;;7zZPwSdz)L$R~#6o#>c0S`cVj4YLU0+!7{wTqe&Fzf1u6gi>9i@N+^X4sDWP zNn?#ftwx`mCSj71wH_E$)l*H}Q`+V&hDo)^;IYzWtStR)fe8M1(Z>@+vs87v8Z{3DQu`D0S7g~n@lVV8C`NsrZp$VA6N(;`Mc0vVHO+IHZLx4_U@$Qkq|apydQw zu#MOX&WLR+ugUEr+!k#Q^$V2(#VF_z zoP|4_fe7-_)M*Vt`ZM}Cnh?DO$fSILY=X;5M+l1d0r1E#mQ&D(s%A+k;EBd3#uKU2 zZHr*)kAtvAM3!<_O>tvy8>&N zryP0eJ;QXwwS|$M7H^UKYhF z%sf6}>W!`7dB_#^P;beKil4lbJcOrRj$`L@4$D9i?Lg)s2ecGQ;RK0N{d@y=S8ci` zAP*wpK9B^&zWxwa_JX=HAS`7yCue6C@m<(xWkm9zb{4g9N(zb`Wa%iAF2nK=GnO|m z!%P%&ya*Sj^Tc3^A*np9dXX$v;;GO)HT?jOrD!QoBG+3dkhFRqqEvNk$~&DrZm9J5 z;^KVsIEwq>N2u6<65|N57w5nL55W%ByX&1c-lS7ub}I$sKeJJwMg^Yo*y3aKu?IP% z+wdU-Oj3AJSWdlZDDbS;;9-Ej&aDg%sdaWEHHGAqeh*0bj0S48ENIArda~N@bnpcm ztcT;!wT+Ri{`)9zW3@Yl=I2WiT@=vN zXo3aU7k5{%3m=n^VxjNOns_=;J}x-p*;6G<#!kWFwYl79$y>OL+=;lUIciZ*(Z7ez!=Cwd3nUab%i} zHBheo>Bl+$z#dODLn$7$jfmFLzz>TMf!12Zm$jR`g1xYC#L4F!R!=w2@bjVb{@Rg9 zgwT{gaTQVCPr?^s1!UoD3~i}bzQLxyP*nAYEC}k)%|T}yr(q4^ zH~%D9yf3(>a&kv%rMuQqQZp^l{H6PV^SB5Tl9<24;cfo5cgjT0Tp1(H2x0c(L^iuU zMkK#aHa~d)atCl@m&;ZI`5paFqts2|Sr5Ia6JPnL-u#)5l0E|ykggIX%;#$G2va8tBTJp6T+~_t zgCq)GRWbub5~aCDX$6h4nFdCS^?|K&3XHP2fP#`C^-z_V zx=?M7PzD`5FDhkHB}O^v<};}rp^WeBGpQ1z99k7FC1!F4^DkG*Py^?=(C?w}1u!1_ zQkaj!hMLGh#%S~C1BXX59~>qsOPb;J6DvFMGp`!hPM%8%@y?VEAJSpz<4^)oVAN}1 zuig(;Y+RG&GDObJwjtNB3%_GS<0XE_q(4oU<;4n4@YI`3^{^~NSToe8=p4G+n4l#m z3o_Z0`3c#YvBe{cmu~9LPA)cZo@H?!=jE*lvXfe2O0k6HO^y&u=`%lVpco#W8oN6) zRa3TxK_ef&@9w&Mh%kRNc_o}D;h0_m_!n+`S1M51`z$mXdaR4XFd@QNP6#v`vX(7` z9nC3_->p;cW{4+1aRE=>{o+62Cbj%dV=p0f*d;$@)Qw+wpG^mM{Eer(BaYvGDCeaN z1zx6^9;0r)_@>I_5A;VCo_&h};N7?EcP11GN~M75KT+gmX7E)xgv=M^7Upq2ptaU+ zZl|9-+=fY^*w);r{gj`Z%#^+@ z*O);iZ9;By+dRPldV6EA+Fikk$s|$%@J$-af1=aJ$;~7$$!BN|ZYR*WY#jH@VU|AK*en<-Q5_!U z*mXSW!utk&t_Py=%@y*?vMoHQkQlA49zS%8MqOr6iwn)83lB7>kItc=Squ=5nsRRf zT-*oKg>FyF-6w8n6h1vfpZ;g`8CkgUmHU#)3y24@SyfDUfo6E&x3N@9T%nDn)thNW zxzSU#ST=`hq|xEm2m|$YO7{ETCO}5P1Qf`aY9Hk8Q%nh=Ja2q*^4R?Ne3R@zzEK7BKf^4T3$sfh}d66#l$Kcj3q~oC*yKo2q@5o z7nOUSW}+3a3b|5?v7soAS~HM7EfDo*V6;6$84}0nhxjPBDOfCI*pWJnb_$2nWvjS? z400ik34#n;t1S#su@E4y-UXa3pWj5VP?$LQ`M71tz!29rI;Xm5crAxxVf5OWZPG!@ zjlLR5YoHjS3jAuh^}wTcmUfw zn4_cnU|j+Scc^lJ*Yq+8Jz;j_f!V^RZFMsbYz`{`Qx1bE#+kuVhQ*_RD78K~(Zu%! zWNKz43)qHEUw9Kh;$v|JP>1_aXh$iIP=a}s((GrCYAmUMl+;^UMk)g+AsK}$CRSA) zh76GMz$9X3q!v+=jF?{HF`*Ik7v`!c@5xoscs(v>1xa%m&I@pEh;V`cQ9Gz^4a38 zU~;79Aqo@5n|GzXwlTca0BqReZAq_&ZaXnZ&nnTfE{ys=?3(P?E(@$HMKns8{k;Z^~tA8J3AbCSS2Z z4C|f5!dys%($rX38J=mJB2Eu=IOVg3A@fnsp`W5z%X|&vNm}S8JmQggN!@CMDJ_Qs zO4$lXNn1{%3P##8;y_d_VX2Y25pjAzuV29_zuv{i=BnZ~uu8Z4y*lXtMgIu>5dl>VgRr?$;Oz3Z-=mF8U!J3ys0 z8lF*UG(5f)s=PnDV>%gw$np_18c13{*-6TAMmVT=?>P0!lgj5fAvwB-O9Z=V<2DIY$rU+0!tr$sI)f;skBa3MmKa($2yC}GT$WFB`Pj+YrIZ2yQUNlA z_q#A|XW(+M2!B})!p5okDan+alueY+wFKZZcw7D6StFu634?FFVKEdz7*H~~1XtFu z+*lFix>^OqgoZ1uxl&CL4kt8;a401Su=rI>Ay_emVAT|&6;lXSOd(ir3OSm+dV0$z zyA~O(+6s*{d)r(5E|f|$8t{uvS((z7C|V%-L{u!XBCBZhDm&7dIz&hO;k#{e*uYy8 z(AJrNGWU}07d(-X%Q@tQg}R{T4Kbu4KS3x;pLa@%4E?4yFs%@k1bWGv4-1-#Z1A3XHY z%{&F%dXkrx3Y(=y*T+*>+-#Nrj3Qyg1kh~JXA!eFR?gT;RZwLtr~0IY*uzTh#bs3} zf`e^&DpJ>q5-PKWneFu@G}Qsc$gBeM^%CLBqnMGZT2``Xg}i+tzO5ArWgMbE2|yke z7at}vCf1prBpm(9_m^t@Cr(92V#(GMM?!VilyD=e-1 zoT!`pPLFJ?ikPg=#p~0!khP@VB~kd8NOQ2AP?h$Ft;GMr;_STCve>w9ws6N$l_*nM zMs6GFp~Yxj=naBRv2CU4fhkK-*gk5dSY@o?o>JRd(FadBPjqUCN_rG_T(uOFwQKY- zWAadKnkk8lg^_`=#us>OJ_TyaT1pDdt54LY%De z28)IpEH~OSG=S3B+R!<36RWEh&o|_i$hwp+S=QhhUNpRhmq(xwP}2ffMkwG}!~z)7 zC`K?asu6{GjmbrwjYwMfF$dQiEiKa(0YcTnZnB~MjRhU&+y7w^b6Y^r3Z^&#-sQ634T`$0I6yjUeauEEA>goQpnu zh=drfU3`{~Ua#J>9Kz|Zc}8if>AckrCNdjcO&NpX+NGpRW-h)kES;2Pas01y6(g^c zf=#@?T!5R~{Y^~ON*GgEd?`4W#rH{g1lOXHCKZ%{>4dzHtwED4m#pAqJJ+S!lEwUyheGKCzfBnuW--VV&s^5Bku$8xUinvLzIh;bPk=I}fhWPNa znKA(By6fa+SmF053ZpcTDv#l4)%QzNg}-4u>o3-Ul1N+*_^+ztfi3b@t;=C;m(|g3PnUSj^SU?j|FchE!gRo;fkKwMf83+bJ@$O#^ z3aWg$3nQ>Nc%&bU4E)Xw-;IerG+Kt`8y0%el&I&?A7^Z~oeri6j%G2Amr4d&t=xh* z_lsM$(OhFsIZ+g0>3wtm5n{`mg_UtK^Vm+NFy-!hOrxBaEYGyXnO%r18XMV%j%t`> zcAAhBfur}mbiq0I5$E{KHy-uCCRvo&TJq_`yvjl(P@Q=Z^*w%?(TS*?(VgK_F+lNk zPV57!okDK(wkA6GHc^3%uWW@GA9dN{YP)?VKxU)FyU-ahqZ80NwotO51D1=WReRI( zLsS#Y))omSWw^#s!0j%!nIwUQL<&j`Del3BYIgR%W|1V_v)J%V^GDR#)AS7f`NEk833cwv%}LQ0v48PL?Q z91XQAN3+3sVoB6M76Wo1zV2z<8xP~!`oi?=jHJI^9?3abD9xM~7f1}A7JFiAkvt`4 zh?4Qiw5hj)oVu`x=l027J3bwPMAm2qKq;(cXf>2t>AP*_RjQj52?sV4YCcL5inFhp zI`Go(Jqybe0S%NhS^0E{u+tck<$icCxFf6I$NGGox;loGIWkZricuzeTrp!fThiDc zU@Zr~!Fx!rIzIg4j+h*EDhvh(1M?vq_z9-ehuPJFSuvyKCM z!;J3wCA~~-)(vGGDjcp#p3tkN4s&E!c9M6l?6l+J%o@qGt=3Z5_RW~oY)1Gc&kyu7 zSX-@{_(>Rf@5pf%vk$#Rnmh)uGI8^a(dJrf5Vpf5p(0}g19!hIo*29u6)8JGqc=vd z5<0+<+CYR+7YNnVSw(!9yzQ{ODI;ik{Q`uqA;Ct!`ko>pro%BS;4_xtVqG;#$jA@+T%bF4fhJAdQGHnIdWzd>h2ETQV>(Ts65h$NM{IpPmHdb&X5Z+1zj_#N?ZBTN`1 zB8R%IFHdLu%r^ys2E7dBy+?w6l?Waa74x8$hczsoRtJf4WDpKl`GdPLLPr~m56%WBCzg96}1UDfe2FWm0f>sy-&A-3#-rhBc&y9gXqg$s7+v z6Fkj8HJ%ADt)(QUas*8y2H_ZzMyFm_xP~M*_Hn{Yl%zm1FI#6zMrE)hmGAcWI3Err z$3$cICQo0B-auuAJAfMTK&3(v5lKF)Ir*>|0r|v;SwJl*{YhmdY!XJQFaFBxD_BvZ z2xc~^0%MB;(MJkDmP9rd+3pY$GXgQL{00d-D@nvagiY-@;gx*g@Z9W)Q(c5)k3K4u z_YJ5_v<51VI=|*t6^Rjwo>I)RC4V{b##Ys@RpEFAj^ig<`LtV&P=2D(#$!XBTMXHx zQs92)aXep;;VLN$t*Xz<7(~*@YV>O)f@dlR&M$DcTUcb*vXddKycrRPAm4+^c z$hO zR$Ng$7;QmsgjRtN9G0fofLJ;C7&-4I@B%?S2gR?q-EZU5?C|SV$zQabJRZY5yhlHNq$#7X5?FAS?Qc=FV3~#8sRBT+ zSHUX4f<$&rE7|yh7JmOXMy!A(B8sING`=vs9O{JmopjW*RafNY`mi=EZJnuONMmvMK$s2b$eRt+*LRYRopoJFb{ z1dFOcsJ?1soJ!RISL%a&_nglq;Tg|yytT97Do9AL3Zq7p=~j``v_pkl;?-I-VW;$I zpNZ-CdML}gJojUVk+#4B@vx-_F*dX^(%I1? z9w@BEEy%fP^k5krBUcz~5B(KcmK209h<`}RLn@HU6Qul8Qw4^NEgL^}{NWUjkC|mN zJtS6PM@sZ^a}hCJi?`6cPnur(4sk8<5LLnFW{*ryJ|c@P(nlHE_wF3_P9L709A9h* zbGotMYOqkMYFM@6ELkT*(46;SN8 zkKxI-nc2l@eC0X)3~Cc%nT%iJq-d#{d3=;9{tAjBU|3WW@l>FE>NIC&ry9P`Ifd_j zV+c2JQ`0zrIyZ~TukwcWS!xjJ(+WD+Q@~cStRm31LMFvCF(ms8nSRFXV^K{o%2!SY zg9^AJCS|Jd8uO4V%Y3{ph2yGF2&u}c6J~f-$x5oTrY~>GVG3kYcX^YoAMC>82AJ#d z92E1ekMFg2#|GMLHfD|;#h7EUG1XigpE%O+61*@!z}sak^0JCG1py3vn#UH#A85EL z6yj6m)Cn^_RY{ExO!VK5$4c!$qQJe(liOlUHrTO5Fu-EsV|MXD)G01?#a}@-0)|D? zBA!ZFV+w=i`Nc;>ktKpIi#bb3*~}@89E~^$7dHEWUl+3Ch;mzPibt;zA;|Klo;DgY?CkQ2E1B0>F z!6sf-+H!b?iLXIUH5MlEb&*A$%9iA-!F{t-4o<8D#{`lSexO1TV(Dh4*KE(<0-_Ag>255y`u5I?RgLy1khH^)@Qh1> z7@>vov~X-epAKl|__zQ=Wz2nEPuxd4lcnyfw=jUb@8ZzrJE0zY18z@PT`+w4+S5%lwML`8R zfjlVG-yE=wLuOF8pA=L{KT{hp?ylA1_9X6LdvjABS5L{Kc5v{7*OSg*2@-Fhl^7R~ z*6@;|#8vBa>twJ@>FhADLT&%Ngi`jLJ6p4uKlThV8L>=ha8Y&{=lZKW#M0lBE8YxC7QGi2^XH-HM{AXMmokgB4FBA(mt@y64CJSF)vK4GY28Z5L zg2yP=>N!>jolXFs(u9oVn5!0i5^dl4zG7gi+TSy5ZSpXV zpPIruiVGqcspiaNh_dwG`n^WK0+YSig6zM5dxHxa)^M6iW*wZwonct za*T?Kidq#F6}2cTh=;0xh@hL4wTP&A#$&$g-fT*Y@WS)H&-cCm-|u@CwzK!l?9A*v zbKNsLJG(J*;xLkZ+m0PwZ7=H3zB9$)2+wvd32Ezcb?VRow{6>Yk(gfFT|N6=VKSMN z=w?!Klv9$T1QPU+#16WXqogWU#iCxISEn3)W5&3a zO4nAz9X)RJm`RGs$zfv0{GLjZ#cE11)v{!m>X_=9GfnkO^%EK;D0wq(ox+ND+?mrO z?!@R3>E-Dk>CDp~IOdJv%Y}LT(8LsGimxLaq_S@8GY-`H*c(xJzB{wP`dUUs5j^6&m0-Q*Fg(!+wRow*8kHt z8duJZ{vwhbNBzk&hrJ=n=prtS!j0>#p(s7X6{Vcxc0Tb$Yf()}dlg+oH;Zx505^r* zZODGwx07S>lk+8>mA#oEM{902a_lB?WoykY@y`~|MI1RtT-hW&x%TKLVX|LjxKaO2 z(F4Pc=GzCEJblq%i6>==ZqazsE}~_Vun*W{>pB`wTvSoL<=}Aw$!6@L7YDoODK@=K zP8x?_bc?2^H=pri{%w;kI)hDW-^nnZ=U|f}1^9vh{>#~vx363yW*`3jr#bw))=$mM_KXao?&^o=!|x*;aG+KT@3lvDmj#Lj1kc*+B_*zXqTdBy*|E!q6BL`Wa8O(1%gRF;&&+yCI*_S$uk!RExtl6g*aB?q#AJ~+~y@M;v^L;4qCm1 zS`FgZ-4$9o@g$uz;#&F^2hF9~YGVGPpkL`*YDH}t%TvH9`c8?|P213`QFQZ?*K44K=mt7>Ks1j8Fm zp=OnVpkgXkQ%Z}~@ONn;WfS$1d7qZ1Aa^l`OmlNWO5ak=?9Wkc?BNVk$mGK9Z3&sF zt7IixO>#KZL|0=qteQhj??u1CbyZDA1cFVAB#)F(Vt*t3rPh!#>po4{x=*wEi`9gJ z>`?f4S}4uiTvfKL){@FvtKlQbp)^14W?RTsmZK_aYc*S?y{LJr*_)^4aNK+W>8eQ~ z$*1}3K(P5hWYSK)u~?OK!=n;I%EHx}X+`UhGV>EH(SslPq>zR(;vOx{*Fp_%vW9Ga z+@Xn~L{iQ6EZ1D5omeV)EZ0QeX@Qn%lBbp0tXT3(3|Z$Ct7$i`t5W73(3({Rf-cu` z&EhZ7L~qTw)-;uCYTq;zo}C<$@+e0)=+|i`KZ}cdsN&UH_()nvWW5XvDKk1vL7z6Y zsha5^e@C90p%iMl-a;*`m_m&wNd2sQzY!NnX)<^_DKzPFJ_ldNnO;sppxZIQ6j5pCuIP2E zD8{u~OC#4>bByiEhKrG(QzK^NIS}Fk8Pzb2|wY>%^|a^SnZUb9a2`W(%X`*YtirI67bUT7OAF;oKW~( zdq|-Ul;RDVo$Inm8%6huxai%4POJ*`;ApOz%A2Wn+I9*SB<$h3*P&;wJ@LjBRVmAg z)I6~pT)(pEQ!U9$Uf2y`SDCm9n^B}DW6#B2gbR{F37cAll8|+KfotQsU0h3|$EkME z-NtHX-OW`kWzE#I($+eUEhm$QM{MAVs-)3e)6D%^cmy_ww$gG)AlPy&;p8j%>17#u zk6spK@+!?VqeUp3pBPFOhICywQ(fNWS{L7PEeXF49Ot6z#6WYkGsoHJ*#>t>q@Aj^ zP*ckD)GYL#Ye&DPBGu_A)H40FK?gdVTcPFB#!WR>RJqIWqrK%~S9G0YPkNNnZptX{ z>QXJ7WeVlE3$+oXFKyY1uJe7g$L(vigxZZm(jLOr)R3vPrK+%}IGU+m@-or(`v!0+ zpN%plV^{3%JhgzZ-X1B3C6tX#$(C|Z|B3yJ)a=^Q29%J;OZwEmQm{`8pKq$Jcax(? zwTo@ZTBb?8o5nN`iLD7|(l6n9VS1*!P)nkWv&g3ad6uwFxuuQFHp=DK-4^OxT(NT& zPh*`Gy~vnmiweR@TerK`a}kG(nr z(x-&Cr-p=W=}Sycw+^Lo?1UNVhlCSl_6DukgMMcvhmr|1v8Srd)iiew*V$6F`CLfxdmWI1saTd38$f#AB*Lai0{-oAr$Oe?BZ`w62DZ&efsuJpn)`ceuGX(@93 zA6O&y9v#?SMQW0Qjp(vMOECF$J?Kn!W(+~Uvbl_Yg>r0BX;-v^GB+ zZSxgsTRnx^yRJfQ7hyYzSI#-F{}n#g;r@+Uhh-ZzTY&M)lUIgPN|(ZTAV_$~8n`l4 zM^TO`yVhyS+z++zPTF?Xa?RnS@1@QxUGJ-swvph>RZY$&YDPKw>uU*FIL>rz&=QCv z^(AF=IhSZ1%9m(eTuZdhjwPB?T@uQ2ZO|@cW|!l4SL$sqoShJoGK8)6P=fdi6SP@jxfy9UL;qpg zo}}Nb2lcOvq#hQj)p@urpzJ71VQemQCJAop)>)#-{0L+A$_EtXr4z1|n#D<<&{g=)udJsi2hHsYv7rIR z_0l$1u+yJ7=Flet@v5-v*TyS&*ADGvg4P9pTk)g z`YIfL$qUQ2K)i?}zAPKh+cq_Z>IVroF^@%7#6_B|qs4^|~$CPkSsXka*fK&LwX;eUz>uwb3gT) z$Cw~eM$t#6dUvFZ-__NxvEuD4O}|F7L${%#TVYAK&vM+YrO>YJ4taL4UQ483b_DLG z9`DvpIF?cGe%exh+8gy-c6VrAIQ)*>+sK@q+}oU>-JUest%>_1xmV1h{nk*qk1FHd z%pbX*vIe-9DrcunCvwk}=;mI~$Gugl++(fR(sBa9bk0pxxldfkxT1Jr(4JcuwDd;* zUeZ}NH<&;05+P$K0?Xk4VWqQ8`}gp$j+*kQx2G4`TPbMTiwQNoAIrIA^Cd~LRMIkab}Yu zY%kX+Y$;pTX!;mHZ16zN>#>J3!;D8P)l@Rp}pFDkv6Fer=p9T4BD-KyXdXN(SWsbH z9UV(0OMb=VHS1JfjSJv|{F2DeBKb|;Kwa&DF;mEDLvUXz=G#l+CZzuYm%s!NH|4QOBR!mjN3-+w!o8sA{*~-bY zG==_>d(&m)=ZcIaWiBYZE+wSkrm#1)GyceA&!)bVJz5Q}Dc!Y4OLOkQPDX6#2uq~j zPxM7>r^Q>L>9!R6DfTkOO&^DSwECHY!zR|iPTIZeHFJ5yw%S#(rR>;Mv6tzbXNKeC zQtV#exy(6npTxDKjhGjd`MV_I+XAGCPQ*4Q`LKO3^@a;QJ6CC`-e&N7uVyW~7dv{d zmUd)O&^os`s95GR7f1VYm1upjnF;00hxC}M+uLMpgv^PEy-X!tODQ&qGTK$zhF{VR z1h2tvw%m?Bv6HD!7wL9Vzqc)?&0zy8+SJl2UT#2N#Xa4P+&}Cf4r9@Z59pUiIkd1d zMIR$n++J6YBX+jpDhFk3L7ZAzE9%+qjMTGJS*7=Z!maQkY_!CViv5zYNe(QBKS&8B z_+hiOwc3g}t+104Pwb-D68#>Fu|&lSwY0oPXb(+kw{G&Rq%7FgY{^6V`vsYdh48Ok zllD&^!u891k&H)jeXGzlZJczay~%xVj(e4EU&Ss|JW^k0wW2B4{zjIjw^P!vk%r7u z$bE4#d^)}JLt-OEHx<{Cf4~yTd6#=K{ABDTVs zR5>*1tFqBq6ZE3%4V}n2qKl~hDta+iV%(8KT)D?!xz*i#w5CHp9E-I|(=ucZ9?_-IC5P3&qa?NDrLqUf4q3*iYI zCkLFmZ5@eSwbB;Fc8Z-0JGeKayf%e-Lhpx~*xHtTi&U|l3D_BzXRp>ci?#q)Nu=X) ze5hp;o_L&N_g>AE$yg+#G57H3z^#NbO4n-(Lkm>hM$X1|(^hQ1|&py3Rm3$WvaHW{_KVryOQLt2yE zBId_-qwn2X3i;T`M1oqG&wumH zWgeHyYc`n@9-T1Z{X1H>9$fG5zpKW4^2u{wKK}UCYi_>zc+YpoFxr^#I}zx>XGUw{3%-@ES?jp)!};!h7f z)W3tKeQ5pu``=dFcw=bBfdh{ZY}53^(opD&=3jsP-lP^Su6gg7XYSf~(@n=3q@>i^ zP*l`#W^V4#y!!P!T+pCFr)Q>4J@oDH;amR*1g`yMz<^CxUvkOKqxbKB;r(Zyz2o+l zEeBjyS$X)zHf=`UJ9lpFp9c0XG?eni* zfBoJo_UtM7^wn1v!HC ze|+<1_wMsQx%%oggW9(rzjEHZnjiG+x!CdBZ(k)PBv|I$b=Th~Jf1+0E?s85v~gpz z%FUav`muli2mXHW!RyN1ZvWz?OB0`1zWnm->(@8#-MO>R^7GH%f3bc0*d5P5f6Gk= z4?Z=vapP_-hr?Mv9M;l){PC|TAAR&%-}l~|lVP`KcC1~yd7If`VOD*IoBg>w5Lt-7{mxmjSQ0eD$0; z^*-#^Z^K=O4m~)&Ns}ITwrZ9CcxmY+MGF_EzH`MD#Vx=6_U(_iZM&gMMn=x9pMU;H zXynN44O3IkyZN)vp14F+KO5YxUBNXMUp%vs&6e?5pFYcNNlEs}+1b61j2N-)y4PRd zIQ8R?U-@p!mhKOa8MAZqvSk--y62v@7alqC@!hxH`a`>_s(sye?Yeu|g%?hJVak+) z#U&-Cf_?j*{^*)()~Sy^+Gp$J$p?NPJa|j;Pe1+G?AWmno*Fmqoh7&3_S08SKG`eN zYIW>;>7{84XU#e>ty!}xr|0F3$j-{@{QbiZ4|#j*)*1cZdh6b%N008AefaSG>t@b8 z+W7qQFFSnIRjUrY^2+G>ci&xO-r~jSr9Pk9?Xt^e?|kmL8y_1#{@nw;dzU7f%}J(T ze)+XlT3XhFqes6!s$<9Ne;YF7$%+?WoV0BI{JKMT?6|K*!-f~XxM4$!&cWcPwNIY> z`q|a1Teq)Sv&qYoCVk}l^wUQdEm@NM$jX)NpI^K7f+md`by>b(K^^B;U+wPm{`(8U zg9be|D<{Wu+ZSIvw6wU`eDePLhxr#RN~v3;M*V}Yy*94xmtTJJR<~|*w@sW_@kZCK zg=P2M*YcJNE*M@jJ-yMMva;L%%+KGv|K*pbTzuYnx#0g0_|FCZ`@p{h{A+;!E8zb$ z_~(Pa2mH<8|0ww10si&Ce+>A43I1!qzbE*w2Y)yCF982K;QuxF?*{)=@IMaz6Tts3 z@IMCruYv!s;J*s|uLb|t!9NT9p9KHw!GAdTcLo0h@b3ryBf$SB@b3WrR`6c|{xiUT zAoyPn{&w&m0RH2^eh?7yN$)|B1ps_~(MZ7yQo$ z|6Sn!4fwwb{#Stir{I4T_zUfPVn| zSA+kD;C~nRj|cxd!T)jaF9QE}z`rHRz!2ee84}pI}@V^=SF9H9-;C~JHHv<39 zz~2V`lfnN8_+JP9Q^Ef`@P8QmH-rBs@V^lJ?*{*N;NKnmhk^eK;9m^>1>pY?_^aT* z75sk(|77rQ2L4Zh{}S;33j8y{e;@cS1pjH^KOOwD!T)>ke;fS!gMU--pAG)&z`rs0 z9|r$J;6ESy=YfAI_;&;Uo#6i%_#XiOMDRC(e=YET5d24h|8L-50shOte<=930RI=k zzccvP2LETlzdiWB4E{dwUj+V-fdBL0-vs=ZgTE8}`+$EK{AYpxZQ#EY{7-_vAN=cr z|3UC?3;u6`|2FV{1N_Ut{}%AC3I2P)|4;DW5B?W}|5)&!4gR-)|Lx%a1Nh$n{?ow! zP4IVtzX|*&fPZW7{~P>20sqIr|7P%i2mA}ce>eEw0sg;(|1j|H1^y?%{|WHl3;qv) z|5M<<4*WNP|8(##2mcqq|1a=g0shUwzZ3Xh4*tJ_|GVJd0sJ2Ve+~S<2mc$v{{Z;6 z1^+tWZvp?e!M`c^zXAT4;J*s|6TyEC_$PyZE%5h)e+c})2LBe|{|xxw1pX=DUj+WS z;9np78-V{*@E;ET0q`FH{+EFNe(--5{9A&5CHS`i|GD5l5d1&X`QMTI4fs33|4;CL z8vL&X|Lehj5BR?d{uhD&mEhkO{D*@72jE`;{@;QBW8nV>_;&~YtHHlL_|F6Xp5Xr* z_$Pq>UEuEl|1RLa5&SoUe}C|Q5d7WXzZCqJga3N)?+pGwga3B$e;)h~f`4Q1cYuEw z{C@=hkHG&u@VA41ZSX%1{-ePEUhwY${&m5BC-^@C{&#}^rQlxx{?~zjJ@B6a{$B8( z1OENM{}A{$0smIuUkd&U!T$>I{}%kWfqw@0e-8d5!9NxJKLdXi{M&*5#o%uP|32WK z1pe9JKLY$;2mg=3e+&4J0sm#-e-HQ{0smXUzY6?!f&YczKLz|tz<(e3UjzP+g8yXj z9}NCKf&Ve^9|!)of&Y`>Zw3FCz<(C_Hv|7X@XrGOhrxd<_`e1IN5TIv_|F9Y^TGcr z@P7sT?*{+H;O_(f%fSCR@E;HUy}{oM{=a~K8u*U}|Bm241pHqF|M}p*1N<9;{|4|6 zg8xbIUk&~>!G99?e+vFfz<(w9uLb``;J*O;zXJdF!G93==Yang;9m^>_k;f;@UH>> zuYv!U;NK1WCxU-h@V^iIF982^@Gk@ZeDHr6{LcgbvEV-&{BHsO+rj?_@V^24r-A>Q z;O_!|6ZlU6|JLCDH~4=7{*QzI&EWqI_!olzZt%YY{C@}kVc_2j{7-=Y6X3rW{2u`S zr@((5_-_LL>EK@u{x5+4U*Nw2{F{S+C-A=<{C@@icfr2{_&)^x8u)(?{x^dE0q}1N z{&m3L0{(Af%w zzdrak0RO4rKOFo6;6DKTF9HAk;QuW6w*>!6@NWbDbHRTg`0M2|{I3T8_TWDc{Ck4`Z{VK* z{&#`D2mHH$|3>iN4F3JW|3UC~ga19O#{+EJ(0r+1B{`J6r2Kalye-8Nf z1OG$d-vsFI__#XxT!{9#?{LcsftHA#i z@V^`U7lXeK{4WFl=fHnF`1b~XGx+}k{%PPp8vHwg{}Awh5&Y+a{|@kP2>u(uKM4LO z!GAUQ*98Ab;QuN3F9H9R;J+698-f1<@c#<@-v|Fe;GYBjUx0rx_}>ryi@?7I_`e4J zUxI%(@Sh0&UBUl8@V@~3)4{(C{PV&8W$-_bev79`N&>ru-O4UYDxK_Zc0ao;Pwmv- z^TUc72#i%a(0@c8-P_guf_@u9z8wZdHK9Q3>EiC?DNyl~mg@BZAZ zZ$iI6KhfU&WKXN+{vI8lTl(Ob&-)C2y4i#VFZEoVcI>)f`QL9O+|*`HtrLAq9=!L8 z8{YcuV{_H0rFHIExBRuQZ<}(@!C?dTUQqPv(2pC>?9+0Rx}?Xh-8Wso==Gmw-MZwy z8!j8#;_!_xzWRK>;EB3VEZjYQi}Q}H7r#F?^U5!@!nXDA^|tRnrsrJ)pH^=vczN!V zH~gIynDg7p)>hxpiM^NB`>W^51(QD?@WRR4A8-2cjOn3-t15>qJ%4$7svV7~UKc4s@`I`Gflg7RG z)4`;DuO@zY{+JFs7ytcmhxG&V9taHjF|l26@ur);{w4LI<3;YrzVnVu+IZtD{T)*; z`)zUKRhK3mKKx|jWmjME%9qQYE6Kkx@w%OsX?v5r;X0mr*?+9wfA3eXEPA)Qd%`Un zJ}rBt+tK8OcQ2~yd~Lm3Kl^sq{k?3nXMdI6?d0x8bEyv{rD(ptUGHyNH`?N>Ir*CD z!~gmtoR&Vg^SnzN?R&CQi;FI>6?~dLvGKzr)_$0OZT7`^o$OCfu&qe18nX4HRo^z) zuxzcr-<##5A8;NTKIy7kvd*htD`b0VMY+~0(51WDq*lYa4boC;r2O#2+jn2^;^yZw zc0Jl?$h>;rKh-z+rf*+9eBXnAdGGplV{_Ap?LSZN@#ZDtukCQ>A9vr}viqJxZ#8{> z;-BAa8~go{Pu@Aywwq(#*xK$U_s(_Jd~4nv*;jsa^3s=|tl93jx2N3Svf)*2HXQoV z^-PW91LogSQMse_K zr#n9ET>SR~@2u{Wy7%D^=KTCn&gZusY`)}$%QwCDMDCIG7kg?fpLPA(cSq%qx#G@W zUawtJdUV@?ypg|NRQU5#Z)|+kf8C_nD=MZvdcnRAo~_kv*CqFDaXfNI=FzER*L`;T z%a^>DGOPL2pE8FXH@&c?X!DwWUyhr4&trFf8E$O-VEcDp9E&;^RzB3ReEb75FWi33pAWxNsFqcfwy$&Gk?*fuZRz^!!Q*$O zdETqr=9gtRm+Zf~`_*ONy_+*E3b;G{+Xwc;|e#pG_{frr}UHJCEWAFVs>e|Qt`XXc6rL*RL*5jQy zKR)&1WjiN!&h3!>`Y88<=S_d3;dXnoP|n?bx`eylQ{$o=O`ENsKWjg*?#R}H(j9|u zA3b-^KHu~0de0m&xuV;UZQ$P@{O<(+`rv;t_+JA4=Y#(i@V^TDo#6ij_%8(ipTWN$ z_`eDM&B6aU@c$hAn}L5%@V^fH-vIwP;9mm%H-Ntx{Of@KYv6wm`0oY(q2S*K{Fi|L zP2m3%_}>TqEx`X(@IL|myTShs@E;5Q8u;G}{$s%ZY4Cp;{Qn03-@xAo{!77sCHM~j z|Hr|9I`~(D|9J3!2K?KA|9tTO82nw}-xT~4!2cWYUkv__fd7x+e+~GL1OFuO{}B9l zf`13_e*pXw!G9C@r-Hv5{6~WSE8u?__^$&0!{C24_%8$h8^PZK{$B8}2mbrPe-Zdk z0RJ-ZPX_-g@V^!O?+5?c;D1v12mciCZwLO3z<)CM{{{Z(;D0IjcLIMK_)i4?wcwu( z{&w(R0sdRTzXACB!GARP4+sA&@DG81Irw)0|61Um2L3;Q{{`Tm0sce4|0(eQ7W^Ls z|6jp>1o-y=|7*ejZt&j&{?CK|Ht_!h{JVjFZSbE9{`0{9Bk+F`{ND!uhTwk){A+;! zE#Ti8{2vAXn&96H{5OMt0Q?7oe-rRu0REqXe=+#42LFe_{~_={2>zFYe=hiY!2f#i z&jQ+-CHS`m|5o7t7Wj7r|C!+bC-|%2-yZzG2mh|%e;4@I1^=7DzdQK9 z3;svIe*^gU1^*r3e+Brj2Y(az{|^3tfd8}Lza0F(0{pYz_%{Xr z5cm%P|5o6i4E|>DUjzORf&UNS{|xxQ1pXtyzcu(T2mce`e?R!Y2mbrO|9tRY4F2oE zKLGyi!2c%jzX<#v1OFuO?+^aJf&Zo8|0MWd0shZ{e1pd9je+&3u1O9)2|6uTM1pY0+zX1Fjga3!%e=+z! z4gTri{}K3a0RMjA{{Z+;0{`>C-v<5~_;&~YhTxwH{!f7ai{QTt{O5sxU+{k!{Qm;~ zjo`l>{NDus4&Z+?_#XoQiQqpL{NDk82l%_e-wFPAfd5JGuL=HB!2c@n{}KF;gMS71 zPX_<{!2fsfZvy^1!M{HE9{~UF!2fOV-vR!AgMTOR{{Z}Rz`r^8Zvy`#;9mp$*Mk2T z@P8frkAnY5@c$Y7Uj_f!;QuK2KMVesfd3=lKNb9M2mciC{|Wp};J+FC$ASNy;BN*0 zFTwv)@P8lt_k#a^@P7*Y+k(Ff{L8`rLhyeW{L8?<4)|XQ{=b5M8u+&X{}S-O8vOIY z{|oT11pfx$zYYBF0)GqmUkCm(z&{WChlBqB@NWr`_}>ctuYvzD@V^%PGr)g7_|F0V%fLSu{6~TRbnv%>|J~r<75r}m|IfjH z9r%}m|7h^{f&WbK?*{&lfd4q~-vs_6!T$#E?+N}x!QTx2zk~l2@V^=S`-1-`;J*j_ zdw~Cg;6EJv8-RZr_?LtKP2hh5{O<+--@tzq_^$*1+rWPq_!ohHWAL8@{=2|`5%}K< z{+EIOjo{x8{GR~-E#QAK_+JVBZNa}i_}>Now}AhX;2!}0*5E%8{Qm;~$>4ty{67Z& z1n^%9{*Qxy4*0(g{-{M%Qy zd-(OHmwwy#p44u?zj2K<@BZ;QpJqRE^R*B3nR54s&8DCHrC|QV)#vTqG~(Us#y!7$ zvah%2uWw#FII_+aLmnwvKezP2<4W=Nk8Qsm8Jf85*`7%ixs8^-b9s8gj;CHRn`$q< z;o@aAyY`!K=-9nKeDMB>tzXVqwPj|LswX|0N9#RzWsM88 z+cvJ)z3#h!ddbyKw)(kj*Viw1DH?d+=(?>fcfNGX{^r3+8Dj@Ew%_re@ZS3LX^{_i z{NMU!2cM^i*-Q$rOe-r>qh2OO!Z*dp5}q$F>gro0d_;^a;j3#K!AwKR`Rih22@hnR z3XdL%E8hT-@KakN@30#iGg&6WWpYcO)iUJzBFhYyA?t=zGBxBT63*;b4vw7P0yjry z!;J9OBFje;47rWSQa(d&FLKr?S-v@v%78MXo0)PPQtS7(Sv?c|X4& zvK((?woc@+$f8d-NsBxUS@dT$^1^fUh5P(*E+v0lTlRMB?Um_#vq{M>XwObS z0RaUB6m-zPb|T*lGrm+JU)ZYlGrnX}?HB!;iM($g{mO~nF3fz#WHsd#cb(w|40kJT z7P^x5A>l&}SK5QfQt#rP>vp<#?Kf4o9leV5q~hPTck$kKZ$fy17!5|^NfT*i$YxyG z4#cD-vc#3GHM_(=TRazW&#z?C-L=-k1$AkjBXMpdsoAa z`sc)ctRW_>KgX2K7aLE?9Ni=>*=n*!uR-L2q&Hd)j4c{Z+~_q(&{oM852{l!n!Y}P z%xgCPNN;NwMY$cn=oU>+-pL;~_T0ada*=$%N#D-?PQJV+!B+iFzI?k$-mAgSCf{a~ z{XfC3|KGCbQfH^OXpKaC{%w!`ZNH+XTuh|cAKjiB35s7U<5(P#b$cY0t(zk;7YI=k zqnnqg`Ow3rj-7t1ZziV+Ukw3NOtpL~>0Gzd*#x~DMgmdh;%&lFR3Y)C4U1MJ-sx;Y z5By`ds0M|vSetOBcrN0}IpWGD@lMD3MfgY4mUxrpPs|n#>w{k`>k?1O65XQl;#t3! z2*aY0aHH|Wjb;4=ayh%$O3{tzC90=b+fl}eod}C=(e#A%NfW9+zu`RF_cuDV>ukV& zcGkD(o&71+<@+1*ZeKp{M#&obSuT0sYCxsQ$NFH_)0-WE;B5RJ(=TTTHo;R{@dtu^ z_%;RaUm*{xeFev2FD^4Fi_?`_m7PpVeUY0C2n4G*FIn*f*Wt=H49u&l&hU=OuK>s`*f1LUv2*XUZKIn)f^Ma$64tgUva7QSt;hWD(HS%+?SSTrlL#feOM z)^dwxM>cr|g%Zfa;<8ZY`5}jUZYU`b2!1Nx)9~;CztpR(siNd4&*D>l;K>jW#ZSlocc#^a$Q{r%fip;;JqNZF4B>$}MS0no_=WW#!Ry zWj_0wqoP-be__bsTM$ZD?moH)eI^;#BRZA%qQ6wbPh?$(ya)K-p}$JLixRItDOYCs zdM#a<%lE+|*D2TQP|*Xr5dFz@%k^dvF7Ka-4jt%H>cB=>GYmaua?M$W9vz(P;v7j+ z(ic5;a8fV$MfE7@bwQT2Buz<6^eE|x9wjYF^K5$DjUKnq#)QuTt}&j^QH00y$ynPa zIyVPkubg+}l+vTZYGPT0O<_>+!lJrLb0|GRa@`JivB044Anz|{IpGIBc|SNPykx?Q z-L*<@Q=+#Fc#^U!Fy(~7Ea8lFoRSWHnF?|=9pntS6g}waC~#PIZAdtmbR5e3Y6f-o z+DRLx{QiZ!H@4s({7D@*66UA_vyb;l(CK+m*&mUAKz1t|spE~<$)&2vu~cn~&ZWFA z{9Q5rF2mo6zca?ajo~k2SlOj7lbxZizKcDM*j7*NVtMBp-I|@ke96(Rf%V!p>i#?Z zTRy|FzXNI?=UD9Rkp!{74Jr@uog|UhiH#<1x^iu0Dt05a+^>qgaC#PpT;9c@TiyW4~5Fm|fYgjU}Hn;+iSbc>Ltu!y3;0+Bh%%oHs$G z9OUot($0M?)UljjK$>EkL?7cwSKiAUPudfF?-^}+AB^T}>5hC&^x$yy&`hpze;G}SPvAp{!?cCwIDx}a}(_L>=rn{Q*trs=u zaL71ey;i&Ipk{IxsdZcjwH)G{hb#R@U0gSACa$#gdbrZB*T?OR+W@x*ZWeB5+=jRv za2w$|N)Ku^y$7{gJ{a&E#11na!M_V`stf-7j2Ft}9cXwg<=su6lpA|Td0eF>S_glL z*4bC0_3)Nxj88O=kN&Wf{?khz;K!bq$u)Hkb#XA>@G#y`#eTz)r$;E!5#h+LMEbL+ z>@eh^wDD`p;fL>8jVPmi^1Y8?&coVp+NHdY=PZ{z*K4DQli=jNUDETG!WZ8rvh$AI zNH0v3QwAq}wsXC9o&PX;;~ihxZwj{3O53w@O{4M8qHMXuEASlF`f^TZ;>))%5{WyO zbnNIM!9#yT`Llf`+Bo&FHpVCE$vA2~`ej_fImw(Od?rcSK6HlO#+M(~CQxR1&(1}h z49*>@zQ?x#un)LdxOUDN&aso@gz`Y}T8_IAHye2b$2quS|F7dXSK_$nixhcZc)d0f zKP!Ht%HX;5J#Dlfwqb9q7dAcbQP%gg@#XO7itOn0*%ECLJX1}m{5F1RN$2*NOE=-s4zcXKx@kF|^ z;%I*Pdg8-y;2?7GQ5h>rUv6_WQENI#KM)9B3b)0^d&AP-IOt=34~N$X8`8&EN*TYn z$(Obx{fP80HYaV~>t|e76iOuxYnk*dgZZ9AuaJC$!r|^keuFiW<0H+%cUq+HNO$zY zZVc8E@Dm#={X-glHSjY_JjRIP*APEDeir;h&O%N_PBi2O$Ts98L#~gUf}Cu~^^mQ| zRzuE2PDV~K=Jz)sX8TTafLBoPlgcu3^ZvkrR;947nDv2|3-#bvd{$ z+ILMSWkN@KKkD44Io(6F^OYf*yoc{ZHzxcVIfhVoP1N&=n}FPqa2aDYLN+638Q~3) zEyxXw@GRs+(avHM92v0yxN0#xMq-jDHJ|p_rdm4T4Jt^bdbmAts_QvUBZ=62%#_3~koIdu( z>4SHLjr1e>*c+!0-aj_NBl_TcZ;U>;&Q!`|G2%q@u@@T=sndu)_QFi0P9yr@y=gTP zuIrUdb2N>9%v6s3C||^QWkh9)Px}3ZN3HHaaB7U*i@z^;(P*pj_XXPw|M>fY z7YzS1-4~3WF=O2HnUkhXb&elBY4W&&i=C6EI-56lPP=KQI6Qk0XVT5%#wvf|v+OXuv_PTjvp&wu!z_I!RpWWvme&Sp+Y zs9WED-LD!ou+Q+GEhVwYl-+;8_xmHy1m$c0ZSy+(?|;r;iO$i9F8{l}=RYe^Qj^W3 z)a376{aF4)p3UXP$T9~j^PiC|QE^5ObvIFezEB#Ip3FU$N}~D}TY8xTO;nIR>PWB>8TA55@OM3cTxJ-sdAI;_U?cQGD zPh0uZPX4$QX?Vmr?G*WxaZ|?nA`j)F58(QFdR{YdVBb*%lg8<%j^VdLV$N3VWShnF zHNUtSJe$L9h+A&R6^47laNSJ)X7LfZQgJ1o;Z_)~Og4+Z!*E@OyHH&6Ibg^unJAWY zs1`kb4{@2V9bvdL4OiNWna85D#kEpSahYhIYsd@5Wp=jMkb5UZ(i>{H6FFD%E#(|3 zSHN&ja*p^1c%CTbD5G&mxSg9EakHpU@gG5Zl5)*7++xF(b|&RoDK6z&EiP%VGvt7{ zuA461<-N`NW}^v?L*kD_i{Yi8I9$ zBPZvylatsa-nPi0{#Wvq@XHN1VieI658`FsC%Q=-*@Y2tquciC2lf%4XxLChnvO3v z-nl%-s3N_I(UWka>4{5|t=^dF*BMB~M~WcVK@-rQX^?OARzcgCQ7xTHPdc6{lV*%P z=kJKSBELW5be{b=MpmSt)z2*DIfjLKHkp%a6mAog;*ft1KSwlk(&))8_2T_cKcuTc zepd$b8nZ>#sGRaM>Ggdo0)`}JJKdU+m|)r@Mj&SU_cKzfQr8HV_Ec@>^~Mro=p&YW znoq_&G%zWj*q3wNPG>hHzvy-*yOBZL!hD_8ZuE#IWVlg|;_b$n;<-3a&S__yFY)5b zC*kpSBOkwWu^Y3EbfZqReDQWe;+>1#c!YT8VmBOQq!L%`hAd4HJ=xB%yiGY%JSmHu6D^a(JDshFUn@}@o2ik8c=chY zY(6=bP2!!4t$2ZW=dxBpY()ieWsD}f=*7VvZ!1*dU4egei|R$1!!6TC`_6fc(e}c~ zPnDd*7=wpYvQ>{U#8!x%kl(eF-zkx2y<#UUn2v5zZ*8IiuE;#|*6lgy@u|`Tf^tGUdc@m2ye)=tF)G&#Wx@qd^qDFl6$kEkbS>&5V2P?Yr zVu*W-Oo2r=-ne@jyw13t&Zfy2A-V~Zvc=mpxzBate>R&|EGNfo(He`lX=jS(;#@gL zT-hYvsrC^Glkj+(wpAj>Y|(ttm~@ezR9FGOSO}Xhx9dI%&XI;4%%IO zUzYV+=(oPr!S585&rwaT+1zUltVEaf<@=XB>#1*Y_18?^K&6SeVPBxO;tJHJ&D2jo z{u|kZ%(%b41^G{8p4-*t7PG#jeG=J>%v3{t2l5GI3vw#56In%0L}vJ3-;G?3oP_@}V=bI}Ssl4% z!t2PngxBI*_4T7^ir)*wJ<$vOdIp57^dSm!$=H*FqJL9qAb5dZZhoJH@94LZV=v!k z_VX-28A^HPe?%Ynj@`ME=K~8X)19xQ>p_*Q2@9G$JwtZaT#fOPEwkoEu9N35tWCMe zm{V2)o=``^WNkvCGcvDla`t3B*}MMP%Kf2H?l~WQ7!Dsi zL^_K&U!Hl-c5T#ZD1pjX$XmY6t3PKTeUM*bUlndNeP>Mil5aE*i4z@j_yEDdZem@5)QQxywBPf_%38t!mC3F-p(G!( zR%6vPj6n-;7_`!T1v{IiY)&=nVvdZi%ROK9OhK=dEVsc@@-ju>no@*R?+oY>Iq?=_)lAM zddYKuq)$6sq$<>j#F1w~*3!Au<6P~1^!5mPRGcMxy-8Xx5Kr{3$E8htMjX+plvQ*G z@Ar$o-e@c9sv@=}fqEs=$E=FzCSr5Uu8Jy?Lk*fpE1Bcpe#(#pCsW+5vxD8JmhDQ=PTE9ut{n#%jKW`z1y2JroQaX)<9r2a{`x+AP8ucs-F zpoz7n=#DzY#!w#a>#UOY_vlpa@kFnZpSU7NpQX&0+O|!#Z63>I{s-I#{--?Gkbdse z78#?Rpg~2pf6piB@u`7mICfU)8y#rS+e^47Mm8eq&VT3plVl-dz}Ws@Y=VsWBy6%N z65fyF=qBNV*?okS8sXPR192sMR-8OHPF@`+KO85&EHe7>80mi;7fuINy-9xGv5UTB z+$PtP%z2xUr5qwFF%36c|Doo{laqnhv>ny0PyVQZ`2+e~(`yv(GAUifFGil!ZtN)C z?^Ha+c&aj%pHhzxGKRNPMo*qRZLDHQC>l8|5uFD zo+j^GF+hqYJ(gepo<54-IM?%|VAa=fs=V?`^7=XPMbLj39u?_ZLoCioj^r7Lipu0! z$4}xSXVaGDnMZGNG3ax}&BTI;TTfAr8nU!`nWOy4a8DZUpN4yaI?ZBGltJCddtGjE zNk`iL|LNSOGtsyZ9Fo&FveL)r?ue*#X8gC1V{EXr3OydiPibbzQ6%$Y(jrKYD{lOl z{Y>#(#yQcsO^L^4R&P>1$^UZ0mH4tvCSFeDQ2#4&WbbXbx+i~Do}qk03F8`kvGHQr zmb7G(+oR~Uiu@YsO_T#;i^da|s;k~|=#)?3$+%SKT&_d-lVNpidYLG-VKfoKqKBhL z6~N5+bDpp0(6Qq=&sQ85BN{ihm$k%Q7_Z3t90?xQ;Q5U;9c7*nw~Y0t(O1fNY_gGsmGV9nv8Jy4BwUCU-WbGX5Ci&ef)&}}n z6Uni~%bIIHYrWj8AI9J5E77c_<5jCNO#1W1R>yq$9HE&Q&F z#mQL2F-Mhgt>kNUjaO@5J}vlQyFf5-d2N+BY{o_&`g_Jx<)!LkUaPW`hpbh!@Vh6n zo?g~0Co%5NbTG&3WbTIbK{=F3((@~hN~M%_Y@{RWB27xYO0&B_wJ;`@HE|%#8tWN) zd8F(zhLG|*xE{tvYc$3_GB(TA&lS7|R?>&qtj_U_Wd;V5TtzD5#WmK_f$B|)a-|i& z8H#c-ca)W;K7rb>!F|cFU`im+))ELbwmKH8v3j_ga2s_fx)2?RE|SrSlwGbHQ*}`B z4N(==wg1dGCe<{va;`hD%vL%~J&G*lGP~xhW@T`2Bsz9*{W9h&AYHRJ5L`p~^|Wk( z;MyclCGEMs$S>pnw$Vn`wLR5FmN-w1siWnbL0oxvL9TtijHN^uu7M%ZQ6aL^#~Mz* ztT~O0ueo=8$>Lh8uNjlyd6IRw7s@!#9SDvgty_(Jb7J!C8k4U|oI8y;)|fc4W&4CU zuNiTU8utY8ZCu8-MMj)mF>%($SGYGUktr@wp!lM(-b!6{GEOZj?#=zOVw@Fz1z{ zSw?v?jq*+*9olR4eVCl{BW1=+>hGV4jgm5$JdrZ#<%qLU<^LfzsxZz*-6`yzgN?$L z{liAx{r{4UlJfkY+Nhfi8#VL4V56@2Z?sXPVr7V!i#`tY4hU!0h_kDgeM8Ch6DS*gLd}IxWVZNoMTK>67(?Q*#TGW{#Vp-)#AVRkS6t==Mu^MJjEuMBetxgG%nM}G6tn2{%f-cC6&L?p zZYpISpo_Si=M|UqCW=dX2Mk%}4aDCGOXBu0+=+%;Y`9`mCH#ot3VSl2AoC6Se1zei zG~7Q87j*S-i{V-g*KW8D!_CFbYDha5w-NW_;&MYHzY!?&BNN4S!l<~ELs*u4w~36> zRKx#-xLlvY{kB}UzP1&;$eLEs%Pw)zR{{6gqOZB);$I;y`clQ^JPT<{K6Y_QZ>YFU z6vc1&Z!+9nhI`y_9kgLNuY=(ZHQZvu6&oYvUTwJR3^!o7n+$ie;chY9GQ-_!xZ4c3 z0$235S6uXVTwL__r?`z-1A@&Gy>$?ma)}L-{LghGDd<-e)S_=4_}in}4xV`)XfB{C(oLA<{Omfgxe^q-1|$q7H?#H7d?M77wcoJDA%T_(-@j%kn!Ld=h zlrqROQ7MOseB|1s96rXBnS@^)6CN9uOBo&Pabw9y8yHK#|BNM3f-rmfvE(5=RQ{ZP zEUCtX%UIAK1y{E&)q$k{@9*KA3YGl-X?*{^p6JxtWt9_UEYvh60jcA*ak7jRqML+^ z4U29f4`x@{r5#Ip6L6!Og!AmiFc#7EM5mtJL;|AELX3wlJqLS6_0XGEG@yE*75A(q zGSG=cJvH)~)UH6X?aVIgiG1Q>C>M&$L)L)d?h+T{Cv_uzmj2$1^sVS#;>)uuiSIL9 zsS}Ae*Kj%QoVL^TaSKT!x<$<0zt<TU3ni<0Rg>^l>fdw`+l8^L)$@gUZ zlwA5RSvR5gVP4|W4>7E@N&3ju3}rYM`Ue8wMc&?@wZodMB)o~k*)eb7p4D_Iykj4vWnTxrT>z9 zSlJ{`>2J6_sosR|SQ{eph1H=E{(BP+!m#yQb`O5#P^f}|(q zlQiS+#mewJmwxI%v_O&=TU3nirzBo%8;i!H3jWcrn9s4FntYD^)VuUk)AW)>{zUT~ z&GL|`Gp9sv#m?GKb?DfcyENI({=QMMbeu8wV(HLp;k$;JJR>E4sywpROkWeq`cf7;MB=#0yNAZeGmgOOBQ|A3aFl+0 zuYNp&wWjiHS?1YIfo`EhzPVxheyO~keay>F__1N^j9-so1CDX-vHR?H_2&2c@_X%l zLmB0M?wdwdN*`r%vL04l5=wB)302US*vt28tzCUXf3cR=S{hi% zx9QN0hki-c)B5Z1{fw$S{N)+baM7J-UP3R9TRXdxMy<+jJX^Z}e@pqikjY7UPPI0A z4ARaHCi>>9Cf6sdOF%~s(NX`(X6PcpfuGtHd8Dit)^$_Fb9I-iEBAZ@E3=I24}Ke{ zy&^5mVI~dkFHN!OF#KI?cZiN9oe^@ak#t;=PWR9yq{D^idhFr|)LvGZ=SW2V3VAY( zW!sRDpvu@p`ewOa%n!HPfl9eAwxGW-g$KhuPy9E z@4H1`(PMq=$2iVIzF7{w+2oDPZ_tO?viQzjwlRj1`}$;0pr)+RVD_+*yD)PXbZ_;_ zn(@K17M69$_h_}z4dq&#HD@DhNKTCzUw0aH#{5QS;>vi?s@$W!ZTMTg^Y~`UN-cwR zzS8z(3@GciEx5AYSH6E`!L{QmxDMRy&W+m5mld&&yC{@Fn@DgjWx6vmo{PGfF6JCu z^YnQUMVY6W3HQi63S&-PM?AY{F7RL1%K8QB%b5Ehjo9<#nSONcCaP!FGSCi($eLL6 z5U7-K>Q1gru0zJLGM+s^8M_+SE6?&XsFW>Y?eI$=4rv|Jzh#JB>p*>^V%MzBWg7PB zprU@nH*yM9mwF9MrmMZ&T?<@Y;v=H?VRHazdHNSLyOdVa)ZB{tYc* zOyXdN7F+OhIYjPXIS5(4^%Ui@KXQ^+T>?e($uO{}Nhpp%pvhOHXYoMcfo`vdsSCLvASgf`Z+u^3p%Y~gl zuy^B)d~=QOaXB|u4X1ugjh9!Em#xE%8#U=C3jBdeS81Qn>Xa1q_oac#)f@6um*c8X zj-RzSHRq^v97|NWCaZsrYN^S0DJ>;O)`|JN{y(_yrQ$gmG9t}eB%N&jcZ-t zEmnoKG~(n@4~ZN{ulEhw&qQD3x^{7#PW-g;$U7P7Mm{O%AQhda`FrrqCwb>W+BWOv zoxk#Zxo+e)pz>+*)8Ey=e#yG|CrC@;J&x<9&AQl+(rkCJ7qE{tcDUEy4Z}|B>w&Qq z`q*3C=*Fql zXzR`1%5{0~YBt%HZ+@@WC8a{YGBQeU?yc(v=jxRY^MixN{e!rfcRzkLb^JV|@zI!= zk*8>X&)HAo$FrJz8x!aNayIR%=6ik^h+y`x_(nr4jo|?5b~?DJH3q?Hkn@+ zp+;=eJgu76-P%96;kI=HVk^Bvn|p^gdQQ92%^Qtl|G;krtMzv-UA}b1qHZ*Ub@g0+ z)zaSJ=)GCGN4<2ypZkv+Hr?z2&@UEH2;E7TGMJ*89Q&(C7jzb2%ceY$4Ba$!0(D|w z%6LvBOrIhfQxh<;nnMUSekJC8w<6u}dQHi0A^Opwl46r{78J^S;K=hJ2sZnfYAoV6DOf4g7@?L-h^&|$$h1UxA* z9r-?X>1{d+oH>hq3Yt*c9M5}7@J#{l>6^=V1`pC(GtH(htHX*%R0Lp18})nColpsr5jXctl_L%~}iW;GQ%%;7-iN&+T(eXYDscdKX!I zh1dFVA7z^5JN93Au2bvd@LtAN(lL#6xV;Rmf!!HU@g1c_E%>jKbylqRO)`C{LXyP;Ww&sH5y?TkZhZz0$-(!4M*0X>~Dbautp8L~43cu$1v7SVwJiZc@J zp$OnT)iFlSvTH1JM)qaS0+ijIk=Vs=&B1Ss_-~BZw?^zAh}d^xS9u)*ir&W~{-4FJ z@^bMpXRbEn=r)!-baZs`&DYwTE_?@es!c63xR~kSFK}MfMOxeY!X=n)nq9IWwZUE( z6RPdxM|)l3!8$Mblpu2|wK)k}pSSQuxu0Y2!7_-XDI=Y`^aT-i&k<~64k<`@wLyj7 zBRg}^rv!=T1wrERDMR6@EebDV;WD`sPq!fP3kRSuwupsd~DoA*>RfRuQGu0e# z3>wa8E+Z42;|((*I*hwkon)apH;T^jUJTI!&EN_~=XfW=%h)h(t|dIpcb!rC6#r!w z3SXv?iPBVaE%g`SJEJv0*f_t{IELq1!aJ3@Rxfz#Lj)Z?!EjM%?IDL50Gf*_KlNWt z{p970&iOv>EI>z(ZnmjoI zMdvVv(FNjVZfCEdr%d^v&m?fCy|n5*f?@PjB)n@%mz$=7?iSwgU>-pD`w3TUs^hJl zq<=^8xR)4@^WIoYx%|Kf#xN?2_tcVk6XvcV`mt~wW{zswthUkXz<3-I0nQM(n4vemk+|Mi8bF3TNRYDKRJ*<|bmnEgW zD1}AlJMm{W4tLH(ar`h8hvr^m;0@9q8u_$;kfwf;>~SU8Lx?S;47-z*dryhBL>DD* zUXi_^LLyB$nYnLvk7U5?84iHw7n9y_QGR*oG(bnXLXx>aUkKrwVm`R+7t%CRu{CFn zd*0KP*jOP!zM4Kr8RB<;%x}CydtRiki8)-8%2oG*)lM`ItM_?-KsrQ<=;~o#&-|v{ zB-xjX=f3r~joE>8%&!}VeWj!~sSf@6$7v7J^^#-{E#_~k%xW)`{*8L~*c-0z+fnrT zZm&S+D0w4~=zgIL<5|`LeWrd}<)^)}y1qi}uPNtY(t13{K3!j72X|iYiT4%Gz~1zX z=AER4!s7n&j`3u1M=>^b_{eF@@f-a+bpEH+^Y3GSs@QZq7ax!H#mE1gayRi2m+q5k zjx2peio4CONj&c(m1_*mRb?-IxYEsUrSk%y+AHPOq%}yLe z;_UAowoR@mKSx=`GKWq7RUcO$RvS<`x%N57#vg5;yaP9(b5_!+)0}3l;D4<04?jQt zcg>s?R$IJS`O<#h!X50fFd&!NPw$ewt&9nbYngV@XJ!Pf`@JXG4 zP#LoKL|LXYzV<++OTe6Q8|FSf=LyUma_-NU=MrYrwvS!5em+W`w}jdUyg9hTPT4Sp zAdZi+Pliqc;z{}=yuIX`xIFf_qH!@rs>TJ)CidY|zKu^%`<;r-I9&&x&Pq@o zj2~yhch8(gJ;jRjMb`$D%Ujm9(tBuUDZA4|DJh^fZ&Yw~D+xfKr`waCz!1u@eX8PuNW7muy z7Vm{`43Vc~b|3xYAZ52w`*x|G`2qbLP-R?(eknxX%LZrcrTgo!`gnR@rD2Q@9@E3V zpT?PYK}WntW5ccdjv4;*Jn1eN9SpO!(*_3^ul&F*j(R4C2bzSH2u zEe?F4igRHECt-1tA)Ip~I7y3B7s62=2**`taq2@jtji|h)LR_o*QJ>$YHOIzG)Kqg zNjz3#jTy7jPmlYY>GAwqnU|EukNIPz7-g!nBhH^W#TOdA;iGa_U;nP!A$2}x>%2sr z{LQP>$v)dg_F8<^;S!7AmCN+WcX zANoe@yM$AnivOH(X^_T@jZ-wjX?zbjyi05D=p3LKF6Q^$!0Es>K*|KOqMXs#Mj2`T z7l%d?-EGr~yFb;CEqogJ=oe-kME>*CuF`oudTWX~5d1&pFF#`BLSy$)mR;kLl{NSS zhHpu>lulW%anV~Pud6K@gLVch$*4;GD z*xDNIBYn1yEHUljn(}7gFWf)K`>Zv0mf~IXBiq*0KbYTA9y>~=e}r(t{lnp$OT38? zPPl(K9MeBSIN|=`a7_OQ;e`8#!!i9MgyZ^$^H)1pKhPNFWPt~4dwkTkr@y5wjMMhQ z?JYQd+ji~RwL`V*v}Fq=>4%6Dhe<2vx0vgpgD7ZU?V>9iRURq*4(W?40dKc4sg1CuGb1^e#ZEPw-GX|MfS1&R0tTZVu=hki0waljL z2so44J^66B(L4xuLnIHHQ~xuOE+FmyZu4-WIYa8#bB0owC%XB-ujdR_e{A;u{W(L5 zHvOwQXJDZBrsCP+5#kT(PfeOHU}s&eJ;86Bh@We&9_8oa<>Kk$=LzN+uHVDkt-jV` z`QJl)9i6fNzvJsE_~CyxUst{TpUKx(j^{Ps_U|)qt-$kXqHD@tj%o5&<4zu0kga3=QxBo-4 z=8O^lG5>4Td*M#DvoJ&>EZYgEw~_TlJ!uxr>!2ywoui8$ztpTY=HN-*p|)|+_mH*S zf$Vrksfd4~nYnt~?FJ`hagdi*agYs8!kJ-lk|7-Q;Z4G6v^bpquhQW>`6QgzSRC#p zR&h8(J_+YEi=%pUX+}QW8cy@+7RUMPjPA_{TAqQIX}?bUPijMEepux0WtR2T80#zY zogm-mvCfwq6W#D7@xDa*KF&QHtRyK@>4w&NjkD^l4P)EQ8HpC;A0I>xLLJ;sz3m8O z%E*M(_9XB13Qa~{g^w ze93e*PYdL=?=Gutcw^r>tLC;+cRrBct_tM0q=7lnJ(At3{i%OQ78FCDc4HR3`~K5M zBm<3m!-4EJ!`zzvhT}P8CRlrU-;QNhY~Y;VbX^in83fQy0;nl z_l4{V|GYNPj0yZ-4%y}Z2%Ix8f&Zf+yZpx*C;LAivdjOV4o4Xigg+dz%YOt$7ns0* zPslF+G>tgyp9$IJ|9r@#h8HpBO$x|*XW-yf&XC0uAlqaBMwa9|5(WG zd<1p2p&Hb9R4c;RPUZeAYsadgZ<_s6)pwHLI!myy>PxxsyPL0o|1#_Un-PDVU0|cf zTga#II;+smgi3qmvfmrQe>h_Qe8m1$>}p?)HvBUY|05CmKSk_QonKaa)EzISr;T)~ z{T(2j>=$8Idvoc%61&=0&ib##K8HbEO-}ej*cV{$vGzN$@50^%l)v^9oKg9GHe&zd zi2X|u`=N;ahuGDg4?;`yk460dSHzwopK9MOzwOx7o?U(~#a_hj^0NZ_3)r_=`Zr-8 zU<7gb*^XW9*~Nb!cC}xfflzur2~>N{k`CE**2FO7_I^(q);HX^^(L=7J?G9n>#>oh>SGBuaBom`KRN@?rC3^PSk*sM^b1phIEfs7g z*s4iHLW)H}?C>cVzN(=yO3KXgEgO5U*bbBluvG7p~4+2H^DGLu<_^gFKJXZ8NfivGi{$*!DbwKd#%n<}Hg|`WU zcTA82NS&tviMLCT@>(s3`*y)ByjyS)JWLQg%_U4aEPP4sOFYkqr?z!bj)LHAv+!=9 z@JB5?Y~2SqP$N9OBQ1Ey!UlM)?9D)hYq8L`u*1SR77hcIpTia&148VLEv4NG zlK;Je|0{U`!|fUkpuN>1M`6 z&%|vzH|VpPQYyUgNQO7t+UdT=ba0+8Y=kRAm!EX+;Y4`qq6#ygPeynYS=A_B`BU@; z3SVX+cpbq{^ItgnmRV>V`8RNa^sUB^JmkZ8O0zSfB}4NQUe(+Sz4cXF5T~rdXGpJ_ zm%!7V8rF^;)oIEv4Wye-qIc+Z^u7jJ*>#v4P=!JYI>+{N=xU02``eF0OawxCip zdXzYuVb-avWjO;^F>f#7#!Wcn8&muF?X0im&t8hdVb6oLX)V0o&GZiyO8yIc;3tG% ze3J84PjXJ97A|SSnRhgeya?J^$%sBuIgb3r$kWXGS)|Y7jWX8MY4%*xlWFeI&Y(BQO&X!a(9;@+mXR@JkTGNmJKECt9C2xygd9VzpAr53?oEuVJB}>R;vc#=-8df$vt@B=_6&>QOKhZiL`Kxe- zsZrg(k9oJ2yS2Z~`akV)x0^gC3Y=NXK2%A@ywsX=*lQw=*o9XhA1TC=>?g<3^YIB} zTeNrS=%4s7-^cj2^Xc43-GRax^`iy7jn>pLy!*^`xc7~1 z!MT>wG-M*4U-)#)=#StWfM0l8`|l(UQQxZa?~=b~7f^nqq%CuAQE!UqZISw6&Ybme z7UA)SD=E_b#367w ze-3-r@URENc<{mp^)|?~G_sO0d%kK+@{?Toe8L`wo|mTH($w3$Gpcn&xuiNtZ-RY5 z>gz#QPpmD7;`;J?@Snk5k?Vksz?*;#2H&`GhV)tb%Cm%jwi0VWrYD&lb}tPay1kU- z4u5j^?(q)tsrD)T4a!f@Mz528lm~-$6-wXyGfcZOd&CEBD0-tGD)O#JYP!e!E#yx+ z9@H*l`JLm+ALkZ+@48H|&zXNqu+MoL{p&8jw$G@xG>bA$cxRQDzNZl5U5`|^4U-Lp zxib=mA#4K4M)_;`LhSv7Sz^PaLt$=@gi$-|w|FmHQcF)Eg4c~aO?n8_NB^hVd!90+ zyi8e9W`Bg6_G5J)s*XIndR3m8qkf?y|4?Q6XkSrpr8H94zatvdM~w21Lnk(LM@h8e z(0UlZ6z!~qF!cqsMV-lNHf>|hJ07l_NqY6Bjovzu>=4;N${W3(-`AJ_Z+>^YR_Cui zUeWoh`^bmNU+>O%2hb(b@S&f02R>A3K7cL|?_J1z>GxN3jY}4rr2pMPd92_&kMB0V z5Abc_Q+-NCth_lsL#L#jJydaJqqf3$#ao)q<;Q?Y;Gc^Z!C(Fj7@L!%4Xh})u_uGf zIWf5OVe>Xm?21C-FUd1}CZJ8;|Mlm`Cz{CTLW}bx{yqGTc{|6G*?WuKXFXi`GI>)T zU3%K#GY#qsxT}AAdESZiK2(|JkNp@KW$IY_!<9IBzDngqe%}QwTDM*Nj-xY0{+sy? ze;IGj?;fus?;Yf^Q+L^@%dhgLq-c*pPkh(xtJ^YBe-=(%j(YC9t9XpIu5*@#chM%v zUqW@Y-p09~-_p~fIR7{lKV_bR*OltC(90LfN()2zM2GKm(%eAac4|tWQXflFZmyqc z{P8lm@fio!GEUK_vLhxPDz~;S&iPPwe@L2|`91AD8i#`N)cY?<+;-+`Zl6)wiGLdD zAniJrNnU!&x0833O^h@tZ~p^(Ec3l1%722iz(Y-W>3vY!=f5#TSk4}symC&8vR-U{ zZ{oM|7Zq8w)Ehl&bEeKmbK`%eGNhe|cbon&x}&lT9L`Fc z`g3XQfo39eEi(CQ>2uds5(~)F!X2eJcIFJFSmzFtcICmPKS}yUM|t@Bj+#A=aTP(I?M zU+>rjdm&uy#ZY z9%G<6!>90ae>`Mg#BUgZ(OD$_EBJj#ZNiwC$Cw&2btZjJh5Uuzqs6E(oG=GAS{qA2 zk2$NSv;_t&Z~W+VR{Z<?#;p#MaOp7RmZev9I(85(xToXUO+bLXnjx;bC91^X-S z!>;@tV-S}7oV7~T2>*eqEx`YD#Quj7`umyr-uHwm0B zm-*T=FuGhW@>cb{V}YJpT`Qd`YuDSyR!zhxTIt=ic60vy0TR;TwULKeUm=+f?FU#D zEt4hsMsjVDs)~-D>xp$@l_nhEtu_$*L&cTd%j1$ygbdE^mjI7779z|sA zRJ$=PHKu0lic98=e8N8&UIrY6na?L9dRg-;_@{W~f0>2Cmst&7NAT197mmJV78*zX z4WA%=QF)~BlxAl{OC~Ch{C)7&2VUmC!xN-SR82F&tWg|P)GAx$Lwu6vSuGQOdixP_ zy~z>5?tb>$*O#2a+>_nWz4+o&*N1YLc88fPk7Rz13^FE}U7GuwMn^jHUDBV@nU+{z zFz;^UOm#hTG|eAlUcSuTyCyHI`DP*Er3+1DnRPHSFy=t!JP!B6kcW*o`rP5-ZkU(m zeOTsw3NJUUZPNCfwy`sZRCv}XMctEfbc~Km*8Y;QHL~vIZXj}yjeH8t+2sgznFG?Pc|-XjVNd6tMDOo_ zPOfsJErScR&M|j#x$8<;em^NW2LB9=2Z4IKMQd%{ZIhfOhEC8AW|HIkmvA@Wz=t`b zRjP1Dxz)&FprJVKGx(TBcE9-ede>eA_lDl-Pj_l#nWv60Z8zyojDEN%xs*wV|Fn5;c)I`Ok7Jn+nKyBjM+$)Y4$5jT z>(wi%Ppu0F?YeM)vfmL}cZinWF6L}MvIZ};>`cj*0(~-{wr#&wHwD_{?&@33UOqQI zLfTk^R(1Y2hT^#`6pv&Ly0;joo~5f+b=^R`)LZFF+*M!5%}l$I-yzn1_1tY7o&VM1 z*wyq$|BhliX_%1|^rJL&ct7sp`sM6kYCCIGm5J8OzirFur{L|eY3;M?PUYv8P+BG98MHXMSEM^E z!nr?$a|<}5AOH9{b7)9D-x?TXmhWX4{r&Bi-`5O$5oSEZm*X?z8#Kx5gwa>tca71r zOrAqa>Q5f2l;zVu28y~@`3lzPXc||jMvX8|B@|9E}$|Le0B;)|9#0kSEy9~hl864O#qqf7!_+S&*{_RRbQ(f&)bZB1 z+Mi^^3jb9bR&l#H7KY-VZvE5gk5(Fe@|dgfzdFuWx-hKV%ipDJ9;K}I@O7%p7_)LY zj4dRME(<9#jS%-XxSy2l+u2HTt&Ig6rCDGlx%{R-{~>wa`yCb%2<-zm>UHZ3m_ zkLDA)<0yWu@o@ohNgue%IO#Q&k-@h%0GXz;1TVV5ZEonCO2_4fX2roLif9>%- zM_9F|8%cK`@Hc@Af!CRQpf|u<(Iow6l*!ZWy1SGqJUK`^@$6om+1e#z zo~wAE(cs@vZU(o`59GgU_X^XPQ~A@LNM9ZLrBxT^PQ2&te(yZX%iUFR`7m`y+tk@% z`e|^lp0H|LO0VaAEU4e?PRd4l8R*Bk9mOz>pTa9tZo2C${_|?(cC~Hm(=$O^7p`mT zO0$U*9RyS9f6yMy>9OGak^C!pQg)iRN$*3lNLwBY+Ol*{s*Z9m zU)9|WS#ROx%dbV@YS*Q*{95;#O2IqP`*K?Q2WD#BYr8`JjBnlnWC0HUY<{#jt5;|A z9{3@9Bfp;r;VXO#OgS)t?lwPUm;d3AUEz<0?DB7?2L>hxzc6H%|MMZc!WTn!8_yUOEsoe%MC_~|yaL|~4EzeeA>zL^V!u6N-yN}kB4Yn+#Quj7 z`=3VaUyRuQB4Yo3#12#S)IQ)7CjI{$@js4TXA(Q$Ny?vil`|@zb0YRx*wtPJ@Du+0 zh<_Hl+RGv9e+_oEj~|uU>q`(j`5CTrUXHs~v>EK~E9dXPoW%-~LEAdmQ$Cn{OS^(b$b! z2YcObNe<2L$>*WNa!NuNAtF#`lC79hHg{@wvd9vjfer5ssBV})G${vUL}{Hrv`wd9 z`zQI;6#ePfz*cw2I>@|<+eUO-{~)UBgWOwRlR_P@4VRaTZPSJUPrrfliM@8LItUyP z(rIT~j3FAmYk4nwXq^eJbKn{3QnJUqAQR+aL1cA<)U9NRBZ9uw<#R4=Ie~o^dk})> zF_#r=N9HLw8#;pcj|iSm{}sG|eF?$ySVIVQF#k;gnfUYx3g1F=#+P`CvbVGUK>tv< zj39VD7WM%XwCw>4*IPJfVcx=R7H+q2*uoJD@3wFhIP;Cja)E6Z(r*Oc#28F}6YLNq z-A3k%f46lX5F~vg*1lJeNtea}>BfFckaRvSI0Lq1ryvWEy@D`gbM}~UMh30) zkY>4e02SXH3l~^8DE~{C;S0{^Os^o}G_DB0kvz7EL7bwYiNR?m%X(X&;S9~dn5e9G z8$!<2aWmmG;e|&Lc(eILFTp3%9ik<>{AAw9C;XG)sedR8Sv5xV=Gfl?idX)ZStxv& zZQxP-RU;gI%Pe#rlBtJ{aAa2Vkv4TpV}$ocX8}4qilLeZdH*GN>-EDLhbKsJRZS;@ z|0oeCdKNb(A88=XViLWBOd1|@MDTMzVfAZ=*3~pJo=ny|FLTKP-HANX zB@bG}`M3*;ytxNn3>iPoEOibtrx@~X>heL~$c*0Iq_+r(>cP|T`&m)x97o20qZuDnJPe+@TM@e=gS-j5T zE1l9~n#eSdUu@|#6h|xPNlxbfs3Lh7Q-Ic3M!#2Tpa`f2vSIImB+_`_n!AzcE5eUA6PIHxUn66eEx(&B&T$1(p~ zM?8LuPJ;8^99#MZ@;hWe-$F(d$R!iL;y}ihDSUp(8IsrGo*pr>q!@WjB9Br&RUR(S z<~Qj=PMFf&0;4Ai8hYceA@`9AeS~}yPae5uA0OxX63~cektGddCykVKiD~ce#WMd= z`2b<(at@!myC;=i$-Y~m>GimIobi55028rv4ACI_aL8tJ$cW;+;imJUSF7GR7njQ{ zs&Llc$giD@El6)pZ!$mUc}CZ1X&m{X>Vqkh*(-SsG9)8glPui6t7hcK=$wjC@9sB# zlYW~!7{3BCod46u!~HZ^jfeDkv;J+Qamc<1`vHC@t$ihSXT--C?*ax@8}D)}xQDuE zare?*9dHRos8!1^zjo=0m5aLVP{s90)}4CD$P8=Nwf6o`@aPZZM~PQ+`CJ^xK%_gv zf~RVx8qXeshBE;ReC2p{5RX$C&yI#@i6+T4COV#-2#-E$!U)O;?^MRKG>kHAT)da# zh*#eE3GYN!(?|?v_JMeldbE@cN@rEp3y?n@9{gS zy)F2A9d~=C9Vo=!1K&z|pQzks@N$6+9{yg3dmV1#V~&?4y$@G@AiU9GXnex(^CUdb z`Fr?(4gW@s1Mt{K_$}Qwiy2?wyX7qVpKoJq%ijNR<#Kqrd(Vdb`+#4PpDu7jPx~QP zg5$y8n?1X~!yY=lrzyr=2F9EwjRo2>o?WsywZATD6VO^ zX&*su8?2k|9~phn=1xnYypK7;a^=sbzKGB5i73uRxV!imTg*Kdoo#Ps|Dub%ahIQO zvv;gFY1V+R@@lYk(a2s+Gx8`a8<7oXmV! z`|6CHtIF(YoAV$s_WkP)6v|9qQb}mNhq}B@zj^ysb1AwtW3<}H$|>5&ot2#Y4-A7F z=s%p?M((U=jCXAWo|cLe-+N8mA7Varz1}Hqm99v|on#M6@n=Od5;x+PNc#-*Z`YA8 z5B;ic|7vplJDG3Q;$KZ%T?T)5#p&f%9Xv>xs@`dTrcRRwsM9=Ou2ACs#YDRe<8*_% zdUN|g4O!}gFb#xhAWWVxm)S5qcHc;0K4s%MqWrq@%HLVhoe{Nt4;pIc+K=wVO?96{ z&$#rrFMxmTp)yAJH0Ei=)Wuij6FJIZH0VAbA- za%Xsb@ECM#l7^oKbcLt*>a3f1fcE{I`xW%{!?qq8LVf*t>Z0D(h2F>&{tMS|K7sIN{~Ovm zE2h0a`6-=A`QiRI)=lR-Tpyo?zwp!-J)iOd7d{qF2Yuk9yt8~iZ5+Lvl(UyDQlmHU z-T?c&wrrBnS3gzw8J4Eb6n&2VG8GOLV&c_ZB6ohI!|rJ-k3X<^B)*`W^W>qgP||%b zFSD0BJ=7;|N!-4K+tc9J5qE>PH>d;Q_#xiXcQ?G{?#guVJ^${C&f)xp>doJ6_*z{i z*y~l?;%lyKKMUUPDqqC6%l3zG9jNSFI>aj=*t zZqp)Mg_#PU^HLMr=tD2YkZtp|@NK6b!N-hDMQ0U^F1}Iv#4!Dc@=1_irP0gf#+#|H zIq+rb$mAzO`NYV#@n?Ts>w*sab%v$G<1OYiXG?tAdKHH{z|Z6vsIwtDXYf9oXSdJ% zB=l8=F2AZn?Q1*yH0hnZUu@P(OlZgFm5qos66((ObO8-y!l-C^GQTf&S z%^CSe-`dsL5NAyOBX;Soaz_5W5&JC>`yCOx-riMxKT24o=aUhC){(a3wbyn|&Dv1T z-qLGxy;pVhF6miaQx?>7eQs&6lWFjbwfZ(~cpEXiRXBNTQ)F{jF1X7D{w2W}8y8AXjnRv|-bL z3VZ`Ev~itg@a8Sv>WedP?OoLU&Z}2Q*HR`#R0)hwRRNjv9BoL0G>6g~Xxju~?4yEo zxV?g}4esOVt+J!Cv#5Sq5WDW{>8-PzAQR_dK?KWY&Ci5$zw8Lw9=GtA^>1L@(Y=y( zK{~Q|D~Vg*VEl_HaP(Lh>o-d!F`cwYS~~e;0l6dEuX`5wE7| zJ(6ooC;!`_;S9xR45W=*JsViPQ3j1Hb+55T;f1GQv#p)#HfD8*mK=mD6P4kd2rmP! z!ni$B;Zdzsqj=?inT5ia$%EGs{51cCqi>mo#*u$}!3!JV$gJig4|!wZpYTpa*7GEI z>s=tAqbEplRm~jaZqmCm0~hVHDj#V+oE2}?JP*Rud!)$t)@`c_d#Zb+^G>jL@s_t< zbcru>@;%aqE)#uK*7F)u%Q>?S&^|z%d0sF#>?@{E-&`uhS<@gpk1?k;GGm>cr)ikI z4d#O}=7}c@6KlwscTp11)?MOxo_C>iF)u=1KFqsJ3GbW8_+w|%^;!?Hei$CpUckM@ zCo=bQ{~=NAXU&3$3VBMCeVYfFxnwe#ufm0pFX5-TX#%-Sj5({)ul3;h&{Mi~M>#_t z@|Ug zWNx?46-zclT9~tQPuhC9rNf%6`g_kWKr>-!CZPE&G!xK4xATO`LiZ%P)07c7Dra}!US;h0MhCFD2c`0N zWsl6D^-l;tM(3!f1Dwv6<##jRVVdADUzShugTW6#do^X0pH^H$`-l%0N*8n#O4-aA z?}@UOjjxqzGxr>MJMDz_XU-qL=ew0@-N-HY&@@_R_)Mh< zbFQgBbZO^zHsOB;{%6FHVZci#-16h2f;dDoZbQ3mbgBgy(udC?uN z7VI%UJ}$d-YBXZkSzy^)uzT1WeBMLEJ_q}Y3m>ld*}z}t-;ZK%9}eu?L8(mR4%Bq= z==B9WATg|a4A&zkeh9Hnp=rm8LM(}{iUxGgNWaLBDVuS=gM1HRKhEc6zK;xG=XheF z>Koerb(Q#n9p-mjztOQF_n3bB{3gBA(5do8TmECfE@U0ZUQECD#&Y8uwO_^>IFY-v zlqSt}YFoB{&*pbm=7*JUnl{r^ejoaxn&&)R*+IRi-+tb|4>?O5o^xiI^OdbH|2K3x zq+>42Z6-f3yjzgl}vK;yJ2Xz*U7q2WVgnWga}Wz&2D8vg)Z zG%wufH#EefFSj&aukyHXa(Tpab(HH_mj<)fe*ausu?mr1=HROZ-q5EHn!cO|fb)_#* z77O3@aAn~=L0?yU?!?|O%pD2aA3Cs4%LQYRkAIRj)tIL(^3J3BgWA9L1R8)zAnkNq z{Y>`&kyn@6)DQCXgIfzR-NVwG7zz5qkI>)29DU+pzU_R^VMpijgm^(}+0 zzp!mYZC!0%?cMbm>HBhh=1-vURL9gb{%{H!uFq_RhU+t*fX1#9(0E`98m`X_K*RN! z+o91$o_D~L|H%JHwf}FQBE0J_J%o4tg*jns%M{_)P7&Vql`g`&zLLzhXTv zhTRqk`-g;m(RzWh4VUG|Y(5)8INyoje8A!yK}VS@3&x;H zbk+6C@R{6jP)`MD6lOEF zr|&iU8fMOctoY#1j;B^LClh`%`<2tOcNVul5Zw7nayLwSqIJXYn!erRPtaDS4@z^B z(|z8U_CHiSZ~ljh{#U+J@#j5V(cVU!`QM_kZ^GxkY2@>o3nQ0G%_06e!YTeG_8rpC z{7hr}cbTW%85-MHg~oP%SI2gK+p)b4{GMMa+b%?&CsV+ZmJWN zS1)vRW=r$<$-Mr%<{p{KL1iGG{6%OnhM00td1M(&R3^F;T;umUtNdPbJ?)2m>g9mn zcm3@67ewn_KR@28aa3V9kxuO$x%sc>e>dR&)RXSLsUF)&b4?#zt~?()hX3d8EPfOm z$15C;_{8b-uQ}(vdVhWx92Zvm7EwO)S^Qs^_3AYKM~KFpDQKwQKY9`xH-ICZ0gEZe zku!s~yE8wz{pyY&`tv^Z&o3YUg2ryo+rio-STl6z0$$ld{3!>3y z2W^OZ-K}$S4^=)v*$GegyTfhmIq*C`XoK<>J*};t!TmQ0qj}CZX*b$ydX_b*aMahr zG*qXoC!1Uv&73E@m;Sf2sD0Kq(2ffqp={~v>i04F#58!od8U1T|D^r?D*AnQsNa8% zw6S)cNRXD_f0?_(tb<+MPBn(igCA(E9L7;T)pmyQ6Q5(v-RhC%5${0hftQb85#v0h z+N9PO+re=>P-h^bJn%5<(|xRWqdaiO%aeJa;=J9I>FLR47=v_^5AwC~rTLP4FEQx8 zz*ppJ8#V?KRE5*hdi~U}kWESwdwsJ4f&bh1d6Oxva97l6S+Egjw)zz$yhp1AY=KKX+KTnZLC=qoIu9%2K@ZC+B{0KfN!2a z#561w{G-R9w(5oJPZ9p5gE(yFCb%C6p^v; z22pA>b>cpR0@5kvEMKHN)*we&6Oyy^MC2^X{)^-+f6YAav&dCG#rHuz>8(Y^c1m)V zEcuDbS>BFYZQlJ#IZLyZvwSfmXK5nLe)YkSoJDK#spKrIYro*+EUyE{$yw(75^|P1 z8DGM3mKRPSBY8DB%MdhNzmc5f(G$>kH95;#X#DTUSymF>^_lgg;TM&&EFrw>FDH|; z>*r5KW-{AC2k$yuHV;XEC|3FItimpR+>s&W>|bH<#U zg*k`jJzhRH{*|ztC4X+Eu5V{?-vfc1rJl8y)?3rE$XSMWkAE5dEqQ{@bx)GBl#sK0 zS z{$nSRxvT~!$-5<&QI30&xu^}_NgoQgW8Djgd3S#5?@v+YqH5XzsTCMR5%4WOvkIp zVcuutFlPsH7}9+wa+rIp97bixnyb9!7m>qIzm7+43(H~Pk#gT|%J%eR_B7-qeCFH{ z@)x})*TEN-$z-e?<`}XU=?j)l;tbz0R*EBhJ$&8v%L3bx!@y*{{d_uyHHYs-7U(R-Y%p)Vn@Ma3>S%Y1_7xG(jHM4IH)Ly>yy~gXB z${&XpF)!eqmfe+%#qZ>|`i1I5c=hKe#_X2g)Dmn z_ZGXb$G~p~#@o50+?g0(06pH2Ht*PI?DL2(gMUME_fOiPuec-wX-GeGRxveNO!xx{}#SPpdavXrkIv z!qq*IaG8G!+!*ihOoR5n@_QQioS!l6w9!Lful)^;lKZVYVH&TMCh2yquU~1>$ytw7 ztd8HhBjOhl$Z(rh;^uVBYF-=%SL2>|8)a|O)J6J({N>6YAPtJEtq|m`6F+2ILBBzE z|6cqx9wm5Ns6l!2t}T1%LKDrkbph@w$6@TaB~*7BD-*o=q`Y77Z^4+vJSmW26F$a! zW7@Np9$}69G457t?|LusBnji%qSEJnySBty)U+jYmn9$E4N$v#8QGs}cdnfgXX>bR zSNjqTwK?`(C!+KYg6D>aG~^O z$~r~es~l$d&i{teEb^)Q5ee^x(kFRyCS%L+w@I&YKX40We1pz*J*PT@4MCoGvc!`u zl$P0g676uiYJ{%taZ7)!+EqtZb+f8GgEHTVU1Nvrk`ZQygSzfcPj1Km!JHwhv=K(* zPLR%Ai8fMAC;C8JZ^KXdP1*dbJlHFmP#;j(%lTb59NYsF-Z>$>KgKTxAK`$S;RE6k z;t$Jo*Ck)8Q{88Ab^4Et-A^Pva}IYkQ2JeUw)Ytt;mdp;jO?XYaG&J~;A4DQoEPvp zp7|&|Q)iB(t2$0O!p>V0l%dk6do6>MOVa0EEXu^Vfup+9Z?(%uEsqTI+8d!E{mPC{ zqSq|Ny3O!O(G#D%7M!Ea@GHtda}Dm^SDweNIfLxtpW>H2@TUd%sXWBvL|6QB8tXuX z)%g&eAK7ntrs1hxkXGS}XX-4Kc;@fZc81}R!g({!vpmZ)8)!$4XI?>mO}W9>euLj?Yaa$K1ZM$ZHD^)((H$w_HK2Eb zHg4Kmm~V=&e2_W3W8;pR@dQ{=*H{Q4LAjK(ilH_AKngw*Jk+PFv4m~i9T{rEXr zn(KsVN$&n4ZBsl(^`Uy`z9^_CwZoj;u&bVAR~?ygCXWtc!YRMnZ|EVvxfA5~Y2sK$ zS*njX-Yy-P?zi}c`>lI`j^|4b=UAe<$u?-mf;OyK;{A|NP$r-v3c}zggdrXYqdV zdhveAvBdj5>^BjQ`q(bY(eWRRi#or#`c-(ZPuLXUf_7Kqy%&&Yxhu~zLV1F(mTo03 zUwPv9m*H#TamvRNv<>5K`R|#Q|C;#}{8ut^@!xLB%d{!WYgOm2O({-SerliB5trJO z&XTDv#EUil|E}Cj8gixI38mpj_~BpWt;(Nx>(_7-Kb1UPc@;l(eqX}vQTBy2rfEJT zJ~4;3DPEy>?!;>^hOT&s;WM}|Naf?HBGCKb(1*bF*8_d1uDUl9wfp z6l3@p{3y*Eu>O6O*xPoLJ^CB-ukn_#-4)&2Y~u^smCjo~^cm(ApYbvypYa(70{tz; z@_$hF39nE>&+-KP-bHgB|o?EapY&(ON<-eTOpz383$ol3kB zc?@67yzB7prq~$sx3NOg`Q%6YqXB$(nYR2~lD4EaEm;C(m3r(N=ECe-F;^{{bHVhh z`Z3yGjy=xd<>P0-^FHrCP@0}Pa~xvGC)SkX`Mbn#c~fz9>DcXGY^ZNNlevPIs!zR^ zH7~SNXP0qrNsjGe+xgw4c%SaUqD$KU=gKhWRPLZ&f_>G3@Q!-Y1H@Yee~nI@m>0PD zq$^3EmcAjAmcHfET|SXWucZB7Q~pQVA$p?uozpp%)|kK2&{n*6_&WPWnn_oX=ALqy zKB@Ic30O~FOuAETX5G>_b_ey?R(=jTdW$YeniV(cc`i;_B%!Tx{2Riuzcz7qjxvj+ zjr0B!yt!c9wU0ea9={H~&wENox|)tgf4HRmQl*9dma4xkJuZGxPy9jIomrNACT`O~ zJ(m8b(qYq30T+Hdp*f1ybj^H>YhFAVXX^6H|7}yBsoq3MbI&P_x}kHtbG&pm?PH(H za0_HQw?XuIQ)5gOD&$6-^yR>WoKN|u3ma$4re*?5EEYR%zT?T`aW6A({zaV^U-Fg( zZ(X!_N!QYMDCC;!W@i=*uJ+cfnw{wsl-umg{MCY3&I3m71)IApYjK~&_clKNjlMdW zxpOlIILG(A-{AA#?wk9g{0z*mfPSJ|H=CEF<_2&s7jx##3LG?QaD3@wLSR|0Voh!|%YvJXLC&vvO1H%Ia_Z;D!nR;X~Hcd#m`> z?5y~|i{EO=fvGolp0t@t-U9dzU{Ln<9D1_vn&1W9X0!(@pHgg zN$*$q-4(Kbo!`qs_NVyW7qWA{G<2t|-ecd^+)oQo>b)QFgKlL_y?Ljv$61MQg5TXC z`!Rm2&H@wE$C^-jmHxwTa{e(>Uk!6>cKII+*;QVLLU#Ed&D8MSFG1Zmmw(OFdH?Dx zH2fI;{4?L{4dA{zcArmGX#5>MPh!;!9s7>#?BmNsA_FJ*5eJO6`ZzuMako{ro9oP%j z|BoZ#zm8q)F9TF~-FLSGN_)SzWgXYCZ``oCckTNATek$(oATB+u(@~LmbJzLzuvTE zD1Ynb{M<|IqlV@c!;IcDoTq;m>EC>hFh-dgm)JvL%(I6V3uA%)y+!{n5$+W9-*N&P zCW3h;=vx(jUJ&;s=C>g`&m?J{iDzDbZjv@{zNhR3TH%KJZ=S#D#`klje*L;_0~>Ch zJCDns7kf3G;Wq^;;3hqdXzuwdBt_@+me-zdG{4Lnja5DC(h1;h-ERz(jN3c<<_^BO z^1gi0RZFXd72JY1PH4Bim0S0lx1!~?hA6G##wX;qba~GTR0yDbwT2hCg>;Zl$eo1Z`oA+Ik+hrg8J^gDQ}7qRS529P2oUT(Vi3>yh8h) zB@lK;SD%VDz@7Z)WdD{;^LpRgKZqKE^_#aKD=_^-`mZ&1w7oUBBPqN1lVFb^lP9BJ z9lPeSvOi}1%^iR2=8ix98vhi|-0=r$%umpd)(bNE8We=N=LH+lMIeZt^Cl&5m$jQWD6v05+-;YU zPr)p5LTi_PY0=3EE`rYpLcfu;$$h}W7SgDA779XdjfLASELb>Z;SmedjPs(K6;%2J zp}Wn(Q4622a1M-1{;LJS-)7;MAnDiJkxKsy*8UPuZ(hDEIG4&~VAI=|NkP)yAc%XT zg=y>FZ0#-9-e&FX7Is)T$HI(-ofa+-WMZ~Zkh0EN_bx%=T_#8wbX#|{ZkcrSSh!jc zyfqf~SvX+fdcm`3FM_0h$lAAC|6vP9EWF$L?-C?kqk@FnWBvD9xK9we&6Jtiecr-- zf|U2;)_&C5la!_KvVy92YrosV{T6D@r})MMDUXAKw6Q~iw5g{A$*4+%o|MGMpC z2KKClk6Bn0Bpxl=1eXb3MtKWnsefx92CBV}2vXj63sR=L1S#K9>%Parz1Dr7wHK^? zzqLPV;Q4(56Z+SnXH+Dt}}w$Ukw{{jma3Q|T{LGZf-$>TCX^3ZMF zbAqI?N079v79`H?z_#VI7eUg!Pw;Be`34~6^O#^4^(?rQ@j{SxoVhT7+bt|w_>v%a z$u|Pu!T2ipPCmh9jDLcJAGI(u2m2MIUyyPd5XAqmh3Pk8zmjqg?8Y6ad_E&cxjZXK zxjZjOxfCrtB1pL$we}YT33p78@_A8^@_9*+@_1R0@{nRJ;Uxtruf1wZD}%L}+LhK| zf-hKj%)%Efgu*EqqR_0Gl~!On0WU$rnWX&zJ40qg`B?kozronq5a>8jc;R97NUEWi z0Lsjn7eM!4xH1&G!9N+ElAxM z0*|IvHNw%Cv(S0G=m=W}mxMm-7k2Ig^B22G{=l4PZ9X+#LV*2Zp$(&4=Oy~U0PT!c5>yp`Z8i@$$4K})Dkiko* zy64>oydSu>X!OQ-&ONZFk<05HNc>_AY2Aqko#7 zY97EuXHE137u2?A$hFxkeR20dsb$DF7vcWV-bJ$ z_$QL=s|rthCCJn#4wLr+-!{GhKDEyb`5wq|Uxa*1-mmj3(u3QW)&5MbO#4VBk*S-! zrE`*}|K5TOZ*-D2?a_GbGr6?4P=3wqQ3+RXHcDTP)2Zw1Ylw3_2gi`cg=uy>KAYS`gG+faY^9EnPSuO41MmLoJ{Lm`RkX^ydo6m? zya#^bjX@W^%HG&W<#cc4Cybcof(|sdn89klo zx2ek(N5#Y7vpN7>x-e9!2wgp`-%Q$5Lu?NH{EK9*~ShYkZBp7^A~hTX)6qx8<4!YyOn z6jpQ;A487`t6h`V+O%9Uh1**~ZZ0irt(y|#+|-YimayBpDcm+#w=B@*dmq2u?u`ag zxqpr?O79OscrNTtkc6l3E^nX2AxiHlizj4<_eDCCqvPNUxQU*|C_%aZy>)v{$n77j z+l-LgEB1;sR;~5Cs}`-iQp=A`n~mhe%ipp=tk2szbkl;(n+D&n-vjGz>fbsz^ed!q z*87#&CsJM13~xkQOAAo@FzRFa9n@>gyO`f<((QcmX9*hG$B21Z>@`zw>bkq?5a6!~ z*%g0Z$S!(=A-nwZA-nuntMM2U^OgdYzQELbOwB#t+UP+ZOM}q7jnmcGGa>)$`Moe? zSA3G41tv)E^C7$ZQF1rQ|4}t$V}dtP9}n4;-iD<0ro0qh`YZ!u%P(YiK7!gOQTUpv z^WJSOMbe;skjefD?-uJXlCeoMKhdj?;79FAv(F|HLHKII4AoQFNBMxk4F0Lj+{4$+ z$5PkGL-5az{*UEx$;+kv7N)w?^ZT311M?rv6% z=x4F3J`daQ!F%8Viu|MdG9Lg}^*aDme0zY-2>(+N`yWN@Uy0cN3cK1vhOnadlZbz? zj}b6CZDiciJJf&U;JRMDU{?LryLjc&MJtvp>s@kHuJ;|w5#0ycaoY#9Yf#&~F#8i` z$G~hMTMS8K2*7#{~Myc?+ZKpz);Gjb0>7M4e> zUHwDu&1z@Bj3A9oJT$>1XN@2en?Av&pj}HYwO)2+i)!C`hjUDjHKy)6=zUM|#02g3 zh#+!|G<`zvdgcU~?Cck0f+OCj^d7MA1-XOQf}7+foq`PDPY5C_I4Zc1L_=FTZpAwl zPop6D=j4pBw^(}?IP+4<$GQ{pl+0A}jBaQ+<9S2^x5 z9*zdi)!$UjBzeZj3Gl=ZM33S!MtDUzSmS6fz%FO1$QZpB+huY8jQRl z^YD+gE|F&vIYrzL+0EK1WM@4SOV{jLCwH+v&yMXL?@Z6p8T(Q*>;6X8Oz|9RK-Onw zE!CGBZ#C;b?h$#b)P-A{c|U1BZw0R99392`;55S2`K(VfoS#nzXV1Irdid4+>R6j4 z31{MA-GvOIRco{kyS{6&>$@MYzWZEgeW$a~e+!=af!1ho;#E0l&EBH3=%n{-Aaz3z z4)g=dU!OULN&Yw^S&din60L796U^#;pPn-F&XnHX5xw)}PM)=%jPo|0M|xbENdv{R zD!4Pn+8AAmCB<8l5d>!-8}tTBo)39S!|a!%IYU3m>!|28rD-pDlAQ&`DfTwZiO)cNb|rg;~!uTbh!T8J+}T2x2L^nI1H zIZw*)kZJ+azfJx3sV$PXhP>W4lrC5ocdpEx7;t*Z@Kfr058+pqXPWRU&AHUhVRXC^ z#+|vBd_d=2)drOZ)mcL(pm(BpB#RIoQ>Uas`Or-sc*ssQ0p4-8GQAxX2b_G ze3RG2hTp9f);z}5`5-LrAMoYs2UDS7($jPKRZE5Rt8iv=-QZju(U^NHKW^PTmpAHp z#Nj_}Xcu zrasOt|E#rXWK;O08{n|l;ug|06JJBfU-&x55tx_Ec_P;tQKoc|#@`HeIM_c#Z5e^UAem%E%mqp?qttG-0`$WY4 zvxpsio}TJcZBF#h;kV}T?beP?q^c2p$x@w>U2E9|_EY$wi2q2${@W3I^i1KGBL3gU zuJ)oaN%UWc`2Tan&M|uLCB8P?h2O+)XO!N#5&PnZeO1K%F6_;;&o07>-fuD;9NM{;s86RXh{>s-7iP2e-Hk z0``j56zfuhu48u9409-Q-P&6MyQ3F!ipCxCGPF3^cJsPT>u%)$+imLxYH6;m$EVJN z$+}B3LV>}xEYBy|`)wklDVSWM5;hQA&)|y6x=lfJHu~D4-z0Wm!%a7N=D=Mf&Ant} zXk#^gTZT3CtwU>-HH%iurJ)*qa@Q1XG}Qspq*@D{g0*tV0Bi$kpWqv;oZv#vHObC`?Il41Yg|d34xa+fydYTP&O~0& zDSL)K29%s(SP;g$Ul4hKLKi;W zsF~^B=uxdVNm5E@8|qm9B)Hk4-`eL-vTq*jN3UT|mUSC@+FBb*hCnt`S}Vs`BjFyb zUAW(>_mI8p4s@38KxH9!4_TiD`}(WO$8+e6$gxh$?SO9J9%C)Xy02*g@rgF=h4mM1 z#1Us*#LO;b)-`_c&SV{KT0_Z=wPkq$YaQqRZ>%Lf>sEb7)#}J#zM9gTz8?2R8(GIo z)}i-(sVm|O9IC5=|k2+TVNW#s%)T@MNlnftzYl6{Vn)Nj8j(gTR6T`bXxGPU8Ba_}=fpyz2d#TO!8TF_C zjP;o4IHSF-u+e%XY;@;GeOyL-Q1eCcX8m4o?F^4qBObso;*IdF<`aH5&>8u!aTcKL z1ANc(4e<&8R-iNTzr$I8vfsm(qfmx{!v7S|8Tm)o6JK_oK>2@Zqr&jgEg~Vxrc~V=W$mr=~>#-Ye|Nt#LCFlO(&uj z_^1d}XKl!c9}%PhJRwMrJ|uXWXYQ2Eq_E~tjx%8}8k_YNq1pEUuONG~y*~j%8ngBn zh0kH7Q#Dh~7s3M(yxExOd|`lQ+=q|GBciO1$Fr>+USW*pTVW$yndp4sM0jdL3L_{Z zypG_f`7b|xOw9~5j{MVok+5;`UXCMa%R4{eoyxeadtcYPKtM-NFdS78%P@{qktrLM zAJzDZak~$Xm?MI}``O>CY5T_Nz+FA>IDhK5^E&6f1s|D{kK0|eD@=9V)_KR5c(2*X z0)u21$}jPrvX}ixrJ?U5=*Q?Oqo3fpmRs2u7z=cPX&my0caAp}gR!ZOv4JUf>W<9! zew;yCABD zpZJ|hf3Nb!%%bt1ao#V6E>gzirguS`^K3MsmH!WQ?*k|0Rp0wRvpc(Nh8>)QMJaa^ zpCpT-5*!GL7>OCel7QKe32Y)7lp*YrMHhC2CBc^74F3`mAz2b^FhUtE-f|zJzJ4$7vwP-qzUO?;|NsAW z$2Q4KTZp=s%uQ$@{2xX=lHOKFKR5O+e=cS(DNU!{yh{Cop>4&8=|dF8D_;JHcx}i& zP>Aq`SUBFeQ}N-t1ZoAv*GEgAvGJw25+8kz5_c+^I2rz@{P@SmjZ4&HhgZl)!uEVh z@vnFvl08dH+~Z{8-P!X#?AdJXnav$syGqj%4Wxi}=b(7#L3-^v8@^;!qezQ*wUKWRvO>JG(x zz4~hEo2ifH`PKWzqM2><1$j3P{pwsldj{zPsvl$K{Mpl(X3oDg!Tm%T=KZtzVfz2E zR{EB0iJ*U}y`Nq#KYp%p^MfTu2=(oxQ;Wa5JcIi;RuDJW(G)giw9a#9utvbT&3M$Q zt{EhEBP5xeT^3&A}iyXhOUr!;{Xg(1135Ji5RwYz3$4|ziB+}F}V`nbNF zL#?$$liSJ-Nu|d&`k351M*L`P;~@U>e7*e@yfyzk=I1!Svp18bggc_yBN;NIw{x_9 zp}wTc3x`ercuDD(F!Kfp(cljdf$R>YR znSR&vUgAgWPu*NdCgv1h9g1-8+v2jyp6-t8B;Q1mKPo4O=9==DhOQfeE_9f3PM_f6 z`T}%%A@m)k`OwicbY>p(oh9<;!wosn^9`MXZp=VuZ-V|{X*Tqj0nrN#&Gf~?O`(?KJo4g!j0UHa{l)p3%N;y@8pzz`B*wi=_x}s=fGXnztTtlfCErZmW)<}!>i}tM_Bzq1ZHXzjBR$IOTL0x6ul2=!YX&@t{Cb>Sc zcco1?3Zb9T>tjKCFFU!0r0YV0HqG;IzLo3~e3RGtlV^1KV!f{N<4^9Iyzcz9wcm>M zwEqY0AepcB%Y4C|5*;C0-6q{b6?_raaKc}s$247Ny(+k~Li=KZFJkt4`!r~dR$rR3 zYQIL$N0zdb_J&f{LSwi_v(JRGYrpfylR>x6={I;xkDAZtS9>wlHa=Dq2^PZX}qVoHutH#tU^dnuU71SJQp6e|rth_}Enn43I+$K-HTb>^@0$QO@vIFW)e2dXj@r-s)9rjO^-Q z_Q4_yX%EPU$zVQ)q-f%7zOp1=(8{E^r6Ks0$u0u;}CbP#JMMh3a72 zshsB#hW2I!ZCQ0!W_WdEl&7l;Ax5?`bQJ}AK)L2%b>AA&sEz!mH|$kUXme91cqtu` zeyP*QZ56hXCxi^D&k8Rm-`9gzFb5;N(yj-zk)K6lPWuRT7FKh;#(v@3DE~stXN7MM z>YsW#DmiHFH`KiOr9S%@rH?gcN+; zE3NgFq)?gh4SpAzH<*bX?!z1AQ(cF*y_BH{7jD0VoUt4wof8Ir+#;!9b%!1<3plHseYAHdgJ!zX)gwtTWzUkjd?5=hOjcqGymjUqp@ z<=N0D9(@@EVaQ6ZPkaiS`y8Lz8W&dS-2-365VYeHy0D7x6ntk;P@P5gFyT#rN{g_4 z$4H3BoF(Wvsj8rrvntaN)qRT0He8dO&V0iRvoCRaGI^~|T+W~d(k#RqnTOCGPrk}L zM9foS-(FJRpLl-WOP(m}?HKxa_4tSJ$mX*8>4l;C;t+jN#?!Gg$P37CK>iByGsubi z*g52{AYY06*T~Nye-Jwwuz!>K{fQIhA^PPx)F}>=>QbVkhNjp|sxOEhXXv*8cCx4|&B;BO9VxR1;zk1W~{fs&3{5{DULFpTq zq5oS_eAF=(3GnvP2WrBm^@}=BVUb^#YMd7Mbv$FK_veSNoK^K}-Ppw%JMbJ>zQmja zcT(P7x>oin>$F*c3fKH=jY^x+$_k=kCwFW(4R^IKF~Pu7iH zq;sF|RGMu^|B9=52So4DUtbvBJhd=%AxFL7J*cETi56j*wzN_~%BgGpOr?|1HwJ^M8c44^r2Z39kgZ?AvsnBvW zlE6LO^@fJZ^|+^ac6s9?*l+B_ZfBqD+H`4Pm+bi*a$}F|kX_iJ{2)6Ne#+s)E)0qX zrKQ56H*LT7>Z^pq^471_zRHJ{zLW(MuDJ>q;c;QRp-^YSbp>~jDxDP0Eremm@xt&U z@>gqNcchx~jh0zs zu~%FN0=bi3j$C}yGv=E*Iv7Sz8gEBX$G)VC*d1JO??ar#Y@74QsOQtg<)~{9cs=bh>0$ORjPdfr*RpOuuxo$$YCm7n9r${?!^2)jgB#I zTZ|6!mbvAp9vIeJ3?60-AMJoo``^J?{`YGhH^m+QKIhZnYqE2obKun+r{-~WuKgkE z;6`UY#Xart$}Z}h;TAhb){KA0(5GU4D>e;#buRwpWNf<$7M^!lyQYNf`dp1&Ps67%w)TphCKF^36A@=v`_lanvvj}u zP`;!!ndYIL<*$=Yx+@`?X#P?S<@kL+H%;%eMW`q3RLRdtb zaOlno?)O)I-eK)4Os~3otj4~-#y-u(UxeRXUefs=^{+hQbuspg@vCna?AgQ_mjt}I zM+@TroZLw1%?+2YI@SMRuZ`l1^%*}{V^LfyzkP-L_C@@lyrVN0$~%gWa2a_DKdo|c z5%PO&KFq_n-tskt_-f;fcM3)h{0284LEpm<9_g*HM(~&XZ{nD>s6V4GyUV(Bz~*J= zXICzMA3GkfJX=FNwfTJ=e4n*^nGj!X*jB;!QOoD<$dH?J!|6x9xf{L|6@4p0`#J^? z+AIAEWk_>({fIO|?bYbHZCjtOK;ySyf6#Bs9oQO^SHIwHgX$i2&Wcwxku{hxe6^ts z_^W*j5+d}e@5FRY=xYec)&6U&UH#7ApVVafQig-{R$q#;R{7MPySWl6ihjQ&_7lCp z5uoUg*3i8*^nb3Q2Wsd)tf9YDLw~b|{%g_ry|X^>f1yVIYz> z$=Gex30gC)7-)F&?o2PcwSC##&Lzt9fK?#ObgsoVJNPSer4Y1JAIHW`1L z%}&&gyblGp_*RYR7(vyAu(h?S@_*3owi3ze$F?%L zr8=XP44)LT>Pnkv_BAOFv`%2oU&sQ>2_c<)wco8Y-YukwXzh<`Wk5Y&2;Wj66JEQm z{t=4>iz;XJ6oE4q&su!NqUP+SKTGu;{+utg^Szqi9TbiGOuiWR6XY@Zqg6;ad?DdT z3Yp-@SbcNv>}B{%H2ys-#J|UdZ)LvN^6Ab6+1GBd$D-CBT75g;i~b3#u5pO?eTun> z4^aM3TAXQ7>k(3)Z82rB-Qs+U9Ts(GoA}@8M-ZqfMvsv?vBQ0M(|on_!3P;A3}TRu zlrb;9Cd6b*6D{W39^V((5IX-sdcVc2a7b{+?yMtM0aguGbrLT{As7%QxTa?>Bo^feMYebROOF-936W z_v^iey3VS$(udKVdFtO0RMY>CvtLGMQ`NT<25Fftk&m8khL5m6*Cun^_2oq#H}~zC zbK;3q(WnLYmW`0YX8*E}M-^`x6Q0iQFQ3jM2KJY?GCt5ApIDyp9Ai3fkiJ`*y(t;? zm*jR9nGYQC26X>hFpi7UcZ$-dGW|OIafPyWiZC-@Nf}`e%5LTYgZty6X~qP}C(7Di z!`PtMoMEp6V}TL+^TvE4U3`&!aBhsD@T(up*o+$PF3l6i+*r>`vY#pWDdGt=?34Me zcI>AygOg)k=aol}6IO{%F3n;`usJJTm!&_g@i1;ga>2Mm{w5h?+Lzyiz3RIfzopH6 ze5kuVIeycAd`s(2K>3X~kIK5QPYD^^m;l}f_SMMER&#>Z1 z`_!8=1DZ=SZjNEh!5GHuT_5Ea;)OVyB=pS zY#{7e@@GeCe_83`?&fp$5Js}>ZeuTgt?>IEdtf|wPaSdVJy2#(Yiw}2ifYrntmZz`&+G&eo=QVaW_CKh(_=GCt9)cme;*TAlF zCbx@yNW022GrP*O)4RA=F;`Bd#Fs0#7sQ(@&mY=V_WfMB!)G5AdoI(-UFb$~5<*+MN)yK^_86vl-9vUW zAhefuZw@;%!Pr&xgeg614Gs$)Ky{}_8s_~ zFyrz{f_n|ALCG&4EYUQ_W+tj{sZX{3R9Ktg!#kAC{IK?D3IjWWy}i5fxB6XLT=TGB z@uGOBORC%<$j64CGTxBNM`%-+r`Tr8ZkjpsVE?7;)tMQUJMlYO`LQXruiQ+2Opq_N z4|gJI(MsC*Dblh)S`OvP%1>?RO+jxeddgR|W@n?HLcbmT`6<%9Kt34?%q~GsW|mr< zWl`zgW96g9qm{O91pyB=%2r+g)5OV;;^ji$Z{HYJHx#(53jY0*`GhqbDKI|8aGm%oo^qIz-F9tyGY~7w8X!Xs0987+n0-ua=H_ z@3We6B2rmF2oyCYA8o$T>_3q1OvCS1A{@VF+pFJ&?kG@PtG-gX*O)$AWjAScKeTI8 zr2klr{vSc-5oZz7|1;2i>Nh>(2vGEoYiOBspY+F(R!Xmzk;}fxm9z`Y-%vx}QbT{R zhW=;`{W0hqoyC*Z{@<_B-&#Y5_dv*hZ{)r_<)2<_|Ie{+2%0{b36I8^I{SOb(sZ)C zeiFOK(wE>j_sPA>pq1YaBUgMRYxLh=Lu)^s@?WRr?}B~-+NJOBLnkygu=-Cx`_NAR zPoO)XoqzRCQD=z$TWF0foc^z%b%$58wXcP+xle9fSwn05>ptnQ%lg-#fwY!lEI3CW-ZJ-hdpuMZ(jm(yXUyw zZ_WDE)#(t&maLq^haP(C!O&nB}Ok|tu5k{LfUJpO;G+JBESzUWK zqNNC?&I*p^CWK6Rty&(M^D^#gGh}xC-My<;)EF=tYggUt=GLm&$LK6yySz5PNWC&Q zH=2C~_d#61ev)GS+Ex9Zg6j! z+$%F*6G1!ED-PpO@$rykn@UV25)hSxLSwb!b@1h%#@r$T+G zeUG{aM*AZ>g>SRx9N!+a?ZzI|W&T;|zk~W*_)h9Np(awOmo$H-wF&KiH1l>;a%s_5 z+5MT&2SmS{I$DUkX8tZo{YJe~x%ZLDAv14Bid_8C{tdpTaWP(nPEI4utHIf_U{QiNzo0b8boB$w^9M#?9}^KE;Xq z#3wuFT6Fdug>R-~0-b#~AXl#{h0wQ@35p(2;gDCwCx6|FkiBwW-x)Ng1XA-WJ&8Ll z8by94GJp$z;?cJff#0%*;75Fl1NS*TO|7{wNN+BD_c|uf@d?TDmG3BgLwH{OX{D*c zK@y!eU$~KgJ`!@k*=MT4?zL;*=pKz(v)=d~jjcW&shKa-*mP!!_Xbjr7Ti3E$G8;# z#55{&6zK!XVN9r7|$v(GmY__Fxwd4E%e654;XrEd{CGe8$Tw@ zHO5Z}^NsO>aHuhUMtGtz-o)tJ8*Gg0eK;>SHaSh*g1IsA ziNb*~@u@;ymrDr~&GAlQra9gtOg6_i2#4bF?ZRwxe6KLw93K?s$Hbo%4&t6L6OX?n zJkcCKXD}XbR)+VQ;;q6Y;WaoeK1-Mx7uP#?UY_s?6HW0A!qm9A24)N{HQS9 z6hA3UHpQ7(!vFEO$%vVzctRO6+Z0a<^YM6xaG)uk5hmjCUZEe4Zxnj*_zq!eY<#aU zO*{%ujEx@^`pxkZM!z}!f}zL7b$^VPZj775I77I{#I2XSDDDe07sZppGtF^xMmm2{ ze2M76i{d@P0_i49#^YOsiCBD(Fg-SY(5T1aM}(U=L7i?3BRZJQI%}5)L%RhlJjk z_;Ewyt}q{qpAio7>YxgD;i7npa4;61B0Ld`&lcM6i$QhZeGioKaj*^S0%wENN%8sM zPeF|lSAiSAkAXSxn7v!FAvO*bg2A?*os5xE((QeiGEW-S2`;RC2!usvqzt;8buB)cV~RPb-XGhsMFvna1*Hepf-aoQP2B6*akig&H}#yc7Ufqod+p_8bfXYb^hpi zQ2mi@;1Ku#SOEV9JPRHL)gSo*m;nD8oC2NzwGQ|Ys5QEW!3_B4p!zAF0@Xj+0p`K) zfQP~Fg2%v}p!z9)0lo}A0(y;}_d`%)&PPEX{1G?{WG*1CvE@my7aRa{;5WfN;4W|w zd>nih+zp-vKMlSD4uLJSTYmuRjLA>H6!;vt1bhO_g5<$?4tx^a4Sowe2L3%*06z=9 z3>Lswz`bCUM*JDD72FRd!JmOCFb`(H&w*L+^WbjqkHCZAUx7p5x53lk0q`a8kHMyk z=(B=t;4nA~JO*}v2f;4TeT+D`3eIPPK=%srx;eb%XL%5~+oz@Nqc~VK*5l7pU%#Qk zbocTuYl+{}y}YYi2Jc>-Wt1c9SFQ8!Tib_(`{wTH?~&dbpM^iLuTPh~pT}|c`jsoY z*ZTc^ef~O~;F3R9tjhMF*0X$_zoyT*wyKM#aaXNeg^N5?tUbnP_WK%Lu3{*)uDi?A zBxS_`?CI)W(bp9UUsrdwzsK+1u%f%W3wDpEf!Pw_^8|p;NX6HEF~-hy>$6!#lVb6> zs%4ZNCbE3Sjr|I*x$w>l)O!1tnUCcChOGFoLyggJ2!9!yoc+orwSM^B?zMfs z$;dnbE&GBjV3Lq$Ay%#OUF=o$R7gyUNzd<9Qeng&t`iE0(io0%+9)$5jW zzo~#K{6VHO&u~=Y&4zRR8ZrZu5WP0AE;P=pPLu^&Re#wlpgn4depiv1FjBkNByhpy zcq?JAsTYmf1?ojxs{HQ06__(6%%}ACQJ=V|si-?YthWAE-Bk$-aq85A>XTfA+8Syn zI6+(bKnT zh0Os{=l!TvL`lDYcVE{h{gumC^{!v5yiudKUQem00HLnf8Wpu`D3_JGx!OE8ll_jQ>hmne}Pc;9X`g(iH}9i%qE&P}rsRkQNe zJwtcXm~|;S0yjcxmFoeFnl8Hz#Z^TO2S?d&ZuJZKK{?lk$CwelY(+l<&8k1EclTA* z?1ouqcjb|$(8EnZ9y3cGCjR=?_h;Ah5S1!=XD;pb30wCT*U*9Yg0NFr&9DW)*cVh@ zW*f0hmI@y=pHa8T5roBFSxBB8MOR;uvhi;1<&NpQiJDQoa^3_8b>j!u`BH{fBAutM zRI24&(??-4>?S_Vt<*v03ut>Kq%zyGK6Qt~)< z-3WajwO+TW5ug{`rl2ib*go$jw7sC8tx~P=lJ3$D#X4$~tDr8a)(2I!P<>M2vvrQ> zRSdA?hU7sSDX`E%RZ+87!l+Ih5D!7|z&RYv~` z>KFBzE7!zRd~`QC4X06SUp!}7`i>jf`5o}gn_D4`e%OB5kq+4}dQr%{+C5Vd5#~NN zmap#XTF;YlW)aeK>v%)X4jH`kEpr!Nvn+de_Y7|3q{h+Qc8yxlbq%YFwU%ZLQH>GG z74skOT4`*RTK3~B)?KqKu*w?u7T>CC?@h(4Xt%UEI!j-Hr|H5T#}1|4)iZ*S*>ogH zSqr-+`QBx77j;lccO|j!-oB5UajQ{Zu<$06(=fk5eA@fZLa#=&@>fW$Ql>_!1w|@w z!z>|Mh2MrfN})|j|Iv@9L=-vp`}gcqYIcSV24`tf6}7PKT3 zwB$KUSFA#!vo>!ED?o?8dM`8yWcZuH+L(`3_5rn{qkSO@LL3R?%WCMLLS}X&IQh(; z2UBxUqL-~)zh(uC#}%3kzK%|}S;p4{Nl?cG^?sl#6U)p@iF>XxY6QP zi#sgtwz${g0gHz$9=3SY;g#&Th4;HGMbCvvd^_L^e@?F#MZ%DEdg4$n&=1RVk{!hs%+zz2`Zb(mOCp%) z8EHXa*3j<;ry;IFOhu43Bkx4K13{l}1iMGxhPV{bhPV=O1>$mq?2-Gp`317v(>cyd zXg; zrP&4EK;@iYE8^tsJGl>fC+A`8*)r}G`8M~-vzO^&FZs{}`jL}n4RVeqc?)}<%zZOY zrqcV$vorSGU5;~qb)+Zv(|v}g9V75vYSVN>#2aB>{74648saL%8pI^TClFagAEF(x z8i89Q9|zexKe7tZgSZFrzfk`d#971&=zj)JA%2Ef2K`UqKO$a6+yzad^Z&sT>B0~o z&t~?A8lEH1P3L~`uO{=)GQ3j?6GH; zwC5|g{gQFS$9~)pzwQXRD9KqX;x&?afOk^|%G{Oz3!R0mM=yrih1h58CLc=f&MF0G zF7F%`%{v88U(9(*@#}v0&CX1QbmQLbEfMc&V+V1~-L2;S8)v77`%!OunYfO58T)L0AsoZUzA^h;jT+-*v6=rmvGeLg8NPZ%I6P(@TF8rcTer`(! zc{-O)6r&u=;iOJUW)iu5Wk2iH;fIS`6Z;xeE@fYRuBSjgoluv}kCz*bx$Om=ZN5`%+A`bh8Q0)knaoB89^yWj#ltP) z$3EU$c<$T;bB>ZYd9?5hacSaWAYEjiOH5{326me8Q@);Q7|egGCBO6Av7yzX|TA|lH50;CAGB}@wZ&UT|E=L!DlAOUfyofncC+R z-->Gr6KCrb*XC{DNeSL@h;VMw&*mTZ5|mrwMR~7Dm2;)24eh!d zJ8U?z`C)$^cbt3s%w9(AS^NhZMxFH&Jz{C)h5P=VGqapsbl_4-FCze}wBogw?@gzRU2!r0HAsYxnpI%gXW%dM#I zw{?F@$d0dt>{y5$VKaY^U+eMf=Rx^>v!U-IZtkrABKDoQnlR&6)wOan60%GFrk$HK zC?3klA<)Ik(GZ{7KiPdVyh_7r*$mQv{^6v4YezO@$KjA2zP00a*^#7fAiqQt+ly1v zJIhmWo3dC*tFiEW#>PWi$iBglea+bCC4WNL7MFI&PU@In{`%FCSGdbbVL5B>bW$2W z8!}h8gtNy!?GWK`^^dDF6t)$#ZH+n7Cd;{L&z6 zurvK=;cn!gwf@e9-2ZyWeVxhvL(7v1@q9DHqc^QTXL(W~o^OSCba&Vk^c2>%5YJzP zcyy;~xNOu@uj{RfsK1B0@v-uolFyWyl3S?rHkZEyukNjqeW&f+PKvuf4cUj;An#@J z!@oyZ6&IhfNPLvGBR{Zwe|d)7^(f=ivo5c`pL`ij?kW4!7fl}T*fni=N#T?ou{7-y z@wox>UvY60@`Qw=RBNsOzo;e|ZZi8ov4NKc=@N9vn+48u%tQ6iq3)!;)p3hsi zUb1~L@r2#d{i*-W@*H~&o|W(ns=r0t9t!b%Ipo$7cn*^Bo5xU*(65Su8b?kSJhF6 zYtkW#IcJydx=>vEA>MCbr>p0=uXp5M375u=zXWmDoLBd<>Ef06P500$Z0f6C4ju76 zL0{drJE$w2k7W>?Ge0&E+^eCx6Z8g+?!~AlE*|fDfIBEQmkH}gGwp06_vv}5hs>FE z-Iu6#miJYtPq~YbxKf?u$_nlOq$bo=KgU(K5ni2L*V`WAbM=<=b=R;*xr)H^j@esE zjg)6ExxFm@NK-=hTLkST>Bsnh^ayzClbeSfpVB!jmO!gNulUfNfG;Y&LU9t0u-%q7 zmaZe6$7JZ!=JWNmOZ2xNEJhL!78GXB|7kgre4uz8X@8T6L()CN8GQLSLmQH3>_&g= zH0|8!!-zJ-?jSD54%WowH$OEhE_qkQ#N~MG{f%)+m`z;LA5uS%A{C1?T~eH2;`Gi^ zlfS*3$ZRjO*EeSF5u}f?6#ppis4Z7MQ=a)#^4hokAWycpaL)i~5Nu-zMlLL zQyi)O=d_plP36cC?;KsexlngGedvPjo6HYSq`b5wHkbXvX70p5oY-mlePR38*4UrG ze(r^t#GNOj{Ly3hc;}3=D|h4<+@E0F^LWz;_vvTiwe1t|&jjbT!X&qS#3yU)WWI;6 zy|$eSQ@!jYJhk>Je655__L@EhwB{@lj6+%&hdlFdjMXU5^lO;E*u&j7LI1lYwXb{y zYWLbU=9F#E2Fa6O@vC*3;`dhN4O17aD_uuAHCi{+Cyyq#7oW0j{E~d3aL$20mi!sT zdvWRgsO4;XxY4?yeE;V)Zp^fCqO@k7Bvv<2D4d4uuHmh!~Z z7SeMIW05W8$?{(YzI;&j=RvnvHxr?7eW}LHx4>5y%5&qP>qGRLpf7p9=0SFrkJ~z5 ze*bEXJq_^Hw!`Af*YN!t{g92=Bm1^n`xM_{e|;XibZ4u0bmxugiVNArW3wZgHxCOU z-@I+Da}9^dfx8hK5nYI5=uJTMBK{WPA&vsKgKCF2Am$-o3hI6kwZ|U*XN+5n`d60s zlE%&SvDD_$#ty69b@y7DJD>39mkEn&3!~%_wVT0xHdsnMpTu6h<<)>$?qt;*4&(Zu z4r%~3K2v?9ccqd#b5^*Dc%Tf+FA2t_$xVzu_m?-~j@okPRx|w3Gy7iHOCvxXXyzXk zM1_UASwZ!>5JZcI+d4zz5hZ30GYg7`=Gw%8c&JpooJGkQ2N-_BY~HC7O6)<%EYqZ3 z9w9p=KY*YwW9F|8gW{QpP<)F=ZVVx)qmBGHDEp*$65-}e3&>?pE8+}7<|KawA>KD5 z&LPAvc?uyO%DUG?pyhYT)&COzWeDax48P=U$ms{DBVg7<GSEdmyzdo8qHgH2SawsBRFr-oX&aeo_E`VcHMBPt(4e1 zS39|cUd`4*(MFHAb3OBZuH9RS`^dESO1NO*&Dej(!UcEEWAjjlRS_+B7tFavqRK}& z7Mnfkn7=hGQPI0|!QurscFe1#y)ohQE|M|67gmZT**7R+5hj1eaMji}JX%?B6F zNsHfNKodWPzUj6_CJlshWW#UUo}aaS|Iyoi$nn+hKWg8PY&?X;DzB_xczY|3L_A-b zm2ZqU8M*4o;2UG=E}0F!h^^jocV(Lhje!J0F}J-nH%tSP{|fR(euGJ zMDUF<=gNIYQX8nQ6o2pq{#`0X^F@q)Z-^#KdZH8f$@!;86{`6n-iN`dmQrmaqrur) zDF*f*QzdA=h}mb9bR_&;$V~-e)W+ycsHx)vmN7c>X~N{_bx1k_g5SVBUlq6c0{5~Z zTK?$|(Mq3FAv!P@{A!<;^s8TkX)i^0P-mY1=G~YY{#rWfZLyZA?mhp0Cbc@%??U%2 zJzCW^ZN?Kd^cQOABQ^A~8v3U-^hgc;s~UP-C2t08)@3y`YeAJyZQ9%#TJ5R(q~BFT zt1We(^mo+IPu9@?wTAwB4gFjVeX53jsfPX^HT17)=s4-_KKbv`8v3dl`nnqW)*AXl zHT1`7=v)o0`78Iy{R1_$_7}NN`p?wR--A~9Q1z~Tf7)-P@-WlVI*;r=nUB!fI2h6o z_5lW+g0|(}==$%?hfsGhUIF{J~PP8J?KGHUmv_yijZAS7vvt}UeU!67b>FSE~_pRq<8}<)s`@7jxXeeE`6KpXwTjJ;5w(zE9 zfp2vrEVS2K`&&bI3~7_L4lbD;uy{{z(a~6Im za5`wn&8^pF%X|2ip|Gue*=6QNAMNeMH`XVCTE+TK_OypWWDJ^6>Ubx(v^+>X2bmool*((=^@V0DHg+AImuvd zTcUHftbarQ4BYhAxy|UVM`%N=AehKrrsKrnDD5<{=^~2*ab$)W+WKx>qEoZ1>NRtY z27Miy0oLdOD#I4erK1(tGQDP{%LUpi9w-di*7%vrw?uO#h+v2HG`YiaQQ0 z4hiQlMibu1m`tb!ngN4wqHr!#+QN3`)P?itBM6BP?UQP~iSP^QfFHN&F9_+JBp8s0 zPy2#o&r%`rvel~Z6)s>bZ|O6_55P~H%3RuFmyr0@ebfr)39EkA;zZ(H{If0UyuAFo z!_vC9rS%rh)(h!SBmo%i@Hxme7a9X>3t5&;13OWMMo_*TWqm7 z(PEoL-Mb?Gq{UelXA2piri4_??N)uh#SV+Qr$y$MTI{meV=-%SgT;*&a~8K-)IBbG z=TrB!wBAa7q~oOUbz01Ta!2>G2z4(@>q7E}@HRv|!1+SbUwy>-D@Y%USs{6^-{J-# z1NzzH0&@extH?LPX^iO!yX;R2vA@$|*5VF}Qy4tU+zyKxe2boMF>7&;#iJJ0Czbz> zTRb7ee)Lv3gJIzF-jXMy2)a~Vv9xH?JxZd zDF3R@DtbWlBFd{UjsJx2CSUQ@O%CQdgcB{@W|6AF=qn3Kf4)Vv`=T=zdo6CTxYgo- z#l02}T0CrV$l`H}r!2l;@r=cD7MrN=J`j#aR~HEv79lwb)~^-(t?9`iHV_ zk44q9q6aM=wRp_pNs9%GFI#-YqUJ(mK4G!d;uMQBEv76Iyf^f*uJ7T5nP-s!^|wxw zmhK~~nNRaZR6$sLy>GyGzheR&pD^TYZ#HE=ML^@I zPemxa354P#Y~MyE8{ZUCaQ2y=aP?V)*M0wX=GDnJ{1)9A>Po)KzE8bHr#WbppV!-> zG)b}GorE8iwN613JSmcp{C2%-FsV*!4%~4aVP0E%Cq0W*`ajMtbH_V#+{q#4*O?P1 zhm<_-G0%RvTo(W5ww0sagTvou?Ic(u`=GJ&t6Go3tq5)q9>Tj&ejNT2dtu8k=3;fw^_H$ro|=Fxe=G+_6$bFn)e*nNMhzSvxNq|luDs~4Mz zH_Fz?{h9jW104nSQ7#=m0D74pGp@w^ z?+=u{Z2sahew@vo68Dy+_VYeX+|9vW@i%23FneHG?Cr&vSuES34JJ$Y`1mQ4#&TPf4t>rA{)#kh%zsX!WjTy{p z-<;lA(LS{V_A30wU+n$i{f7yZjabyfUg}8M;oJCWNCs~iZVtr{d2(bvZs;9~_aHE* zcq6W=Z(cN$CnNYX;f*iJ&q_<}7bkoZlY~QV$^Ux$!o6*w@VRhJbpEqu{wMZN!OeNN zr{;YwsJ&9ePoz2Vcsa*=&dv`wWYVJ&_k_{pCBkmPoF>e;uR6)acTh%xco$Ct`hi{$ zCanQ09P*#Ssrb^nlnS4VyF@B@qr+oAumzwZVmcl52u_aHO|lKw}KyHEAa#}SGjjoGCCd(g*d zOxi%v+d-Y%++gX?fSPYASo*($?vs6kjsQh}vxfdlXvKFIDEof~9)zA{X)4jmC-Y|! zivJ!^{G3y$e9~84uJ~`V`l>(E&{<2rA6oIRp_I(u27MAbZE4P=cx^=Ud`sU8?LOK6 z0CX?R4{G%HK@Xzu+}9ZONQnL`=%Em;wF=F9IsSiwJ`tjWx%i;qx7EBCX(nK~ z0)uOLbP0(r<}ovu<{GGFucaHBFCIOkZp?El3V&Yupz1Q|AF+5sd~e5n>A#KgDZJdy^-iG|2=Aq!ne%0k-ec(j zP;+2!^do4Lw$XDdr?A6)1mAqMb1S;5xquFR31eP-Dr*GU&{SpSYnEc@lUw@mvf+O{ zz9f7yYs{EL$^aqJ{x%^xwAMG>;jWu4>%JXn}i>~L?ETv9CN4`($P!dm`(y z_Y`8udkQ*hq`orqvd>@6Uh4N!oHFoho?o? ze7(*t`N=mI+c_tgO6;4^YVBzBgE3nJ?vU4>gSXV{?JJKZTn&Uv_Np&0lwWnmjB}vn zvnPVNAdQFQmz=d{C>bjbF~=|kUdA@e(M&3}(pOJ`?;;*F|1cRpzVwd$dm`VrMM5r67BkkY3b# zlX}v!bq)8KrzlmwiPT-G7W=pXXJ6f>A|D4VNdm~aOjfSb8p7fHR zHSX0VR}^$E*K64M4`c9q17-Lk^8Sfm2m9fZM>@#-cy9*iWgy-=0k|ECd zdLJAnUp^`Kn+t>iw_{1h_Ic`&tQk*_EGcldHNA#;%MTAXWFIWh#V~$Q{@`qTxdp$C z!!LD;Kl~HT1$BY^GRCLwN#}>ZX#K<)=}9Wb8Y5Gu4y#6&{p=jO3zRD2T8 zt~~s{(m%hi{G`ml8|HI7WO9=)mL^C)&JH{EDC(}>aQWjt;z;#NB4n52FZ`M`!(Ymq zno~dXh5git_%}~FXXmOOEy?{@f_U@))wrXxC`#`iTCP2;z~U7k9frUBz#IcpSbDeY-*kVU|}h3&(cu3DeTOT#Ex+WNM*!@ zQ*lLGYtpNi^pd?glW;(MlqVNg@567c>7Wg8{@ZBXJ%d|vTkh^oUQT-1`h_!Ca`*3W zcgY3Z?IHf#XOb@d6Q+)O2|h3XM0sYH`U4*>**AT)j`DmH?<>o$2LHz|>de3V6`Ti8 zm+n+LVy=Pm!93b?GW%WZ8Uw%h{zm@9f4X;pzD4X5=YwkV0%fq0*XE~peg`+7qdqUq zCk_?ocM>NqZA8<)mu6$H%JoGm3)rtSNwQbx23_18g-3a5Y})h*O7E6mET8IQ@m(lQ zCyS3Xb#dEDIxB7!$0kjfZ+n-@&d{fctEHtW_`iv=wv_syd5Ci@)L9piwzS`qnyLRe zcf#7ik6wr+78g11GXAZ^g_p>0(Om1ldG$rk)lB-&sDV$aEm4{K0A`O|QjM#zp}e|{ zG|_v?;v@Xe@4lP9)F<|p%~?X+mfjf3ULAT%i5tbsm~h%HrF|+|e9;4kSPRXz)kKIUmzeyF-v|mPhXi^AG*ya#Dh~rd3T?oD3 zp*fj;#;%$xYC^o!z*rZt8_|nMBW5DBhiWKFZG%W7Xm`y1s}p4Y4G8V!8l>^wfzVpG z#uhIjw0EIhyodzijA!2X@N^bPXGXmt`i%w7`%w0yiD{fSr%VrV?+f)#6L{*}tH03s zKAi{B9QH(wQHFMEy^(b_^13lMl{Ojv6y*_fUV%0ra}zPA^GcJinm$WYu(NSLg_w^> zBeegb7omL@8xaGDy@&&dLBvsn<{z}LqJYqT3hkvhhfo-`e?ogF^nPADq64uM(TmuK z*n!ZT;z7g|d#U$3@Q3E9uJakZu3fcSc;lRQf6=_TcPv`G;I@T+`@D4Le5yp&3iOZ( zx3pJYAV78UHN9Qeq1Sc&w2k5D(L* zD;{+2$GK(Iua>%%&kV`0k=*TwMQYBj*mEwy9GyB^bI z_B^Gmu4bVab91nG1$jjqT4jpp_d_>6{5SL8T;9< z$@>_xy^h3xn#jwA==I3eUIbs0S&ym4XOrPQ<+L&X0P+_?^bX`_L-b?FkA&zw$X^N3 ze~7#}1|nnMm87(-$oz; z9sYE7M){-qHC3g^bO&jX2$TkH6fe2*00Wn zHCb)rtz~yA!nV_^W-Pz(mHnZ1*|=S$0}oX#Qb)jgs%pLKG8nU#2!+HPoC!i1oS~6t zO}f`lp^Yc~weF+3NM{(-m(>}DoJI8!b(TTvnL5j$e511rT4&Z-2K5Vdh9M)woce;I zk6JoIzggyWKab8F9JjRAnx#H58eq=iar)s>KVwmScEcyc-C05=sV(80@F^}|9YCY}{y&p9EHW6mnb9959q+bU#$ct8lB z$9O~PNsCK_bTm#1F*lK_O8OZgi$vxO0_sCn-JCs0VGm;%@$2k>;z?r~g?EWn*WQ1* zH(>FIRe#B%+R}RDdYiQ#p>>=3ICZ>`39pG(U2nGPEP^kj;%F1Hh@>+D^^+OL2rt1O z!tvA>me$*@QlD)xW%b*IEwtUj35*ehEGVUgZ(-adoJcr?ze79fx_71ZQSs+LMPZbL5nDB|Wj3BzIM2~=dC^gn7*{?xZUL75Ar z=2tut_gFNF{0zbu{=}p2J_KRN8iF73DX!e-_-faO{|3GX9TVvIgduNxT^LN_d8!Vx zzhB{yR}?2M?vQ%BDSKy}CD2Yv$6=Y?U3;VJ!_(ixO7R<9AAUI{m%UMY<+XorR*HGJ zH0vCxM+;HSld$hj`xiBL7WF>O{0nyvSz2>qqP0KM?QcwC=@$sxe?k1Q0;zqw-s5HM z2_#1`$N9L{Z>YK1%M4=gh?m%9=0J_Ux14FA<(HVfivM5C;udy96sFE}ux_mVp$d=I zLtlJ%FdxVsL_^QCVRCn+$&YQ!tGRi+*3cZ=b<@~GY4<^@ZrMjTUmzeY$X~&|uG{4v z_swO3J*gA1tCKmu&daOzN&i;GL-Hi?vRHeSW3%9i`piLlpMKFxu(woul@mXFvF%%! z^DgFYyidPnOOiB6?3(bE$e+7(=>rT6^Sw(eo`WGomYddU02FETOP;ATCp0v)>u;9nb^d)!ONt9#ayI2s z<%aw-X=6HwOXYLr@vJqcxD@?!o9DF-Bih9^ExUK0sbN=1=M18()u?`$jJ-`(PCF8l+x7U@#UFhnvwz>v$#k)axH0A3=e$HR zKfF2N);~H+&4W7|xQnZSGcovyIdSY#en3443-PSD{bSNw>$i&cS2K-f{#|#K#Ry*z z=KQdD+&!HyVxR14Ax>Oe715WP%>qp5aM=si5KC+5D zV(S*OW<;2E*WnK0!5iS7-5lwhr)|oz4ltng_uy{nNAuM;5;K8oDuzHIf|X9Z&n&}_qOeeRNHLS z;2q-LckwsDqdKq-dj{Ei;@a$k$W=dxR+}x}J*deo$HV?0?w_PSK}}^gYRjxklP9s$ zrO6Y>udhjyru0tSUTouuJv)Ti$6v3NF3W8^T^x$1rK94hnl38uT2qe<{KZS zXL?@RY{2{>_G`RW+N`&3t_iuB9pz>yZHU*PPS{?&hV=O``SX3atMV}gTm!neS#Q=` zgZ#P{x%mDilwTVL<>zYL&{o8vZ+q>y`BU6do_$Jg*gSj4$ZPU!C=Y%9S3w@yj{CKF zXbozS!M`zasJMGOcDb}{L#{Y|SaqB&e~iy6`m`04v!MK$@_Vy9Wp{_(G0Wskt<{HVJS!~RfScV_8( zn)7oPMn4wW6jhS*let|R&^rBu z5vof$7ga}H?AjT*f3w_Y&x&~KyiEnh$FYci0{1T|rHuP?ao_BtdguE>?*GqUk{Ie^EFNK2!LIUn>rNZsOo3?A&n0h0{rX_DV5kLD6@Tgx2^uNd>5R}i>)kf^t|1|kG zfw~)q%N{4>-~Wv{^|_7x^wIIF=@Sv5fm%9URDZ)mPyKhoWcF5y-{m>kEm~t5-Jh#- z|9STBO{9;k@GIs*r|D${P4v}7vlCG;caQ(Z~Q^JmDHDOAuY7GSMM~L@RKG# z!(U@?*U*FM;*aI8)Mv{LiGN_+oy^VPv!&nGeaBhp!ECNp|>ME5QSW4y;+ zH2(Hf27)v`t?@BwdkS>-%FB-LV~2R3rESq3&N|Gv@E=AkoEMdcK0!VAXfi0Hd#qhQ z#GW-FzbM}|_>8g1gD&4Wba_H=kH|kutsU~q_d<4PenI;+Q#F2=Y0V`==6+aXZa(H( zEMFqT_mdFcIoc2x)+pyU6bCP(7Eb>I)6b7nr3rh&M;fmW;@~Jeick6fuS51LoNt3q z`w7EwxEp?jdmv=)$02hH_e9J+lnm_ewS0=>IUzp1m*Uc)BgFGY)4}D%+WXHHj^oyy z9^5!bTM&+uGs(dJFN5NZkj^eYErtJ-)jtWkcsXJ1>kNhKh}EwRm)>MKL?PXZXh$Rw zt%zPaXnUB%82qPKUu^=lo_PduhK}nwI=1@0&p`VG@*{`>moIDwe~OyfKL`CFavwFb zW)Gf)KEr1EL*QQUF))W!;}mei1osfcH7@S@0ktJjW181!tGMfuKGz z-ZlP|dX6(QiS*7(ROel#dJy_!VBLFSv|GHx~y8AW@3nzu&s!^{&r7p@DXCNmB- zw<0>?k*`BzXm3z?D)0|siOCP@llb^Af*xamCxyBf!^`K#Yfe;mu*hD`1vo#BVIR5X z#T0K*KWK~OKe;J8HIEgTsfOz*!lk%j%wyu_w2(c{2T*tOYd=GcuEiZIIW3TIs|KRgA0%Uy*_9VjL;&&=@5X#4zGmR!m7x^n=AfXvb~UwQ^hTx;QZ5;a-zfHazZ)ogan5GX_73pQ>R*bIr36N)wgWp0DjM zcPUI`$Cs2gdh130h~$XxENA-g`~0u%pMZLz{e!d-W8YlT-1zJd?w#nz9QRdL<*w$Hn3rHL|Gu)$aCpp1yoq~F7C+Z zc*oA9-3!dac=@2sRCtvZOY`41b{(%dQ!@lT)(_&v<%z)%Pa+@qA%87z8V&?~TFq7M zhIakC9ai3k`c^B~ImL}uuCsRiR_-Hb8^DOta=_**t%sR#=BxQYVfKlSsYB`)E-hh( zvP+)BuXV%?=PQe|&HY$ujp3e8QlB{gH@|s*If>m0`%~l(*&QK1^e$o5%@3*kJf(9X zyg6jXP^yzi3&a0Y(z?#eG7suadgr(gm#Cj(`*7#*HH4eG;Oo#|p}+W`*2kc~0N-Bv z+VX?km77fi`^q~|yU50G19{g=2j{S)-;Z8HNKa;^p0Q@cAGWXKn*HUext-<4WPKq; z+V3WBB?cZZ|Ap#e`hY&;kHpYtg7`vC*)C0`FP+Q>=TLRtRpS-nZ_sL7n(h*CM6nb}!ZouWFH z@x*gV$F37WKk_YvBa7KLgX$CaYTkzN^v{uZaX!e!kBgg5)H-(ub){3Ak6QIUq9DI3 z?&OCgdg60=Tx!1f37^u*#j(_zQFrcz)ukul4Wx@l@K-bu*sb_iy`*-c5%cRDe@NhW`Pqe2ZYsY_AwG5__mz*6-jwB7wZ2O$|2*CMx&7td zUDY)DH2fLVG9fkfKU{n0#scB?P;M#z#^Fn1HW@Oz3AM#`Y}qEHig4u|v|Chb@0gtn|?)_i=!$KBxQ$&7_BR31k!AT6PZ5aeHVU1-l!7&?KBqnhy z$&zd-$o9sPsYz%eVgZKWL}{GF5K}gdo4N_VdzD+7ho+=eZs?6e;FdNtbt!2jE!#K_ z&#l`_`=kAFo8RX5W{R+HRfd%JPP=7+8w3Cy5w_iy%~N=cM7U+e8SbG()*XR11}#Khaam=KM>EE6>b5$ zFn+cBFw9XG<_Pe=yY{4ZqHyJZFyUY0Oz1!7{I3Ukf8iY4#2w^8^R{N5EC)`$iMo88 z`Z>ZgAx0j2FYhC~>rglGgo*ROtlm@)`-qs7okORsy-cVbUt$iJfquuH!QlaPd513> z8rZ(GuNSLm>#jXJd%Jhvu6ONs8tCaB9@w?>vb~q&Z|xbn;u2AI5AWICmvB$IDvqnt zGlwC4u4MSuzjayT(%E6c81CCUd|7_5dtm1|4a$Y`gSmF?^*3xtFCH>TgSA_`p}lM~ zbKEn>OM}E=$S9iSuh_wRPv7q0p-Xn{9Hb;{>0GkAucvPyKdf@xk>A}nG}PC7i8+MF z`}>f>FePd2`*z;eH@GYB$)b00dC?{B>DxU-fnJqfc4=nuP*j=MWR1K%O6Pa)8s62j zYw+p|7Z1gSe<90l%>8#zJA>P=zL0mmsc5LbdztKa^sdzVCCgV{Zs3ZxRs&ZqTOMuS zg^v4*)@92sxf0QQ6uIqo(S>hM`>MbCLY3*_AtEG!n2vt7wee#=+osEuiL}jSdIyEj zy}i%VnX15}e7TBo80Yv^)M=0va+2QJy`%5y3w<#v;xhei4p`dOxBHT{9KGK=uygxW z>8;&EeV4ZeH0=XJ`CUT;YNuDFIZUp*r(cK7*)rNTz}CFe!Z#T!r%~B8Rz58z_sV;m z?%C7f!Xh8#xK8(P+VWzPMAPhw3~bbuG(r&xRP;q^hZ(8q#dTyzQ4eGCcwYM z`@sN5*C#mRuP#E45Y$&)^fmBYK>tU)=L39#_xl4}%gYIm65gNl{z`z$|04mt{HNnaXwNGYuVqbL^aEbd zCy4PPZ{o+Ssf&KZOCiAj0sPSb|7Y-L1N{F5KNa9ryuT9Q^LTHJ+h1M88e!BL;8Nxi zuV_tO^ak*z0DlvBeSj|pZwc_Xfs5z#{yFz3+8p3IH+CezuLeIA;A_CMJl_8eqOU3A zI)CwCfZq(>9^mf>*PeRszZ+b4e|mg7I1N33^tXfGAJBgk{BVHZ z1uov(`~NujQvv=d@TMTV&w=ZFG*7SdA4hpS{zcyV1N`@RN0%vf|IfUOXSb#JIDwhzJkf8)X|pm(tyy@Z zZlv5+t^0|D`@bac+PEw&{do!eEeU*C0>37K-;}_0AG3MPA4uSz zP2hzD{(Io+Uv-v*_D}v{!u>l5{J8}F!vtRbmTY-d$8~LS4)lnP^81DaE*)`i7!jLKJ91q6RDQ&NHYXoA=bUa?u_*N zTaA5x@9s_=`xy|$sNBr<&zMrjlEw%(m6=d49T?i(ed#hgHR~K={>7QeZkH^!F7~0m zPQsIe+1P4!z1lsqW^=3A|C+cx&2Fq^0)QvC9oBA>wOeKlwcTZF_t!4BHfHg>^!7dX6YaM!Q*?d}}z-r89a z)t;e#f8K3ni1w~I?F(j)@lbp>nJk7nIZD>-6IRT!>EXm&^I~@$%gVH?O`4c>a`s5C z*&H0k%=y2)A#U%jGd?@*WXc3+Zm%<&e>p99N2hiRZynfWopx1}n(nm=vS8w`JS$jO z;`TkocUzFup524nI?Z9fE+u=mG0!v6DHk?gyU9Af zMr+@bGnWDO4s7om8s2)lCYF&6P!l-14)Nm6opwGhm<3-1YzNlRXNhJ}m*t5CPl1b0 zU5(%Z!ESg4p!{j>A%9s1#Va&#b^EA+S^DAT9?Nqz_cFE!$KN3bk2OCj?Q@ zo)p|=<*v>1Kqq6UX_ZK7`qoh^w9T6m-k2HDy&`iANSg3uS!Z)95VcRcR_?Ux(3}ULMJW%yB3{*LdI5-Jx zM!s@NkjB*XIw0+6se|nfZV@D1U4m>V(mqU;%dp^Wv=c!lmq!FCr$+>t^gb&1LF!+S zcwQ7Fo-_hl(=G*Xr``my9~Oje)Zs@3Nza6X#|24;?oLxWCIv}{?nqNQbSIk9q5DXc zjwOPmBO^#U+69Rx=kU#f2--#kKTJCpB>X2Fu6ul&@1WkCz3#*kU5g;$FBK&GRzbq= zaPEVGgmb^cA9e7UAmJT%?k_snbUyZkyHpT=>m5Gq;2{Se5hUJ61&Q}@LE?Q;Q2xYA z5sv2As`t%6?N8TTS=yi8C77oE1TR2uNbo|+T@bpxf)~+_1zRW=LE6iH;KJWvuH*27 zf{Xcn9e%{YaR(oB@Nq%to^bdx4nFJPaR(KD1@}^Zg2Z!3aFqNDQZJGfs61a5PCTy&?ujT|Ao)rOlCPzLAEUhr z67G6I!tD?w+}i!xFGpBCP+SX zmb~aP4z72w%fY=4jyZTxkn%btNO>ItEBF!0+2MHyM;$!m;86!B9DG8M{2UV`KgR{h z&r5>jr~U#U`AG?qp9O;Cr%muq>O+uvI3oCA`a=g7@J$Ps?5JiL{gvQy`a{7Lv@b#0 zbw;q2auHlfxPq7Sod{k*y$iO{4h65I+yt+pJqo^^_Aj`KbO>Heek@ni?L_bz z+N)re_9wWSenyaZ?-0C}@knqD?Mbkm?^^JZ;RG?@2gj8$-o87&?1G`h`YcGHch}C-0R02YP`c=(UWo2G2UY z^gy)st^FK)K1K)C;OKGkd45?slwOZyDeL6*1>KEh^^t1xpSJn}=#A24vF}EEi#8SC z%KP50q8|{APR}3bd;#>?!~JO#545K$?EZ}<@p;4*u`X}oNB3m`bn>fv4Nv#~Zxwd( zUzO=7Rb{1PT;2;;$4F1rovg|XSJ1Z*Haby8C-==6tBWd~1Fh@-C-V6f(&6<@_-f-j zDW!j!eDzsurffK2k!};N)={U7qJL+MvFRCeCz_esB|K zDQLgB^pvy@iExd6?d1RZ$xn{+oTh)E_S(aJtOLFN()!odHr;pq)7Cci`D<dWj|FIDc+Y}q&u)VPn{>d1#edU7*{AdFIS_1z@0{>0||8sDa7hS!P_0qUwqxh}t z*EV8gziP%icJ=NV?CaExT1fK(8(py#d1d8I990V2Dy5a~qAf4ALW&j3CXH}UV!3j{Z8BXdaZkEx&WYm|3 zJdWt*!sGlMbp0j-`{%r3O8c$`-4pUArLSmPsOsTngfxoPPpKS7gdWuIc} z@0a%+ECpZsX^U&GK?``x7cH)R2xcD!W483drH`z=6e+jgKsvMVIa6POKdK=K%DwK?+Dh2Ajf@@e9%g@yIeXG=@iS0cM5lucuF0G{o8Dx=~Fc$QwzU!i*{ z{_1bxub!i~efCG==#EO?Q+v%QH?!x{yC25Q=yIkWHv33hTzLCkcz;KDe-nf! zey!E*4@jo1IY`?#NgMm8PF9Z;ihpc)q0g3dzm_kXXK*)rhsej*$fwSXF!;!UlJ+!d zPeU_%A3Qx>ojKp=C3r3Ear0^R`*1kR<7C)2)gC@fxW0TQ9B-H`pGOGq5!{UKcG|S> zit>r_g`&;?*y+kedak~lR|nqz^)R(I{o9#%(CjNe`AHkkX*{UuPkLB7-5KrZ-pey|D?vuv z2D`U2eUEnTvNk(+?d&u51AT+N$VHZ>&EU%$G*TY~DyVqWmcwg$dMX9Rlv;D1r9sSJ zmEj@uTFWEe^&N5u*UMvDo#8nacxQOi)x2xmw5BdX#AMdmJWk(c z&O-ILc$Kt8_^+$rMTNf)+ic*jIl0DBYwDt2UOGGqJ*%>@1z3H%2M{2vndza;Q~PvF`|;EmGv zrUbqsfv-;B?@i!a6S&vYQX7$8#(fEQ%d5MO9cJBptCie(Xce&QRslkK5muo&ugqNeo)ywNLGxp9U}#u6 z0@7pv4DZ@An3xaDu=pOV*2gLjCJ%(L-1LB_=SZ^wC1S855k0$hZnGK(@oa*tytgtb zvZX!Kgn~L-1Vf^B(F~u@&)hYuzFq4H_Y14R#6jsz z3hxjk9J4k~ICnVvF+n<>Cj?uN!3r+6`{Z>OZBwzv98`a%dCQ<6lZd?Fe8wu0-lTI5LZi53-o{hUde%AU?GMkAzT~_~bV{=~3QLBni1Q%)+tBsv#Tid0NK=Z9&V-QO1x>}wNtFzJ zD->%*cq*g^eIU5`SIwL9-95L?RW`irip%FbZ>qIJRfTN$)M}j>yK%Z+=KzebM=D>K zx=hud)!l0yMVeki)UCZ#2TMAaQs>Mpf{!$OEP zY%*unAw?=u9?Ws3zVt~z*NWgYn|{>7)?`Hd475Prnm>8y<1BmCdsMe{yR!k}%H z!(gx2Dfnjjx4d_u_#%9&c}EugXSluI@wTfRZ>#WD6P}+_$nW3bXYma2icVqaT#1)S zDCH69POcQ?RnLBM_PG(G32+u@O zIy^09ciJ8>(=K{&c#T)35cECGyr*QT|Csoy=vo6~<*L%dvc~Q~ITYaDMNqsRU3OsX z2jng0!s{`oHb!xZ*I@{Xjrs-O|H)E#Rxi#7XWb<>!aHNk((eLS*y@`U{z$^z@KUbf zz)E?krWx;zlAYYVj-=7(D?6com*7T1#-dE@cqeH!mOby;X+kbrpo2)-+IX7DNKTMW z_7OoU=_x_vlg9;{_#;oUZ*fp{S~HJ%gM)@oKyJC;xvLK4K36l-_;{Ewyiva`lN=w9 z;LwHrna0Owg0K{hN0Z~@Y;+mt$F~pBEl@ztD18buIX<4ia)~E$G@@JQ-n~;Q9JB(r z&AijU=0m!6m1$0i&;fxS0AJZXS3MlL&T zd}I`y>5lo<%iA(@l`Ae#LISzsxujC(?N{YECnW2~mt3)JGNs293N=cP-)%`>vED|eU|%`?HT6xxbb8^@GSa!g(G_P{j9;7u_k<%j3&?6p>ahp zO9JPbrn%Ccy58k+gfm&XNJrk~mHhCXG|4r~wyK&Q8_20xIA7v^`Vf)b-yuL0O+% z)ioNY4|yY>Ore-gj}p#kNnv`sCD<)>cCEy*G-r7kzK18UC0xu zbI;#pDUYqhZ`v_!fH@xZM|-6#cYAy4Fv>~(I9g)*LtUD)tcp#ftv)r%J=&wRgHdFn zqvmXDUp|6W&?sz`yY4(tdso=oUD%Q-dwan#+Pq}@x;wS1i*J#5qpWMA1tSAB-_Y+| zgFR=UAaA9LHWlx2ZH;qz&Qt!XMhZ32Na4KSAiX+&D3gBR1eX|Rzo-nw5hIm2|h6IQ4DZ zCmFser%dX;)4mOT2U;W0x9;gYWERg^<`0$BkJgWCZ6!LHCcVDBi%x4It?B#tZg|`o zP8UGmO8#`-dsVvdt?D%GJ$+y4F49^wR`*n4`Xf)1!=K-!T<9;XMrnA`?mJClH z#`|{SrJng-RaV@k0wm7jfa-$y!n|po5ys*3${o%pQ|M--QhbX}FXIo~_dq$DIkoz8 zeRF&_Q&m}8rka06X}b=iv8dIAZ^JNm&fr(~4ommvtmwdrb25dg&!p6^*l$p0mg%11 z3}K5#?p4H5P57S;=+tM^PL4(CyZ)5#`cLIAqi;76_U8gWKP~J-0o`n2zaCy;9qB)l z3D*f?{-8%o{zIJnz_NULTQ?^M^j?+j8Qy!zJGSoG#xVlvRaeL8(7=cKh(vsaiR;xc zzv>&jR0mR+OJM(l-2JMuTf(C?0nKytKIm}z1hY3EfU#=?_Fez;%--&Uu|<_xGZ5~> zdnfOY2e|mu7kH$1p!l}&K1q8y3iN9dlEqo$_QD6a){7*gtL2I58ALt($9RFSamJ?a z{=l8FB@*t_r~FL>?v3C&OUN1$8JL;Y5I*DF72fH0rOr#NIaE$`PQUB4K8Q{Hd_(lx zfsNSQuO#qqBygCM*ogl7F=qMoVgf&v!2dOYR|iF)@P0XgzcGO?PT*%+bJ&=mPp&!K zmT>=A0>2kr`-Du|sDXpvs=pSc75pf;_75>88~kzbG}YkUH9yl?QrO?)_7bW30_&+E317TeF2Q#>`H-7&ChZV@z}J7_qwvjp9;lXLiEv=o{|e z)jMP+P-cJJPHlA4M!Cvl$wpdD=0qH)kz`URhavCa5wrf{yx47b@t!{|q_9`ktj~%f zvEk7L{UN(Gvr_fR2o6wqLb0mT^v}kEY-leZmNwbD^0#*?6Ks|o=Aa|LG}1fJr}Y%N zc|*3XoMTfU$^xhUY#Z2XoQ<9Go3s<%5L+3Obk0uSxYjt-1{Pg_97gzscCArs5WT{I zc|nNo5L|5gL9Hzmgr}`;=At(v<9GNZaM8u+mkTGndfJxgMg-{~)YcZg1zBXZwbz*q z&2L4o94Px&gflT~qHk-4iCr&9{F?=dUuzjkm-CtV99JhOifI3fHJ z(j#~&V{)CP+boECUXXO{6}${Ohp*>*k-gcU2kaG&`-otM_<_2gQ|GIhbjY3&SpBH> z?L9A?{M7PY3F?eC!7c|$PE?J6rd|*xQT0*HpT6O0)=HWL5i}4~RLxoq^O&fb$x2#~ zFj@qOW3FZ8d6bV7 z51&Fsc)E91>x|y`S9R@N`n+wfGN|Q0!y3(twoEG4Xf)T-9NWm4x<1VvIFc7|wkbS% z6S5`gaDT$_^O}D&Ir&SJxr_P8Xi0LTny4_P`9O=w%%vd@XAk^H^JC^n#ni-MGnePw@OZApQtfk^H`XGDVRh5YUH6iKde zYck!F)tP;h%9qwjyj(1NR~~J{*;GsidDQw=HThH7DPE;narcte;Y3<>C!5M!X{}AM zw!=M-Go`go=}dpdrEM$ey1S$`ET69MUFq6F*}u&B)ygM*Q$vU3E}Xe5xl2u!GRbky zYo0WYs9ql^NxtCgwJFCP3@W$W{?cL6tFn%A_gGm$&dRf1=Bz~3v*3E-()o|6+;5h2 z*NEf~%70_(KHN0ogsk_FNf#iD&C~H%1q)E`cvlhsgSRqHD>u-p46324W zZw5a>d7fZzf!|l)br3T_AjnikPDT7S8ozX=-*NiMc zdW?+|x?63OyX~l-F4h^xto%*#v1kIjOkwH)SHBC8ZM0A)rzjJjmJZUQdAHKoOTKOX z+ITb;MqD>CRoleV1Op;pR(F0%1|;($yQ^bty;i?H<^=M+YjLW_*7r zhuY{Le-aYZ#J#Vzt*Pi))z8knb|>l_kLF})pvu!4t9RxxjZ}2c!FW_<#vJ*5fyevL z#EGz}K?4a7J?1zOfq8$h_fR6~m+!h4W@ZW+Luof$LA#H{> ztoeeUM|24%T;xp)Q z(a3D(A*#GV_!He+_~1>@^?Of1AD$pp8k@(V>%w9_HdLo6zZ5XZ2RFm_|F76rIXs;z zl;7>S;B-3P<1x!x?DEzXbKb{##Lk5(_+aTOiH8wys{3rC9CxYZS(6!ouSp*$tx;2O zdP`Z}Q;r`MPb^+x9{iJ+w=;4STcBx#zwDY2?`hZ2_?!@OfG7>Cm1L)`Q>|mpV6ep$tze{inB(UhRK4 z?D&rd;Xl3zpW^kE^&hJHB@69htegUSYeqou!i?1=s_)V;jRn9h0lt^ zRo>C1I_deJ7DpG6SEa$n|F>q1!R}GLpLWs4qq(-~$J9;cQ>7H=iq~dZ%v?ovWY#H2 zSM`W17t*eIMbu^Sv#1ZI?D3xCT5x#27_R|8D_b~Ee7U*jowQcDJs?WA>b5RTxo2#6 zKL6WpDipa({^W3$HB+GK)u%;eGm;Xo%D&{0^4?~xJ25w8joYO)8`ft>k#B@{qdI&q z^>mlfbBnU~7@kskVmn+pFLCAfXO!LV2IZ`9wSKI0>%Pqi%I*#x^(o<6hWoyHuzrni zG=-r4u-5eV4h2-1dA#Jc)|B@vSiH{A7Xo+9`!%*%6FV4Ge3{(Krmpo?cxthL;YYi}{aV{>G^A-{3W zrnb)9#v9(#DYqLoTz8W>l`SXx<)V+wYbA+g?cxw;V5MR=F=~ov^`7BfLE4NJr^R({ zTKn#s*KSy|wsZA{TVmNUCkZCD?pA8qcifUAU%UJIBJnBGWz%>rUA9AlboNIC5q69V z(lJg5(kN;vf9v7eA&S!+O+t< zC4zLGIYH9X>+B8RN4iFYlddNONsqn-?b&_a!AaoHt4k;SdT(moOOk)n`pP73XX4)$ zFxZ8L>>88g-)5uBKrKK1yAz%IT5ps-xhMIz40Lnh-!{*ZzRiS*Q{KlTy1DRg(q5Sh z|MntuS_=^WMs?51zdcSDR__Z9I{&KgAirns{M)iCGjrCZyWe)3r}1y%*^I7v7di$b z@NV!1lu69DQQqb*Q;m&=cVXP82`_AMW9t2GpXcWpQ$yZmE&6ZT5t+xAPA z7xX;H8W&ef5Ld{56&bTVU-i9!uX@>y_sO&=KIwhv43Bwf%QyPGEkMS&*n9#v7cT&c zR=l83tM>z4ycbn>uwU)cxIf_06tCyexCbhZFZBBYepfoby2Iogcrx*Kpl z$d@`=&&wof3(!cO(8P0swzZch%cJk>G+t(pP7uMoCId6YFdHwU{@t3>c^U5__>1IK zP7$Ygm5YK17}_GfkJt!b6JwSaIFk(O0}1*MC-9FaaLZe$p(J^WJzKfJ#;_KrF%y-N zlz8~JtbwN@~MgK4>5Yl3F1%H^i(vV|&S zLk+cz7g~$*V<2pt(bulSp1HNv?Pb2Lu}u2AbwJU2Jj#rfP7w#P3(nF)mXj?^X^gLp zbU&w^_iIfuj+=DUI$4h9`J&f7>SqxyY56Mge!+)t?qDTO&oB5pW$z(fJAyeloM+MB zDJvaDt&!D42Y$2)9n9KE?(#*R6irBOq&peezm+*KeQx@|q;xYSw`iJV&1%Bkkrs_j zSFsOG>rB$6gq4Qrw|Pt4X$=v@gb% zn@4%7Ea6YSpzu_-3a2U>E!Du>WUSAD-L#1A3Wb`xt4=QTMDAr%7y12gYBMwGIabooi|0%Frm7-Z zY+$7KSV=F*b=lOI9yi1_f|X4TxqZ7syMW?`u^sIDzj=;8E})wv?qi zW`)ark_d4=*f~6G^$oqXQU%q_Tq!(0t6P1cW$>XH?8U5hK1x_!3taaRfaNy zPs7xi#XJ+0)b>t`%0+@(#_BK{dS{DL;P&DE$Q`X#$vT$9RTf;{Dzjl?)z(H8!=ApK zJ$*rvm6{oSnXQ(Iq}v^m!f~DGq&R^4aBN*ia_y<+DEB1y)01Y5$qL?`~89~3|oRsNX2_99Px(=x1MiY;ptmf zI9gMb|FnaRgkQ}du5?zv8GDBlWK?~z<^QCcr+!~_b2T&ZtRerXu|_5-TRKJ>3)sW1 zM`Xc_Ng8*^n!!CUx|#HcMzk_Xo^>|5R%qoX3{Q3BjZa?&3-wM}=g?1L(!48ubv&X| z`quJ<;f;_!!%tu@I;sG+i}r z_O#WsX}?;AGj8GSve4Xs&eM{2KU`Y!DfGk&@Y5p)rnQf>`GfY3a^m2OSgm<|-rO7B zkpA8e#kXB};a~o+HvKertbgx^)#*a$fJKd=qE) zqEGj&<=vAt%l1v~Th=pK4gXCWTBx&jtJ#y-5N(_Se@=JXBll|1{q*cx!`<$^@_b?~ zwDJqD2%kGy6#r^?R`ys`k9Wb}R*^2x-&WxdezdA4SEyk>SX>5w%zGQOio@!Y z*|~+{;e6bMVH~x@q5X6Vs9?#Weq1>Bq}qOlN98X5zIw#yl$pJ3)$rlXDfazk?lfhW ziX1QBm76Y*U&R?s?w@>SIcd%R8hUzGw${L!pUwz8oA}NykgjZ@*hO8PgFW9+!!WP<2l=&;l_U5UY>X9iLpWr^F?{d1}t)ysV9 zL3Q$5w1=uFJFW5(O_VwI!@p5mbabkp&&@#d7Xi&DX+Kq@P5WY{*SMFkYR5i~UMKaP zw&z?gVBOc32g4#+DNOyY{JHw5<`$pouKm>y5EswM!`X*RyUFKF=tAnDt(Cb+4B|4WxSd&RPJFpe;7OA(wl4~e_zD^ z6EvbnXm|ylgHaUWelo?JT>Xh?)#hq52kWX<)l{Q%TT`1EtxGYlz69C~AJrCE>CCd_ zD_U1xens1rtFK+7tD7+4oX+;KJ+H}oRWKOId+pF*ag9den3qhkDYkY{H>f8xzvTuxX(-A zXC?6Zn1@iBG=I4=pwM`|hDUBKHP*c&;r^=${DTSnqY3=u3A_NV{3(ly|52dM@Mv*( z&)GB=Daw2S6wu)yxZP9cEg5_wb!rRXf_VnjaJ=SVb*eT=)_E5C|*+T z@7vqc-@SV|EJxx%l~6;`z1uxgY@r$)+|^T#ckPCo-?et*>W;PTQ5<1lx1an-mi)Yf z8V7~1b5LzeeEXmv4Qg1B$`}8y^UaJ58b<1I`UTB1UJ#_Q)l)BmS~JyrBP$5qQ-Uzv z3n)vuOE*pKd54cUTy0P1q#bndkb^pROZKXpMNRZYK&?g3)yy<6I7S%W_}ApT;2?QF z29YEIWZkq2tWKL3yy64EO-8gb$$7zSbmBYY$MfByYgGWwD0sPF zjm=ZEwPP_>4sV<8{6i+-S?@FI46baO^Z90N^(MlKHD`FKV!Nsvoiy=*;;ki*70-RS zX$FPwT?SwEQrE+!mkRLNS;pBs@=x|;oEUq!r1PG|TZ;E4^poOcJ-=NGzdeuf^ui0j zZ}{!n3V!?hWqzCUlpkpM*5niL+qFNH-{#&1_-#H5`0WnIZ+FD}w$6H1d>Wr?Q+Jj5 zZDiS=w-*26-DTYtH8nqd zPwGosng76hUa9gOfB*Cq&{UJxs?5e0(vtzdJh@@|Uw-lvc;#O!z67+q@%!QRzFB$? ze&&yFqiMde*h5&~&03zgws6;^<}7O*4_r5LZ)!AqPio$H;dL~Zh4drv!N=L(e82YpYGbC?sn?zewP*V&-D5S_~TcV?iW zUBxsH5wFrWn!0Op0sM6yUQ%fm@B9|%YBTpuGUqYpkL!$&XW?VTug;WT&)56>{^kt% zJ%s-c%;Mkk!QTI^fq&^Bh!56zEioSq4_rUCuOvMM@xi-EJ8h4-lI4R{2dfoV#(pb4 zT+d%i|MDRXs_uqPzIRU_Vct*zSh{a2HQo;#;yg_ zI#=PLoJ+WPPsz8fvAl6}?7`ltQub3hAkMV*;6oCe3-5{;(-@^eyd&d9Y&7O&dF1vo z?MUvq*wxCS=<8x5`W-Q5-9Mbb?@8eBrg1}y*;9M#b9|ifiZX|2<=Zncrh&`wpK)C8!JmwNXDmo(wW6&XYc+vHglX$$nf^@9rY+iWH$Asg)6b3@P zWWONpdj)Yn>hQ-LE~Z27DM8%TCTeIbX$M;z6i+Jqxtf`HO5J(ujekw@l>5o^I7DaS zDZ6|CE?hQ601PkD;z%1h-OVV^3dehoN!Wm+`i@(Zbzj5N1;jNaqJtH(jvsQ1$Sm{!bW3t^K z{=nE}t&CLfe!V|~yyZW(I+kTg^&CA>1++sb3Q1;@=q{pQG)v#{1q6~m(#}-c&NZ6-RTGdQxlyo5239XbBKS987&SMP~0mL_>Bp?H-Xdr zo5o+EFDJV|-`%Udp;C`xz40-FUj0wewdVqO9lX-Fd-ty0#J`G1dT=>G7GSmrlKB0C zC`lazY8;rWnW^7Z`FNxLKqlGmw(@PNUprI3`;_rr{`37tvfrJJE`wM3@%^so7S z+3!x^N%iiH!jUme?`P2;UpaUE@mFT(ch%>bxjTI&x>Tm$lnysyC!@p7*uj3WT#@$B zaFOdbdoxzg>c|ZJrs=2YW9f_CoZ8Nv)pyempZrUK3-2SX1M4~?UqH<&=Zsb9+QChB!G5dYol)$?Z_?`rQR|5ZB0{0)%>3w*t zo9w&rPH8b$bjPua(RM+h*@RZ1*j!1nc8zvhLA9$w+qsemy=N0nh5ob3LjAt_udv@A z1YbnIKP-Db!cpPO2ksZ%WOZ5>G4K_@f8KFHb>@xwE1BfDpuOWt0~jF3Q<2>f_~J@BBA&Pn+!2uIgPF&FPPo?OZs` z(MZ|Oh1JZuz4vS5)c@>8-%@B4XV`Y+rmUv*k}&NFTz=O%JJqGa7LVrZRN*Y;@ov1T z{TS2e;D)swo7SvmXQSD6$$hSUyN7h4Y4_lE!}I0s*3M2UHi~K4JGt?e97|Hx*RCN> z8Q$3=l2?&j>@*eK(=0A!p{;um>sRp{#n+Q+QTK!COnaPs-u1nl zu0wp5$!|G~v*Nrfk5$acRs;3E#NmM0)bQ0QJ!MlLbvdLNScSXfc6#@?b2dO{tycP1 zZp%hG$Dui0NBNw%ER;|2Cr1Mhvilm3pm+a^g!?3Tn#a4p!n-%JYoH^@0KNOg>KL4n z-R0m}AVar_Uu(#!Z;!tZT=na5ttsCT;2#C|M&aF)z(13~zns7$H-LD4XqNt_vwP3p za$n@OmmAIG**rMK<=LE3vyGiha9C&)SZtZ-@64jV(d>oFuuEsAWX@EMq%u66K4f)? zO_;)F3D0gnFGp__iz`xUdU4Iq;t-5Y1!m%_v@rpBJ!IWf*SUKA^*3#tRV&$$Y`Vdy zE!*)*=a{O6*YI)Z`&`6Frtd_!zPCkhwSAHBHsN$ktDO6K;rP!vyh}Kq)VGL!SUCRG zmk8f49RK$_yb)NPw(Yulnf(TYx5yqQt<||J-f9Fb>m06lg>P|qmmtLTf@DH%xElVI zR};Po55$Lu^_2`3BJ`&)(F!7uA>Oe7w)|-s{{1JY5^_k|kt$WLA-A)vfX&$(ZPrk9YBe;blSO z*Bc++4OoQX-H+!b*eN`PZ=}Evc~3weo}jM_IX?=LBZ3s~s(a-_?@4)0Ert6v9|-RL zbtmWHf3VD!mvx?3&U|;y@?}@fS?9S)6&lFNwU1Cbgv8BoQz%N$K>CF@@gAZ346poS zW{O6yQF?`zhc|aRpHx7WhYxVWdk47TyUV!zc(cI0e8xeQQ`)_&EL3JPDqFe{({_Z< zX5v0_&DxFZU~z|r&>!8N?~|V%ZW(~}eRc4>|H1aBsqL1H)mIcww@&?3MRdDCUr=S* zy80h$tou5TLa*@DpIc+yH+$5%ZwYXP-yh)dD=*?bchT)gAng!|nNSDIdj{$>HF^7Qn7#Je}L z`woxF)4RXm9i81j0ac#f{aoMKIJ-p&d}#uYY^P*cJ@eYxvsGsb&HT;zt!J~iiXqf3 zw>t-Vmvc&dCG%GK@s^n<@ouw(2me>WL(LXM1yff+^wW5{O2YEyu*6<5GPHJ0hgdMf zZ2?txS|=C(p}Tn7fL&O&3r8VX--GZD;c0tbf$(187uxnNyb-**$<|%T1KHSNr;T&rKgB3~y@POOo%ozs}}`B+!z}*vzBwJU{aa@5%JZeY>MmI%TAf5z>i9Pu@X*G3#X+7>|x%7xFWrn+rel>(GtO z5T3%-nCp%96zYsB@ozNeS@{{Aiy%E4Z~SY1WoLeCUzwqabxCL8XI89Ov3#y_#!=hV z#&SmSGe0knqI>qD37yTznFn3yH|Fg?Bu#@j_{sw39_dGN$j%NKVGyxbA@5>6=pBnmkgD^tTOlgc+d^D?QJ%($0-KSJ@C` zgFpAlm(#xy-+NuUy$;Bei87I2bG9XE2u(|f@UH$ueYXs8nSNdG{+m=^qdq=d!*t(R zkLYsOuFb99xLVV-XsCN|SdhVLx8SQn5Ar`4?_0^uSve|g#F_tpA+ob&O(5DpMo>VZ9T86F=-~=xl(Sb5wL7@)_bpbZ6-q7B; z^>$s>P?1baGdJE~s?MNY)zWLvDKV4g!pk zo_c6RBQwH-lgNz`oyyc3Psh|cE@QcU5xOx?1oU)*VO6z~@GfX+x~6=Tj}(u}1nbxw zq%eNV2ZF7CwcYJ)%l!=MO!KFe%a+f1FW#s!m5>Mjyz{4@*T3dphCd&J*DjpSpWg)k zZFqIgfLPDFJ){3%sh4?CeZEjrmoL1ombpQDw9ninq&dx(z~|)(RmLCk?t1RELSGEO z?<+>RyGxp{nSFbn*XM3>&K7Xxt{mQIi7v5WNigT33u^cx zXVlZO&!d>1G_=ei=qDQ1Ms^?9qs(#Yh*NXC+UR31)I>&B4vUa0z8*Tw8RSoMF*E02 z?&af@Ze=5~`T5Y*dpgaDG!G#>KY!C%_jTaj-?w$Ad9G0WYd2qMB@KTQ%vCg>6Kxo` z^~;^%=*;Wxb@k~-XgK=r{J9<6u~4cW=d9oYbEmwEZ!9;xmGl|^)Ym(CH~YLsKI`U` z`yJ#QgJ^&0THNQkyr>N57aG=4-m+7fzu$$mj&hFDx@+3be@*z5Eqw=P6r1w^rx$RK zGVOr9oOWNN%|oupIEOy}p^`73TJGCM9{ct6#8VXw6>r4dyDg?2M7hcH-mP%C!%bm` zF3KG+_i@jsTpNhPhpqe4sB4>F=92Vr4PS8O*~(cQwa}i0pJZLvLFeb^DtCX*hVnA% z>dBv5{JTM2*?e;!IDYgVhGElG-pi=DKKn6G`g4W-*@g;lFm31VXLs3f&dwo!fc^yZ zCLGf2%UbpF+q9u|xra)1(3rcj)3&`aUoNia3`QGwPJ19tyKkqBVP85*cyav_$M1n} zbopy>^L?d9XK{F00`2vrWMn63YlnGs_D~a0=Rrmj$TuXXnVh7a4w!F4`ocQj5t7)n z#BcUReX#f+8Q;&+*5dKT+cjdBdpfm=s-P^=8J4)^&=(~N}o}E3?_1b-VUKeZ=$*WaD-LoEb;ja&H`B!_g z#)iMeqb~fe09X1316=;|0WSAD0$lDR0WS9z-*^chRyi>CY|2dFE_&^4v&QD$dYc>h1* zy(_@~mG^vrOYdw1d>p9ol6QVDQzzz(!n`JdUzfn&o4_TP^+x`+4&jaPeF^;Y3H&Pw zJk+6(|0fde&w{Hx?&VQ_{yyRUFA2OhZo9V3-jKkTCh&J8@b@P0TNC(46S&T&_D1Rd z9dLagY2KAy>63UP_lX4lOagcE88diPNND0=#0zQS(ZX9esf`;#jA$WNoGTNTC*#pILI_+{zM-@;)jw&Q5^5;Z1 zJM2+Dp)4qr7*z;b65<)5p>W91&Ts^2Aki^Gqd*c=DIy98O+opb^qG8g4%}uA$zO9r zZr$3Aokqc>9HkPYZ6eNf;I>Z3A_SIeIyRfyF;)Zl{=VHe>>Ob0;NH+@zI%7~j?Up- z_FDFYZ!6a-N23tU#fi#@JsinyL=61Fk@&P!X2=TKxZWpLVe}%t;3{MYg2<@~&iygx{*)k- z)Z>EhfS2SuZ@$LL!$dDRSaa5n#Wl#OmVhfi>Ys$Kll!$!9`-ik6;8Z)!8OQ(1>3D$ zOmJK{=~sW#yw=_~)O;Oh(h9#G84Y}QGleI)jN;Y4&SnHO?Ska1Ly+(X1jBovV2hgjGCNMbG-5%UM~^o@>W9fbmbZjXVwcgTX0gV_uO%U=)`O zO`}47I2)bvBR^qy`Zm1r!P5jQ;`k3dcx=nmEv5N49aa0|6=dY2Fo{xH})-X5N)PK22jDA-rDqE+9I&Z+B4Xlu1$GG^5yvMvv-Q(3>`2G0wuf zjet`oA~!~KDpPMf9m$T%PHsKWjd>!VrxWCpi_J@lm%NCteKU{pk>XLA_`2XVdTD+X z{cYgUhll)d$jktp0P&3S!{y88d@scd%2ZN*c!qsk=6o+?L93XzpFr;M%$J^?q8BQj zDm*=PocHPx?xW!Sncu};ascE6l4-qs!P7<;VcA%*UU%u^jpZDJiZut-&orpci7|&0C$4rPU9cGMY!c%DZG&&Dh0vSWr&Cf?uD9C_ie;bUZhG9rj-S^&;{w zmB~!9&SvPmym5ZSovxBIa?Y$Tw^VdjiFV&0|7r`~o_jeLB5N#uA3L4D;qM(gk*d^3 ziPJWY9GLKp|MAh%r=7peq)l?qA13@sP8z05{^GEpuSh3lSSi3 z_cFW&{3|YV4jJ_SUGZ^`t8|L$qff`}eHhu?W4PVw!s-gb3gvHq49(S!CL7SKacMit z#dlVYwoZIH3+!n+rUmpxTGP9OXC2Q39mOG@98ZQv{lF-FKve-5e;&Cp;Yi=gloREb zr@k9$XKF8TTjLwvgS{`$RO%q@@ZHG%3R4WZ4O#b1s{GYno@t>Ep=@e6tGPP5xe8fD z!%tjZ9;MC+r}!xD9}db{?MdG}$!}15_hI^Wp!PHB+GiW_)shCEX8PoXU4*N)xFrbx zD~a&`o-)edw?6QTZcu~TPh(*BW9*J!L|<6*^wg;|{o{q?XPoqn@Ql$XM%dFYzI-Qr z;y8UGkG>ztrS+|-|54i1&m7ko%9(?u2Hfj)4i0DD$lvjOPfukFd~YMf!@K&Gmw7+_ zv8Sh6atBJM6n3F}o*?B@^))#gG|50VWn zcyHtp-zP)R#-#Y~cki+jE>mZLkwq*1g#6ZxxjoS)Gr#OK0^Ci|c^PicuA$+ardWMe zIcqEXTW{So@S#3vH1!%B>>C{TP`3oPA(`a5>+R(j5WXhQ{RyQIo0_=RtW`|~ha`Tf zHld$n^`}(t)>!>6U&m?%dS`rc#=56H>fCG9z>KMi&hxJZT74*;ab}GTuS-0gF}{^q zO!Cii+_Ee0W#|Q)Ngu0{eqO|s%NV73ro9Z6^x`7RW-fafn3@@*a3r6~Ib1+?zviHK z|DYV4k=+PSnx~#Jk^j%~?v31k$0I=De~`exmB9Zjf&UiZ+e~D40v@9n7-qbal?<;iQB0K6L$u_n3j|jhyd-e;qF+K?*w>9!Z;(t~+^3CT3$=^%Py%`2j>B|U0-|pa; zAoYFRLGAOE9_3O&=r=nk9zf~u6(pU54(1&kc2K-Yy#MR%cI*`1BKuWN&InG@4ZhCN zuXp$shj%%=UJ&7#+Nr{stC>kYxtBD0L$Me`5mm_RS`b`yQP+~!(ZnLrDGiGqPIVgd zND!7RL@Ps+HS}kqqX`&4AziNmaK@*PCR>p{>A>Z%Q~Ic~IDKn*R~meHDTG1#roHju zt;RxJRMt5>OL!^X6&_yV@HX?V@VtC-DUQS7-Y7h|Z+B4Xlqo>R=Mo#y=*c_i9dwsk zXhb73!b2WJZj9(urrvluk{#z&ZvPXyF;4{abb?f8Y(}ZfXNW-ZNxC1C-xN?~;>(WL zsDp<5bl}m4mv5^)i0Vx8$rYKop9|ZiL?q;s)yM{jyP+zw``znxMlAOZ)VniaNh11m z%#Tx6RwBCkU&!9~jm5m;%A(hpL*CIPSz7e<>XhUgW3dc@ax`*>v(j=uSV}R^_VNXa zx}iz>XIB4^bRI0#;9qCMi$-b9lU7=dfgaag!8(Ioa*-P1=FXt=tB4;N0C&!goG%%Q zWH7XU6Q+&t?vlc{@Au&MX5BRe{axoPT-_PmNV;`qfON6U{kapwF(KVJbN1Gc$roqx z7tWhWCo9?YsQriEmnx3@nto32AJ-p7{ozvcX4|CNnvD1Facg_}zgUd6&fLZu-lG%t zxDMvJo8oh{bRrr%1|mWE>>lPCjIDd5s{h(tJNn0;d9FRbqWG&!pC~IcR?(xpp7-{c zrplaUw=Tft-VxvmPyMJh)_<=@2~Y0*0WSaLKGwSL4cy~bUNrX>ec9BR{!Dm|XQsJ# zCH*|J=BGBiz|dEA$kIKkq_>?Dq{hr;?yWK18?|$d?J7&XYc5yLtF`+W_A*M7bb%fK zs(d~DS9$kFc7MX7^7Zb2FW-5VMi$r+PN3Ij2+1q@*(g zRe1tfR@bo^GlgKZSt{m6*o4!}GC_HI%C0dJlLdNj4Tc^sB@Ytz- z+U};Z%tU8*Z|^c=%SNlt4L7u#v~&-jZeNjT3Nn~d`{`bC4roa_IyT;L?adu)HET8F zk-2w^CZf5Y`n0Y^w%=F;ejZLhxe7K-#6| zR2f0$cKw3P$ut&LGkU9SR$m%LX@|E6GDmB5c$;9x={7*Gex!Pt{cfsZIE;T5M;17G zjjuoN*%4az@ut?jB`I%Ni-Q(xzeX!PVA z^!5j#3yo-GMtCR_ksBjAm8mzLE;%>&6X?b~5zx~KhEZv6R+>k114JaV&J8r@{l5Z_ zKD^=1tpi+7?zcXj@hq%mSIqq^tQMGEOni2P?*G-<0M(v9hyOm9dbo6uwJ7Z&(mE__ zUuHcGKA53!QxSEehP@*Xmm0Y{tbXK^lkn8&3Pfg)Lw%~r@Xp39(`4x3Pa3p--00lI zk8@X6gYK4M?X$=l;6kl0YOPj$_lvA|HIoL}xwCK$kALdUZ=ATF#OqPzH3`Dw*XBM| zs>*6UakIkX9}X@F84AmcEpN9yjj+J2Bvs!OyC^}d=OlIdwJx4G~xbn@H8Do&bfav;U4+U!yiz3 z>H0P0yF%Ulp=S8M_6E+2V>sV%edkV=W4Wb9SAbr7!%g;Wn|2XPNiI3@_PP5;+ zX9rrdJrNf}_3X%><}6vcoRh)HUcs3;ug+*!-gIY^%0g$f-|z5(gO31f`0&OBsoX~e z8Dkz3S5b66Cx#-je)i#7P zG#I1x{LpyxZCHx_OmrD& z4*YS(&3XAxPR<|yxn_zP?fn(_qj_arV3q^*Hxwe8J#l5J80#< zYV6)=jeYEweKKNvlFUjvXswLDqSN?W6@&@R_ZY{%<>{WHFpdS!z5Dm?Uka}Krf6>s z=3FVpOPwoKt?;@SKeKj>Jo-Uf7K&eEw#HwbpA_bSx?h-5n%IAPhojeiPNmJ{e=Il6 zC%w?)X~NPw(+aZ(Ga4B)`4DaPb?7LK94OW1(cMYICuD5?B!{d=uTt^*GWGe?K2P#% z&Iql=zi8yw^Ce2Vr}gPn7|&CFH&AY(n>R8xeeTG}wa4znANO|peaq6*yqGf5UH8%0 zlch`Gt^hb!m{E9(rcQe*&t1*~_z(=Vfa6 zS)KyVL7r7SOL%0i;!)qXIJ123VptufY*Bj2hQ95n_1xC?mT2)%I%C|2(u;={5AI1X zSv-{4yLfQ#TN*0#iQISGgLnKa9+IEecqJ8r`oUUL#un4R)zQ(IXN}dlY4m7h&kMEP zmn`ed+$44e*LbJC)|xsKeiL;6!5E&Msf*sioBj4>RTt3*nlW9N@D==L z^=eF=nd@mRv8K-4Wy7}|3A`_X=M(sc zz!lcZF1-B-_s=Ep-%jBFDS?M$nbPx}g!}grIJ};uNNksG@d_m~Ul0!uc!h4|yj*{6 z`nytpD=jOwbP>#BbzzFOSyv#{}v89utJ=dO@(+ z@_FJ1#ZZVJtQCY=s28NuNICmfpw_561PModnRF8*Pi;;khZ4NN>RAdtC7gIvzk<>! z5}o7}(p@lni?AONei6D2f;3>G1JJ_WeQ>4YML`JA*|0@5YQ$La9SF=G_I2&5Q zB)>WvUB>zG{Ho}>6o4~|SMgutpy*`^&@HjA=3g{=);VY_`P1I2(1=E6GY?LAgYYN1 zx$vw16S{uy3FyNUq{?Emg@jA5O#CXMX{MQl38^wHzkrg?;`z~{*=oI~HgW*fyiz3HwNQc_+T+r8QE!y2xdY$3v z>^kiFAg-&i7ate$M2(88>(izBEdG%xF$O)CUiNS)%{io!U)7U`1>g%l#dD{%Yx*ku z5B&GpW4I&3Y7`%yZJ$Qgh2FgQ@b^wtrC%yB4K@2{K7aAICck}IVQS5?t&{tf?VH?( zyVB4A|8zEGQXV!IUL55Axm)jjs>snNQMiAK^L7vyP{YX915I zb|a7aO+8nBqS!WuwVqKPeLq>An>XCJ;imU)h&J>M5A}5C`_h|oH{NhnLzGVE%w=%t z8~biguhykZ1H=70u7bIf+s!+>w+{BDhj*n1cXjus^Olrx%dm6l^qPJteec{(a4b9T z-0uBt8rZ(Gdw9?8zRDm;M?>0}n7_PAc09(sCQCELFdKiUvCJCFAJ%&mehLvuU@U*A z{>&Q79}apH`WD{RMy#>?-yx6UF8*(SfQ$bt1o)M_9}e($@ZJ&NYk1cfW=)-cG4L0` z53X||w$XQsAKVhep#FP%0{=(?zb}D5n83#q_#Y?mV+kC7&I|+rKetSLnvvg`yVX|; zHLRTB;tW5x%s3l{u2s$}$|uI_`}90oS*~YR@^Uv{D?Jdi-e|VGo2~pDOuw81>g{@9 znZ)V|i{3DNT)4Y+aG9xf{g@6{!Uz1ov_E435x za%xY_Ox_<6gzhOp=rXih!CpalxPuNq>hQ+|VSt`>_L4~nKjm<>d+~^`2-XuQbuON( zRuH^ikWQpgkbzvhp3$omY$P8JnsXQ7;eR5CoZYc)SC7#I9 zh;E&G_fBolg~q3EGnP2zy_@Lf!n^fA*Y7<6eRzUlQAod57UJDl*P4}gdy4KSoPYW7 zhP#J$cJ}u5cJz0qyHeA&oC)~n@K!aM zk4>(FUTNg~^)I(6UBsbt=zN+!Uy-IKN`DP+B>vFwx&hs`3ObwisOt%MW-B8VPnUCX z{gGKWq%Jar^P%?`(9|ieSQ|d$U=*%m$ZhT z=v%nmQbg~OGQ5}f_v;LM-oMNH`#4Kq@AsYGjz96tQFdRP4quKcyRa-(j;hB4thKhm zZz_L+z8u2*)pix8K1Vr3U6aMn00;P>$7$p@16zQ<3KVasZ`rrO_B{C~k5TS(wjGYp z25E=Y1==9(P;KzNLHld@8Qb66X0mYXjOFtvc5@tU6c6%dl(eyed;;&M#;tjH=8<)0+FKy<=Y; zO@7MsF~nV}&T^LH7`u< zrd!780|+<8+^dUnt3@|=1Q|Yc#+;D*4kGji(sr-y-_Wk3bZ&Yd?Wtvw^B8kGC+o7K zlj?^QcAwv?Bh#&>g|q_a3RPdh6^I!LD}C)(MCq_>su^zGJ7>`Y}Q z9;$1c7)_=5hLj)n64TdhDNY;Rh4&S?hoZ!XOaJbB_) z*FOGXN0$fsbc^;+16rl~ThLZd6sEojtO2$=e}4bI{57FatE_c#Pzxw=f1Xn<-uvJzZKC9Vo5m$?He{Y zN)K~YLQR&k$$YO=mDgI%rebxjFx5lZNuP%MP-yEzMdm#XRndovKho6-pOxBqu?>x$s0AbwFHE*LUa_50st<_iZd3yN`(u_a~hDAZ4j`=G%?R zVvB2M+0=n);-6lXIWVm=W83MM)E+fwxk$>9)Ruw+>Y2`UR5ly#t(bt>0-dNmW+QF9M zYIAkRCeBg#T&bG+KPxjZS=V*u zxJ~&sqd1TkG}NZQTdYc7JKX^PQx$DIuWG#T>1e#L581(k>li2gKla`~PU`Bu_y5f9 zEUfD$8Qn!U8`ROPaZQj6xGEZ=gMea-I>4f6NEl={E^(0&)<`UEhX{&4wvLL1DAs91 zQfllCNoYe2Nw$?3;w3FfNJ^iSx#o3xJ>7rbaK;HEUl-A@PW&kX_h zRx93UoPB;1YKCj#4-ZA-Yl`v{Aq|_MNq2<2TnH2|cT?X!sK~iCL7QUl!k-Jmbmr=|AD0$W$BJjzy5A|u*^|Nb-7s?OitM=1x zQ&mRN>(~F+8x5(8!+fs-x^`RbjBA&3XAK+8c?Yyg!M2 zNynQ4i~}XJYRhMAMNbnBU9-u3Gmf$L-{Id@SrUbf3$+gU1fdK(<|eX^&c&wH$`W(*5hk#FxbQ zUsn@fhuRq49j`ugHStFB?2kw<861;ZH&_clwU0sV+nChSLDl`8ttI zn;yR}kq&b$^fih5247Q|1cQa?;E6nModG4c(kW-e?3uMxY8W{g_Yvg!h}F3c+i|7j za+;TC`7?DcwZ3>BVedxgTm2R~-wU|=I-mIHbiOkPBWL4u_d+SooEK+3G`v1qxR!d; zYiWDD^!?PM{T=zMg?1{mmtGl`U(%!fCy(}jLfdY`YqKy^~EbllgixKv!^G>tsnP(_%~>EIPIl!_1fp(Pi$EGfIBShc1!E{;_AXbLZfl* z?t1Rmpp)MQ)L5qj_%wJF_#AL2^Mo4vYz1y%e(eqHeumK*=Sfu9*|>cPJOMlmeix<( zGYhj5`|n|NZu}nb!AN-a{Hy%G5VIQmV?g>NGpG4W=*IK^cI-6Q`8U8Vz_XEO{yr2V zFG_z9dE!-_IShhuFA`Idp)LyDYIITE4M)3Q?2Pvp^8>#qzD|FqF}T+80=1hBO@%Jp z;*5dQ@qU@pPjr=)c1Y@!R=Z`W(vlJA}sxt-?)&A6GbLjjprMm+C(q zcDBA$6YkTF#hxkl5q6!G0kw%n7RaCe|C;v0_z$FyaL0a4(9oG8JldAe&}MB>*m?F_ zF}_qA)k_*^vx=Vp(w-F;0cQX+zzIOLVO=?m&(#)(y7hgeHI{s)*pnxp=?%r+6!}8$ z%Ye71`|Dzfr^a#5-MBX5I-5S=gSvK_xwSD?S2!~gjQlHlz;l>1rV0E~AcMw{r!n$4>Yg2k(mY5C5oEPiLhH=aAn>kU>uwtVJ#w z^e$o->4+p%CqIi0lOI~Wr{C<|n}D0?laUqf3w%xG6^o-Mkne!JpkEI45%$N?5i+^{ z;zKGc;^-x9A5ZXh7Vtij$lsIu*WCZK#fNs}x4pO6k$&W|Aj z3$6b0ZQ7#`*!F1m6Om!()c;j*kk>U!B0oPoCLH=msxLyUsT%{Yq?`=C=$G={3xCvn=fSGbv^RK+`xXu zdJlISh5xQR zXj)Al-vDU7y)NIOves{EzR61p77r)sv!aB99StjGEx4p=Q?J;nDL! z;&a8?#-_qi(mNKO*9B#rDqzg6IUm`n&Z{hhoAM+c*5ya);jzl_&q=51Oq6nL18UAe z^`;I!NuDLkzl{XH{C)W$3?m!3DJ+-2YYC%vK;sj}9ON;IyDwi?G4>j7$B8X=oTzf_ z^2#xKCi@jgTMho5etG25P-i&|RDUR$_s8LCM|&tsr6oubZ%}R*o}>Jw?`*ez72o&0 z_?XukQG2AeN%eZPb}2@i<=Un%Bd3y2`rg(ao35@Cr0b{jy*0=Uc^Nv5@j#4mYd3a% zHmw?m)dsO4&ce3-gH7jnFP)Eg>69-03FK=QdFkRm{4L!#dd&JgXvb8_qt747G4HW7 zv=Coo{Hfx=xR9Sapodq6&rV!l8GI*9S9K&SNj%?hq%h)-Q-VkD;u{|)OGJG zPA3fM3-uVMYt@nNlD-9hU7vI_{q~ojSG`sJ>5I{arR*FL{gCZd*M+31NWD^uNI9qi56 zRnNVMC|UI=3rDF)^XRw-ff|#o;D0Bu5wo{02)0^tE%tr<@5G#o-#9S9Fs?CoZCwP^ ze%o6W7G^1CJ7yR59|2~8lQBo|wimO8|J#AILE(67YihVd>+ktr6c;9+E#@ifAooNu z$UcVt{@y|)&Dv)wKQunuU;MD#v<{V_-2{&gJW>3*?Cg5H<~!Ybe0!j|e67c?XD&Zn zkDma)+hQ8C^%phYb1$;4c~aK0UX*;)1`CI-HgViqcnr6Ls-MIc4dkyPu%?c-utg?o$_0*SWx)2sejd3uICsjf7u%}DGl?n1uXh<6}&3jNJ3L+AKbWMp4I2oQO7hdHI{mJF8P-(Dg9JyS#RW9hfm2Z z862B=aPULeMOfcQB=@_v3O%*ewN2&3C%+|xBwvH+MRrqmwO}$5}{Rrnut`hgt*5>WJ?qFdZVcuiY zxy=j5mlK8a2hd3lRQA3s#0Ek+P#H^hQ?#WEZMu4Fcq&7Gu5tlk>Aqx@^=vQBd%Uza z5a%bL(>#v$*)tDd=5QK;QzGHKO&s`B%pvORX3PT2zk*K%n)N%{z1dp7OCsl_J(ho> zn53*%Wq(oZrhKBTk<}*iLs`l<7Jr&MqnJ}*uB0vBUw1b8BV#%9n7p;MWwuTs0s zJgXUdG7t28eGWVIcaJ?dXx3$*7p?va%71l#7sR#3$apoMFC^iC!q9j%Nj;8iWxPlk z_+hOk?OMN>#W*t9s(R1ZJwdw`FrHxTMLOWMq*ZBaXPg%5IJXYHOkNsDhsgu^RC=oU zARgdu`eUCDU&3#acq6!J&&KRMVVmT}F}iz3~4PzYY`vCJvq={O#Wv$F8(U%`e>Rq2U&=jJTE9bO&xlfGL-Db zy>vb7rE4E@>&BQX@Mp%(!HNPBS{uo-R+7!vK1A66&4zQp8~;4-h4V7uNFVCRi8riW zagQ72rZm^~F~`9;zZQL{PGwmO&sCP9m(I`!R9=;L%?oHA;40{p?x>Li+SzP4C(uEi zz7n^^{}JZ0Dhya=c@Mygyxl)Vp{512vzucRGTpLLbh;Z7BAtQ>3ot-9P9=M+Yh z|8~MPWBJqT{B zD1MD4eQFIVE2JxZ;+WPEmoV#GnnKY}dh-`g$SnFXbQ`*q|%B#vU z;*}%o77em@?V8HUq%D&lddS2vw~)-bG2%Yl<`t%3Z^CDcsPMH%P;HF%222QO!-zvN z;pPq2dgCRZS6Tz)VGcWQ@cCl8DeR{fLN7Vi{ERDizpW8ZTpT-z)1-wwHYl&0z5e2V zz46L6blw@HMd@(!AX)Xv$i`aI>*hl=UXvam+3@E>7*{cl4f8AA>B<=6Sn7zm-!Ojl z>4^+;d+?dQZrqiLAB@u)xAZgdhdR-!^3Z?y-Ws;sA7jiEyf}|CuBb1RlX!SN<>Ts^ zD<74g%FeHEo6NWs8L{KmDOQi`@bd8)ufF^R{26a)r1QDFKIzdsKwgy}wKYofZe&8~ z*EsQArvD-@c5KKHqNIC~A2Uu=JNX^rk$;7wFxW3t8s}~H#z4MKwv>1)>tCuMxfZ`Z zgxg!SA%|&0Z-6d{h3$dDsvaN1>{1&!g>l(c(5qf)pRd{?$$K;Si()eeDv)AfWd#p}XJ$9Rnzan))eZbZe&|C=3MjMXyZMm}X$9HjP-1ts=wj7N= zzB?0|JPJ?_6T|GLV7`cMHldF5oal7t@?US8t-|!t*r%*Hh@ff=*9O!WPW$zB20&xA zfq)u^S;POez%GpRyxL@bXomDW<&F82nk+hU9DOgfL2KK^Oosl7eo1?aB3t1j<1+5S zN3@?Tx;35uqz<%UreSiJ|AiUC5XA`kBrso4zY(EMYR{9=BZ$N7qt5mtUzh>rQz<9* zWerb)X39W+@uFXced<)=o0O6)&o8X!ztP8;19iH@F>j9lVXq#r;9b%sM)22zY($JM zadR#DX;Z+P@TXz#bcyX=IKD2ixrK9l(M`y zM#)<};Va#0BTZSSNGI~c{OEq-D$6usUQL*rtUkB#1p1tGD$P-gA4<2=8G1eXN}XYT z;REz7;abC!#aZJ*onZ#_$LS2D;atLZ?T*eQjKOG62>BoR2~hi5*`PIY7H|xC83znl ztC^y@9}D%%+U)v4%^69rl76W6gu*E4m%BYZ&(|-RV;%|e`9fM@i)S{EL29t@Tip6g z`=T)#d<|&RGR%!Y<9K|T){se)&YAXFy|c%Q%jXNsE9srHPC&z&5@|>G&*>iO4aGk} zhT8MYGi*iX^0Xgnduaol{;4w8JZU5m&flC$9*mBXK!3OE+nXp0$>({JC-T#QpRt+S zn7cs_B|kbiKLI_~tGAe9>aD*d$Vog9?((591+jI6CZ@lR0(nauBYqgR;rz_q=`Kp{*r+rIZ z@w4zXqWfm3`}?7v979*sdV}u5MptZyw-dIqHy3_LUz}|9MK^Y9A};Yw{^^4n)~O$Y zKjMeuk?s@{|HLchOKx387o@z<1sC8?>34Y!bfDXt`612=!?=5q%X?9!crLG z595cD&Zs$kr|bAS;|0X8e5x&+Y|B57-O09DOVt0R@p6a3a z6;0%aZnA!~zb&xyhnf#`>GSn%)iL7_|1O;u!&~Wz3S0B}&Yxd@f5jR@k$NVY7fwKP z2pZ{$qRDwQzP|V`&^UcD;r+GonF4Z)vof{bB9xK*NlC*o6 zmSh?`+6vs%hnRZE9uV5|9}?4dH3yq8cRmuZ`$&`0Qu?Sk=0Y9$)9Wx!~sc67Gnq%o+a|%Wh?;u3`k@y^d=x<49(zxaE{oSP3O zu6T#sMX5b@bsGzX>jR>m)AWf!7eXEe<$2 zK55aCp6(@gEb8L|l%TCEyzHUMe&UklcdqQqtXQ6zILZ21&V?yU`aFk3=%CB=yI1Lw zhGk22)m~`Z*S##$yST4=(Vfe?S7jFIK7A8~xzoOT*=^ljWxEnB!HCe@C&7=ohhj1r zxSead`hv>G&dhCKy4#EEBS=?p_55oVT|e{sMYpe5eoy$YSYRK6GmnDaxX9cWv4q4L zpIjF)b9!fZ7g^^mshL&I<$G#_k{A1snde70@0-xdH|HiF7+`HHf`C)FJ< z%Jf;QuI1d-e_K_tnWUQ%(@nY6L8&OX_kU6MiWSROEb1yf9Z-I;zY_Fn#*1949ef)+brBG$Oc0_+9NvMv7_*&TD(V)a9*(Z9t#_p zF%W&i!aahd>!2X%O1uw9INJrm2P}R-5W4tyApU1q*kfUzAnDv_@oj=LkpnjIDV(Gr z;id%1?<0bQvq|t8_;2xpg4e>QvqSrgAaoln+-~6k3#E6e{0>?8x`jt9JSs@urL>7I zYGI>=F$#EnHw>+QJ?SdoApn{Z2zf%zZeS*;C1r@KgKOlHHeE4AKo)N^~Dna~h5G1^P z*8P};eT1d()(Rr8dj)602Y4+!C5T<0g&Qs0VWGw=;`1&+mO&xQ2|?_Wg2=&YYrn_ht0rL&f7S~^x5eUn1&Ob7a_HVGNW23UKWO1< z`a-26CrCOD2og>`eW1#7svzO#1)i6KPx!t?;I#2m@(D|>L(3L!aJ32v^SJ9=A={$*V zCwo8HrIS0R#Lf5C_mizZgG6}ulj$uXy_FM9 zKE}TD9Baft)=lf;`L9Of`9Gu9hU?4Bhu5)6ueWew1CJNY8v*QVZejklhWYMj{PAKW z!#?UXYd3M`V6*w5#mt|#3~VZD|MMsKU&max)}V18*1pLY^W(Ajbkpe74Ocm(tB-&vzU&}gIQ%yc!8woyLAP!h{bK!Jow8!T*=KW*Zv&KFR&Gk3O z*z0KGe!|3!e6wepwIAYlacfQDdHm`8Su}Cqp!O=7I|G7zqzU^L=7jZrK@e~bmvm51 zSc_gkI`g%4Cf-z`IsRnvFU)_|yn?}(aO0hYOd-Phmsu-fUfPAzK>X1dbN=yg{@K|F zah;2qt9#oTf`slGm{<5G)+y?+i^iWEH`~VhAW-~@glkdeo{N>N<9rM=A9EvSIY#@b zuLkyF?!bHsb3I1qZ?wim__eef4Z5E}>qn3CU-#QAv+Og}Y%& zdHyczTHK{F5=}gIQ2Pz^h6A;z@VtTCQ-$2fzj$z$>^L9Y7(8D5^HJQFVyAnF6^`!L z4dNU5|9G(x88z#Z!JMW)B5ulSsFw68+~u~`Jo4=_vZI`|k75~N zC@+!=>Ue{ZJ@6~c|G9;3^FGI%!h1M>6yf~bdlLPp50TGBgwY%zujHZT)RbA<49E+2 z4~#TRj!AFLsmL+m)RXRjbnn4U{8YM}oX#iy9_-XC8tTP;+(YoR!qxts8vF(EADOdjN>`iKZ?>`y zNt$(!4Q(#6NjpTkK45u@8rcv_t1jQf*=W{kIoGB7QG;AEG+i&D@8t{A!?Fjic zd*vEpG5MWS7>D0__RGvdh73=T53M+A%ggzagJR%ss^aZ@^z;R7YrYIZGaln7F-oRX2jfVBs&>kL|(=()ohu zYEEt9Y<#{JJ~o*>N~CW*>sm_hsrWPLN~CmuT=D0u!;)|AK;aCBP5&&`8MV(}`Ouv} z@~8NePqn{}jySl(u)p{}NGofL1+7hn>B<)_wfk+@quB6f{Fn|uoIm7LGG+bd3x7?x zk>E4B8?mT6O2}JXESIkxNW4@#i+x8bSG7qeihDD0i|^X+qB5o3+uxXZw%D8|EY^3C znQ+Y(KI+`d81a<$;+Y`$WzD2PWHD2q-DwyPKg^kD*8Xa^$Bnk^6@?2=X{+W9olCe{ z-&Q`Uucp1x9pPHf*IqQ8?UP#pS^s0@i9D*T#5>)?=y=PXzF)2auTR=NKGW6?N{-}L zW#(i+^ePjTKYGP4@4yfBrJ(k!IZfH&77N(#3Z48ZA85JSCpHwJkAlzUT!jly`BT}d zuZzXP{RTeYTEw>;=K=EUwSjk%$54jKd{cVpFU*+*?RjVzjVIbGP{kAW0kmrGN+ao3 z8(l*=ol2RiZ1+lb2v_;7l#NtDcZE&B-+0oCj8R9zymHsv$l>X%@h0aCH`7LF|4L1o zHb-H`BnNX$pIq}1$(qgqgncV?>`xmsW!J2FaNoBM)o1#LYaY&Xh67$_`&r)(-OXMH z)_{+&w`gkYx#CrnxjVD1J+YKU?Z1+C&QA}UecJe!Y(;bDmcz)cE!JU=OmL>qo>fUd z&fR(3(cf@}^p~O9Jp1{B{&DTe{?l6$XAIY5^sZumF`d#mbL~C3S9=Xw2NGk3qj}n1 z@$=G1Ye_5r)%nA{n|=q?R`sVDObUl9%Q zeGnK8&fxwi-TNpV>fVCt;pefB5vS^u%1r%09Qy{|ojQ&G+V4jl8HwRH#@Um1DQx)1 zy1CgOUE(8kV=3v^J}Y;ZV2~Ru__)HCKlYECGSEG-#1pn*Il}Y&Dt)w{4T@Lk{0w2s zztYx{r~H!aY1+y;mR$evyR8f>eM*lhU+TWjxF}4?w`&7x6Y0TylxJ zt39HAg=yw|GG2q1A2<|y_fKnFZpe->2m3(eUT16^aym4^X8P= ziLgE^PqfcNDl@f_3RgT=nTqEoEw)~<@3Qa*Ui@kc)gP$*kSlY3r5`($t?YEig=B3# zc0SHN`jI-)BORxCYq;-UZKz8(d>c|8H6~!x)ifrTk9^#eO;`qMH$LsGQ_($`w6WX_8#k$ImG0+;d~>3=^03gvqXk@sDU+e2vHwvpPc& z((o(dlH4}NL%A~h$hf+3}s*K znshLezBkDudee*2M-;yJHQt7W{yDOd&hL*fYcL%gkX}W*`mPGDRGnZ2KQ{LB;z*75K&IIbe_L2#|i2t)s34$ygtnjPB zXMu-bB$(;`8dzt-7k&7J^jqm%9Im;X-5##+R=>wOAD8|*6Q6T6huO;r`Jpy?Uu|h7 zFSOJ?l;88*WBi{}h2K_%uc*TBufji9h5u<4{$+5j)9QXS?R(f!<^Gc@{C`y8zp29O zDDaIanA@;dcrBg)C_mh(Rr-WqR)t?vg=?+aeWK@VV(AlpJGjcn#TV||2rE+C;-IU0 z#Uj0L8*ZYQ%+mXbw_M<~baGc|YlpT$xR-Im%@T`NF1^<-%4hB_?VwmXc}ci8!rS~% zvU8gs?4AmZD| z3&sUW?^FxB1c`6GAmNxj2GDI24%{o)Mt%k1cO!K~_Ok`gCteHt1V2D~Y2CM2d$ob$ z$AE?Pw0VlB-NG4yq{r-0z+P>l=uh?=Z7m~981ADvG9N)#tYu`8v3g`lQ6Xyd5TmbU zZ1ci`#Lxo{A+$iBQwiFW695v z6QpkeZnfTWgXolI_bDuW)oT>z&=~fFPUhFq3Bs<@w;sAI7Kmd2D-Hj!I&O`ko&n|E zE)d+^U$aI*i*T}Q6cvoiJNf7%ny6&6;%}zs5pZ#mb0MnsNqYP9-1mM?>ZfLK1OqKYx4>FTy~>I7 zbMNrp04re;cLIeac<^_nE#Qz=79c_@mR?| zq4e=i0dYBha%(~kYJ$pp3#J&ml$mF6w5IIf3F$ENyo5EBVU93L+_l!f%2s|gmLQ&% z-KVMiSzj<#6u$Vio$<7}|1pvs43uu09?`lpm0zI@-I=*{{MTJLb(FW{ zcnya6hmkA>0UZgll$-MD^N}*5UbM>IrDHUHeVx3r#$@E^t^E^d$2qF>_N+a<~JTIYU~-gw<&y6J}3F?ANQ_Y{>supA zt{7{#3P=8&{c&SUwb@I^-2WR}!UXlPqmM09$Uyi-7{B;mI9BZR+|`BmIz@#Zl71u5 z9@p?I5gJry7Am`Zq`>=5W^72mWj>`rV=G@TP#=Dobr%qRLlwRVTz=yy81ml-o+rH< zfx;iCqR&_1e^rHlvkL!S6}}%_{AdFz{MUdR!RZhT{#&5?l-@>|c) zE82EDeQ6(kxY^s^yl#e7Ol0t0>7sB8y&2J%K~lJ%J@gZf5!qGmQyI(BPJ83=&4+1h z3ulCNM>v?%n62!`-!Wb}cqC$IG7Z;?V>H?O=ZTK4yj^Mp6hypww+0l5SLl6yYsv!Qdg3xaeWPCGV z-FI2{ddgklj29%FPC;pKg7{ZGQhLl@ao{7eM?u{LJPWu_IODdp)-o^BY5*wk3V`*IFI7;R^yLeFDwP*M7etWaU!~e_2b4LqJwRvPw7*b z)#Hz~(6yJSLK@M{vh>dBg%hN20R$9T#;5b!8J7==T6CrFp9rs~gq8CvdPJx6B~j94 zq45V|cf#>UvYv5|iwrvV*Ni_n`*5=3k4q9$PI`|Njgr3O#vgZ3+=r)yca+4Wx2M!M zn>%a}gSlo6+t_2*0qw=;iLAF7o#F5r)*6lV~uD-L33{wLNIH6G9#k^%o^$KH;S zD7q{9hFSAGX6M&6Cb*om82uuy`=qmnTzI<`hfVK~HI7QN-j-p%N-SJk<$h>0{>c)4 zH2nZ)^B*9-Fn`oD!h|;Q#4zDC{jC?)fDLPm)p>$MZdmCL;(L|WChhe=&uWUqYmpfK zXYxaTiQeDHcqtiMqjgQzQy(a@PhiBP2^z*n4eX;Ly&?b2I}Gg286d6frx}hAp4OP< zt~H@!6!=657h@o&n=NZ)0Lk=YD|Uzr<}1@9NaXYslN&!cPsY)>)7@WX!C^ zv!}-C?DgoW7ow+1-WU(JZloNvCX=&wd3}a*nua|2_j9>0%$xJ@fbl|u3r}@TVQFuM z#>N40QnqHTGD=*RS@%znt{Ui&e~Oj6x+t&slIM!ejN!+mA05aOT z)lgW{ujQ6!oao{=Iyd!8ZwRPt8K=E;NGO@SN__i>;oG|6TxbH))okScNwZd|GLfC~==jVYpyyMf)m}bJFSl*7 z%W!|MgqIoqD)+u){>pIdn&EvKD1V=N0b!6QeQBBjL@M&A5*R^1pY3w#f(DwrLER1P$ zu4P^hnU8sGP8?pk_GX9pI!b$UJLLw?O?!i$!#iH#y{oRh`HB3UpuPDTZUbI>v(M0$ z+nboi#f;^B8KV6hc@;B{cpk!N{_THZ$cEWNC_bC}s_v$hGn&a_RuYuNDmo76?_fH|%%o~RBoH&d#Eft3$e2OqI_u#8p*U48;& zVzhRYc|4O=M4{E}!A0Jax4n5g`a&t)mGua{=EUu2Hvdw+ZAWjWoOZM4!u2sh{=sqA z!86m2a(9h+uYh)xw(R*6wxc=Qj^;*hN9pfM?ZGvYDc-ZxylM}+lKP0z+Qv`Ye5q|v z`=~bHx$Pwb6h<)^?P0MCfqdt z^I!Jv&KE~1^Xo0m%g}s{|4!CtSwAz$LjrrXJ9ps!B1`j{b^j>t?bhzEu{)ptuI)&j zpzZM6m&6HZO#4NB31v|l5djGJ~jYVUE0 z2G4%Co;t6&?c?UWG)`DTK>u&f3npm1Hu{{G+z!Ea?Uy)@|AYJwzeqqI>wV!Im}tW< z5`2(9!fESE{_~V$_=R&~n?3vr9E59L$i;U|V?y(V^jhO}xYD!m)H04P9jx|n=OU;% zHqn>Ay7FKCoy;6t^_v3~xOYdCTSKcmB z-UQ)IgOQx@egqT3XtyzxGvv(*`V)ucSvj_bD0^iKVd2~wb6N-CrRKES;jQMzdIXu< zQa!3=9%D6aoYv0u{-E|UG*T9t%Zdx4{AkWgb6A@Na)h+CKG1;hB3Az|Fl0(Ch6Dt@-Z}#NQDMwGBz>idv{QJA^k{sJmW;>%IlS7L5F7 z1xc6g_ENg^=7-XC$hw=o6u6uF6i81GgJ`h2f;kV+E{#Dv0#LHH4!((FD*S3NiQ`_T0`BA}xatnuu% z2PTaL$qcAg^j2XThS-#N!r!2o2?^e`Dt+#+nH$WkxbwKV!OP6Eq<=3c?HtO zzU$5c<+@+Gmvp&itB*G)XACzp*7y%}Ea}^tD?H5ltLUU}M$s!neXw%~npW*A*BhY` z#{X20hGeEmb859zHCmem(%0GNueq{$1?0ilwLzz|9SYOwmdusxm%c}H(6E;Hw07v? zbTo`L_V;>esj+FU36jIH_beaE*RU>6dLuU7N#-KXylQ#m3zPGapPT&LY}V-gbzqIF zUSn-m=RFiZYxu3qXN|;R(jnNp3e$zrT-IjvzFk{6w=k zzG+;L*;H)FK0Z!y$9Q9yxtFHK+~akThBM8&D|a}Lo0{%FeN6JqVae;s}ckK(`1TNiGxXujZ!1aFu|JU393I1p8f9=IyW&gMH-<3V}^Lbi9 z&G{G^YKevW`^C@qW2ZPZeigmauDf=%2RxR3x>%FDZ&-U4I5Sn3WSyBVgL%fMip_*C zIhny+-mF~zxY=9##|82I*v&0mg6!z62+cQAG{|PE@OjA*cJhNoL$H-|7FKTb-ZkeB zeI>(Ym9~Wi=GGhbeUx&o%D>9hy$SPeXf)TzIg{3{XO-)7 znAVie2*0B7V3NH6%)^^A1;#DTz2{~R3U6ctbBF$d|9zwQ{}Odm`6nLc_GuF+6WYjz z+5wG`7>~m%@oq*UJa28v&!&knC*$U)nXe4XGLQU7R>mjU7tekp&0i^9@f`0ACUthr zo)uGmDT^rKYAmKQX|`qfSsSMAzF(KeguA-RU3vMW&Ho=6+Wke9;}H3elBWpeg}~D`QYUmigs^@HuJ?S&SIra1 zb{#a|6~9Q+`}jYG{YczrH}Wma9?U;t{sFU>y#FEa3z$F0d>``==6jfzG2g|oM{eXL z%->`F4l{t^9p#bdF`P{p*@5{c=0(ikVzy(JU_OSS&Eg#VUa z+F}`%&&>ten{hLk|D6>N>u5cGbdFZ_l==Er;pPlJII`0a@J^=On5(0{a?Zo9DXfqi zWmpIA)d#5^+pM{+WKQb^O{a^O%sFds)sy)3>j&#_Bh1N-u$OxT9e3m_{AWIWWDiDi zRCDfU2WuAJZ|2Zdwkq>6$cn2YPF~jAxwZe`eqqV)yNPprlJi|T@?`7mmE_6EbRFei zI}o1xVV=XtwJ*~L2}gHfFKm6TxR7^`17ueHW_26=6z_KYO!x9aHx)YZKs2INy;XW8 zSG3hXh8HjC?QzwKX6S3;_YKFapK5yIf8`~6FR#K-y$SPrQ{f`<8(wyk2gT>&;4Q`d zJKtL=^NRapvjm6i;Em){;^jWsPvbY3d;XHrhkQH!*28PXp}zKKcHZVsb%!(Z z)InK}ACN39EKE|{=*fU&XDohAyJh7dN7#u`()Z`&mGT=Io2BoiE=4)V7ENzF_#x_X zY5k7)zeAatx|jZ3G1B{T;Ve@}pP^rDGV*G8WY5tbHay~vX40YaPc^apX|*xQf08a`CT=a1vBm-iCnSLNpX{xf{OsfvH15%0vu2QB}2|HITD zwJhS$+y}K(NY)9d)6xF8T18ieTH{EOxi9} z9&yvX0QFh5Kl2K=oA-eY?@KyO&_DX+2=%f z^9&xTtV;cXyK_8Ket$vzfzFB@<__t4py-`W6O{Tzy*oU2h=s=&^Jkoxr@E_pZI%0e z>?(B8H0h@8znyr0G>RL#siBu%Ze)kF?)qK%t!mk|5l7nxLjJ1`k0s4Pnl>bzr&)O8 zmzqBg(i=@)gu8GiQ*PSVno9Q%E1#(tYw^tK%6%X24yf%^8B4DGvUOqaA>1hUm()^T zBk+0)enjunKKnc5Kxbp=3%<^OwP*FQ&lx)P^Cm5%`Gw!T@yg@mU;gzLl(X-bfATIr z3P*iE`x=dZM?)O1+=t(0qbsf~bi|&mdk^*S6w5n>8RP8=L!ZtMX}v)G`sd-JWZsu| z(LS&D8cEY~-1jvfpC?yms2d~d+k%Alb8|PoWF0)3)t>GJh9^NrZ=bI+{r}HQU1%zN z+w}bl3O@(u?FIUN-t(gGXWTJzJLc1vyD@#31DH9OshE#onCCNhpezISV(!3Phgpj0 z!N@;)M^7SgbS};nQ#(45|zLhVfTk@iI!^z0mr2V(Yj;~Aq zajdc~9cA5XA8X~x_h@wq{eEO0G}XL0cnmomD9fqbCF{EP-KF7o$KH5lzfFVWQ8dOa zogc~*u4G3#Onp-43TRuWh4(gyCMvm?tkO=pcJ3z0sqHU!60XMHq@!V~O`q1h{ql2i z`?t_GQkPmR-Pm}|uuq2$_R3eFImVikZ~qYe9d*N;rEShg?!)m-5_wiz|6Sr%Kcu!? zdQz#aw`qJvX+*Dgx>+6R#UuJbigzrji})?^1iMG!>1xs-J3k$hNZ)!B7IiC2|Nh9X z!ujy8^DgEPGLH^^U-|(&E$Ii@rw*P+`^uPUq+^uuK1aFqDLnEc{XpZT@a^oCg}J0p z`;^otDGkSB&y52zC0f=EE+#!)_&>-zh2A=r+h}?nW3A_Jh3)|JM*A=Wm>n41tGWU6 z2xcutXPEjhJE^2wFuj-@omn3y1-E8nG-oLjwMK6r>)u$Ic1#x?uO{&hj>Ru#BaHYeo7tIjO!@ta^3(eYvpC*?SYqGQMOEttIzN9l8zMo#+P`cTpsayL3O+&4uyIi^S8sBb(H`$j`BxTVP(Z zHA?%T`?M&chGw-1{QoQd*CWG{)p3dg-AS^jKA!l8f6u&W!#In3m{!9x&57uK2#pW^ z6ncNGm7{-PUfJC5)elrZ1Eb8HTMF0Bhp4^>@beeEBd&TpTk(>QuL8&0Jp4B=EvJ$e zwfjm>s0UW2r<7(JuHt#whRu8sVc%kOO7Ty5lm00^W+6I|EmM<@4{AQl(?1oT;^xkW zlKy!v;Yl~X57?->PkD%UHHrKGp7MC9Ip6>H%=vwnYWK=Hj5keNP2Sb6Ys~E0t0Ojj zR8td<^vx!#Z#Iy|h?T+88#js6FyjmJ9=qHbGtdm?3#Bs2@NP8r?%s&9-uaBtJJAVV z%#5OI5eE0a_#W%{M z_3&u=kxj>g)VaOKxtH^~V+Lr4f{0(-z7mj|%87lO<9_r7{7^k0g@gH4q zWEw`gH1lyrKf3^2bAbynAH!UZxdpQTBmXyH=3{1Hreo-%jEM%h#TCLN^5*U#9S_sV$u$JlpQ&8KZj8|{OcV_LI*Q0}Uuic{lcS6^J4 z@bAA-dluAjWq1d)yP)yYz8k%ZxhnLN4Q4($Y4xr7gr_!5 zx|Zr_xor#Mz!(Z|sIi-E0U7b^yM|h6UYRj3c+MgUn zU%C!H{fMyJM{!Hw_TQD(Y`7;|@lYqsd=&H7CJ(Nj{MzVQdh2zi>8}pZH#+KY!(gz$@Z#Y-T5B&it7-OrI&Yt8ctg3&Yf@E*MjIcXDuOsX1az zynm>$=ikXoB}=+j%BvpLh@Wqqm9D8XuTOQ}LTav=u1nu>fmgL;vaoC*y-V{)tJ3Cq1BjxHAu5Q?C|IK z(-R{6jtRcVZ?wd(F~OI?Rma0`On`12D9-R36MTa|haHOlZ}C6p;k3`e`qQ07Sbpt{ z7Q!#wt2V*I#ha-fF8@gnmwOM&efX6UYEbQ6lY9BA3tqCwIH2CNs&ub4?U_iLjXRB? z_vvn-N_rYm?>m_{uYTdt$N2wh6<+3DD0jcDa%Uc@^vQqqc}~_QN}t@Xt-|M3;pr;; z532A#sluPD!oOUFf1?U#4X^YmJ*)wiKH>jdh5uU>UQ55Dw?`!7+G}?jxclV)oGSbx zaLJF#PxN~8O7c=~@f7$h5AOm`dH5fIb1P_x{&DcMhkqHo$HRAmbJJgm{s8zY4?hB) z_3%bSYQ2ZIf#<-dkU*t3+&dU{NNwf4gLiT*(aJj)FYBJTbmfZ06BDH!gywB3v+J&O zpq8zMkT2<5ReHT@vi?oc&t>|Vl+f>``ng0u+(m|E=ybXHZ=Smf{~B+TjgLttoJkjp zWODdF^lCzxY&=c6G+3EgOb0k|@}!PSF6XkSPcFW@w{KBK>ACv48yDTPg8hx=A9psb z4F4#>pRB$w$=i1r9?vzoJmFPNm4|-~tvwrTb{OhOE6yv2+YPUsdBe=P(`H|H>&zLQ z*IhqT4~B6Mo1vTEIo-2bI(cPy50$%f%HPVUjhSr9oXqCT(k9K`JI!BN_pRb3Ff!bA z_p;2QrCb{2qR1>>v9jA(hf&(Cn_;nauL>oWK{gIVhH!HVwniLz#@)2i)8fNq^ zzI~+^n6_(vvdT_$cP=~5TBM^`8{T)XI6fG&6Ld5O`B=WRYt#rvvll(3G%9_Sz1bxj z7Ti?ow%&^BvT&>5#i4$xx1kPOd(HXDUiv~U4Y}??6HEzG|2hSkZ#)K+zch7MZ$xPy zz5L|_FGWYD&dNT4o-F&>f|t<_2;xurwBCYhs{=CNO$lP35rp2{w}pFtY-qpB!lM>8 zk`}$SWbWI7eui*huOQ(Zw0I+F72QHX+%p!gwe}k<{(^-a=$WE>#KNP3q@&|hAn7#s zZjq1m!ii^#h1&%`0zU;|HkWyux1P-XTZA{BPFZiDOb}#)WI`}Wz6GbzUJ4T420`d| z2wqKi7C$OD9X*IiC%v82BM9A$cLRwxEeO6!koX@FB%Yig@#tPH#j{J0c+6X0N*D9a zil;;Hqm;WK_C126S98mue_`b*Dhb%O2ec`?e z{n3Ogh=2127kM&oaFNFC*w+%r4nh2yH@Wz~Q#i)F%|)MQ-sWl|9@#g;FYCTf5Pt_O zJ}8JnW8UmKgYpr6CVPVgTabT2=#L1#mpN~X9}{e)auAo?qk`yC=FKnY^!BOjV}j%9 zQ>}Z8wb$JTN^e~7EaY8~bhHbSjtPQi!+*hZ=;H*TpDIZDk`|v~-Dg>Rwjlme7Vi{{ z(=Q92i@aO=v>@s25+t2Hf~2!o5WZyuF@1vMXO$pys|5)sD+piLTKi2vmDgdxYseR2 z=nXFEr%KNh;91Cx^ikoBgI+;+kP(F6eS(zxDnatT zT97t0D+mwPTKDx9J|c*`YdY-!VLrywc~w`w%vwcXToG>VHa;z63`9YlQHL4v{E*EWQ zpv$Z1jzE{BkEJ^?`}mcQ7)E8`c*ozMJ3DeA7rXC&Cxx6~&F()tw`o6fGH%_L8+tO>tkb7bPn61=}- z=BVD8_b4wkJl4cwmH!(&JRJLmg2vdl&Atb1Mmh6N zdOTz(&3MQktd#@N7(;^xJNQz#vU0=cDr;}VWCGSuXK{vCq)QJC8*7D7vW}Cd@ibzc zg7ib;Q!ToEFYqjwnXx$Fq`uMmolTz4uxVi~2s^*u(U~~4*QoiFPS~!itg8E+J=po5 zYY(gYofFX|@GL*BKM`GZzaw{47(*v|eTOhgpZi23Gs{9}&-sIj&!G#jr5VpSN70>3 zfASINdYmVq3s2DRPuTCx3ubS9uaeGN?;0gM)1R;iaMEX|5*?R^9m-qxCs}j~zEXb@ z3*Hq(6FLj?+^eipnYKR4Jw!Ee52v4yo6K9$*1Qc`*8NX9+}gK6+xRwUo8AVk_TQW= zAI^9iwC{Txv}e8z+LpIL+xj+W$G;8Qv)=}7G|<|oCwJ%}k(h_SrJVj>?*A?LQb<@R+j%vX$)(53TqsH@c&W&-wMkGX(YFos;_S+DqT#REt!*37>reH^r~M5tTg{ zbD<@&K#g})mua*Vird;Q;HEf}gD_ieK_ zinIC~uoetekNb98oAJlFFi&9Z7)~Ge9kDikKkA6wSdF3cabMiB!yA^CXcE?qA^36M z4C_`c476&u zy(J6g!WB_|R?s4cFZ? zbM8F0LUa?c?rk0}_jV7Ld(y+@?%HdGCwHx3gP6D))^ZuJ~OW?ZV$udy;+{**E zF#pj~=V9gB!{tBj;qpJh!{x3s1K}6?pXK3lpY7rDzre%gzR<(v-sj;A;>3;Cyg6b_eryNAnvdA>Ice@d0R z#_-`6y3g`(`S0{_g}=bV<=*Ata_{kQx%YXv+;v7J{A~GqxZKx!xcqPMaJg^vaJg^x zaJg^saJg^uaJg^yaJldFaJldDaJldGaJldEaJe7!aM02>+Po!GV&;>ssXbU10QKMD z#?k)heldk#{+LMfzFKCyD%~{$R{m5pA_zX5;23-8_d-RjYw2j1g_cM1OoJooFs_kg?bJ`TPQ+@)^? z_yLdpVQ{tAuKd2h|JOZt@mBq{3-2f3QPSwb`*(1Sxg5W1kahJBF1%)N_2%fA7Nk z6?hihrLUfht_OGdjq^w2GeZTZZwdG|aDb8DyZN)-qyH1| z0dN=Im%ybDxbVIMuKwSJr*{el!2u?`|H+?&9{ni{$~S|%@Xi50;<;Z69#t7y|JQ@- zJfI7&8$1T?;{PLX@xz7p6u9&S=l&INmA?y5=MSfN;SGaN_2_>MF8#}eH?VNe2eG) zHE_wdOaHgQw|nlp!FPH1e(-%B{u=lp4?hMzNIG12@1{vV>bai_UXP5r{C0r1c=#;v zb`M_wzS9fucJL{l`#s>ZJp2Lh1s=W;yvM^|0N>(;_Z{$6p8Jo%*L(P@;2S+$?W z@Y5++<<;f)0`Tpg`$xfddH4xDKa-Kidj5c)Mxigy0aP;E?twChTA492J2;G4CJu{Kq-#`y zQvA+GWuVnF9%Z~D=(2T~#WG&bi)U9ENA)aA8Lx<=Y#qi?#>;Vdc9n5d&+L@(ia5&F zVH{<=9EWFD8AtW3k|~HP%Zk{l+`=fUEX(m$J5)wqp5ijmme7g_OSWNDCA1t#*{U-5 z@{C$2UT%V|BKQ*$m4&S2uQK?`Njwupg;hl~6)s^;Dy+)6skE+)(#<29$lT6pzZ#E9 zP|At(Q5mR>&~47HNSw1AEicY(bPuIStAY=ok}5R-m9wZOUlmpr5m&f`(N`x=Hqn;QiU>=#VIE6pIe%rV%DkD0Y!kBnRRmh) zR7$VuAWE3=X2LX~7{|&ebc8NUSJ*d|`;fAW{*@DJu*yJ6?Lrt*39U$R$+nuPl-d$S znalo~fcM`8>{QMI)-X{Ey!twc8S@a^|&`aM+f0l8XaOh`QJS7}@>0hEx3qs!oOg|9nVWKB$ zgY(zWX9f9@UMBh+Fb%RvI7E4iZxK%TF9>GQ8wH`?0Zc!J-Y6XU-4@>~9Qu8NS;k3% z&>sS(pJH4j9Qvac577HWuko(vV}j5(1Jlni?hy`so5d#xhhF1Z(N7hGJ}LJ+;~L@6 zYkVSnfpF+GUKM?hAoLm!rN4+?EgbsQ7GEnIdX2wCzd;cCjdFiJ9OsFCi^aFf9r|s8 z&<_YgzfoHXZwt?Uh(2IEBD@|bdW{!F-y#V8c)9;A zav~i12^Q}V4*e8C=w}E*KTGc4Moxr7zrf;Y;m~WmC;E&a^nG%FDKPI!i+-)eb8>$< zoDY_JUN}Oq*}88Pj{j}KUx6RO@xRmJdxYbEuf+$2Sp)y#7FW9fA{NjGyb z;_dkscR}cFOaBwCzUsY+C!$li$d4ahy8^JE3qAqv@10ylLgLsdeRUYoDSb0Bet0u* zP+f7K3vU`0es~)R?+|thkLiI@cnkQi@Z8?XDLAUla-YHzdb@>6r@ndu_wykdnT&-1 z^CgrB?{h(Cv4bZfH=pQEX7A+3pvyT=Ko_2%#|HB*fzD^W2m4hR!Q-!*`?CgwKMua> z)!Nu2#!mb7gXE8jdYfwu_h3bW&L-|_X=>sQ6WuwidwAZjefmk>^h-7mbL5LRs&mEq z0lCd7G^QUfHU{ek8?fiz_2DszC$(4em-Lo}@w%g0cWmi?Err2ef4v)}z5bD8zR;Ll zSE3ygtb0{=*Z&^(Tk4&^sq7ci8GzU98GzEgA<4l4?;eiSB=bXDkjUMxVSHlfPIm`X7xyL0G37`{opP!lyS3%D#=gg7?JrPWgscOZUc* z&xq_2YhUF}PwsZUzbL-6*ff6tejVk#@F1&sy@M|4M74_g{3}Z!@B^BlV_^WCukPmhWSxKGZfgQy=mX z(etXM;uqTGqEdZjug8CN+)pd+8HN*iwg5T5SGp2xec)QO;f*t|W-nHSn3bEkfz zxj%befqr>EH_@0oBe}0@C)_*r%aw* zeR6UC3weqLYlfYDi>2j$J@`5w8O%qxAFAQsY&}cbdUhxEY%@G5)icUmZ{hvK(v3d> zo#aXHcqNbn=^4kJu~B=s1c!IRo~Pwz#}kLHCr#v#|B~g)mgxZd#5|4C#j$q=nxz|rz+{Z)Ux82>>J&NAo+H;A1H277;p3B-&?;%(93zVq$o$zg~QlO)s zv59)_>VGsg2)}S`f4hgvUAmF)-s9nN?^WkzzLH0SjkdOJ39UOd())COi2v!n5Vwa@ zeWTWTB^&xrT{rl3K-!34(Bd}%-6y&phX95DaTVTQg?|xT{Fwz*d|wAj*Ob00{O^G7 zQ+PkXh+kWQa{sw=1j_xjD*Q0G__qTn`Urm8C|1!5m!8`Jo&*Yy1KlT@NmY2b77IjcVScbvXy)E%AO2b+_!w$(j|))cXhd!wK`|bojGlWd2Qaz zkyPHdV7>W7W**6;M(@&>-_R<(Qtux^D$%W6{ON8NW%)6$C7I8ZpSWMqy|Qolitf=~ z6X>-{Lz6`fVmI6`<_ zkOo`hS-m%4j zqAY!@p-W*wUuyPyD;Y5iY^?}yH)ZK>y?5cQTC}+L_T?*_+8&>D39m$5-f{8eCwMRF z;>jH+{g!+}h3e_;CwJ!Q|KC}XdirwRgIMdGXOTX^QDbzC6@{bdXSEshCiI<18a*s& z-l{^s3Uz3X!INsMi=k5l>9vdjq?2;zE8&hs&yqf3^hI4c1DRM`uCzH16CZI`G7}U?5BMb3)zSzF86^25W=FnmYVbWO{pnH{gRc zjCG(-e0H4C{m}8G+v#pY-T6z}$k$*~T{2&*^vFa>xAb1|20aN~@LPwlADN;tlKdob zCoe(lvC^I4Q?lP`iApz(>0R#>`eM*9#rjh^e@h+|7jzZkFI}nnYqJ(k?j)zKj>$=9 zODstR5WVDC{i~CE)pyn11(zf)Uo>s@wKvY47Z@pC+SjuTou+Iblg!&? z|96DWR=F+x9luXqZA|%#n7NU1Sw~D8q_PUX(48)+gv)>2p|ql!TbbbDaxcq7=svZ| zJ?Y`{Kik9QKjqA*QGTIk;8&I^4{x1HzPj-Kd ziDR7mpYY#(vfG47V4V94&e7U^6PUFBm7f33e|;`~28gD-oPP$arhLRh(f*gsjf4H<-d=@YT7}Q7!gaTv^xGtU72Xp5cVebmoOi8CpTb{Lh4+K!FwzC& ze^ZtF<|_PaRrudk;eqRn-8PWvMghq1k1sfu<~l9 zakR_Y$b|Z-v*LE`^4ze`I_v$R{HMXyPMk%fp*B$X6yX(fKVtD44K&$RwL30@NJ9X;!!aIH@FAnnBdEE3a* zzZ$d@$$kyt$1VQ+sZn<&Mx z16A-`!ipxd9Oi6CNlrTE0o!HbA^51cHfU6e^|df0{l(}QpJ0A$Gn7){Lz0VexLsO! z5I&kQeC!=m_p(@6Qv?IAtq+^;YrRaj^I`!eGR1pCxIzppY zZqRYPkTM>Y5ysbok7)wqfN~%)4k#utRodwpWAnxrOr4}AI~SYlBwu%3vQ?;y-|vvl zf)g~?G0M{^%ceY$vR{tJBQ%S?-axsf(``cdqaYKm;2eW=V$3dKgss$9Pb=;bqPYi` zo90pOevu87gMe%(_@eT~;Oo4R3e2ngJN4t1$gXzF9xtJCR6T@S2>T^dF zv8Zr_i}_^?S6w~4BK`HW)5B8bhmNDpMj?FOe;UGta{O<@xEJ^Deid?Rj672xkUrwSbPHBPnu;^V)8_JwKsm&we*s~8{e zIEOe;=-Gx7hj>rOYvUx|67U#4g|~zL3_e9qn5Y^-xbF_UO4SkNf%_PAWfFU)h%bc! z{p%0NF@am+00G5$5&2iCFm0qntbiu;Oxb|c^CNCloEKGhA8cPI$eyizm8#9WsGy2m z^cS}W;Uz)%f*^cl5WY4De=Z2$8ic3;L}Wc`w8u*n0T0@Xxt4xqOZ)WtHc z7`!pxDYNb+@%4ld)NLk2A>T!aj^0CP#m@xT4C70}=6ab9L1V@_8)e#JTnqY*#KDJq zZpi1fv}Z#}K0;Owx?aRVmre*ejwJ%)S5&%0iF3SX2F@32_6p*fZxku$MGTEla6s< zdqEt1l2FSHyl6l>s%!C){$g~DUobz$RVfud8w^-`?b3qp!&#wc_`>k1@Uguy@;ij^ z*fQ8mywQXs+6J&9uH50qa}(6P|*<@vx@h{Ibp!@F!P@Au;62w7=x6L zvgv`DQi|VntbdIwRHI?*MP>hOQ##dpJbXqEK(#$PHjJZ;@9HIB3=@j+Q;b#a*QnuL zy-Q(dd{^&jtmUUldiAaz$8?mB3t2YCXk8s#L(t{&N+vJv>y+|&j@ja&Zz=h3TuQU6 zfGhbn^WC`KFViYZq~U+p`$aNvy}x=hX2Pv@XitSLeaKihQV8REs*K1UiI^$wyM!cdYdu&TIxKNIoLu6KKyh&0SHc z?G*digc;gl>`&C+Ma6zJ_8T#f2ZW$)r~HKb&L|JSnx@$27lXZV;>}yk~7a;dnS`ZG(O(=i35`IT&vcC+H%dnnTf|h$&P z03K_0fbZUeuLtoT>P32*P}WwW$v8zCjKiV?4fJNykPx)B_i5J2h;xPS9Nb#rpT*kD z&-G}PmnOt59{E#={89YPrYio}-?wr*(ujGw3Tyq`N1KN*d~U72zfbYt8+(zscbjR( zG-UcQe&X$PB`0#Y8@vuV5!1a)@=i1G_8E9{tndNown(~o1D(e}$1=SibPJFttneN2 zp^2?Ie_S$;g7SxX(~5cH#NK208=OB7+3WdZ$9`GtUq-=i!hB-dUjseUReuv(kF&{+ z@fOTf+QeW_v7SHa6=*Y%uh?5)JM2R`JUv>*uSCYrWvQOV+^1~JOYTV?Q_Hl*JDE*T zmaBzjxb#o$#iW16bUy_CMMysfKGbb3xL(|fv`5@T-UiDnSud;zo3S3v0KFO`vR%-m z{FD7aFzwafOrT#mOUz?ofSCU+3`^Y+tFQ`u&Hh*jYK|BZ*-?{_H#-vwVG9G zoDv${(T;eowELfc;4wS*v64tRb(FijgZ44d&fq-djbpyTb51rDG| zYfV}UoaVp@{wwoD68ssNC&wsNO5f{2oNXj!jvO0O&vH*Z0Wcolbcs{OxeDKWiFX6! zxQq3G^!)%GEZ{Y-PHQ?hVZVX?p!JhQSean+2jy^aLo~1$b%MJKlpd)UiFE`ke|1JZ5pTyZVsQ8{S z*gp(&wwt=DBhornp)&n`HPEkx9dRSSL=3)kWzwF7hIy!~I$|HQRiR>p8bHLnkNH=n z!o)dR;#Pc=A@7iSg#!&J&I_x%51uF139_#fa7#^XWXk&uE?7nn2jRXTyfO$sAB10m za-cqwBjbU;6*}7AZELgBA^F}E^_9}hT;W8 z#Ux-XUOH?SFdnD)LH0c@1eqa1uW@f5U~ zXqV_t$h9%JpH3WfWrVRJ7N$(e))vp$2*Ydo@Z~#F9G$PINLq) zNs*9y%894b9&~Kyh?fxW0QrK%%OuWriuNABrr3W{DIwbGZ2EJ^k%!#rs1db>OJdF^zL*m&I&zE?y#6_P1_p2nnUfOS!c)7%nNc_0O zBMGDA`T$1LtjAmzh#_ns!-b}Xb=2HkZx79|gjbsRAF}U4QzgQS$&+YH!L%#wu})E2 zg(O28S$(}A1!<%dl2fQ)`Aa&4Z8kWB*TOyN7$+pHz>)1j+#jh_6jQm0&lW@X}{MbV% zexso$KQX=ooDY63K&41W`w0>olv|Yvo)Jb5G8N zO_o^=O}3%F$6$`VAWb50mKJFj6=9v_L+e(tqZxSH+$IDayoOYuOnz*(lz6oAB#)^) z6MhZ$T0?cWA=+$Dw3Is;-9z3Ja+Z5|=&xs&Kg3?*`I>WU$W*=uG=VSYt&~IM@=T@e zJwNC7(eU#;AUwvtq9GM%R^L8U{+<`R11rv#BR=Jb56qF3Z*zVd4S9(bav77ghmZ7# zn=ho??L~QgTl2ixD+T0S7G8;t}VMZ7rv)C4AWgd*Fh_T|lw$0N3=8eHi$j%_2@)>18 zl$UXT&uXR*+;6n$GM^`qN5z65l8x^OJ85@0XB!Ac!B4P?WVs za!lD+jv;}kz#lVk=0C@tq6{L-1U;ZAgBa(DF)}QfX6CBG0_@+bn#Pu#PbkH)5f!3X zZLC#^usC7Hu@;g*j6LXWONoa7Qbj9`jtW|8S;k1OtS>~z_>;epj^k*hRQPN#FpdSe zXV?m}i;XRNfidZnQvCYDz{t-9e)QvFW6NytBb`#@$M8>(P}wa7U4kN#cBGpk^~!3y zinuf&4b>ccuyP3mKhhcNt)dGaTYd?;CCU+?q9Zh9yEYR6uY@7TmMHcje=UGa6R-#< z?nRjsz^eF7&u~r5nNh>o5~odZA{D!^lf_zNTbr#zN(%O>bg2E>Bj=e=fw85yKSu5u z;n+&EbBw6(7m1X6M4}~(#o8jrE@6mP0>+yh4{*$xgfW7}uAiZdfq4w*Y2F&<9BXpz z&I(Ui|E9y9{@66E-C-O@y1uA2C&s6ZB4LJf#@I@KOO|6H>PaWY zsu&ZgHIq#k6Qvr)E*kv9dfBO58IJ0*agp9xu=;z91O6uWS0FD8O7GjV112@^XUR9% zqiL=7)=a<(n!j>C3;pDNmUx2)tZ!`plp@|=A%Miy-dq|J&%sAt^YM`%+Y_Z|KT9Ei z#7l$lCxUSFy|Q4T?^UwCpzSG!qgA3m7RRQlT_`Dxc`~c!JuOxIC@8EhxHB-P6BLXJ~Th=$NZ zh>rF&An7Y51gMp&sjod_a2YD~!F{bA7B1MaEVG>^T_nEXzSekN64rsXJ-DyE5S>lB zQF0Q}aa^Gk{iXliB_utS9fk?IR{TlBkLgXQRIU+$p+ZMMk3NM_6pD1U>C2XYj(Mk) z;zwxg%Q!|W#a9>R?9Uhv3%=mKYykqX8RkkUe$z9iyRdSLG^kvDm+P_Oa9~}`? zpfCF??o{Aee(bx!eFC#knup--0_yd<1^&IAin-p;RbhIXv0hOzU6_7UDxFy#sYG=h z+OIG5;tW4vcHVegrUK31VV|Y(;K=_4Z^^NYRw@1dr09TwNt9ug7t9&jvE9>^Zf{kn zv`;kPCuQ96z87R?W@PWHtTq7 zW2u-X?Eex4rvGRLd6-a4Bc7S>14wg4KUCQ2KbmFYv*J_s1<)%+vzhp8_>}#9%2JxG z0JP(ye+cUQ-fsj<4!zL-PNyf9*@cfTmHVoNbG{qrG=C>0Q4E8fkkw{D@ z;w(Q+afXBWN4z6(t6nyV)14W8IMc}7LeC@O@x<{Xe={a)+egwd48eW$Mwl5DX{mzy=nK)MfR=91RS88prj=4Ed^Q*u>+T4I&k8e! zk6n%mUvKD*{Eh%;9w?>wrNY3-Z#tMT?a7a|Sn(SHJ^86IL?!gW{AfR3(lMM=(J(Z| zgEahH5&{U7LPLX6Xfe!?CL|Y%bhQ~nWPq+zIRaGt2vy%kYtDroFyQ!sWs32&;A5Jo zynt4-!{Qh_4Xh$x=oX2Ok2fU<$=PLU02Ykd}K1&@D1#pKD1{lo+KFR=-&@Gawap2 zFmJqmdzP**$SlHfyde72o+xBf$3nJ&^CY?0;-6D6o;3d*+x+KuOV%_uXF1T7Nz8Xt zezInAE?(7^==N4gt?UyGIQcWbb)~y!c~Cg*?GjV&2N-bLI}AAeA7j92?=;}F&o|(- zcNuWn&otlxEi^UB5>(t7W_2GC^=v0=8e5TnmHOk@s=7T}t}0cVu~ipI&Tw%oGqB3J zsE16OIQemGRRBF{75yyem7>{Vd{%tQ{xRs4qFEU}8$M;fOIb>@!+>_FXL$V3Q!xzm z|3^RvKIJ|Vje^sFbkd)8^%PbUudGbJ7kXvRR0Wr6#DtP%$c&736HZeUM; z&2994i}du*Y}5TA?j(*49Fc^Wv9oWax!?nwV?N@wRW*%aiw%xLrJgK}W4c&08KmQw zjzybv3{y*qhX7J-)k1@b!k? z$dBjAndV96$0Yw^q zE(w*zei|B-LW^OBG$FZAq^r#s_AKa1l_NmKkI-x|pAW*Rk;$u84_?RXtFQC;n zAaM&76W~faJ>#~_z=Hr-!3mrvyMP?5ZO7V=VX+88^%u**1W)l}T{S9t$9hJ^_%R)* zRC=-8Q;Ak+cq*%`hP$_W_$s-`~LZg8wOhkukaO@{^PF4jjE8F*2v+VJ2$`a*QUeKhHeeVYoO4d%u^bt^2a zFuPbEy$UqU1EmzdR2Uff9fJka{$hRfR?x&NW`N|!I0yI9$6;oS2Wj}ZBm@wO`>~8l zp~WyX_R*xPO&`tk9i;|_iXWlsb7)--0}Bk;M`P*nf_*gK(RzXoq*DAcr_8`T_ytq* zWk-FnKDuKEY`zfc;&P@#x+j4?I!cV1^t-Ud9^U`m^_`-e>39%>&tzyxW2a2{^N(bx zv}00UeE*;^w^$ZJMA=mNP*u}(6ZS1e#XB~Pig#Raj}8^v63%0rOFb!x;|+p9riunP zb?C@}Ju~vAWMpN!GRNlgkpdEkd(gzWodR6DT6@KL0Mj5`I$_;6j+a!3n@Kt~RBfeS%8sw5y4fD)iZ`^?)_jR8JI(`)bu$-uZR+L{&<(?UEcNWF?HP;qVt`?mv1@zZn3RX8PYx)20ktZrWSAJol!-IMBd^Z(KM z7)W?%YE%DY_0cmX%jo*w>uahvMi(mIo57HJRYq99j7rf3*P9E`1=kzW)u!HzF?tHU z@;A8NkghiM<{r@1rrxm6Eyl+>6N&Fa^=1qL#C}gH6+XS*Ov@{f%P0S>H#I-@q|%G& z_hnT0I z4et~>-Cm54{iH`55Vgv&#?L$6xG#1rc=0|r4SQ=NV5j!`Aw-@$=plx*=bN6MJ;USu*0vOhZ`Io?M2_+e4H=$z~@0u^B%Ne_=e-F#QUK<>&bdzLU_!jxQDw~rm@rE zTgJFL9!5DIRuSr$*SHsOi+vf+ET;2rB$WGf@$M+zp{$qyd{@sk{tpliQPvRtJcLV? z|6VeD>qAf$i}^mKp05lu%AL5wav^BK5DpFDh}4$LHX_>b)ZbEv?{=mo z_~`L<_(lOwz&%q)SGXNoF$DPX2iN!$akjQjDc)waxV;q!kMI-kg+^*~{gHSxmi`oi zmb?=zkNOjF4ph;E7SHj=*ys4ulh^qF1-B~gnGfTDtF{MYLfkv`u>W1A72cI)ors4U zmcL+Hif4NS4=}4NI<%T*$@uvT>nl*@kWguFY(w6GJq+G&obI^45RwoNbILJ+2%Biv=s~b3(|4iBl~HSt!IEfaBc@en>P9&Eek>U zd+Z_lo1EL>T(L^&>qDIP>Pp|&tmHHKyXaN1X`bUa*XjRfLH4JCGrxx1k!2jM${@V9`od{||8 zJ_FA35F_z3!1n=X5fSl2SPub7koaW`J8+d>x{NHawMiGraK})FtFSPi7tQ8OF38O1 zF>9NaRWzL&Bxysa6Juw11}wBej@|=@4jlj|c`%qf!&OwMj(o|7eMzam>7i(+OoTTs zMJ6^X8LR{@PmM_ye1TYJp?h9kG_ITB1?|a28RMoF1Ygpui`QM5Q>Wx)Oeh>H!!OUq3qG*`8GN-MWakJDQg+YC7v)aQ$;{RYr%Yi21`IMpz*J=AHPVLYVndZ! z;K8~omjU!>Fq{S&*VHMwibM4Wj&(;WfHDZWp~#`BlPBY$aS`t-(`lK^D`cK-G!}72 zjxd3w$krM@rqkR*JV~DC z2jm)DTpN6VNLiBhrBoe8))WA_V^hgjZplMhHIp3E__S1Tg;55Zur{ zoe=RZl6Z-Ps|c|NZX+T19U_E3d{ct>IYPMSUU%}h5yIXfA^S$A%NRn$(J5iJG|!cI zzQkP;7D+f=+Rv1Dv4kbke7?jNNLVV(*8?(qWfI>?9O-{V!e1psv8&IL_CnBVw`B?XTe5<)&_@)pWdb5lK)z+QMCOJ&Ud)<#1F_? z>mihs&!yOPSsHr!z+4{T5i&p_o5OsJa~sYNJ6d!(rwQ{f+KGIzhqoKR6mW#M8$;*} zZzmGi72d9xcyV~UQo_>kcIyeH%F)CXHrhBqjwkW}*}jhlL=zEE<1+K|bF!^Pg;sRO zR*nWV&0sby(`C&n#J~Z|_!|2^t8NKB_8I173m4WYdAGwq*$1Nw68nKP+3gs5%>WI0 z!fG_Z{kWmqha0^^tLj7lc6<5s;YHHqzsbDJxX!>D%sOJnrz=$(bd2*1+E=MCt&v1n zPI!hP9*}yr4K&A4WKmLJ{8txSxUq!6rQ$#p; zPXW___Y`2*AfO#E1W{)7H=|*SmXLLhc$|bxL*lH1gk2?MoQV&RFkM1`TB(})BJxy< z;i3xeix^-l%o$#m2+~F33+{`i!_25u>A4n$q*v|kh3J@0bYrA*0#{0f&jtgQ6uY#r z!omSP!xx56g|8R%W zWu#*oD5dCv`?k+vF;fu%Dmp?#7p08>VuK;;t_2_CLC7>wX$P&w`wxn!kxKE?`!>!2 z^v>;K>+i`OY_)zzB#jwu*!RtKMBcFPV=CkGhxkw?r}E~j#BCS07E^k z{h^3os0aRfW`hoQQD{R$BCWu!3;bv+qBQDx*ChPK9>-Jk2h#-jGZg;tZlnj1KXXo4 z0BMJOZ4!&SCFT8>2%9p0(67G-tFQCv;e1dJr=(Y53$1+ggmQ=bIAxr4THfu%@s!3e zYqwNfjWE=+q1=?aD`NQe1Hy_lLb!$Ai?Bw8l)Jquz3^sllMs{xmMM;{EOyeRGfq*F z<;Wj9Wbx$-JX{ZnEH4&ik91v8eqzD19_0U;wK$Axp0U;ixI0rXd+V%f&4u@z!pzna zYmamNbXyPp`4Da^N`|Nplrz&G@CvmTL*`w~G89?jSmQ5op`1Fg?(JCYiE!Z)X`Wtz zzBr0;h{d`g$BF80EaXd6O!*R&3)Y=6V(ono!h*Y}nphBC#+7+tDWB6=r2*Eeo4~)5 zjE{zO9IlVj4f$$VGdhW|vK{C5NBMV#Xk4;j_qP~-{Y}PNsFMa|5_6lFfQd=S@&YJ& zGSbHe40QVC2AuY81J3@$f`(C7`kM_g2AuYZDELNun*pc&F$1nB2|4zoeU%EU(n41o znK8EC3&l8b?3O5T0`^~>@zHKRKH3iiREqYa@VW7^Pow=*K*o>lDe?OOoxs_y6Mq75 zJMgU%-wjxVMs~ZzKLup`%Oozxin8p+SKW`Lj{?U$a>Gkt`Zja0wXDu}=+z!dr* zdrC8f2yR@q9DD|NQ)XAQDbA+DMvYdhIl#enoLbMW$yz=Rn{9|21%DZna~O!M!l?xq z07Ef-n_jBRlQ~9p0q5OVOKA?c9FXR#B-}-N(6hYJoa=a`XZa#tB=P+cvRu)eaxlW$ zs+z{E9`H~~A4mLg%z6xdFb)@!pH!{U=o}Fpp{~W>IA*;Noegw!qsEw|ixV95AHzrc zVEKs+7B!7A(%yclKA@tE1dlO~qf`7T;Hrw>*l`(Imla3gxq`39_t2vG|6=UB?Df&0ZO1x9|s2}U@7%SlZXQ#WtC1vggNyHuZ z>H94fbHC9M?8i8QvCa{UdjKQ(e*6)?Dc0?cupRN&J6-IJ-apH02339QAymuds_wJjYc6*!e!-u=ZTf~vyF7V&wZ;=4}1j1Op%Wu|p z`6Fz*Fkal{4}*O;?89tFzBE}sJYllT^_g+kx5+u&2fHs#wtXie93~&$+(PjlR)Kf% zn(+NC#tZA~QHYxtar2`5o(i*qhYdX7R`9US#T$0}PK4QZeHq~}``$3{_&dd2#OHr^ zzx!ldCH8;l42rRavc86jc}Z2ZQnge!`QtmPf9#97eol1+PT3b)1*ZQj1c3@F#3DWV z=+!kNr$CJ6G#DtY=mX+V(n`ULu(qnEwwvKmifsy2u)LuZ$-ywPtsyz-P?oip5?86k zeIiDsSO>S=7ot;bHz5`25_GNjlOI3qDGaoewBXv2Q7M1>!4P3{DLc~DrcE9Vx{=Be zpyEep^lCGZGMF(7m^K$`lX+)xP5vUwbF#)(Z6LmQo7}d8Xp(EuCil`aCD0~w-ml*& zwAdr&s0eQ*=h==!{xHuW%wG=qLtTgbA?1hs5q6l3aC_^W#2kLiTyMnbMP4)P!!^*@ z7kQ)0=X%9nLd++_ccHCKDZyNBq2GjgODOg?nbF?jok{MwYQp)6Xmj(?-hyXyw687p z<3l^%B1X2o&Ru?!18pwaSkdN|qpj7@=A!Ktd&n^FAs@b>h-J`era-@s2XjrSYQBrtqO1d@TsPqSqPi^lk8N7ODKvj<10%&ag*5a-wRzNU zmN=Gq1B&LHZzv_gB`b&$6pOtNXb1~kMR}A8vrWtz8)z4SX6O8|wbW%wVhjxCytkI~ z4a$RSt7>XDcNrXCsNLk)8$#3?B1x z4Zo)LHBHh32xU_NlDI-g0I$}*!lI^jE_lq#y*jy)7lGnOXl!4(cfg9TF3dT%zEJym z0*-paUMaD%@46KG#K=H(kZlozsHHJ2xP648Dp#=E`e zJ@tHPwpqT!0T^4JUgSG(HTyy{mwZ{zyW~rA;%wh}N3_qJy5!4{F>`&P;1TXwd*}qLM^k*V3k@n$% zw6C6CaeraBtTplalj#*-6R$s+UI{hv`jg>Gtclm34417YUMgH^sFxUroJZb?a*s03 zI?6i4dUM{1d_+A>0T0$8)>Bc3>?NLh_IT9C5>Hqy!^Qf;IvF}xuaD%@(XN-VFj=>w z!IOOB_u;K+hO0c<7ti{*e?cHz(Qh(bp(0!i55v_}#SyY^*5`0Qh6`^<>Fva>pmqX$ z>%o7<^SlS`1o)G02;yo7uX=6KPB`azdU+o3M_aD)gdt2JwppUx3B`OjS}Q)ucgB1D z1?`;uFK*`oY4I1da~)N>8hO<+zk}OfmZ86@{jIS~|H*K%uKiW*T#aqOpA1)xZIi0E z>`(uL{;I|{^G}AW#d(aR-sJhvA6EXMKh*J| zUn~6(XZ3pcICqY4f9Maff9Q`!yB>l$ah+9*ykYwnc+H>>2W<@I%AwYKy-}1`VjZ{M ziP_#T$Sh56x3>%4{foB3UuQAKaI<}}r3-x#*5O#+9PSU%hWpKse}(}MwGa14$3gyS zndPNy)I_uBVsCgkXspGMi^4tzc9e&rzoE>r4(8@OXBg|@TR02#wMoyT&_C)=igtUG zz&k0P^2**=XYB0{xAyk8fO!j;x1hOulrPNF+i$Y<#=2>5e+X#Ipow&HygAo*vDVqpFZ45x)JH=fsoh?&4e1$)vu=^r z`+O1Z`+R2WEKj&Lsv_#U#W)nCor=I0g70_8Qh&jRxz4E{@a@27LYjt^ArEZG3#7Xl z@uVE1?pCC~^Fzc1`O$T*H*~=LUNdMT5w376^1_KUw?KxWjjjkwpXW8l&+^8UE%bkj zJcvY^FzqAVb9~Xzr@0VL=Nuo;TA5wo?EvpG$URCI`Xfq5`9o}@5RXyte-z{@qx>ez zD1V*hpy>#ju5-NFs(Za=*db1^o8zrldaqYodapOM*DS1WBiFiRh#e;qI`KLKcmDdS1_`Ic*VcLq4&*huCI&>Xak@Y|O7aD!L)R zLd&5qe-tvDe`i(vx!-|rV4BdbMI)?{w)=e%W%pyQ)Le{D!jW%vQ9kZN8Nd?Q zDQxjNH5VV|ji+Ye!yNS#-h@2W9BE^+^n|}Xea&N~-U59h^ftuZnu=`)r0^mE>( z%n}ozx9aW^_d^f+a696Jbl~_=%=1Dqc8kLY+IXaYNcmoWgnh4HbL{n-JbO_V_hKz! zFV+(F`onE|{qa1{iuH}8eW+`2tLjz~__Y|Ij{(nXn(w^DB<718pPsjc_yoUlonHv} zhT6dse8a&v!ob&L8RF;Lr6$JNt?Q#U%tF|8ee}lrkQUHupec8N*6w3FfxQ^QofZqd zb%@`LwuS9R6w00`o6H~2AKQ&+C)$qxFfOL@JxG^52>%|0e-F}Xk3Yn-2XWeixa{%o zCG~qhQck|;5ib`15|mqQ1YdF;phLu>m0!{ zL?u%p{G*I7%xDe!h=9zH_l;8K7YhpN72X2)AqdOQ!71&z?m;1qTJ=zi9My$+S!1!s zQ?7(y{{R9R2ObUxH@W`dfS{7F5<()H*H+ae*W0HSYQTi@CaU1|kX4ZVSYb}D5CcI6 z>5tY@;%IM#`qjXT2Bf75mg`-JPRaEMsYsWgYsH`Z_ywC{xJJde`xVhzvelrkK0^F{Si)>rC~kfG{$bFNBxllO1$Bq!TiY^ zUS8s@b7GM<66+u#PPez04d?WyqmQ*N^e1gc+r9zcQuGlE@S#t+#C5=LLHk+Pa{%Ly z1O7Vh1OBMe1OAxuh5q{G2mH~+2mJM{2mG3AiN7P06784Co$3oMMHtI)CcSu}4{3|N zgcuLn=6FoyM^0EQL;WV#J-%p+5lp2ceG#q*jJHnt(H9~sZmQrOy-2i`+>gn16bt%N z_WRAzmo<;Xhd!b%{EUSEEfUfHpdGKHL63gPgnl;4a=>5ThOmL=642Cx-Dhkw(eI*2 zMg{oggBQ}N`3dj<@2WMP-G0rv+i$Y(_M1Js(YEjQhnDa5hiSY0;g;QgrkUoN7EL)JtsDRsz=Nts31Y5rH-5v5uR)&kbeziyp* zIT{AF=Av_#YXX5vrdnK4rX)*EuTI z!R_gV=xlICH-uEAt4(`)MtP(=3$$0k?J4PM)1F?5^@`fGr_(`K20t&>o+cpuYVsFZ zJ;nG)Y+!x)0_|!0l#aFD^HZuHGzqk)TwmtBLZ)K3x03s|9s0g)^?s|zs^4i7hW0E? z8&MId%{!E)&D)XYn(N~@I^2e~#xuuPPjh&~J?;lgmPI}j^%nO7TJd3w*=PAQ>t~o# zIJ}zYJ&d7YZaM6a#JtuVzX)clIG^xw?nWA}m5?UXx&TKU$9TU)8_4@&E^%V-5#}yj zrw-RRkJ8&ju2JKDsFRWQ5?_Rt?!`SGO;Yci>x)FYdNDe6HK6KYr6MC1< z+_vKG#P9m9SQ~#f|A7~M-+iaL$(hAP%Ptx5(xS;D z4%~n1H#an%-E@8W9a~0@+R^E#ZB--Z_t&&2dvAB;TxUY;jMTTk?fA*ovg0!r)r;-y zyuaS+{BHMMQTFDv#vfkYzwK)uw|Q>5bBuG?zgiCaV(Bx(o*uhA?IwH7$*c*T-X8Xn z<(X?z#_ZpG@MLO(=jNraUGmlBnGIsTdGVU(`;q_S3hR1iXLA%|L`;Ky9ZCmZIga1;mP_Bt!p>mu<_h z`Q@&rIp3|l&GcNSZX@3wH@{xb*_X}xX2Iq)g}rw^UUKK_x7^?5*wjML6ziLF*Ys*) ze`3O$!^b{-cwqRn?j0t7{`=+En;+>B|KXwQ(i%n`I((}BCy$hW*YB;#LnH3Ed`0oG z8An>4{p{qAO&q^hbQv(?rPn<94{r-E4}EFSQ*Z8auCeb}J?56I_z9OiSNKcrmZACG zzJ8%oqr%fex?DN<*GY-XY>)KnJ!^lR*KT<(^iaj?zunO8vxtQH<6i8ablFWC-YKtN zw6AxkjJofC^2^~@UMrt5EGpUAWRJG?gBg<(?Z3BNGk*WND}Oon)#HoKHBbKJ^Gm08 zZ9Fmaw|!SQ+B`EPY}3zMu1|K})8e+t*PyAEx> z^1Ewq{P>e)%O5Cx_SQw4PPvaRnRw{EMTa~s_deHVbk{{MFP*yR7vGPIv#)LVeZ#Hu z=f_oEQtG~C)1bJWi*q0N?%nq`y}9AV*ye58O#4T@*MDz4_0-xc&G*;e@AjW8D%|qH zzc$9M@ZEdRGibx+mpzSso7H94%#Su~dVkzw8JC7lTUH!1W&e_CF-@A~ST}t!@8>Pk ze&~_D_ucl7{u2G%fv?^7cDv*7<*6U^yX%T)Ti0u;-SXnC)>pOM=FfSy-t0wc`5lj&J6zUkK%J@fMkC$b zI>(+^xjeml&Z9j>e{f>)#1FckT@kVB{k1>XPJa7E$JRH#d2`FkdDc${T=li9WY1T# zvu@dcg}M90+&XW4yRBPH?89Bxx+Y94X@7U_JfC|=*w9rkUl-wcI<6$5+n8rRyZdyn zI~Q&J{?ePS`?z!2CDD$`&@1CA&%dadoBR;{>=i?vmxGv?kE&HDQ^j|CcWcGThUdW;P-S+M~oqEO8^(zi^^tGvX zs>|9}i<8^F*e$l>{pkZEUzs#0c)qI09w z=RUu6*ub`y52kIL^~hxnGQJz$K6K*Vbsu(#ZP2yOVXTk6ew@tSU<;=a6c+Rx$F4}9f#POJJ&zg+Rbz1@mi?i)8``db5% zCcJ1_wXI&`J=0J5mJaRu>*HryM_uvcz_Z_9e{Ita^{?u5nRCXD%Oam_G32F&jm{SQ zzUk|6SMEHutoQbcIs5K-;=Swcem>#+0@JsjChvTFRQ~I8n~lgZFMlSt{^JL~>9VZN zC!6m4_L`D51)~#QYS!458PRHL-%n3l8n4N;ZP?%Fq1Q6MzT)?kkax2}o-Q3TWlN{W zTm$N^UVSv?v!~zLK5zdwPbQ9aJ~QT-RRtygdf~Y%?$3U^^0mue$!p158aK@5Tx$}je={rt0sR%{zF{qd3?Zpxb6{POcV=RERIpB+uUj(YJxx-DtwiL{RvC$!x@ z>D%wW9&zgYo|MdgCj367>&$OHin-zDikGub#@uY_;c3*(`jYRP-lv{0l)YUVtIJWo3x$`FU?SH~CcGmUZuO0htpQ{#*cF&pr z>$;crzPU5L@!by=y^~k>zLLIkUwCl1_QvQskEUI=sp$E!FvTOITj@@oueJ-kCFec7yA;~TCoTYT-BiZ9M?n)6BSsO!Hv zYoE0=?y3PlrnJgide+)F_3RPzZAlZ)Y|qsmJ92A$wm*qCw4K?DOw`qv@~9ZhY>6Ee{?3^o*-_8~3==b+*4T_u8r6Z$8)v3v=7&p*USB8;o7So z`@Q?11)J_U8SYuI<)shK+&=S)gHNB%xbE_xMrfg{p#PXugv||N6&oN>6`lp zHtcft=eL>;kDb)N?YMPUz3_0wsiL0?Iw$uW{pr~+Q*(c@PJesg4^h87{NnG&HV(J< zzIs{Ow$7c04!dXJ9P7(ZP5iz8vWE_BAHQMPh?R}kX0>{1f4fh-D~8{2%@aShY}-BV zt~0mHY}=~TeDd6Ht~OVPj%oaAaYbT6SX$#Zmo=ZX=S25LZ>AleSAXv}Z~YWe|H{zR z^)vd~|4}gi=C225B)?bw$kD}bZvQ^JeS_4L>36hruDZs#?&P`8FVD}qa>wR|^;Rc) z&F>8w_gv#y@4f9=)?%Xf!EWuw){XDd{FT?gsrT3mb5~rl?TZD`lRry1`&jGV(;FW8 zZRyL)#zx+mUHQZQFALZ8OaD3T&U>!@?a`fAEbR8L)U3WyMdy=NJX28E`MTfEopBy- zxZ&KVU#}hDy?n(b6AM1E47+2`b&2CAbvcrAb?C`M$M;^+>brI4wfzs)@3f`vKkMiH zvgVF)tM2^dVBL2gaId?i@kjI9G|MTqz$6jlB z{aZV|zLA&q=rylV!>EGO(H~uN>Y1Yh$3K^yv0>iF^S^rI_1|}%$iAs~`=j&9&sLth zW4iN3XNa@UoZsFnyRzetq0jc7w*S`-AGVv=W6rJ5Tv2&XYH?Y{En3&tZ*otIfA-{S zD|+-9mYFo-jm2k141DajPrvW@ZPA$>uibmk&Y#8&En4*AzG2@_-TcZ&zxK(z>g(G} zK5u&ejCvDFe9JN(STwSrkL#w*)(3_iT`=G?^IP7HbzeCYHv84Iu^Sq!eyV8dOPAgK za-HK(dDhlxJ+57!Iy)+=MwF zzkK}n@J=^9a?rPS$lV79nQm#|_<2tFle@N<-B%y_;*zTuoLiYXuluy{0nVLU!Z&0l z-2RVB&%7VXpB~}V#@>0{_TlO;8f2a7*kb9YJBFrQx?{)iZ{B(JvzNA)uD$cuuWxHQ z@?f14VTJQeGy7j3HMvv#%m-&?Os<&s%A+?<-aPuvCckc7eR%q?^nY%7{MX3CGp|3k ztNx}NZ~4}7#knsspZ_Rk?qgjW4bJ~^@6p0t1HHo!zHv>5>-O#WG$ncEhYe?EJ-F!S zdgDEs(|+B-PMzQV;pfBGP22Iz<*j#*T0OpOOpoi<4YFT7`|#_JY+v!{q6SABPpSXL zU2&~HxMP>LcjDy>UhZAGw%O~?7rd~!pu>bV&!pWnqhRUw_itObXWx!~Ip3VCKlIMe z7WQcxHRb4@8xIZmZau-b;M=U`-^^RNb;rHs zKPJWZd^+Tc$JZbFe$}?j@;Nt7`05cyWB=k0MrUvP>9MO4yq!BgId9oh{l6MJ?AycN zw%Pmf*&%213PZb(jQV+6v+0XEk1X+b>oV%M(yt!=FlF^eFIOfGzW-Wt z=Z!}ny7P%UO&@f7_q~MHcg}pb<(exW+4}va$(uhIHQOXtcd+6+fTMkzonH1J|+oUt|TV}2e zd95-#tnuovcRqGgY1h+Du73EMh|W(vGO7FJKQzm_;+Ju&ez@#k$FEBGsNK{bejE1u z?3CdluXf#bUxR6b6V81UwPXC?{m*1PxM~03f1JE=(Q#YHu_GS6?t!1IOLmmre(K;I z-G0eF*lcj}>w~7KG(O}nK$&awBj!sWm_VjeJuWkNuU1KdT!phW)XFw`mB8M z)AHWg?|zm);@N%HxKGc%KH9!;#N~IJ-rxUf#pa23O?d3n-seYl?iJO(+tCA?w{JLj zYVxZk**`zqaNNSag0UVd8EgCgO`Dj`T|N2g z=beo+k9S}4<+U?9zxrCs-YMQr^WFVt931@eTgh$S+IFS;u6=QyAK%-%eP;vHyL+EL zxwhXurA=18Ht5JZpM89&F6R{i5-$zdlgEW#grfWG?al{Pn7r4vx&;u;aZA+Zx^y@#ag>6T&KT z9Pe9ttPgpoUcqTkmrs^o`nr4hfb6fPCnqnva?R%t9`;Bpf|Par zt+&3u`&jaAI~T5L|9MiI6_4~StoudN?<(r2e>}kdz_E|7cz4FwgN1i>J239~*h|Bj zCjPej{lz6Kn*Z|SP5)}~LyOyzpJ>~D!xHm>{lmx3s@%Bc>#3t2?r>?r{weRze{k$W zpB?J=%B;&v9Rp&9@45B0y?efhin%>G{E)Zz$~(T_`Pf3Uawd1zi4)!^_d+l@6oX)A% zfxo{q_t?Ud_m%zh^zC;&{nLOkJJK#&aNjTH6BBlte)4|(LEgC|rS8whJkh#ko$hPC zh}@B!Iq>DtzG(+5K3{y(7n65({yWG)^?OnNx88pFqdc@OWGYokKSLW3z*T7k3HPjX zpKz6`IwMQDOilNnRMFP7z7?rmCJDG#n)1|mg9EUvCU+yw^(-ND6XMnQY~tcxItW&I z!jt#)P0E>+<(g6LNRMWP(>MfvD;?lv>2gV9L06N^l+KN%@Ix46Do22dAEAl^tvh1V0WDcxd2WL7V6-UHHuCF;bnXB% zr4+xh8JXGH>T)X_^0}C-wnK+@wLS|J%|+OtJ3wsMqwc`n1w6;Ydkb8e{susTx>Er6 z&_iC@sLZyj0pf`}Be3TK>oYd&|GXA7>b_ws+?5*c8^+nkQ)%!l5;EZSpyPcVSaZT! z5z>QqK!Dao_jY-Q2V}DF!)pOw+LzhigDe-aW8Ck6vKSQwi1fsrTeyb=ci$tuL|8~) z06tvLV%Uh+*B&^DGe}sIT7>0h-ON<(_SV<7!|qu;N4iSbM;Ps~?@HV^V%O!>lv{7T z^;7J9(xS|;Lv}@3aLy@88ysS?xEmq-A!rj2G~8PPKPhw0hyBmz&)>(msW64X{}=4# z9NKTg_5A)RPnX4{SUJam%# ztmUG zBhpx;KfE)BIM;c5es-fzoLRHuem3VqpUI8*xb!$szHcsdd*?UDn-axtZ;D-yH}=M1 zEr97a=R^$52xBFro}Y$0NAxl{${Xr-o1)zAM%cgP3$^$5g*yBAtPZ408TJB#59uP^ z3;h~+i1fogr&!#@j&k7TIc3^wZif#|NmO0zc^d`zA@ZH;6=(3~!90`~mMgQh>VEeq zF}6?ry!%D0Cu<`st_I%?xRYJ1YoP9P4dg5E)ZLCidAQd< z0yHcGwEH?>Hy>f=-Rhz)Hn;-$MtjoztZ3}_f@ZmY0Pbt2xv2ljPQ+!tKLv4NoNRzr z&0WEGrGiG?SughUh&3YAJp-RWIP5Ho2n)i|0^wx5jqz1!eGF?(44>J$*ki?>EG-oK z&9D!z1wMvNkMGEeS5X&v*9-9t_BHS@Al~af|zl@D2deAdo(YmxeTY4fdM_t%LiUL^=j&itqJrf!%MYJSJ3* z6R13He7*3Q@LBP(Pd|iu;l_u&(pc}&KH_bX8-1D+>F!{;)ypyK2itH^i?>Ty$JLq^ zj`(}gNN|YOu?GW~Ol=#@zXz+*agJ>(Xn;NwRZ}?eJ2l3+_37r`xK$J_Y%O3Gx z12?z}BFcidV;E;uZ$l9d6+XTlgZ{XQ@og6?;>!4^289vz?^I{-d>eUTmT?z+5bttP z@6d)JT%W+6Z_%I@HDaHSm3j6@2;0bt2obgqMA+Czas61c%@=*MN?#Z9o$1IsCfLr* z>t2ak@YwjU-x7WsT9N+ONcUQ#iL?4EJCE6AOQjT4;CJF3k(B|^(52o2YNV7RX zX=Y=8A>Q~w+8|6AyGDt9*=YY5Htx&jer?vd)*`Lk70M0m2XG$`{A0g59`@TC=zg*N z+l+jzqQP50+8lo$(4^6glkF|;)Up-(qn*Wieiu8q&nb#yj4&(uPaD$3sfUC9a6gk~ zUm|E@@vf8b8}ZR_-&UM;j*g>!h_#oZ?N0Y5fR_pJ-YxTjZAcp0ISbMxR$ItD{bAe- zZ)FYe3&_}0Nu#D5}82XK481vTDZ$u-lNwXbgh5ZK8 zpY1O5z>F{po-kW2%YcXr#ucSDJZsys86bJ7<{8W*7A$99199>g~j_!huyK#VKIC+{5_ zn^)LIPG_>TmLSNSG9_m+k8H~eXggcSX69L&U2h#YY`_4x{rku{l5k~c+oY5~FYe$J zFrY5}Mqo&QmKyH=LR~c|{S5z@fQhNvxo+OBNqVQjo^#K@Bp0EfeNm7-?@-s3ZeM1= zdAHDM;5<{!cRt8(JsK8WnY32W#3)qyf5>1@`g}B;x|04IaKVq0Vxe^VT?U-?aUAdq zWzv!WV&E^YAf0toUfZ3{WZBufn$!A8Ba+G@w$ne;yyle)|Avze8C9(*A9HhhUGs zOxS-6cntV_iGKsA6zOqxMsp&s;{nMp9JD3C6D58*aHUA!3OLIPQ8D2rT=?^?2iCXz#Ul1{xtAn;4D(4{~b8* z(pPvxgmt+APXN9i_y9@Y4LI-ESM(!+|7ySsfk&czD|@D03~;A({}6Dc7@u{(c{jfU zkl}eL$o};pe0LCj1UTzUDInc{9%TP@5PlXo^M+po?fdgupkO8{m~?&pb+<~Pcg7lv>D=7b=)0TkU0s@ zl8h_V#%JcyAKZIgI9c3K4VLoSYVpE4y_-_t!Ufhv*$4JGD>Nl{@AY>MY%ou^98Lph_l&;BzMTlyCb<^sRt;Ske zRd=9rr5dRy8~o8$Bo(bu2=O=!qs=%mA17z!P9`L%%BcdCReAx{kmLbA>baKeyc}a0 z=G!XhV^AOBZ~!Eo(5l~2NjZBy@TSf6K9qO~?c??KmhWSXLHj}6MVO%9O-+2GG-vz4 zcQeumLGK1^icXAuF8NtQboT=Y+n_BV#N=oxAr3|CB1Cw^J&o=3`#<^4iMYoQe0WbG z-%&{?Y>se9xSSB~wn}>sVIt~1+R8XgtYQcuc^h5|Hnh*wIE3_5v^RPnR$kuxSr{j6i?HyCl7kKD6(R_!1&~zY-!H zqtTJkJcSVEyw95WM#4Uzm*!^(LC^OxXg;41_)-bi1Jb{Z5|&B0UBYq+qcLEjKYXu( z;dc;%PZ1%?%PK+)`o$Tfs}XA^0qia5-Tr&c{gngoLLFkFiTFcqoP9BUJF&rxXkjkC`!< zf-Q=?=vR>RT1$ze_zE@Oz>5Z?rMea$>5X*CFWM_Tl2o`+=Y+@)*%45rBhT&MLLFADHRVa3kBjpyG9sz<|-mUMMsF_3aFW& zD?{Ls-5QFKh_3|@#jhH_L#0u?=(jj+BKsb$MA=&hvrSEyKO?uz$K9x|?V~R>kCf@+T$bWBUGf4g?m5NUfo-0L=@Dhs z{be|Cci!8i=lSV0(DPgu!$>#0Tby<&uuFtpY?=PfYy|j(gAdM{`C|}9zOx#M@P#;W zcE5DC2W9e99c`2sMH;fdk5AAatF@=^7RXkTZ0^q@h zR+v%#KpI6$7!UufHsmAHi*|g|o9EWVS#Yeo@%{w9?JCabJ0HclvN;~+i-m5Wr)*~h z{NOzVvp$Dx3+JsFC-UlQdDL%*zl0*&jJa28X z{wUk<6Zy>g zMwu*m(LK6GbXlV-ykdQWbrA6aKb9TRKn{G0_I}tWf`1~z4tw%p*<>6@hj++N9YGTqwRs-ek+K6!e}ESTYAe+eV4IPKjAoc7xdIPJ>~IPK3EaN3_U z;Ixkk!%rxamI`Rq5&Xk642KP4qA;yL@OXp019~-ns!7IX4bV~(@JN`}Mus-b;GSch zF+upaAe=RX;fq8ZDdU(IWWO*7e>4bxItbqugue-#`NuLq{s#clfLkU05g_xgqr^`G zGQX@6r_7A`qwK>>Fp!Gz!#y=3e>wt^e|(TVWH4e7C$@-9o19malQGVv=^6-IH0&A^ zSDoV5j=J``90ocek%4%6K+g{Rb>#0l{yJ&ngnKdJ)^!;fnK_wb^D^?X^KKKy^b-Pu zY(77lHC72-)GQfO>wG0v2?!#pS!Na)1=~T!Q5C#Nh1tSB zH)pz0b|Ix9qAqeyZbjNQZJ}vSK+dg~6QZCno%y!u074A@#T>mA=6(|2KnVP}gy$se zg}$5g>4dO%NjRPG8eIlXbG9uZbs%3QMCFSi!~i~)5DiBhAqGKKX`Vn>5ATEl@{La? zU{g#Yc#k&mtr9;e@!U|DW1>?;h>EyD;^h*akT4omk94f-+=LWM*aT*T@Xtz!30piN z3U>k_=n|zllB-s#rn#XFJd{FkgbJP;a!#Cvv;{z^zwq2J+rW#ANK1tzsx~*g5FOhp zx>0jO(y=Zo#qiNScy71~bja?2A`QPZ36;gJ3xsb32#{qiBOSx66nRkv&ker?zg*o) z{1qJ`idsO82uC{%4^XtU=J*&7wkIfh^f#a=+i0Vhz*K3+W{4USm>gbg4`JKnPVMzg zgcqM1ZfBwg%?-KsjPafK|6}icz~rpTyZ>i)X8&Ze>OeMin=bkQ8we0^0s*529VB3E zQyr3Eqo&O!yBiW&vSYHrU}GJ~E(DU4RRTl}Zw5g{<$Yb+)LNU?MbILRZPc`KrPR*u zWJ=u9Hf^=WistwEoa#>3eIT9J~n{M6Grs0k%T|qhscN5Oi z3Oq~)8HIVB2~#qham(Dt9D)6bCLKfCSMWx~q3|C?_Dhl;R2_E(!Tr_5uW|NV`ODm1 z{Ria3Vdf25o7H;12@f~wJn;~wiT92w`wo~x;P*xHz=&evT7s;<1bNf1!TzPo%R=n+ z{VH!ipEwm)7JKDc_J8H`O$9jllan9bP654{in0i(2X&HpF2GLpUNZewWcr7T4^&Gd z$iB$%lIOKv-#{5@51I)()H=FdD}J=}Kz0AH<^b=hG?hw!C_ZEo!K@MF=7wNK<&eq= zTFsL#0&4BNfxQ#R#jxbv6&BrRwGA_;=81-_xRjsm7wxNVf0Odb9;I8ipXt-!`AUSd zqIS$TE7MA)hm;=8KQ3q>e!aubi+FF~o$tq{lR&wpfb)Qj&R%!P$-Wsl8^~R4mDXR| z*T^$dahkA{|9ole(=1OaJkcvW=6ohR?r$*Ry$-1GE(Auy3&9V(abNYs+25?q`-6}+ zkgfAraXo{(;E9BV!HDIFr+voR4-gi1X6?T3>3!8VWp-(AZl!hf?y~sCT>i{P<~Z!V zIcNGvZ@45ae)6pm;u}87JUzc{{FB`8HiP{(L9z5iqFDM)!`N;3U0V75+@dme$yE8- z=U6qXB+6se2KcJEc^mY}d?~R7Jx3$+E%AI|@#^aDQ?}1fqyA^!K7Ph)`%PVZ@XXTK z;kQ#ai8p!nwsLZ`G? z;=Vb>o1C|;ye<11<=q$UC?|%uk8ffBMKXKnxt8K><#h1wvCltN8k>_{Tt%nxW$6P* zKkax~Md_SII_Hqa3F3PMw`8ujoXWiqU4X5_iQJ;ErgGh7)!!%I`6OjBV_bDN$n~6w zoS*JAbjvDVC*9hoMCY1bI70qMc9gk$hy5hfW7^Mjc+@(gy)gQ|9^ZVyZz4NDpTa$W zfo(@kA>~aO?Ee|{Du0dXLo|<7*(pxxCAJ=N^HrA)+E3#p^fA6osV#-BU0sM@-xgFK z6pn8vA0U3=)APhl+N2xNUKW*EqEw;>SXTKld6GUQnJtecOCK-K;{HF)d&P@$FIAba z?kXleQ8Nj`H44If)NVMe19Z z)g4LaCY~+yet4hDdxAZ>YU>I7d0t8%7Isn2_-!YTje*tK$^Q#i)Z;`&n^s(kC+wO` zci7Y6=PBM3+_(5r@u;k+&y63U{8g`2ryEB~iBz$a_yW8cBplD5t>@L#0Uu{j-ZTGL zb&K*o2VUf%ReICptAX?{*|MU-8BC`wH9eAUkZvXw{)lnsKaNuT-bL zYwUbEqu<28^fLeTQ(Mki!oB82X#UO7T&X%v8rDO59c?HKAE-XssD5i{<&kRy>D$6J zf6$%THNN}OgXOQjr8Kr=UUxb9xcVXXlNYy-?+o9{{a2+Y(7AnQhWZoU8^S~MV=F6( zaIBgnUFuInf41_f{w-IYk;<*h&=^hspu4M*+1_$8`##gZaW~{wli4-&8QaP~gy$K` zzddLBjxXW|y(Vqs)V%+x%U3h`(zy43pv}{7OrzhJM*T8vhk9)Kj$!t3j!>sc@Qtv2 zA94ggiR>+>^dV|P4-tN}5BX=(R+w+cm|maGJn77pDu=)mrC%SvNo7Er{>INv9?`w4 zl1I+`iu&tijF(H3pZ|l>*pG-)Wfz3VF34(9j>B^_x8_*~L2d_K7J zX4yRLa`c{Y%3ww-c~sxt3ct{`Oh~RmoV`$SD!w-;Z$=iny&7h$ET{6n9D7eg`(-?s zZpMRessA-;+5>-_I($#Ih%*tw?{~6~mwAZ>Ot8LdA>!9&% z`@x@4J}zACb3Y7^64ZOikkWs9I=S8FX=`$%@^W2egm4X=4~IG-z6IGks^2(y5*hYm z=I+Wl@M7+;_(U2glLK0JpiL(7ob6!j|ItrRPCR<%zG@lx6!3e%CxOobM}bFx2Y}B2 zzXbeS;C|p?;G>t?vj0ckce?iq?}P4LVQLSk;`w{t3+`QEu5<6-<-NM4jiaor( z-%|eLeaxNEWZ_{icg!Vo;Y(epV+Q=sn^Kt=}_r{&#mxT?I@Ak zJ&w##OP6F$rE41L`gSB;XAz$IM$^9WJH1pIdt7yabZBgTHSXev@)p9A-fSs(jpi$= z`st)f?bXH5G;Tpk<`-SsEtf`O>c&vQL z?Q7~Ivzu%E!8Df_&H|0?Bb-EWG2K|+-0$~&%5N`ogT0YCgP%+6#C~VQe$dS&irA~p zPnt^v<&!5*{_9nP-@X5;-fw>MDs~&crHhn)^WedQWlcnb<4mhNbK_UcddtOEcl=YS zF$iv0yLN4uLNCFid5Gp9LGJDxbtiY|%aRDxlRPr57G-aA{Qyq|g7H#z4c8BH?F-;Cdp2)?`% z{%cP1LFODOx=BwEzB6dth8%fYl^oMMjkunSQX)9b)utgZv&iz<t=DQ3iAH#-J}HxbKy!FA?ocH!R39w9bgSIWxU++Gt0$h*n4_`CyTe1qoMy7Otb*Q_ zG3OJc>t2(tSCg*#nA2ov{*gAxS->&It-F*aJKo%bpCRJQSI|kBF{h95(v&H77h)$` zAGY?sYux$2T@SVrM+dy=>~ia<E{fyK5BHCKW~1#(qh<6c>C+hm-C1t+OCK>Z3-)h(p+W0*nk#61 z5xI@=<9Y0YB6X%HUDMrV)iKHTow;4rCqK!2m3A`+y5=HtCiv7kLfD164AU5?OK&25 zwYrq2F6IBzq#NC1tUl?>h07|p8W~3Q2|WB$z$oWyFxn7^{Anbfa z{gz~y4#sI;pYFqt;i2KLWRh*w?`Z6zEG5TGRaSStNLkTd>t%(kracT=Qx7tCR=*x8 zE1j89UD78ND{Lara?%}_Qu}@*xaqnG~5H~;W#lssTJTqs5H=0W?Q@*KRzW-*-HU0W7#&4Yy z@_qIF;GQnX4U97`R5kAm^3`$GnOkvxDnh>lT>Tkp^>j$w)FXJ zBEQY#w}t%viOa9@IoFm+P>&yTx2inL@PhB_s;_+|_hl~0?rMU@&2%T*B%_rTW==J+05O-;DM^-N$vlT+=kvFt^E{h9B+RcT=yPpo~OCG z{IV4h8up*W{L0^Q=kJ}+ETN6fAza!@Mc)AkvbR-zUl$ZVR$W3Jms~ZSeJ@*}4Ms}m zl8?(&--D5D$YLLxiN7<+=S-a$_4|xc**nIw%17b;>Z_8$mvi#V-kxNkl#oo=k+J<} zW7t)0%zkuiF1&4+SH3z3OIK6xf1US==AEKr-aj_j5IikA_A*ryT}|i?){g7jPEB36 zmDPTT_iGP*rS$mglED$l-17_QAx27L3v#4^x~j1;%u!Ya#`iAjr^ZIw-|wQERGO2) z^<(TydN7f_{SVbwZN@$*a;BBEiubC|;(epqTYiW#&D%5U@U6x#c>B{I+xC4z{foZO z3=hrxTlHn+f$Hb67cW0cU*gL)$e<^7W&6)6KfdRzF@&*!G`KRrzx;hd^C`+V=t4Hi zl+J)T$k}|eAcyQux|4kOf$?>slV=VO{mKMOUlX%=WOpvlIXu)?<`cmLYg-f4m5H-> zXu}h%VNFnh%=aOJ@LMJw?;{e~!5%$Mg}hF9+Ev&!U`Jn6vwIJA zd|yNSs@YwST?)JJ%Z~gUCm$wXlvS!&I^$08Ecu#7o-`(rw!0GHGe;Y*8=}0IYEG6O z%5P);TAk)U;mw7(J@3N$ci<)9l0g*qAFE8Wwhk@9-)zUPKWzvmdijRRp8&ta1KkAY z5GFX!HL;)P4|)E8=P{lUo-gol?rVbcUlZ(Op7=b^=XgHL^9avpcs|YZDV~RU9^&~V z&x1TAo_#!55#IyAy*!`bxfuLoz&$+o^KeeWl%1~&)5x#-oDUlw+WL{gPWh6(>apRU z%b$37t$3Ibf37n;Wb8CNeBv!njERRy^veIiJZ&4_G>g*FR~tU6t=;W-`3I_(t}dz` z{`hAnKmNZXX+a>brDYjuNo7lw*~Gn!xD(XLjnpaDM(Fp0iGH39JU8+5@!ZJsJ|5(q z3Hs-W8+g|8^z!uZbn~p?Sg=)))8%kv(dck{3&Iq_RO@8Y?hXF1O@ zo~1mZ&GRS?@8J1O9{T->-{ARmp11QX=6M^>wLI7GEaJJE=dC0g9+s531puM_RCCM!GlaZF`wu2Jj$Qwl}_pRF5yxB=JH&`b0NXN({EBayn}2~Y)Gl?7+353dQ#|mUv#!v<6XjWc#CQ2q7;&Dzz&u3pX}m!up0$R2 z&n6trRpPY2bHa{2_d~Y=I;HtM(yYAn0F@V|g>k5naW=Umd|+lO+}23=4UFZ2X9nT6 znRi6e9FOA~;_&JD5b?a3c+^MrQKu5&;YQkhl6*HbXkL!p-xnED&nrXl*FA$0J<_e27FjLPtxMY2;X1*75>y`X}nOGJWag+ zMjm~i_k{E3`$g|BN&om2=U08C{G!+XIA{B9n#|a~w4!nSj~t!KRdkO*r*YYj$?6v_ z=JEZ4#zKUs3C5<0c|2L3*YT)d5M4Wu`h`{=^$T-&P(+;)@BJ=bGd>gVJ;bZ}Yj_q( z-!4a|@mlG-6S}{hf^M6m(-xRA9NnH(kC_WP8i6O+l@S_{pHA5)amaYRonG) zWs{RD`+sEHuH?V<zJh@;V}& zE;>7Ck=<&tbJQO)Vmc~2Pj`8|f;>iL=hu->*B_Zab!6m;F|7;4^L`I@sxPmAf0_em z9-(^l{0k>%Eu#FAlFtLH6O7I${`rNI@1dWo{QC=v=VR4{l#Bc}Fb7e&DvZB-;pFG! zH^`KY&Qbn9wW>7s$yN7C4{7ElDic%BvTMhakvRwRpeHIXoP1jK$%gm9OzO`Wo1p&; zygnX&cT9C$W5uQ^^0h(vvi-5izvfeOuruN1>ElV`y9sM|tX+Nlg_9ruw0IY3YxiRJ zdojCV?A{u)+kxGP<7X56)R?q8Mspi9`$Q87|3lbGrXP7F`|)^6JX!A8xy{`pHHY&c zsq7-=Wvmeg=rDp^-&Z|v_$SSy8DBGt##_Th(B#IoXP~3Js~V2(s-Ep+ikYM(%-A(! z&7-G->zj$v@o3(^9Q}ayod-GETwv|hhHi8BI%Rc_81=yWiQ0GIUw-7j&FLA?3RGAN zmHZcMOrom?-UNJQaPjwb_CWUrF*Z})=u=6T#%!fU_W-5J4;IH%U72_3W%Dn;;`Iv0Lsii#%xQoC0XM2K#3IE9m?p*|RH;3r!rm_CY z+v%JeSQqh;;T`>8%?STc4YT`XcgFBNG5j+z{EIRCYcc%WF?=kB|4R&iA%;(@)g7C@ zUy0%8#_;H#Uga+rbAMY5|1EHp&tYhF&Y(Nyep3v;1zhEob@YSaKLA&~kpGW@=g+IV zb56ncj-9K6p8nN^jjQ@M4|K0{CluWM5F9_q>I}kV!P=V!*z(Woe7$m&f!@vO1#?p2 z4MNSqh1UnGdio0+h0n|S$!-y!IwDaE_0rAjKUl*yufMdXhV*ROyrzy^8X=2PZSEsD9cj>!3I+_H zbkGg{Hj10w*#@1Mu*WrAe$90V<^}|N6@*@IuARpaRzm{Scb$JwAE9#vDaudhB31~} zxfL8#ISW_cm~3IUwu5^FQNHYTcuA0%%EJzSRFF=j4AeP^9Lf}PzCv&=;R{~EeJp}> zjym_CI}Oaa2P)Yj;TO^83F5w7kO^RqAnpah3)u_M2xQXN(`4bGAn|=k5dVi9enOCV zL;BASCXEXO!Ha^T7li(>AmKhrUc`^Xg7E1DLHM+w)w(}S-z~lzaPW|W$AG%q;JAY+ z`fTB?g77cn;Cw;&x4_{G1&Jf)@Wq1gZwY>N#=p3Z1_jB-b_aJmxW~c0g1-_3 zCBauy9|XzQBhGz9kbLiV_?HC9=K+Uj@uNE@isxE5>Y&CNoliOD;PVbHCodfgo_&HS z4z@e|5r=EcQF;$JSe8ACg+6%F@kT2DX&Q9@0aZC@a`Y5IP$Ud*QtpK$nll$Uhws1G zo<)NN#=q!DPCzmYPBk`Wedjw(W8=AZU=3>VVIFpa7U z;-bD|s5y?#KBt(+p)WQ2B!V*U%#9MvZ#ZK<-pZV$rEKRV(p9zu4}6OBe!0!fX*6G< zr>(NbR`)tiBm#FAvChoom?IH>P$0Y_Ydtv|j_y@toog(WFP#DZ(v1Q0AHvg_6vY_? zx^vdhJoiCszmlCRHV_u&l{RbK_|bWlkTkrH^xqiTGugyr_7!lb?x?lD252>ZR6d@?UNq=y&7A>?yAc{QCu3eGJu7XBZ_N5NPVxke+?$AlJu~R{ zIBQSX+Jm8RFC`6fFT(XM9@Pgu=1ft}^N0Ii;mtYZLwpkb&*PCPE5{?vm9-Bc&Li43 z_sQ0IBpuZ|;i2ZQ+Z~T?gh#t#Jo0|TqiY=f$_V}Y9lg@nOrE10qX*J&jCU4Ra z_;-aNdbOY0dsqEkX=x&yfb@AiSt2M@$m1AwIbHJ;-aDRPT_}K7ahWh_H|))t<#CnM zBd%U}utcJtL~GDu4AAhF2<&E?Xyj9Oxp=K0fJ>;5F}q zjSQQ!=CW5-&3r^RgxYb6FJ6wLYP)Cl_ zk2LXa(on3Y=OFd-t?U~z`leuexq*Aw>**Y+7PgC8KN}pl*HCOdleO+nH^Pq=#6jn4Z33%`q#PJF`-gXTZ zJUV-=dDfGl!#rI)zCV|KD@8b|%(+#CPo652zpZ<(>K`jLP>0}?bW-voJrrwI~>Q z`p`sBx`#gdrnrCAXR{=6KeFzmI2exqF({@M(%5Q z)E%_&$bA5)wh~eX!UuWxM)Y@k1StHW82(rce5?sHK6I{;Mt&&Aw-7{hgcx;IMCc`=-G!!;xKH^uO`#_+et@O%tk3$FUEPEYB( zCFaf^zaT|@mwYF8@!r&bm!D6@=nuqj^mDGaMLid}G^Boc>t*Iz4H3C3S-BrmSbssv zulgmUSgTWBbBpdP)g_t{%;=mHLhY_m+|AXTtJd2qKiu7$BCK6E>Mj?Z`a)QH{U~>S zzSvEuwP4~`hOUZS?&|ewQVA+`u^^LzQF$b zkXCnh_Z9|>H+MB{>`v0S!mgHP#q<()sEWje+P8kw07^nd+uhf{sW;+elVF@&YI?UA zOi`HbbPei{q)%Mv@Wl>aCwL)x zBVdx@LHbeYl?DV+Mr?8Rdw`1fupsds6(rsa?N9Nx3li@_hj$4Qf1e=n8@(u*(pal_ zb~-pLNPH#Hy$*e)Ao+bpkZ?8jieC52NM9NXl8(iKq{HYLDE$cg#Lga@g8)r zEVz*Ja4^*fj$qd=$l%#2i2DLTlvaxbbHpQf6?!K@^1oGZHt{*QAE4}6T3(?9*M<@E1qRT=f zKNOuY3Xfu`8O1AiipW6G%aov_+SH6_^elGJJ3RFw>63g!+6qxRrP&*WCBvMjmIvYg zL3r!*;*6&ggk3eWlFS!L{B&$Oc$AL}Ph79~Y%4nRh({lu9X>CuDHdPqzMT1&&YvF| z^V0X_>__*HnWR@NIQ@-u0n)WJkt~7(XW517s4vB6B9TItiMsxJz@L_4z&VfUxE4hpO-9i5R zJULE}KEceHrOQw_)1Zx}PiJuz|6%6J? z``AfX-7gVV5B}ue&%G1yA`EO;I+Lt07gOGS&_v6-0UC1;C;1W0O@yN`RMzsZFmJ$4 zZX<+~p%NXWya#!5JjdV0-k&UIr&R7abRp7_r<+vPgde5_RrxU@eEALY~18y^Q_tmy8yYNLn zRo!LSF?D0lTlZDJP8we$P4OZ>h7KeJqV)SkcR z>iz+Aiib}le}9ADc)4wN;SIYwJ3v^^{+zJHXQlh^rwD7a3yVG16TvWj3cOI-rEiS3 z*_|%kt;F?5k+{-b%4fa4`EvOp{#D0(+7n^Dt*s$0-$y7e>2IgS;@jxrE77k1JQ5#$ z`lR~porJ6S(JVfKB0FU8$d_t`}Y()3E;Qdldo5*mki74Pq}s_ zd(|8DqqDFt(oX%@Bzuy9SW_mxy1n|apOT+wALhTU=ykt8bNLjn)Q{Z>eUHnh;yUVh z_8d@sSPS{GX(^ADUPaqsTsTD^dFdtHkiNW^&M-l;*3^6Hb~|@Td6LQM#_lCkU9!gR zy(`vaD!Ug#1~oY-cb= zd62G!v8`q#Gcp~k8R1NmYDPHInVJ#4ghyeWpp7ZK6*X5YgRYC=n_~D-4Bs2WACBQ) z1{Z&yr;RJVuf^OC#qe?rug37_!Brm502SVU#oXJ-mp969{5w!*@xnHE=nz} zv#yNt+5o5P(2U=zk*vy~rh__FO~i+FHuQF%s$Yny9wsRlrcgJS@9@OKI#s{nlrT;y z;q@9OaHq&x!7}SX^Sd&;G1~Yff7F}NCjOi$bwLxU_1H) z2h}b$FMU!to$U!h1n?Hhpo58z%1Zi^PC@3k^97ldY79^~MxO!w!@>#wDQADw!Q;-p zjrt|}tb+>#pL<)HSr3D^03!9E8I z4h}fD#leSx(lhNBJRjLz5PlsMqFcsYR_;_w`cx41Mz_YN&q3T*QA157oe!7o$^qksq(m5FOdC8KqC|aec;q z=wM6Dh(^z12ff3yFOt3$5RkS)lul{(Mq$as^%>1%YMpg5|DH~ercyHn=t@{oYPC%=3ZZ?qAoeU8Tbgaec=8Y&Hxp&&~_O@KWBwa9%chg)|wLXRkQzeNua^ zKv2_XypmLQ2FTaQdioYKGT4NFm#mpb)(g9a&0Y`5j*ZBZEx~=&B~F%W<6U;Y>F|(m zD+_;z!vo~gFgwWk*g@u^gH>eIisVa`mG%f7EbOZWMP$;#-DU0b330#J`(-cGuWBCj zK4kB%p{nFq(fB<_N~hA)5)4(z7U%NoGz)wfj;0M7WEIY$6PD7H-(GFaZ8tiOHogU{ zJr$ZOc&K>hyD%iL%DyGIw<`NLI(yLze^ZR^N%Gc;jIMdP^h4%b-UafO8?GjcrLnJ* zj)tz%7(>O80qBOospC(-f_LPHbT9BA^TW=p%4J#QbJ+QLc2nreAj`cP+-YoNX2SA1 z81YE@CC#JG71AZRKRXx7-nO$8&y=b9SXMpI*5K;j(eg+&#@) zq@pmDhxW{1wS$MVhGWyQrw^LgOxhS0(jNrwB#i-nliarhe~vu6)a-v6GjoniY3$HB z?jD^&e*8W7X>s-LfU{Q`S_*^J+X%N6H`SFdu^&kB>-~E95ue^>^l;SqWrp|q?y%ms z;vNjMN2Ulb3cJmmDv`dvLZ5g<-xSwbOS+eIp1X&{bA1mbO}Z9E(si**R}1^C+JfDU zwEy&+Gr5lu8owtGd-e&j7qK{44Tc9fS8dx0=l#ZRRvMsR=JxcMvWB*ee5La6588Gf zwW(Wax2+-RC2cyd%CLGQlhZqQHid)bhHzV1cVQ;7hmY!e(}|$ipzkT`?oj5!?CY~U z`Xck<4d4o=g*?(v8l8sn)_Adxk3W!31SV8@BarlsP}V z$c&Olo(`UNp1q_&=bDv=!2 zzVDJ&Kcu>*I;QU=tB#1*tzFbR=O%tDeDN>~O)788JCWw@HPxZwZtgtfJTCl5@~tDf z_VkvFEpwIOJ185IzG8ly`ju`PW)4m`sw)iZrmmPfT88cU%I&zR- z^Y2ylA1rgE6>frWHtD-m^e>Nd=f=|tvz2rtGTmiTSxy#Llv^{@!ix@f4_is^YPs2e^%movf;UUJ9A==z>qr=pgl%|bkxC_69yXexn(u1i` zclg>qH51;;xOgvP(0j&G;zPEloG$g0Ih$VQ{B1cC5?+>vaCDzOcbAVP@lQEC-5KmL zVVXSV^5fhs@pMbz@=W}Qmqtggym4pxSR>)l*3;=yZ@H217)so>yWdiIJPtn%pVT%LrusY^wuPQ9<>*du52WEEJQ5$@5#i(8c~2B2WK zcVl^aaeH|>d2ff8s(;2kb8odFTuWW$?gw}ww~nqMwexfvZk@r$;Efyi&^OaJJw1*5 z8eVhuoT(mrq`4ne-=`uC9i<`4khA5v<>e;gYa%}G^hwJtN%<>{DtGk7Usl*A9K!wg zShzZuZrW*3Is^VD6u$T^sQN6ZJS!}PSbc=R8E)O zR3@swb0TfG=eUVa(&4EFY2(zAMC^(7m5+1P&xC)ZZ@1-uzcHdOr2J|ka~>6P#Q z&UfTBhp3zSSy^PYKxaQ`4`yz$&f(I34e(f#sLib`-fZS1Tf8&=U(dVnXL%H!{O73* z);N7$1b-_I%fY*-@Sc8q<7E2%5uA1(2v?Y*M^+0`G(?ZDRd@`lMd$uO@WTj7s$ZhN z1Nc1ne1|K2b7>{k)DmV;=@;c*H;n=Etub@>Pv9OkI=ecVo`gkA(#+WE7TRkVHA%Xn zPev?MCi`RfXbk_W7%skhBmd8P1StH6F+6@2l@GAgjOeA$^G5h3G5qovuDyZYh+eWr z2!Hi1ePZAzqedTSTka~FNZ*>(=m5Jp8R?qyDs$q|?_P6+8+t$Bouj1E&v|^?dQBFCn&n3Yw~s}hq)7~(rTIym#LR=9mw@^A9x_G}5a9U$q|+>m`yC}$P`J3^-~ z1g>zn+OPI8?G}Evty9vQJtG`w_D6+IKL}hzF)19iDfxRuI32?Q!A_?qoK3klfS*VE z5d>c$2;G+i&tadDAmKeVp)z9emWm5eE+em99q+ptaBI8Nu03FNXa9%~atZ5XAkUAnt0O!ZU*4 zgM!dMB?x^xaVr0F1aU7oyy$R!Lt1n%2wr6S8J(LXdqD#N6~P1zZMOUxSV&eIX+Rjj zDri91Gkw-8@hhB;I}{{surg>M52tIW8ftlg_cEV%eaG4xrAH>Nx6?kP5j?7X$-n57 zX0b*%#b-=UBrI9TO@=HR`j?_pdg9^DQ2@^P^ku#L zDec3a23vNBDroydW52KFZ*Wz2H{D)6;bd7471mo^SjQr`X%Y&f z)r+)@4py0K(9<~m2|7owr~5H;gO*Y0XjW=X{%Nh7H-x?A7Us;Fi+O#U(f^=tTS|HZ z=FLi*nQxFc(b+l7^_A;zmp-6@`>>wpE-gkI=0wa5Get9xlAGqy>FG-~mvnlJrDJr5 z>G`XzF0QHT?(#ACsd=QrRlZer3!zcm3BslcaL2XuWxA*9w={o!5WUnJYib*9Rn;?g~J()XA$FuGgu&ghWPMcMMY4_-e6 zo$Aet>6En7 zMxFEJ>UHjBUY5Jgoc;Cs22;oL;+y5K(evc&{u%L4VG61)t8Ix+(BrxnT61vo{b}al z!ANOr59QHWlwNs7Wd-kvE;kP^xw=uLJr!;*H>2yi%iNj%x3slol@EzFcRP9?eP`it zRrlY?p7xV&W{#U0rah_d(jK+Hs|B41<03jqcspv(khUJXGt~F2m43O4M>e1K zJ}vZU6gN6LbS;$Qw>-Vi>$&h*d1)a};;DG$+nvr3qdz>7BAwD5Nr$9wUK_nv$alcP zhObK3f$njZ?2bU&0#B3=>3@>&z=tLKbg-Q;_y&7vsCtO}G*PyR;XBP);%Nn&_S>-+ zU&Tl6&HJ3bCDnwRXtmc%b+eWSmoMt&w+`SI)lFP)@c*7};#&O1brV|qZl`^{l$orX zFvD!O{PeBg(EGA}!g4QJlSDk8v@h=e#r7Y`S#pl%@8`RB`Wk~v-_XNjO~RfX^(gak z#*4@rYr?GkGRB%SzzR?Pe^8^h`iT<}{2jatAD|w1`kq>{Eqz}E{~c(B`}A%A-wM7Q zDF43))cK1&F1-7|weGJvCil+(i{O%peSD){aK}Arq@Pgw>!vaIV~5NEPNkoiOy6Ah z%G>GaC!UV@P#)v@28~7D$o)S(0u+8ShQBJ3CAt4<4Cg-Znvr{4-=MQR-pKv!FPTyj=`8Bae6rpmVlUlA1U34L2yS#35!}r8Blsj; zM%+Fc@Fbl^ozN;FCMjB`&}&3B88yuXhvPOzR2o)mF_lgOb;V8nH~0GEVf^7+K42Za(FTQhT6U6{ewX1HTF8FIw-w@+O^zQP^M>{69l6`&EKC9>~!b1W-~{n zE!NI$5so>pMMqPVJ>fhoh(E8_cv86h(T=63F#DD+u;;K8-#Y9CrRO;7LeeF=io_)0=@d#=FAv`h~FB>SVAoM&Zdlu3uOLT{K?N=vn0;z?eShqDC|_as7hm z!~<_UU0lC#KXf1VL_kj`NL8+x_LjhWBj%;_3n!2qZ}oxT+rOe;&{@yZ)-PPT;Pt1i zUuaRmoTh$ZF7v<)IstS4NUk(?4RfZD{V7&HK2?v9VUE*D;QFq%_W8)4{0I0&ezxoJ z%pbTLc}BwA3$txzDzj~71M6z&BxbgTgENt_6ADLlt#fp^YVIpSz7EQ)KO$>OCy*e# z8N6%W&-{Ou*3F~~NOsld+gc~noKW*UtyP;e<4^Lh-ZdA~-XZiGW5=B?ARvu3yT}~h z&jsUiL&?kJx3&)bTHducE73)MIS1g^{~K~P&gOu-ZJ2wSv@qwT9Up1V{(ZHXZ|PAL z(pr;bKJ*xKo(CoO*VCOJC%q3MgMC@^UhUITKBm>e;;tHJueqky1DUHE7|pNlC#Ggr zxPKaG*C8!`OW#p?;p=xOt0#VibeXws7jp{ck}4D0LOLwmS4|Y%yfp9lXzpQOru&tT zXg@_V&suu!4%Wbxe)gb+ZqCJANO?d#Yw{pI$N7P*;P{bbK70Kb>13X`jJ+wrtS0iq zo&v`^n_q=CTpXGwLYD>$vKcpZp`sWcE1?7gvXjh z|ACKNRdbMzYc7tGgcaeUk{uU!Mng0 zfFE$~Hv)eE{=CDL-sh=f*5D8^nrq0tZW@CRI7DOGRCA5V^pgj*)0t}w)gv=`x<7_L z6vH2j;g84gr(^i{V)%10{CEuiNeoX#SR|gG8N;=%R)(L(4GwAT)3rwC5_(%3n?_i> zNh_b$N|OiYL1MXmH3GDKHA26AH4_K>Y9)2QzG>`EZyMlkgD^6FO!_zTmZ^k)+0{gP zlb)qly<^d;HMh{sm{?81M5S9J>MNx6>4fFZDs@X%=I=m0gs(copmt&K+$WSCmDLL;B2?Hc^>5@{A}6@W=hz_d&78u;i$esQLdl}KnT*M=K@BCtP^P!QSD4qHVZ+!Z) zSVU#+Q379#oznO7WbP#dtT?<;c#1DBa~GkD#w!{nqgRv}Ah8vXbpyYJEj=yJTL`+jW-7`{H!j z>**MM65?e!&T{G(p<_OWpwtG7JYEhPc6P!S@Lr1GSMxr?vz$ln?*MB2S>f>a0N42j zTk8q1#7M4^d)+h!zwHq9TT{tZlj;Be%T<#5yiq8m{%+Mm{%+Mm{%+Mm{%)Ruzjp1{m6O>>F0ka zP9VN%hJ|~F1>Q|CMMB|6#jTXV_P7X<1UNDNUTf)l z8}CYz*Y!OGA{uWLp4{K%pu&|o9E(>pdg5}&3$lzDkH+N=(VdRmaXw?l>Bt?AKvyPA z$sJTrlV7UMDRPH&(nqF9pRUg9UQ-i0{N3v>dZzHwE3P>0JCe4mVnpN)-MxPN>WjbM z#W|;I{^2*rgD%d}z5jt~CckUE7@T4BYRO^NlsmW^g0WP(vxboKe|-BDy-!kOaT9Cj zqpuxBzcf@%bgUllVyvdQJ&o?FlINX1|454WKHeLFIqB!J_f=EjJyq?&ICl2F>NFRw z!fVNC&&Tr0C5GOP_u5AigxUjOadd}c*Zc$P^xOXI*dVmOVdFe9#QO@~ZwE4!m^Dn; z&5^LR7bk&RCp4U?(%CD%g-m?ek5&_{Gx%N`@4EXWMVA@A36n`L-$IC~R)u*QiwvwP;w?%RBUu?yGsTshnBo;<}3dNZ87h=)_%(t$?8 zIW}Z`2fD9w)0|pl=|EHWD6Tj|E_2+xaYHz}&!)qK8?#h6F)I^S+)m-g?dT`MZnx@4 zo;Po}aYO$HHiWtdGbC#ln1uc^=pKJT2Q;WAHS^y&pJDh>3n5|pXRSwCGxc51+r2X* z7ovmNuVAejgOHbYi}2rQ#@hoCTw_XWEzym^JmC@dD|lZV!QaIDo(P`f{b&TgmiI>@ zIDOuvZ>Q1M8l8RvKMveoL?<$lx*} zh)(U8vzMMh?s*5-3BHzfc843C8SaN1e%!$nJe9w82eS??a&WnWJr1f~Cn>UmV2j;j zW7f@u(-5`_PNz(OT_N!cr*du=q$2DTWD+j@NfO=KZb1rBdux&?WcCW8iz^AT@b<7E z0lX5R{nRg3$%fK78X+TY;ob7Ng^OhrFDJap(sBOZQ znjYxI=(5nrkC#zJm-T^Quk;Chi-V$<(Pqav_SO80M$cjgjU|5zd8b zlxA-{U0gTTO?c}(5zx~KMpG;3$xBC_Dt*3@ih02A%-k2~->S0I(By7jPkP z2QUw0JPLb&q&ZZ7N#7o-U;HSr1iS^PeM{Sb2Z8KA437an2nLpyiDcsOM5UySuvYmCnxZkv9{SBM@H*X4cC4AVwF?839l3iwN1Wey9A4L?-!@RcqY|9`#qV8`!vcL-*=|-X7z>caz3+ z{P3a48$uD8OV_bmzv1T9ee0pxc*EwKdie@v#7=a|+4>FP=1rv8Ug;Iyd_~y5p${h7 zyX>8GOH8n19pMLTm|NSw@g{6e<%1U7!dQkkz|rn*ZjiTmt@AD1ROszqzjl3Z59{Q^6F8@v~`j_d2P8Nj>hUpF(b?hi7JafAfabYx;V_f&Nf8mKnB~ zf~?zjGaVS{^)7Y$8+&^Tu#Ihfbvwr$$F#cr2FhC(!BdZG@onsdp{hl)yLt8cK9i93 zh0xugCR%+$U_Ft1kemp&lLS-$T;XlruxWEaIfm1d{nqWRs!#swc7=`o1O46oeLglj zzkv;A@}sg1nXYl$z_P2B4XoZcu(?3p@74wX18~E(19y|Y5f!EHbN9Cy!OOm{;sSm% z@3XhsYqi$le(qz>b6T3{y>n(c)zPY+dw;x7`j&!lf@MEtPc1IlneP}l|Lz((lP>q| z1tX5$wED*0RfW~-)v%R*@kxRCxb!M}h41T+$Jx@UgR$0KJab`e(0kT~x4}x9md3ni z&3o*_2-Z#~Ze18IIAibIpW?OeQ++qU#wT}sU7*EX^!`w zd!S&|wh`P16Nm@iuX%R~t?x>$oz8V1X=S(1vL%+KzYKHP=p6*V;0p*Cl4|C^GryHA zS2yk6)F~wSn-hQ0L zf5<~Ss0}G|JVU1VIuNes2%c%@&4M{_&8t$t+8O|iZ*zEugPjh}b#T6e3msIR*@JR;`I(XQ@XB|B1;PVdtz`++BOd;PX-c|?O9PDsVa-`hnIw*ao zaLJW|iyU0ypyuteU+JLaP2qhG!tT>DQ_Z6nMSP~*dwd@KFcatyw^kmqXzFzfaJIv} z7^^WjYD6n@5s&C!if%qM@)M=oLLR;G=~JH&T|0V`^sR$V>1*T>o#Ip86yBvgGRL7= zECOdlC--FzDqNWbc%EZl&A({$taQ*=^4FzEB1SYaeLUo$U=aR9Cmwj?>EiS99nfv{ zL_kj`7-2)8z1UeSH3e25q6OC@TeM zeC>#N`I6Q9%(+#aG1eXp?NeUNoczqt?agJM?^T+obKW#p7#t7s+y};8ZgY8>Lw%2w zJIvhNoe`%JLTl#tye|p{&3%y_<_zSr3VcXw4d^m+zfoT6H)-z%AB~$i%gBCc#V1R~!` z_bn1;tqfFdxo~h?WvF!ce1;L;r+w(muhO{yzUgj4@$+)t zTOB{?!_vCTFj3In`s*tVT{;^9EqqfQrYw#%kT=yS)tAc^2l<0{l(h}-)h=vX-|sPZ ztu;aK+llJMp>v;P4fUht(YHKQKCXA-LX_eBzuL(z&U4#3;N!Usd&TAJ`xB%^XQ6Z1 zebtci>&JZyY4mqVCOAj%AC%3XIJ%Aq-7PUXwSz2WuYNtsql-z;_F(t1hP-&e-Iwq} zylRQ?O83{r`I96q%5Nk5dHodpq3bfd7k?C%`l!Yjf1Zi(=Y-*p?$bM!KR%vq#HqME ze+=)bTgPc@M;#A5uig)BoL983iNAAno>!ua^GbI+cwXr&iRzQiW{5AoKB*369FJbd zyQxp`PGxL(MLY@0Kx^76L)xw3m#<4~cd6B-nJ!%AM`4Or(Ry?$pUnN4q{Y@F@kf3Y z&mi$A4u2M9F?B-ri(K8-b53P@T9J7 z-yy#+`eKb)=H3d<8_j@EXTEuI8(W9}IDd3jr_=G#^G9@X{&3dc)Ej-9 zS^RnYwU3Xf{w&JtPLS)y61mc24Y|^TK^JWye|MQa!hH8Akz0gbJzqhbqS@H{G2zG9 zkGPXSeYnmV(YG3?dKrx7$1fxw;(sf=3`X~Imj`=E7;DbMz8zfe=klH^-p~6Aopa)j z3ifm69q*}^;=TGlcv@);;b*oqw!pPz&O!(Yw?c|Lbwr!!t=%yE45?eB&u_^A6ybmx!ys@gZIM;Sx1bGf_5$_{=^$-rNe z_Z;`aWTDBOYsP1N$DKOxEykj+DIFS*O?~C;o5pm;^6L5UMEvmg8jE+GuHG8nb?F|6 zcj=B7!#ma4*21pwz|~vTLDgOHPrSRr@s4!EJMPuUaQ=$$TDfmRYb3s|nz{?U=bPN* zS7Wv6s_6WC5;y<;UiUrhcGpJLAI9sT>MH#YgFN@J5{Eml#eNoxzXCrR&o!RWzSM`% zX9W|Y?bQAt?!x$qxeMdEig+u3otbUbAXgfjlf8AO@+!Fl-j0c<382c=?oGCL6UmSG z(F|=TA6NSqFLYn5#vt{jK^OhxFg%A3sS)n*DRIAWkvoG6+|69x&Arij zxN~)62siG>Ee_!}gxin_U$SE^GelpJN6z89XoRWqQGX-5CekuP@$j9q#^F+ex?$Wq zbCh3~XqMZ06WDTXh36`7tqrPwP`!ADbl2~MEmiy-t%`?xa3)fuU+%J39rJt3#XHdi zq($NAU1i-)Ip{8L)wdk7C-xH_D$OJ^eJD9<>Y@5c{2N)OO z9Qx`xta~=*_dO?G>mC@{r*guFsIN}`?;5PCK7}xdv1!ux;oX$58|xs{-!Fq6^_OH% z5UQ4lu{zTgs%6GZ{Y|E>h`V&4IU1)m_RbRNcswrmg_^`0-+}AZa=fJw_E&^-Z zH=kI8_qfu#GlI*12_e-Q>;KURE_b6aF$9SKId9UQC54wV9kd8+e0)5?85`d52(Iut zX^qxc_c;+p8FhGz*{dK#Wgwj~<6_N7#+g^ctjx10 zhR1cv>tpV$LD!7JyR(Mb@E!zL+(&_m|8p_-1K=uuu}tpY07}>A@xKL^&d=jCXrue{ z_;GOQ06m@{F6jb2u5*wB;Hp9jzXM!)H04wH`QQh@m3HB;2R{fd*+uxZ;Lk+dmxF7~ z+K1l@E?t_(Zw5aR!FPZM$+~+9yan8cKLXws!AHSE@J^uO{{~Qd8s<8j3Aw#{!{O4y zs(yzKXTS?opI5l_9|u=`ecs_e23P$I9p0q8O(T4V&j4Qt?&)WPtG;^vTmdd!n#UJ| zF9y#$|JQ-<0r&C08~k|0{YLN{jmYz>DE|@sUhq74mkaM9@DXs&uSdZTMCktn{7LYv zqyIYi55S*w_+fBwl;-Ea4-uHB|B2jbe?C3a;k`Gae+_s`#Ql<(`&Hl>+&iFEd0hvt z{Wu=)0bdNRu;jiOdPkjbTn$Ys;I%>zB`)~&ftvbebx^=7T5y0bO0)51E-8#(Jc z`Q)!6^y}lbgubZ7Dz@4`tN{qBe!io7NepLVux_8}?vt zyhSU3F&n!`Xe`A!OBS(Y>qpP3S{66-ZgJnmgSLjKlvc3;+l10XQFX6dy?%qQkFxMp z)FgO{TdEbcr*SnfY9((f$rwr0N+cUL-?XN8W4#<4uHqQz-C&xSNvaRV?4zYNZD2=+ z-p!)FZr8>_g<>0JfB%i3YEA|hFDw?)u5~_piQqZ5Z!~u|3-5GyU(dFEuFi9}(MQW( zV}QY^Qex-whvcG^nlD!fKgYAqXa+f?M_xZrHa9`x$pxnXtI~Xz!bfC<7R*-xzq~DkO za=|?57QB}6Q!r%Q6nqEciy-u6LHs{2$bwvoe*3It@LBMB!V#Pee}EnDAw0qJ*{|oI zKFJiMt>9fmr!;$` zuw>$EiEn~#opmz*o=y;U)y%`t9inbiU4oED`Ouh5^{erO*Ih>dR0eObh}uyv}+%0@plz^2EXwIu+QGmd-==7kGQpLw?ZNqCdq=`a{k27Z9Fs|DCl9 z9sNZ>zrH9P$VXjTO&mc<-wK-8N}5#fl~?JLqyv(!A;{IkOQHXWepgRvx}31}tr^0a z2=U$G^jBIBOAxm7N`Bo=>v-PIuia@a&)aFeP4rrS^L9~vn78Y2bR7{ozg8GV?4+;p zdM)p_NE)MeHu);ujs44d5HUf0LCVZWET;cNK$|g!VS+v-5u68{YpwWC7<#!`W8I(f zDDD^3-u2RG=%20GS^7TT(YWviBDmtyT+$jF-~I?L_qs_2mpH`s)sfB&d+8k})5q~t zpkZ6a`cIkpp58rf9NnM3MH4ksefxTCgg||+^a?FJ3hxa5cL2q|M|d=kdI0E+==XaB zDE#X&{4luqxrayo$71gP8pD4Y!>7SZ@jHjT{J)xa@mFaSej)D%c<3(;ekJcuMcm)X z`=N;YYTh+>_x?BWel+4f#JlG1-u-^wwFlpa|5@Hsba3ANPvr*g-M?%?@iclWhzQ(X-pU#tbFf?#Hj&iLQs~^v3>M>Xsrr z#nOa0>89Vw0Z($G?Wn!$`_XfOT?n`ubCX!+Wq+1A3uDd)en~ij@>9N0<6kxu33?N_JmPyYWW(lZngj z+Q+88>7``%?S$pSP&ocwa z8qqCw@80PkbWtN3nH4;wtzZ!TM5i=+}^2O@4uX3_3>x~KSd*xn<8SVMWcfJO!#j*yO z$Z+?o)*BZR*;?)<_20=rNFJg z9$+w1;$G6ySclfOS?`;MJ@kARBY0Zhd3ihUEx^pka3lLrW<_cBJs4!?FYCV9bBRND z%}zkmbpvv<_9u>%D~%Y5~NSxm(^PG_my7OqyG|^0A>@qvtnr_3FKSLl{W%YK;|!vsq9dr{6^Ee zj`Y0)zw3eAEitP#)V{Q(mA9F2msR+_=1lRredONilf((XP5h7Zu5X=+wk5l5MoadI zq{7zsO?4MV3-o+Hmu~<=lOfGPfpuEama%0kdo$O_mRaxSd!4M6cGT=j+_5oKO^#^a z%wYA?ip!$bB}U2jXi z55Zes?(XvZ_K}Ik1F5f8Ka!WXzT1>uwkh#iS91N7qD*t`wr&5L2;-$ zH+-Bul zA+GJbaXVC-E0jw^e8U zns8J$e0ORh4Wz%D$VBqN*VJ{lb&u6%s=NZ0g@iV9#EmF}0so(jz}Xf&Dn# zi!FW{yemJByh5Mi$_;wyiR3nwop|Njtq)K8I+YHCQ|`zn>ETCh5MW4(v{JN+)`ES-AEiJ`euG!q&H{{z|?fFlb{IrDnCK>um_*1J>&}TJn<#&vy@*1}cjcrr3fh}g-vi`M~ z3>krY?rj?W5_v#lQzr8OW5ffNXSvDkZoZQvl@7((62Kq#9zg5gTWII>K~s-+&^^1fBi|-31yQtq%ewD^HmqzYItBq%(4WUur zsqsv-qRWKjhdQ+PQahG)!du@L{4c_)k6Akyvp&I?^@-|KW7a*CO^3o_%o-rAcFeN* z=_VYtiRhS>ARWG5=zTZ5_PFYp_@Hv%gZ*#dU;UZdi|$lY+S~JdXO8@|^Q}tpxRG*r z*7fhQZ=Gj(Ec;sjKD=XGZW-M8E(87hC+Oc@T`T6tmq+_|_A7Rh58sbQ>+w`}ZKOf{ z`<3`n`U1k!yW%%EZf|hmX>9R!v{BQyYpj)>c+r|5eGa$%y5&U%`xbcN`}`|-m!D&- z6KI?@>kio$8)t1(|`iSaraE;quhLw!!<=1E3yJXkH?*0FDS+y;Lyz#QETJd792nNe6@Y zo7Vb^-Ua1Hb0)pNf^;xYIZNQLx6`}5pUU0irqF*G&MHOk zeA?K5$uIcYr`j5zvisk;_epyg>ZZPTrwdE%-DwA|tPv#4T5SzwFN^$l)hrT0=GY@z@8JmjeB6Zp0O-@R8%2vXc5ly~2>xaqgy*Sap8f!P z8Kd;aBKTq)gh%OH+a}X5h~Ud`623AL{<>eCOusvVE3c&pE`B{6!M#sG?KP_NMm8_~ z&5_CUw8)4#oqM!yiqL0x|J@iq7{ggxsTtAltzmYrk>Bd~dm+u1Bjake44F5(!^pgv zJwn>))8C`b4c*-IS=+nh_BGW`(RBCqZ?cD%9Ntvkh|-8yxf)iQR?JV{Iy_*}J84C>lePjAJ^JpmQi0!SikV)%l7?grB{g~qzeR99`#J?LN48**rGtx6+67-91UW(I^MVVI$pqgJaLqOF zjkI||!g)%NaE>~hAwKAM6X6KrKkMKUK{o5G6#W0#dmAvjtMbtIzvm;F3n8E%GmNK|bNPRYCZgnB?-m4qBmb-!Q#jp^**eirD zMugP=W#OgiJ=DI-pwCgbPlrB2_@qw=pDYo=Cj-JWIBS@}T^W2dgWfNdo_S~^EDCAw zbwc>&5h3mIxRCaENeG^YglAALv=oMWqO||{x@rFvLfYT^p|*cXNc*oB(*B!;wEqqv z?Ow^?V?xS%Mo4*8A@%mYjeOaIt|y)aA$YFH-0L$qD1^Q{gz$&=VB`;VNa;M1!Dlk~ zYzFsba8yX$UJz2|OPPN)^M5(>_mI4F7!@uCPvMye2?jyit5*o#ON7gztC03uDWtth z!UFUV(q4l?+G|7zJzvP+fegNu!DVdRTmOL!4hx~f<3if&kP!NH9S?+li-q91Tu8p9 z3~m|c>)O)Fr_PSOG zzGWeJ?#|p#Wbg$c?e&t7_Ig!Fd#S_QUcDKdlfk(e?8{(YNP8_1(q4-*|3c=!B=cVZ z?7JK}A%q@_IS^sHoiC)_t`*X5>xJMyETr9b3u(8#LfY*KVF9@)JezhGo`d}bEc7j8 za9IYg$zVkY9rk7L72y)-_7>nf;S1q;;3tHR+lAn{M@YU;WN=JKyB!eHZij@lTL%*f z+pR}PyUi8SZr-D_-IfYzw-p&I2`O(t_%8TBNWFIoX}8CP;QNvgJP&2=xxbkD7lgFi zQX%cuFQna^OWAJgGdPgJjTzjO!OcS2tt_P7wrBo3GXLSs-?>-&NsJS~z7Nn2!WGb8 z_(9~M@ZHp(uGf}_?}fApSttHpFx@6;19$$Cwr=7I8O!p*WBGT4=49gKup|uzk|dLq z9gXE{-in=tEn+pjr_iTnrudlNc;dJatGgYmS#V+skeP@d ztUC?A$7$oG_(`u$Y{UU2jibFTgMeTjdxQFJ zAe6ceWYH4iNrPz2OM{qe&`$SX5byJTWG2QFwna~1i3X~IJS-R5zC2dDXRGO1jXQezB4^t2p5eSI zybqP{y@&mE&o6A@?9W!tCR#3bvxHensb8XKv12<-F_F#PP z=>Szv3hdo~5P$DjdOptcEPaHBwL{KtA9qG&b}#3LNi&=CN9mbu(k>wFA%0UZVXZMY zke;JxE2ry@>AB*o!#V9dXWatsrF-h_$uD!}@|xrF{PtgNxYC{sb1od*QMY*eF+HC9_@uYs%@Oz3~#*-55mSDndltYR-HqdMx5R|iE|}; zOgrl{z^$!+Rk^))OV#sgoq5jnl-88li~6$lv&{CwnyP1Sq~Xh+mnBd0_sq9vA`bD} zgJ>-i!j25b|4Eo@q@4E%bm|TM)d}&QTORxhb-Kg&;q5nY@IGj+oY4qcS#}R+!fbOy zG1BUq3EsP$ohv|-f_Gpm?F>QP`J!hzeT!-^@B(z=>?yPu;r%V>u-JO%S5edsSL= zk+dPxxA&HC{=;)11z;YU`Of8Lcq^X$p+|;qT$R*;Ckuun%G@*axt`iM=2D2iV`k{xdpUMF_A>0H*h{d>uoq)5!d{3iVlTkHANxKm>dnFTV&8*(HoLw&202MT_6&1Z`HmBK z`|gCcTyo-W&t0-7J*!Zu*%v-TU$~IIkjCe1vu6sGExdQB{Fz~Y=Z<<;_8y{d3Hn={ zhW#Dqo9GV{e+%Cmr#JsqEa%|y^ZZ-P;{fqO9?6&MKfyoT^&pOKgnBpIJ129p^8Spt z31MByHe|`R`imhS_xZPld^zU_Ij)*;kNyB>*n-T;qUI=6Q#X|ArZ z=8Jr~2l;eQkWYE;uJkZ=^(3pRx!&8Wx#Zefu6O+~<5;zw@1Ep(n)D+Ra|-vIKzMJ` z>zj$lsHF0svXL^rPk!G=mW^~3wtnAph~m?X%Xh5vVQ~2`K~_%Ta!6VE&&0*wKaDhi zAEwcOz6-6PLEdrs%e-Mr+d=oavpuW5j z$;~e7`|qspXLyS{~b}a)q>km-7AT zIa>Ni_kG!0p?f&@8F~J*&?n0OB58V)uhuUxZBf2oIe~oW-b8%Ijg48l8)@U_bmtI1 z^6fjQOBZ>Zm6b1T-i}{K#@C!FJkc_`f_qhUf$?}tn)uv1vdpU{&X69^Am}B~z&cIW ztLPJsf%JtQtmhEtlIL+DuMbb8?N#}P=L*A}FmU(}lsl(v{?|+(C%e6e;`iTj*4=V) z@=0kMXMeXr_if%+;O*Nx_`ZX4)ZBmIURF>3&iWzFz>6dDinpG>O1!IU|3n_wa+hHa zIH;rDoZT&$Q{2XHIH&!UL!05;rsKc7)OKZc_6gwha`eyouKxY_{~7)r;Baj3(73qW z{SW{2S0AH3&3<>{_X6==&c^j>Hm=(~pKEGY=uvx)c+X_-|3K$M(59F_K=Ttihlk!^y8iU z9$Xv0?S|cn^`60M;7XwP3r3S9`2=t;a0ixgIk}ne4cONGc6H!fIelNceHcBZl;Rlh zWRHCw?dW%Kvlq{}(=A^BPxQUhUfi?t>HUoD&`Vy4b(}>UX{*~hpzDONj{Y=$(tjts zv#qYKX}r5kPrGz5=EOYU?b)x=-eH^|z4}}il@hdz2%=m zcj%P#j11SEr?84Mk-fj{ozPImaGF2wxN_$-yuqBlh0k{_m%pd_WcD6@e3#jBE#Eh2 zRHvgM&YRWAH(dg4o9g7d?9FxZ4f{8$)8`IT zzI8f@vaQqXj&!|*&!1^p&UZL1US$GyQTU0x@Uv(?Kf{qAFq%wz0+E}H@2?!y zn9Qww@eIUUfav_0L79r50nQBRjhmWWf-W0m6Ju{9y)r8`>AS6uMJM^A8z;K+plW#q zzF*+mz4%!E6xwNe-~CKYEM7#_|bq|#`?_2Ge)u*DsZAo$`+e0e2o8|#s75&IQR8u$@5 zfa8$^JR0W>LT=OFRB_|jM-=%zy7kxdOLP3ZuM5k5iZYbj*j`V6lQR7s%J}<~wu5`(>oTaUat~lwH^OCa=6+T;oyIdd?xlFv z#yy5tg!pe_Ox6F93|56_uqPxWUI#M8eCGn)yHQ_r?*=6&#H%n_HlM|GIpLlR_LD|; zRY-nu&$fWZCEm+~gkPJ%$A!eJX0Qw1*S$zcdA{i@KC3gRY!k0d87ybeJy-pAWN>E& zcV%#Q29IxvQDGhd$w+Q=gE=eu+O?l~ITn$y6wg>Y@@s<$JG|l-f!W~V-kEWf5U-cJ`Y!Al0=>;(}p!r!I z>v92_ujW3 zl2a^s`W{T4JLAW=b_~{i`P-2;mD#>E=zYMx;+N{KGv_MIXZl%l-n(TyDOD$uGV`rr z);I>3d-dMO{QSc4&TRb|mOqFNcQB82P4fd-$~;K@59Uh5&wkg!xtQzg&fCl*tPOrB z{jH#QuRO{3k5`-z7SeP{;jTJuaH9FlAbm)~TQ^;W`|7TVzysZF=>L|H^xjopPTUT{ zy#Kq>ITQDPh2HE<$Uk9jI48^de$tumTyRJR?y7%` z^m9pPTz^w8emfVA-`*wmK0A4`wgjXe#t(0S5bugC&py^sli|DS%gEEUzBvCipT1K1 zZbEM!{PJ6=*VH}jxnzS5W6nR({AR_iPBvd}+9TBYcaDskIfMPk*I`OnuS! zvOb7Edo(Y8mT$(T?ymuR^LKXUimV6Y_FbrJfl1MI+e*#fdh$K2oAE0*6~%bIg>@-mzJ;+Rgld=0>Ff7qe8^k6 z)PEmoy6N{b`2ORNzJCIl2`#D<-zVQtK60!pzjbz3{;77$gLd^lB5XBvK8?7(|MffM zoq)UVd(o8PeU(Xm%WV^Di>8V668G>v5q`>n9>x=K9}i{!GWXg!ZB*EHLSJ#X{*d+R zy^}Yye4At-bn=1$5{sm+SCG zpwR-LG&&0?jXoFZ@nzPa?+odAn}|1sYy;Mi$*+w2<$m5TrtElzV2t(Go^nc8<#$){ zLDJj5@8n)l*0-s5S8`Q&qiqAYbm5O&s#Qp9ojyUnfj=ncM!t7YMo&{2uJIbr{7iRa zw!Yny+*x-`x*h*6{EZ{z&VQ|outxcOx6*4aG+RO1$P?BtNw(E5!>^-wZ~YSBOZ2mQ z=zsqfYrp#%FuWPl&zd1+k|vay=S`)Ay%F0#DW&g5DPs2 z!b{TeN;ygY3*$~Vex=-Vt2XY2JH z#?Marr+ak1ov{OVtf%cTEC1&8M8|w_N;mmh=nrN2Qks}=@7;BD6?BvIZ4%{@x(OR& zK{rwE#j$rJdq1mn>@}Yb;z^SZaO#9!;dk+h;79*ve0)wCMm&@`%BC*g>L87>yNmHE zyg`D0Y!CNSJtN$wXoKCm?@$cei82gPuw=f@MTDP=q=F4q_JHCD!sQ%;G4CzGQnf*0zQfHx0 zPq-fqEhac)6Lc43A~GT6htCo(>PJ=df_!o~{pf47(bwwFWctI%Vf2U1v&=>6sAwYbpmhPX;~TNDlrm$ib8@-vqx@4i55u)nNUGAZxPU zWu)KDW&b(g503HMx!+OL<*;&)cpsLI;9|b192~5FfPAOV|M-nb-T^dk&jLm{Xub6d za&T||_|r{t@PQ`WQaL#2oOwzPf`7o3a^-Wf(R2FrWzsT7>+X20lxtTK2bjA@U^DR@3?nhkzX1<$n3^A^<-ghdFz{$o`HlJE-imtg zo65t!j3#@_sXT0^iTF()7gC&#L>@NNB+mW*fU*uR4+k6aklzqF*oQDWfZW@c*$U9L zb8P|p8uCxuDi0SRr~f>Ue9O-6+9oMKqf6#_8~6Om?4G1N*FE{Uq*w1r^3`zGw=d5d zx9F(8*_;$JJvX6GC+R+ZFKOg&*1vL|$t?E67sQM60)G?aAZ1$~ycW)#{#EAoe5wBG zD2Dwt{_*!jmWoGHzP{7w`;5w5sv6#C^lY+a#ko!}>V?Ghe@jrV$6fdq9-2;Z04; zetKBqTt%ukc`w0uYgVB&{`|cJIHk!PZm-=vfGIQeUV{C=z3TZuzcTb>yE}9Oq#yZ)cH=I@=a)U>u=XP|!!wbGx>9E*U5+j|%PDbpZq@H&#c z_Z?G-!=40sQp5D}g`U$ey1&nYH^3N z2$>{baDC!e<92*{!XS9vw$a}yi6<1Mo<>OHv$vn73}+L9UwU34e1^UG@a3t7@DYv$ z#G?!PFg~O|iy7|HbJc%CdZ3`?6@m1vg!E+u_x&4h6`1VEUodDs2{A33=4TW#w9+FF zhrQw7D82Eco6RpQc$y+DD6P))(-pc}UQK9z;$Z4fhWLe(9)3*wQPNfMd4fi81EJ;< zAdMp!E$=qG{-FhvAMra4+3}FHog2q5F8KLFq9{Bao)^BIz9M8pSUuEp7|zo@7qLgkqVnUycW_5j zNXHu!o}HcZIEVhD`&{0FC^aiLdpwoEa2Xp zh40G3M>04nd>8#!NO`Xa$+wsB*L;=;$+tgqJI=SW343h@OF|UO)xx6~$1?x*ng2lM zzcKSyXE6Te%)gxZ4`y(C7QQ13U&@&5+Y2i*xK7B0m(7`bhwwe@4+)`vc?J;r4GZ6k zWq9*0@Dkzs$R~4e&R}?J;r)#Nx=}nH6Bd(XL`eGZ)&lLN{$age%itXJ3-1nxHx{7R zO5GPh2O)I#T%YZ_QwV*-TL`CdHi0~(ufMr%{1rmtKPH6UUC>5;^0!W{Pf_@G;tAoW z)k63wzJ0J;H~57&5a6c~-IO~jgrCA&2+-pd-L&sq+Q{(5Lh#xpq}(TjwDSu>@Od@! zpWBoAFA)-Nxe)xF(L6@%iQ^+ag%>|`+)Ejx+%XT1TXb7>AOCI z143~2H&*4VO_{%MBIsYv{0B4t?U}#lbBynAv6`R1#VYjdqv^uA9m20+(MUYE3&FD@ zycjwP&tyI+q`i7Mhhcl1FQh$|3*SzA3(o*w;bQU^l5UUiEc&udxG3i&`W7-yyi9LAL`$+Tb0fBc+1Qkq9>&$cs?*MA zy-~a+#4}BEez1STMEnZ)G~@Rwv@7B#exTXFk0uED(KNyA2EStVEigaJ`$z`OSMw6_ zn#(ng_PPuLg6TLRex=YjnhjX$Fc2L4GoCbvCdQ+w8+A489mM;5j0BAFgl$d!zI8DI z@~}jLmmBsk?S1kH>W;*O=0KBkbQ6Ju{S?cs_aMSrc-7^U-XL zCr4hUjr;b{o_&AshNZu|@wcwkvF_!X&mq3$Gxv+TIP;a1Dz#znw2(&|Wq2=c4(s99 zvp?%yWE%0{ZtP0#m);Cqi(P~L1okHEI_!>}Rl_#@>!SAG;oFnuAzGO1QI(DsgZb_G0Ws*bA{m>;+iE zP(eakMA#AE-94SS@4zyw{EOV(rG3L5HmrFNQN})ha_}u!*ybQ?eUPqq5OH}B5qyyT z!M(%eU^_Gs_jcCn!df3|lX3mfwjbtBuKVmeJYUh|-pJbHQLH_pvUS_OF&>(0xRc9$ zD)udS(;%!D4%O%24*9dr$-S#@Ki;Dnhljp1ld5*fLL47!{5`G&_+_}HV8Mm+0KZ-wRV*=lAC5QC-UMsF_tyE{n(*6Q_UGT^xB2$Y|1;KMubQY(RyUA6mlIv*9WD%wL#v6+ zy{B;Y;@SKYed2r4@OH``CST4mObqnS5AkFBoe<+w-tQ4V58mvN|Fdzu zO(*&IA1-n9-R4|o$&^q)OjxP=HO?0TGv&ipOewA#CIXNczjcG zM}1{$d$8AzDt6fRpr1F|qukUUpR+xRw#UYa0_poWBNf}2`^%mQ4QHn=d4qhrn)2;z z%D2sY!8zA;+XSjwcW2M)@kQX<+DDpcdJn)?%H3ckHQH@!dglGbxu^6Jri z%X`SS?p%@mU)p-0nEsxgdrh&9@<3Zim-Y$jz#hzWZ*+ zkhYlzh|}PKzu>zs!@rPAg?GJ{v+|}cm59CLE3vl{$JdL zkFxBKLY~uc`~&tJq^L!VDleMUX9bsxoXFjt}v_ouQo@G$jmhpwK7>MT@h>!_pt z)?GP!8GJTN9^o8f2j4UJJ_<;2LC$*i`qre#S*iXB-dwrMHVEgjFXIkq5!vT?Z1T!w zW#&ulm6oUWgFJ&ZFmP|(cW2P)x|OZ)Au=V~qb8lWxX+ySxexn$X)j8@@TSSOKRn>s zYQy@5$-6Rj-q^f4DxMqS_v{MFY~Fgv;!1-9&^K4O1N_48T-}xCpXv_w?K(2pvg28r z5RRT=*&E@rSpKASMTbzg7$_kt%ft1q66d-4D>?Lt?zVxn{?a4lQ6bLo(6}@w?^;qR zH}H}^J>a~VGk@LOD@WgWQQoz04hG&;A4>VqJ~vpnvmuMNxCBlZztb>2x01@J&AoSq zwB6twXw;kjhL-Q|yzlfIzB{*Y|L@H@bL)58dbjN5`=MO#4HbX4ps&~SXcwbW`aaDK zl|lL)<^FC`sQfNrh}^3JgLh7-utUjL*-pe}Ce3+NK@) zad!2&r{JM-)>fSFdd@Mt83*2un0N`f68Vg~+pps@bcMiYv#5)82s{FxZ7giBdrn|Q zlMHCaskxk(|C8kJIj+8@G@rrU+vNUD+{=*<$_VFC@~{2WGtBa6u8iCr$au9NuhB>Q zt@DRNA7wlaZS*hFM{PU!J?8oURv$e90al={Z)RHdebcGaD&E8ASI}7)-!QN-Nq9uJ z@$DPHPOtL%tRe8{@8nM-@!|G;oy$&{Tv+?iZTq+{N#{-$>k&*YVM(IN%nWnkskTh_ ziFL2W#`MFD6uA(8XOsI(zI7jBFpKeh8#gt%1erE%ADQ_`(_OE$eAjbRlj6Ip$!-07 zQ#XcR#77s(*egKG`ylXD+#?92Sbp;zY}0!WF*UicAEx_dJdEFLeCJ+zO_|O>2i@pM z#D?*kOnWl3C4K|Z5bH?xWp8WBua|Georcjp)NrNiTKBiOf2YO$hb``BTiicvasQ;n z{nst-e`s+Z*F-Y$o7>`E(BggvZrj(m?lZn0x9zzkbG!Evjd55nXc*ns;~pixd}R91 zwuEnOaicUfjOmA4+?5vh!!7RLYjHo-;(n>cjiTHzmKXL#qoiAKeG)#ywpQE(O?|?a zRQegV;ik4mQ_rv?ntp~&vh*|EHH#ad!LM<9J9{lY+n#Ie-ZgJ6x)&BU>lCo=S%%%Q z;B)i!pIp-{mnWp7`JS=<+`;D8SB$0Z&Zw6cKaZQI+{+_HLOdJBDO zuarS(<4rfO*|2u?_37RA=~cdE1DlFmEWdTls$W@q>xP>HLZQ`C+158Nm9gFxMkh=9 z=Cjr=JO%y(>c0Z{)VF}Of8j#b(1j>p$}RUSUJx!aGLXfia2Fg{*8O(+jF839u-At` ze@*w9>~S!8Fdz5s+{4%WK};RiDRUPPDqEEbZ_>dZZuxkrWM^O}%+dS?K^>wMt? z_E3Zik)^^@*&`7W{)&+JbLpejH|*I_{x!M@U!Ot8gmxzF?%}o5QOcQnFmrFu+{*rT z7Px#{*1ecVg=c5)sIws52QA%0StLYBULj=SeXWqakg$ih2>R;=?>$0<#}h*0KO;Ps zy#^r*TrXw*c_wCthdn;<->92teE?tO-n@1zhqsDzq6 z+@)VcdAe;sA#^ASiN8(=9^r01c$71L*d^?dK$fI!ZmQF^osi0J_g3(l+EbzJ^SY_? zk(!f>yO6rHE+d2@}!8>xHmLPA2F)wjVF$HrUlLpbmc&&RW+lcr17zr5T2_b*ObREMA3I$mFJgoJAEnl~n z;vVKtVhPxn&Ru8ud|^Kbgz@VVy{3i)8(d@rRx<;Q7zDa^H*pK^vaI|rQ4&I0F> zbdAM1uxEeWJ8?aYw(WLbq;(&~eB%CyY281GdBnYv|HhoqJES2kb3o^VH2ZVjFGZYv zoB3||jZMVMi{3+BKv~{V?ah}v5gFl3aD3y+`>e#{{%P`JneRTr+n6&Z+1fyeR}ANJ z*;Bc40yYfud3e3Mx7WH{IRQWN7G(NOStq)#(bLNw4|Zy;Z;&@Od6SPb(Xnjb(2U=A zkPm$p%5wgid3;)L?&9Su?YyPg?f#JY<_?2bd`pbP{J9R#y-?m*mR>P0zqwZy&KLJ2 z_aFFA=EoY{6Tp9|wKwsXj-RBhVO{QRCf|$eZP2K(-sale|DsN=&HZ0M>+CvQE-ACV z749wG7yUeo?ixcEZGhBve*?U)oCxcK{8lp}n=J&^0pNqS($qSDYyGZSxgHSjuN>yy z`R#zxd#udocOP-S3zIaaJ1j2Z@tJmPJfLx zEsg+j*Zi`yAI3FQWy;^fKb8~Q>2GK!*Khw?zJ}?J#H_t({hIvhHMgz0^`?Q18*csi zx=3RbNvU_ZbrBk@$)xKRdgQUr`%z`WcYo$au7<(V`KaN@$#BjOfZ<_Z{_i6!HR;=O z>tT#dco-j5HF+8L`pm5^(2tPWn7NC2>!bTI zU^K>mB07M&pKNjesKw3xYQq?x&e$-z!#o@XBm7$1+SOqO4hYj?V3@rzBj+^S!n`kHDBS8J11v+;K=T(_oxrWh)f*sDQ z!uZ$HE`2EG>wqVn#2hAbSA==y8p3(xBYYd_h4V=-BwY`D?cA?VNW3LN;w={vuOx(F z*9nPV7M{XrDJ1?QLgGImB>tq3cwHSp%AYGF-a6n(~;N0nRmz@@#nfTc{cj


shIiqBHa8IKZm4<-(`H8U!1#4 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 17if<8Ybal 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�QR3SnuLUr? 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 z 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�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%0A#l-p`cJ09hrze- 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�?Oi!}7 z-D?>9nwQGqhx+o+=QnzNd>^}ee?{l)UDDo=9q^KarOI~l^=NamH(`h}A&f$4v#)%r zEV>DQ`xnmjbndqUyC*(%u4nR2UMAvqaKZ#H4i6IWK=mQxz!U2Agi=s9RJR9bZ}8l~ z9kj8XzIZaYe52RJ_b_SMnsdDraV&7q8;;#%(&&(O)z{Cu4>!VS_XUOY;jDd4X9p2`k-PVOt!$%NUG#t&)RT5#bBZGgNCCn+!Lc-$HE z66vpaj!WCg=2F&z z)m!H6^b>?PDYM=iCcZl}oBc#)??}gtelL~gN17Av6fc&U>KPddOyT#*OK2CxelPCe z&Sm@*_KwqEN%37etyF0qDtgWMb?`e8ySQ7dOyv9b&*zLham5|N%b)EvIz{6@!5!q% zX9v8zL%p1^>8Rtb^dy7R*-i8}oBY!<@#;R(7SAm9PUD?}gM8C}-@A{z=-mVQ_cJ}{ z4%<7S!_FontM7!*lGUM{7CmnUyw>LK@H2!Thwm=mlQTPf<>df&t>D9iKNTLtbEQg= z@07c#+CF2Qmz@2;(N1u8M$s!fJC0`gzLPMwdz<~nA!Li!Uu`PUwy~4^c^UUZ#E&j4 zf0BEXe_H+~Kb^VBZ_eH1$2+-mI(U=c*s;FyF6T!qqNgOTo6$hWB&GxRV zG!Rxi&5yd%kh`m*`lB+Muwz3dQMw5}anCTn&AWSOv%iTn$DR#jd=fuS;i+nK&wZ7H zduT5?(n8y5B%IhF;S*OAVa2l0Vc(pm%@T$KA0+?9*KOhfZpY&EPxCfZh9>}Ry_Bp@ z(MBfFMiK?;@B00fEc|mw+xE*gcn;skE~O1*;a85Zp1cn`+AeM5SPN~;-CrqEZ#svN zyXl?&!yoGRjv?c=<~Mq3XOjKd0JBdEzD9 zR>F9=v)_C4D$+~;CjJbQZpnz0`vCpqlU}??J0vZSkq_}f`Ra3b`nyT%TvX}54_{;|H;8Xi6+eu?e<(OW_UA3>%hSzz`gf-U*WbeU7;`#$*PJuQ}8BL^& zl6lINd^+SMO;|?eE{ETx`#j0l*a7nk74ng`NIf!fhbW>kH?6A4m>1pE%;56w+8ao3T;OY z-q1I<0XxX|P>%G%qq$}AXB+u{3R<;W`J)bh>pc3-pr2A%_K-Fs4=lf)8KPb0DNoWh zJdv>g@rUsZUrPKLWD((N{GoDJJ$N9I@HFOl4!?4HmU56k(H#6d{T+51PdYAXfPWg- zD4YlAZ(hbOQF>uy>R0Y%9CWXjb}y|q7wP{>q_d2?bR}!=tsJB+hW$mdM1PU(Kvqrh zlEwA(g`M7>`&Iw$hNmuev^U1qN!#}{7K@%k-y%2Dzhn|s(=T1pPv5a%WP64-@lPl2 zmE1m<-idtX&RVA5n@IjtKI#Lv<5qSy9ZjkKDQ-e$Z}J!G-X(K@aQv@6B@dm0|75n` z^Pmm;9|jG+(RaZ6Ja=ktF;uD);1l-?nq!&uRrO&p>To<$^oG+fP*%>pKXld;_I=)I z?#)%zZ-xIO_f`Lg-m9js7|y)v|7H1A#^viPKgqu8|G4xjZSQgVjV<(Bulg-7lm4gs zE6Kf^DzD()oFAm$-DG5SviP|FQxE#WSE_$SILUeIRli4!3@$LngYSxS(oy7j`Bnco zvd0O#TZ`d2N};{b}FXoIFDnOD3mJay_@H_&Me+e4f?`a8W|@P{t#@Dc^axP130f1lpqwYl)*GU6g%^NPepyOsQq%vIap z7GLKbJez#Skw*>tD;;^pG?cl6o_D^-@|19_vquhGgNGasQ`AExgzb;hADOEYIA{8@ypygqS(#+|&! zL|B@;X{;J&{E%SmD_nJ9$8Vl%XnKp}e~`D6(xhu}r=KNnkH%sib#SDc@8JP>1Rry0 zWDPW7I9tyN%Jn#PQ2ckD$C+n5;5EU2jqkT1>os4T=Fo2tXIt)Ze`~{8-elY~Pu~hp zCI63S@r&Do%qO=}S0po+<*0Xr+u$-5&wQ=gMjBfNkv|E_etV}kd>OKqv>haEVL2q= zgW6|ni7?yYe};H9*1veFr#W>F|EVnP&fP{mg0GpUss|}IwYR9ucCz%Xq+vdB#&S=3 z8n0>m6Y_rt^D>P?!ZAp*i_A{bUTJ@7bFsYqKj}SjN2ix0O$qnq5%oEp?d!dy$FDra zn}lp`an~EUt#6IJ_U`S+I~(1aaHMUz>j1B`L863UZtEx z&g2@rNrNe`VelU6XCwZC@v_Fod%eev%xuactI922x&W`sn~3)b z3rWWW^4sXBpX9DGZ8)Ca;Y}{nm*Bq7eH{4JYD*^JHD)>zzw%TqF?+lr{IBS+TJ4kmM>Fy?Ng4;=_ z;Bmo8oSkh&N5yGj>fRoH5E6o{aaH>(>GzEKW6Wku{eI5^*6_9eq5TB;7oB)~mc_$T z?T&IH%r#sa|Roi#b+0V4}lq0Vk#>tKojK?)5@2s5% z9SGKy&@JOgCxUa$8Oh+S=rf>Cr1;jmogD;yoUrEOZ+<#BOWMLbLSbDxiTOlM>mS8x zD{;9!1AYfT=464cg+gg$&TnbXvCW@_eU@L2-|_rqMqfe_`{UU_Ugn601emybX7BQQ z&^4iRt8;D|s7kL3@88zmay`y_f+_qe-TGEq=64CdW`wva9K}9!GGWkP@K);mp5hmc zeu^`M3wi?{Bj$uDdIU-4pa|1-4*ff06HH;@7TA%U(W4ftb&fO96B(%!nf8R zvSHHi!m}`rM*6n}Nqg?Lz*xe@?V$JTFVXFzcoip-ulb-e$HXVyDkeVrZmGf(9xF57 zuryg{a(iw0)zRg8c5Cek+HS_&W7GZ@^gr{ckkd|_IFU9LGn*~Lcg^*>HP0)NM#h!L z=xkb4mN$#4i8A@2vCO za}b>3I#>tpX(oCLe8=0zI&qA=lxHmV60v^IiOnOe zypf#gf1dSD@6FSBH-IsR_@TFKvt8@_$Bl?sFmfY0VZ7=t-1xPn9fW%4-Up9<1TTjVYyYJYJx0{27qoWY;N)1#dEWnD=n)dHS_ki`PN1y+1G;K7 zUsM~q6u#g29qJD0*ZU2f+jjWVdRQm#)>=99J?OfUJNyahc5mk49sZn^o2oO5%+UtL z7uIHo=V12oic{?LCV11m&el!-w2n=FrfZWQj#ZVXHgwu_4Q%pf9^PczX>J6u)g00c z+qQGux!lZUm9`jqoIXn057Qp`uGM+*X9jIj^HK3vWfStO1pT?Vxzz0#d5t-xe&q6l z4bD{+Am8YW>e}+2t2CzMjaT^-Zxml1zT8P%31`<4*-LMZ2{%U^Rt9P8U6W1Nw>hk% z)a28(BW=Vlow~0lxNq@~Cr*@roA~_`zlLC&Zd#JTUn?*PB&`1M)2atOH+ zoC&#V1gkSizc~j$r69dy?aceSqyd@={0ZtA{D@_!ci1IKYk_{^0DdK_dXZJJlIlM5 z#=(G|xpg&x-!yGXYa8$=sDEkhIheeK_4kGm&c6qGWYM7{`8M-2yZo8&JGFdc7e;jMj;=wtcP$b#fRjrXQ6qF+)uUK@9s zpFT5?laeuWCatR;%x5b*F5czmySMs{#MuOIOgN-Pb;5B=u@jlotJ>$GBR{h_OqUz* zGwR17Zq2Ryoik?=kLKHw(Q|&QpM9CjsCzvl^D>)HM|QnuFX2yy zX7abFYtTrB&6(a`z4Qb3Rg<*ywlsT9Irf&36CHz;OA&riUh$k{1m^=vc5e&)Q@bgL z1HU<{Un)$;6WFKFS1W!;OC(d75Z7R@*6gE~H(;K}6@kGPB7JsS-+7FA` ze-`^4ld0FlrTP<%YpzWL>vm&g_@&lfX`?RHWcV!X=fc`7kZnk zbKza1yUA;Dkl~rX^<(+F(6f9U{c-692iYn5k(u+RcunZc=PuLdZrZJt|jys<=Yn4jh9ZH`qw^(t0^%`WNbi}#2 zApP3!pH|`wz(;qzC+3#UAP?z$NB?_fz65`~PglEc-{n6s>v>OQ_XF03F8%Ktt10%5 zF8xj~Yx)1>Xh-iOT4!N>{RzK?^j3H+Wc-bU+pf%Urszt@~3-XP8%#!D|ykBQqQZnyMc6aIhO z`t8MUPdZ3*G~T$!WTrvZG|Fjv%UeKTLdoq+k&81sB$)VAHDmQXBZ9wB9)%DwuS!nn4hM;r@!}N z7xR_RIzgLDWN34?zQ>S8dMF zjeS&Z+Vl7_^wZ!GeaMJ-6!Pv5k$HQp&dS}u4uzREV+J#h6`jHk=u0Di_K(t`9E{my z*U`Gs*SO84zfI5wkfwgMnMsgHQGCN$;PWtd4&Jd-bQ{Q#37mu+J|-M{}O~k}Xx-1Gl-smOnjfa@LRyD(ne;Ih=LDrq(=E#?;Y@%3JxDzj7M61TNkRZ*_M1m%$IcTlw7a6DJyxKqUg+7 z{5tqaZ_G4)aniAkpU&D3^Lv(`)`dIyF=ln17H36TBmWYlEv3T>KY(oN|_q1BEGkBKX`0eg=3h;{Su-JrR65xO5}% zXZ&9RuDTH7Iq-Z0hpcACb02Oo{zId^iQDV&Ep_-4b@(^y@E7awLv{Gy)#0bt>N;|t z_&e(GkJaH<)Zt6&@PAi_-(814Qit!Z!~a7a{z4tTuMYot9sW0Uc$~f^G|JzkI{bZg zxcZ{di2lMld}bX!rw+fS4qpnMp?xVV?O(0|S9??a5$=q3IvtA~ZfdJ1;_@PjDy1)B z;VQb7g-%DWW9&mMfCga$xNq&6z=2EL(+i7M_f5Z`h6f*O=);1qo4=s_;ZP4}CQ!y{ z0xGOovX+ZQB}t2K{}goUv!_)pKTd2jNL)WBm@VRm>PAGwKQ#E?l%^(ap;j_M)oumL+we ztzNrw;i{F3>#e0~aq(Ibx3X^`2^|}B@QSKo?Cfic;Hss)i@sp)`xe#`(C-tx6g^cIf5YM_2b2-mL?IWL|p+(!1pnmZ17jLG_J-(i0>&Aoyv*WhfwhU3Ut0 zGyWI+Eyh}c&>gdQsu7&{(t_}*O_2O{3eFDZ3G$~gmhzFaQ2Km?FSAg3eS{Y*?6dF= z3pMAE`+$Yd0i|Eg=uc#EA<0}t`u17{bL3NSjy=l(fAj{4^zHQtUe4S^kaTYsq&!O& z-z`W!o)IM7uM1KRMt>slxePp{ziy@={MjQ&JY_-RIW9=J0~3IsBp$)J)GtB!cG$u< zEu75UO!k_m3CQ|CMl+u@CfUS5!{eJU=6OPgA2OO|? z$--d^U$-#Hc^1XjMu#SUSqqm5!molL@eT-HLHP?3Z&?sN?GvQD4+>J=N3FZjzejlP zyRpBNdJ-S2iz0_}u4_J7&g_|tgX5nrN_gMI}Am?<3EdGpz z&stcvaIb|gTe#1{VG9pfD1CiO*C7i%3lCd()WX*-JZ7QM=ZC-J7IzqnC|^lI>{AxD zSeUl3)k5h36n&c@lK{;n5+6Y5Vd8ufgcE;XFy4+&2*&Pl;-Z+H_?dy6jZ+uLYd#1e zBF<^F9=d?t#1k6DCqtCxTu)XAX3zU+8^|0*CI6zMsX1p^9Pwt%9g(nPAzGOa@e_TN zZdn+abptp`kNiaGG&c%O=p};%>~ONy;n1aN+yvprH=uiF@H*k+N&nSS#chUvea^PbTXQaMBz4@2I1o-?e?hF`eT zDr*I^IItYYf3;PyJldwC-oi3(w{&5ux}rqZO;+ddi?-EM(M_{{!ZstileHPu&oB*q zjyYp0Jan7GH)*T28MU?Xw3&_2UCS>tVR(Yk5;+83ilBl}?H`s;49T2_5ayL~6GwMOfRYB57OCtKreSZe|cwSBpdno(U*Dj%)=O#$jV z#7Ak>E=JFO2lmL+h#Ak?*oBt98>qFCPeuGI&V_Zjl|>OoRm0z+DJpbf zF=5<_qLhX7Y%z*sGjXnxd23c*~dv zyQm3E{w-skC=uTwo#dvzL%FQ+iOVlEVfr#yM8`bcco5H&zF#%w*^YY~ztAW=#aBP( zc?P?a$#2QwFs*z#lA}=*x~;&HBo#t8(TzubHxa;{p(kJ%o?ujd4`7kur!kN6t$Ya9 zk9jl)uO$NaFgzo_S1i9dJb?aoW1b5$A04;+*1Qo@li$+&Bi+N=Bkag=rYm>9=di!& zIN^C|oj30}BgVN%>``sL;g>Tx=j;-Q{Pl3wyobF;b9Ost_j2u-b4Gq6(ALg>>pMKR zs5c=Mr}ngE*P7!DdnPz1t$jEwL7 z&H)8yyjvr7dJj{3qe;#$E8Zmgs|DgvUc+yb9^U&zV%fb|@{W5eyh!IayoWdDYj3rS zR%f;qWx#YgG}BjnPE z(pVNTN6#SqW4z1CnMcmxa1IfF3F=qq_t?5`r&_qP#VBn=-#W{za|cP6efSKz zUuJ*%Xd7XiEMCT+%}E=t@>L(N<9LQwr}C@&VIfaWwTE<=8CVD1YKz zn)3WL&pA#ye);vxJK%Q2oa~-iIQEzco%TsJ#_y{6iJ3k`Zh;Bh)#gH6eN4$>lBn{p zdlZ2Q{A=7C;&M;cgm>UB9o$j(1rc1~Yb`bE9%7R8=UF7^yOPew!Sx;DEJ4-A^xBtP z3a&6i_qBY7eTLk>3@$kmy7O5xhK%DRUXe+|EucUzXY!G=&|lv9}kWAv>ROI(Z#po{|5MW z@NSF$Dfl69$sxHv4?dY{7~%)OHK&1THOC75pe4!bZnw__?dpKryNIO=+xRtG?TC8l8jHNxrepF=3 zY0j0O{M40m7NUiCId5W(^=-GCOg!4cipFF8$vT=~Ct@#uK_bKLm$4}h7#I4`7G1!3 zyVJ=wVP9Q>OxDfDlMN}H1!}9xSOwET^EqZ4GoTN4P1TO{?#W~eRd2NZsrsdNz%(Ay z`yh7+G9ce1=u)SEqI*_2bO!{XJ0|GTrm07I|H<1!?LRyB4_r$`u~A!=jl=PWLR;Z8hiOf3JROYu9);$aZagdf<; zh*qY4<RMX=uWDGg!!vpp58XOU=klKeldaVarkPl0{7z@29ZDN!7#{(T!{FK!UCh zJpse;1Sx`=$wTL1p<%jsrhKINiBHiaWf`P;VIa7LpQf3vUAg=YJ9&7!xx)oBW{&&a zk_ExSU2X25wIAK_`R!j^Va`C#ENnLVWUf4)^Oi%Uk%>j=9pj!)cC+pPjZDsOX1u!D z++Wk!=w*9ellv*$`$uP18-8LBntMw-dr6%`=!dk zhJBS|F85wIuNrr9F}84;`NssLHt@GIW);&L^mGQ9d37I<& z>2h#qM($(m&H37JY#fAjD)$&;&foq8x)1LE_R&=OF3)wBRl~f9$4>F?@=M%FD>Fwp z=*)wEFV%R<8Q3#rKis&la&X$dn*G_X#4wH13xB zHbFY3r!D@nAdOx1Fk!1q9AT$^OHk<(9IrXqcw%%u7KE#?>clW- zp3pccYDm5@_2Y?C(RD#BKVe@iI>i|pr^Y9uC8>r#O5Z2>DZFss zH%EBWz(b?(^ItUjEws>B@^3eEQ6n0eRs6_9!65t--FU_^e*xW> zLr=gkJi%yGdS_}FOUW$F>6MQ(zxr{E3p1i~)G$0XtcADTx@Npe0@x!_}6 zM)#9Dj`Kx3)Y(P$+FI!S%$^2%2bgP}arw`$sHUVJBUehGo9PVXnc3sH{O8>BA7+lW z?%PM%cdJZ$H+T8c!5)i)o*#6pG)pJQGUkQvVveZ!;JY+$bY2O*^V+}5jUem3#az_T zEVJ`S(Mm7-#ETQvc=I)8o*Z-fMiid*P~x8{B}5}#QOksK1c-#Vy#UJuy;^DTH^39tYqkLdq zoN%#I8fFt`?w(9+Y4J?yPQo|cfer1o zpQU+ynBR~Gx)=M>X)k?;k@}CtgBF!PdqW+>E5FgW@gMsIbM7eJHY%Ft+-A=z3%$*& z>H!jr5jblI&R(B=wxj!;;QnODPmcIE5uIVQ#tL-z zI++884tukfqVS4!;f+u~!|*(Nua&*i*Hi}@+|m5cQ{F5d=5H2u;*ab@yNdN2+M9Hf zo>xztxL5g78eS&vck;{fQ-8nuX6{t+(`4%MPtBWyl{5FVR~UFc-_uu{=QZCMXNOjq zTbi6#nK8ZVUw#CzHWpW2-+nBJw27Eg?Zqvl9R()F96o9q%v@$g#9iZjtvd%M<}kf9 z7JtAM{zO)WsRfpeJhpRq^M)7Y75uoq~`6(@L0F|C6 zfuWK6o)7^F|D!tmnL7Mib@+>Q_&#uzU&`kH)jIe8R);HHp;7$*5F$X~x|10i;bwis zbjIQG3b)qGg|!*Mtu@dK^+h9@ciBa6U1~AU`6&QBcdLup3zwRu7Q5^cthm&cS5WPF z^V+2jTS_dY)UUNHjjY84J7y+avt|=4-}D-=c$sb}nJ|Oxr=^BEu#uOAD;IHXDGYx3 z8e(003#&LR<}6ux8~4^$uV67KbQdZ`q+@WFiA>!y>oc%P>oa*lMhitjCRn=#=>QH0 z(qSDIWWDE2>#luT?N?0}WRYc-AarvDq00*rj@rA{af-s*?K;mC$0-Y+%KZ(&4to#j ztl-|h_N~l4B*JZ_ekh(=PO=M@7(5JONBDugjN+0Z3uET6r=rV1CqLo(kmz7v%_v^EUt*!?W%kz5 ziAKM<76OdXeXpnyjm&(0I28=SKhY`8p$X|&dK6vF{00eHR>MZ~D|(8yW{S`aV=)mM zs-Nj6RBZL@Lpkc=`@+a@4?kBgzF^_vn-_<}_P5p1df|)<#=Xx~RG~)3?dEN~%Rc-| zb7m+z=qEZE!@P{XjiZdsfm6VzqSx9fZuK=@PvoU@ls690$&{F}^+=qtU820nyCl<6 z72e2rKjCcwpJZ@o&p=NYc--L9pPw#1<2Pk~P>ByVp?4lVIAz{QA`HE~@bpIFM_1?5 ze{pxEso3HvEOb?QEyd?6f_htFIy5>{HvMnzuCx>Lr<`>OsbxvHW#rUrT9GI3W)v z9o8zQS!RloEt_M%w#`zv&_P_WV7JD_=0Q(>ibVlH~?3US0ujR~o)<_^*M#r>@#k zNxJ(g3P0f`y|d;+>%Nz>hbz4X;!YkRPQ~?=Ehf&y;ENT#Z+G6F;g` z#B+3-p&Rnd z758588_TbdhgZ;7^$Po~msV9zlBHLCC;N(d(<8z7e8RRZl?LARNI>5NZ7X}TN%x*g zb7oUT`tl~dzP{4H`-ZVnsq%5=mo4aGO67~yRBnBB^5EubqkEm-RKCuq&inDn)Isn> z_By|%bzLQ%URQBa#ED%pS*$daq2ax*n1g#8Zqv}s?@jlllWc+$?1fJD^u|N5?>X6% zo~fPw^d$A0u%}PcoOKR*qUJD^7esAzA^NYjN#v#feLs`K0 zIQdjPoA|8eiLdy{^ecX%YeOa3eIMr?DJRm^(2B4sG@s zbA3yD=i+^;gl;&#=N3q3zQ0P{uS{ef7$1V?gXrfPyupuWZeaiY2Fm0H^w-@$d^h+L zwo}h%Lc^OX&bE6hG29xUiKTf%lQ#&Q9ry5-*1C$`lhgh*artdoTPE;9Wg@+P6DhZL z^!c|_#;Nq>@cweY$-5j~XqWp_v7d^4dmB*t{E;UO&?In=;~s-H1uylkT$1#voPMM- zB5dg}d(xEA?5f_hS^pZgbSVCl;I7s_<{}QoivkoXLFVPd%rC| zs=rct&7_Ywk?la2p6bPY)h5ma#LCmC%l*`i8%HKmH}0YQ>FZu&9`)J)Kf0OMiu~w5 zU*pK|YaN};dELv1_p)k7hy8XhBhQysW7$jnY1Hdj8XTHwqRqe$cQ(3jNBzahm-&rZ z@&ga1_3$Ha(^`-}=ucMo9q`^Mzr6+k8{L=ab6)a0wDy2( znZB1cmZH4yI~Bhta+9hjvWe=6a!d7u<5W>hT|ME(tJ7Z(%G4peSeY;hFX07ooGjc} z`fAF6JWVFurQo}H_d4W&{dS6@_D@4oqrbNjD+e@^Coz}rbRaXNx3X3~-dkmc-sbw} z<|kJEE_wMby!kG?`L6HezDvHo3-7)QpT6rqPnn@tY-GP+sWgI|e$8P$Lb|&Jv8&X+ zX*c!Xaa&G3&?nqdWk3+Rjli%BH-}+izgOSy0KHQGx6TS{tT<|7qn~`eb^hK^=icNn z9y4YpUNv84`efd_&s$vU3pzV0odt4t!a=5)j$VD)1q+v~GDcnd~Axbx%Imc;aG`jYp zIAsJW&YD>UT^S7a7~Y64Y5N`W1k~w-;3N95CJay2Vaej!wVcs8$BdJ|3o&CxX54d* z9YI2CXY0(IgZ1lpZkRr6*pKCh{f5G@@05p;KYY_)so!d(ziK*6e}#LKBeyM;mhy&* z*1WZzt2fh}S&SR#17paWB>iF>S)zRd=5FSETZ^;v=#*aOF@!lqvK+auzIrNswd3w3 z?!EM#dy##6>C^Z64duOlqqCPjf3F{|Q)^B3^?#F3VU+=fwI;Co=g6mL@FMxcGD^*; zo}O33f_iJ@lPct>d|G^SO%Bz|s8Dv#9OTG{;g4E9Xo=P5l^ulr96FeLgW=$Sx@3P4JPxH-Uy7Z*> z2c7aYRVP>h$cI)lVf zWRDG9+R34BF;1J$yy2e1e}Ce{#nKlIPn%=Kfogo~kB`J~i*GF-p*#M=IQm*s?vIZo zIWL@Y%SV!#AHS5$lwXRuMNj#QWv=$+_h?c3ec5WNc)wR1EHeK7TV!9qcY-%Q6PbfY zVwvX;PjIfTpi1@3hRpDh=geKW&zZY$iF_k-#VzT^%z+~fnevf%x|nV$7t=8>dpc=o zj=5JI)*Ls1dn_~W@FZtJJKWC%`2E2#;b*fjTe(!>B-=F>KyZ-b`6OTRAK4rn@uUy~rmrEY}LH^&j zt+}q;`qfQ;d+7AF-~Zsp|I6VYUiygxnI~s`^XyfBHtDCAFK_zXIsfDRk3YBVvc&Os zzx2Nc|K_)jG`{eY^Iu;2fmc#TU;BCS>i_IKw*GPMD{mA&_UN4#ZUsRshGi~vEW0%aY-t)D0&Fp&L*DpLV^q=RpEc{P@vVZ!E z|MS&P`cLh+z4;H^W&iZ$@BGm_VSK&X><9kKHv(ykHS@2v4|u2+Xzjzqak723+CCwq zCp%|cOB^3>?H5zEJ-);EuZ_cvpbPhf5PA#y7TwH7k9s+_R2E|6D2>{?@GOkR^Q*p3 z)~_k<&;+9Jt!GXT;GljDd13k$(WUs+kFzHSV>?^|69!%1ubql6?AO9z3|$xqL5As@ z$+xV-{!jPZPS*d;wsZhvveCgWHet|L@r_d+nJamgfPm%BxZkPu-?}N?* zPUOc{j>(7k$uM2<*38pnus$DhWIVoj>CGSM8h8J9;rQ>#?+y}B>;KGnoW4)v>Y1$d zbd{u+dx73$LB_HUrT!@Qn4ih+^f^z+)bi?)c)s-RcMX-^JzaS2-e9bZ{Ej;ZShGCf z$GiiKr8!T*Sle;ISr18azGBkhVx?v8x=I4NCg|cW<9n^YYJHTo*NKeXC!|^9;@we= zyUqChFk|qHerMd?=rVrCy+M7D`^w>1dP7xx zlGgSc+`aTmFCT8o#j3+P%fWqg^pl^-_iM`6pJPYfD&(y~eSfXNRX;`;_%&g;8(6b? z`EWyK?~$fly!vO6Fy2XdH~IPh@p?*2t%d0$Z1sWVTjeq%mxzh#c{zYr$?5ipyV~(+ z1FcO^OnV(OMH!uzINR`|^^!rt6CAHOnfz9oLKDiz`gM|RwDC~hi2PLYTYKA469!!` zzfVP%!L$4b%80IBp2@v_UXnRQy!G=E(Tztg-w54!<|WTSH$-|=1d_$#OUS3FT-ILu zhj9x{$QR`Ds(+qb&hUz+%-idq%AZ0mw;`9aImu+?Zuuvyf&avBDE>laKGQmI!jA=zyGe{e*ZLgzwZk+q-~=}TUu|9X+Npcm<b~g+wA_qJ7FySe`~G!UrV-br%|0swg!!?CR+`9D%tu5jr9MmOjTM!b1Iptb2*F& zjNB0UsbuQDNLUIpMC)bhsp#rus_4ceQ{M<9Qlyv=t(U2y8;?x=;5cRK9pjX#ou`zk zT`JmesQdP7&ojHmz4p8(=-O*zUFpHpI*-P>dSmu0?;ff+K!-JE-u(3ARbzvEmku3C z4PNWVi(8;S*Vv~9yV(OibR;o|UFdfRx}kkXCJx=}ofw)}jg|O@rm1+Xe`0V#wV5|S zn~L531niOuE8=g$N&Gbur_!J}8*O|Iz5?_OjuW=mlB_r`AZG27Rh%XU|FJa@; zdvvw@6%QSmV0a2dc^g70zpdOL}3HZ}nM)EfSfA`VX zINnZw3+ruL7Tx8Y$TwDbC(_dzSQ7iD!Uw9iQU_w$yVw&>R+Bl(oIZ+qL{R1)<>Bo+ zGRXrcJ+U0$&^X?Y{07c=INl5PTnheipOhu-_)muAM|n;nPtAh^L-;r4kAKx0{7=Mx-1?8>|8o2%Bk9*$b`4?tr$~RorawXY zXW+jf;$QFCy`BH0^`FFlJN_FZ{`IEa+xc&>{u}Vm{!MdJp8QibjRo37B<+oc_ZtJ= z7vO#Q(2+*>M}CVt#cOn5pe>ha%jMdfG|8B!-fq%K?0(IC`djpD{(AazgmuK|p5(*` zKH6&pmgBiM8SXt#rbD!AT7f{f-FMfR@P9R;d5rokwv~;MUxgc*@RRyw=z<|Lx?w^G zOQuTJ=>KYKme7QJS-rSx;XiAC<-!X;GTwQN#z~l3pR4_q`ghHAf63AQNtyXZ zhBX}aOB|1O>%GnyA^q4(X}M-Z>-n(-x}#GXi6iSBXp{8EiSmz*IE9}xX78^yadwnb z*WL-v?Qq_X{h0$toO~(alz+gOeeaP*Xk+=GvzOCEMo#*TPSJMXz`q`6=V4TuQ|8Kan&kJ;pET zk^dxp9r;K!I5#1e_8wu)=}g^+qD(p$FI%+wTygImuyzxy)lYv%-rX6UgPi>Cj@m+C z!Wti7CtK4GDFwCm6E$yLD@vKWKcZ0_l6O<>cPmlVdU$ot}65`U$t_L zqwjEO-`q9Q+WvUW$<~BABH5HIkf~o2lHLNzLalv>Ty((G&{+o?dCwI{AVJ#^M>;k5M z^MKMN+QN6Xu&z22Jd2-XfgkHcdgFIi`FdaHS3d@n{->G16!4=!tu=iF*ao}^=mNWd zEx-$b9l#5KoxmBu3@`({BzL|4iJ|NLY3b|zk9*hq7iX{cf2(x8e_r8w|3k&={cQev z|6J#Ke=_vvm#_Ed0;dBP06z?DVqGlHx6ZtGf;a5Gw~`vzSUHDq&nAp%xamB4!u2ZL zjrCWMpIGkhN*D9Rp5jjb_$9l@^ZH6-{@zNHJB5AlyFI6cGtY!Oao%0Xd-^)3-*esT z{aLPf##`b&8!Kt%9gT&eM;}-DpmRNY7}xugUf)pZbI>V9+*xO*e^%*wUw0B#{Ac>W zVySY=zM?lZeZ4;=d%fSDx!zYA8amcj3Z>0{cb@mTq1QTI8)47OaUVGEai;vPN>kx1 zZzlKz($X`CpTarbgu+HISETHKT1RXx?)0;`#aaibnVkLMJod8s68iXLgm za$erOiSyXJ*PG)EeA__9b;(D*Sc$jXRq4tS26$rDhKjcZeZs`2d&#LHbFI>cyd-Ix zP&&_xd3Sqpx8Lh5vgYTIZfJTZ>K*y@-kvLW`7=v9{rPFqb~oerv{y;=a5to|#ar=l zrQu#Lmfpmz>pI^~@!aAv-IpXcwn z&pR`Ho!^+_Y(im^_rCmf<}CK%&)nxtr2n5hw9{YyIR2OuPAuMC(H_{Op^fmGc?xHI zo8fy~{#ySxy=$3sZu0Uu!Y_+|>nf98zpK))iTf>Oud@67yGUE9^4Iq=4jH06$_kUR zNf*7-^EdG}^g1u~|FHM|;dNE#o$o%s@=TwI?nO)?LaT z=*hih?cw$&cL(z)_~tM&`w73{vxT7lP4?8)X|8oiaM#_mqoQQ&4r(*4!61Ce%vhjy zul?R?_ep4HO?H>x{1)eB(#T5PT5jZQL&7Uez5c_8f-}JvWCH47&(z=}^p^sCp|LQv zqCi_iCi`gcqh3Aol>SgqH~tWN$S(-m@i+CDekj;5pF5GqRjz6m4^KV!%)xT~{ykH# z?|CptWFDFFQ?#w(?x1lT*~N#0yFXZ*O4Ak^p|2vJN@L$LedBs(;Q8%A18Wj>#9d9_ z`?q=4U^u^^HZnxG`NdnyYY!cy@6-186{n`VAE1oJ0`G zvWNTiRh&PX+(TP+_LiQEIhGHB-&?vb_Mn0 zqr4m4gRa{quL0tBZG1XPkRty(bN=ew?#Sq`f9>(@$Af(GQfr zc|0dGtC@cmf`N}JPV^=5{+kKO;0#oLb@`|JcLg8FuIBsFrWTbo4-G3m?%!Ir`*q`OqS&+C-VC0 zCk~cN%N_`Z-z1GgyQk9RZCO!mZzr}p{R15}FZa;Y8~4!`Go!)0qTbv3fhjNgR0H{u zj;YOE6pY=WyTQkTyI$UdKB3KKDGSn}KGz0MU1oRizAR@z3W3ST`i(n-nr9!GT7_R* zR%O0xDmR~Z&00^Q@7MXGL5lMsUhzZ3dr8m$O>+AvuQSL)lJ?mAF!zU3M-3{UVlXv* z3Fp(OyN2S}lypQD;TE9J%4^Ag;nCpew+@zTix&mU0@8<{)^LVs2kY-9|2)s1cr<9o zZ}6dqg5L8Aw68~q`$F0~x`(=|ALqR|;p(X4h9Y%Gdh2P2yl0sj`wDu&J5W}?uOBZ2 z!#`C&eJD`7svoDl5~eMKj?L~0bXVp4iA6y#^|3Z{pq#z>pwX#qsRQL>jSrgsokaJq z1^3V;=^|-*L}4Bb-u&DH!N473L1MzEA8=Mr?E@aQj|SRy4w*HykNG^WA9@JB58*c! z436(DAFpGt8F8z>_I+%psdvx2Kd4Dv5G-KV*u07PL6u(sUli0&UK$J$Mtyn1*NRh9 zAKZhkyeP;+Q+cf#KTzJ^cCb8fXK|`K#~HBPBEmit)a2#`)wBnVEAt9_f};;nC%FUV zJaMb;5`J6Yc@Llys)7W1VL?y`MkeWh^wX9}^awJ4ess4fn<{@SsGGc;{@WO+J=LlI zqDzmr?+Ui(8B1S0X!O6zW`TD;eh&t9o);|ee3NG{y({Ru=Ki3a_)pXxEUTSYWiK%C zFUWExFMA=nO8LD%=xx~(tRPP>!nck*Rr`zJBR{0Gj=Gl)Q`tzbOketFQ2bN!GoSpV z6)*FObak+RK9Qj8RoF9T{))#>6L0$%JiNmrPQ|CPaPg(!Q(S68eb+n+-~GgMfr(RVqtQ5< z$wP2kG~PWY#XE_=;??-S?y^(ITUz>PpguVMC&d53uzWQhCv5pH2nb7_fBw@#pmBas z@siGJ|8kRGok`^Elg;n$pmW~Aaym<1FS$RE{!yDzdCbf0oKm}DybH7j(7OI$Iha32 z9R^dw#EYIn9{X8n_X+B?CU_w5i0kLacLg4D6lYDA{+wejL41wK${~B6kFN0!lwTP* zSe|a~rG#+XTi;+vP- ztv(axlQ`=OwEf_LK>aa=Tf*5MP*A&I(8Js(iL1 ztC_O9btUx3#%v#m6_sfDjh86>Y0CK6%TR3r@kQFnw~gN9#UEHeEfT1 zJNaetzF2jzJoH266~yOx56+5HaVgHHrlawp10(UtesJ;aP<*tJFg|q69Qj;Je8+#_ z;$v}CA&q-Q9nW#i<5e9q(fx$ml-6L$`sI{8qr0KNo#Rn(K_dukI}XFUEQ zV?~a$#l>A_d~L>W0d`s={F-ajNiP?|d9L(XhP~$6`>}QrbM0|-3iBS1wlsk@*^PBCX+S9M-wi2A+qoN$QHES9S*e4f%&mx@7}x*g?9-+k;xtsP?F| zv_r4w`R6~~L)t$S)G&9@oN0s7&%9gnm4*WKmud_2esGw$*ry*%Gd9)bnePy1Rq!EG z26f}iN!j!AlSjUhZT*Xzy8rH1@|%8o@21aw<-VPFeErS89)9i62OqonAJ+V?#-^Vi zeK@G5kJghP_4UR)dAwA%8#e5Hdx9KwQ{`VCtSTaNoUxvC)${9`SXe&#@UEc2-xUm! z=lK)Vd-{=JWCHt`@|jOLmX;NQ4xTmd*f1ZRm-NUd{zNtWoI7T|r}=32BsAa<;a>L_mb>#BD;}YJ(nbT1 zwzNAKOzkbtr<`h2mz%OtnWd%{me;jEMBny}?vk#kPF)zN{B!e*Q)>5W|4To$5Iy@~ z;L+|hKh${QO)d&*(b-0a5wFI++?fl@=D<#ZvaL*4-KPkeVFI-9b|Ei!sheNuBlFMAPb*clwgzxUE` zu2Wu1TcS^D-q|>bo>x0aT@+|tK>dOBh`^gBUglcW#H&88c&kmkj|TICLg0UIp@~;x z?eH-dFXL<^-W8-xaVy^J`^oQG@;hnsi@b2`3G>^Oqg<%}?eLX88s;~VqKx5F8}k@* zv`(PB?q5yX&LvLjtR_2Z(&oXVx>Nc!?o7fn-To-y!#QG=(hrZu5{);$;-kKf!l!wb z8*>)GmoWKc{zN-TKEKec59Jzm1sV@c9Zo(#yoIT%oa$tZdSKjKL%O9C8DCX@s&{OS zsRhW=8pS-)o<-KwIXi>u%D6g;9PU;?j_OMKYXmtOtJhtoaWI_Ag=4kma$)+VTlXWY z6~3Pz*P2@}r93s7bUiwiK%T}`rT+!wX&ot7Px@z#{Yrm0_AC9zk*6{#eUv;PPk9LC zDG!?SBab{ZbuHw3TL;2?AWv;SOrP=*)`9Y|?1hD8)#-E_`9Pkj7n45aLv0Fq8+|@K>8!NBoWc1@Jv! z;?%raww%^mrkZyLTI(2uS9y_5EPbxLXq?k{kNpw+j5> zbcLXA*;t^ueGcAU;tlOc;zbuT-z84jkz>Ks2eDz`3*gf{T(+d-$+j}_n(}y*xi|TQ zukMY7zck*`$C%T=mxk|`#oK${?w|{vnK-d=<8ihZg6*FszBj{s$_86t^66|>@=1Ja zGkeR$TH1VuwoHA6b~^gd&J`PJdzup;|KX#7`r^y*N`F-|*H!y-b8zehqc_bw7oKKx zdUXyRaEyNB$&MVOEnH;g9J2jWbqmYV1&#FUsSl!uJ@rLw36D9h(oB2qXj_QxM~@@N z=zU*y$5f!0Y{7(@Z=Ta}S*NFI<=ogOv$&>bTFjSI_bea3%e^D16Z$ch{SkGyj@dGmn+e4KOr$ogs~pPQbSLN|MRf?7X( zcd0v2YCPH>?=#Iksl40Np7CU6L(rYtUCvl~>#m6@_KwjubylfM-*-GW!Mjb}IV`_< z;N6+sK-52Z0Yc=)vaev*k-qlK`WGHT> zL-ICVbn0J{9|mp{!u_OH# zbM57CgD$^j?(dZUbv*a;tosIpcY!;n{WN#-8{zIw*3^yvX5bF+A-aOcE7v#G+J zpIv=pcI8bg*gDa3qrSXn??>ITF+Z@WU(|KxV|%)lxM%a0{(&vtOn_VSkOve*_ms}i zyZBLpX-#FYmRJqI4eAgCpZ5MJjG&z4sm(YiKmFq8$5xyo-W%a1&b$jRKBdJu zmp(Olmp1urhVOLFkG%+A79rY0bp}6`pW30yDJrjdk>@=I%{dpZ_5f`ju3X9g?q?kq zFFoz^V;sJfo3#hX?6YKi?$^GZJo-Dw9t@Iy2D;vip^VAor9tmrYZ-4GU3bbSEstn9 zJ0^(Mud$zfLdi_{-RC#WIV)m*5A0d|-=&A=o1%Ar36Cxu*;5wc&R4C*sa$nseG510 zPDk%H+WCy8e0@NNC$M9=o`05yL^r#x9Q=^+Mzv{~L6*CHN<|)*xGuqK=%^AWe zRHM23poLD;LEO@D89{WK#)lRXJqWCxT@+AG?W6+Kub9snC%GyQ=bWgxZkwc^NXNXJ zZYw%L7P>wh*KOj9s$>^$8oI&=$`$#Yj&6HV%n|3}jq5h?osMq%JNQmVw{;Sc#%1ZY zMt;hN+EQG%>AvfA(4BMX+p@K{hYP_+2JHsN%Kk=f=D9Mx*!TSGV|{Xtl*1 z20(fD{f)_wnAj@1P2cBi#XZcAFHs^i=dsO=G%jNJ6F}@#xPGl~g zP_~Ue%!KoP>B0hYWTzvk--hP&m&-|CbN@AFe*P(FgJ(v*oe}ENBWstlw*tDp9k1^^ zr2H?NdAFBmUl#LhCzE2tJ}H*mJ!4JqC5cyjHR#zWFLx9))FHDuB1^KPJm}$uqbc4Q z{}P^QcwU6Z|0O(s4bRi?wEhwv-JP%pp0;1Y!?!jY2H|NxCC@nf^^0eHhdNvVpZg|; z>_qMZKGMPX(gEF-<1_H}Q&Ad!^?REp@hZRP`0eAjo!?r18Gh~dm#5xSjD0E2B2&+$ zWaa|X2AaL!C|6U~rY`vI3hn&}_K&F>?XOCvDSzzWWRAL^9bk7&sZI<(-$+Shif2)O z4H^$qjEDM8M>A<{^t7k$vEU-Yh&Sr5zLeIU+$?JbW*@C>3&=xeu06ZREP3!f&X`=C4!@nFc+`%>tG=szHxq}>VE?jwqZ=#v)_H3$qdlpl zgShIHcg6cl^4@Io-fPph%BJsO(zcv3h^Ei+-f4OL)8Ji7UQ}*Nl^<+sttpTn*2vV4 zzsUW$rk}s5Hbav@brnlXRTsuSeuDj^Uo1CSp49s`PZg`M!|_)=G^q}dQ7VebjkvaOs=9MwuCV!Sj?~>Fluxv5enQ)>BcEnHB_|!j zee0yHio90m!*+M|f-E+=^4L|n7$|#P>CyVgiRItceJRIM)wGWkcDr}5@~z<~;Y}7q zTU)xogx_b>0+- zRr?jLHJOkeuDOiOA&2t*5$*eVt;u+WVu|nS92=a2kMAiRG3yZM+)YY5b*VJDc=>+L zk&ZdS@%yy&?SLmd=IrzE1_K4Oqq}%V9BOY|wkyp^a@$&dCbd{^ z_9YS7WB9$3njPlky6r0cn$Bj?7gUFbfwOEdn85@)6lWWlt+)-ZPRo+?4Ed3+jPVZi9(+nTF{RnsPpTyUU+@%q|%gL+8 zri8b(bOp~WOa=RO(4`T>0wmeK+2j@z<8S=wbQu&3Iex+6yR} z&OZDZZB>2M@MIX9D)p8Nsxleo37pNa^^xEX#ab^_BJVZat6oJ})_hBCodL6!-#+S7 zb*cGJHSNa8RDIDVT>YqCJU=Ksojz#B)i7<@5_zEx**8v^Rxw9Yn|1RXjg{_M`Q4(j zVGhL|jt$x~DjkZ=P^lla->Vnc`B0j1+qPA`cTs%KZ(hXD)emjB#CO&zWuo|A6HfmA zSB~Ls{uLd=cN|W#r|wUwXD3fI6FHSG2?5bV~kE2RIv~pEk3KAN|BTaRWLo&-)tb0p?Mfi|G3s zt}SUkvYWVu%$(y1>fO#cXbU6cA(@em=_);cjiOJAe^JVM>Mxg2{xw4QcM_saFa?`1i^MLpH~ zrtEa?w^GmOD(=n;%-lh7sBH_XUZopOJoxRS^Ro2MJo8QZieyPI=?tCvY#nJ3e=WL{ z`>Br@o+9&i{KY3dderJs@i50aBD(kr3GUZJAHN*&CoMl>&iVWi`j_N-9HM_cRNt!B>n{DP$?@fDCypR6IUTS{eKb{ zbAn@?Hry&3#{t5AB@)MfglEyOgnF#a@<{%dBRopO)9|_R#g$)l+%oY}uLmfXdRz7y z@0zS$(sv<$lQg|3-AJBa0J=Q?W+X0s$KV;uBRwjf{iNr&BRoovzJV}i`Sw^o(1;o+l$bnlts=`Ha3D_CY%Qc76$TVims{e*eh)Mdx4tJHJ7Gzr}AUzh-_H z!}~1#`zt(ajQCw3ea-uQU^h^DRpk)csE?PcsZ*7e`a6BV%=4w2m~WKyeU!KUQS%9X zi?jH=$2UHm9V+`y<>qYGC*c2DBp>kV-mhalq=$ZH?&YZ)#O6oeBvQ+#HO^>EtRgM* za*qYIy2F@njr<<{3;tuQp&s-3{WiZ=eoyhcj-S3a;t@|Gqp^+m*VJu?`V;q4>JGL2 z^h^20>3`3Bmhon)DHV?CO&N`4T}q>DEz@snkgGndxt7AKT(tfzd6!%s%2b@u_l$jLZ`EQ=*GFuWQpV8B2plxIcu~rA28_dXx^OQT4ilxZ>%kVH~4> zHFRGU>hq8B$%!tW+kN&Ncwc@anfjv1qrT~TG2xThCn?KYOE)Op-j|GDn+;1_Gh;yu zxNKL2H*r(%$+W_)DP3*Ch2?PK$}mnY!)BbjwNx9CscXZgZ8bT%Ao z+??*!j&OWX9exge?eXD_YiSpGNdoVsEvSuXjmXXGm41b>}H)0a_a^e(mM~D@#k56gZ)6|4?xo% z5YdzD-DpX%hwq)RjlO`N%HzL8!qpMxI}WFv%QmR>Y1@P|vPs7e&}Xh6*AkD$UirDX z>3{vla8HNIU-d+PtJIULBQH0*@7AP48ESKyGeql0^LJN2OPSNSJf0P)AKs~>Z@Nkg zs2}lvRe2=+4fHq7m9=l(lmYQ*E}ftbrH@?Nzek!?ugPq2>LuEk_~+7Jj{gtg*FI#v zy?snNS8Gb>xGDAJU;hWiU7Y&&@R)g-|2S=bb?K8TxAf!8Lx?-~c)4zZpLA^+yog<# z+hjuc=PFEyrY@k3ctz$Z1%8%C?QL0vhmIZcjL-0>t+hmW(EmpiK2x{%sB2?h z#NW#>pUD)TKZkrBw{r^3hX_-OkGt@e-UpxNL(;!5T0ZshuaigD$7?B5@g`MPzzvkk z%Y4&HVfIDBd?OM@e7_3cw?0nUz&8@%E5`VK4xecgkf7KP={0B zQ%Ulm_UCk8Ct=mLs#9Nn1HD!mM_7|p@pa#A zL)*4qBZe8O=iL;cXSZy;mpw6;eRANwYy7qg`~7trM=nOwW{s?q$X-6=kBSp*)4<|u zLb&7_Z@{JiQso)4*SC3K{rZi48%^R!llcbK<`45)Q9t`?u@C#Sck7_Pd}zbwEgMG$ zH(lc^{UpiTI@r6|Z|fge-@9#ST0Atf zj^3dWzjI)C!^q$@etNsNxFaf^ncg6}B>{_{cjmmKKn&sXte9U>xnogf*U$0I#Gf{gl?4#H+Fm$>3a=RY3Y`&aLQ*3wQ z$q@giuY@x1#mT90|CH}IXz$I8OPF^=!dV|-IXB_8+GmF^21g}S{IBD=nV;+q@pl4U z7~y(f-p=oBI;ZeKp5Ll;)P#38cn81G)y`}_nQ;mw8gWQADhZsmJIDz7ydAK=)(A3iQxZ$hw!I~!|}J*&G65sZeMdK`8yN* z#R&cZ@DmaIJn$sH(A9bu@SKj|*gWPPwe$Zl_(;V6N}dB7TIH$lDq+)ESL-e3xiNy@ zz_Z4#(A9c3@tld^Dz6=p{H(!Gxbo!ko2|FOY0u(c8^PDXFI?|I9Dnot+5D{${2us( zN9Dg0@t1tlxr~T}_XYTc?*lmbPk@ImOwYau{uuniRR@m0%LrA7kUtl}55O<{?MVH; zlM1Cf{^Cwx5e-cG5o$5{$LD$JcfTGhCds_pO4``is3W5HO$Zdi20vU(UqaUAHx^N@M~lE z%`v6_?`xwY5ZJk;MKlIG{SY<+Y8 zfVXjY#L(7n85l79TL=2KF{i$-he`fcLopAIZ|la-hI~c{f5RhQYrn_kmL2*_>u<6C zuF~H}^tV)hSL<(a=xzM36k&<}t}wA+n7A~FbII(~_79lU##3)_0`_gnSA;}Zw{F~^ z%#uWjGznaMg?ToqTWpfI#3X8oNy?It$E0m>m}HasB_`C8#U>JVZ;x#5ksfUP%!vv|QBPmiY!xWjMZ{4b(NHEMM=)D75Hm<)f46M(9^^I&9@-{B% z@4-6AhK3b(nCylgQ)haZU1!(c+%vpwQ&@k-S5%HY`ZeHB8 zZrCQt#bV4lMRLovpXeFh*uP}+y1Tr!SEjG-$=-VHCs*FCTT9bD`Q9zPo4o5*-=6Kd zB}_{Hl8v!cuDmVVlU0b`t)@s;u3p`f-!{@Suw~2UEnfDM*R5IFlUFV!(Ieri$Y@L( zW@2*EXQhsmEg^+r7)8-LvTe&iPyaULn9OzEo?Y3qZ8+cCcQ=vTvyEmS76!@S3RVga zo2x-f+w65Z}0@x5tR0G*({MMO|3@#+$oV-mr3YTnOh)A|k+42sf?h z8M!Y%5cL@z_)HYlO|YB#!$g~gpd`l_(xLa7uGKf*d_$PJN(o=rwYDcLEy~lxX$oFs z(}ZGKRqQ5LHWxi75lE0ry6N8LGE<#u(MGyWYX7!;w6>MbO5@r(Y@&hI z)4y@Uz}As<_YJdycy{XWHC!tU$8DyMn4>+4SysCd|B;^6E3dmT+jHa1*WVHrM(@xD z@4B1T^sJ$23~ae^c>U&?LNfhsE>8k&HOX5~k5OOV*xzGlVqQJaw=u8fiBkxh?SJ>k zmW`E^gzfE? zHA05PBY$lWUrO z9t-$Qf}i$0UvO<`U!I5IoCR+I?-#s-_mF~jhWm6|y7@-7a9|yCQbDc732INTpzI{U zeHLo&E<h^hdzpI+t|LC?R4skT z1#ayV>a^Nc}t^IK=)p!A;ol*8epN-w_<9+?Zo1 zT)QCQR#?1W5dR$(-)Hd&i%$x||Ek5`65LF^VD?B}iy;0T7S9UeKWOp1AnDsKNc#3! z`g0b(V&QQMlXdV(u7$Gmb9v+o-otxvVD%-Gi-j4%OUaMLR|&RLZ-ST6E-k%F@N&x0 z;@yHDMyAF41=FNka4~Dtf=j4(!7FG-f-D+s7rc`42DWUWJz022kdF4U;0Wsjg4?K9 zOHX2-s~t59-pd?NkPR_Q1t}NV_sZXpa17gV!TacU76uk-v9#s0$PxS;^(nZ+^D=^@ zr&Ex0pQjyL{2f6Sy8QXbqWsgqmID1skaQIV z??;{>`FcT+e7$V(z~UzaiKn#@xRZJkq~CQ5(hv3s(hszrpnh;jIQr+XAnoe7AbKNp z2C$oaTB!8|_5Zbk^!si>^uP}J4f4_xe7Cvj?q~JL9F1Uq!3T|b56C5F3v{B)0g1>>@68s|lRPb@yuOR8j3DQrt z3sPSD1u3r=1d0D0LCUp>Hg5EXAovQ4PYA;IiiK}m*i7FLeU%{j&Rh7Dg)dw9svzyM z@tlyaNf3OM#q$;x1c~vK z5WWYfLbomzUWa}YY@=QT8Iw>sUR5XcBlvH_c~KQ(AWhG!x)FUX_%Z%Y(=CKA!4DC} zb?~1h-OeTL!v}#R%gb2&smoYTC4I`j!ix{oBkKmQ2Fi^_WC<6q+@<`)|89IrkHSRx z0&wSC`c!_=^bK7_pMs|JG3BVF?*^VFZwWuSelqs7OBA@|3BAoi$(3t7FRZf=3wgxH zRIZXI`E|e-bx!nVh~y#f{KTg+aL)0ezAAZ@Uk`i?dll#S1gk1k`Z;`g3g8TAxAIdy zQv6gVuIza9vLE7Ip{s0gC(ljLPx_w3Db8DVbX<9rZ``||w>-)igsYslOp!{R!O}jI zL{|G=m$kibMaD&Voez|E0sfi~KtLwRfR9-1ltKI2R3-U2&>kInh*)s&nZZ zInmTU)W_QR$wkAi2uZWTO4rCm!w!ZdLsL6ae;Tng2b7LI4zaKaI2NNRed96O>4ud) zRez2;<#m6Qz_ZV<$S>+zL7s{dcvhJ_6Qi|*KWk|!PglOK|0wTr&Tkpd%9EUUJNP+2 zl;5eG3!}KzUsaax7Dmf35gXeZWFN!z+lKoT$0qhF+%Pa~(EOUs+qU!# znCIC`H;fsCsce0i2^S@KTiLe|Zd;(~R=!4L?DRbNJ^cDN zg_0T>dXdaQPpO;PQVhg3CXM;PO8n!R3D=p9bnVYw_!WWBjDYfh*LVpLp;r>|D9PHRU!Iew1+r#w3++JEPl=jZ&{G+%L|HG>y`&R^?>&WWZy6yreW ze~a~38Wg|wI20rP_kvGE@Q1-CBltn^!x8*Hf)9Z^dEWyMBK}&RJQ2b54t{Bb|G$A# zOqKM_W3W+sY=W%vi@$Tf5P!8t=l>B6PSz=pD`WVrF}x>+Z;0WQ72fdD7fmPo*6EF2 zY@pK1lb(^0_{)wNYPcDYw?+}pnfFyuqI-eU)4OfEIwSAK{cMv?|K`IOAMy4>u9)B}r7Sj#KtaL?(^LVL6((=pLT#ON(S$Ur+ zqF8~=$d9m`^rlROTq*TP5JxjY9m2~q`|d0(U@(QRym~bLv)^#ddXa?uYk8M(>rFj8 zb>6~@D&Tc9B+v6{w=K*pq!(K-=rm_KuOl1>b618o@p&H!`QUkQZ20~1{}^_maKb-h@#lmS{*c9A6i)b;E&i%-;(tx}wX9tVC;V}Xzis{B5x$bS zIsH-o8drq32wz3MEUrCZ!ZmJ4UL)bE+QU9y^@%Y5!dpcLCu-xr)Zzp+c&Ej?EuOP@ z-r^&IpA6@ylDEg=`>g+dL4-VG@d=AhT3ouh>L%8DEUt18|51w{x47~x`5yVHx;fNW z!ka8E{Up52;!7>Q%;KFE*Sj5s&ski1*@V|g{`q$81v#c%z+JgytiLIjHamBMuU~X* zVp9(A?+}jvs388P9PmF~H`khq^5R_5KE&5lwl{`4e*ykt7oYNUp~b6#azhbW!W|l4 zQ#lo%%0pqI@&=s{=q`O}o;A{E_{j~jxZuO5^wscl>7(h+lJ`ngI5t8y&dFO27L~UL zK{;rWSIf`ITg$VO04FN3 z8z;WgS)fqgO ziDu@$zf-KyT(M+n`gGT5P7o)qvPPrtEVpn!j=t5YGjryCn+fg^NbwC#)@yv-odcaZ zYS6bi_55L;&Aq)m(`~rpDx_b`vstrYt;fKeh2s_$EG$~cStnMp&hqk{aU(369sKsQ z&S%NCO=p5Q)3KKGU#$O>ikzug?$4a5(fJsi7g0Pq?yuwv>Un4%HLv2d5x)f(v$&;%;@o;{;!JmW2)vb8`0v^?^&d|*xd^Arw zyQKP_%kO#obU&KfhbdFSHblxpXUN_CY0adeiSnwC`2Q#TD`}-}X{hIJwB>Nvo{dub z{G2T}eUH}U)0SIn`fH}&tVT|oeZGa~cKh7P^ShPL7vV8?!Fk-dO#YimV@)KD596=0 zY9;-y+||yu+jO=^(zzqnPUb52N`5K#t?v@|-8SyFSlkcTxSwUs)3udfkHxKc6n{&s zjoyaLcIeS`R6!fJGW#PkKOd9%HfPe@-5Z$*-xp$hx6@Wvp`3MQK>I8@_?zbDqa{+SNjxUopt`lqa8%~!yR3-2<0M+2d8 z32f`AtMSC&R^w>V*u!-b%^hZ3h0%~s=lkn!T|;rmZvN1WFf%q^9>babSDeP~8!A{h zmfsS??~LICFMBPvFpQ@ z%+B9%hi=+fwS9vF?1j{(%Yp6Maw*#rpuKx~oV`U84`b_E2KT&it1d8BFg^A6+o!w^ z`B|}>whf7@4V{2{dxy3SxG-C{trKlSp9$B$@m^sZMC`F)^tf?YE7JqBQ%v4E`RTq` z^}}@3nK53ApC~~iSKPe_{@GX_?qdn;#(>RU#B2^BZ87A$ouJ{ zrN3zDn*YjQeZIPuLZYn+CM~S9u+c*8Ka;=a&VtPrwpi#}*lJ-r@Vwbdfk;m6=Cak& z$Z(Ei8W*?KQcT(d>PXXOK*e^s(Bc%Aas3flB8XQ`c7^)byYZ#rQ5a_nNgl;qaY~>3 zKW?G;<#xc=7CxGP@#we8LPO;5sZ*qHEqJlEN0&0p)%<7c;e zkDvW-36nDK#fwv&VSH~cO>-9(^OL&t^QA(1SEagM>wZABvf%iSBO`p`WR^P$&qpNHXg#W3z*XF-hm%&u<4m?F;GDxny=$v@|1HUKu zX?;`v-*cWo`TuzgKN7=#62pHM!~aJN*SffKk}tc{IpKOo>74NEWBBSA-V?*`j^QIQ zd}j>b8^gaE!@nNGHK%n>>H8yawI9`!$}hAn!k!s3F3f2lX7eW>K+~HsPQP*ah>rPf zxi25SOT=W*-6C_+I5#)L7Y2=z)(`b^PDgT)I^4f;ctg+T_3LFzT-$l$%_}NLq{P8l zm~HtApLk^NY#r&{!rQ74(GjE7%WqyG>d3aOB3si)*M;7i}3S3^S(#^8Z%lhz{ap}pCA*NX9O=KUP0u)CU_BNgaki?uAtv4J!wJG zv&=$cTY($fs*N@(I*ZoZ1sC!DM-Vxa7QSww)`VK%*92Jnx`U$S64EWmWO;=k;iXe$ zyL4Nav#{U70#LS~vB9E~dqn>-H<#@)fh^}VrYBK8k2p4g?}l)WiecH zF6ZRG%ppMGH^lH;Vz~OIbK+m`5TNkS#Bei5FrCGGOiE+$h5?S?YQ)q5WrnRAR^EKw zwUw&D1m%a}oAyG@l#r6FTda%kJwQqEg z`0DsER2m#_-$sjrEM5NIq|iHkLF+U^t;+ZL*#Fni^vijdLuY#%SZW6 zM~`nn!0j#&(8&{w>hVbknrmnrRN1IpsIHUNpft`u0^K<$PkNji2%H*!*Z1*PUVZv! zCYo4Kz*Y3PzELIHSl=XL(k z6SYa5*(E8-F~Jk{$)aGUKB=?2UaBEEDd;yO4-2Lnl7Zmi`lQbAdc}FkB;%zwS(|JU z%n+|&wl29$FjtpcE10iK>I|=!otM=3>gDDopEC4$$w|S&yyUBb6Z4X~@6j8tP1dQg z7weO)f`@C9D+CMm$(-Qiykx=9=Ov4R0dfRS)Fxjw5IKTH>DuI^V5T;rz{B@xA7kv&m3fv9c4@7oS^X~(|SAdTJ zHUEAH_ztiL)EW9+K)u`859|Pb9jLSN4+Fb_dx3h#@g?9W@Qc9xz%K(Qfb_?t-p4)) zls*1=;87rXOiF1y0Bizo1nOPK7;qWz9$*&u1>g|yKA>hePXPA;w*X%N9t6GyEC5dc z?+0pLx)Z2(AbWsqzz2aVfE=kz=71x>?Z9ooXMn#Ad;$0*Pa zF5@e}rNFNOyMSK<=7Ai^OpXB=7nA#e&T)@Kcx9!(Y2(&Sy(4{8_`2SHf510ZoOxcq zar;2OKZw1^#gfkAMS%G7{MOw!GT`@Z-o{-nhE}=vL_GSkt*^UA{Eb`v;msp{da>f3 zgKnnxy2{btU@X}!{>WhOu+Q5!e`tXAo7eau zNLPzS!ja)28ghl#;4wMof)Brc^FWw-TSQ)XHHfd&tlPN3gh7ofe&lgp#bmW_^YDf( zT=6mjpWkoJugpoOv{f>**eRv;8@Fs7@i+I442<}^f9xINVwsIYLjxOnhkWw7ZFuXp ze17wm5h{mj(1L>sOLr(4UO!ADZFd%~!sPZ)%G1%qnw`Oide;q5EEWGv16#NDZWyQp zbm7cBrQ8wY@Xfsgc~ZhPJOd-VEUnOO;^KIi*hoBFSriRE!w+5OhtvvOT*6&~9L=69 zs_<;T`ijM_5Oik96f(?uk?U_>@6(4p*I-Od+V(Kids4Bxdua`uZGPVHWW5e;MY#NET2KQnAPmdP*eY};^1o6%We2{^iI?+(}bHCO+R=E};IU9=O~ zbwCxm@s9eLKH+aQhu~BmQ9lz;B~f$uRrI3{A<1 z;#P1aOo-d+50_+3k(j&5`i=RuZrjG8k&VN$x3G!Kxxb#u?hj#bKD)YtPEpW;)AU@touriD$-dc06&q3!=Qamcy9Q zGpv0xHoZ~0E`eHXPKJi%F}GiM>s(xB7?#s2rYm}z&c`nWw3=1aygT`KOMYu{t0A~7mmYaTUbPfW!d z{7j3y2&>L_`rvxjg2r6uJr`L15Y*1XPUlYGv<CC{)rHpQ>?v^K%_hwpp^ zGvIp9k_75bl|~DjENro`)xvfQJ1ksgq4KQo8b}1YEbO+h-@+jaF`o?I4hu&u9JBBV z3-??2l!eb&_^gG8EPTPjmo0q7!q+T(-NNG*zGdM%7Rqin`L|H(aKc+GY_+i6!VU|y z4kx}97Is=FdtdZ!3;QjU{V)26g*z-9wQ$VBCoJ4=;ZqhqW8t$F9{tc8axe8Iw(Equko*DQS9!s8acW#Ky(CRv|Qx*9Fi`iJlq z3tKI0x3I%Pt&50ng@v6Kc3IeMVZVi1H!=CQaEFDX7LHl?goXPpe9FRSEPU3&Ll)9} zPs`1<4!$B1GHIXV>)^}K89siE{Ae;pPt*Y~v^dEyPU~b*CtkTr`HBDC_&VTGm?+>|ztD6kZ!*yuy zrumL(w|Os0o*G(oe(aWSAJx9k_vzb$`Qj97sYj{`yf@9+_n7Q0r0mUJwj}HGdM_H? zBUl&RFE~DXuiMRpOR;ZKd*a4;Znn>(JZnFt=;J)M*ylYw`}X+>o?Gp+!nWDx$9ZnI z&$J!$J+vmbzmj*qi=idb4^BVNdsyx9>)k(FYUg^aeJQae&vO5 z?ps{E-!3uIml~1h>V|fB>`EK1I}&cY4X3kjiYJ+!sVlvAF>QhO((+UM?c8DYJEYrq4@@u|(mg75p z;-vQRFtXJ?_5e*-WJcS^ z{6g41{tx`WKpI@RCn!Iczx#++<*RabH2TjU`2LsvpvB+)2Y!0@AEfYWfd|^GHcPoQ zwB*8Y+8eDrMfb_BlkAxP%s%OC=??t0e^zH6>j@j}4{Pu<>0#e?R($XzZMwDRxry}5 zi-l4CC?^xng+maVf_~={Ujc=$c}HyDuGD*<(ZuhCJEPviXXv^$VKDCG zGjz^Ja4y?&wtw7KoEP;bd|l-(pnl?%ZFot9L*sXRkI1z#|C?g?tucIE3}+mzILYT7 zTEz+9Rl&mf!xv*X@8Bv<{C`-%LjD(G_+Q8HH)8nT#_)fP;f-#B0$uU3F}>o1pBuv$ z#c+M!$vN?VB!(MXJM0;)v(Mx~tZa?3=jS5(JLlZ0%FdX+&3UttMw?$M+f&V=cJ!p3 zc8-c;Q}33$wVx(>y3Xt>9T>Q~N3US)R~Za#bKWf0+92VMn?Aj~LqH|5=1qo@JLl%q z_#Rh6n(tH$xNWueXrSHkV>hhM-fQbN`RI&bxMxZGZ&vZFeL7h|3R?4G!9fd0EIca6 zBsWDpXq~|qJS&{L>I~g7;b$X9@ZW@Xvi84j7v9XfV!?Cl{#5pvzA7B!M0Tw9sWzc} zh5Lf+hfNDIsp=9WoY{xUBuaLq_N~f(l>ellAMQsNuJ_-FyRJ-FZRMy+e?6>pi&A{j?zQ%XSfbO^|dXnVe`}Ym*@IS_P5UVeu6f&k4deBuKgn zg6H$DU6A;m61;$Ttp6eFulMBI&-=O{{vLWpxXuC!*I7Wx(^)^s%LpPbYyG7QwGNcC z5DBN{=CUiLMSQ?c+E>UCJZ_c;aJT>Ro7Yip{uv5m_RLS1xW>o{BFGufi-* zAe{K9rixR%^8dJn;+LC%uPuBu|Kibam4$}L->auc-&*|0Lq5uPI(A?+L&u;C1XP@I zf;7>J8-gzjK_-`MLFI#Pc#<8cJMDkP3Blhz$_^abxbC#=z>dYIzYnWBw2f!mft=0L zSv~E?;_RL|tK{?jV&*bavcpJP!xi{9+C5svCS(3qr895Y(Q+ea_(;34GsKr*juqZ* z%ek*#d^nM|X8;?qF}pbb*WneWy%gUGw%@-^%1$62WE^S4?o8|4A$&@MrB`ITG-zLL z+8>=}4r=DVT{dkg3!5x#c4@ZIx3Ja1HVZRZzRzx-J1wlqJ{Dx%Gx4qB`9bond7f-4 zo!{DHahL9P3hM;C$>>>Dpv zoa*8X7;QP6GxH7iR_deS6b4F~m%>1OXcbJw|YRrzFUE>wc6y3=Y{|a!0Raq&l z%1Yr?ZjKN2-=MNqep+mK(>F|gOE&Z~RkzCD3F_reYd^kb&)eOF?RPzSa(1WWgtChz z7skcaNSf;SqK3}garW_;!g)USUfS53CCR$TmJj=*k6mf~ky#Rt{FhsQ#e|IK`uK|CkLUo8o1{++xGDMDn0`T^{tU=m|3YGIfdlj5Bq9EE!zJ_pdn*NWH2J zcd3t%CfANtUhwMka(sJR-;)n<`or@oi{yy|ucrw|+KxFGJ%6h{QI|1x_OZ8ZpV8S| zkM$R1SECynngY(x@{MuN`?YF@C{%Q~HdCErEg`GD>tP#61%iDMb6|eMABjJRr3|dV*%KxubC+xjMOfeeTCSCm9rd--H z!lkRa<}4SNrUf=lt&#F^I-t##59*t5afka++au-U%4MdUK2=Ihj-TyK-cPZtE;Xfi zPVMA*O{v-E+23W(K&xyh%d@?7$j4n%JnyXdwMJyLMP#%`WGtmF5~=5>mZl1!uJ*v$ zMQQZ5@!M7LYs63VnC+<{rO!0yf3-bLG3d;w#^@Or-rv$m!G`W++f)3S7dw9qr%lx} zxcvPH?tBFQIc-&@4#rl!5UA&@#XEq`Y0hyiKh1aE<|o_slR)R>|EmrG3cn|YKNQ2C zjNwnm@MpnQK8N`!zUO29e-Xp!^cAQ0e^J50^yu5e&dEP+YhD)fkDnpcnNih;E3Z4i z+rSwcP5K7F_5R2CZ;Q#3tuqqw*V#Phl%9VFE;|F=Y~+1A=Kp6g{0R6H@Q+&lH)8(( z6W@Mpm_t_dFi zpN#l#1wRb#%EQ>^q2@TrHpg}jzshdjjmwk{(UmvfaO2G@d-zJ+#;t>9w}!D-?I#g? zM>cQbu&WMlMm~~=x!j}uua4HWYW2$HD|)nRw{pOxZ)l*G7x4NbCq{GSIB8V4c~){F z`>1RzpT$hy+&7neS=tI?KD9TnzIWSDJS*gc@9c%y5*OS~kRozvpKb3)`1`F?g|n$M zkS#7-2G*NLEk!svHpNkrOJ9sdiE$*cocfEGZkeI-3Dc0B4_2}bZq|7sqD}X#@9i7e z%--1wSKpSA@JMe+BjPZmP1x)Z#y1wi)?Vds@(7@*fQq--!WIj)4sssrCo6y|7p;4ocM_)$cp11IXg-P^)=*<>VVyETiT6c)r;)pjczV7e}N=f>b$)u|0lH63qa-JumeinZdzqu(kEoku5pQ70a`wfsn1-XQ#m zPic0}@v$@~zKZ({e1jD%j8mxiX(|;Lz^67aA4-a!@*x<1|D2_OcSQoac(v{z748-u zDt8cF;rmyn7yG^+p4(lVPG8m0;rmxCx%#x5YcG+<9JKOmg8*9|qujHd*r;6ts%hM9G_r8J6wj4ia?=iZT zPGFNszl8Q)xNf2KkT%jM+d=7*OnOuK0xMVcrD(0-OEaO}<|9M)(H_FpMe-#+eu}&mDtQZS1Eq10vv*3P zIe(WePN__=ZD!6q^S%zXL(TCHj5t@>IA#BMx!r^f)3XA)?D%9lwBx^N(;(YV_2u|- zq@mT?Cau^pk|R5%&C=Q;w4|jaBeXh8tBcT_t7vAMF9wG*3 zIuLQ;T|WCNl#u_G2rhZAMsWIGK*6 zKX(Nw51N;^M#4*nyRk}S;Tb(xC%n@kK;d`rldKFs$EUoJ^KX9WdbV$xL!2^(3O> z@bPVPiHi7vTw(Zz2J*=TXa zDB_9O?K8zcW6Qhp*9YK-XD4wsMY7_jqm;HdO?>t!)~uAd<5}Uo6xewgbcpP{enITD zQNdzGp38 zVEHsY$p3WRTz1jh^jYULUzdy9McvH6iqJKMCdyOVMeWsiMx1!%;&#!g_|otyj2mmj zM{!h~(kK78T_pRnt-=-Zh;NnUcV0uMNZ(o*@XAN|PRA~Kl0btl5YXjUFjB0hz+?l< zF2YPcrCl^mUA`0v=;X;R(&?C31a1RUUh&5PqY;Bi?YnzbDW;w;G#P*+`oIpSb_qM_Xl|5yp#C!VeV5XSp_}`@%Q5Fo&6+u@Yvh&Q6EggB&S@2= z=7jB)xWl$}MGRjKF5d0@#4o+zoZ6z9)7X{}o6|&(ZkmIXcJeWMMOMR$M8_?jiix>Jn@S@_x<6HxK$r!)&Xw>^qLbg1f`Easzpr!yXW z69I!RP(+^OM%21FPnChF@j!h*`Jft4S|{ry5k1hIbLlhV0cWvKcRb*#ZdS|W-u;}$ zQ=#ct84q+%l3OQnP-DX<(4`t5^z9(Gk6{#jx-+Ivo$hZW6AE|j9N~7KMz~MS5$=K0 z2zSjK;U0XqaOT_AkC}JdD*I@gb9He#Fg}K;$~1=Dth+JL1xChu;a&K9_?)lW&5W~S z2823(`c5yeJx-SrG%E*lEGQURvMhD)MF)A&do;D1Y6iI>i>n<7 zf6C&jXW_3|T=ghi^;L~sCs)OLw4@*lhNg|8@KwiE{He^UAhrn3^E_X0c9lRmwVTVH zQx!O;c;({uTq`dRyZDs03oXvDV_Zi>mIw}wkKd=_Q#mS3RG!+Ub1r>p2zp19 zu^vODPkc%rkCpVT;92tAd_Z<`E4Xu#C;v4TO0L{E#J2F!{EJ7wZVL^Ozvo1ZIEM~F zBM*7!CBD;{5AZVMw9akjG&$hMJ0_22XY#AI5r1!%BZJRFch03xjazpoo$h?#%BvP% zb-MF`RFjFVG9S>nO?@Y$OJjeL_hr~$diPR2VfS5ff8w=F4Y#xZQ1+O|HzR%p`;pbq zl9y*6VtViQYBR;}CewSrPdy%4(NdgR(Z-K^ZyQrTET7^3u)Lk~SswF<8f>@sWqw#* zkp7{ORiAq>@bH`O6K`g8nm5{p=OW@$TuFPb%h7#Hm#lfIjX@&ya8TuCrzDqd$(gIQ zoN@F1*w~G-C6ULp+R$J9#V=l>D<4Z`*f%MAk}#5E@&q4s(@^U@9LTTE-w+sjCQP$Q z3;bQOJ9VEf-vE3YyV8|gAxHiSitn~koyxAL_m0b_Ka`mHcE_mQlRPh7OpG$eD)i)n z-C6dNj_(c{yxXU|OmT{~a-`sWdWxz4kwlt3&6C*O6MF(Lx3}DwM*ifBrmT{ad&{bi z9h6V>TZ77PGh3Qi-6^@WYJR3UUD19I@~h01-1*Ef?=!q^@9XvmZ`_`Da%=N<1-04T zK{EG9&`6mj{FT#sH>dQ}UxN={`uZ}r6B>Wjfy&#}!Qo&0 z;)plG{hi|v1={D#{$jJ=_S3eW^gTt7cZkQSD^s52OXp>4kgIov?)!l%haZ?WdV8sk zFzAgVHSAGNrXQHD^7qhYZsQ#7or_7|1zx&%#XSEJ+Rg3yM#|%fboI_^@BMn_J0{ii z;x(o35MMHV0 z8+llDOW$v(PWNEf5jfDR&d({__hTEsA&-}p~w7Vl!sUN>lmHwMIs)`R!C(;*~ z_E44n!5anG{WpJFmA+uIA^n3tb$L#Cd#82wP-UmSM8d{=W3 z@2vNfv(W3IH$yk)k)hW^{{-|iptnFzTK+SjuYi6gbRT++rJo5MJ<@PC^j7G6@5abK z8#-e}!#U8~px0XZIndEB4d+2`hhAst=Rt3Wz6g36dcCDDf-XIBA@mOD4VHc(bm@_c zp)Z9#-_kFJPRD7u4Ei$Y)S*ewWzbQX4U3^?pr2vsi=neuv*AkUE1)m1^edq=_BLD% zeHHZgS^Cw`KbG3Z_gD_Fr*~26W2rr7SMl8+mWdm(slC%xsr!SB_o;IAcmL{*L~7@B zqvul>T~pPG@4rDjN3!X?w2fWR{_2fPdQG{?--)eu0quxy2c^IN2IH#Xse-2}74oPp zRpB?0I%xJeBvOwB8*E=npdPoodtM;g7eZF_A@z>ez+mUJB z>l3&3)JqpFxA91K`~`81C$YKtX)n>!UbrToVsAl;@u@j;pxhFm1132ep4rQ{q|l4} zl!p|$ImKQE>EvhNeXXcE+>5Tcqm&qzP7lYl!^jA-2g+YSH){`h1MxOwi;1ug-C5#h zV(y;ZC8cg>HG@$xsUu*)=DRW zQtHd>i6D;p@y7z~&Cprqza^aFtA(yUEZW~$n)Jytn+588la!mrY%goR8=Od?8&buyXshQI z#ZURPFh&ukqpf_6x%7zYw95a{PZU?%#NO#v zBa?E6S7U^i-AjL??BH{{TKZY~n)kI7Z@2DlI8wu%3JL$g>Gl+D-djCOSJ%MfbXi|onBiCU3yJAhq(jbw?)2IU=+bM_A&a0py|xOv z^cs4kd?9qF*E*p~uVtZM4BhE9bc@kzUC=Ls?(|w0bm_IV&=*5@dTlLq>9ua?S3-As ztsA=ZS`PZv(52TBX+OxN_m=xp2hRRj`pL7=H>v*gUi4b`lyvFS)L&KlLG;o6K_d83 zxqyC4q<8X7I6tU{r{FCwGd3O(Uo||{@FqO?(w~axH~7-aDM$Fy(v#>nA3pytLq7D7 z{LTC*OZ!s0q>VK*--x%d0&TsSHm))7D&)1mQ{#_KR|jgh4+hEfp8t=%_kpvrI`4ho z{by$OY)0J5B$<*)vVj3c9mxh!F(GlIqmqca)k#7V8a6USOc1w#3F+aUZeT!Az)@)G zIS1pmvFF+z`#EDvT2Dgn*$5`Yl7u9t$6DI^?mg^csBKB=X+7t9%l-b=yVjnUmmzZU z$-ST6H0v|(JbSJ6tbfmX*0Y}VzaB@2OnA39b%RuPBf7z-&&hKeC}&pfrm&#ilDmFP zM|h5W5U-c{GP=Q6*_%{0x&djU8|*T=L6@)o=hHRmsNDtn(u-a>k%%GxvkzMx;nU~{ zhfgrCh>q|>bc9z<#Jz`&j==eqT0D37L{jBYnX*4P;mIF*c({9o%IL}wk7Khrg>9ucZC9YNhtK^fPJi9ko>X3DS6?@#TL$osMO8 z)jLL(`4iBmrXin4k)uZ6wQE9>W#KiUN9kiE(;f#JnO~{YHptEMM=L<_Pa8Do@aXIO z?^Es{GhR_&_rh_`(E#Qs1N^N2W{T$woWluFGX4U5%Jgzk^^@&e_*8#oJ zrHs5(dcRH@T`+Ts?@&vy)|{h%(|tL8d304DdR4hoq5!1M=;wZsca##`oi|XYGLQff;{2s}l0pTz*M|cw_8bVaV=$1b?3ETUr;<+}qSp z0?0{kcEtXni2b&Ry%@2tjo5!ZVt)v`(q0K)D*fM!_Vn_LC8kOho zo3>!?>`m;VKmDFbU-v>B!M=}A`MDCiGYWrG#QrhtW$I@xe$BZ{+cJ8_E`kW|=Dg*m z8)thre7vyqmj1CfnFFi2XkA|Y=92V}a9D%wGX^H{P>)*(%|oVGf6vsYG-(b zuX4R@!3~8VD>lZ^*%<4hqVdSIW@KID(HNjR^ABe2vRCk8yXHv;w@3C)?q;y?s33cA zG`A|)N!@AhOjgkCogsWxb|!b;6hx`eo<6|=K_)`i2@$i(Z@f-E8&5rj#qi2$C0 zr!@!smLLl@Y1~;MNVqoz$@fb5Tj3;^l;3q0uD5W5 zh0g$W*5iE5cyrJDh{GB53}d2m&t+(!`B<_~3mu!=oo?-r-W;!JOQ40lX*n<*`X&62WQO{&W%~U^4R#*tAu{%3U%h38-E7N37_$JF#lCT*Jl3J z^FA?2W8y!RP93^yOJi-_wUx{UWAAx6e)BFHY?;n`Tj~Sj+{1Mgzkci2mL(79dnQfB ztKY&;>Bz3Q1r=wUI1v$y|AII(S<(rGdj`KC--Y_`@LThjE>FRIgy^q%##*?ylBU5e z73viij^9u4TX&ARa4FL0$FA^c@{-K#Y`8eOs*g34_xYS(@Sxpp!n*thcOj0Sp31h> zrs?wgMeMp4Eu3y1yW$DvLC;KA`8Vm3XT`V1#wT2jGt&5*xS{7=_{rVb5!1#lyl%?p z+-Z;I{cO4SMQD4wjbC%bw+as&m)CGv6*f#;+9M`3| z>t08l>!+J&-c^a*1)q1sJ@I2eKaCl>s*g65PeVWGLlUw(j1}M+ z&HHO#pYFkQ^rG7^_vktMRg8fZzq8XtrDG-LtQe!o&G80nJKV1jq$4-??zm_rynkYB zBlzEea#NcOhwsQSo-LU%oAD3(Dee`9FNJF=6BpU-HYjc@^?)WP+k>?z6Q7x%`{blpwvzC&l}Vii)hTaGW?7QZ-5Ai5F~H<@=2SnxT)*m3 zG)ZO0_~B0Sqw#wtl>d3)j!fm;8ReXiqfNjkcQY;?va(R?S<|S0cdtjDG{3=G%%*FD zvGn>m!ThGetRPHtev>gX{np9W0%av{ipQ0CA?b;4TF75K`-ngN!-3otPr3U)d&kLB zbKWr&*N><>ZyelJq5Nx~C-0qy;pdH8%duh5b^Nl%93QXFC0{4xIX;rL1DMKk$ymSsL46N}z^`98|mMa8^{auVbB zD?r^#umq?!uJ*0Df78Yb$jcGr7xkcgs*V4#Y2(2?p{}g^O&bs7rrJ2FPqU5F-p^>` z-f*;S2jO0(o&1_DtLEsnX3&=8ouw^njow&0PnLxXuSD8<4?HBEi!raL z`RK%t9~oXvd%KbEqkQynC#UndJBih9zel^hBNw#Wg|^+UJXgCV-Dtb*vh7xFLhbf( z;u4L*?RF_;bn7^Zd%QM#k~(C4fi*PR72gE-MSVh&cpc4|b9_}YLT>8Uock5fTWh}= z`bFo~g$(=O$cy-Uy=@0dTQaOEkKnDpBHd_O^e<<*jfbcEpU$Pjoh?J?qpI)_eU17g z$>DR!5M+*#A>!-%Z5f`o?L%dVwvXQjui54bw2cfrlqp|#;G%wC?y<}kv*wb_7Jc;# zPf_PBxQpJRm*yRBwCN0l(uv9p?g&14v&GAW@S-xl44%f*=DZwmC2fyB(d?(nhT0tK z(hb+v5(QhI^pXEpr2XuF`pHJRLLXTQwWG3RNl@SaOr55o=lE^s6SSSh%|5atzw^v? zGhC@LHZbi*ZDx?PC9fGW^9JahqbqLYTe}r(uZDK+;Xv1Ot{xbZnaB^$PH`?gq*Lme zqjge^Tcn$)4-kHs=Rb#^WRYn3S;dLJXwVtqPq|0=^Y<&l5SW}bZu4iF*+miLTyobFk_%%aQC-#N3Bn~@~XeNm$(!+ecZ|LSS?&;^p446 z{hL3!9^3)Tql+riIUreZ zlhrevE~0i3m9JNW7wbE_{e=5~S>SX)`_^IdMjraGOFn7++ocJQ*A{UHI(Mf}b~M_D z43c~wv9d_%_ebRWyNJugLA;&(R-B64xDjW8I9+_Ip9=B6242y|y(AR3@*M6vJn-@s zZ~jlg`$yJr^u~RX@3Y84=_1qkD#*eQ02cu-1@>9l*n>XeL5oiM!LBUp;dz^1#>MTd zSu5|ZZr*URu}mGga*aqf2ICRQ#g~ysZAJQoV)?pnEQ78N&x{{FH7QnL{7|S&>ZT5i zPEpu`HubSl@zrtovz`4lS_NSQNAUYluya6 z3FJ*Uj*oWZC$|i;S#Aqy=dtW{?2Xaf(jB95bfz*o61w3@m69~)IZ zTfi~t(&joPC#>IZy+BV(oH;W3>1x5?eeGj`)}jVo=#-<*f_6QPRjTQ?Orqq%HWTF7u;v;SnFx4 zKdyj2QQhlB@FcVJMnu`-ZwTRs$7WvxXK+d|u6DYF;vBNPqeeqAh<1LJnx+iK&EVzf^Z-GoOdwcj! z@M&-Of8cwR??Jxb=3~s}eGN!k^?nyfU+kqwLo%HkD9pSxQF=+ac~73u9WGeCWaK=M z+@kC0no>tzc(;{Stmd`CtXAx%&Cas=g}hgQw=+sOYX1LmHfT-g_>ebi`F;1^%M-TV zEM9V6G3%yVKX&p6p^}ojv+5)^nb*Hwk52btlc4;pvS+M(<*r=^qW>B&>~( zu0LcFoF1XCZW^tT{Z-QzteO2y#Qu*F`~MxWNACii8e&+*FCESq*=I-W+AHCV{BMfb zZ;jZsKfxK{7bEu1MeJXQ*x9q%Gz$Mv#Qu21E*a^J@JAx{{So_jBKB7zcHJfFjN;S% zJkH3j`8sE0*WIDc$bL)2{@I9qW5oWYi2aF({SPAc!x1}^!A+y||2bmUy@$@oe|E%v zUBv#Y5qtRl358!9@!uM;e}v1mhGzfDPq3?fD{k#)X{RBoJv;lm)iAA* zn>nke$Cl~2dX_b9!Idm-q1au=(zLt#UYZW}s2#V+n3t)0?Ag7jzdO1&=57!Dozug` z7`nYQIKQVT%nRSaQ_(uNryE3Xx$V{gvp2`=p~2x?546~)P0oDNq#0Uw#OU5v9*-vu z7nhzo(H*7_+$C_&T5d49n}_K?Z|;KCWwN;1w^H!@^%ZOGlZ$d-A6!}ez`aZFx`(G* zaelzQu_A9}#%-AiE-nJ$u6tI`xodS~bB~SBG(VISyTeup!Edk6qKTM_U!0cwii7 zyTvR}UsY1u&VguiUJv4;dxpIW7dY4287F()4B!U^dxMQHf*Y)Thaih1do0{1$l(8w zg~tUi;~#y4U`DVnm?IHXpDFi#LE>2~NcfT<3fuH--D9#7UU#4=+*^W#(;c}AmlMRk zO_2DX5hUF6g5Vz(WOLFnLB(U?DZwj(xgxoDBm@6$3wtb_XJOvLMS|qBC`dkaXSc#X zD@ZT~Pby1h-kZ!@@ll?zM0~P~|x)NI89L ze_arIy(u^ozHJBgQco6k2@)xbl~122wnOG7m$BJ=v)#c z{l^6fKO%S??MLu>>Q%6x`V@qYODLQ0Rtb`iZGzCJB6tJgtiRr46`sZ?qQ_enqBa|Q z(!!L59TsLR>;sAp^8}$oUJyDASXdM!{SAW9;g}%lnf-~B^OWq+A$0)|I`jzMNc{;? z?t&oYJ|%b)^kvds@o7Ju;S)j1GayL$R|+nKUV@iUZox}wuY!H>i{NF@-P)5EV*d#A z7yKylOz>vX7o;4E1Q*es1aEmg3vE72>q4_lK(+L(px78 z{k920zdeG`?`c8sp11C=3*JsU>I7Z^KM2AXSwZ-sU+@m%6}*%4eS*k`ir{6m2SM`l ziXe1Ly(56V7A~@|WZ@n`=>4o9`8Z5w*@t>PE4WPn7D)Q3&zfIcs?cfcIsUaUf|D*Lo14D?u_UX`~-Ou zM22Ps+xT~$hNQe0A3=?o%m0_jlQVP=#*kHsI4^H(@FjU&Ogc0p6JB`A>vU_U`!Xi= zF8jj*r6og^8T_}yQ+^aCjOX%%vzcQM%<+ZuH*iT1zw$?yWbl+fM1+ZN4p63p{88Oa zqqvnGBt0YDdEn7Jn#Sb;Ry-r!C8WC$H>IoegeSO+Pw^_BG9}{c4St&c^3(TO3ymZH z9tSUMgd_9oe9)w1Ec_FmXzGl^qd7NeC%=Q>J>-yp4o?u(rD+Nb65TwpDu#D2%pk>l~Q><3xHsMJm~zun;lbJr>6 zv0HHye$p%Z$2(Wlu5&7O}c=f?`0>YSAuh36(~ACK0@=LN|OoW%XO+~K>)x=%py#+ifXE`iC*Y(D4P^@tMrygxjb@A=x#e3JM^IUlGso5^jY z9V=|9Q}?f$`0}fKohygOUTV=iKlBkjG~chgy>zzB%aL!LFDI|D+@d)9y3*I%v=3Pt zDeZ?MY5yH__-;Q*C4~3c2wpQC@>?U!Vd7s0{@vh_k5R1`DgNf#EO`G7Jnd!CS-x}O zdY&{TKnjSD+go4l^>`L#)h{aaFy( zhe2!KXbi#LCtvh=xe?3!GrW2|=YpryW90>$kAI;SD<3vzRNJeS+TlkMzV_h6Nk5ha zH+1gQ%O0d`aX*&XSdUkau&?^#wf5=`){V<)Z&WJJ);ij8I1Z2)GYgxV?50a+R9sxWLf|9PN?O*tx)`u{E+Nx|UV? z+-$Ry^~L%a1*$(u&@1x;I^A29Us6!sWArSPly zt@6DNl>K3#GYbDDK9x^v2J-)^^90KOn-RO2oens&XY6QZczP@{={Q?wD>aemj#%>C zcIg4;3)ifnopT%% zWXv%vNM%%jIE+UO|xfR|189NOlGVX1)sdR1!NKp_!Kg|CsE+Hw3}!g%wTyfTlbaYFDa=5JG>k? z3ggBZice!TXOutrGgW1v@MVU<>kWRI|H9F?&_d(Lzvs`9zs2~Gw^A5Sd3Hu|$wbEm z+RVQ)@G}1$o**pIG7btj&sxGx;X{VCk%j^q9eI+gl=&KlL7UIU%e z+7B-sDVb-VD*otDqY3s_zG3%Kd8G9;I$|q+y5Hy&cb*@+_{oOiYL<)gew4TlkK=wF z?)%1ZpNe~B9QPY=-!YCmyq#V@j{C3TJ~)m$`l_zYOfQ=Aq$!^}hcHa}!uzdaMSt|0 z=r0NBI6155Ko3U?RIJeqaTuBvp-+eoPM=bJGo6$+d+$B=oRWsZ|MUARqpzTQy0Frd z;-qsN7z5UUE{jIYT>QQY?36$0WPtGZsA#$yKaG`I$g9e` zCKR{mgZMv-KH@X&4RiEaK^WDC?l#$vyV7uH6qLpjHVxr_5}ZnAtbP3^w3hn-?mKMQ zZ9td5a9Hg}ej33x%(sD0{m=kkp0AHjgW#7DRO-K;<$IiOh)?~U`oj0{=^R1~ycRyq zr6u_ieC@bP$hPzQL;R-QnKz4cHfTM+_5NCCei-@=jPjm*YJNd^+|$roY|6jtHH-Z- zl-1ewuDiyivP+%_XC-#`K3gz%Q5fw})`?#-Nplv$Pmm7&Y2Cj!9k_3lAXt|2;y1@ zF0$*@SFC+WDC`3^tnT@GncwDo1#$GU@Bekm)5hD|p9G(=`%7_tf05sx;dhMRz{v?u zdy&l^{l8J$>nv?~2Yho8w3w{A(>cNmz`coZzd;@r+dO=Nuo|1{e8n!N_Bu(AF>8%| zktUwMN5*i!=_qAOCxI;{pI>SuIwtA9$8;y<)jYy;{LYlOn6m3^12dqb_u|%+XXNRg zhstsNZ>(eZRt0+{_+NLU#Wkma81>DQ$VNx4h*= z(Y+_P<%hj|+P50Fb;cZIvyRZ`OdTnH(M^2??WHDq5q{F6(94tw+ABUc|E4@~ZxnMt zcZ&9tdu+Ha8*Ve5y}J=w9gAw0=Xzr?=nNuwJmv(9g*ZT5u13`fFT zLztAsONQ{mZCK@bKX|X%wtn2Ub^%Lqx{u0@f;`dj8(tDrf`%ip%zK8ib z`SeEH8_1`x0%`l+ZvyuLe+1kE9ORSSGJOd0D#;%D7&1%kj_Gr=_uu18$5eiI7rsP$ z{1|*{-3x{Kd-<(-GL@^<+w)pWPJ8wPyO$rEBU1lF`+ik>_}j99UTE4TcF8dpM*WfO zL0c@4))2hrrL!5=J`1CqX*6;t9InNNi_uvQfNT0K+O_hKgQk7Z*Tk7CaK9~W_HWEP zo};mg-Y!;((#Ic z-m3VOj!7e5sJ~xnyj$~gd^w*pqr^j8-Nf6O-`eObaHcE6{k_N^PwijnBge9tt)#gX zx1ii%I#6hHHcqlQxOd^sQOSiaa5Kc;N&M=22a1wwoDnYu_jBHA^VOQ=3`f^up zw>e8;^gq(iakj#hiIrC)ugpCRoB!msF77Wde#3#zB6=`<56<0~ewi~Zz)pBH1?&Rq zjs}%WXGwC5JzU(3AMn{(NGHvO#20&LJ8FCI`ExW~jtIang$GGL7(-=A zPv>UUW<`7O;EmnEJpkz5VY)+`S9Pu_R?gQ|hE(APCzMu@-p6Xwh@%RBC~vRi0@<{a z{0%~%u+9W+=!;3m=E2eOnRC$6%T_L8%>y>}$HI_T(W;qO%CEetPECHGv-*7HQ}z`4 zrH30sed77}=zgO^z%SHsiw(mZ^~o1){@puX%Ksyg{A*77Fm+ntLyR{0I>mhnN<(Ry zJAG8YC9BH~b55$bw{eZ?STsaVUe0gjP4$`}e;*@n@{``9HmiQ~dfZ$cU58u3=FiB( z4CTp<)i*r-9g9K_=~ztml&J$nJ4>rRKDuJraXdWu&$=-QCRYAxWk5ubPpeyZP2 z-o&Gf(_WNbt~zu0CLY3Qyr?#$aJg*IjvS85_a!Pb`3UFPwWT2boekDu(xLxlAR>t~~`ob^|= zO+0_p#i_FVPwJR^o1xDb52eVD&W?%CT-?lGy`*u1lM%6zZS=zhtto#%<5SU>xd?M6 zQsEU&bj%ilb}xI2KXxWK<-N!qvH@>-e$XByCq#3}E%CCWi|!{@_~-HeyyYLamaDRz zDHnqCZLSWvAG+?^MzdVivG&Kg?^ipCpZf}$Wm|X-o_|Zy7_Gx>R3* zoT|BW#Ru+w?{l?L^%vX&{0`1Unm*%u#Gy8d?Dyh)|6iEM8M>009;V@&xnh=c?pb}e zb|J4&Ud(oXAg2{RKZnIBvsE1XeJhrg&PPWp}Mu1>(Q7vw3Uoo5hy&Wvjed zKd&d$&H96ADf6?O$79YTWMZbB$)TS?j?ULj<@b?NjM6;x z{;>rP?8rT@9PUUP+TgGqc?15?X=%2g+XT|?>{8pI2w1x66mo`uI5iJ4}^O#FA_QgO)AMN7~Ow8c# z4cWKiA$ty4=J20yITQa#$o^Y+$-bX34!@UyL|}sWw}tG#gNN)#fewEFK^T|-e{snE zRXk)b0v-OokiW|Ne8_&#*+cms>A=yLApYk=_V3{?`&&R4|45U`0{pQ%NMjxyrzgAC zN*(^tg(hq|oA2_4@Xr9Iy*%Q>GGqS%cVxJzd zUm3A~IAXscV!u6NUmCH0CSuoGy)(+sgAx01#6A+S{~r;%&aOD4`2Hed|GS9&e@5)F zrmPNhrgul|Ga~lOBlblRdog1FHxc_##Qu21{xxe~MOiMQy#yV;)gpS9p);)b;!<_; z%h#=0wRG*eHC}Kwakd^8yhi_K=gfcOFnf;qeTDfySO1NJu^a1^a=S|ZuGYVK`j-nO zvTDV$)en@sU>}G(TZbBPMmEN5_IdfHuX!P{X5F5y?uca5J9xu>&5Gss@oNmv zK5gGbTYJyltH*rZc}gguvuL*!Zn%}>VoO)9SdYt`yB_$AxuLvp^9{dh&Mk^+krRlz zcifyGGZ&rT^~Kf8?p@(6TX)|*Ixx0u?Q)%2 z>5BE>fZOU7YxJ6=Ft}r#3 zS2nW)D0qX?Rg#>{mGH*T>ak`3`=KKDvX5o%i~yy`0bNBRnk`*$=dH7s-gf=K4FgN>9Ju2n zx87vP&?Kh|=W=Q?Z|M-;B{fC~qw%Y{)Ofuf+Os*!WubH`+11Vkhb-J{;XVsB-=s5N zrvw)SbM(U3-d#a+h7h>K+SggQ!$OS-g{S#`ow0gLZ~^fk2X)p;>&UV%7VKwFmbLE@ zyaBz++9hXomgyBi@ZPZQy~r!YJ6DkS77G&JHtSvyL`gM!tiY3QoJf%$!FJXd1kuM{ z5k!yD*}(+*kS~ayqdi#(7Cm1VM2|Toh@gK%5IyBh!HX%EpxwliKp#mav7?9RtYLx) zvR(`4TBx&za?e{>1gd-`LGoL+a1Zc3*rl@ye?;yJi67CdaxW2N0(Z#TpS5s5Q212~ z4_nxeN~5zy=Fa?^Sx=Fjbj_JS($QHy#apqk6B^0B(87|1<_sS0Rcn9ELURUh5n-UI z!p#RNAB!w3Sh(22qJ=9h)Y&}YueY#l;gE$-19kRkzu>LZr{HbWn_z*naDunPtkk8> zIAsLyp5`!p{j7NmpW}(j5$!^ZnfuDhg6@I?pUEm9n?q0#=oKds> zrvwLsvvNvbXXI3lf*|P>1#vfL;c%C3uXJ`;IBek|;gRk!LDK1?&2+CIeL>Mp@H5a& zkoe4*InhgY(m5`8H|@>(chlBX-d;h)CkVY32@=mL3x@>>Ul9avzu-#fDJXghl1>+G zR(Kj~DE~bc_FC9y;VNMFJ&buRd`3!Tn#Vez;g}uQ~^ItgnXd(t0 zNB->xFKmP(a~~gNC>aa?geMv}@#F@v)LmQFHP>*jaKA9JOZ(Kngf)f$@icCnWw z*gwb|xJP)c4+%dB6rRop>AZ}YN5)_2$lt_C8qg@Mb)nBPN9|>UIsIgoH3#B$aYf^G zXLH_Z=egZEv~|S68fT@uth!=RBHT{P=mE!$3Tna}n840%}8u+oqBI+NLdNV;_&$2eB)z z9eg@xaeu^rL&QE5vG0u7zZ9_tV{XGqjJSjGbuJhctzir^HloznYHYx>V%_Ye3=76w z7&9>9u_K2uXEQQ0;|JsanUZ(iM{ZlXmP?6Naq$j6&5#Xf2CH%i26<;3_7I)A(Mhs` z=obBgI2HsEawS3f)^&pPk)oB(Fzgkifj%RM?0Z=d*(QESwDIpe&3OIVYoV}7`#ajN zb>g9Z12xgeTH&dmiuP;WVWzjZfV29wbK&J|7}pO8uS*eFqjZ&ocui3FGIOzv*AFek zPk7EO30rV9G>;X1cJsKWns=+Ulq2 zFD|}%lK*F>Z~Me(jGJ*{Io=g7ZjEc*{cGAAGxAyA#9h6)uD8lx(YwapRzH?2H1@Mj zP18ubbF{toE%<*+U$oWsMU=;^RksxBV|5l4yMB9}V`mdK*}hME8dSDc;1cb9;k@TD z_PlD(f!5a(^ozd+uHF{bI;e2mXlrc^| z+w$lY*`OY@&$LXsvC>Z(I!i44|G_%Ce#iLzMZ%gl&OlIyn$T13qPHg zSABWZN0_$DiL;OWzw*%Zs5A<(mqgm;YfSRl2)=8vHxIko3LMi;Z=-f7XT{4yE;=&7TW@ zF?g{eyiL7zP&b~Z_iq1@Jt4t+w|aXU{+ax1;4LMrJBO^iEWoaKOuJV+dEN#BcG00jQEE-gMuWp;A!KoF;N+~lbzj+^(IO2K#!h^%KecEAv-tE=kj&R;^_sWGjakJlV-RKecCk`Z;^nWrk^S6v_K^}5` z+pD(`U!o%Zcl%R5IVzdbk^9RQFZZpM7;iyy?mceC5v4q`^AkFQ@M>FbCGBP1sAN+- ze|?-HvZq~V5(a9|896#IN_wy6zhd?R*7VMW&aEG`^wRzRedT4x2bt*5Yj?bR zhAfDSj^*p?sqCMhP};~let+vks=VDtZ+SJAAswCV$ZhvyneBd(H?b4mr)r$JXv%Wl z$wrnB=T{9W~l2Pju@K|NWxxt`4a5&LnzYGk;1Gn+d* zlDUoMUG7+J2mRteEs@>kqh6*b#{L4i%-h_!NscEnhm8zRWd7nrjJq=8-i|tNpZk=9 zJv=YaKm5fvwIwGnly4_5CRE@r@N^C=ncqg; z-dvAmUqSBtm~$PHJFn4aEH-jy1e|%u5gMF#i0>4Qc^}_;zNYM;zxArfrov9M58lZR zP>hL=kx~Da8;^ep`+dw9`RBL62l3i8Kd-T}&V2_aI#zBqdUzJ0;rtnrdHqtxjS22V zSQ4^3AHng)*65waXiTL0ro$$|ETZBcGfYT@jP92Xo3rmoX!qV@5tL_*ov#iBkou0! z(KNE((X<6)ai+?fM*epcZV26;b&l1{W$z!>~C5~&)C>sSKo5Ky9Vv!uSMF0OLzBecpXz~ zuCPZVPq4iRNJj1)+!TL=Zim5riHYny|{96`Tg$ z1fgGEkj6S72z^!xLa%Ltl)qwO)xy^Vp+^UK5dF+up_ET|f2y3vEX=^`vP(uOzgkxm zTqH<23)Vhh;bIHTy5m&p?K}-xQ5Ab+%b2Kwe{_^FuudIG=!I#e^50q}p_A zr#g)p3B@G`r6qG2pYY!fF9(joz+T2EK816}Gi!gKRT&w~f~nnrl?zsW+yD{~aQ z-r%SCFC2XZ3ymZH-aJP+iuh56QW#HVb4GE=FxA&AtL)RzVw-`mJ3K*GR^jaduYf}b zzhTdF&LbTMA@3pq&;8Uq(%NPBH7AmqcVC=iJ!8(CtIvBq!-F3&XRK$Oy6N&CWi?J> ztlX91?0|=Eg-(?$q00>iW1-HH9mk+s^?Sj%D9xF0=00j!#wAB8+>ucz*EJq#A-u*U z)6vt+7=v*W?9I7B#$EVzmZva(5cu_@_qS(BkGU6fpC0}SQ|A1-)=Tv6kH+$x>v+-2 zSAM{|D=((NnS=f)JjIvQyw8Jw^4e6~blyPcQ8fPgJY^`6hvt~wtBg9_nYar_I;3<- z;V!^UaVmb^W;=NZLapZ$pPF-a&}c4Y&oM647%^UEj8_Ws%ie!;7K*A*UuW~tWyksJ ziTewYe7N&GZ|0wD+=yQ?&%1w=*U+n2s9#PzqETy>b3nL@KBDVf=w)!Sg*qbc)r@Fb zoYFvQ1+*>|>hLY&fZyVb$sIM?kU960$^_$6(USI`{)Elr20MON9#@9*NZRn@Nyew6 zZF%xQ+Df-Ty|nV%)y)#(k-Mo^)dOb-7ZOi07tj{>QN`_O+X}r}iSH!zRsVDf+OFd3 z=ZomlrU@*^{g>-aB7$U5(#Vv+rvJg4HC@m#FfsJ7uxT;)Jt2R_o951Phabk4&Mf~i zLq{4iXY0JK2MUm+Bg2!%C{5{vPPWT2!?)1*2LEKgJz`%Pv9FETw?yo_u`4az6ZTmDc^&x#??giU{{H7@BATH`XhCCnuGC--4NInDqH}dXcR}%>bRDe)31%(K%b)mG34&+#&Jpj3>@dq=!7lbT38I5#=r@JeD~N8E z7bHF1PbT;EK*jIwAuC(E?r@R&`I_-`sBOgI406+$s17v`mOqRSavp9A`t}qsszYgS zU)Ts&CaOc73oi$*!npP$Jjm2E%AfqNwNUsnFN4<`{51cCqfhNl(3!W+k-xCHsc9RF&*(<%DRql%Z>Jkw zarISbO)_u4*W+a=Y~$!g^XT`N6q!S=eyP!y-`j9=nTxBM8w$=^&gBlAc~%e6Jv^~8 z`T>2N^e5UBXYY5KH)i#ou=-2QXLflziEB4sVRRlireEi`)-5!Tnk7t+`hC-%Zsb0M zo%LSabkA2W`dF^Kvysi3v+IFQ!2Iqk=At{w%%zgH=GxR(D_$12>S=V8OF8>FNS`e| z>6GpJAE19eLr*Gjw-x=o`gG|Y(!olEQ9RN?TseF6{$-^SYcMD4*7Mw*8;Wx?`F6UO z;`$@{{66AQ+GU&eW8ggy!fWaqg-T6#0>ldFKsj`YLhxp-SwqTNJqcPZmR?v0^g^9U zoNeRp3B|uI6hHS9o%E^XBYb=KN_>bHvzFRVJ$uDUZJqZ-qm&Qnc$FZ%u#Pum(;2es zmyc48sE*fv6n%*G$ie<68{1WfVI2=WZ5{O-t3r=zpxdpY&f6&4I(VZ4H^UFi=YIk{ zZw=?`JK#6kd-`J5=azaO*YOi1;P6A-10)_puO3wxc$E7vf^@scL)HuUQ{{%Qn*2$h%$uf9aMpBZy$^iHpYU@% zha2zE*2SCihB=R#)xFoYEcrsc2mVYl&#pDtn~CR`rDH#9w(!WP=;-uN(I8p0bxj^s ze!7g4J(M4Lm;MjgF+G!dWBz+Ayvo~}hySaLMF`{g&gVWK;hn{Igcq*DRKaoU$6AL- zWciBdtmIYkN*8Xyy%qPrv2Mg!bM^gjb}U~?OJ!Psn+Z!iZB@Q}MQ8F)s?N}X%({r$ z+Jr1?MED7JC3T>3DPP{m<_2eP%~^Wk2-oq*gra_f3m^QRIiLH<(OABcU@gSNtMk_> z!Z>`zi~p!s-VC2T(Rd-$ZVuZqi|7+>H)^{_DXZG9xxR%%@9%>j%l$WG z)}5ow-@~V$G;fQGmT3=}l6kPMwXtSdvq4$4mSM`9+tk=g9El=t;F718pr4!X7d^u= z!=*V4eh+t7QQzsO!B6Ib^$X=wVHHj?Da;$(=XBE1NA>Dx(p%{{x$4S(J8`Zfu_b((zdMR>cwS!&Imag*xeqy))46rzT#rxt&Z|%RawAt& zpSENa^t8sMxjgUc(x2%(xnxr+Pd)j3&{KIeIP6u7j@Q&JFDH#(j@Lv4=`-Vx*IuSB z0yF-2O}eo2*LdvN<}fRG6ZB}v?l1*^p5r&=LF1`xC;{nd;vr{bzuH-VviC>q=rTYkqTYz}*~4(x7nhmAPw{-uV%C*om>=nd7>%$9?0C4kHJ< z&RnuE0fN(H?(me$&{|#t9Pjj9c=^O01G7WJv2iA4AK)|NHbKT~&j>R9J0yt0bV`u% zm>K^u=iU#gWOw7d$7QFpK4RU)^BSMMV&O3heG89Um_i6C{<(t0Hz3HkaDyPdh-8}P z^feyRT>N1{=JL%N2II^QWS{c8P>}rUOsL{{-a?&ul05@|X|15g!bO6(uNTxBfFOg! zqt>2m3HCPc`9%m*Sgl?U2)$LMSdd zC@q=G_=NvNshvG~k*mls#> zdp|>1%-fB3=j7(j3oze)yqkrWFlVj>pdTdAQ{4MF+COzE2bEk4IvR816(VJo(x}D~!f$r== zm(`mz23$=%F~Ud(bUITQH(99ExTn^sRn^2d&AUI6}OU)U0}A4q%K672hF^FBR^e(=@y>KzUC zVUE%kC#URhMA+mu`x`Mgxz+wgG)-=?zY$}TllC{fGdW>@U%>CU{SEs}c60h}T)&30 zuZ4zV<>r1x^gG?5sQpTb{Ayos^&l=^ibLBZbP}zhm3g~JcpbQX8~R*tY5KSwS1az% zog?l~Tij9z_udGubl__(-l7oReGxp}O?I2b>kZ-EAHm~|pOZd}u#K_-zH~*via$1Zmdn@FxeKYEh1LGuNU>k2Aj>8l@pEU*Af-y={ zI@#scE+APtFJf08;f(xmbQYlO(rpx%bdoV0&pm71W8b4Tx>ab$hI=V@Y^Mf#)BnPQ zAvQee=J_R9A&bR+CV*@2q3796oqb)j%o3$?dR zcIirjI&Us`zGgh#LE}qj)ThZrb%)2%h14FAO{RYo9^K(txB};3!U%9-5D33bO+sU=9GuG(;a4CbN>4Xr0-(R&>do#<-YFY zP2{B~pfAv$sxL)7|606QsWBW#>z=~T8F^l%FD=)JCY>lOU_Wed&fx2rU@oPlTJ~?q zYR~G9x|cmdzZvvTnvYW-bp?Lx%dN#c=0&mxPpDthy||xsap%hQAJZqi*Y+JqB_kBX~|PSZHwzA>3%3 zdQ-#A_v@a1=~hbn;Ygf+0$vU0A7Ao^IHk#nBi}Ge|rI) z$(wv7@#<}Xt1QejM+R?CzQWp7ck-WW?N8BoBK^H#|K+6j%l=+Okh~gyPHKPP&HwS| zq^co*$)av(9hhKFsxM@he>r4#n1VmgIjSo0ssE;3HjU)t6-`?pFKL@iBY(;FDxc;m z6n-hcm4C_eraoXfCo<>bu4&T7OkGO!zxZgF2_nTpKbjXBDL?Ah)jmu=F322+>O}o? zl6=a2ham3zEc7jOb0(@2;b$%Ev9Q-dqB}1$UVlGC9L}g8l8N^Bs}N!;!`t=un!^bj zieXH&zdsiqvXNRFn=26B`SkbFS$cz{%zwq9PxNSn=bH1s2jLkh9ijey0-BsTKUH8&k3JsV zD;+D*@6*pG%681odLM1mtQ%@fX~yv*W-K239uEDkgnqMTskKPzG~HR%yCX}?`sRSv z!{}?T!ri=M!EdJE(nagem_4244s+prh~FkX`iu;3JiwaiZtm30awo6Wg`D55^e0}C zH8%3@@<_FwbZ)KrF?X#GDV)|yd(bzuw%g76h>NS6bpD2Qn?=eG`7Z#wtDI5fx7OTJ z;OY#j_5irK43$aYg{L(j?qzP4CmSjcD-R|n(tf#c;VOP;<#oUD_ZJS_n# zKT1z|Qht;#?r2gANX>>sw+FFxOh^N+r+cex1e>=Ec@QcE_xKjbY)Yek=LGtI^^^V9Y(i()W z1Nb?2#o3D=V`LMj_L@fHWG^Hllf9|rubcE-9%Dtlm9eE^&Oh<{@hLv(cY4rQ$%){GCAJxN@G0il?!#I{n9PaMEtBe57S+G7yBu+)@bPIpyuIv z#q;d5Ra)KN)_`wwUo!0tUYV4|jeMcXRVL{yV1h7}a`|0U>w zKkH>BPR>gZ|19UPm@f>OaBR}c;EIruo)$Kmr;+X?vyOgBdJ^rVY2?Qqk*1OTgH2nY zhehXMZi)D7Ud9=PmtN+K?4NTMpzNC?_Th;Aw<7j0N9?~7vG0r6zm8pH%|j}c_vMKH zk0N%nRw%vkZkEAO9Gi;X;0kU=Tw(8)bmy2jyQH6M*DYJKPIpeq!d;pAY44T1_kmT; zW5sH7?`8Ak5=cgcv@x@#^j;VL=a;Q|V1>C96Qs2d+@&b)UT%U9-t&3cxFdb(J*zpQ zw3a(jf=eo!S-pG3S(jm&gqrS)OZO|#nU2l$gELA*I&_`AmNq>f-fCT;r9ws z{-*^g=ZJ+z1exgf1{ALE@uf8#rH(!T+FzPYVV*7)Wn##?#^V5r;GGXHkabn}+#QO-RdZM5f)Hj>$+ z4X=EZyBv--Iu_ISSB^F=@Q*eU!$%tvibosqzAd%HJoY~oz+I?4Tt^$}k)w^aMMJgJ z{LS1mu!-|7M;jMrk2WU0R;f)So|YxMYVEnrwbtTL?a1rg88EoD*75X1wbb0rwYayX z*49(5&De{6vH^VmA-@m3<Myx=L-^ zq9+^M=0Dju&3!XkyV5!Cjw<)ZY1-nmp=nO_L zFWu#z&QGjQ?SlqAn`*|d_(Y?Rcv|y4{^@e6e!AFES3IrDcArrA*p6-WSnHm41r&z0!le z;`df@ZVEc4is&@_PLEvXXP@3Gdiv#0u@5YR{sX?=i)krr@>`2r{1|br#4m~4MB->E zEc2&yqZ@W^)SJM@UFC^Uo;W&K{xacmzeM&SKb~FY>#mC&ZYjdYvt?gz$oBk=(%R@x z^f&qws(t=U;`2tHXq@(_lkSc6RQ2IT>>}t!S-jzg8#DL7JKSAxdbqtl^$2P0-Cj>n z?)KR36EoN2N4-ov6x54o6Q@pM_$TuZH#!#VKGCLl2(LJ1P@gl1L*Z4AqE~N6P>-s6 z-Q|<$DA&Cz`$J4$B9>bG0TQYQb)p{;AQD++%ZVGXa4royHab|d-Cw$?lI)WekBCuXc9PsP@H z_b_#so$AN;ZmoCWr~2>oHa6NXg8!h)jAXec|JGHN+NFE8)?&q}{^@K>z1zk!o%U|R zQ;(;!6AiD5N8^ij)lU~%>Zkn)^@&f>CYEfe$B8oo?_CBBTbAuUku6Z?^||vYnnLHLg9U4E=*d#$@zZe&Nw=8ZRx zvBt~}#(tGejnf(U8y=ZS{dmwM1`Skx)lodQ`$TK@Qh(N9P%p7ny8kKbi+7S0+Vi6U z?(|jg8h#4X3T@)VacN(`f1U7#+JpGyQo@P9oAJ{o#Is%C$iJ5`v!J8+u8nlm?!-H; z4#gv}i*}#rE+Gd?)FOExI}Uhknsn|^yOCST$Sg;)Le4L{WA97YB` zMYxVFb?M@oX z@{`n~+EOYHUrLUsJ<*;!NH6sqyjw+f4Q;OteTn)f?e^hSeh2&-%dFyjCA`30FWd#x z=om)MlD~Fj{>2U6wJb5C4+x+{%{5X}_(WdKR7| z{ZrGQH2iRSWI}y@aZ4kcdX6iadpC51V(eDz-BC_m~WlplrbfaVI;|-wh~VV z?kUQ$(A!SmMHwEaE@SXL{ZyPjs{H^w37+!aF-)HORo0*nk@>AJO{@%^#X2g*iLH?1SRQYZ{4J{`iV`m=OQM(jA^1Qpzv6z>H zhe`+01;CXoNy7hw*K;1C`mo=F+oF+&8p-^2zfgFHw4irEGF@`@Za)L>4fxv|^VUAu znDRP2P_lb$nEeo#nE>kBp>W?teP1N3(R32`et|X1_CmhwGbUoEsnzFQ4X87uZvcz8$ zF7cnPc=c>5h|};j`hx0Nbt2kNT>^cGD>gFAPgq`;TvM8wf0{Z_sSPSF^`-EE^p8$x zB7HOlzIe!#Q+>!3@_`KLU4^WG*Od1-pZbf_S#(SCtA0dyG39$1{lGS4HS%}nB4mc> zg8XZ(T;faioi5T}fv0k)Ur7;8Wo_L^c(qaFhvY_l)q^Hp$z=6|Dfn#9bM%=&(NS$f zJfm`FO5}ZHt1rG@x9rJAANAE*yxUj%Ol=_Fwr*13OFpZ9)FvhKC5uzt8R$py84$aiorog+R-4u9m2Jy}4K|Ya>(|&9H^l+@6K(>iL5-OkCI`oq+Bzx&OJHsl^|^x3)n|MJDFzr3^K(StW_J-n>U7=G34__Fa{3}x*ynAq4_qPvcuDRmszyHSFtN&`}>}l5@|96j0S@Ydv z```U#BAHLXyKdZics+p+?dW*)!Yk(VZ~K*BnfhZQ86}br966l%27z}H_&uK)+_v`d zN2fG$)2@Fv5ojEzaaud$vJS>vsa!B#yD-oAYcaAC`nS=B6Z5y2FovWpEn1K zkI`0l)Y{OMS_T-WRj2z&__>2Gdo5!vcu?aljj<9t;J;z|cjzph5v|*6(3H9mO^r@r zPkqj;nzsU9Vx#UE|uUcWaogLcK9g$=)`)OxLV0`vceb^J`@k8XkYDn zx7HG6#;=6yATMcX6bGl(gMQ>YHL{&?=Z>0(+)N*OxR&yG?-zQtm3H|Z$`kFa4PI?0 zk6slWfHeBxTeStz<8%exgK`BtI?;?}T9r2WOK+rKSjO+_WqvCvaMPnvM zk5tq}+Opz;~r?ErB=Bcq29PcmQj zdx%4NOJY?ZTTc6dOjkKo$3~wZZ>F4*lM8}4L~HT5=-ovbyYr7VRF@ug+D17gXF9wd zKTG^sQ%>qac_c2?g~_AJNgB$x;x&D9EQsI4P5g%M!9Sg+Y=e{+y2YOz3TQ^zPUl1J_#=#Reg$26?Z$dRDDW+i0>`eCEJo-&>wl!XKQhnKZ81)AsJL@4eAjY zq<+UEtmZQe@6%>A$K-TQ@q7~gYUP{gZx7lJ{4i@FWmWqjA4XoNY~)2eZ^n(TjO0UY zN4&4N=2DkA%Go|VIi>eJ$@oXPtM zFFCXTo}fNW9+AJTPr(zC6P8|0dD~AppGDqMhhcdu{nF%vIyQ0wK9e4zF|c&ZHXj|a zvdizMoOzG-DITGXwiAB~b*=jDAwSAP4}GZGN1SwmK9sbGS9uiwsxMXkB%jj$Ow;$8 z_U{e(*;SVJEAT$$aJ=8DauPO87{mLuK$fZ9sLW308hLBe*SIS2EPXy{Ys{rGx_DH6 zr5}HNs6KH4`G8jHzmw!gveIMm(_I<=}`aa?@c|2hA z_*9TbuSQ+a#?yR~>FSp?M>F$~<=Z^-CdfZ_6fZ`;+g30 z@Mpmjvy#NIA>bd)^{RgpeN7y;%^IFieUcB&2db__?*io;@X;0M=OlxY)ThxGXrFB% zzLhR@M*m43#VhUPO|(ruM;`YEa!GA-g7QfGntL$iL=Md)U($o5k2zV=Mm)+}Y{T}t z>E9m>#{N!*h_{;kr*u2gPP-l(Wz8U!aJF5@@RQZw2~YW zt$rT$xsr0OqCQ14^#^ME>PJ;Z(V}M+?h(Ppe;& zyw)5+TWM=BJ~eUJF)4AVK9epEctNyFJ!RV`aj7m$8->SO(M@MipPK(q>~;0oYWk)# z>JxcsXhlAy54!r)`bnxhI$~oQSv87o~&4r#(PR8-3 zoOZ15%Gu(|xdgs-<<$7zmb1l`^LATK%4g)z{p1neO7XSvY0YK^@^%JsB=*9egg;#x zE2qjPnyX(h`Ecc=9BPA-x$Dc6ukfJ1LFE*mWbrF7#wL%-=Zx0_I?mV@@T=l7ZH%;3 zRwDzL6VMz&iu4Q};R*4D+Ezo2L%4@MrcoYlu7e;InCi%%^w(n1{usPS83*&f_+#)T)aPQ#`injWFBH*#sn1{JG58|t zav|mXMIVFbDWk@w{~E^NnroQn{o;?o=Tgob`tL9D7`&JA_4)rg#^62FXO{B*B9Fnl zC|@^i^A~*#o}rwb)aSp3F?foyYCY{2c?|BAgE4qg<^1Is{QuQ4_%ly!zhr3RmX?>l z|BZJZ{lURW1BL$1?u#yX&$E>seLYiJrZ2humiOeZzdq5GNp*E!Jn_AS+ZSB))~O@& z55MqIy14xMX}#H0Z-2f&naz6Hy^rpEkMCEre*J~1hpUHEos-($_4HF)rtjGN$c0`a zkyyX><_|vqhYx=+Gbu6Y==Wc^`1SgCW|d0$+>Y{&j`>$yc{wXW1Z_jUhB-=0Ueyd#yEFk#@%o8Gmgu&8_Soj1RG|8qM(QyO-~I5rkACmK zMMImmwjMt4t@dIupDh&fnaWo-PkU|jPcQ3;U2ws^KiGQJ-p6*mchU8?UAXTLAG~_; z9Uq;1=!I{zt}iW|_w;XXosqdXe(|$kdF1^sfA7V26qhZSQayMuv2SE(ZhpanSmBQA zF5YneEg#ykapwgoFO}+^bm99Re{?%16F4(*QTwkXy=1a*=k=4`_=j&^?bi-WdF#jD z{?NKLH(u2@?ZWr>OlzAtGE&ZM+x+l^j`+lh&wSEdmh z9!ht39UUWoxcQ0=Yi|AU(WBMO`ZXW@K>zhOwe5Lq>pPFvUYy=DwRJ|hT=t%QYUkz0 ze(>G*Ri4^7C71JZbFXN-`q|&!HEZsi)~h-%YI#R?YJBRvTx#AMrw+}1`YR94>|bz0 z%cA_Ej`GHhvDa$fx@4$4l-#rX!FSD_-E!sOgMT{V$P3?@I6v1hzjXhC*_n%C7acnI z&9-eDx3{mm|As5y{D(jN;49yMY4V$=4$s>&Jk+`P_K*BZdDEu&q3WUJTmSIgYZor~ zNc+6m?bi%0ziDQ*TJ??`{O*M>|KOYNdVXZvypF_$7w*`!YhwPo>*CpIiD|=+ZoFt! zaZ%qZKlsykKV2E>nVU<_J@w-Qvlr$Urm8Qz5MQ|wM;=t`Uykp)K6FzwC=#lP~#f7~a*4}pQ z-r*hHuN*zxweY%+rU&l0@ty0|-gI@PQqI0!`}XDi*WK8<@3}2k_D-8{+2FDproZ`< zmpOd2ZwEy}KWI-;z6Seeat;{?;|e>))6$@&}vdAv-+&_(mea**aWA==wu-9AL-HAJ8U`<_9}pF~A+G<6AGvKv)j z0E=1>pVg@0QbfN@l{uAWV0j;1nnLu#sA?Uod=@d8i%2d+ zbPv;vZn~re_1_L;)Y7fHX;v+w^EO>lMsyaSDh7yp6_`->%%@9xQ1?y1Pa|Ei2)KBg zZki9=Y=eCxsBseUe2uOcgx!sZ`YJ^EE>x@mRcoTlhk=AVVv&JuucEpcM5hdlwvwzKuQy0upQBv3yci_O>v;?Fk*cWxNJs5?*}d?Ag&`o z))Lg>NuVH(dhQ1LQgq!u;HQIbe+Kb=2e`N!(JIr`X;krT)UcZ_T8&7QfT{tY)kd6O zMO7`-$_7Hhh}&vZB~Lep5#>Rk_W@vL6L6G6WS>QR4xlDWfzsE2>@3~hhnT)bmu~{< zia^VD)O!GRETAGuRD1#OFadEiK<;7Ss|RR#7PY@0*uD$cZ3c>@?nPifhbq~?(IQ}e zFHkA5e*iI@2Ye)fnZ>Y4$XQ!+uA zhi4J_Fe)~JnXpiqVMM+W^=iiCZAUeiVAe92z7F8B7O3gQG;9KXOTgR#;9w!@au*PF zKj!WoOkW+4Qvf<`%vBF6H34;OM!nZyGMAvLCCp|WCbI#vu}FB2x-UTO52Kn(F$-DD z%RylEZlG)s)3X=oe+TGHW8Uru4psqw^D#Y7qv8iJlg|M2cVh;Un5Qi8HV^1+z&xgb z&JN7LYD_{Ousav?b^tTj0Gw?DO7~)3vY3WArl128I0)=6!t@m|!#%+4J|Jrz@U#%q z_B5>63JY3Mt)HW+zo02unlT>nFVd8H#Q6%?bP?j5f(6GTN>{*+VbowJVz3hRvw?&R zB5F$nVZA~1hY*W0s(b?KxRq+#>B}0k_W_eJgRHa zJ&S>r-vMb3BJdkT_)Z|ngC@kU1njia?Lk!ZAyn=`)My1={SDOZ0=j)UVv$Gm19Wi^ z75zRCx*xUr9q_V)E^kMiQ>eplQJox6{&UoEGEjRF>U}&A91PUk^}zQ^AaMnd5(IL7 zgKFLf?6jf27SR8F#Pm+!VF1Xy6KJ>y7`P9$a1g=CKw$w$+zPz@0yx-;2&WOlGl97W zf%Q44^!VUpdorda4TKM41|9;!FF*`4z)dSK=^(-dRO=h4`fNmY7h<^+@lOM3cVH^U zV`_GxlC40(9l*oyP??_tr^7&NAFy@>s@R5^Cp~#rO5ouOn8PA4-~a~~ zVj`cy98E#pmjg||1#b6a1_bp_0hQkXp031v{Ra3R0#d$*Ntg}P4FQ46ft$rZg8|Bh zF(ErJn+43|@xbmJASR0$8^9E=zy#N07DAZhGcoN3s5${C3;<_$U-=ks5v)(ceXt7gAM- zrgc(v70oRG0XymTwLr=)Sl&vP1`xd{s+xqAJ%~vZk^D5G`wGqIrb`x~{@p-EjBedc zv!aO3Zn|VAqH{5-vIB^E4wx9H?x9OJqVC&3Hx3^jgLb-U!g1Z z!tQEB{ga6DrC9$Msy2=;-vJ~@EG~p?yHVW>5S=nGauH(mDd4XMHQa!jK98vPBJu@P zc^t6!B9M}l7$7=fU~DJQR1K89j99+_Tz&=-?Eo(0i0fV;>r<%3MxY>$dhP-GLUdg} z@Y6-NuS0xa0WLm+Xzie@1E}I2)NnmrbSWay3RLX?S}nx+c~n(u6%2>1FygilRk?s} zjv>k~0lmGz%sSxc0z`Hr;`1D8atTn{4`g3Jw-*r8eRTPHpspQg*?@YNQO8zPWE?8~ zDc~W2IPL;+_W@tMK+8R-eHXC(X<&B|P}GLHw*vbYp-Lg(=rh3lUZ8R#V&8)pCV-D5 za8rYdtOvF(L!|EkJ}(81cLFhOz|=0(^%9_TAuzoUsEDB6FJT5UsQSgI(B(iv1Q@q4 z86hBS0iyqzC<8Fe!2%$64^Z2IO1uaJRso%#1XinnyO&Yd4A30J1eGxly@-4S6?+jg z5kO_ia(Yp(%P@KCP|Z(b)-J;Ibpn@Rpk^JWVFU160Os}p2MbY`OMs}gn7e(Lz8WB> z4d@JDu6j_ZYSi&^)caGI%mt`w8)ox3OlAbLaXD~rq3)kV?fX&9g_wm4F)uFxtCs;~ zFJgLL0Q&oZP7Cwa2^?Gu{3S6xU8wkO4U~cTMVNsa%u@zj;dE3Xc^QpY}}9 zGeQ1zc;#s`g3-gLZywjmr~Ep?AOGMz7B1kPPlNI`k#Fqb-@AfDXv_QelutDKho5ge z34R-N?;7$g_cL+!^XcrjLAReFUxq|=mC8^%)T}E0#+En2X54C*ZbJxf5&6R%Gq<~UGIa? z`&0eA@53qY!oNdRjr^U4@Xyy7#$-6>z_JB89|2!3KIHfy{1QL>!^elC@v8$Fx5*@Z zlTIn0@aSm#x|_7Ihp&G}Q``MR_w;x4-Y?ty45Mei-b=V1i%ZIP zEV%Rv`Hp4pmqscYCa-W^f8vW|<7iycUPCvN?jJsV6kQ!_Mrfuw2y=ENALJ*A2q)9d`Nqv`QLJ?RVn|CL*fEQ1&3t!D~I2c zm8<^<4#`dlho+5|q?2SvI_@939>p1iRC0oJeb z1J56X8)NOP%eSHw8l<$LZqeTyoIee}jjT?U~Uz%t2jLtfg?^tl-elPcX z|NMH7#tr2=7TowL`HlrQ^iA9W@_ra@93-D;@eiLq4>xXDdCa(RuK($mW5A7fDwVts zH?(gmG@K%TMSuT|2S@iv<@#9kUw(`Z>4o&)*2U+wPQ?$I(@z#r51!^n>E$^J=<{+PZm7%j&?RYdL&$2os2UwX8B zopmVRvFQ6B!;ho&UHOhh-?fkAvFQ6S`O5rB-^Cm8#pl!5@r(A6JCA$*;q%4Q_uKy? ze!{Wu-#q^V`~-dPz{XEVu`iqUm8!!}@W&|l2i`ufDfU9pcYxH6|Hgy&dQAG=Na<4@AFzNZxfE z?H_1weP0j$6ke>VJbvWAuNTr$VVti+e=MJ9(K9|x%6BYy(L=tmhhOi}c%gj9f){^F zzGK0Q6cr7S_rv@HLq5^sA3l9wSiO9XNa5deQfqmf5U6% ze~(2*ySp+LS?zZ|67KsJm83BEQ8{Wk1w5-Wn!xE;u;}E`>@A#yMT*P%2mSj#9n!VN z75<^?^Zg6Xy0(r8rjJ#(o^keB^U~Jhg%`~B{#}2`Z8xu}{JJW?YWbQQD!)H@^KHvp ztjn_(U&hC>u3y=5!}8nMqPViBFmVvot384UrTI#Z!|6Y{}_-ye2-kl&-W`-flD z(Kz-bIw3rfZI=!zU!1?A<0D1V#vZ=D9*tu~GO5q}!>>0@f}YV?N0C3(>mRzOzjH^= ze)?Yj$LQIw_h=kbzGK0$-;wWFaBLA33Co0IN&eIh$$|LfV>UmnX83oxevBSIeG->d zH+^BvvEtY~Or96EJ%({kyduo+8|UbK&NafYbkS+Cv_E8@+rT+&eZyVEInKF}bEecf zl;n3R{SCK?>s-3mU1gK6q`bsc*eC0JJL_h0S+}Xoert`qN8HlpEW(d!u(gk9lX;tc zmTEF#Gjuxp{A3!;Z4U3HrrXTN3t6|O2rj1EO+#k0`>|Bk{X{nFYHv5~wP}@$&N+Qq zcfQH;eomJY&Lr3~BkM+%bUQK1dEle$%SHWxc+ojG)$B$}yz}18yYtC{b5>uod!A`# zueYLeX0h3AfVOB$x08YHYU&FX*qe>~L3^z^JA0KI$QPWdzAk5O>N>Y()mo=z2YYRm z*?)G)I!F5eYTv?nIohAv?0(c-$9};@XLkNN_{5%TloPhwOe1ZWM~o>z`N=jQHouSjaO|rmV zd-r!b=|1G6z`jm>1xNejE`U$TOb0xT^R78`PGnCt-h)naPy0Zwp#3rSBn^>gYHpc3 zrM%3WAF$Y0S9}QPH@icpbr`ifZf`Wz>^o5YIAtW)JIj%kX~k>Y0P^FU)@HQVU<&yN zrPrAtd`@v4%@v#m@&sw$T>40RUBwOi0Jiiv3!!yxk$u+su5n{l(OLbgE$-yPHSQz} znc`VHe~nv>ENO4%DtNbiD}6=z;Y_=UQ(hQeM(oK(e5*F>i&daL`a^uv9<-u8UE}c>fmHp)JwAMl&%3O|&Oas4|IS!C8K9(K$7}nESMYy#!T%UG5rJ`#Fb~u;*nF zeSyXxywi6bv=?+5^WG4MSCC{flobN zKWOik>Jswt^adv>+RN zlr3(wz`jprIx@ljZdQlU-nY`o&58>s zi|ZlrDUD7h*r!uiMZO8-;mZ`}@GIz28J?3KEf>r}(mlEg4IWll7W>O_PkpI(^;GW) zcqkbkI=$7?wFP;ex7gbOdghW(v}`*WKRGuATEVtl)U0TQe`W^HAot|ycmY~?Ce5>| zGg)5Co;B1_Y&F{N+9oZWnr6&6+K_8Bfg*c=Q;z7g`k-MvvgXmi-kq6gW(hju$vV#p zPZ}O$zuOY~M_TnpdqpVk+?>i^XOfp7OMRB9Ca-i-ZF>Fd;AcO13_49+E9z-udWKm@ z8BypAQ)dj_4rexcbk@?w2}S$3iY{%c>L3B}E>+EIhd zS*FtOm3^S6o4M4V&B4FEE;En1gE{SszR~EtWz|u~{XhwtWoL5iV^ZGiuB7ezd%I0E zy#d*^O_n_29D9;ee$eiOztc=3`$}6}3;Wf!gV3kBmDTja8{fqSv;V60ZcRW>l6D1( z?1e-hSnNqSk7xF8US~pHd0<7R$Fq<67L)gFEAk}Si}KA^icW>c+ACzEnU5S*g9m|J zm#IqGCIjzcqt~0B-{Q_sA%ixUk3QJcy|B31y*W^H4t)kpD6@Y%JWf!q_7IhP$!^Ro zfFYy}eU$zneg8d0XVFQ-f+(l9!2D2J`>EPyKKTMR?MSs7?P(Q3?&Gxgz^z>-L0PNl ziv`rDGM13nN;jB8TPpjS&V$Zh()StUCSI6nvVEJ~8@EdCrkPsG*WRZo@&xU6qrF2c z{Do@H+W+<-^h|&bi#)PB(jB!sO8v60#T&P{?l@#e&t;LHH2YMOCz{*fl_CDM+*@=G zpN1~c&ir%q8~hDtx{xhw5Pg%dXBgY`f~B*}1fxBIsV58G!dvapa`1Zkupq3RMgMo0 z`Q%ZY%%RWY1=}n~UbGLC_EoIP)SEYdjr@Q&iDHjgNVzL_z#E4{CoBnGK}YBa7588AYa21u)<*z_47aS(t+F+^Z@| z?po=aS;m=Ebh4DCJ+8CRP)i=XeagiaqeH519%)0gA%Om>4C$oq8TgsuI%)B&1>J?o z$j>@2-%5D7pFX!z?42oDD)23ZG`1U^7M4acjmG&Yea3S)wicbbQm^~VTj5hl?O$(( zcZ2OkXrWG`o{UtiCxgrDkj>D7Gls+~c*2YT0m#SI?T)})a8LYq;{^A_4K%o3(7 zynl=P#@|p^8u=&9v(22tY4M`lGP)i|ZXLKg-nEJ7_v84W+V{{Z zv>~g)=5})kI+s$8_9&`?wnTA*(Rjjqy@Jo$Bl_S9*23i1J8DZ9xvR;<*gG0q4fd)p zM89a)ctw~e8iT2BCyCz?O0P9_PWlX7#^W9^sShdvz9H5&x++2cLgTzgb`pZLfi!@%#p3Xm2vL-qAi)vKP{^AkQWZ z%+blVn)84Rl=5L z!styWeTJ>G8G}$yJl_G%($8i1mD=dc%kr$~&VpN+8uQla*lFY>mTN z5g|V5n}x{|{yb$$&g!^cVr_N{sV(kpS1_K;WB;+|fpXDl=AOPI@JnRvM*1(52R9k} z%7)5k45nw92>hzCyB*Pnf9*t&^_spoeco!)FqA9t*HF;$%8?!R5Oit(cjo}MpX2p@&Aw3oX2KT98K z-}I#!_(Iu|#dv8g_`cqRC8MNC#%@|p-EwAGvXb-+fcAdG2{;fgYlGLBRZ<6QF4$()|JmbYP@@-&;`b=_H@bbm8 zLC?-7=?nEc`@m85Ow+>iYODNQ#aCq8l`i{Um6wmO5nmX+hHr16KWXR<Lp!z)!{z@Ugly#bnd?bCMs*ghxick@nQr{+xmG6m!FP;Wl6-yl_8mKLx(ls!L7ynyQ{*y*AJZ~hc49<4|IRf=cCs{mz%C_{a(y7YT4 zzqMy>bqSyE9^~}bU^-=`C|mVt@BEsq-}tIZ5gj?ke6kmwK9Qc+T&HjSNtxVnuQO(%D{j=oR>$1;5IS z-SY3h7?Au`l~V()5v$S2&(#=GxN&1W z{`e0ku^%+NFq4rba4WmP(^q}-qsDZa+&3o?BLW-H7x7^~F(ujJm9(c89tLw$Ob!|h zbXAwu84J2X*mB{b_7=6QHnWW~)YrE?B|deVw|>Pq6B;6gS`l<$x)|)_u6Y$<8FPQteJc@Hu4^ugq~x^>A%(YB6Id+a}a)8miV~A zG_IZGhVZRiuu**0I7XPUn&-vCxF!1|-V(ptx@bcXCY^)qSHiL6@GaLnQ7p6OM0{W z`Q_}zZ52#oju^OwJlpNARc?3Vxpw@}cI;8R`)|L0_mnlG-;Ef)pfXQ7jVY1ZbRRNX zbUNyZyIYH$30yZb-$0zaZQCc>p+CD{^QaTjoo=n&=`!b(INw^bzplWyxGZbEh0k|B z>#`{8uQK`EP!t;Z>ZOr=)*Pz7-y5;O2fMg`@9*Dz(_(H_yb5P-GR>(@H$%GeHMEx; zeTRejnN#@s=6?K>Qvz0T|8VP%59(f&>*h=+agk21j__#teje2uCrx$5+l$WMP*)hnd9>~8DYHMA zdhT^A!<>h`;y&h${whSjo^P)hQhQXU%23^+V{d zd(Ta>b?8umvz^eYu&HYM6!1T{2$)=Smx$6@2k2rzpAMO>%&t?wo+;CC&* zvz%9vXM*ylTZfi#J%Q^51=a{Kf0iv0lfWO#n8ny0{NjsU9&=Q1wG7mH^D#@RRBgi4Ivp*4_x(Xs5x zx&w{pBUZ%+o|nDS%|P>6r7PX4P5A%if{7en=bW9p(oLUBY$(6cY54}WdC6Mm@Lwn{ zyxtr>%s8*uZqDSH8m{N|UFjxsdz}n4Yi>_58~N{neA4K96hVBqe3o%0HZ_Vru2_E} zr+JGSbITp%C$Gj13B0^8_kQ_BVvD+8++b#Bmr@6`7V+JlY;)$=OI^k4 zi{Cw)hy~%d#7sNm8+?9ZZu>hM%>sT0nSa*!UFp@dKTNFrqpTs=zld=m-gc<8!&yV! z>GYNGlDT*2pKs&W;-7}`XH{3wPMByP)N!qOmKqZ^5$Kzc-Rz!TSnA$#0d?bpXr4{; zh;Mw7*x&rM&Kdcu+*>})H(s*DjrnfZ!N1h|gBwk3LA!GUeP-eF>f5J^t6Mq606L6I z9|rJkRj+&ZbjCURoVzlNRrBl2Eau9ieG$e-)kgE3HSkO8Tt1J#+@yJb>VNYi^(MTK z@uEH1SbX34^QUr6`GFK`Gz@DX(u-Zo(tP1sGt(?{6Mbvx(+;OLPyb{rv+zr-X*s~$ zy4nZNESveJ6QH%2Fq$7ebYi{9(O$*#57jZoq^(KHQruvAd9hnn*y%*bcbZ{d8X8z<;RKN}eZRTd zW)2_|GBr=PI)zfNTQHm52OeSWCm%8^TO}_WO_(%``oiVuX2ti3Z*?`Al^Yt(&<}`n zGj^H6Jo(VG%(<97j^;--XI7O8dSmJa=ED5 z-B2-UtPFnz*u%Dn&{5W7ToYbG%M%39tWmd2ei()0~J#Q>6d;;metMn8tK zVY3PvCL)je4#5HH52bk?+O%)=D(crdn>9aRu4Y@SvvR-u?M|a_n^u?BoBb|x+^JU6 zU1U8^^BE>o-04_IOjX|ok2euy()&&jF{wKEa%yfVV{Bx%k66X(qI0rgolPNNlEr|j zZehI%(HJiqi9gpTwGkWVwwoc-aXdd$(iq7$@cd;_edoX5J952S&iTmwd_kPOLw?Var zfj8*Q=Py9k?P^n#uQqR@e-?Q(U-Wr&P8hcwxfkv_KOhdD4;Tk|59f$sFwPBRUU0^x zmqJUICzmPuv6}QSe{txEXRsynSl^2rX?>2y>x_lbPsM5@Mse{P*5@P&5$Z2GJ*3~@ zfDfdH=o9ys#0)rx)1<$N9-WB|VZBj}K@VutO<$n=beDPa&xGCREA&>=_8N;A9C*h! z=gp=Zn2=in9xZXLg5s0=oB%QU8273Q;B?+HL8Cgs4fv~Xze`6~&_^EDTR}5)HnBbU znqXa)@`j-=X4xh#{&K!;191!5oG7g`Rh;t=qN|jr_q#31jIstsc=7<(lFtb_`n0dw z1TE2OK|4GKOR5VyC=U!ile%fQVoVY4M~l#NFZ={k-aL!B_;1cIZ_a0}40I|s6K$c- zbI;^MlTdatkA1Kc zrgSf|o5!|hijJL;%^)UEtR_%gXJUPmjm^DPyP z8jF0l7(On4NbyBpiJjU z)@qOz0*eBvmz=O2GpoUr1lPd~c8;46!*KTV&|Gs}%R`)Mb1N$2c_ zU0+LHwdQj_x%1zj`q#pv(bvAc<~QHoQIp;{q&QWeym3f%RdGG87#PwTlcL{ zXk0op6s&JGiLI?BG`rPg?Bj`FoaknXrx1fZ!F}T(GJ*cTap(-Q;_qge2kU2RPb?^4&$cDr{dP){t7G?kw)T|?tC{PDf&OfkqeZd=Vbz6&(Ysu>!`_qa0I zQ{6CiCU>+NE6~asI(*(#9e!_$xC3(m_6e>VVr~Z7Z>X}(Dr7W(jt^nO9=^gh2c!ol z*PF>x<&(VNM7VcAI*~=zs5i)U1f5Ww+q1nx>d%Zxy5SwfZnH(!FWl?J^sO}O8|dF^ zyK5+uu5-6%#2dclT;E~#qhA^8M0fus4IXc%oW(hFD(^@W-(E?a9bRg^NABin$SgLN zwtH(vNH5motJ?UAmShDz0&f>&zCj!i3`iA*wwI|#-z;8^FOWtDQp7yr!Fa1MluWk| zW$bF~81Fs6e}=7IUmXC0tpG8{+3QSW8CmSB%v&4)ll2|(jFkfG8cns~clrd@!JO#L z^*2Co6J=NBqUI3#db9jEFue*ss7}RyHGeLB3TK{2P6H-@uFAi(x&P(~@S(4kxb8;t zd3dh5i6>esIwE@~oHWmXPw0+8P8JsKb!}*kq&kMG(Vuu>tx;PwcfY-aY*3eI4?M;E zAazEpD3}m6jip}qCfck1d7bCS1?bXz+Kt%nUt+W4_D&~Uh?^U+*YYD}7ZdPIe2W-#+w{7M?=~3Z zq*x2@PC{NLGM=f!Mr|-}>}UQOJ$QU8YuU&X#TJTxRro1~Hwj}J!T$}!k^kDQErNyL znqivu%rIJmWYJd5YsNF^xRH!(G|QnYYSs_H?Ucd2^q{9jJST*>3gneYyhj zQR@aXU~MsM65vskb1k|SEY38IHvGcwXNt#z742qwp?4_LH_?q4)*8`H^AL3I=r*~> zW|~Z)&Mj`8X;$q(ZmILYb4_N|OPVX|X1=D+qf37LZM&Gy+CzG_K%3W^L*To{J#pmV zt!JBzu=5bQ9m7YPLAz_p`yBB~b2iGSxh?s;tcf+T;<};QzI8(xE9h$6E4&%UH}9(M zWe$Y4gmcJlA!Gt2{C6l%>@)_bl*2Z+ZX z+KVls{-GPDnL{t|U9kfF&RpzJ3z$%P$qB)m8Sq7Ob82ri$2b|^m}Uzk*!QQ;vPh%mS(@{ zYF+(mWT-KNADm-d9_XnBa=Oeb>8soj#g7$z`rZ@fJb0en)T`#_(IvT z(=PfcyLtn9uCZLEe3JX{Q}{>uIQsCilgZV(8rKCgRVD(4Xk6Ej)tGTT>j}{@TNs1A zk*sA;bXP;Ge3!%EdNAK%M6>)WjaNkTVem%lX%h59)1G?MZ1bHgersKg@Jee5gc*j61@-^_?kOQ;v6*KY$rDIlG^Dsu z!1}`e`J^SwU>LfkJo8D{TxTsb=v@fe>V>3bNR#Yo%~Z&OzoaeFv$`%<=Asmf&^%zs zF!#-U&9}>+4P{u{!1WTYrNbfGw1n%WTwZMT<5s9n41bSClzN-igjad%Cz&% zfp&L7ww?9%oXL~H4kHN-3Kf04| zxu5s{UjFdcudKPEXLaP;PyAE+q?7y2bz|r5?4#!H8n|9<{o&kQ1M@@nn7O;g|AV=^ z!GC-I+}-N`;N0D6=Gq#MaqjNN)b+>a?p8Cuq`5nlr@1?1z?;7-{oA{5tR6Fe*Z3#q z?|y|cjh&aXDYJpOxg+y&qw{l`lhfSXP0YuwwD-8nnRi=Z_PDFcd)ynWJ?@Q1&CTTs zdyuu_{$A*hTD;Gae{Wu{g*xh(OT3>@w9WYf&2y6WUwN)hbCo9@HJ4Y*T;7Sy<$Z+o z3EZEOWR4LGozg(ez}oGe%>7fie=7IuxIc;W*ty6$?w`i}iKGXt%KR=oSwCfV$@#Z; z-%WfNPsGO<{QLF0@BY=E&g zgx>X*4Ur!g!w&k_dLKM8dQWNjRAv5NY2F$Ny$_DfiDd6FzY^~`{{N^WK3Yc|>yi#r zPnddycmKCz^c^>U`#{&He)8+*Ht!g>Z)>vQ_NGIpKi;wC($^j@4tBE6`$C2 z>vOZW@0}hhJ^%G^W3NIee@r$Sovb~rWrG8I}?99eO~>kXS{Q3(`QaNZr7)0V-sOJSTX&$}_UJXIBZu}~9DDrXx`w#7 zPC>luAfwhLd}_=CnlHYLKk>)E|5>iZ4}aam>Z9`C&UO04%6zlR`x@7Cxn^wamA{em ze6A;;)Vlv|uKh#xJ;C1+__>O+?thQ7_^Wz!{db(jPagNKwJt&v)&8moeqaAV>mokQ z4a?i^pmI9*Os#;JGiPpPp~HJ?BvgRE3xa-+?t?J8mSXgo_cljRmiH~HP{IfAmr!}u zs}@>DOR8i=CK0sIc=mpQ*IJiS8a;Qz>pI?*FX>GB!O`nFc&K#o`ZVV7^Sb8#t2$4n z9C)T{tvQiA7IY?GkIwbPJ9Q?XWH|&gz4aRi(t*)@!=w4$8O^6Mlux`rjpvW`_@H$i z4V2*@>PH=rYH4jkhCdy1d9cJ;`iClb{Vf@izUbOt!?1KrStNV+be_eZ@{i3oUpGb% zzuq+0Dla&i?vzmBC4+*tYP{ntJHT`+p~68Tq9!^RxSqvHzxpe^rR z@K50BMJ6}AX@i226gZ#ez6TL%>*S+h33(C%)aqZpX_dR3pU08N*8*@F# zwelW$_9DvlpXK+LMt>JrC$jpSUia(G~ZexSI+ z3H9lH>Tc#yiu>;-ZRQKaMEcfw*TZ(dGxJl#@6PFQCQxSexgCx@TDItqQ@+Zc#WTbn zc#aqtF$CUkpiIUktbhC}W!_CYRQ?F%%{qygCgt6G278C`d>!Q_&TVxDtewt=PiwxU zmAN{~NfDRjUZ9CM55FIu+u__bz1OX8B*sH}2ftMYbq(n~bIn<;{}^p$-uXV#2XZ@| zhv&9CU!wj-@~i&g`hJhUqFrV*@`AdsAg%>J)HL;(z@JyK4cqF~c%cnM|3_Y*51T%fa^*TMd^2*C@HB+HS z?f+tNnLFIt?<}P6vg&_pm-82+?Ow`t5T5e>yE6j4VQZ5~Ab)EL%iQLZdG{donBhJ0 z{lkTRXOO=;>}6iRNZzC~0r(+V{NkiaT?3gN&ItJi3cEbr6Ynf|(J+yA@@~T99n^Jv zt23ph=(IOiWG_+JWF&X@!z+vUuCf&D>dZ*gi=p?=337p1wsqTh*AN9^QQ zC-!`gbH+i&M3nK3iM>M)Q1)uk^m@@*`%=-Fey!@=;pm=pe1N%SkC!>-eJEGgcNUkp zkDX9(GL)gU;F_NVqKQQYjOZV>;I~zwU381*1MU6vX~2A$`^u}dkq~M0oAgF~CY{*? z&u1df+a#xx`yI(l@Z^n7@S09%4fQ=(+vBuBr=Gu?>nL&;L*51{E0{xW^SamXG?Ww{ zonpQ`+763+1J(}biQPR%@Ii7FEPfLmdenRqy26HjMfOBNX@y(1c=&MMy53sG-8_ncFe zf8I&ZZoQ-VE!sG^m2%)mRcX4}^jNQ3v+Tu_w6Sq~ zj}s?$9Y@bPxK0$P>-Zk$W}EyO)`7i@4CnftZtltctgD0Hg=MUzco^(J7twR+?)ICZ zmvf2p;7ZB|hb1@DXBV8pxzeK^r-$<+XSO=`bCwKBo+Kl~@F8s9XCk8*>gl2Ne%Xv6 zmr-yt2A&Q#sJ+Mz^=oav+Q_>Lp8i|V{3LQ9+5S9j=%O!=*cxbh^n@N{1KuOI(}Z=% zQXg%bhOSPNp5}IW>5?n)RO?Nomy)9a>XpuikyE{2wH>|uHu~<%R`A>1caKFz(lUY044?OXj|HS?^E;42XaQ&%DsZ3!Yjjqplyg0~d2p3N(b>Ti(epOp^V{hnM9 z25_FGzTgYIp9w9y`7K?2u(s9HXJP0*Xi;B%bs{v%E+JFG?#k^v$=SPkxSUhv=Msns``r9!2jZ57pEu9guC3of1#K$}^t*BER^o zeBzhyk4T=z+U~v3t~_Dsa%78pnCs$+Tiof`#h}&a*;CohP--jo6?#*eH<5qQU`AFT z8`v7{O%VVW!q6sL9L#JoZ_|F+)tKH*g3eI(F%#yw2xSbfqaP?!dT>Ko`m>uh?D6D# z;6h>FH?hBA^d{o*Mf4An9)6L&-&p_`A2ox}*@Qkyr$=)A&R^560raUSS&^45&~flF zFpj@CnC9UU zf#<`H=9i93CM7%SQ}w0h*d#yl4R#~jTl_L8@2}6GJnXNqQ#N=dJP?LjC1mko=tNIz z()2gwYtHsPT6Q`a8y$k*LG<6-C!z_=DH78xK`TD!Qtk^|r8m-cfs(TBhVR!-VtooKo@OAw!*Ko zp8N&g52vgS`P7+8JEQnkwaDZXloLcI>cM=q?^WuF;b&P~PvDsZV-LOiulI@vp6_+% zpVI4Ym7YMS`c3kid;@#X(eK2tFVe>acF0goTWxD*P7Th3V>l?IZTN)HUuB>UoHAEwDgk3nMGozr&dU z7OF0-?+k!{!=IuqXu39YjXSskY(=lET+{^eF*AH4_rL~SM{U}f!zPj*OVej}bdgT~ zAHUIQqP|D4d-hj)J$pEp>p{r@GWLWY%8O%6L zdg%FrqrM2?Crr5n%)>`m`eLu!j_>{F;yrxN(bv9>Od#h6&q4Ol2iXZ>uypJi^uWU? zaA+y`kvONrX{HYo=WcXXahAS6KDWnd;dc+^sqEG8K|Y7{eEq1eFMNvpnlTx9%3CM7 zPcRNpJq@=Zo1_gqHOXxlzY%_eEA-nM(jv!q;mbT>My4{3z~+WuDLQwN{xEfPQt#je z{mvtA(SOu4PW&^~ z+X=1cT9wJerw-}~V|OF;?^RiNPX4<|-}YJV!EfpHW4FmBf!Wx$VXhy!OtRF0T<>;- z;X!Og2wO4yXr=E4iu8xp@vs(Xru<9Mjn5t|zUTzeclF6ubTJBF3g|0qJDlj6qVvF4 z&`I>U08NihXX4Li9ttUW`tK(ZA4q zY$9?RK@T5C4y3ozUyWm?%_}34+@pPfY@339*=SI*))uZ+6>c=d)G4*EbDtgu_ zna}KUq*H_Fk@zQ`J&q51Ir-$f3eyvZc#q*4VsYU4v&dHPCC0Gu)uMilIiLJ&ulw{H z=mt2k{!QB5Fv%5<4BDR3OZrKCkuIp+7V;u~NI%v81LRpm-&~R*W`*rKd>+pug8}4d zCUPX5*1i_;T%RW+zU_}eqv%NP?RCF{Y*ppAdVaj{SQvd!bmaDVx*i0pKW)?hV7TPg zLar2_OGvhm=>W1dO#V3ia4Gq|t2R-N;v}M9@y%cc9?$9>nt}|;hmvm=lf2oov+S+F zv-UaEeQvvBBV$oyD+rdyPQq4xtk-R&OzC3^dPnF3`JVDw<$L<}Kt7olpOk$qpc|4I z@eX~J-Zs$B;@@=eUHqAT4fUMV;nY#)JCwN=IgFl6Oz>1}Jb0Vr+&Zy$Xd!KqY)p`x z(SG?98uNaNbd84smaF&m4#hN{zZLAE9qO0H4ZUufKgq?#WqfaZt_3flmpcm1 z?iYLAS>S&H{NGEvHc*HBagA|hD`X?8y}}ud#lj6NY)UuuE0(j5G~cHf=327v`yLDE3qM9V z*j>R_(JmiYzOiIo>&xeT8h??v$-sH=2%91q%8;htvO(gB9}7_YLgW1?`l~%(z5b$a zH6D^oH6Rb)M=lfC3q4mY|FyWw@pM}Fj0{RXFQU!<*hsc*5FXdq;3hWW{bQri`bhWU z?}f-| z7Wr+H&P$%)r-$RvCVi^Dp8cTlS!DC1cfxeVUZod7+SZKB%IC?K(Jkm{M?W&wmFxqK z@ARb(Ck-8O#utl_G3lCQUwZAw-{eopACcbO4K0d2C|$rn!~$$oS&G> zK4aLBrTl*9@kt&JMRWK^=pDQj?LVL$@`0DU3C?_8y2iM;9v_JQm#=r%tX{Xk-?`8y zEQntYFB9<9kH73@aQzJGli7nd%PsOLGlDG6BsM;Cc9*k?x~k`Ndb%jxTFvza+O0M3zWo%fJ?N*!IOYNF zTa072aV}!Zp5!cAJ-tU364aqFihRf6S?~cGwf~%WxsSXHxt>Mc@*`j6dKNU~I47W? zh4bTQwmEA!YYbd?6B(Sl(b>-RYm10WP@WfiYu29K_j~dC1Y?Y9#vgx=9(jG*fjkL= z(3hAgI%nsI%R!g?wMy)!GPaTJ9a)YXA|utr-PY4r+SB?8#u7h7o)g67@~0y6$j%Ru zf9>%!3~xP|M~3!pfM(=Yd&&*)Tljkxx^#eNq>sYuFnXYPMu0y2d&-dhSjd*j2=Z)5 z&rXI8^2>(GW(r3JDC?u6JWZg})#$V^{>R9y+QQxf-aFzWv_bYyeJ}q`{@iQu>Tk)X zvCjy+kng4aM*aJWZ_GueH6GSD*dGHAu0|do=b0|}gsjX){?%sjM1K1qGz}s*1M9h8 z!v90&dG`dHf?eGT4k6$3Qs@LaZTO28iC>l;Hud0$Vr)w$;HNC?cYX{X{Jv8hSY<|# zZO>1FKmI+9Im9Q)O%{3feY&5}HeW8K17|{~?kP<=I>%b(%C2@I56wKMIU$WtB-;(= zs-Bm@Ok_EQ9wQS+#ueB(>6&~g#nU4AQi`!H#lAg5pUU28{Je^5y+c3EDLCq9+0wu{ z>@fh}>nT5v-UJx?40GKHt&+u7bm!?exsUFOX4zbyX4%O!woZEcQTs|St`_}z(aAyk zRBWdDLNXC%-XT1v3%sZ{Q}0;o`J2yDhkT{dSD`6SOpiR<&Rpx{b9yJF+8e)jG{Iwd zu$#Q$bGn?vI-|dDbKZvjzQef-I)#1W(U0Jp_|pN+vPmuMKYql{(ihUJhY$2PORr_W zWOT4@ey{rz^rf5rQoLIFBHfmcD8Kcm+#9}yJ|Lg$c8AxmidC}*BfhBo&WaA!n=-Wg z2wJ39l5@%4M`f>`XRM1XN*?^!g!I?fq0`gN?iqZOV+0;g=mB^6lRnO+&f!(ifi4VS zhviqxhYlfcKOOBG^+zzL@x6_%)*H{im8@rYCWvkkdkCU~A#`vD&uC1lKHWJHo=J~K zV-T{p?6r*^5L2bU)UQp{FF#MVe}>iU`s*4L4-OW=z>@6FV@9<3abJxM{rNEYxlNg7 zSN29Rv_Z-p*aj~TRODCwieG07aw%K5lm3(M;`tM_OTJ@cQe%Xdohs%lgayKnSvKWD zn=qpBJIF{|MejwM>I>7?BRAsnP;Z*&S0j(R#52lNtkR277e;LmIv|;rF3p7A2=b#b z=P>!?Ps^uV!}ATZTPc^=z?}6?oU_J2)3Ay1FS~A2*~0-{U;Mebw2Sq#qeSL>N1Se@$HBWy(VK<2!pC%|XTKs~OHl#`?_9 z>?%Mn^F}#%giW4>jjhK1T8DX$iTktARr%=~&;#k1Fe(GhYvF8KMY|i(Z_QawN550e#2K$cc8Yr(o#U*N9>}pL1~}^bK#E1l zr;T3I;mjw0^xBQiTKZLex`1n8SPS+0etd8O?W7+y?tqZ?HkU()xF;Ge6n7r_U~dKWwh+xW)x_ZsS*jct0AvGGEF ztNoGm6J9Jp{=H;fzNs(kDqs0kj_UPdY|!Gz27JHK^GVUI;mODh?a6br4rqH08ij2tTd{x52Z)~MN%z{D6GjxAdK+I3Z1b@+j&2UZiw4r= z6UrYv;sYWlvVqY8aqvFk;H&zbyXTMkeb5yKhqQ;e#*)%)>7-R=Ot7feE$}CK69zO9 zcbSPDi553`I@*CBSdBe-9z2Yd9%C$AiGd0)g^P+i>-}KS6-Jg6Z<+HM;siE0floLk zx6CapRp0M+Vrg^@`_#Cj;4GCKP_EVygwQ|5^E4*Zn0j(?ncIW>)sTONQ*f5Rv+QBs z$>*8DFqnjXu+EY>ihz-yE}vYw;->}C>u&6aWJ`NpOge3-tF9=;$M&!E$jkr%ZGTcDVZKTc9?PCSqBWz&=ZFva3=fQL0I5A@IUc3QZJh>qMQ0WO{^%eKORMR_j8vd_U#$N#k z@o$DElBW!ho`G*M`6H`{-@vTk7o#Z%w>$j7vQ#aYKcKUI5J+&}H+SG14Cz;EAu zw{5;;=n12?`{Qkm5%;#>3tgyoRCw?-bOoVl6S%a!yxBda$b4vy@hsz4>E@HrzKwg~ zR7GdEp3v^Rh`f~4e_*VBd$MCob}DHpR?K3yhD`vz6p{e{I}O=pW?pq_oZ_OxIPJtTR*XP=t;`f z`WLMQ5Jn}I6rJthTDV_4!54&ggY>Op?@`tQJj0xwH>ZFNDl=F2Dm?9aQ#egb4*5$I z`b?5%`=R^M-5Zh9t;RsRhsE$%={}Do$KtPOmfzce9z;G$eHV!j>N9wf>~~JoUS9Ic zPwRDGhUO~j8YmE}CZ9hB6z_b0Q{%^v6xkz;d4~w|5sHb(kMY(XfgiP$(>T7(Iga%i z7Hg_C#?aV8{h~DWZJhMOo?PstpDOe0TJxrPsF6$I2eiwtlrK5nVt+Ac)w&?92O31r zq|5SShbcois(SLF&4rNfApP((vR$B$e+G7Iy{(?rI$IB~v&H@1+Dx!$_4Li|MEYU4 zu*>Pe&pRP=C9&g;Ub{x-Q$KBc+3zQC#c!7|^%c^E)f&rAxD~ks|GXG3a$B0$>;8=U z-Z}v=c!a+5=Up@wQ=R_&p~~1!8N$cob5~+>Dsy!5t2Iw2y?vJQRG+UmlAHJJD)Hek zw4qbN(hU>eTWcd-8^G>L$E1s4{GMl!bFICJ;QuH-r#Tt<#*M7$-ypguJBAKwy^UxV zz18TU=JQkdx|-)#AF9ql+NJ&IZRA{hkUy=tBl+8k18Yr-=8h8hx@XWIie=0t@05OI zmpXPsOPRLGUu^gsJS+&q_BlahUOxIbd}_sW72{t>U(1d){R(V@H=6%bylYK+{|gc?l0&A>7H=Io1;ayRj2A7 zL}#MdB>A4wb;T1sTJHgS{#v@jA3jPo>sD7$mTZeRuMBO2k7HYIqObAm6xWhmDgG?q zM7mW!zME&GW**O3$7{?%TvNYu)E7iw7hsoo)?bTO%~;Bh$@~MnkSyx#P+idZsP3nW`z5nSo@=5`bYda-enB57E|oi-F(-fOgF)^m zE#{$kM!xb{$cDf6Me$r4z4m2$A9_6i2K*!CyeI#aXM&8)w6;KH3McfeZ-0Eh$G1bi z?G&BD4~@sX^~khCYm)a)=ym^*J{14NgNf89n=nk7324=N%gGanagtBEptynOU*oHc zjSEg8z9Ik5vnK`gtdD-+Su2CQk=L8MDX7c}21>3KThyHP0D7U=vHXa}8OSC&+60ef z|6hX-cYPebKi}r`(qA<>6G}Lz;Eg! zpM1ec`YOt-#DSkB?S5#BF}L|Y-m2hs^m4WFWk=TqwV!eHTKF{U4#qcMqYTCok0X~y z>?3*?G2j$3DSUo_XU<0EqM2phS|wqhlf`Rht1UItDeE5*}Q-fm|*=hz~~r;YSG zV>ZQh)xM`GOR;9fd$rc7npbK3M?S)S3{j2azwJSWoFVlcL1PH@(P8Kpk1cd! z>hy|D8m1nt6`x97;TPJRFm+8k10NsV&>EtVMfg;s`nsF4_tDRk7I!++X15>7{~GxD)B89 zc-U~-Byi6r&cpjAse9n*!zN+zE?8N(`j8h}_1_Is{MNGZ3Dc};nGApC_YAeL-bp^0 z_%YCljACQArx@Q%YIU~nC+0G~*L{>&=Ah|yyFSwDOe3u^%z8tvtJt4$Fw21rt z=sbc9%~()$9y9DYl)^vlW`3lP_o2>cbJm{S?z~fvtk3Cn*EM%K!gXQ%R`!oly@Ofi z!kB+BlsBEUg8}f2{WiM-#9n^A(K*1qukapN>~o#Y;R|>V(t)nG3gFcaXVOIIw|02` zy&qeVjr?=+2V1}|@*2ulo>-Rp@G+{UGna?XMCnV-e-E<$BtE& zpL6f!xiFi*{5rB9$Et48fvuA??z;O^Mv{5mj^TEFqwg&ib#j(vB63q!wXtkC?N=2z^sg}E5banJVV#6e&)ENrF};o0 ze2gyzjBSOCVcIKtM)ghoO0J8>F%H=My-w0sZpzF!b9?qE?fFcEXUf3eb=Bs~UA!~6 z_-)oU@OF~Wk#`i?#phY*q{lOFWk z6rcXjw)f42pVcdkwK^wb_g2JDXJnswhi|Bp&j7agurrViJ&Td9J>loQXB01# z{)N#$)(koWvAa5%X#%gh)N_W<>AX-8J_O=yyZ0`kKa!93u!<7YQ;anl+FS-7_81)eFFtLaT2B3T_cCemwc=q^GXD-_Kk`yglFa5VD#*UF1|6 zl~+Cr_gi%M&^o2ZoV&m_G2XZuhwIa(ATZasxe`JbHdh!(Rf-6zY_S!R#5vL zp3mBWz9N5EvD3|b{-Rl%4$xP3(Z(wO3H1qhyX$!O`C9cY^(*D6IYxU{(rJyM(rekA zMKkZq6tf=RN}cYCGqvVmylP9PlQ{Vd^&RIE5&58Wj-2=3chL_L&!z9>9m#rT zpm!trlcsm<_skfn_3GwXoM}a-D&*67Gl#KR`$xOa>&QHbK2F589DWIY+%q{B9b^1D zo3-E_TQbR7o{z%T+{##*0yh!AhwO%^gPq!nZ-O+kAtqsmwu9d=jd`2$>AZy22s@U^ zf8m~edG1DcUVD=I=AEke?Rge~@z+VA4~(yxvo+5-BPbhspz|XdBZiG(K0%Kp^K<7V zGdsy=>)Cf^b`g$8o&;er&mc^kz}^@49nAF?Y|6+#6GUFs`EKI1F4Z{zoddJ;aL@rC zfR1Y5_eg8=EqQ)bz}w%p^9y9=4M*E$}V12JUK{6c=RNu4NXc*$!YG+Hki z|2Ff|UGz)&UZ3F%?*Z^-tefO}Rb8H^zC&8^9B{sG^eyoAcHZebHvNqHcl2f2+_hiT z$G6;!O-UJLe+R?JA94HWT*fiQf9VKk=zX~T^yOa82rD0ruXgXot`GLm#jaAmNaQg(LMPP#|N1Y zG*2B!W=he!ap>8z)XVE%VP5*?rpyt--lsW3K$>UU80Q%4<b0__04|=hSKJhmAd(Ylv_N89~ zFQ2jOT%C{VfNlW1>{sb}DDznMInop{hlS7)yz7~#&$};k6q={8#d=BKfh}h2Hro9- z@qbNQ=^0=>|9j#d>NLrjIOG}hC%l-M4UNVfjW=2=T*x?LeR0-~SAVadt_o7FPhmLv zX!l-}<}2`!E?g|#gvOllbYyEHSBg0rznyI6GUD{CUTKQ48r(3}EKZa$G=@#e`1W;l zqRi`0>O<;NvXd@BpQXzuu4aBh_oeG2h*SSjpAwDfPhsgCb{o1Di0sAxL0h3iyU>SG zQ>ovX8#BAex9U=jyBjkR!ckLM_ds(eW2|U`&^!&zWN;nO6d*@6_q`LoXKa?uyxaWA z^EPH?j^tT&>U}eHUP*hL&-fB1j1s>InlSD46m&CypMtKCcH0E4Xyy`kDRuR#sW3dG|EjKTfxp%x zT7zh=Jd^s;{Aud(S>{3F&2ukdo-;;PtzS1*-j}HwfxPIzWWtGrPMCINoQ?piKNiw= zHmK~>(PsKqlKV-}RfE3(d;$17RA%s-sK0xui;hdt{VO+S_D~PoxW9M$#>_p$cXGd% z_`Sq$<^CSxcM!gza->+3vlf%QSD>?2_pSkF^-?sqP%f*lT5}B$cX%(lPQC4+ZZvn! zm`Xm}&m`;irrelatVvJFQ!_CSA7WuR=m zgp-Juel37^8Th^652-BRUn5+Aeo424e;T?)guj#w&dZrkkf+M9SY@K!%~}z-m3X_x zv}KY_|Kv#Oocdicf^my{i?|sX!w)x7heV@{^2J0Ziz3OWxG`23viL-T4aoP6lPITgKbYkaJWV{sHjIhW) zpWwWlS*rR;zMT0J>c#eZ|5!JMeqn6@qaUQ{#df`jvP&1GZ@b}HGIOJu2Un2iUFc(+ zus6W7iqL3%`8+f_1FSWd)>}^zA55WFU8&4|aIynhJXx$AVAmP)dkoeS`D4FWoL$ca z5{!fNZSzb^9J`4*X*_W8Ip`{Du9CNsnUjj+{x1AY&s1;BIQ`gs#G5miPaMjW(}%Rr zxJB!3=7wikbIYbKC0;VUKpknE)R?I=IDY{d`{R-kQV-EZW z+EM-6teunJH+HSg+N)m$x>A`R`r280RCXNJJX`E=h7x~S0J~ANVQfX|L>T+89{vut z;Vq}*lf&-Q8IZM?s(!jNlc+!27bcBho;df0}f=>#6j{sjQo?WDlwu8|(^f zC;UJW?o}^w%9I5E1o$fAo&YZ!DG5zI@@d|!CSG$;oVh^0i8;i{K383y#l7rn@zJ>? z&B<=Qd<%g3+zjt0;e7`@o`kpjTS@LW5&tal8@QLBYZLJu+-ts-{I-sD_VP^TkOJCA z&)7*9&W6U8SL-OnY3?`v?Wfd--Dir;d;@M$HTudtvywSwFEZYPPp_W)>y?-0dD`*@ z?!{*{dS-bGHshhkZva^5uGH=m;W=D$7ku`>^Imv%ac}c_-j~-t?)R(iuw^%rM)TFD ze0l$om-m|Ak+&_&6SUa@(%bxdSK&YK$>2=Ket_m6G**_AK3Rg`4@#CN*(XnaFLM|2 z=$%iZf0lH5_tPQnHO8Cu8D+NPwmp-nK4Hgt)sc<2aXL?7<1V6YOSC659y{Yw#%san za>ksv@x-Oj^+$;>Chjig&1aZ1cM*5E0AJa2%=_TX*;QoJ^L767tD0vu$L@yaC)AzB zf{!7a)Ece6tg{@8VwPM5|86 zpM$?=SRc=c5;p-@{?z@NFNiNC{s8yg;ND>z`1pD1hwhr}48{O!e<|*_;2p+QwViB5 zom1ERm6L_GFJ=tazLMxlwt8rUnDfOW}J?*!d^Jd}4vKP>PdamMp+V1G3 zj7x%Py8&b}-x-8P__x7{M$dH$ud|k$X|E?~uinjvGAF_JUd)*w(%EyB_H3_}QFC$u z@)shzk-^8~1nK`nZI1q3MVpt>PCA#OzHIxy9e<7Qow}F5xHwMxYFtb(uQ2`_KMng( z_B?X|e6-Hea|*H(wO6HnFaTdW=SgQ&XR0r|HkH3oI;43^`(eX>?w?Csp7M)N#SS}`AZ(jG6$Ju&#Jt#X{8qe^B(D%^gmcP;8H%pUrrY~~u| zacDoaullT>6`4dk*F%2~{a5b}&^ranu%CxxSMMcVOl?ko)|uRusxx#a4!!(pdauU` z>O-^|Ylg*`zep=zrF?W6leC`E9BllU=%V%~=7Br$yuXjXm{FWvLtl-}kh9I<;r5sB zXWEF*=`;Qt`DJqbiFv@wsXl=>Ra=O#(B*nnp>nVCFq@OBF!t? zpwWCH-RY!$WlI%loE+xygqW%uqN582kcD$q^mCH7mvqm$N7mEK7<$syg8&17*l{%{ldMv#;G z)ESe3C#mNY^-Mi!OqOnrOXCZV7t{YrSiiszdd;`eBWr(#L%eI&VccbYnZo>%LZ`c%1SvjegI7H#5&`QHCUA*At9YUDVAr)Q#qAg{m8sQ)AK?<}vZTmU!_~ zoaH0^ay0gk_XKQ}cJh+%)asqxGte5`>ZI1L+B*n_8QbVTMG^Fk`jWpu@6ytEmm3GM zopWpAIQkXkInjjloVmg`C))h(#(%yWJ>31yrp(>guUml+QLoPd_fkgf1w9A;AaPs4 z4}Wu0W+XcF8aU~Z*&9NabcXXfbV=i78r(Um8_GR6kFlS~yrp-D6*6y4f@g73<0#_- z`hOUGo`lZ7PTG4lhLYbNbhb?WA-psFHt|~HTDfz5(fMBH2((&rne{AXEkbAXe!b%r zj7i*UFJXXtJ!7eN3Mp;yEXFnVey=-kd*9w8N#h3_hhFJ<(xdR}#TG9@#}msrt^e)H&GewF8`w5U!-=l{&nf9#y^cU@^48$q_btT zZ7=#My*Wusmn7@7T)f(-i!`*6^3~bT0d&pU4LTEj_|tBA3mn_b*96>I^Q5&FX?(B-GRQ#UXeYl{Z6fSbzVaA(J%JV{=v!bnRf7JLfS$vSeJ{PJpk9r@r&OGi#w`YRazUd6oFT2t$v&NI<+!w^% z@=6~JjGm}YtR9I@{aJdZy%5J?9QXw1{GktocsC_FA>HZJSVmpjbAB3=wGJqdzS53n ztw0-Ut)MabF6#6d>a+=&be2eKUG3K=fQMa$eUDE|^*cGP+M7ReKid-YHG#8sYLTavHV+Mh%wwTb$j)z3+9X+Cq$r4?g8oa<{#f4uB* z+s2x^jXg~sXQBI=E7ZQa_s=Vu-zC4+{E|!k;cx@*D^Y$SbbxXxZQ#0&M9i&_-y7r+Xp_0oTh$~?jD(NW^WA{%~=}aX9J(SFH?(t1|1u=Clp-eHtt z{Mbpne0Zr_C@1OaL!4Xs%w1+4Ox?0QyKw~kkz+SLEsbNcbM(HWd(oK#r0u5sW#nb- z9Awj2Q^3Bj-t((xfz+rv7^gU)rr=Q+lvt>m?fIIX*7KT6N- zda<5%kRSCa_UtrI>a2yHH{TEamg%go3DsYAq333OmtssHFV(Sq7q8A1-FP0)EZSm6hA)k=WjA-8} zjQpC5+*+a2Gm&&P!)yD_rme!Yj6BUL*e$I$ZGZ-I>?9m;CAvxjwBjH?dAa z=0gv%--lhW+jH8-kmWWSz6f7SC`iI^v9$?%( zLS0FYqbgU2+iuq1rL|2}7kxji@yoTz?|a_W?@3?9$Di7s?fNoxO@FfW>V!3C(x=A} zXZ8AdWT=AoF8b#g(*45p6#CVqFDElm>Pmj`^w-G$NuI5wpS^t+_S?DQ&vQ8e>aCym zgrr!bbg@rCd5$CV-S~->Hgxv(Y%O(l-yPH&y1DzEWM=Cso~ii>eT4B;Ys6ytNU2A= z#+&RsmhBpWez8~HHG+K02gi1ejZg8e3O!doK%M9ra=p7*Yoe#GdYnZ+tWFE{(h6q}s=x zyY1bsInF&tSRBRfieYmFk@Fhb8aulf|ASepMR`u0`DoP?*?2Ey!pQv*WR*_Yb-#VD zgMDUC&*|y;yiwF)Fo{jv>CS^==W`bFM*QdW56y|idAeK9kB=_X@eM=0A&XbxWufBKB- zPwV`$Fl(C#epto})u+a8^+)S>oJ*Q5Ep<2JW*hl7Z}017 zZqd1C`QyxUupxaP_5y5`i_%YwWNdPFr0Xbi^la8vj1h&Qr_*(6=cqe>+BPnrO^n~- z0(71_ym$K6OdL77S;s#4&OMpE&*oe9!o??54522kFX9 znH8kh`)pUz7Mp&uHKXT6bmpap^t&V2^Xv^w;M{Qxy61qm0^9npCrv5mkjs#3c#OJW zELlWc4YbO$fin5+fM)uZ>c`pu8n0ysXgrpUq5cv~^6WbK6ftjG8$;{&i3>FcdH&Qe z&(K7kO>3?l&ikX*l3#=E!_Lc@HQX1V59%iqnX6$XDZw z+Fj#^Xl2VOUTM_!>PM4GnDf{Nl`XG6)kHaE&zG?eTHx$V-vQskklQ!zfo3nb-uZ_z z8;CEKeF6{J0ea>rNn9}5neGjsJB;ro=xi#4zM!Y=@YS-s6B2vPyWWB**6H+yY-|x z*hW6GDTUW~?AoL3P2tP4b)z$}viA!sw`6uw4#}r>P@g-<{j(1HW}JaYA(!Tj@tl>g z&ucWHchY6q-fEvtPxcVyvi64hn9d@W;lmlOXNS>8jh*-XJZbuu`cP?9?SkCkb|JI% z3u+8}6q&{`R`+^i^{!!@(~w<9UmA@aYR64ITVvzY=QI~LqOTS&I2gz0PF{LuTzd=} z|I8i({Y7hVolkq7{5GGR%ru@(ov}Bq_Yi!V``%=CrVE_ePoxccu{q88v`^ec%Q8;F zyO%yDzd>=5zEj7zM%(Fm8a?ZAf_U@X5_Px_KCSHksEzD%liFJ^ioge*4Ir1!#s|Z! zx!%DCkIXt}@!AM)ek6bECpjNmuJ>lfG;A~Zi1$z5p8YhsA)l~xV>k7wGOMie_1z3k zcFjQP_sl!3)u(i3z}gJm$Tmj$MBZ9+XmI=6Tmue1FV&Ot`=x&_)OC5dj#X;!J1G00OPZBs7GuOt#f7L>#Txw zU$UEh@FZ&{#_GfLNlW({JO{$OKLWih{<+=@w=pvwd;j2c>}&Qi?vmZjy=?f`3H4nR z+2Sh85nz=?^<(SKUvD2_{8L>uqf@pn)KBgCfDZE1SZLlETJXJ0TKp(a5#?D2PxUda z1$D1>Q8~me7A01@=u#*?h@=-Ft%9#qtPB9Ug_lF=Lho|h`wyT=cT;H5RvXIiE6pQMiTt-6{c?~eZQ8{7NJz3;{k zoN@769nr_L9ehi-Bl$Sb1$1YUosVae#3hMKhWSN^XWTk5yPNN#J)Yf=;Fsdp#V^UP zlV6ly?D6c0vE3PmXOJCzhn{CBBYH;*W8c7&{N})8b9bgUl+3=?o#Y)$!2AZz_{Pxy z-!VS#-Agk1w*038H-1jvn*Za+{_eZ_zWiO+?7L6jn?L;aC1>gT^AjgLvRdDszv-e& zZ_;;H9mqW_2GnRH^uZ}qME((fGjmA+m7(WWaW>3j9Rm_DXf z->?7pv#)mOd-gxr^pn5Tx9o2p`{yI|9s8TVG3!6|P5WMbvwg|MZv`To`eNQU+Y@}( z`m>>Qe?jP5Z|XaU8rNIGt3Q8MVCZ+-=Q?-xo#u2Njdnk1&WldojeY(o>qX||AU4G0 zecX5O+rT^!N@f0@@3x=cl**icFqQdU>Xq!F&R4P*>|)KlGnM%+-*f+V7`R;X$-id5 z#eFw%-|u=Q`)cx)?05L~`@!@p*;l$>$@auw$-W$UCHqq9mF$b~C~~lw(1-i`-~FlM z)b!uQ=Q>~Gd)X1nq5CM|ChvRiL49Zb4rGuVNBQ-TeHt5$P`o_hiRMda_ld zpZq)0PbPg;yeB&$-IJZz-IKl8>B&wZ{iJYD_7c)ZNMEh=)c273r|#7zmqHhb_hhH0 zd$QBId$QH=yUgjyPKU?kq@O|hnMzNYP5KpH9eC~c@o-P}D$&JzvRA}9$@)@r;?t~Yv=3A0EX7`n1^CwNBZq@MnSj$t9#8b0;J(+{!5qQ!Tu!V%mh9-8 z0Iy^`-dF5gPuy1HKj1spACoO9nUsG~Y)!g1(t*t+-;q1++=6_cb*}F(?z}tAXOSN% zan9|(2ww727satpp-Upa{50Z|j9=a7Pru5fzo9>wxU271@4kCaGBU64vyqq0oXU5x z(w~hL^*QjT45OvPCpLfMsPa1kt@ZsBc{29KI*gu+CKngkVd9Eno72Jzr#--@FJR0= zrdi5AQq)%zt4s5anRH<+mFc67RnH~Pi2hJi^8@u76}?jyizNFBNvAS-^7OB+!}b3nk5Vs>2=B9en|vswh%a&fbGc;}A#p}K`b@x?c|8wWT@r7MSPXGA}-~Q~4-+bx*-Jkf? z@btGXe75X?`Ja3CpISB*rkB>eTAXM;z3iq56Dm$#@()+vS@t*MFZ#|!D`$-T$dsQ= z?D^Emb(63A@mC*wY~*P(mcLQ=SNGPml{M`C%55|MuI$sd{^UzPn?L0{FKztzWt%GQ zoZR~P`odorhvy#s{0~CU zHC#Wg_zORr7{29`cV2e-@%=yeyJ?Bkr$YyO|6%{xFYY>b`QBMeOPek~?+ZV@@5hU7 zTQGk2g1^Xo?Lb#`-KW0u%2&%PulVjgv-+>ub9ixEf8A|MUVZeBp4$JFAO5Ok%G#4( z`S~Bev+4f!_$BAeX{md9L+jpwCn`1^?0EZ%`q8C);IQhvx(oi}-4{CF`o^X=e%ch< zb=K|Q`pUmO_3tlCTHf0K%MG`D>(Nyg9sB;3<6kX#seA0V_iy>Zc|T2m?}wlH(XkCb zXnyCjOFr}KueY4jy62{W;%9aqeDamg)Rledw10mgxbvzJADLe{^0MK#e5B(u!3%zU z+yAP1VBEK(f42A4X$M~T&RJzId~xQY(?XB-+%#s+U(desyDz-<%A$#X-f;5K37@_3 z?f>}U$M&{-xAvSB^RL-3>#BxTs~ep_nA@VuYUVk`!P3C6z?s2{z*&KF3P%Ob4U8^0ufUno zcKf>aRjUcxTitN2y@TJB_J$4Z&XoF9?W>$AtJ~U~DXlFoP}j0s3F!YCfu<#2e4aINs!NRBEuFliV~6K1(cjIlocgi!4+DpQXA+8jH{l}SdJq09LVGFwH~Fc4*Aj}}X>&gqU+0Wl z<=xk=ZfdE!xmJ2x+tOO!(CUnc42d4yY3+v za({JW^QtCiUBkMz27?!^8|M*UpCF3{QPd@Fx7@r)kEEt`Rdd^#mezG1+F25tw|M#T zMYVNw-R8CiFJH>C6`d?R({ZY9ah%HY9H)aiRH(WgGsba7-3mO`apGQhzzci5P<1*c zj4lw0Zmq(PIL-!z#CIr!Pp3kZQaW2mBODT3={T<|gzl(9=#DFdPP!|)4|{zSLRuxK zY0}S8IsJFrUAz#@8OATlPuGDzcbpWV`j65p%Tj*oKZ5PZu*k=YXoFLzE-iXL9cr7q zY!M>Fh#%d{Trv2muh~mHbj{!=I??Ou{Zrb;y*2-Z({Gj+nn?bgfX;u3M%Pk)$d(gH zbh%*&oTVG#((&KDF8DKsb_)<%I)y&5oet;{L<}chb*u7*_^FOR#T^$Zjzx;~nhAioJ-{z8HzXgFeAn>iy-8!N{Th$; zor9{`^+qr}$bhw;R846s_;K_sUN)Rd{wV=`-(OkM5(^q>ukoXaDDQrnR2q zEE_q%`Y{kq6?*=yk!Brp>)9bCRm$EPlCx* z=GR)|z(;Ff(P^*J&x^H*n`boEcZ_@KpXjBFIl5S^um9b5M~lB?D2k>sKQ?P8&lf^| z!ntuvDSvDvV;o|tE|!hNz9^G_Q1xW?xs#MVP90EwQ>Ij`?-RD{U9mnY%$2D#*2j30 zlP?%c1u(VYBbnBpXNQ73z$9&Wf7ijOIm z7b>ma$0MJw$%puoFz@sGE$evdgtfDgMRhA)Md19h{HupooOo)zJRBM$7qY%ioxbMP zqt?pQ74@|=r&qKgRT1kCL^}%QldPovu#Hr{OhFvoNqW2zvA$K*i~6~ECr8L9p6WO6 zb&GVOOUc=VPHJg)z@w*LvD!?%YJ9+7lG7#S=jm7fO!%m7#OFcyiMPfvg(^>_#v9t+ z>YsGRfuE%jFX`6_#w*2%Pr&0NTo#-i-&BYBX;pv0IC~JDe3I4H-4DSTIf%=b|L?)6 zu5EqTP;n(;>LZ+-{SrPNznm|TMzHd#@X2_<7ms|duL9Zsns~{saWxkoO=Z69wddau zZU{I|HNOGIS=+YwKnk6R*RGMxwCnQz(X^??;ZpfH;zqRaZsPROUCHe9~#n6B-|E->mNDY?7n?yK>~U@N#92 zja!y1cByC7?>AERUPg_(Hz_eJ);E7o^8_v%k7gY>I7O#h%v zhL*a;&l4!2uVXSAI?1oLFZTLf5%{ygDZTo#Y3uj$C}dq{XyhMKJ~|WW&j%A?w0uf5 z0%K&VpFGXkwUU%OR!SZ_HYgv#cFeFkC7tn)7508Oe22qNzMtw4d$i=Ow55^3axz|) ziLc(nJ{-I)|GyA#?h~;-#)vY>Z0aiHmcihnvA%y|{80Xag9+ZUgR9x*SExKF3ZqsZ1XG8B`Sl>=Qf_J-}FxxC2p1b#FNhnBQtcFpF!cAjnt2M@+G zR~9e-LXBs#k>dEqq(9Pi`QcRmjB$M>jB(}o%QW`|od?aFWo1EcN0$<(wzP4-AZ}Cy zdo0?KE{xot4h9~0Q+cc03Tx8%4#%Wo_+<-mU1a2#=? z^5R4{E-#K{Raqo24x71bW?ozgaSQU|sNX{7DEeEfe+F`+Tm3WHt4un{bTEpXfsVA| zCp*aQ+@Dt84M3y5TR@1v7vFcPpZYjPU+Moj;bBURt$}6iICZVJC)!&s!5r7mnB;Xt zJJ>7EjHy>({yNU|snsHPsv}oSS9odUauYu-QY|ylnR?l!CVpyUnxSKPm%FH=+%-9O z=jLxgt;Oxd_>sF70fP*+P)DBAj zavolM?WOYlGw?R(sRBcP47k&mUIVzjL|+DM^dCC$ACre4mj_qp!L#$=rFn2|9=t9O z{_)ZnOx_R2_#^%JTdS~7Zv09w0Q_aoX#+w@2 z+AaB-)`kW{+z55EvwT_1&3XOcZCgX@tqrZUH#gia!Z|f7YMUEw)2$b*YpJho*pRSD z%TfN()>;dRXx;iI5t*o5Mza+q?5g_u!8|t@QLmeu%T7gbC6}|8{QLxlBXdYoL$j}l zo*#EGrE&c#DLJ~8GnnD5!P~l~Mz%?8c_mug`qf5CSAHw#4Gpc0Yi_TdZKQYGq#0^a zHn!FNX+vv^;pvgh^2k*1y0r~>w@qW#-n6(jv8r{|Iweyx3V%~Wdu@HgnpNwY+QB=N zOqkWpAetLmSGBja)=s^`z^yIo6Sc;u7=pcQ5NRw8Aq}aqH*%1%I))^iHkiMtU+;zc6+aF> z3NK_2N#RBKR~0hhom5x_AI9m*35cI=wdSOB#{C6vyK|3kDg1Jl~`5aXU-xCU<8^=5&IU)+dFHnfVvQi=W z)GLIpUExf3o*MHp$9YZgRq*pd*=L0n)T0;9Agr84{dr;B3){VLs~0}%gtg`xc=*ch3-C|;-g+XSvUpPP)`bp*Ek^hn8IuM_aU!S?mJOddj-84h5}=8 zMm@Ni0w(EWDmO!bu^CDUX*vUgGS?y>FGYw}*Cc+T{~$WLlu0vpFhotNe8xhhLR@YyJzT-wj@9BKcP-M!ril zy4LWctO*0~PjspSds#aC9lIG9I51wi!6OS`}xaWNxxJ(FMVh1 z&U8VnAsyhn7Hx@Xd42zt@)xA|E*w6L($Dd|+Kv2f;kODOK_t~btn>bKX_D`HB<@ca z$L~)Ug*K)OyYY9VQyGTNW5c_C_-0{udEdBc#C3f?TmBO7U*}np^6r0r^NeV)Pw%L6 zy1$;t&1pR)5K6ETh+Xe8U0^bve{U)n3dBZrXcY?B7Kii{I`3|uY!{?XE ztcFhVqnbb3O8W*l_op@ubk6O=pQrPD#{$%Gk+TAy&|COZ9plFignpCrYq2^_<13=s zmAATpd;TwwzO!#ihIftN3%@UYUwTt`6VIf~>nln(r;FmN(}7S&I?xU5bfk^XIg#pT ztUgu{j%81GmS+k!Z_N}YU(5;)bk6CU87}CX4X<~T1$_m?VcUqZLEzld_8Z^*tp^Y8Dz`y=`23ur%`TP&npf&)CuQ0Qz* zQ!mur4~_(!o+Hriv2?>C?De2ih2Vceyn9|SZO%@o^9xv6EgnSuN!>|5Bf75XAAX;51(|xt@UUbw@yKO7keuB z;c3h9|H|I6Z|`>~{E(*y^d0#7agu$1{Bh#0>(dxv_8*X6dmyFoO@$wK)8cCmt9@cT zFN9q3!OoIw$ygu#-Rx~EO}nL+58vr9Wf8r%FO=Im34)`1BWSNOzdYih{&(gSxBpdz z9yfKTeWP%W_t5fo(f>wBsrezJb3UQ^i*(QUofD=#bndjD`Z}h5F8Sqemj4+mG1pJ% zV`Y+8H1Yv6n`Q*#S2bn)ipoq~P-a7CXwW0kE6+muXb}13dk#7enQ#W<%?xDMIAg~b z!yh^~bjOryFR^@F-?jRv{JffDCsL*aV^_DvE@Za6Dxi7C=8s(TO?ThGtA7UD9IQG& z1K5nA&JF$LoIeinE9ECW(%2*U{=@PU5ArG{9dkbZc-}unxpekG_iB^lIoedeaB90# zmF<6fbjm|?`ze#gO*<~ng{Q{msLB@=@5kS??V_@(PQ_R9X{@gFbU|_`E(C1HW6h(J z`37+f( z*$?J9o`brS`d}>4-bOj_0$|-&a3A&VL)>fJy8(WmP?4Dng3eA)r?1c4Y0kFn%&MMj z9%hV+{9|?@X$BZeL!FOh%aK9*Xm9f^ZbOGY^|1F;?mV1T{9zmK>6Z3!g3crCl{}n1 z-_w8T3U-x=FD1Uxi8~Q_?o!PnYbDSIdu?x%8=WUzV{w$cK(;o5C7@)E_U9mp)u1NP6UcJRk zz35#%qo|j1_U9f8du>F$VE>i{!(ZTx#21XM74-U%Ls-Et6zbp^AAZzbMd!n2E|-3Z z&sQxUuO3;Z8F{e{%Cy&50nOKZG!@j{RORP%a6X7%_+iclJ)DheFBBdNO?tHh zRA(UEdK=tBlRjz8EO$EJQvEy8?bO9Rj5YUUBjiaRGqPRGz3fHXrzQYP=E5k?l1nzP zPpJ%)rx0EN@I@a*_BX)~gYHyqi_V(1RXV3DHDWvRsGYS(X6xm2?ibPV=JK1#@3V{( zoA|})NZ%lQfuGW!O+Dn#A&iCSrd!_kn@7}^md4hf<`83dG5$$z%@KBtS6$9@z)sJVT z3S4RILB?oz4AWSKt`DJ+&f4+Vvp0s|HC|Q7e(`wQz9Rk_ zvuu9K!+)m3-m5+Aes?g|LH%7%eZ)p;%%gld(=|BOcyg+Jt311`m$^;#Y{xQxJ*y9e z;*1ykLiFu&`nbjq$H2;qafExx8YC>`R}p`h`f$%j8%I({*tO~#D}b*b8Q|=k#vJP3tW9v;nK9czKZEcI!lw`$jP8h>E-yQd+4fSK zJjS!a19yGn=)e_^WsgtL85W(RT0WBTr4YTv4B`xxch+Wt@`_6TYjp0$oD(VuyY{xJ z2l6!`Y0Nz7Y|UydC*Dq+??;}?`%j=ZG>KTB6TR~+#pUk_T_$}g}OTYWO)!?7jX`X@b+Q^AKkPUQcELq;)=8F&0 zPn^&L=vOK;|0MHFDAretoH{?FIF(&ID#Qai)sy09dbG(rS||KaHt{634DC{$;LJ|y z{=};IO3fybJB|0w` zNzQ(m_W*A0a?k9Twobye^OVJRpq<}+H%R9yqlkEJJ`BQkdI_m z-fLOw+i|PYlgs8IomkA;ZnFBFd>&n?{^2p^)-K*nMEwm;m5K% zk9URYHnAo99JG2TqtfZVfIJG|Rp7<#BCf={e}a4Mt!O{ydcw7YpC;7PPSux9zkJ3O zvu4kkJMZfG3l?5;?V{@zFNrN(w!G&08$P+>#!szUUB`ykO=}xJeRI>g=9a`Qt!?e= zZ@q29?SDGO9399zQzQ3a9mAkAQUCt?on!gEPp(j9x$6&kZY2g|om;`iGG`9lOx$xL z!dX~&?XOuF8`O8X=TNkl?_L2%+eLy;^0WMR6%OJV%bn+au-1!$4-kre3E^5Msly(u z{3jRj&s?s2Q6J2>X!g5aBeeOIV+^^MORs$^3yWXc2TL9dLhthGgNfU{-1Lilu+rBn zk-1!ahYuEhH;Y#Ha`F3ou<(nR5iP!jn^6{YicEXtK&Q}QE-}|E{s(~lm(J~o-{6(2 z7!&njo)!BHlxpudq0UL%Z&JGdunU}r^WdlR;4kOF@-5g)>Az_KLc!n3ga0`X&gQ|t z$%FrQ9$b#>_7eZ|fYsj82bE`X9zL1}tL$q3dXK&~58no?_Md@Hil5dg_ELV^^WX>b z;4kLEd-CAF$%FIH!Tb=s^s9-yl>ghn1Hjs&7FC8-b^NDRbi`wA zt2vnB9>f`Xn#Y5ns$ZYTJ%QMEbM39Gn$|bi10wdxMB+IeNb@V6i z3{l=ODF0z1_ju9!pBnOUGnK)C9kqspt3&ekhFXqEHLhtylV+RaK)$0=y3JMS9CNfw zjh%Ob>J+SuN|=LOhTb0f@)W|SRLqO?$wKm?^4JjHLZ~JM-`IK2@lr1FFp}MgO1F|w`PM7^ z81{@poSq#DXY%~7!tuzV5U24zg={DvPze9m6kf$1s=_GkS4v3v&3P8;B`KKl?Nms4 zjwqyFMhzoGo+>YlDI}dapF+Aj1XG_o6_P%!kn}-hRyb23d{!tVUvvJ1^yd5t>Gvs~ z^rg%{!cSHRKB^GB>>`zatrs?V;RY|!mIfyoP=Bo=TjaJUgW`R6)xcUX@v_ZpTdhNpBEnR;(HX1 zN52%3fA#5vkL%E@u!d_02 zE3ARPLh=iq>4r55Y2RH6$^U>t@^?lO!cX>V;YaD`3MuyrFNESlT_j~DANo9b93J*! zm@rrVxt^13uq8l}rAaS3RNuMKgBga*wF6$LNA9xxPz^(G=??qy6tQH|g({l+X$E54 zf{v_nm-va6E^0#2>pBh{)tkFSqaP|~LW`)Zuy<}~^IZXmYzd1Mon*F`rK7oqtOVvm zx7HF7S~`V3bI9p}F2-0noOsmRQ8`eh_ngC#H}F4v2`xYKc97gD9G)Au&y&wM_4DM_ zmtOv%&*98K$GL`_!@+l$3E^iCg*NlXweq|ir7kiXNA^aow zFPiXG7=ID_M3l2k@gd@yZ9M)GcmEroCO&oJ_hrv0=(u~Mqwv@2UjEwkxis$nY8(Mo zU-T&DaZGy?+K;|SD#`nqiUV!^;6?^`p6IDFIx}Hyi^uSlgmz>LkTVe8+*iQ6tj^{v zN|3lh=LVJOtATLpsb?e#&ghZw$iusIRX4|;Wg=CJla>lnGVO<$o{~_w8|C? z?_fWG{9>EllxL&``Q9PJH1ag}5k^y9JzKiUa*viG@^dguB5bZ3@#0`&!6 zq@0}jkZ&x*xeJNKoT#>xu9tI~n+?7m=Vn<-Bqbe}1Ue5`tprxUr;)cXu?Uq+#P zUJ8Thi?a^=^&B^Ciocfo$mh`s^1;7MpW!(?=UA}&E5xnLpyFjZd!jQkoF_q>IS(@M z*b&uJp~{zjj7Ny^gTcoQ-S#wl(WWislhe5&=SS3sX>0M2-sNcIcg6QBnm}k)pW$O^ zs3&Lx;xFGG_df_xho&8))FV9Y`6ttM=wHZ`d+?l8m2?|gtJ|U`SumZ-oZ-B1w5VI*^GD0k5hwCR z?VVHRZCUB#Wi}1vQ@;y3cbfA~4*Dp4R{5k)^0T_<5xhDhPr=szs=WijTanp4yXDHu zc>48Gv+xOvca$?$3Gz;Ij|`G~fz2P8tC6`hJyd2VvNP+1zla_!XP+$fRVTbHTZr7{ z(k*x_vFRm$rz`(BwRgAnBY3tpntB_oEn3&%up8rN)n{N2IG(20m z$JUMMtMCylnU{JpYu`ouL$tBvu==I;m5v4CKm9eX1}vMA|Lv4`OwQk=)BTPm!;FgobB`jzB@pi^jb18#WQb+M_oFKZiUzz zFnzaMaVx#?N%x=Uw^Vy6BQ!qICdY!2uQ28>)p;h4#w5|5m^VJ9`z;^UA!jX*{XVi6 z{5O$Z^~5&~dDU#n=#ur->*ZpXxJE>swD^Dg^rjZD<$}frb0Pf?a1NQ?n2QKFu6bl5 ziVXcu3wrcgzq?n!;J5l<@tcey`tf>x#lpg;eef{gBR*L8iXxX<@(Dl62V0Cn`K3ia zc;yI9)Q9m)V^f$*cDMX~lL>WyhX=Eq&Rw#}7Um$=M!OzZ^+Ufi=^F`C{Em9?pAp(i z={H+|Q1IvZss56L%6}JODK@cebirRIj00Q#uL7_2!T$=ZcQ-NS82WbzclcoWvGu&s z3=e-=uC3hsD}V>UFYxf=fYn~ld+?=s^t1Bd1;A>*YC_5T$AoIH8ZZ4Vz)ip^tMEzS zJAh|;unfojz;it~1$@#6YmdiX;_=tOQ3m$|+>76L^6>wn^gjGs!26jPZ2q_`86DWe z8@DRwo%J~v<%Q*ux7s!9o9p~ON%_k>*VmuA&pCQfzIPJB_c$~?Cnzs_Ti0@HgXM$g z&O9*b%e|hrGPXDP^L1lt6YZ`3*u?s_wSIVgbKBa+HSPYW_e9_}_2bP`g5C@2d=lgr zM}9`Hq~7zL-Ye^TY3dsq6186;_`gMt_#_R*UR$!U<;n(TiW#B7rUmh zSx@H^{Z}K|Ynsr}LsdbA9kT`kLHKaz2$Zhf4piJsa_!chCO52O(^IsV+bG9E87x z)DHfZ5KJfZU9!LYmwBh^kcO%AqkreU`j=#-JDZDj>X6HpV=S?{x01ad-FRqFu@9t^ zeI$PBXS&3%%G|mCgwv002@|@ptXS-g7m7yLJbuWQ>o=nNF#YB(=wy4@%kop`ZTZ)KB(VJSZzK6sq6y`Ki+(l~^F!FRdmkz%=+fP*RFyNV2b zO)kczKj4GKuiFRbZn^nGoFBr3GM8kK-LLV*Uh21VEI=sulX-9*u+moWQ~E#4!+#EV ztq;E^58n-ZhY$Zxd3ZXbu^}Ub;$LV75MarJv)$B>&3|eh{z~B2ptJZ-=HWjLd=$L; znE2o{uo7YHeuo)xJSi<(r)c z-w0dgZ;$k?z`P|!&4Oj~X3ecNui$>~ip%TEwXL@q0(0oYzX}`5MCOj+v9=@?DM!USa=f!3dHi&4Whf~zZHb0D&WqIL(Q5HKl$MzHp*1fd=M^wR z=_Q7@h#e}j#Hd@}+N$^4G}hSDxjbb*p5JmlVu^mr{sf zwV!Yd^cvqp-=lceeuovZ0D4>avFs@bzJUIXo@;HV{xb$cO8sQa1Z*V5PlV`0UZ+}H zMd4vD^*vqrYpV^&*h%~ct*zR9yu`IlTjJVHL zYyBW(sRviGhp#yGdmA_76md1axFCDtI@^%r<-wJ_Ya++Xi<@zZxEfzv&|%-)@$vHD zO7`w@yu7#>r--ZZ#RXZL=}d{0i?w1VpTEvIjOyk&#WeYbIX@B6x3(UCvz+Jg?U@DD z1+FBgoH`0XBR+-DSiXM<9;KeFmAv=GmQ(qeydw9fD>-vw`v^753KSa6y5Ik(%>^?=^>^?=^>^?=^?0%o}?)H_}=F@YEe0oliPtPgx z>3N@gdQOo~`V{%3Pmxdh6#1mzC!e%0pNRZJ_<1TgTcI<0j0ZnG8^0IkI_E@q*AHWt zd|(Bk!E;8~nxiW?J5dpRfcI3m?-coa(l8~McqjY-XE~PXjK%0+1ey@frFK8SSm-_r z8|)ry@~Pm=MFgMHJDhjWI}3I)HeG_BX$N_Akhk8^A$eFi^jq5h?a?NDw0HVwb>7C( z{?eme;G^B*qZMDijd1LQM>oz#=g(g}c_#VTR>tc%zZv}GN05(<^NgG~`W$DhQiXc& z4`)`27~9JViPw3oB0?-J&WUiI#hx)S=T6*bN!>Fj%llcIKojfdsPZG*J$ZI`@;nqu z^>5CT`=`ib-?t^+dUn;q_B}81U+TGfy(esk$8)Za=SCk-omEl(Jj;I1PLHK z`v$Zfl)svv<}l4=_Chzzdd^yp!ig^bTI5AoTSas={C4y6^V{Ij*+96Y1$<#A_uKgS z`912x+uMEKjbA>kLv`7-rQG+Jn4$mDLqQ|w(Y!dNJ)Re*I!flnY5ij}wE0#LB_C2^ z5M}&3+9TCv>9i&cdw~3Ey2AYA57M=rpKizTo9xAT0WqxCJ>YHwx%I7QNpvYrw<<@C zKM}C5wD~{yFUYMeuO(MnTQ4?FbrALd8>c#`_W;SPOLbsnHWA*xq)p_(%6FTOpLngH zquEuBWJrJ)iEwFd>|V|&VC_d(-0Q$v+v}?0_ZmNolm3b4Nq#EBR(=+@iyOOY5^e^t z#ifA#xLv+aNG{TsjlAdvVQuuOWM6vK%Fyh`SRN33+FFhxOjf; zoO#P?l(vq?$M6NU=|0iY)L3^r55%o$F|?woT{zcSyNcrwT#apQ>v;x>C(au27qPbl zzlF<}Uq5eI?eclc7S39fqv6wk9#PHm+GX>W$8;>DeSMqDyS?RR-sg;dAx_P#n(N`R z`06F3F*H2Kqz_$kty$IBv|g?%3FOk(EJq>{^F&r#V@q>RX4T=kwwr1j*CkpT`4(n- z+k6W0d5Kh>G z)FYLCoDUYh+6N1-Io-Wn{tGPVrI&8Imy2IvK@Y#u2aCV@hkLpCCoBlP@JS!6{5yQG z@H>34@H>65@Vk7l@VkAm@cVtR@CSUb@P~Y`@V!1*__Ple{)i72e!vF{f7}NPAJjl- zF1P%e*DNgj;27`XtMl*+e6aZ2`AO}m^cvgU%T2$*2McfK2HXDfky?7;Q$ASyHI}=V z%YV>U>heF3hfn)pr9bL}#s8!a7Ctv{d-9L7gFLYClYOw#M}4sHbA7PzH9lB)&3*3W z%C9qw78YLTrYx-Vclco8lRjAZP9H41&OEx8%YU~I7GCGD{P+VtSom%qEdH3_^=NazS;+i zzuueRUT*uZ^ufZ{`(UNt;Dd#~!v_nmXNuj+m9NtW3!n1AO25ko3%}0?3%}n73xCiD z3xCK53!nDE!XNR$!XNj+!k_TL!s|Ssd%5y!@4~{uSNdS35Bp%@BR*L8Y9B280v{~= zA|EWgo~?E-H~+W~7CzyFmA>5v3*X^`h2QFfh2QCeg@4os3*Y5~h2Q6cg-=^!oBqmH zq3;@I#=8L@o^`S#SaXEl{i5`5m)In^fz(83Uqbl7tH>Ga0kWO-UG6Igd-zovxWw#( z31{(t#J%QAi`U#7^Wn7y+TepV_ip27>GyD-;y06@^6Msio!>zZ{zpPxmOjh9^02Vx zO3gPmeF^tze#%q)c;Lc}=T=^#bC=HC4=sO*GYNX}w)`&xp5cS%0@wK9CBP?vNAU~5 zPu~nm`|#Z6E`0-PXnxwY8@vilYx-fkl5*n;Sv9r5Uss6Vsm@ktZWgY>!~X^FI3K(h zSmm+!zX6s#X8FAeY%j$f23|>M>9tRp@WHx1V5AMx?~BVc4)d$2DiND0IN-`d=~&qUoHIWnWl%-vO3A zVbd1`={vv{e-`ipAHE7$_JQU9abVd47G4Z2nJv5uSo6Jw*8^*QxA|=aKIp?g2(0D&ORv!FMdGOEj;NRxKq1;^QmKUdnyYV~ZDI6kO8`^l1Wc7O-LAZ2oscmofJAG;! zhk`zeAub z%hUyp=)T)k>-jcWo(oM`*H3G#&2#_ETE2KHsD^d5AT5D>Mjoxr$->4();O*H{rP}& zJOc6YZgYHcC|qqrWihWJ8k9%J{vc4rc(;~^g-x+NoWIV^qf3K~449Xdo@N@P5cJ-< z;oEjCE|G8oJlXwujsEEvrqe=L3wbtu3u?2gQ*+Z$8d_4wpKyC5sl$xlyin z4SA-MFPT#_uLj+~;XPlG^XDy|w`|s;+QqZ3o0lW9Jixn|+0@t9Ts>njtzkHOp`V?b z$Lwq7&8f+8^Rig@sd;m27W#6zdiIhfi{{PZ`;6_*ipwHb)XrN`GjH+og-ZrwW-Xe( zWSQ{p-qx5W-Tj=x2ixP7mJU z!70JdV}p6{J`djS!3RC~kO#l+!D$bETkw}%AFSlX_fu%6Ye?L z_+EG4Z_M9d+baGUY;4i}Eo&o>u3aH?TNVFzt`Ajoj|wKg6ruR<6HI>ckqUlYF!`kk z<4<8LD*Q`qM8%WeNx>|j!r0)-PrgslRVjpSrsByjDj2$$;3r)lr})e)53{ZW0VX`Md-t1;bB1F2Oql!%sdf!OshZ zpL|$?dk8C!BCo=?&<78mjGbM%3q4eL48C4y-a80v-ZMy;CcbbZdhdmL53S(0y)aTj z`k$i53ZZXT_-*9#!fguQL{AlhKjMY*fr-z67wSENg3Iah1&_M6egX1_J$RhLx7~3| z_!)wKM!k9XMGB!`>A`V@@3_7Z(YFi!x$7Gdyj3vtI~4-+=M)T3e;(YW5c+Np?os#) zcmG`UhXw!AJqsWh(G2}bkKPFY|B7-b1Ye<${Kk2(#xe1q;lWzp6&!bc8={X1hCc4$ z>lOZ*a(J+O97?b8O!V3lQh7C=2~H{e4SL|g8rMYMkmxnj)3*T-JKIGwF_u!)*e8Pjv zRUexHKIC<(=P^#8nBuT$V|kf#Har6W4k$%P)wuxPHyiu7Hg)isHq zP#;96`cxV}U6MAimz6IRNG{>kD@wmqv66e!k>R5<357aY-Vn6Oo%s zbgEN(S-KHK*t!#LFLa%jh|tn0^i``flY;79n*2FW@KZTL{8T4?eg}AF=scgkSblgq zIJmLq!=HPPTvqKqjsL;t-ecnt!guan-x*ySdOWLhlsXq)&KW>+W|4QB(Y)qa;y~Cv z18(AZ#+dSOF3^3}H%M6SorAnA@7&!NIQMtA@7x{dH1$2LV{rs1=XZ#F2j=AE+ZpTQ zMS1QwfD*C3bMj=+`^N%NFYjb3?x=TO@R5AEOHf+H5zQrt!~tVn8wCt?5;@plih&CjU=k;mY{|BYEZtZ# zn8XPJ3^-tl07Klwl-tB@os_iBmTp&gcpbNOcga&fuZM=` z{h1%%J9jLD|HvOa&#Pm9b?%utGjrzmuQO+qryb?-9{ed^o!tFT^}7YYDJN>bfK@ZXy1FP4S3*< ztXX|7zIK-w5TD**oJoGy!hcPIoNeC9y1t_PBz}FZe5&_)&uWDDBwwodW_00? z_-e@0%t$5eOgGG%r3yFe_{k8q_&$Emw~u(97My~oR(R5zPccubqdp9c8MFDC_*DPG zdM`O*Qx3?H60ff4&hm9zVHh`8c02GZyR=LT#fkU8zuLtX+h+E_v7T{ z-9cV#jE>6Yc`Jg^c@0om2f#KKnQZ9lu4#@0W<4 zXY}ZCd69}Jkoud`kJLF#vBN$=yLd$h#6$N5S+kr6)adRU$2#~(#Ig4>FcZV z6#7&0Tu^z#uim#**y3Hf7~=do3coWtpevRq(bacU^;Y?1+xAUHpP=GZST#Oh)IYnp z^Sq7oX89#uf9elbcF{jkpUm5Dc@v+>W22Lh@Obm~wDL{$VP@gveB)i`qn$y%#pSKC zVvbZ*=IRTSFDd^C<&92TU&g+Uj-H~9ZlUgN!A_ZMer(j3(0*eu zCY0=$kQs69wX2AZVmA-qH*>^>q@z4ZeV2X@-XddMD5Cq5H<`1=(OT6N+b6;yio88So*a3Tyww~p%-j8^2s@1&v)-@E=D9zF zj#;HADFtna-}J!^qr5XWdJo@Y&rBtI-J8ODc}K3yJ8T`&{qyM98Kb-bZsr#WcXFhY zSo0xQ#?YxwsC}6@m~YdrzM-=Ab|!zi?3~-THHASPFm*$3?OMO)-9vQJ+Bj$*rXHc| zc8a;eQTf%oZ=RO+oYK-y+d8+mJpN;7^#))A;Wp-Z_ny$ z{kzP*9d0{CdFd_lVchf{udge998rIydrLlyH=8f1u7zPJO?4gRan(8P+l=sO-$!4W z^4-kWKIYXsf?YQjix5H=1@7@l(_NnTJ;MbHX{f*W^qm)lN z@1>q-9zB9xE%Al+j0dR6vGY{%;M1{!^3lD!xDQ=S*=cNw+c`OG=DG?)^}^o`48z_- zI+PZb!%{wt-^&00FQg~K*r@#d|4Vx4TTUxI8!4lzdqZXyWsSKb!y}H}oBDZoYp6T9 z;)=@sp4FTB`iJ`lk~Qo5`thFh4y@}N=)J;)gR+`C`quPfKh(EwfV)GwZe;Ep4OQ$= zYLmM6^sPf}4{km_dnbvzJHzYske6;K_3;2yVhM+;?)PwCN5Q)LIu@~acI@vp+-tdg zRcRy2d34)n6=C!Z<0HHmbQggS4APGbb*~!ews(knhuBcE_oP;>S>H`+F>i-^JcB*m z!`*Ms`#G9dSrg0u+P4m~-Z`;vPpY4=#>)RLqaXJ;+nULW0B3%cycpneKOEq4*PgmH z8Kcjq*`vgl=XXnhU%+pz4Xv^KbOrtu-mw6`5M1MlHJ1KF;BNR!H!3qp8-(irtf@7> z7kU(aF6X!AB-YsQ#sdEeuast3Ciy7%GDoc)W~F~5a2LJK(5%TA-EAv9>gX2)?xNol z;Mag_&0&oVKa}?teGdyvYwTN}mGZXqrNCYEo#{R;D-LkY#jLUP{eipaSJr#?O!7&7 zYAmtF(hmpjqJK`C!^UKiZs0D5`TRK)xQl+fGR>Hb*&lz_qb`4*58Opx*$dAk8^E6n z=+)^Q4sg1&WPgC)&F_N&uAuj@7jBKK?~25jOmaVP%p&}?>0J@H>t_=SIcqY>!~8hm zQRpAzcQ$PgwdU>5`T$q_db`RR8~-Z-{xl9c%dy7Be}6u zPF}y-JuP@+ZFIH<1T~!0eBI&dBP8F+QFUs>MkR0Ue(B$*t`>ha!Z~s?^O7;3!mH$s zrEf{oV)0l<`^O{qzsSPOpFGcQu2(JE2bzbh@kKA91a3(57hy6}R zAL=Jo{^%T1{nHWWeo5L_+4Nlz;gVnXM*cq$;cFv&Be?pjGPL4X@)+umo_Dz9F}zWD z`y>1Z;OdWj`Mw;v|8H>hKl|~k@Xtv5M$3O|gwF?8|MR+|H}dHGmQnoO5&hlZ>VH%Z z6#i3@`&T3U+Y$bk;OdW7I{%ZA`_Cf0G3~1@Kj(t0e>&p)&x_m_D=%rZI&T(#w?*!s zj_^Cd)xYc|t)l;O(3?n)2=@s)}KrD=Q90Spg))E&%A>9Yy8YJp5_@}^NhE7#@{^Sah~xx-_n}^ z=9v)Y+xU#%`Nr>j<9ELCJO5J2S6+F;^;e-(5#5z$D(YS`wa=Osmt2R4G)~AQt}s>DZr);?39FilWKbk2ufMOyu$>q%Ps6NgNVTdn=p$me#&E>k3k| zcE#dX8eyE_n&TucgY}5X$f`Uv;WFbNQW~mKr&?odO=gMC#iAUKi32CSFmi!$O#9uvQatjmlf*|fo1y|a2SIs*K z7rcfRjivB>r8qC38zaC zezpD*y<{cDk7OllT8P)doj|?aD%r@Eb>y4idgeuf_?N7s!p#d3uGVLId$k})xb1?3 zyG-sy>Ve>|6TTqjH!4UtTBmgpu4EW%-p|}u_A7`-u%CPrWP#Ge{73X1g2cN*ka)Fj ztGOUa)(aAEzaa5$m-`@dIKdM6B#1xBFv?$+vR8O>1hHQ%h`rWz3TK5N;j9##4UZ1? zICs6BY~lg7u+dZ&WZ|?|aF}usBwWdVDcl@kD!v7R*cSz{*Sb*gbqNw*kKje5$H9I< zzLFsBqd1mVlP-AugAZ0L%=g5V(eEcjXSSrGTl zg7CFl5We;c!pAX(XPGAopDl=chr{)jv+xmzYyDd@kMsb=_YUFky;BgrcRBa6v)7x? zvftzIXC1!R;mcE$A(jV^e@u{YvhM`mYuEEN zA0d6fXEl0QZ0LgRy`YZq@N z?0QX4de)W~n z3-xVV1Uu^6b_y2j+ny8bs&6|eSgLQ+yddd1qfPUIWTd{WMX)@xP4fc=-8Q{@mXzz; zH2yQ_wv7nxCp^JJgeN#w-}a*5@%pw`jQh+sBmaG9W?PmzNiA$^GEl$Gy@WQw`;(+i zRpX1m7T`lb^%p(BWx%_E>w!bS5#R&B9l&AW9$+u<0B|kv72qb|>%euuJQWGQZ3}^Y zK+Ttb9oPlD9jJLS!&=)2kZD8PF5o@D=Yjn|?b|V&w!H#mAGocN#f?jJX5coU=Eoa> zi-F#(?(WH#ZeKHWS$_Dg5{VaXe{tT|JuomhoY#&>UTa%DTfsg-l|35uw0Dr#5;vg9 zql2$+?Ol0$W01(!3~uW0$tyV4X?eHOKgr%|=IiO@ok+Ce;qD8%lYr>CooA zPZ@d;H}kQLqRej~C(*vhvoq^yezftx&FhZ5qkCgsZNYB2rENhkV5&gZ_N~JSU6(|W z+_`a3HPTjA*Lt*zVmHCG+eQBau6*$-7PPhD>a5*ughqP-{&ui73C$}z&c5pYZs15| zW~0vTL)kXRonEU#bNVa3gvb6vdbM1;CV}qC$lmIfd_cd$}lLx+uDi6%wqqC=3SXHQ=UOTR;W7FtKP4_J2&h}awhxg-( zs>S zA9iqygIgWk?%)mwcR9G*!Dk)Z=imVcUv%)WgD*Syii5`-e9ghv9n7+(5kFcp2{t*{ z;-J=0vY+E%yMqfIT+*g>tmM7Pz!?GEm6aF>I-9emco=N#PU z-~k6;bnvi)FFW{(gB0^=nd$b#76(4F?svQ=c7l#6k6R-jS!>#pdWQ=f?w5wFQ>%<< zWiH|q{aewsLnA*Soz88%@%$CAP;b@Y9Gcnt9D`2$)$)l>@hNQzZ$6)l_GV@W-J0m+ zzT82DE2BN^+4iUTD;j+(9W<8wsmOF$8_~%0^AT0aAp8-X^1vHU7w@r6Lbt^e0X>~y zkPT+9yMU#}3-!B7hoJJr=N&)I-t>C?aK?v6x7^>i`tNS$l@0WNA*y5K{BQCc%J(;x*s4q<$>b$_cD@^ z;sjg$KTfyzJ;{6jzm&+sU!~9Yn%}SCN#Gmeiut_(0X1;uOLtghLEBWQ} zdJ-9adp8a`y$7RvA-e0~X?@vn-yx0XN8GJYKAF1-k1F3QzniI?C&;&#ly`g@+aO5B z_;RlPB*|lDe^&R3b$?Ji;?3SW$(P4-l#Ak5Ui&w$^Z2jlQyt_k8F%`4Tc^XOXJJ5Z z>O=8KbH_oyl~2B&xH}7z332%JDIKaa>az-Td{uJpYF%sSABP%}{2I0l*aB0ZAhRTW z8{!Hx{kuX$m;S)n-%A600lyapxZ>{!;uF7`cUY52IQpxS>Hau) zr*qXPDgRpodimG9!kUbUd%Z`Y56yIIk!tsNZK2KmiqYEQdWR~{wU(&FWydo1u2Yla z*S#rb-M2^hQxX1jgnvE4zXh(iRVIr6yOH}}M)==?tGt)d;fVfd*who_ja`rH-pTJok?P?60$JqDMW_NgkW6OYEy&vdICC0oZWGW*|C!Y zhY*}5R9nV60kx?_(8xWav$NYKjp)!cI2~m=A~@MLbPL+(rz18}k|sBtazn$mxR&o# zRtw?DiIg%%B^Wrre?a8nZexW$44G6EtW;)bOa87KUT<=&XVZofJBB^liPs#b<-8=x z3%=j>U3yzveO3#do$8t1*w(lwTF~JLM-&@06 zvXOczyh(5l_o&I!~=7TR6>oR^=_@Lb|kA6)ZGiIGc_ ze3;gJE$vo^p!m`GTMM1}KEca5x)fv*sJ^#GgUo4~>DF>%gyBur{fO6c^$o~+kOu&I zfy!EmqB6K&KQ#FtE*#OyT*OClrR$7S(NP2@Jiqo59n+-Lh(Cq-F$YC2qx16F_NVzP z8huM0G?x5%?iBp3zzwHTNGG1X@#%=yUO&OpdQSxObb>*)CQD&_FSJz6B+sXGP+d-1 zd+FRc7kKpH(T(!Lmu>G_fxXom%JU2JE^wkj^xCVqadId-n_ zpKlkR>Y>V7eN+dZ>Rv0KzpHtReG86BcaNG$QZ&bb`5UfTd_`V3XMZK` ze6H>5weHvJ?KhkPd(*zItek&yy8D?;eH(jw>`b0O{(bJQtfZ}Gqq%t|p?eMPP-POj zQ`6^&UUOIVY1Auc?ET9H9>raK*|Gqq+pU`GGfWtLSeC@zpG?W|Pq%F9g?C3BE$EYK zE2R9=Tv+^8Ozcia5SZ!iqh0CT=g>)LZdRG6+rDL8;9q^s#t45n!pjk^xvn?z{}&zs z3ja}rYpz%6r2OtZS86I(Zz_{Lb4SL^^UVDjGudm`ghR)bm5GM4&`gPQBlFav?#dVf zGYOl1eiC@AoMvHJJ+;H4YQk8FR&m&=A~eu4^cxlT@y%{t9#YUp8_1sPCU z1REJw1X+-^3Tkd5$lT;~&2)1E)h%x{X33}>!A4rwi&Wjc;BPfI=nBGuT*)-%BL0#* zjlag6imrgG{P?+n==!Y}^H==IJ)Rr9h~?~nPBi+KI_RBr4iFlTuD}xBRE)-mPCR?# z>EgM;`xwX9dm^Bx6T~Ss+d#&!q$tz*PkXY{(WqvyM7v8 zZjE@k>rHs6cX2nKX55WIJ~U1fcYhT3<~NDE(Z#L#+8ep@Iqccig_1zVna$DO<~ z`redZO(}g*<(+9^uBAO%>GM&Yk-Moc@X%D)I+bJ2)j|^TzC-_0AAh|G z%a&Kwo~s5d+j7>ZqW}B+%H#t5&h+!E5$nufJHJX%<}>QEG{#wD=VPyX6neR*oghCn z|Jmj{G3UNLz~!#>wl&s&eSpioKfo1!DZrga1AYVGufV*4O9id*B3+`Riu zsjHnYse*}am{0yc8@WFc;lCZ>e+aJp_2K_lesAaV;r%_oy-_^>=n}n7tty|&)~QATRi=H_}#%*aPA-Cw>R?hkqEyLT=mEMkM#?D z4ma)Bc=yNn?Ty0wJ@Aph{o9ed-ow*a@BRN%4X>IxrUEg#ET5BMAu22UBV8!;TvNjFJZ;bmS`GBmSAP`C4X|d*cQ*6`O zvG#HIq;E9qAQSKnMINY+MMEdJPCXS{?o>o|!U1 z++t4;gqnSab6Epw`h6~I$vHr+9Ty6+c2pm#HRA|SYs5Xm^R#cl^W0hzca6V(4S8;> zmC@2Z`eORdmf7q(3qq%HSaf@Zv$)wWNTes6yT)O;uLNozT;p!nCGY_}myJU0U!QxK zJu5nwjgalaf7R||pZgK^&xA8T?g6$evisQQUI}xjX{KA7?k6m7vhGK`Hr>gh>IiOc zwKjb%2unecY-7j@(_j0p@>FyM=;X(*O+`mBrAGY8JzksU2$*6>jcD{Ob$JsaY^NDlH@6~wy2eiPoX^i zX|8K+Kku2T?a*mYSZm9g^B#ZI@BMDZe)DJe(6K5vZ_heqQo5$4UzM#E*1(;U@bF`; zTckTR>*7gRw@SaN(YG@su^m7u1p^5}lQnn4p zI-Z$2Hp(~R?jLrQCylOGcxon2$(?xF9d@H8DXWG|*8{A>Zkbg43KyQu9=v`_ZYP_! z>*M;|bHsDw~>RWw(_Y@TF=+zKJ{T^d@s9i1X$wh;akSHkWV}_e{PVxj@FWr`SIr!yWVB_ zO!5^uobA|Eofib>7xlsK^$}foMls^@aOrBor@W2cb>$^_sxoem{N{piRYvmTX&WQj zrY`Byy=C%t;z)8&8D5n}(rwCZjQUZ{e}!g^quC$P)Cb`#b~NRPW(TXMb!vwHZCfyZf3e655ndevXaU>$VlL4QHr!_J%sJukoRJV<(+pAGQ8 z1eZ?nFyD1%6zaYG9JtP`LYl8*7q*q1;Om2M9|qUFek)%WUkBeDK8?9A(FUI9+sUUf zdNW@?pV~$TUxDv9wSSE70N-RRy&X?mmjE6D4*ZJxh8+4Ydd!aJz@Qt-;=e595aJH;XTD4_8 z2CgugA=22j49GOdtZ&}H@H1I%?$un8*Kf(W4Q?9F53bFxM)IOZ(s9;3-_tw9%&sKe zQkGU@7tZ0io6zJcE@bIWr0zG0GCY@?1Af8K>7Vs2=T2&OKi5E|?uWp1NyuKtv^*?w z_nCxo2a*eYJwu9v`-r*-r=R-0X5%3Gyf*d_+Q2%02I$WXJC`pqfw^=Vwv~_uZsyoT zG$hw^L$q&TP5-8z-k!NQZW=)C>>&4AKik`rAKaJ^?;~oxV=gM@`y{KOgUXErmke+0 z9vJF2%DL>V%HE9|`i8k9sQ}Wej?k^|H5VhXTkQzecXMSFYkO^R?chePf*Lw_{~%5# zR|Yq2TtlwgyQ1B9PzvU%qoLFJCz^PP3m@)+r6*0J&ab}9!~%)omk2BVn1A;U=-}v0 zy@^St=g3?R4p45&OYtgim7ppYi&yuObCk-^@Zg}yhLgFs`Qbe0-Th|#t?wS_;pS|< zXHzfta`QuXk-81$IxTfCxthEtwPtI{{m$!dS$@M{kG*RQOG9&$n|dWSWC?HWhV6lM z#?MW?cMPtveBar{iphD zYwD6K_|flC=(UFE2yn*oq$|L$;kWuuYwFDJ69NC)H+`PL)S8Tusnj@OO`SPM*4W|k zPw-=xM~T0S-_Hj4T7K^faPfLDz}1Ny4)D$V9t-d<@LP7))R{fbBOWEbhxmOWz(@5v zO;26&6zFi^uC%vkP%*~tGmiwg(xQD&YwD7(@}oJxHGb+0)fyJPfthX}`460XGf?;G z{uHR+OC1hKjqcMa|0^aAU!zmSOn0B|ht64Ls(sI+6>?M7Ka230X>miN9v;Z7$c2RQTq3wHSjFm8jY;WVg@CvTkB`FWAkq8VC$&C^pI- zR!GI9#_n1M4`plra5b-5!%BKDxWWgv+U~5f2scWr9I802xKu7e>F z?Uij6WUp+eAf5YeXRkg~vY_f4<*$*dDVfkYg5V1s>~e6}L9LPHUUu*~2Q@}%k528W z<^xuiRdOQ-h10FPD99X8=PHsLIV{*{*BGLIS@=8Xn+2JSzvAeQ2r?;GI~4tK!5nh! zf=tdOuc-8^-HESu2Rj58IGI=W1kK(d?mA!8Nk8Y;^^!FN+Wg2)dY5TqOq3bNPxq96muAwd>9 zhXrR*K7#M1d<3B%6Ko-01lhYiBKRwmk8?jR_&)Lr*tLkh+S$J@m?wSog(|oJ?@Ge32ex(CS?jyjO^QrfOt(3Fi1;mS)!Q=-v45Vrr zNR={>s0>uQ5*T;~;$Qwnr!*<4!f`TYe-M@|jS_a^ zPb_%;uI9JG^Ly2K65j5aaCCCN#nCBTnNIqU+4iUTD;j;P95j~v*-|})Nz*%s8_|d* zV??Js@J3YrqhmbOE$_o~ zd)3mlVJ^9*GS-(*FGn@6{lg0or^39o991*z15+hOC0VKAqJ39M@2PgOucCXGo7m$r zdtM#I3DRQrT#D?q6xpxR+f>@O@$VoOa$Bbs!;a{ z`wics_xoM-fxMH-GlL(=zR91LXHwXvJRQ$X$^DX%I){4K;LGYyTpC(j8tx?xi-I&L z3{R`}thdY*pE=`jan>M5C7CP}m%`&Lp|Nm3X$;=vbUZY|18t{4>G0uxFXG{zX?T$A zd>8SHha56zh6m*Ebyr#C!LX(oM29r5?IbsnL#(^O}@1-5AB+O#HleH_OMZ_b^S{fgjb~7I?^X@itkB^Q94+9<_%SWbc%=JkYm` z+T@n;R)g!>=&jl}2d>b*t9dWYzg_9;QY&%OuQm8HC8dpaJ*%a#1A9|`ndHM;evZ=UrO2MrlpDD(5l2?#(3qY9Gg`2Re^oY%=|^WLkNL z*ytiq+{%X}Upebjywpo0^QzzKr@}VyKXF@@d}&H&hCW}YC+AR)&(Yhpe@*^)`z(3L z`{uKB{_rt6jXmU>+MVxbeA*et8#1KH`&0W4`;7$!+fNo;`qe)UxIB;_y<4nw&%jRO ziw&pJKWOY%-@J@6E2)hYo-pSKN%DlP{2a#$FY!ysXO)}?zkJgMG^C(n=YvqFAcSnBWcd`szP)P9N%>W#?RxsfM{ z{|WfNPj1pJLH(LsM!&SQI5M@2ugIr#Q}+!2oR5z$BcIk$4vI6ZvrDm8zVzWHdzGh8 zGd#@N`4QW`b^z6vd=`H1B2B)WmUXF&Z<%DO(J*|modZ3OWm+lZr=j z2&_A1WedM)$~q}NVdFvn#`~dJIp^g35zpkish?ki&sFr_>d)F2R`PpMkl$a1riF0A zJPyNn9QWiD@u+T#&o4sLM4m2XOwrrH^`$4KHo>2lMNmBmWerH*EYXYhe121}B!9rW zu3ks7ty7^Nnj-mh^CU~)S)MLaxXR`+atq31IABOsb1X=pPwhq;GSNJE-kl^7SSctGmV>JU-<#?P-KotIoFQzmFcs{Z_yvS!p3_9_&LH-yqUb6Q_KDE zg_S&3{>skRL7&buoPC3XjG>c7`h@%WFaPbi9aERk?vrwHf;Wv#d)C{!CJzXMIh@iwo|O1T%j4fAo}5c-BT#v) z{9Q}_`Zin(&4T?l{Dp+yntxt%}5@a zLtp9RM)tNLmmi&K()gdhcS7rwM(`}K9#{{|0vmw|P;Vk{`4Ds7kw+%(_~?BTjfMLr z>Ph1-!=KMH)ybr|ZEXIGWY#C(S$Uk~|7V*GEI11~d@b0+@|wIV9}M#^10s4j3l^Dc zcRj&c(!S5$fqg<=8XZ76D|cb)6luEm=au=7>L-1gsiX9FKd4D|Xq^A4($1P-)`82O znL2PM?TC7olpZm4Ya3;^IjCD_kUwX1mB-5;Jh?sj_T$sx)7$;?N}K*I^5K^V)5oj6 z$izpu%+-!I6`q=+-=5Tb#nULymG)dgdAWS@8T_0D?>_vbz?h^tBVqqlV#A(K7&C4C zVjf(1*LpWJDx;)C`ylTdM|ZrtX0)6!aWP-ixS13r-?DsiUWVVfG3qDsWR$gN3>|It zT-@}#K2Kg1;FrAhG(7uk-Ysv!pP?sz&xT&@I^q3oZ+E@oDwijlJ06*0>-K22z+BU% z`%L1??){RX_4L`~;i*sI$I7Es!nq&2O!=V+pZ~nVH-0bgge$((&ZQ&S8>EAFat(gt zbSQ2c=a)`O2V1ZW;#2u^sq>q36erj^!Jd4ezx4hqd~cnqm3!XKrIY0GG!MSR_=~^s z<_`1bw~5#1W5Ne(p1rX*hQJdX{%|EskzuK&Q4MK59qH<2O>jUT?Qyo&YLL z)$cIOnb6HFmdCGxw!;5|QwQKvJgTe@SGbZdE&hM!6t1=l5(n9|*$)I#}75OpV_jZQUa&56ZONx0OBzOS7yoKU-u`pgUF`BYLwS4qGZ+Kki+x?OJihVY-Z+|9 z|4;w*fBx-_S*?r%8qbgO`<>AE{xT1b%F`CXVtG<|@c>~C1!dvqp`Rkm6RZbkMBcSyqCnh?dku4egnjlt{ELop?kI~v^B&Q9ZIJU7nE zo(l@|Px=(@+zSeq_V=I*uqw@7GkA4+t7yC?_iB=gUO@BMedV2klLX~p_NG)0&)!Lz zj;1P3qyVnbI}uf-KqCHKe~F5c^QdgXyeu#oWK(DZsZA!~s5mgS8UT`oEHbtLXK<>f z{W!f}v(w?)3)%{<^9#8v{82t@Z1_3algH)W65xt|XMoFnSAffX0d3P78~(xom%Hv4 zhVJ_VT<)E;>Ck;efXn?*fGd8T&0AynPv~PjF86GJ%YQrhV~yi4z~#O-z?Xn?KH*HQ z$*<=FchPSlKdrIhDStg~!VBcmz2nfHZ^o#lTq1EDqcz4{d%b@a;ucZFYK z@nntF?@~z1qc-^j4m-Rv{&fy}IKb&DDu=DOv;GL=_G$} zNBFF%P44H1WL7->Fh8;Z?p*{WH>dPeOj>ZpN^)_bnNHu0ugijx<0=Opa{T^-2>(wJ z{(W%y-OeZfFGcPX5q>nT-qx%BxYJY0y zqW{f^{_Efe_!z#8`}g@R*`9ufbKxg7${#K{7(H}bojaXGYUKVdaJ5(UCyMVwk^AKl zejT{lulgg=cY&+Ds*Vc3E24iW!oLEp_G{vX{#)Qp;66Qn0iF+VO>8vR@a|M9^Ip5k zMe((yeT5CPEyAyi@Jiof>H8!1p$NY(!oLEp{$jC9zvPL$QJVf6`0KcD7>-Rd~%2 zetv{s9N|`G#6~Fp#mIeSgx?wA+ar8eg#S*2e=EYjAK`x&;r|rjZ$x;L8kRHS|NRku zNrYb$;j1EiIKuCZ@W&(kYZ3mf2>*VB|0u#=jqsmG_&Zpud87257vb|F{Hh3F8R4Y} z_j1&3Db`w1@LT;NS@<5Aey8g%Jy3?QwUv5K#jdRsbVcskh(jBR>v={jd!DhFXJn|Y zXtfi}Mu<0kGfFQBIrYAu9Ha$!*p?5R^^@hm9<9sJ$T|GC@>HGaH*w>u|`jR7)r;c^=-pjbt=b*hkO&6M@Ex zr^7b(8r^qkY6Gu&Yb<5^%}MQ=v?~1yD0ntYLfcLmM^#+nZ^+12^8#CU-@vMAB9gKL zyH>1{xZX6hKE(CBoZd>T;zC||EG*8P^qs4!JXJ|oSvW-;DZ>hFZGSiK0>uH^{Q}j( z*hLr9rn9fAy0IrGsjs_Z3NRGO7n6}yrFPuhdDQ|ZZa=N1JUflmCZUctOsA;;(>yb# zIvu&8abuvTI>&S!AWV$OF?$)(zVv3I4W#`Qq@?|0dvQu&%Dut0J>7Rzg{mt8?mFB_ z_UTh-AsdQi4NVsb!R`f*uX-A{c#=tNToeNE?dDVNd3f z^vZ&_@Oo3cvKuu7DFHY7u`Ak7bQ2zITHkexSDBYhO$K$|R$L-=E~Z`LGQ{Oe zqh))|2BYUDjosCf6jug#4#HavX(G}m6f5;6z8B$BR268IUYRPFNRv*Ln{6)1x(zB{ zbAM!Lz+8t|Yb!z=wUT2pAa<}dQd@Sa2vu>Ips`F-=JF)PjbD3TR-UWu?cLdFtj#sr zII6Tei5;x6oUr?~56`Yr->PdU%2Tuh^(RY~)6B2A`uc0GzuLa0X>z-G?Ul9RxHlEUqH1XB^6k@ps$^2UPDOL%-o3YHmEL3RTg}^)Cr7H_#YymR4!*Dtzm zi5WLSu1wa*;+o~lZ(efKs^vThxM-Qt+F!{G4J`JWYcF?sdRE05?8o#Cc1$-3a!C|;FZ^u5E9`wr-CY?0uVLQ1TlO5V zJ}bx_mwkdCbNcgv+Bec2mzM<>akoV9<96>|@HK~Pzejp|w2#@Q;&t*0zF; z4lWQ}&iY)ilk__Kl7r?>5cFl?#J^V%dfoLAz3%b|Kkjh0$4q?7fGuq7bqPYZT@e2} z1wTo6f-A{4!A}vM;HSAGB*+HfYl5Vwp0!>}7yBoIq;~;O=~*hAcvlE2d_lr53*Kh; zM@6T1)^)e&uAw1c?pM5FeYpE}+ zQRGkWsfnIXIP8vX?i_)?@KyjhTVb>60Mx&#ToUy$&J1vkUD;9caWAn7_F2>nZf zq<>71joKrEpCcZ@E$}Z${cC2kOyTOBPvN!;ex7&*zd-&7-c30P67Fk)Be-)u*m4j2 z2;NIO7QB!A6Wj{D;QiD;!3Su+f)7&f*n4W(Mtp)_WKTfwA@WHOJ~s=(=ZGMDZWDyh zvLN|$P>_5X6MUF*ekTyVW($(ug5Y+_LGTgETktoi*Mg5yuLVcpSCIN$7JQ6y7JQuW z1)m_l1a}aA4!DGJ7JQOV@G0UE{1V{{vLV_jcmw4k2)`qOze)KBewlq*=e}1E{tpO} zp2LEK|B@i#zamKZCj<$<9svP`pBMZJ=@Q(q(_i=OM=Qj!QY~t36d{mLGs~% z!;d-my5KW}`z~Oa@C4y!nZr8;H3f)gpZwqT@&aHS)JmkoL1!kp6iXsQzuU;B4xr;D^XB z!3(KJ&V8HUMZ_aGhw~k0zffmg_`Sf?EY2F82hL2&!n0EfoAq;OA zCXIP7f9aZ&4ug?@lIRZl zKyXvMLOafi8EZ)$g|ed!-}Cr#ueBd#yD|z9>s)e7x??C9girDOY>q{HjX|3&Gk?~dYr=uP7G`S6R~K7a^h^>DR?-F`#0VsZt1|+-5Vq4ej0Bi_&cHIz8ha(;( zE2w_2h7P`wURU>56@UITLcJT&I?cNg-oNj=)4J{W@@09FjG|YhuHoz7<=&JF%qgaS zS0bI@Fgvotz9Hw2eOF@GqqwtVF#Al_%DxM+&`(I5`*Q)V`Hc3NJiYuE(n*l@FP$}^ zyY`nnF8_N2T>iZtOU#9|>@|9}959zn^G({sY{HEI6IMvubxH{ehWIZcB4^8I_^rU@kG3{UhG4 zittZFxaP6)t3E;gM}RD~j81gnPx9Lvg;(|nQ24j__V9WC-{be*0DpUpS}P8 z&hPzv-hcci@6U1bM&aeC%c}3*{|EUkIZp4tBGYNpC*7;w$iLpjPUc9@)>HzodlJin~ z@$PyD;}CeW^DnusBjDmi;cW*$0lwMcUj<^ z2XM(IdG}au>pXZ}7Px;H+#C5{4Bi>Ie=>5HT-Hk5eg5AQxl1l=`Yp8r~Y?+9=&r{ag>Kv0Ea79%I1BbGNgzIQSZ;fcOI&bsNQRVNFQn6tEL z4&$qieeBtg2_-!1@fLZ#m1i;h5i(_KPondUj8Kz9I6gk73Q>rI8+fT z#L79bmjp3kgYZUmdJ3H$N-6A$mzcfiXgSpX=khnS@)=PTcoanHCSKj?bXDRNZk5Hf zp*o*2zvd{~_;x3ZX=w3z_Ozk;lk6%c!!zgf=-Q<|#itE!TAw!EMtOAAskaKkDV46W z7yUGc=YLj5tslD;Bms2jU#5ke4~4MTI1<-duA-<(>G{vshLD)4lm#dEn+G^0#{B zW;zcvJ#)r>N9Cn?f|2bsNz^+!>7zDEM76KfX&SFlBvqjY@7%aR1Dh}`i7${ZJ}i%h zBtGk=c>@Qsu)|diuwAs630(-I@MccK;$b>JUX!Yk*wR{;?*coo)SL4?!ary?U$wVA zD*QsL3t4aE>;pfSz4rrx^EhLWJCobj1ltLRd6)bz0Lp)t@XH8KZ~=21=dQJi++P;X z*?~C&U&vlM^B(!vT1D>u41B%pJDBG>cdb?AepvXG@FBREk9mmvYpo*pqHx0R5+rlnq1%jVsjwkpjdxm{3XHZ4q-S#Z|+%@nAuCwUP zvR{`ZBZ8FA>6+=zAa)UkHzd=T_wqM9gBWe%e2=nY|BBh1-9y)0Y#kNg7JtO?0Po z2JtcI)_YGtAD$ppG&Qi$XC=u8f;{x$xibi6HGOOELUZF= z>TN7s;tnC+T5qHJ0Ze)Zp*M!KXGiTj=eXV)>L}N=NXJ}9`J4{zXO_5o@6QF$RZ^el zte}8huA;+1_qV0{A&Z;Yx6;)d-tE!eoA4~O%&5nOlh5C*X;Qj{ z>e1&=53OD=o&C#iI*(l{k{B-I=vXs z`@71db5b<_-Gy!9!d>^H&2QZQN^amS(!s>LK%CxBroZ!}Q${CVVa({mQ(Q`i@+r$5 zXzFD{R`~=!isxqb1CzYFU(H=@j@cT>+sQC*vgjERPPH-bF6qv=cu^jTUvw0b&Q9rm z`hoWshOM{^?}RUXV3gNnZHMw)JV#gC~I zxyPoY1F)t@*z8Rvg?qX8jqb-Qq%-HfiDXpe!kz9e+(#-pNs{D&DcU;SiQU&!JSMJ^ zz1weo7m5=fOp+H`fBTuKd)vyB4dqA2lEStr>E-Zzk#D34ot5W3Q_FB;brP`8&d^k) zkFUP;$h&CYv*^asyZmQ6n#_gL-(GQzulP9{l!^SpVB&)R8X`uk=yW zkw*EKeug>Rla~&MhJw}MAi714KXmFHZOPE5(DA4v%K*ufgGuHmM71|-YGhj!COAyt$uI$ zY|?x-X+9gBShLi}`t&6u&QG~GaV>t%#O;hi5Ef~p?aWfXc^w))|Nam@hYL2%o#?<& zdNS~!v?*O*#l3bfagFkIl*gsx4L;Lwe0Zue`n}rqf5bKJ-PF%XABnAl#mU>@QD<5EmbjZR1Wt88oFqY--(R?e3F$A13CPZdAnE)D-s zuxZ)ubZ)G}UoUy@^~BJ>p&!xeggJxs43eI2IzKC&pAGm?8})wnLeuE{sGej-%ip7) z{{d%Frfv|K{`R z|E5pV*jtyk?)3#%*6=|;@MDduj1M&*p}i#|4{+vh-8E(`fNzEKA6@!J=ogf>9+x)t z#VTjfh!?>w`a$)9)K}DJSho`4pi^?{_kfSMu)Ll~)t3z}Ji~KGd2$wX+AAI5EATb* zEvBJup|8`v^DzCvNQ|2o7 z9A6XP`zdS2*2zrLWOVw?0J6-X9W_ld*JK{jG|4mx-F;1yzXr?$*8&x;#suY4eeUV0 z|L5PRJ6*+zLF`7LxdEC?SEY{la)0G)>6J!zCVBHR@6IW$nr}3_{#1VH?-+BNCZ$I; zgIhNLBy%CYLPf{iVQ3P<{|E9Ym)t*5my8~%M+exwuHJB#OuyJP`PV?^(MD&D;!?en zzPwMmvr1oApCtc36Xri*GxwpsJ~@>Q#)lX1J4d=*$h+CDp0CAkf8=*Re#u{SUW)gp zr0Z@%e#rNUe^g$<2Xl*t#^jNd_vMcF-yv=A$l0d+K0USD6aDXW5lPrEB{-Z|6csB5Bz@}|1&>g+y2TRj=_LNdLyORS>bd9 z;q(PGUxG$!-bY+r{a?UlzWe!hQ(twzydSuXPx{)K6WOt?>#?b;f5QA~L~WgS4@=Cm zijTRzjJ||6{5tV86Svx33;AcuwR7@u6sXlQH|z%PrVrK_tiDI}+_Wk3V71zMk@2KN zz3O;M{i12xicd5p{M8hC$7&d#Rkt6bf3kkj!&4kF^CRJP@PYmxGyY^s4{Cn?!h(%f z$FANGmHV9c+xnd_o-lSdG$>8P{Z1d}Uf&1ZJlR$#f3Ln&{-M$PH40tf;Gd=aUY6NNCYnIM&&5=wvfxaoVEmr1}85dZ}cqj(p>mE>h5y&I}HP_ogSy2-A>r* zXV+6_{g{Hzy2*xo`Rog!Jp|36oXU@R1Z92@T=NT42lD9iDm@~dnv?2##IN3e)YvL~ zH}gwd&gIFge`4o1Du0z@ZN5DIyQXbgnGNqQJ?#p+E_vceUGm@&^mZQYar4x=f*lk3 z;8kN_9CinE()aX3{OqFszwyR9&0f$CGgdFePN4Rf#%LD@`JUz5&!@KYU$ECa_pgC$ z#Uxs*(igHuyG}ACc%X4W z;{kgoW;|ef%Zvw$f$Ce?#xdhTFHqrS@vE^{eb$|?)5n#H69d?(PyZ-1@RiOP{CJ?Z zPW^cBk{b_d2}Aj%dga%e-cJ3u#s%Mh@1cIFPMp+#6PMoaRNOzHUTHkxEl{Jk)4Y|M zf2wLck)A%u#x&AqvWzvhyo!^|5gV2ghx)q3F0PaMd*V8X-(2#5>&u^<8dLh=6&-rB z;FrFf_{f)eE?@pL_9s+73HLRiPea(3{}KM|7$Uzeb?FZ4(Y6K z<6m#J=7~EV3(ybzmSe#;@&8t1!9&oz)mZQqXtal>u|V}&V?jHg#)4Ok0fx$Zm@@ocrsN&I^q2PAM+Bjd42cM%yK!;HbrcG&V=J=N%4atz9 zS>4^UsDE9O0G-+`^Lw%Gk=YkCnb&azleaw=RbI=)>2& zCu?l@TLN6+538{nlSv*0GCny|XWH^ok0y1=Z}Pi8z<-P1%L4ps{MH)CnmQv3q%qOs z%J1ib_!PhH-B?4W21fEwa<7=$glie zz5l2_%bOfOe&i9L@bL&&J@H2FH9?Yu>kg+k!rvR=>Q}vy`$r?ZGs1f#{Ei5JFv7na z;i|{pD84_9@V|&~$v=4`dKPf05&o|cUaNt@8M!w_`1uhoSt)NskM8o+2-n!;jqp!J z_=X6N^(EYOFySK zqF)^0w?_Ew5q@`se>uW`Kf?bk!dYmgM)ChF!p}_mCYv8jL{lUBLWD1jaLHGBBl@8T ze;~p~BYY3I`mY7>rTpI?x&JW2Uy5)|ioH?%uSWPA5k6BB8fQfR4si8fI{#Jt?~mLs zi*PRwl}>9~yJfYuZ=lC&o&m9XXPi13bF*KTgBy@`>Rr{h!Ki(h+c&had+sGkYmapI z6cmQ_=G=!YfmPR&^bJUY!-`wkn4N4BevK|4LwA{iGP-|^#-B?Rs1wXG$M~RCr}j>( zPqm%{Bd<}dIVTY7m{w`WhTaX*#$kL)CSiJ=22~`dR+msk#yoG8q#LRPRYVb5EVsfZ zY4laP0F3RTWmn&DlToT5QLI!KiBlOdG+;D7h;ys!Vf9_6(3~z3qjALP9dfD@oQo91 zNC|?_#YPXT(PmIVZ!V#~z-s&0*xTI`5L%rEK{!VGCSca!p|+zXRpN3=hw{OQSfx5r zLV>IP-hp+)>#MXn7+DW#RFFW25s7nksiH=sN<&9b?x{FWU}spgqIk+XSKp01h_zia zys_WuaWGL^3a9&MdFKr`Eirndl!Yec6{|jJg^27bIaHyOTuYUHCzqg#4yXz(EX=bS zmnuA2rb7iGQhalg;*8kBR=A3W3RCPBO|$YAv)HkTa2lSX1S!+ZTF4RwtXpf^u2J)% zk~iW%QeC{tl%EO7WC$f$CF(>d()AOUu-9T-Ezt)D35}Orl#Zlvk$l5f#mvSqfNbGERNrn#o%gi3-JIk_Pw zu+KXC{m%YnLGJV(5uA%muwWZ(0FN zTN+&=f>*(>;MK_f3X-3@fC^9YM@komjmAGy@TBD$_!Rs#=0$?nG7k`3M)-o{=T<@D z+a*Z8J|}n`djf*jBhw=Y-3jNOumP&O_(o2t$eKj>jqoLSla*1HZVkyIOZUJ|=e}F; zX2KP`g}pdI;%jB)>8NCLqr_ zT<^o`uDj8_K|PSZK-Gh?;8N<5;40*M2t#}|3od4zys zYYnV-qPGY(P;P?1!k(7kFH_GPKI+_e2(s|pDfk}hwcsrB-?{G*d@uFLL8EJ<4}RDX zQ@QmEQf?!H@Uczs*9k|EayuXhU&jS0&w9#UW$GrBFn=dhNRebGU! zt(BfG2iH3&9T&2fjtjvp4sLaj?lGD1ek&g)NVPLK*=``w8rbAui-WBW&T){g(a_Pg z8AuWgT;?E6*WiHDGVFab>#o*aunnHQ$+{n8y;XA|D*m2@krH;|4>nW&sPZN}h9F~_-bI`DOktz& zgwoX+sBmRU=S(k$NYyfQhKN5qp$m-0X?1I zjKF>|6=yGfGtDshAfM8aJ9`=p z&YnU#nm5MECP{8$whi-WQ}WDI6K7(&E1M*|gU7kpEEk{Zu0Gv2ugTqmyoI^XJZ|ow z2ftf_-`U`|drR5SH}lqOQ{X0EboV!>csnH1V`by?F1B0DrZw>M4%qK^fqE(o!gzfz(?M9Xi8HXjDY3V!# z*^qIjUg~4s&RPZv_B>OvZWrS2&yw^ma~?cf(s_)1qf2Q=eqoAg*N`3I-7Ml3 z{XzJ+$EB?qcOQmip7h2v-Mo>#kbQGrGHjKzVVz+qT$*kgcOE~~0>0Bl>M)Zclg#Dz9vrU*`ITk#Jg`t^}d<>=L_F6G@=(SI^~&gUx$4CkxYx+_mh9> zYxGr}!33>p4Q|~-EWL+WA(*q1-kvM+Ylb)H&-+OJ`kR+6o7Nq*qk;R|;tXO?i=erz zMdrj- zHEB<0ZELD}G4*L#v$tRIW6v6xDms%%m}Uf~*3fsQHkN)gz%}OTv&Pcz^eFt$#Rg-A z-TT)%#~K%2fU7UpdM9*0ly=(oEJWkDH9@D0h4$(dU&X}kbrmOmO?P+s1CF8#sJ*oX z4j0haz;rP+!aMo8_(UiAbwF?AKHw3c@Xzuof5fNg9|u0mr#2w`8^GrS{5$+U5a55y z??VCpFZ_O)PhrddndIFues6a8d1+o+8r~sHjr=T$@LM8$ZG^{fR@@!AKNjI%i|}uP ztNaU&zy17Hc`xM?|2h-)M*NLM_&-PZjI?gp^yMP_0}+04gloUCs=Hxt)bDRrRF$(8 za0}{7uevSW{E2jpS8a4vQ=5Guw`1XVqI&vzwY?C8sm+p9X?0+)-J(<3`)#p^d}w%Z zV|DP$rT5ir^_oj?5xv{JjTlZ;1reM`}o$=|ft{T#Cmo(TUHEz{e=B=c=*>2rb5@ysb>$+gTNqU{rUGH?ejn&(v z;dUe&NCmrh<@S!MxK(hr?`vsxdqJ$hR$^B}HzT)mSpaMo4ISjD?3p3#aPCy~q@|TQ zD|i8GV?jEfyx<3|EQI!$77G86m2=PR~& ziPu!8q9dzJcw~_=qElIWBmNZT#~c*BOh0rKLuy2$Z>fXcVaF->TLA%1rI7A))wjCVnMCiWWpm5v-=yaw7v*?u(e=))VQwFYXx z{Pgv~b!svYt$}pcL3bQ9=go}Rd8XcsB?%2PTD(l1xtn6-{>^-qd91&maQyLSrt;vD zb(C!41#T`Xxj5v<8zeuRjNCs}--RA3KKY-C+^61&e26&e=OHK0yjFha;J2pC+5~wm zPgf7!2y}9n9N}CSzQWL4|1R8SCM(8g7RukL$(O&w^7F@%vXmye%d zj-Ac(rX=(4H|BkJs%Ed1(a#p1o{}7C7COlb&gi#%=RwQCbY*fSGSA4Lf6^)m6@Y~G<(Ug^$8P5$9m>-p{9 zL{`|e<%U}FRQaJiNcMhjYGxiBewAkBMN;??VJ)A`Lwi1uyJihq-~1=mK9Uu!FA_eu z)`qwHvZlOpte2GU+gY!huvo9_UXb|>KlS|noTJwoUNYrd9Io(X_j!ja?|l7Le7-zI zw-i2PC%MK}`0>1a2EVdbeB75fdW5#y%2!V4!};j4nS_yM*40P=QCF#l$rDqV%;>Ai z8}J6Ly=TCOUk9rm=A6DQ>Mn2K-bdb89eG)YYwfT5aFRXsVbeB$P-FZ)VCZ$nOKm7q zE|2GPPfyJlarLuQoH(C&B^xZhlhNV?+o3;Zw3}oP;GDeN;3su2md6(mpOtmC_ZI1< zOno(W1--LN8>dc~@JJU!mSkCZ-@0@Br>a*4+ID?BhIyuL&CgWUZTcL$NalX}}Zj(qb;Jc<|jR~#W<+zD%#LB2_TJ(quga<%Dh z?s$MZpAVQiY58Uy9`O;{t51}iZ;pE;^*JZk&YlEgM?-yw>Wi(<3H4lkRgy1GsIOSA zyjA@4X*0;nm1X+H4!d6@nQXNe@$1`++LGGBLi{!9cZs^OcVsLXp{z$~--VrO!+M6! zl))LJBV%XM*O`6{`kCax7jyTSenxeSF_OGOwzlvk)Ak#|ljLuRqsSdZ<)_*|VVA#C zo5|lZBa{1^SCZU!asM0kf9{Tw-mDc^L@j-h2%BRomAz6Lq@MCmEqHzwIz?rF>tuQrdlcXY_geyf}+_KY#Pr`}Dw zo0V|aRsJL^Y~}19nWAiup3vSEdt=(aQod!nfW`9nR;jJguPdzD^B#Y-_A_$7X;S+) zjg(O>GV!9%f?q=YRyr9c8tQSY%Rlj|`t%tof5piw)#u^n)50Cs7vz75%C|^AFil+V zdXu=+_NR+Wc8VL>cGF(O7jrG{kX7O)KVDFM6P?Y!;^cYomnkioFztx6nm&Z~W8x^- zw5s24gwMMC?=yEOyVNg_PDxj#>{T9;kI!^;(vKv+mc3E!e)QE$ z$6|NCWSI0*e~DXlydAmqcI4GH7Kpz&i`c7`yZV0k&O2FlwR43(m+(cG87WSDNZ~)m znEsh(rZhLveUWSj`?k=gcfQA-nmX%7`scl>FE>wKApVk1PiD&<-=&UykG;DeXZOD_ zrTYnuY7>R>6Xf}Qjnr@E6wK8Z`o z8$OfG<{p-J?_s<#c~5#*LZdzB<2QW!2(;wurzdHPKhEy$;C{@1p3;11p$jKbKTEr- zML#O{Mt;Ei=|?5sdI4W6-v{|#XL!pGpaTR5`>+a%8dgC;Ba5P< z1PFT|0fL~S21wY00TEF_MnOeIjfjeh8Wt6mU=Y-x1g8^55mBR}#+Coxr=Cul5nuh@ z|NqYSp7Vcw&dhV`KDVo@tE;Q4tE#(eIkK4BYZ?;n5)$qk5*~(d9UO)=u-xA05PurN zn{g4@sQz0+{L2tdMrFQL{jSQ>Dxs=FZ0PWzBm4BiN4+pFtkzB$LT(Jbrrm ztV)No<45P9Ir@$;fy#Ub&bcnW{)J8_`Q#G%US`-ccO0u_@N;s`-Xw?5^aq(F%G{q@ z@G-O0v9l|`*fp>}l8*UFV{bR@jn=gcL)QoQ2JFY0KnuU07B^E{X%T+`E$+zJ&qF?-wp?ut z$~tvETKHMlus?`%glLo0axO8${ngHfW&cqzE#^Al#=sSi&Y&1v^y9s_9?&*Me6-LF zr)`4%Ee&s`g>E}7bhycq{;zUc=wfhA&?e9#-@4Hv{@JuxZxb!@VK*)ECkf{W`{UAR zu|It8Ao)0?ncJ5+I@k{TLm1vni+qd0xx;?DMYPzSe8&d)P{1&35iPb`L5uAsqi!WX zffnJ}8eT+;eBKD#i0doQx|sPEPN+ zMxIOKexO+XslRP4F0ic2?Zt*OCvu|YKkskr*y*3oIjDp3g{5-N0pESp4fimelh7_j z8y3CS=Ds``?;1f7U|YHy+S+W}vVF+@h&)fWwvCNXj*Blk@i)et6rC8y9Vv)PjHfM% zN@Tr+4+$qG(|V&5Q)pe$iM(!N;#^|3_@feeeR8ElCHiRtQHi`xxiX>>_tN^K5(BjP zQHd3_Sy72G%ydt5Vm;cts6_UC*b9zRBJns_FYI_&rgI`}66|DH)~BhkJf>q|=fF;Z z&4b05UgAdBbl7dMlVJD2rojea?S+H97_?5G>>V{V)jMX?)G=ezy!d|V^ig9nG36CA z6)7E#T?j~X_?;9Gsle^JDu@nOiv#(cE${RO3^%% zNKQpn5uMJN$iU&5zXXh>yk?a8OlwYm_Ex^RXy`KHFJ78b^-f^J*s>bGBfiQ zTyLpHip@7MUHFdY417^Fed>(#G~}Oa?3fAZjv&4oitpZzO5;}*)5q`P>8 z$%mbul97r0I6ap1jImRlaSj`Rw;#&&e9G9&3F$a|xJv@ZDc!IbusMB_vT~gLZO>b_ zbrYxZHLs2|Rcgs&6rbO+R8EHvl{DLwp(Ar#Bn@otR3-}R>0uNf$L4J5f5ttG^La@g zo-|jx>Hop^HAy_svhd`uTF!Kz!n&3V&tpEjhbD($p63iZ7v9I5exGA1NL%wyp53$W zWBOnvw#$3kE5kA^*M@{$TEUNTnRYkI3JTW9aWkimL4#OBDC9G6X32N0)6z$!jx;>V zq~WMOy{L0Oz9>y8ogv$1`;iqP+c}-pCc(0u5dj;9ixm3g#G*+l7EKS%-X9Rp_iSo-bs^#NvlcKeIhqxddQ{V&1^P1-$_k)&s z;!M&;WX1$=_F~6}(=%=2e_^~6w^+9Fz$;xuIr>fwg<-nkXJWA=fifqScmbm-+8R&3CEjJCS$3ML*H^|*oeGr z1%Y!BONhHWLCVOuV&kN1KePaMT`ppRekCA6IJJzOkj%rj>>W7sZd z#LjZYcUz@u`uF;((m&CWe!Ls&xIMNIx=p;(>%Y9sHxS?bx=p^5bMTroYR2}Gmo47{H_#?sYrhK%j#o)<+z}X z;r8E*z2g{RyaIE4vxAMm@x64elk9IpA?#bKk{z3@jt4*J7ny;Qq`U=j@KJaOhhw9jwxeM+obxGv*EU;gnXng`U_erjzE_o1n- z!+4Kionq{7Dt14;*hvLOM9U%yhVtm|io#o96@fh5N;L?K#|>gKn4oE3gfF z4tBj?Po2U!Z{By5b+yzR?In+fl!YhzEnG-q11nHpq+rfQ9_C79_${8(9FG`_c(@Io z&#j<~!1)-5b5q7=;Ny5z7{&@?GI0Ll+;#b~g9*?j;=NI<13lo{0M~)72j5?w%Xmj_ z=((JHhV!fP+=Sjfm-${f=J&rmm!X&akaKxKknirb&*gZW%O@OpXCG7hTt1lc-*YbW zJY^n-o~L;4k({UWIqL?7?Ye>3SvT;!x9f&PUsZlg#4)n#HoSvR-Y3L)r0iQbiZZbm zzk2xbTEX{W@tV>C$FCmV$>z$!Ifru(eHd0)o;m*t86V1t<)&yBzq`uG7`W|JX2{eCOUU1w{hCi0`)p6`I|LWM|eap7il&d7U zMxdLrL7%@VS5@U?QLxxiPFUy1onc*Eo6Dd(e)4b1N#Nh8fB9~-_mJn#dS|?+s@~!G zzhDyPp&s}};CBKg zNZzOR|G0kP81)(J7qllhX59w14y+IMf9sd3HYwW*|Ecv0uJ5t&Y@cSBcB#}asB5B7 z4!=Md<26an!Mxr z9kcMXI)>Mx|A{*0uiA|EwTSudtUnmG>kndQ{UO&P90%4}QNBOdAAFzjm+EKTLJi;J z+Y_9rdjnv|g5a+gflh*|kFmEd{fObX!wv~*zSeOeE7r=awg52Qqc%L8V z1NzXmlX{8obj5nSriCS8eoV68@};Z`qE8@p)e6k@Ks{>DckP9D$4fdgl1qn5`5Rh> z?w;5T=pr1tn)Z9z(KhNSx?wWcXCQQ}mlG# zd)u|_I8hdH{~pWxCO7tv_mSOz@istt4{;3EVZ9yU#e5s&ANP5-?lZqP;Lh+{MaVbCCzE|->%k*+zd2FxH{NO$@oUMKr;$hgH`@-ws z5o{~%Uu-KP*>9CXGw@$%qM?aS@>{&7a!g|aetq!6%P8eOp$Y6pTyI*#w#Ba1E)xratcUF~!D~eMneJDx z9rRHgFHZT__bdNyncy{oc^cZrw678LIgd5N_OT{*9&27BI%^%k`iOPdI7gkty5v!4 z4x>D9P8-jEFMh{R8jA3{6qse=|Mpyu{NHo^xLtn#e>m6e>#5RZD8&-}P? zjR<$GJjVWy#)+6yjkeR)nuXx*Mm2Ix*@d_koZ~ITy908A+dYNWR$rmj1#z;?B-awx zwP;teFAU!XQf@cuUACpzCl~3;3Y>*^+w(dudb9)4M-c1rKPB)h@dn z*CtmIuBndac=-MU%)YZYpSlUY-4%mx2r>WhTtcj^b1@H)=B_%Q{cFs5PC*|!+oW8- z4z|y2Be}8EacqR|6=z?5l3sVGp-fF?eU9VJeQty6Ym}F1t?J8lB?XW+>?`gKGEipX zG~P%@ylz*9Jom(X!&oKew}=1(p=f$R7hT%WmLeD`^t z%d}ni-Up`n8E{$Z$1@hkXDjAA$uof6NPlRa;63e?dBSbHDRcaqkVwamzSY7SAQTquyA|W{@)O za=c50Wjrex&#Ga+*setW$TL&%E`Fm#zj1)`3}we1gZ*S3!8XlM+Xp?%G|Lvo9k^ey zb{V5?iQYpcLT~rwvCWf#^xO9XjFZpDaQwO{PB1=~-x5ELZ~Bt3UNY*1B=ejE_rYs# z+lTUrZSeggJU8ON+vA;yi0cBx(H%dQjR;Q`Zb$r>%^C>jc}@=RnE4YIcLvUL1`h9| z`O~`f&cI>pqHg8(95~K_Jq}#Qf$LRbbKLB@iQ^#>C+aAU-C}*5#{Swi=l1nRpD&;1 z$h!ypeDXfzr7OwYA0pu|OP(Sgo_nmL5Wy324~YCE$8zUOGGoX6we0b|{cN*N#<3fB zTG_+cD)p#WLdz+&;~iSw53EEX;W@P&mgSUnZ5Yyv{XOG;VE?cm0oe~~?fpYuRr2y& zVG_=t6sh;DM3m<+lpF4g2V~@r47t-wV?!wsm2T0pct1GxVS*y`s;5uF}gVw~&a)fyh4ctjTVBMi*ZJ=YBWIqMB zE#(vE56U;5-$MM}V(3iViO4fPyT`DN*UrVcn1}CkW#L@RKs;W*g>iADd3CTF;;e^n zcQM{N2-6n}j()SB_Ki zpAYlE<|QA|&cO3Rl7|&67wB7InV5()j76T=*PsA=0Z-MpRf?(gqaOxo#_F)5c;0%~COo zA$_KI%FG#=-ppGv#(F1C1?|EVQyQ0Z?&<$NE5#h)oSz6bUL1>gR*J+j{P_I>jKj-( zG;*9-ggy$#VxFC%)-2{(CWdi1WPQ#7EXVIC%99;memDqO+_L?Hjxe`Z5TR~tkLlav z2-ELHEov6yPjrOoZ-YwA>F?tR)1S!+PqLWx`P_jWrhgeaf$T81ztItzSs_HpP5lh8mki(BTl4YY%R$$92dN7&)X z07)i*|45naHo_5}37p^v-wK@O2=jQPIkwOA)TvCc$xp8%On;Fh%=H6~F#YkkIGV+* zpXdnFzl{@RWikFejxhbRaj`XvTi(5xZ3nS`Ilvno;ibT=L(LNDS^==u4npr-IER<< zS1qCb%7QJDGriO6-l~0QB}Dx{9{PCT4h~rw$TV-o{w9hWqi#L=J{uDuXBk0GK3Qy{%b<~6A|_~{Id}5 zhH#w5pM!88gx6|#HNrff`)ha;!aRRjr!hURBHY6fejnjvN0`str8>gDBRty?u7$F< z%n|N{upePNJ^c~h>Q)gu2xsVLLA97&t4*Zkv zWXOjxx-%#a`B;X0Hlq`{ZX)){zYrZ{%?=$;drTJ1%rO(D%L4;^fW^GR|MWMXIUZJ( zr)(YJ%7=CFoPpy>7G3{Vd4|W{+|d4m`}XXEhYiL|mS=-i#MQ>mHg8iyEPOsUb?mrN zc(}=aF2=;oM;t<*ovnP&oW>%!53pm2E$;a~h}XL%|oi=~|~h z(gTvu4*iL&ir;=vNR?&-4$>&A9y6-cokme5N5(EcDhuVLq)eYV2H%k|4@M#Jc$r=0 z;QPJdhnq%Dvg2q`ZUs6Dg0qg|2Uol02!F$-|cJ6mb9kloXPGN(#w8Cxz^vl0x!N zNg;XWq|k$$!ae0k-ZnB%NSR`6-act4-^lctnWsMi2cd5y9%#gksiW8mYaVJlGppP1 zjm*R`I$fdajryE$&GrOHa6cwKLTM| zwxMa~sLh5A$3_IA0lXt{m0Tb1WMDdXF%b}wwB0ciKppN#jl&|Zz` zBVln<6%WhfkO0f|Qph7e^J$Tv$7tcN69wBBZ5G=8XsgkJm+x%A=4sfkmhWt*f4ACz zTKUcfco*8X^e50FUfv6H`~2<(ZD+OJ)b>!Dq&5?l-|tvO+YfCk+RM<^!@7(wi5Btm zeHl#e91Zh38sxXB-J`ZxtvvgW^*y-Prml_J9%=`wO{0a5_vlP7-wi-JM{SncY_$cj zOs5Aoc1&k~TEw48i+C2%_DA_qUcR>hf4PQTXxmfoQJbJPNo}&)6t&s3h?ji?Ojn-T zRchC$U8~lw_8=_tRldK0^!7mmlIhK)MSL4+k&dmjNN+&Hd{~RTd|v~$jfQ)uO;($x zc8=O*YB$p&{=I71cfoWYRvS=zR4u>HLH|(P(=fgK9tZ74wMA-sppS#`4y8r9Qq^Xv z%~rdKmfKg$z7fVBPJH@m} zX9Vu`7*0@|q&8V?irP%Id1^V5!}apj7SSU9!>~-}QMJd^o={t^){6!{(>H+@>GRVv zK3b&fu!etATd%J1C#vnHb_6Z9o2lVEwSKkvYS|~nbZu8#pmw*~J!((FGXLT*@s8;m zPK)#{qQ!Q$(juL^X_3xy4SR4;OumiU9%=`wO;I~X?J~7%)o!Qd@qv}&toESVVzr0W z4#f==zXLNtZ8j~^yM{Ie*E`x#sPEM7QCqC`H(KaDxYwrMOA9^w-ol%q9;R)M>mV)i zElKSfSbj&RfOZ_N4|qC{=}x2_kMz*OpGOP-9@+_5ANSzlEm8l`BEEsNtx!+XwnjeF zw!w9dwk@tlwC!--(zZvu8r}rU?Zx1pnwEWQjF0bop-q5oG#ST%b_&*q<#jcS7RPlH zEsq~9)@R=v*ZWQRdboGxb&-8;X>GGv301fsjFN*g>FJ+sA_+y4|DMS zo8p)v!>WVpjUV^JgCFzQ8DB9r%F$eVvA2uv5Z=+un2~1QQ}cK4gznO%(?9+$P8#ZV zES1kl^BpxY7{}w-oy%qB_b|PjS1=I#K+G+mk8^w?lGcB2#>9tk4n}M^#zQ$q+6KB! zn7>0E-+>!}`O%0%p1rK2bA8+xALP4k`oNKdUjlyI26)W<(Q#lGpTpvNXkAOZ$!1P8 z=UZ?ae8;ockoZtVx+-?A5AwO^xB@)SeFS6L7!y9$1nXmb+ncnkG~AEzZZG!FhxrsY z<(9hgu+1#Ym&k`r!MlMmXT*N?+T~k@x!%iyu7qZo58tme4)ZoJPoQ=b(plYW=5@GJ z7L;PM_cJ|S_&xbcOEG5OU^bpx;hYc`#zgsyH0R<__heYYR%N7x=BSU7L?F>B(8z<$CqL}I%8QdCa|w8B9I##j<9)u>`i6y9Tx;q z?KX(pg1KynyLvwM4f_${eIOW#bXH()lP9GR`>|B#F5vms6u%o~FE*m!f#7!EVJjuS zcIhC5i!eV*j=lG8blVQbcs`yZNC`kXxXcTGTo&iu43|00$g{FoU;olD-+{6iY)8iJ zy%_(^TEzU2DyC7&=C zir>X?rEpxH&*-8BgS2#Bu|9|~e0k@1jORYl#%0}y{K4}N*xtE!rdy9q#~hao{{iMR zo@N-+jSY zP1{zFNgKDvxmrk5IG>f|zQy7=^VtffJ)(fmU+DW>UDubn@(b#6E<%h4WrlGWBu&SIn0(<&EocJFb-EQgX~!maRO*L5rza$N3Jq zI;T#ZngAPt-zgkDzSk*iD6X-v<{L{m7Fge%WYU7?=E`_3x5RM^2S&Ak`C52iuvqim zqBhgaImqWDn2s2a`My$&%h(9SC;QHQ^dWAqtCYvNyyvUO>N8z`aSq$-g`U$kFXam5 z+8JLY;@jwmFDAp(2di*=+Y z<0^A2xgO5n)812z;~ndBaXbF9vr*n-Ft5*^lV@)WS4{cVQvx#Z7*2+@_~qf}#m|F! z4)bt=^-v!%{((JFue$L=x#yfMQ$N6Z?g|X=m@R2%`XXG}L0tP{6QSkv0QUEv7zgLE znmU_hZho*kba9w>!so+S*G2eN26NkE4hzmN>REPi{A=_0*26jIL0v5Sin&7dF`oxb zBJ->~!sj52CShf`Ho|B^OE@3%$KsN5ORFI-Or4r1b6^vCFY0kyUjS?t6Mw)FX1ok%p?ur=fss}Ep*9p7?Ya)OYX72T z|56j=}&zDu*1_1R}>hiyd5`4L>dYKe3$)&S3MzSHbJSYq6M zN*Jbc;XBSwUq3V)Q8{d*o#XaGJ;w>`g<(Fg zWiJd52ni1j311%)o)i-1dt>Z{@!cE}zC9$oG$j0BNO)^Vcza0r{gCiyAz{v+w-=`8 zWJvfd94mXFzjjEtVMsVJB-}M5Jb+=8ch*rHZy$+p9fTP-!!r@)`Cl|qzmu%#9RFM>djGUE?hFPMKKsob7jnE*R3-~?PrX-nW?51qvggu9mK>LBS($o zWpK5K#rI+j>8Dv zjLJb@c`x@2yrDFGOlF#kYmec}xjCf(`|22n`xhgJr;ibi)3G{xT=C3fh0ei2Zf{D4 zYn&X!kW4TKRx)B7j~B8-8XNK|@yc;Q8J@13{cwiyYuy+7FjkE$b2RkNthQsMT!y2v zLYJ5;{sPmcqD^5K7Ybfm>Cb>oK|?oF!`bwsf6Y&eezi@sh$NpD?Id1fxt@$mUV?s0 zoOkhPP#>mELVpp?1AY%ag|;W!hP1t~K5cK8%ZqC&!%4J#aJ{GP3!R47(juM$SZ+tg z4Pj;65SDY=$RAc)PCe3_0FLRE@k6AyGs8%4588g%j{4JR;m@SK4C5FY&ZdQa87=hN zXc6CDS~La@s{gS1aS3z955P5r7X7UCXs48xcVulHfq@b?dw^PyvvkIl={8UGwRwHI!W3wG_a zeprrIEkapjTY&3R$21{{5=L>7CCw2R32M2Zdr|aG9mm}5#ojK{!*!fGuPuVLbv|J3 zb`pMEdZ5#Q9MgwGUYWi=z>LrC*IkD6%|_T>7$5yZ)G`h(5!ksz1LdC@{zj-35`S%& z366ytE@}8-A2K9>KkAqV_G0To`*p8{ZjLR2wRN

7;j;fKzE_N)iTzda15o38TFMudeNJtp7fA76CdD>-jg$f1 z5h*s>d!^W5AC|5`pL7ZOq~!MrDd7fspw~fXK-DY#Ve%s-z7gp==r2b8c;r7A`N2kd zIsH5O!!M!1p9h_TZT5WWkDw3QgUxDFN;xcwcqdd_?SoSCai5g2l%JIHzh8>{6H?OmbmWJ1X51J1>!xd&lyt3(bS-r5^<{tE z^4}`ve%U{7Z7gk?y4JRM@sk;Qu5(G$kGK;^0`=w-nG$xr<8KuEu}mTNGWIcKbGDr zrJNsd-b@_v3QY`c>ON0+_p+7w-Kn%$Bu}1MLHU(`yMNI0BX7V-C#N0 z4IO+J_gzZ9o{-*1JpIs{kdYGqu88~TPngd^DgKKh^*f`dNjXZ1rxoeeNcTXs%|}hq zy}0ZXb#q@E5zmv3le9hqb)aC zEV^G)wlm#xDKBv!`HAwQQuOVW63@Zt4>>LOGNfn{I&8NeB;MqD<3-(8<}e-&n9L`I z@XC>_;@pU74ub1dAalm0do4fZpH0qkGE6Q<@m4OSk6Y&>QVd1TQ8K2V(a+$Q(nr+C&-|I=)cYAP{_#e8Zmu0i+ur0oG0es+%(g7dUoj3o8fBJc zGR|40J(-x>etc_`nU~2d$z+ORV)7y6c2i6=&7rNa$a=`Ha~9mknKQWNUIqIa=Ox@@ zamJAI2ls?IpD;f|8CVvdXD&dy3#vnyzi~V}gkfLEzF4l6U*z?Yw(n$KkseTGv*djZ zWAdag+_%>7aq2bq&HK7)@?5UdzLefi)12-d?e(0?VtMV0<+XEQZ1MwHd8PR%T7t?p zDA_+1tZx-+)t;GQM$GNVw z&sRTn%slmK??YZ+#C2b^;o^B^KXhz(m@6Fc9+GctjgJ2S_p7ucTIHO@%%6*CNcH7? zq;px8|Nc17haJu1%(YJbC#dzsw4~<<818+DkGM|23wwA{2fA9+8|HbPU+-y+<>^e$LPeD3wzJFZP5b{rE2&nYH;mfz?( z?yc!_+glvu9b((|A@jFR2>VN`_92u;heB{9{Q7; zmo6f;OJbX;AJ#M@Zzm_r11H? zpYe@l^6Jm${p9EKe)98qKl$Ue@Q$yPuG}Z?!3>A+-JSfS8J0g>b*jtot1~Qr5f4l0 zN`AiYn|#Mda=zmv3Cp)HpRnnlpJDm?Gc4b6kkVBd3D9{p<=bvX=wFKco|$faRj2%! z#ihvk4Ep>zkCr><#X9Bv3TwO5nHOWYs&am_Y^+e(4vf_Btu?%_hJUt(f4PQ#3%rkF zGA`#S{-DPH(}>Np^Kf)#I_9;Ws>!=AnDsB|<2b0w>1W*@&-fSC_{+f7KlPfP)iwS` zu=Q_mwnVsmKxuA!{pT00v|?xlxx#>Q;mNc z*ym*=@_)L<|3VG_KVYAql~Mi=!H`<~{+r~{! zZiRWL=)2+i{JoTpD9K(`VMnEO^ktaC$hR1(7;aMHY(Z@^mWm&S@7<^+>}Ill`@2g) zHt=DJ;zn^bLl9q)?Fl2NTk;g;a|R~~S2HgqXPQ};TvcsWp*=MfLpyO$<>8hQcA$yV zTaoYdKu6l}$d0@Wa~m;<=C6G^aa$`P&X*C6HVz4JLS#Bg5>ra5s(qYpO%;rAK5(UK zI?13)NmW%R+}1SV&kjxLDBeonG~z*B6wiwn|K>U-FxTH$7E-xEjlOBiq?1ZKOt@r0 zN*o4+(s8*VhHtmmP5HcdUdue5n?VM*n$iVjyEXVa-dW=FXj`PjAr9OhWwRJM2Wk0LksqH?Z9 z{Fr(eo7J||^bAQC(bh(~QThYCJ0ky{NS$Lb-Q$toAL%07X!S@En@r0SEN zPr9WT)_Z2C@jf6WoM(RyzL`FQlur60Dg4dSA7Tt%x`g&niu@tz#mrqvxgTMloMp^i ziQht@(-tci=6pz>eHGKSR)6$umR^G1D0e`5Dd~}-?-A)`=#`@HNh$gow8`c-%>AHm zSd6~4(zl^kirii)jqSJ;ePQnB3iOK6_gIvhMH{TXc~H~0NIcBFm0nf$f%NYuOWo&| z^{;z1>4u@gsblQ@RC0d5879{^ADmoDpU-7JRz5nbEHl%`t*p|woayMcxM6XvyHvK;et0d5yL(EJ}0wghM23d_p_*ltYMoB<8nic1v(bT_qt;mTR)(b*;h7yaxj&yHS+%;Tbw zK%|DFY3^{USk~cF+DxsCejklg{j1}(=}XB;x4c>78IN_|XTbEOyySHY@8H7gms92i z)E2k?+~)Nu_pBzGc12=hUM?f zu>4&amcJ*%^7m#~{(%h3KbT?phchhy?hMPnFT>R(7miQJZ@U=!z{V3Qc_Nq;;mj_&K&Z)R)Ac58eweVaGELW_T(1Zm{KM{_L+OXBgMK zCMVun!yl~S`o8D(?~^n9FV`^NiVD%-Pc&GZ7uK3|&t{r25d6LSHK*eiOw;7eupHl6Q zL($1bh0ppS7}BD#>ZQxC?zCVf0U>n!j!&?Cx+y+5pF__DT?n1~>hjra(XsL!Ja++O zSy1t6G2atwBHk!&mTjSYl^K4gd^(-G#e}!56Ym!j{y@Zs#DupklYg(+@5PAwq1}8x zSm(6yX+%6vx+vNR!RNB*=DX5#D!)?7_nXh4xFzMgZzN*V*}b?-pM2BT&39m*l#huJ z-|YC^0zbruKUoRiH4CNqhxqt*I$g&n5l?5QEzx)uxHn!CRY(8+Arf`~Kl{6eSI)Ga z8*%FIJPFQSdQ9uzGpCZ{Rs{XsQHgRCL*-KXD7qk*;_WA*y_Hm%KB4!;che9*oqJw- z56p+fmhy2q*QPb;b6jBD{+_r_eKgYDk?xIjPo(=I-5=@ZfxD&-a2@ym`PRYcpT4aU)mEfvOiXTW z>}LHe>rPpFI?8W1zXSXZ^1FxMUVf&@wDs_PR@z9kzsp)=?>qgr`cA`7_ieV3v)f4P zzB`2x9u$Kg?fJB>anxBN3}_bdkL^Uo4z3P z+ssEdKErzV4HJEhTPNJ-WCm+{4SP?qyR;t}E!T1@8*EXqQAulvohL^=*xr=o`1VP9 zRc95Wcbvl+h{5JW+lr9Z;j7BDw#JUVjWETCHcM}xq&kJYAhhKubzD11t8g~PrcgwQMQ&zvM=e-*(h}~#uIe9o_iNMwcpWZ z;3&F7zO0|D+y4sXVZIp?p$u-HGCjYGpLsKmvJ9~28NKs2;r-gbV{eSd;m;W1oS?|WuvVO&=;=vv8UX-2aqXb=Zjbu~l>1%-s@2#cbU?yM{d->k5O z#b8S7swk+S>yIcV7$+%Bh_%Vqkk(k*ZW5c&6kC!Q!`G5_c84isYx||CZOIc8p7-bc zn7Q|6S4qD<&&xl0UVHB~*E!eueVyx^bDdv>zr|f)$SuegOV0scgok_h$a85n@AE-V zoV?MSx$Bf5WA_})P4hc_r`bO+mwgA8W~3Y<2s>w&@Np*Xe>l6j;OZ}padtV77H9Ra zg97vYZ$~Hj+!nEG0QY{q6EdZ`cIo`4vFq{#4oap=hKG&P*6S?p14>3__%?*>BzqNS zpR@ZkP;$1FZ=17|KNq!eQ<`@1A?J*dd!FxkgV}%H&rDF5!x)uUmT%;~3L~$Via_Hy zLEYc)l@Vj=A}(iC46T1tZ^SMC*!ws3I2*pAb4AbX3fJo@q^Pj&i{{O)+8e}NN~t?) z|3`nJA~WXgI#;g1_VP)8!RDV}k1UL_=Yr*CjdkDeQRu}(#Skw4uZ3{A9}eMied=TT9Gw2{&WbJ`;-ta|Ctaj_n9GF?%5D7_xT}Q?$tT1OFlO=_rCG{f9S7-_!^$eTUkE+@$ZgCgR=>F1f8Tls=^kyvT1) z|EUQ5Ch)@{_s1jd+lBLa|6hx^e@kv5cip!s;kWp` zfiRT6BmDM8e#X%;iQmN;az9-il{0cb2V8mf?jMS{Uj^QS`?Ju>|BVs%Tfx(O>!6YQ zry}k;^X84>i|+T(IdQeGdfen+`#rXUt2~5%4}1XJr%wYqZxr6YMDSlk@RKWT*OuXL zM)2sl@CzgES4431SFWS=yGfRsN4`SuchR9%)mUK_mb%&z>MLojLI-qpw7RpSr^6~@ zE}yfYt$o&_#a8KK6gMMoCAPYy(VmXdV>s1kquldP-K*GFd3*cPj-|_&*&s)GBgz~s zz5ME{I6XTHEzz+rM^z3P&ssRIbJ@zC6*sR~wtCHoqsG#``HalV&Fbu2y=={zD>`mn z(RI6}t0=(C(4(py!`|gw@16)zPqjqvEYn6x4HdzmKo^>Oo*RYZHtKv*JAR$a0904DIS= zmb~YtH8y8v<4E;gP!e==Tl*C!xpF*hlyg;p}gC!{O>@Ce1=F0p&hXIQ})3(HYdq!tp=F;jO~) zud#~U=L(-?$0ov;2%n3ab6+m}BcxYwzTF37_Jx4!J*Wh7%$!LTWNH0ZP}Fb$AN}tUgluM}X1CC4nT-;68{q{15D9L@OiRpy<8xSaca^ zr7t$njv%M z44u=7My-)6QD=2Kb2_`S$ebHZqWgk_xHl8s9y%>^PB3flWS71C?R4k(lKj^B8rf5{ z=8W7<&fQ3_o6O%`x$E5EoK4f2t_1gZN(Yum+w(NKhm?D;8>MTEy6G$)y3F$bcKS%^ z(vCMD^}l95>c_}O{c+}_{@2Whtsi?n)Sex(zjdZ4;CxV!x$`vHtM06Orj>tN zMuoxCsT0cH>Lt+|)7F`YUTfYhxKKIkfG<1DOA$D$I=uWn~n>1i|foF`Z_ zP#S2%_Zy%rLtuiA=w#+$KuU(@t#Oh^cTU3Dhu|ujvbdC&6 zk^4Q%xq}AtPS_i@tZS;~ZBtkCWA&Fey9RbibR>mue|Qk!V& zULA9J?z67a$%(#ds&80{Z;sW;jgQc?AR01n$D38}cj2imNT<;n3SV|tIJ^m{GffPe zO}p{*E1bK4>^{ktcE1(gef;)D?oaS#_`LsTyrZ*|4le6{%l~)yo#WfhC;SzlHwxpQ zJOUK{iwLegNtz#d|L+Y|iRdqg;Pb(Yd>WH0KFy8l5v(4UK1%!iw>$T{!M#y<4@7XC zq4GxV&qnY8@co3h9yi6e4_sp_)r0V#M(BSDF8=fG@4~P6O<{}v1K|5Ycoy6n(OezD zZ;IfbjNneE)M0l;aUN-eF!UOuimsqC|F3F2s;U#OGz#f8+DGwFRiStfW2sTR`)H~Z zlTIV4c}mk>)58@33Qska(YR#=*ND%u_RR(<-U zNmeJ2XKt)Me^MGf0#Nv5;b+=*DqQVDZ=TI`?tQ{PVDD#Zf_Oi8)7e(H(sTxGj&>#Y z^+26LlCE55kkmfqKA(0WUC#zVbUlv=G6C!t#NFsT(D@v4bWOCuNzkQ%(gkVHi|Dh0 z(619j7o@&Ld&c@5{-VP*UWqd}Rh!iwu(ZR;lEGUXu6#;2GS}hr1e&B8+S;;eJfJz}aWg{NNH zhqsvD3Xdu_W*ZKwGjBvE_gfrPI%QtQ0XD4|(dg@T&^x@L076DIGQE71iO7u+oyyc3 zPZ!k{e1O8}^F%;TCkSg-%=6F{i9os$m5-8<;!~OUy5MK96^na99({P-Uf=Ju1#hJ* zm@)16-{@V>Yzo~ zaOPs{clio)o|KzkO(YVvQ@#Hs|C{h%|26H6K{vo%Mkn_3Rta-5^LEQae}3qBx3_Ck zUh}nUOO#n%#SS-5w}*F58qg0YzBb}B^R!%Ui1~k=_JGxQZy5^m_mmTS$uxK8@TK_1 zWw?7MO*(RVQw>Ns#xHY6L2|HHl_=C6bu|IppQ4W!kE z=kFc*GPFvI=qWSvrkBqfZ|BtQ#(jNE_4H8D#$oj=iQw*X&|5gQmUQY~tspJE&4SV_ zlkU6AvEEHX{=KPWO8l~TP&nfB850g=A)Sr+UC0f6o469eXAGVqZ+cgZy@R~*@s#HI zxY;?e>~-%J-4AbY*f&~C7?c_Bq%>;JQvg56ZdYbxnZ*VQrRN=gs_s=@dRxb)$L)i2 z<)gaS8+Bjd9W~La{{HN}+PCF+jQw`ff3y)tBK?HnjqRjUVMzzY@8RzBW4zJD-n9?j zRqAFR;%4l8S#Kq+y0^^ZkAXj-v?CC7w)No{GK9~Y1H5ZBj6DyK1Zso23oDV@V)l%k zM42%EH~CQ61g7k?7tg-;SGfy|a?yQJq5Vd;%{Z?rU6v}ccfvf}oKc#(rf2oEsV%|O zrK@hel_knx>dI9;%cfp=)uMCP^mHu!L@;&Mf{#rdalXnImV=?#Iseq98=C4zr4g7-!6FGlb`0atxyNt?)xSmy3&*VJ^xGBGoo@I*-WeCMv7KkxGE+mG3JFv4FnADZoj zW@Gm8nsCMqL1;BQM11p#m8^8<=3KRK;e6d-Z{~W@GT;`D?(P*UZwW@f4BRG~tqND$ zZ4D#5D+0UfPo0YACNT(9yJ|Ysj!m0rP&wJNK})hAkG;mRHA%Y$)kKH4P4oTSRyRL=to!&U~^O4DJ zyr=oWd(zeUh~_DJFVWNK&ATZ?nC8_kZ$E zCUsJmNV9Imcr%&4*Nofsp5hVSq|+MNkj9GK^_t)ehVBH_dZ)(raz|pQoCXDj%U)?} zb!pOAR%z25K<>|y+hfOsre>F#qWGUNp(%zMT8QNhgYwVb%a`{kIBKJisWtRn6&p)0 z{h2kD9|qN!Pdb9CVRjWV$1~>h>MF&lF-TbcsBK>q3QzdQA~;)tDn{KAs6m_l z+#u*p9!xRg;wCbXA^lAVL&@k#RHkIG@H{Y&dnd34c_{g+zP=CGMCpi-;_=u%u@48O?XCL6@K{!1`k>XnB>8;zI~HBW`SE?C z=#HmP)SAv@{CcB!_04tA+rKQ!knw1=PZXWf?2V^Wf9CTbx1%_yT)gpgg5f@KIY=*- z$Y0YIRnAo3F@2)+x?jTH8y}wf#I6-L9lNh*tUmGlR(eL6x4vg)ovrkWuI@xrQ=AWT zYyY3W6rBeB7H^}Ix`idAN2Bys(n;a<8Mw6^i}x0N-ykSGmBpp+uzLy=26nLq_T|Ls zS7o0H`f5F$^bhbz-GrbIUEX6u^hdM=dw06&^V~T+?RAi@PyLPgo#CBp{P{gT6t(GF z6;~`ZYsl$%hQn#n-j(Xzw)Dy1_;+{RR`dQ&&|Ca>6&0R$#7qAjJ%xC+YQmwZ4WOM2 z8TBz?qdvv2v#W2Dj8}Wo@0kw25~%j+-EZc%<~nNcqQ4*5&FAUE?LuwmPxzkYlgtqP z4}jjty~MYlPrv1^zt=+e8Q^b#`}j?tqDE$JpD?pjH)-qPEv@#hWw$NsYG1l)EjpuP z9L;*1p%}x>gtUU|dPeuUmVqjNQ3C`d)ers?dU>-xfqN<)w`bX*nWS*i(2&Mt`VrQIY&tdHN(4`q zEAPJ3Z~YzNX&&Xz&Fc(&4e6q4hPyMLWe!#>*)^62%9?X3?S5{l{?D9SXI+cFQg49| z(=V1@2TG@(Rwcg!=2-8P{!9H)n`iP0x2uqjuRl|Jl+k!u{mD5NHUHJVqH`d%b8qB+ zgGYeE)!%s|JUR#3;vIo<|6BxrE`po>OAXibUrdQy?`6+)>Fkl$SVp>#5Ne-ItZF`O zw;@fkKlC#q(5fEOSy$#rVLYmutxUX}V)tXSa=Cd|U1{~Cc7H?@gAa`jn&_PKg5c_7 z^p;q!AeGtY;C4YKxVr@@sMiJYr#?h;tQJA$OqwfcZgsq7w0=o-?~N5@$M#FJamYg? z*(-9H^;k0dI#+m~~`=znyGA=wp8POe2zw~@45Ax?x@hfTTmYs~~j;CKLL3cd; z(oAGh7FzX7`cy7d*D-S->4U$6y*EC6>X$Sw@g37!=>@0HIQ}_MHxmd#kl3^8q;*SykVcb~bAB+=jJ!zAkb2hX!q{+_3 zazj&0HC|WJyG;r9JJ3W~8@6fPnc?nH*M}y8C+IJ8C7NF4T^)~0SIJC*x!YDl^KO1u z`bYf0C;TlkcbO!mmn0AL`$I`|mdb-k3v`KKquIAFcWYNDnLK6`_rg*#yRo)Jf2}@J zG-1EVU{e`AZ5@64aFH@l-`P!l)@PZg=85m44ZOGXFmqPz4fr(q(%e;N4L)7z%Tw=K zHCTuj2D_P?>P&~y;PavSQht?B@8;{0`g%e7RQY4PxJ#^sjqi1ij*aBZPZOLCuF1 zf7R4hfAZ^ibgt=;56MZ%cI8dKHU3~+TrslyD4+5-mrw4}X?Y{}j=Y}g!>U)quq@#-GLiP5vPnf#(FjsmVy$kOmvJj7F`Bf z`I#dZYBo{Za=-FS8puwO4OMqfc#9&>O9dhmChr+YOJ!M0Y%6vG?F9+|GS? zg5jt(K$pRSK0BZq#~h38L~J$qK%nzKH5OB&I^MC^1(_Ka7gJ1r5euJ<#9##x2BlJSH6kI)+-tUGhU;{=J!mKQpT}V002$ z_MWDmHv1}VfB$&7nY5a*0b>x^O$0yU_Ok9^9NA6!r|`A#>1~`S9TWDJ z)9fJ(vUd_sVQ_Jd{fZiIvd?o$*6uru)t^>M6bci9LLnCCH)FY2qPs95b|SxX{Lb;4 zF-g#`G3J(9#zZk#qETtnIHZMf>0$H=@%)WL@b*W>Wf=!CG>Qd1C8l0x9H+QNAEb($ zL1c`WojnxvSv$W+Q{x`aS0WLrVUB}F`U=|qu-1=#I7#xP@Zu+?N}Mh%KNAlclkDY; zyLh-w8-0&(;%EIq`$FT{0?EEXj2mHY}Vukf_?VGJ3?r$(IRC?t`;nc-4j0ZDYYB~4Q znBezB=;GPL(7)lPy{9qxW!*jCjlQ467&Bs*;2pmpr?>nTmVO=!Ufq9@?&g1}*o@zo z-R~s7_qgABi&WuAFO+iQ$yDDxL#aOMy`S(4g~0~O$nR|pf*S{?nK{8{$|q8$re3<) z7o4Sj^O_5|w?1+6a|oIla|majrVaG!ZBgE#4g457SJJpRnP#0IJB?@kKGhgut8UqA zO5OUm4Xbsm`v;ToQ!=eHvgXc5Gp-+>v0<6?;a_`!eI8={4-6?EFEJ)=%6^(NtM@L}P8)^*(eWa{|?E-%{0tFY_wZ^rF;qf0Y$BI)W_NiP+Y zF50Kkuk*Ij)5%TytSfpv_Fu3^89g34IQD@gQ|wvS`-`a!;OuvHWn$VjJn8epTrhM7 z+1s-}7#>ntC{HR6%>^3pXZ4Hhai*?)7|#%|@*g{~q0|7}PI`mxr^?AZ??D!xB8<61 ziQLw*ucsJkrA^#`9EVTa^j`19a#PwAX418l|5Doct$IxAUCGSl%%koqFZqC#NusZY z**3(S@f<%dt0%olCxg*z!1sM-FSVIlr5`;lmcHziB=1MAaPL=|{Uw=A+So*FZ?SSZ|-v=~~*wlCh0f8hJw>L>oEX?#N*1ZVflZZs=zaq) zt7D{*KEsxME;n@T(W4(}hCfOFa4ffIXu;8=7t7t(k2(8+9;Jr%#~j?q?d#X)e z*q`1>PM`;m_1y<=T(9fBp7HhhkSo`fjxS==V}15f(+4)Wa#kC^6&|qprJgAdjUT!? zpDxFz-(5_0pIUC}L+4JqRW_!4&|54aOqGjpl@TLkQ%*X6fPVc2WNN9t7a53O+VXG; zy}sgN%vV>Dzu@%cbxnn*%zk|nwh8On!8*c@?8H@-}R{@jr6CXgJJ zJ#7)*N0&kRy^J~`L%IgIpBH!D#2%#GQ-@EKb#6d)m@ICljyK!->xTzi8ebt?6DR3Q z1^1QDilq4mxW{R4n|@W5W%vB*=&EPF?h<46?~Wh`_L|Ob@NHWm?eIO zUUi`M$6Xaeze%5~Hqi&&lq_--qOrvW+qy;x8z?fE5fXA!r;`MzCph;YCE?Oz^!HQbM%M4E$4o9Wlz z^(&1Do+>|2I7+|xS@Ornb1CjHiQyf?W0YwfsvAg%?}U!wo+@>b5% z)bv@N4WL(h57G{YpBhN3_)h$ZeM$V|^Kqqkhx1TO`JPc%>xno{?dWBDss!@I4NqJRFP>LrKF?6zYEFFS&M7jK{C zTctr`Kk=~nP5q|&@28zIW}@DjGM}l9&%C>)DRY0V+QW|tSN)esWA~MD={;j9#&)T~ z?~5MDIPV&z5!P8$`jOgBaD6G3n-fnVgKFtxs`Lvg^tI_ijJuA_J`t7oAG`8anO#i% z`}BQ_-^#bjAl_v2&D}7=%#uqP+{R@KrDfpz=qUH{?dE%mlt`~w1Rks3Gc&2BjBEZ! zzh??TbKlYTM9NunZ0Yx;6F}ZN6AMshgpAeS`T4kJuA*lQ;EdDXdDOY@WT0aW6%{hl z=gEK7z=|PrJo>!%h3HfKK95i7+ruY)*BqcXa$n>TpzswDd`$%35WznU{s!M(Cix2g zOA&YNpYcZFf7c^G;jc#Ue~#dZP!Wlq@mIwNKP!Uktr>6Req{vzb9AL*KEb4RdjT~!0<_n(F}f#JP2R{w~;B&cP<^F-jud7q-PB60WzeVYgygBYRxjQ(X1>K+nqk_4bl;v zWh-@0cl*s<9k;CUlqTm^BN|NF1Vb|nztKhk*)r3cM#h>T*GP;H`oPAnkK) zYI0|G*l1F8_ADM5eXf*zI>UniHLyvLa594UpY8A^4(}F35u-CV(*G6&iEppNi-P!{ zn6S{iV@fz(!q0$S5P$uGr2lzA{2y@k6A_d0-ztc|yde4R5@ay;tiziaMC*)Cry%s} z1)(oE`<;T#$Vx%VyC?|V5eMtXTl%!%S?E~>NuSP`D1Dm+NuS<|mcLzsgnvko^yn>6 zrKg3mmwTrm?#l(=&s`DDzF&}Zyy)=#g3!Gt_yOc5eZAtHDM-9I!O4Uth`;rMq<@nj z<+NS!Z1k^;P-NdMcn>2-}BRK(8X>i!knv?tw3l*2l2l+(*R&*I?F;5skjN4tj^#W2A2}1f;DyOs6z^qp)O{!&URZ?^T4iTn^57Izfu7V)j8-#DeOj zuOC~V|9lF6A&)-1+h(-0X0_U@^Q&jB*x5JQnXBm+o}V#?u#Q8Y|Dw%6MW3&COcUtI zoo;+snb3MWdKl)!jH$ELdC3CaXVELQ)(4n29eGRbm3yAyg1p|badgWk!=8WRIG$$o3 zh?37-%5TJa-5o&MMBRIV@H|l!%^H6VICRi1G7>{4pDatq@yBs~6)29q^rT|^% zO{W|kU~bGDFc$1ReaV>v6JqIapAOAwG5jzuC%%qKd`d@Jc_zQyNzs_-CZFhO6enWd zNSU^?#5?ohVHp$Y4LsJSv=UR^&RRe zktbj1{*?~eiAl$qChw1j@{WEy_4sk*{c)3blW+20O~+$49a)=>4YQUO?|>JjcU7HA z52$h$&w5@;1j_=S#yD;(WXK(d6&H$&X6M+r^J2-~SDMO#OevkCJETr%sIx6lwy=5OjI5 z0gb?ynDfAlJsN`?@;56vvZxgAMaFcaN6Qxm>F1E4i%RS@Hfu0JpJdmQv~TbIbE;4>(EPXT3Pwy)4lApGV{Bq<9=E^*l61Cxb#it zejdrmgp-rexX3^yF3C)<=c~t$Nw>}s z*XQiIlzt~vF37bwI=^s!>GLXSu=%xXgX$whUrobk`Tg{<`OVt2NAtQb6wlj{SFKsR zC>eDneP-{Y<%#MuS-a_Be8FoprFb7aK)u&c2Deg|oVhEdfudpjQP=Q3?x|YC_bA`p ztZAelDvs~wtau-Nd+$RyxO7)?M%nuLxJq_xgv`;ZXxoRIn zJ!Q6=yQ@Sup0y*tUxKnNO;q2p@y`#XNW(|W_-t`0iC&+n7=7lWW<5*mQj+DqkG=&S zv1|Psi>dT-b5`Q?%uh`J|G#ki4fk7gr@7y~{BCf+f0y5dm+%WC`7M#zSd3+USWb}6li|B~^WB4Sc&m;!*A*R2@`qa z?)0KfCGwKZZG->BdWqb9{Y#cJS7EIVImK8{zcuEa1-~Tvu?>#7fU<_JXGUHq9i5@tpvqQD%TZ-eu zecc%Gp$cf6OWw>r4f3UUYskk~@g_%&_bwA}ve(8d89p9au6os)iQqWqN^^{iAf0=W z8|*34_|yM3Wzzj*`AZLJ|2pgLy_>$Kc46Q4yiRM3to1y}_*8e&NfxpG=IWuIK5cwz z!qCgUTryVJZSDB9ty}yEVz=n$^L`PV}_0v3#H#W^P8**?t!P^`%(Bv z{u3GECk-cvcU}BnCjN~k{_9JVySEH!Zu6K(ZT(OpZPZZ^4%qkuj(^*vd@G4 zM(KyktThkSW`1x`^>amh=+7?CRO)LI3mWxXh0a zj>~T>9wp8xl{hyRO?+wM%fs*FP4P7=KK8mPzC^&CvZSjrmZc2ocN_iw9hKh^`W?|k z(?&mI(^h=ATtD!+^7w&0r6hZw>IWWV-teRH9qd;c&pwD+@}ROs$3*;h4`mjfQhbBB z)d$yS?uIWOENkz;XlbD?DQEgH=1=uS=0nB5WpCAkrTXFq%H);u9hqQAdP2oRpJL+~ zu<^`%pL8Eu=2xoJ?M=Tm6I9g(N5n?SNL3vww?L^x2>CZzBR99tae5VyqI~Zj9fww_sD7SUg|0J zQaON6#${eQElC^E{Kvdo4$rDz7#H|9)i#Kp{2Aeuv77o>c-r410uRzwG@n^G$Uap& zf1zxAnext0V=eyu+u_DOXYX${dQ9q+r9ec2^qjep`bNo0_G;U+;-;-f-zLwMwC_vd z+IZ0a?q%G>+}FpeH^a5hQ18Tey99RZL1~oE_pNli|3SSeJ!UU`K%U)izrRy+jsX2H zJcn%5Hh>=@SAJLy5_h{hUF_{4d*7)S?Q3qJKkEaRtP-w0(i_0* z@FQG%)z^W?`z)RY?*d0oF|V=vqVwSTJsCHf&l?BVXuO?buN>hRJL*d?MjoUu=_T!P zek0pV`){Uy(p+>heVL&*`T*Uhyg=inSCiCl9N8lM=jZUd5#9YPem~A{yj|uOVzlVyOxd(bP z^x6Zp3Hx|@lPN>RA@?c$TgsWjmU2t)7V)Ri2h|ivL%;U)X^d&hKzq~B7n!lc8I+Uq zdt%1!D^wY%T`29g9MI{K){9-5gEZ{~|8h^0esfnd`P%mj?SHiU&EzKDkbk)g*O*ZL zG(UX_TJaLHoIapXnkl|THcjb&iu6B4`Wbh!$GcK@?Dc-YjnO=%y)OvAYGkzKGpT*!4#2K8{^?#BMQm`H0;@?DWp#CO)09*4lq3pY{UiywY~Q zt$dsLbOy_R-N=i*0c*p2JNUNpZQ?`UV%8=X1GQ%K#ILA-~ z-Dxga$UaPPqJ&4RoyI>}HxiyS^jaI@{tjnv)@X1e8Thxfst@s+-qrfK>W=s%`!x2O zm}R`&OI_p(gR5PdwD#s@@2C45@wvwst8TbV zc{1bEd~S&ThVdzFlre`LpWZ9^e$4n(XPRF$H@!mC%gJkx%>JMzxevl z99H$w05o+>eIQS;Yb(tF#(}Djy`lKR^>KpcCIrvIl7OdqQCu5P(qS0Z^P z%tW?OLwF|K6u+TAHBEch7)W_se8isP4$?WzZC^+PTZaDW4a<89L$WvFs?rAF#G3y@l3?wSFrdK!U!Aa{PQPYsI2V zWS12cHh$UW&{k@RS>2i36lN@wWsm>0CS1+e;q4d1|C-lpyfB-7P_#`M^+yW_@5jG% zLbF|2D@}6OSl}kouW>+@^H&3hBxz~i;J zh3&t9y>u0NYod=Z=aS!aW`U6bnk%L=mzD3QoTYb=}xfvRr|598_p;1b|%rjSMllfJ7M z&D%ogvW_nICUo>?jT$2tPUC8YH~mfMJ_y|uM>qLR=+1yH z=omPRNrzl*Oa(WVdNV(%g)e)!q9kr3Q^gEIToPVlQ8pQLyUCN$u#P__N;{S?^{~tLYCiy6tC_RPbCc=04 z|P2*wq6i3r_?}7S;hJ3r_$_7AAp`h2w#eh2wydg|$G*!URyVum&hO7ze74 zkQ~%`;25~%U>$OB7x626$zX-A_!Yk5SNMuw;VXWHulNA0Xb8OOEx2q6gTs%pFTz08b@lLD!7&YP5s&~`m`O$D6R9X0|vkzLHr@-N?ZH3 z3~efG8R}FV(j9Q_%j=g}pD=yYMf5+?7pjhpem<)@Z8PuPB=UA&l=`AeU0=lAQH|<@ zZ2k%+f9iu&N9u!=2lYY9pZXw`rTQS{Q+<%iPkoTePkoTePyLP7<8vjf#EmMzaQ^GWT|p?{)BVBBQycJrnfYf7!P1 zx5##_L#ba-|0tS2bZ+0pO?^!rZj3i7eaScJ8`O?9Mhn~j8TNJ9E3B~n*JYG0y0$;&(SNu%{8>XW>zQ=c?iU!p$A%Q^K) zqxB`xK1qGDsr&TZ$Mh$igy;Lg4#Img+Uue9{n)i{L3kegDQD&NmHLeUk6v)F-`JnK2KhzcKgnH*RH3UVNx= zis!|x=rsLUXuNp7o3nPvt8K~}9ijQJclS{J5wi7E=0lAeID@zWTED;aLU*QD@?UaZ z@?UaZ@?UaL@?UaZ@?UaL@_!;w@?UaL@?UaL@?UaL^1l@*`7b#r`7b#rxu3|{@w#NJ zmwkWf`aZ?2zE5$h?^E3B`xLj*rnr?h#jUg{Zlz6eD{YEfX;a)vo8ng56t~h8xVV)r z#U0Pue(P!C_p<6i>f*DMrOJ7E?^DP~r&nTp;LAQ>e6Un!PTlw*&zaFYa>UELRj!{$ zZ&oL{>hYDP2H((G-p%UtNp1iG?zl&+xkH-vYB>~P0?Sc?YjDuC!Q{6DN}!r zmiidvrBE|3QJhEFUlQat6=Pg0ExlqkC*Ik2@M7fiFNxQ*J(s=%zwvbW!27K}Bgkn_ zcwtcVCO`cO_r}tA%Irnx)CRoXL+wENAL%a>Y38i1{mA|$(z`W8-$(cg&zFhrv)~Gc zLDq3!2>avrX&+YGCEjU_L!{I6?JoED)8)CnTZTsF`2n;4A{b!aOqtiFdyDbR-yhWc ztajjU4yql*a(9{a2PcaMCAany$GMcnEu`~2pmbmAyO6DQubofbjr~|*PdWAJ@)X>oVbfMiR}g*!ZVEdE^kIj~dM!hZ}CQ+pr%i+zqGDhvOa%cLL$+ z%~FNi1spBh#n_J(ZuS&pH15%Ge?fmW1$%`%8R)|em(|apNjaMO5KXwOj!YXn?jmE7 zBJR<+_Y>|O>=pNJ;AnA6CW-D@N4FzH7cSGsupcY$>nA*2UXOb;e$9=SW3Tu-fj<5< zAs)zKKUTP{6P_-&;vNlGJopEMoqqY~(LLjXV1REY-?Mz%`L^*j^X(tUI|?X3b^-hN zzQ^ymKpJGQua@(ceEsg*4tx*xTY;^70pGj8ALIKK{)&9x;p^kuz_;9ee+-<~!Ay=RlpE-OQ(TEPYR6*9M%+r*pRY)JLO>sWWGva`f?8?LW8rZnH01djlAgNtRM< zbzX)_CnMddaQ0al-H+C?7!SKOE&pbg#>lw|tWVIdUSr-AGk5(GSFF1#XNePcyB|nl zNN*ur(2o_g&Y=B~&$0$0JKvX$mZmggFC)YAjPFTnC5-TI#(`Rg(tZ%Fi6(lv>nfzb zNYEcp%yrVIt8WPC8+0egxM1-F^%)9RW%Lh(p}m{zgQ+`5a}nruXVCYM8_J8;!RCVG zC`&sYLuCq$#+T}!Hz3F5*Oy}@oP2KRPjFw3 z{8ro=yJ$?I^u>DVr_lqgqf8`^@E&i*dm)}8OVXzW6c;$B?HKR;p*Z6yxXvC4O}vejCh>dDp} zcYaZKeY97VkIEapX`R~q)IR1N1?hi+VY!K~Z9TSe-(K*H?0i~`&X2NE{%QNHuZ8M@ zFj;?mA>U`~TxnAID27^Mh|kF&@s!f`Gqo+s zSiC%+->LjlnX4t!fs9ef?PzKrdAHUri7h{wN}DwJlWZ9ALb>W{N^<;S64 z&YrO4$Q?hw&!_F!eF^qULiQhZ^ZxnR&kxzpcJx{7vmyIdXCJV*T;$@tZ@^F+VEVlK z{tCQ}-}+{|@At7|eqz4Q^IJUppy5aEE!1Ag0((G^FYm@Ko|BBK$`c z?N0`;3*lcv28G>&-a?Fda*RHpvOiNY(7zk6a`nIaPNCn%&C8WaINiCSJBhzXthbP$J?2LnR z)0i@BL^nTTC-<(1o#?dxN#;x{RYtPp*EL5mQ9sJJf=uxtX9Ax+_}=WZ^0>;{|CZYk z5RZ38+$NJ&A11o53Z49E|5nEu9uVu{o}Tp09V@z)bzYplb=j?4fHV2l6)UHtZ|zt& zCEc}bud>L!V0Yt}62Sb58`^oKv3zG~6@`FK1wjW?friKD%ui&lPO<*HAvOwYPvUiz%HgqxncXyuBf9cy~d*6)w4?dtJZ z$nCtS{l{|i7oH7$+uD^Ymv!Nl-`6_3%dX6&KQ_C~hKJp`T^%=Zc~NKj+T2z0l-dGFlZn8f8#la1rq=}X|4(bB)PXPvL#^!oK_&~q=jjZ(Pz_V%SW`7lR`b6v%4 zUTzjyy-csf8{V=w%wriM7{MN-VMVv-ald@|sufF@Q9dK_wNrgggP_8Q%hp`I+A!mq zD!sE&nO5j>tC!upVqFzCepCl84u{jE0$S8N=&rtC>gr`(Q`L6NkJYP=v6xB;cXVO> z4tcwSK00J#+z8{}$Ch=>++!p8X-zC(!2v`#{Z&OL; zSyLB$njc*rMH+mD-*ZFw)BMhb@a_Cw9KyfMZ}kb*)S2?>3&r;p9E8uWt)}OY3e6Z> zp09;)mEVyNuJU;!gv&j7it)@p>%TsP%Y9-9mw(+SWsR+$$st_sQ$o1>w}x=J&kW&m zpBuvEK0k!ZeQ^kv`;rj;ZHMmzs(#Sl2Q3WZq*L4HL>9T@I!TMjV<5ZA$P_1 zatK#^`$D+f4}@^J9}3}ee?5fD{YVIxdxFWdHMYEyAzbbaAzc0^hH$wzhj6)14&icd z3E^^Y4dJglTskpdK0PdITN4XTz+OCQjV+(vko(EF?*W%i&ih}-rfX|r!FzF6U073R z?uI<%QQE@?aW97OY2b_btf>nw0pilxcWZ3@b%op?#!YxLGR@cD^7B1? zEcgQM`$GPA@VgkozrycBA$%vlUk~9N#0{GK;Fj_o08fYT?|@6T`t1diR>8ezXaEBbQ1=*uJ*s)RvzhpT##~U(R?C?`&r=nt$t7VOmHR7 z;|svmUwC{4_~sDK&x)zx=Dd;dC4)PlZ-t_XFJ^AmtB?mZ)Za*YGt8|J)R>%AQ0P?~ zRZ|n36g))uGV0@XH|=(Zd%LfJw}B}B3B>=Mi2F+s{C`LAVgx@J!G9LPe-Xh^L|2T` zsCRYt(?9z3PK~&09=ZcMpWds$)!%yhjtKoKaP_y|UF#Lz$WCi0>TkXKc5wBt9{&co z>eI*f61e(T@6JYg)1P|$zrfXhdi*5hv^TOlBZ8j~uKv%{&jas<&d0X|T>YPS?*>fb#6B)IxBkN*+4`Y(@v6I}h3$A1LwjqLt8g8w3dPhi}m{%Ah5;-|B~B~Ldw z{KMehD7=q?FD5hUBSe2w#QnAi{vf#IulfYTui%om>j_Kv3*g(pi;NM4{}6or`&pB6 z_#tp_6#tP3J{~%6Lj+Ev*T!)q1F;%uTQf|00tT>)>YM*iN(gHh!l~ zGs!YG(@i?3o0Ltzz}TClPPa+7^oC}dv6Yrp2I< zn!_cqI=;YP@!h#%nX&4=U4RFlgUjY!4JWTy*>kh~xwdCbg&IB2sP}_+R%*iQ@PcYe zaI7ZQW{GsHnBM6sZxk;$M!o1_@M@UCDw(rknhcLfh}YLt2z@a}qaTxSL^R%awV*GX z*VewUZGqmQR>_&eM1n?FK&e(nl*SljBNF5I=-5oVHaa3eXICi)Cyo@LN%Pg0 zx6K)m6VDygw|U+BSStAqt0Hyrd&kWyM%d9}+P!McgdnAE<$86m#1xg2oS|q5-@a!V zveR?qx}g2$wJVn%6VYl3;}Nz>(y_K-o#_a2t4aOTh|A{JtXka@W`5OjC_%^GPOoB- zD%HsJH9f0)=oeZ`O8%(8S zuy(2J!ilK7j2^BISL|y>j`Hs;|$T&Gwu@IOhJX~ z@SP4n?C@5`BXVCSsBi@dr-yNb?6r?d_C<$JOj^8C5ch2k-{bHE^J>v=7G&VQ)4>CR z&@-hn?k@{&AzTOb?!DZX2;zT(ApR5e7B&k)-wCWizqMSDiD8!@$aus}v@Trrg&k>&BHv9?VzFhFr z=o|&1TTGn`E*FHZ*Wm{o%u(kGXSsvV3*N_mJ7CS!AQ%ulk#+)9`laj47vMwTk6GQO z@WaAMzjT?x19(d5m+n${N;v+dt2FIgIR2%Z6rK_OxYb1pUk|SO>l38@cL`FzFAIK= z@Zr&>FA<*L4#E+<2mgX!raT0{0G|tzAL%S>vhcYe`N_b`3V*gB;m;R*20FpbyyGCa z1wL~y_ik|LI|ZR%F9_W(LFlxDTkdH=@Ky&G3qsfJV84U=o%<07>zR|vU)sSILHx~i z_!0-Z9h45WW;W>%q^^4f=O70hzDe*3+N;C+1g}Jn3eKhd3C=?v34R2=68tE-KtaOW zAvmA*CipS-dJ0}edlI~wJ(Pku@-KJ|d?L7jauZyLjzF*tc`dkzcHcyPo+W<4ui#(s ztGEloe?`G<)F*Rk@o`oVzU>#JeqR*CeV-uyntu~WICBNT_XEz^LDI27koa~8{tCoP!&j{SJrkbue+hrJpPa{St?F0c-N`nc!;VoL~q1bp;H8SU5M+noD$hwl))8F?Xi3++~LIr74}?*itL&jSvB(ZM|qzU<(B2aAG)cR-Nv z4ha(8Vdwt3b3fwT-*E1U3!o#t^$w;438z7ja3%^8PTILQJNL=XeTs8$aqg|oeWr8I zI`_HGJ?CJXAn_~~B%URL#M9~AyBzEmgsw*rx^;rk^*Z+r&V7?}-|XCX0M));6r_Em zE(CrHK6fxD_*LQ;#Jx)p`t^b@QjZSbE{MEoYUP7&rXX~S1)rmx3KC91@H@ymLFir< zgzkVKbdxUvLN`+o_naW^c|qdqa`<*Z;+uFe@VoTSf?p@!g7|yZ!2v=1?-#^>(}%2k zMiBe$g7EVmLFCi{2j6h8VWzcj2CDui3*L%+c6f`!TOB@Aa3%7^;d2F7A-5d94yg3? z2~y4lhxZGT|J{P*=dj>ck$-}eSJQ|2@Rt!J-C05Cmk2`F?c6sw_s0auZ^7aF1Szk~ zB|yrlO_1=G3ld(h!(Vi8pR<2mkZ>kn3Z$Io3Q|sa2iG~c38?bfEJ*qEIee?&D#im2 z-|pOZIJ`b!*{v786WmDqad@-f_o!Eg!yZArK>QA82oc2phWtA`FZd+o;P4*7J;)n} zZxVb2K6Lmt=g!c<#E?X=DkqG_{KSEl}A5i=S{->cn|OdzO2KWZ=i2EiSshx@-I5&jp2g9 znXVdhAQYA?L@V<_KGDAwT?QKYiSx-Qyvg>b`R~&Q8;^*$K8p+=g--Px&c~ix;3e#o z50!z>$H(}sczyZ?vdA!SZ+yJ-un32@WH~&Kox)T8e0X_&E4=A^G8<+gOMT$rqLVwU zY@qTjb7c0&{E9}O_(9N{^c?@oLhrT-lxVuWtLRkr-gvqRScH-jd=xtIvNxVi(AS0B z4nViJ-nOrMz?F{_pUNa0-p&OiVmy}4`0%8J`NXo@kNcgj8LcxeNE?%{yJOD$D`GJp zlFDQ9h%#~Sv{l~eI+=A_or~07dhJElSsk6znTy?A-kO-ZhJDNIi8kkAQk;3uv*)_N z*T>x*z4jdnol78Z!+LW<=UzF>GZgEycbWM;?BJ)yvD2Pve+EQ*sga82Jj8FXzgo0O z>=OO(exb5Fzm{)!c7 zVayvRoHfrHjSOd8@`YF|SE#wn%=~UBu~)t(ma9D_9^6o>Efgli3inWLH|QQgd)IO{ zH?#r2bve>Xn$n34KMnF5D(6{#i}MsZ>!-7fXR_B@W%o(WTdYgl^A>M#o=@*K#c}iJ z2Iw_7C$+`gC!{cyM}0xBjiZ9I-<-Ui8WakHi%5f^Aw3`Wzd4&kw`=V=gTN5M?7vqT z8d}PQ;VAq4d21rJ@et>@hW$C4Gs&Mx!`0><+TjJHS!oHDWw| zzvsfshr;`m3s3Qxu&96T)8n2;>WJU)=CElS4o~zJ2KAOj4(@5?)BbLKNlN7~P4soz z{fm6+7jt}ii!Gyf)j0Q{`xIkY!cE(E8-kSHWwU25u+y7k=1j*1_W$dgj?%N9a{$Vx zcxozXm0g0jdUR%nXzP?W-BV%gIisG`+dafZmsK}v_{2XY6n-<|tL_#4`96HkTj}n@ z4Cf(x$wCj`WWFXox@$)!er&rmC1 zcl-+WzrHi}>>jgM_wCt~3)@soBKWtX6@(u(BP6|WYCUB1-ZsOXEBPd!)ifd!VihSty?jPb)?^ z!|sX^{(BY7mdhg%yb!^^7QuH%@K+-EYZ3gH5qv_3L6jbU?nPw6r$^kch~Nt&_)QUf zbp+oK!5@v_e-OcUMex6i;Kd03S_J=x2huLs2Yf;mUI+a$TMJrP)xE7fN{{RLe(^7~pf>8Vdc?0;I(^Hf zL9NQQYwgp@xppl_nq|QDt7d&{PP-QJDkN6KUA6Ysn-GX*J#OArZF8=iv%rvrljoOX zubgw$oCUMy+px6S86q-E#g(wxy3&5r?d?}lMqxXHTsxzE&f>Oq?F9lhXv1O z9waD%j65~(MGH--oai6bm-jN{jkDtW~VWZ1w>-Ty8QS{KR?M`MhdlnGYjwAIpit0+Z`i@DAf5flCTZPm4ir0k8UmONhUBuJ2-h?*` zKf|pnfXiR}OdDSuVXt^Zcf4k_{yrP>EZHd&?eEq9WwB?70cTeG)3Y4z@JvTftZvKS=K`eV^VsoA-|&8)`t$mqZs=^KTFJk>=qv-^cl`=3Bsb z79VHqW=2Vqp+9HY+b8qm$n`$u%jyepRGp2Y<3@+G9d zYqGk*Ci#~h5&vPo<{c4qg}hHQ{04XZN?+~o0t(aVF3Z=UF=6vQUu+8cMZ%MQQMzGt zxOFe$f3!G$j9=+Xci^sjherz^-E^bg{!LI$x|=51t@lP2ls-b<^maTVr>-0S-DCLw z3;gfFf1A>vFvzFg(3}fCcMLy&j33?8G$rIm_tXUFgPZPrnl~q2A}v2I$1*=IPt5ba zX75AAc+1^--=d_uY@|m{a|fr&U>s%P_09+SNJDnxknV9krF-L$w?6@zIJ(rhxu@nH zqsL98+qj3Ut*kH=w!&1{3RC_Ru6~ba?c_DmyBQrVw8zxr@5zm{^9Cz-Y4O2haehmu z%v+=7B(RP9Vw7HmE56X%;tKnx_{-6jG*{IbPkox#7TmWSsBb=B)_u*uB;S78)ds%V zd`G0u?k4OU`OK5XZ1v8)apXyQY_F3??_Vh|%QN=QJ*^pW2i6O^1CHR$9dJj`Hy_E` zbqdpth)4Qz>CIWc8T4(5Ze^G*Yxqn)n&5DTkL@MHm-3OmVUjpZzg6Y2yyY=;*M`R~ z2kNeCzfKdQUHG?t#CP6a~wmyq`s;-A!TcWj{NpnXNb^2Tt|z_2q`vnzYh>h{L3zkQ;gk zyAz<(UEEvGv~{kueFFPLpS>$vZlYJXK@K~uJ8t~*LrU|9NQViF@Xx@H`Hg?&i+047 zp?!wOwN4ug?i)(y4^>`|hRW+XctdwwD-T-J`mjs8(yg?8 zn=rQFS7p966vl0#Fx1Y+lh$}pU6yzD69ZBja& zzsVtgUkdrV1DX>G_TG1ug?Pu;*^!LR!|T8^NvF!;(;>gyJ7)M%`R0vS%bTnZ&m+Ar zI==%UzhRyeKl~1UwmZ6lqw6D%$3t;!P90lLKg8cU=dZ{4Q`**t{HYw5LiZyYPmz8l z#z04UoJo9V@V$urH~2R3t>gPczS(>&d@u1$g*9p{} ztH~_m1@#5GQ$F`-c|QCQ>n;pR9tXWv_81wJueM9Zjdd-!hh>v^XI!Qrb!nsCbW`6M zWHnZ^?QUG!`ZsNeyH8`8LP=vH$>C@?al+AMd9(eW8MAQ*a`nzjwQ0#t z-DBwehh+!%pbr1S#gPlq{9Y&yjrYIrXflrGNzxGxM|*V!V(i)DQy(t=iSs)T%<`rA z#1GBzLj!yg>$Cm0DKGk#pHLo;v3H4n-SD?~VH3D`UHg=J-EX~#p|^=;ulGRcw}unJ zV`l%735&9&->06nMm;KR{r6Cx_f+zOPM}VC$xt7awnD#=z@KpLwr1gtc#|oiqh5pMMz2r^kMw9Sjtv_YyL%|O+UI3L6V-D`ZS8^_dPuZl2aPwk89fZX{uS>qXR z_q6IBc4Sv}!uoOmd$lhAs{_7#JTPa8t;8?+TlIF^7VL3#Q2u_5@D;Y=sdOpd;6=%< zzqj;4cJIaRjV^7i&fm}AZx~nE*F;;xUF6dHp;&tVmh>wAxtaf;JS{BE#!n-WL!MLZ33aaGiUxZMy&J-UI&)1HR(FzU18j!#>M?#ho0 zUNdSg|GdVnEN(?SrK^8O50evjmnUDOo7Aq&GDdPdGwF7W9f04mbj2A(JPYGiG_(vlJ$vKC0@`9doSfrhOC?NtE>`cU%9BZ#;Al@8&)~9YC-fWKIlW8T444MJf;=& z6i98!U_o>x-}FUJEikfiOFWAGYxvf<*Qx~(>rUmxZ|H9W&sZY=3(Pm;L#Gx*tNB{) zQRwgDTWz9M3nJErqnyL!UTqA;$f*UUyq*fut9|w6Do;-s`OFk;u2l<+U&{l08-(4S zjQ^_N&jQalSRjvuZ)~I3MM`gat-UHVWv< z-~J#yO5b@kwnlNE9Z>TUs}`8MyK({k|3T;taQU~14#Fy1UXIJqsDwE?F%sDSI_8?E zTD2fL%E!(C|1aQU0e&1@cTrho^XGiv|DQovLT9FX;3NyF^eob!QHf|0SPa~M4}5Qc z%d6#q{l9a#Efm`ti5Ej*5{lk8M;r>E8%a8;aVf~O7suJ@H=97T((j7J9;Je z1#rbhbz1S!dV^P@e=&ytN(|Tihik|Sjd$e!uVVC5G5m!Xz5sV#DLj=EmH)H&DgU&F z;+5!C{~~-BKf|*~3h!gkRbSJ5i~b8S_n(X5Uy9+n&(ACQr+1XR z60UcWyb?YW!}ZRQSEB1(Ca;9QDTcozhTj^)Z;#<0jp2{P@Gr;k-vL*9@eE;$AK!BH z1K^U){dUa0k*#2Z)rjUc8ZlgR$=6aNeQShqjaaU|^UFx-+PlQeg<$qFGMSni!0i2E z#*w*vY?-}eEVyuN*41RzwGG1tYCKqGymr@}nZVq2XZE5q>+^+fD7)6k7dxq4c8-l8 zvAwFS*^s!u=Y!nYu3cqAyWR*GhjJKm1YA3J=n^yRjdU9MjP)zuwR%;@9BanF%GeHa zvwhz{kGcD6c)(o*rpt=DMkKb(iva$rNy2VkDQ1+_YQ^ zLv&ff)o#G;jf|CTLxbDn1ZU6sCN}mCMe94(tlm)a)Z|OYZQ0e>sj*N~h8{G0iPcku8>bc;nwROYl_V&(otLD2ks+^j+PG-yVD7Cs? zZx%;jw&oA^zQPzWl;bvX;7Tj^TbUrmupdzzJSai4F1oUr;3|Y-6%=73{65g#GdfHD z+%Vk4WME|IuE6^0bsZaSGya*YwM+)MA|i$xd~K-|#fpW!0<5!VUO&rrH>|#SZj9p$ zwgTr=?vU&4lC3gp-3=@4e4=5M-J@t|wd>-78b>#*w&P>r8utora&WhUCj?nIJS}(= zj_4B`m~?1gzF{qWksx&44J`U5LHyb4%!|NEhF<#x85s}bTiVo^5M<0LS#!yN zA9m(P1R1~`6-1ci89_EkjtSD)92dm>vx4*i&k3@)_`D#SlqUpne^RiXyFGvn?`Hl) zAJ))9dIj4UlK?M!5AhJrgyxuo&k1Jj*hc0?wj9`$wDwvZ)E%{=>u%bHn^`Y*_yGqc z8!h@-2a}AK8a7zjWtnR}q&u>f3oe3>f(Vvm1Q!!OK^B+R2r@Zq6TFQ475q8)Ey$+u zWQq2&LU5f;H|_%a1-GO-iAMd@1-0G zzK?trWD>Yv@crbM;0N$ukOfoSMca^LkA*yM=)!-&EyQ1taB_lMnb$eIDA*1E1+jm^ znV)m!^^_U8YZUCEya^JItTW#vxQ%!U-j2V{{E&mk1o8i@!(RkeUP=5YgMxZrL2!|S z4T7&HJcloFc-rC19n3hm#=$nhH;^w5-vw;wi=v`~#{}D{M-ER?c12G)xWd6r4vqC^b3;CbAne>?;URLe(R;& zQ3o5S2YJB{GS?8i1AYopPl|%?CZ7a}_i@2~+Jjo)cK9ebfEFAip9HbLLhugClVBV9 zB$%h32r7MocT#>Fe%8S{%ChL1e^xHzTku-=B}h6NfjP=+lf%;vHapk`RC@Lb65m6D z{lr_4^qITlh}UW1ZL|-9#J85VM)sEoV!uOhh^0%vsZgk(*%=euE= zvWV=J-T!?9`$mzyXJYzId~5HOyjX1BD&+er(UHN`S$olwNA=2Nt^dJGY`*b@12%; zI#IBDag{mbYVfmr_^FxhE6|rBPm;2CgCM&yDY;YauSvG#6)CrO=k6Y0sAG6Z*St8* zeth~@?Vh~$?U#Tr`C@sGJ_UZ!#6u_jUcTO5uPItw@(Oylx1sPLJhXCUM)oecb&{(0 zv^O)n8`qv+`}ArTHm$tw#2_!(M~C;~neGdzNZmVS?lUQ{e@^_BuMz%>z6l;_AK%Mm z8MpYOyc2yV``b!yG@hMWNSfuIOgDRvUOsQL<8uOeVB~bpG!&38%1BP6W19A@X2sA` zGb@ncTY+CMm!CP8CWfZuadF!3r%Q%gdExUxX)|TRg*Q$4Nd)$jb)RPW$>x>pYG1t; zo+v%?gT4QnXx#Eb>5-hm2A3Ya1wGFG_W0Lq-YH*pf$#c!Id2OOKQ&Xp%;%@_QL;PA zN6BgU{PKB7`JSDJ1)GOWF1@lJgAa#iB- zm!K!>_RisN4fY~e)*ezkU0G8YdMDcRS8_BRG@^PZp$)wRU58GgtI?WUX`VGo1JQ)m zI&dTU9F6NPbU(V_puR`Z&r`qmq18?#7%iMf#wL+3R+1l=wwSV%on}~4lPD0!Ec@US z=y7xrokM5D7oAHePO7YkkMvq<3%{Aj&6b0qt$bQ((w=-^uhg!+&gCg>TU9jiXjL-* zXq9+r?RHGkwLC3cd-vYG>XvU88IqYc#keoxe*DoYmC=%%Eb&67)c7IyMqU6J0OY#9 zu6#d_{7JGnK2t;bI16zm$$dl@<%^TZ=A2Rfi7t1xJ(N5+?O}oVWYM^}MzTb_u^ttX zCC{rL$WGrG#IM!G@13U28K22iKYChx3;A&~X_Q$QXNGCt6mPw3n*6;9Gre)l_`%2> zRYCVWp?|6opAyI=cr*HVBezuIC-s@>R!tZ-eo@z~JX#{kOwk@8|F(DLYMDF##WN#2 zk(2zAmtDKXl#xhjr+rm_qki%?RF;k?H{(ph=w4}c=WG#Ywfj;$t~)ts9-aP`&?cc;xe!>4C}L4W=BE=i|P-Z=C)$W6#{nHQnLt ztuyv8LpC>=Mn0FYlyAOFiO&Zp&+)pt9W&);HEp0N7uf5?OtLwlTgIhNvm!ISmheQA z?5DR+JwZ-xc3oJBnfeBq8++;Ol*Sz^Fc1A*M7({PuY{(uQsvT|jNF|}l=*5SAAC1u z)uua{zNd<2*w|-mR~4m-mC4lIRlbaBY@s|**iTTd^d|jdKvP%7i<1Xc4pmq9{w0~G z8FLUn<{gyV79B^}f1Cq|K__vvP+TT`7ToOEF(f%|B@K>Y3{+RAS;diMEw>RD}M^T6{=`BJ*KELLY~cvoF@?;l(^w(j}zG`sF`)~qJVe3rUm z$36)M4^w{*Q)m2`c7pn)wCSEN#q|Kt$8{t%yG@Wx`flt;N9nUtssm4!?5h2!g^%)! zHikFUi+XGPjL#31Maf)C&Ts7dwl71@c`-7XhG!Rgce|eq|7F^SFQC)t3EBi{?e#u} zroKgA6%8nTAK(A4+YqHS&-tl~C@bp!1rxvpD&yI4#-s)MfQ_1mKZWmb9pY@?Y^6612?;G$+UO4Z}sl*mQ}h$c zgX*YoGOGK|_pYM8e39~($QPy-L=T+wboD0-(uI?i`3G3eDNZiIy~(@$Uw%(@=a+G# zHnI_WrX5y(asvj3>49hshj9fk)w6;}i<4iZUsa#glCu3(Eoqm3muucY-D>jw6XwU1C%NLZ`W>HUA0O)Z;)3&g zCs6)=$@wXMDh%1}hNd+jBj25Rj5g=N)4DTNV~4g&o|mUI;25 zZMenh6;4Lq+Y#URzW6-xQMmNwXC85~(J#2MgyQDYD}VkPJ15+DkK!^jEpO{zdH6>da%zj>a%b*XN+0bM4nz*M7;5;UMkLV}7Cd=^WWn z=<~(zKK$0WNon`zfqeXY+LgCs*z08ymqY75E#2F-2Ax5_qauoKMBjkcUh%8ZdGuy< z#%am3Nyh9L@b$ohz#>{QkY@o z*8MrrD!x^hO+AjrU&T1(V#X;K`+h`FG_7x_&tp76`{LF`Gt3RLzKq-RKE&4aJ-!d} z?UVfYXO(s8lKMBlX8YBDwSA!a58dypv4W=^Ftl?2rnWwt_x%{{M~- z`gVhxOD}S?h%%t^5z)r}6lVJ}>Zd!V|Iwt~#h-ahR%t6Tu9~16a(D42;p3md?rqZv z?nJHxPw@Q}+Lxrvi>!CKK904Any8>YZqxMB#@?ps{jw*sH1M68 zIp!9dGxyGPXYZX++|_1XE51);r`~{H`^>n)u8FXHT@$4=_ugRE4K#KVZ_T(aZRh0g zQuwsvWxjMwK2AF>yfjCH7r!pQBk>|T{a4Bx(nkC%ne$vqoGV#tsk!P+MtEO$;YBWQsBeoEZ>94Q`Q!4Bap2-;oU%dv(|YLH|3w*P+@ikprTESr&L&MC zmwyH8hvx3zksp+0jU!cVlxEGWniN$VWSk3RY3c({#l6c^QvczrSD zZvAhbzEor1343nNm&Fmr^dq$EelFafvg55@%zFd#oHO_9T8v96Kn^JV$9yjbO8-~Bn}E`4Q-9v@D?6=w7c|CN174A% zjm?zX*j2{PEz^~z442K{4qg?N@m;JVBmZiYV%)cDo2J>1 zroGad6y?FSYg&hj@^W`;&<5T*ZPuk^uKJiGUx*`P`!o9}A5mI)-afrlZtJ+KgS2TJ zm~`f^lR0HXZP*ojtF0=>yGm#PU|iPrH6P{ zCRl%uSclixYC)km`Pbx~+BW8jHOYe3(TE>uR2;c0hj!%FX~s>IHSf=R&3w+RLz6z* z58Q8>=5C#m9n~wnNXS2aFrVvzBjPuP8Qri^m(LSzm##w!Tm%h@ZY~pDCWmKf#wo+YtTGLv_d z33In9prmAW&e_wql;Dfb%osScMc#rl6q<^eiIk3+32k;}iU)IDQ@3G>QA+Po!t;0z z+<%L9BB1Sx(Img;{bc?&%iR)aUBlc;Inp;cklMyU!k%u`8bNSviIONkQ7Q{Hho93Px zUHPWrD~E5Onxa~Ej0_G8ZXet+oNB*|L!8@F_L6EusjNM$8T$-Ot{kq>w|nxoCfYE# zW2A53_EhU2he!ufYr7H7?c3JZGlb*0@w4K+?$&E0mX~ztvGu0Z7J)aWR=hoxCd~QV zl|6QkF^5kJFWK5V*teCFlJmJ;@+L<$xi!EM*}f5#OBKDBwBI$nwtLu>-r=$4BgjwU zAigp6jtlT+>&U2&m?{$JRqyx^iQINq=hiKy{GJw5{Tk)W7Gu5REk2Iy=aiCpdq{Su+!o|GOw+583Qx z3U9)W_{*F&YDRuBNr&qBEm>=;5+=RN16=%R4RG;uO@NEu5#XXrR@*AepY8w`y*I$+ zek8y}9}RHP#{yjRT>&ooo&XnpZ-9%wKfpyl5a6O83UJX62l#I~TzAoXeyw3(X;mUR z$w$@?PT<~OgD(nj`KR}>t+M=(Oti;E*ZbHWS9~NZ?Qzlf1-R%30$lWi0WSLC02lp8 zfQv2}Y^!X39}jTRpAT@kKM~-fpAK-*CChDM#Z~t2A3?A$HlJ$L41_{6heAdC88U! zzdx{_0Z#|G-dWM!uvL~nZGn6F_X3k7tFRm>ouwANtQMI24>f;Tf=)p1!bvW`KLWlh zz;}aB1UR21rL)+x{bzs?DBb%#n=WpYRb}j?x9$NCRV6nN>%KOxlCYYe|BhTj&$yTF&zJ}E4nh20*be-xbc2h*or z48QLMS9|U4KN7QF1m6_UbzaLWx%oP{+H3Fr8!@`hR*weszXn%%QJ<>t|0lTGYwuoy zDtiO`Rp4rmJ^l5ivTMz*kKt=#_$}Z&DF)vCc5sF5!@nC`?W?DM27F(De+^vir>Fk` z_>lnr4!D%}?<~05OK<=C;3opSjW;J^s;o#A3r6#osaZbD<(*LOns?2 zF}~EATxVaHipO=SJz;LoklRz`;W=~52NU_F_7u9YUpm1)EA9ThfzZ%RU$^#lj_4Zy z^4f?uF>|D{OO8Ef?^`x(k9Ir1W}Rl9H7g$( z>|D7nTDh)M?>2pSaHw0~7>1T)q(jTI4|In%?D1->nNzvuy#+VFe_|8C8stK0gH#ZR;!c~u-u+Y z_B`F*)!#q3HL{5=*913vo~JAXvGLRJ3tRSan{6}Xb2-S_m1wxkk>LVD<0epG2AmU%LotqIMLqIneQ6uou4w) zGd#FsXloC3d&D=nlu9bNVIZX-jJ-LD&ODCxT4(*Ve|{P8dExzxpB=8TwD5XhC4D}7 z&E|}FgCOg6DTnt1b=LG*!2vrT)>+e9`V5^Z)ma14R|wuof8xx0ow?2<$XxRT+0%Gl z(3}Ow{c`$j;TlWG-X1~1IUq3?c<(nsnHxz5ZVbMUwzLTAqk;{G|oMex<(>Qi-w{G=fM zof2ecMt!#Y(OGo)drlC4UJ%5e^N#+a!&wF~{w4)+p9Lx(y9MFPs33gV@9@J8KP`y8 z^UgfYx`NK{?h?d&pMw()9v5VR>xR3l1B)+x8N$J#Cbislk z@!sR$0SAvb_`D$eJ1YqPv~wl?)eGXzoGphhdExgmE*9KH`4RjS`6LJ*Qx^f@W0N5E zn+4%xo8TS9Rgn1g3lgt`g4EmNg19^HU~R3n*CYs^TLrPV1}J`aIJil088SN#?{zRQ zcrE;O_!v<9-381&03U?I-@OjsFC6|JaQGqN@b|F8pAnAxW5UO&FT!#Eyu(ik$Ng!C zzaSj<=N)d&l0QhgNlU|Hj&+P7r=4>#TXJg9V`Mo3q}JP>*E(S<1o1 z7B)G!MsOdz5PT9oJGe{mPSPcK2kVo9k26LWB>Z!N*_hG0AOKoEYeaIn?EHG&<~3&D+~Tksaj zwIKF4JJ{`DuORmO1viq9g4iDw#Qsh}=mo)zv?GGh#|5G95rn>1a3k%fAoTr$(5qif zTE0NM9o#KQejOAfzm5rhn*QxI7VZ~>epnFt;l)78-LnoRf7ar9LsaHkXR5pn{srBn8211)I5a@=oz%2vUmQO?=Bg zA8tSXJrC}c_iq&jp??SPPkAZ-7*dq{+r)S1Un>mFW9F6juLFb7zsx%`*C z-X2w>#5>X6iM=m+OF(Z=kfC)+oxl! z>@Q<@sk<1iz4qFd|E?DE zc4Q_Q=<=DFCvj)bbfoZ6>HKleS4mb^?@v@9<78xSk!4-UD6i?^r)HWy!CN=uyuVg> z=wy^Z)~xtINmez9%oM$nxp$nV@@cu1Y@}qwk~!TqQ9jFCZS3mJ0c20{TXuCOlh%2< z3NzACIyZ$3m^pJ{;(|<6y_3h6z3}X{X6-e;;CO-Wr@(9#{K-qV6WspT{e^7nh8W|Xs zF#BL0Q>%Uzh%Ya~<)7SIW!Zme1uF+2+10bUp}Ob*h#(9{XrhRTI{wX%}Dh2m3IRi^F^BRSvrM%_s+H_H{@BIJ(n9_mx?gObLkJvdaeoedo@bNi+L>>` zKU`5pel0-l9>@<{1$NxfjimuMX76tZ6T5nbhFH}$*O&T?vuV0<<@)t)t6SD7>G7r9 zM#@6N6}C(?fT;b`dTpB^RZxBAWv{pWYVHlTkG<@TwjC2bDmnv8wOhh>38$e{J0*M{ zu;ER%ZZ%wO$L0-;3D3zqO?yh26V&=}!&1tpU=w|~APw56;I+(q1!;`TIx)D~HO2F! zAn}wOmDWX13o7sA%A809cv;xQUx?#$huLo zC!Tuc?ZxL$w_+(7rMK_&y_ewH(4?6 z=1ZIdi#W%^c-Xv6YUeGtPF~5JD7@>XnfpJIS)I?}Tz{cBnZmy2NmT99IYWwGjfuar zN3&t>F48+~@>gf7XbH@miK`A4*N~p5j&qRAMNGJy6>OBhX@%21O_r77qOrXX=3$gTdTJ_Y9c(ywVSyj8c2u`RcvqeDyBoOuDxyK4+5umJj9m z+k0F%o3XDjT3i_Z9JhC)Jo0f{<=iykM)pE?@?UOrW@tZ!WG`B6zjPL@x=x<_Nb05^ z!PTg9qqazGw(3U?t%|GqRzUATt4=AthtWy&ar6mv75Xe%4z*@h3shf39-2MMG~a4> zGr%nR2Pn{z%3-EGOn%V_e+9I{-31&+E8M-n189Xi0X&RWxX%EOqZO{kUMJBCSACe| ze#5Zl&L2(f--`7gI)7~KyS;Cut3TD=cl$us$c~{N>~~wU&?s8RDVYsD`5oPTT{D>w&jDvisQzC9m74{ zoK@&CF8QKfD2x{T8txZ}tY5~+`iJRk|11qZjs2heIY06xUHzO?_{n&yi@qmNcD`R< z>Vy;8@(R?#h<3kpWoU-Qk6*Et(Iftvqr30!FGp*3i)gg=0mUA0-V|CA>J zMgP?p{<|^!TQU6GG5mkTaDpf)`5&K8FL89W^_st42d;0Azcc3E%wJtI$^12#shUZs z6{1rs*12Q2>-L^boeb>cak~DVXaI>mnw!u_FP)g#)5^6S?)4Bmn=0exbq9uJbEd0K zqz{prvgJ9BC2kZ<4(FAZb92R5JS4fJ;b2VgZJvo?+@YDTGL|ecK|C86R@&#p5C84D zW&;%^$9KabJI`xa97RRpOkxfRQfZzOWP$p;gX&Wom^U>GVo!Z$1CyhoV9NH74VT+~ zQ0AK739qKU3Rk_Yq)O<#h30(?f>eQ&AOpBYM_=Ng`s|8EySG%qd{Fhag85ssAQdU& z=$i$h=LDgvZi=qHTKk5^AE3&k@OlSHqQO%R8vmg;IoyN;uCgh283$V(Y;!Q{;3fx6 ze6X($L+*MV-05J!!CemSc5sh_dmSt~xZlBp4o*0D*uf(XKI7mq2cLEDIR^nROOaKk z8f#1=B|e06&!jPp%sYr`!7>ileDVO_FE!uIk-wp$m>3nG?_S8B;v+X2mr2Q9-hP^Y zAHOtM7(czakiqPw=DT{kV0BBLMlmVn-# zU=VHd#)!^NsSl&Nnfg@+6i<9!@M+|wHh53K{U^;5+lAZwc46wJ=DW+^q8r?$UV6TJ zUWGQ8@4k|=DS97RdvDsKOBC!~3z~aYX1N2D`&YQr!Opev*{OFi-%BvRq`Bjop^fHF zxqotVs4Vw6jWF*@q-Ng(wSv2zsxhlze&z3RX76sgD#M*+_`M*q{wE!*!@lB|F@o%iK1Zc4^76 zk4O5x%iK=>rMWY#mb7|5xF?0XO>G#}+z;d9R-1crhI=N?yy(*0@8*q4cT1|g517R7 zW7s?6?5zpx4F~pgSBTaHLf$OE?Sc$CSDgHH{K!x+(&%dRLbTdVwY91P#8-3slD2ud zVM=+K&OSLqS?A6U(oGtbx4OT^q>+0xXcudixciYlD0}HYpUE(%-@>=}ZS3JzcVf_% z%(`2Ny7+DFxyrrrYC+1~Q{?=J6c%pIaX*^!*WKCsx2&>G--vm&xf=w2MH?n{kD9`q zm9LbwL5}H|II!l>FS@y#hdpA#t>*1@<%`MN{5>;OX%}DeKa78Mo$d*_*@j6x88%t)W*}C zAg>CQH#`##dGI%D#L@Tyq{`z42$%3r29{UH9N^UB9t zr&YHXnfvA2r@6DYrrv$)jvmj4x9C11_|O9%c=!Iy2FC}jBYA#*f^d|NugKW6JZ|G^ z(!Rsl*E*8&=5}W{UM6(^&jQ^0vQQD(wA_tfr)mE)=oDJxH1%uGQ+Ks)vI4EWfKlpi z*41TGZwsssQg18Chf4XIqg}|__*KK}XuLSdGX7`A$P4A2!lnG%@&}zc-r|1R%Z2IZ zW^{-4!f0$N$~;1O9Xpvwe~bLRlyXS>ojy0q?0>yittPIMf~$}8~9`Hr%&3jYxH)#=P`CmJg%x6tEk{UwBMn;=`Nt1Qs(CF}ob4ULapFb9t?N6(3F8Ks%{+TKQW|zRhqyZ9I>;C+U9Wh4Qls zyXps($L|TsgYrZ7$EJh$&dQGr`B5lV(q`4@-gz_UA}^kW_Y-LKk;(%zw#mWwamrBM z#gV>ZrP|LFYuS_^-xsNk(YktRj6qv+WzZMFqf%ew`yq`j6#u9&yDwUVU0;rsx4z%8 z?du+Mf4kb;1EjCiz7|~kROhoQ?+ zpIkjkrEOcei+beSO4Cjg_8$>u5x#0%UMK$QtqbC;woB>K7(;jJnQ}lsP8u#{3a~h> zvPXVaIsTe@ojPgj7I|?s=Dz$SviFqaz}U~2Y}7qq_^rNB{;I7f&ye+c^l!9(V#1<5 zP~JuK2^EZE^d?J``Lv}GANF8yZ}&nZ=M@$0xJYhmoWBv{K;={9<28{rZ@0*ddnuoO zR{Vxv{!Y0>@a^L+yPnR<=k)UQ-Iovs?%Jmt+;^Ss#5&4-^zbaov`;0EJ~#s}*;gsw zeM>Q3tbL(6-LLH8rMNayRy3Yco9)xCFuh&b@!u)(XVFpaFg$q`?ek{y)&}zs`c3-= zlFF68|5M{Nz2l;|Cr>_k>Qc&ABjrHtsxJ=@Q6BcBY~QJHJTH>xo;#dg!I~Z=(VJAQC-1|>*~4Z zU-z8SPe$Sye3+>|`sBtB5&Jrl`YMeln>&Ipl=iW*woZ9 z?eYDX?(2g1)}`;B@^P*v&Off-|F7MXgdeKr>X-s@a?!Xk|TUHIYC32ZRNHp z9anDRyLI&jBYUXDL47o(ybF+@G&#e6-z|pH`T{9sP2wMZAm~-)EUMNi!j%f)NmdF% zl`!i$GC4v$tib&hd>8q)DiOWje;T;Jtg)m@W(&;z1O1~@3ylBr%c?|#n7;8_by5D` z1Uw4eujp~+i{`FmkKY5XJ;%c&#mBFM&c~`m^avjsA6R9>9}DP8&k8yWs}j)@ zd}vH()dC~$lkq5f8lUGo8{ogl_nH6~|27By$^YZ3v_{!GT}}qL=*=~bO#0|sh#aU8{nerjG0x|{m}pyz5b_W)AgRIRW`qm1-ODf9^l@lp!SU9Us+W} zUvY@~49QR)2I|}6j%i<|QHhbpPYwJx+Jh^`=wFWEUyb3q)5RbJ+& zf$Lr3jH7=*_MKAvw}a;c`X|6Az#E{+zbC-e9%LN;6>z;z?D5|N*O^j}Yd_9)=Z#%L zZtof362+~ZTz1kkFf37xU|-YTBN7eBg?(ziXR8(GD4UE7Nl?My{k>hoy|e7ajjiSG zK?T=oyp53NbuzsE1{HHB$@MPO?L8yCgWaM3&Sd?{cXf`8jx0l(;brbq;$rox4tvpq z*|=Q4s$;d^d$q=^Hr$r&SZ}}m-f3^oDBGmVw(Qtuw=ie9@^?CPuHMwKdR_b4_3Jvf z4)y4Qge`Y<5}E;++$idca$8FiwmaH!u<~mMh+&GJafr(|_92;c=Yr)C* z5+UQ!0GCrbBQCHR?&<9B8=iHmM{Hv_KbQ|#WCWijzbr52P2{?@tu__Ls@VWm))4Hn z;nLL=?ye9Q4^t|P%^@C+S zx<-=O+8e&ZxTVY+>E=ajwM{8(-b-Cf%i=&6lagxOHx7; zXTg_Jjftzj&d6G@+3k(2 zjhLCQtR+h$WXGuYS$tNWMy4oAcwkPVOqK^ZB}?VTA@oQ*F`l`w6v)kaI!drXi)AnDEtUc#D|qxU*`zk_)PM;sh=Q1^PtpMoI%6oGmV{;1%4*t27SMR=1SxVbxI z9sRIy;u$eMQM?)jp=-WT`6~DU%&lj>D*V-q;~m~6oba-Ogx4X+qSq!tI_^=R!rLo| ze4I+LVa=7Ln3h!B+Vgz!zGlivlwcFL1r2YeG;#rQ&SBjr-? z-K02Rv6QAY#6WT3F5-i((0m$Ik$$W3T31@4uPUm637RFrXq=Sf(K zZ^f?)?c>+VxBMfkj5eJ^|G+9%L{TQh5?i&#_Mg;`>pbyLjr_MYBg zi*goEf#<=s*CBc%xZYu_C|X?a=xvhy3A+}pcl_*n^!q07V6Q;y`*Lf{SeMnlq`vpF zr$RNW`4aGE*4G!Ud}^j9#k#HAo7Nh>e?Ly|!&ap3XaC~S8NKUk-tbHj53^?e*vv`x z>&$vHH0>oO)8+H%{yjwA%9=jX^3?C+|Ix$PKfIJUXV~*f@s=OyQh0K!xD}xl+2mPcO(nbh4Ik>&NZ;GZf)75&I78rA+EPJXO=2ch}qU!sX{0XC@wK9XgA@ z3d5Y8=ba~gYk!UweDY23%f}bo?EiA+!R)8YFWC*l)4qz#_4co5f5YB}-a8bp^j=%Z z4fhK8Z^0$bzR#D$!~;`N^uEbQIWN-8p2Io48xGH9*Yj0x3@U#b@K<56*Ly~1LS#pL zs~@-KdaK^=E10-zou7QkVK>Kmx%lnfi0|@?^ZjS!{@Xx}TMFnAw8k=<(URe+LqA8Q z(fFu{K8W7qwAN?7j4n{vvrd~bUSLmP;_j(^#iwTWjiU+Q?CTS**)Pb#ck;ES$o~Df z%1!w_N1rF!=Tcr>O5P~0)hWtznl~GjXSwoQk5S#@Go}5-x+lxu$Zp6ys%xLR2)E+N zW%$DzU1!2QE44M!d(cUErF|vBqkMrA@Bh%Zx&NcX`!Un2yzZtgTT%DmOhv}llS4Py zy1SV?jndhvHNeL!*w-U3l#en~+jci*yRo~OJd4;*TSEP=Oh5cRwPT~0*Bktylgq*T zou8%+bl(}wH@ojPzB}A^mhU$Atu~eNb4GjklIwZ{ZGz%aMHw=2VbAruTn%o%i`l7X z`HnL8&#Z~4bKVZ^*Kc92x1SScuj#>=6m+?f89nFZFC?O;E3xm*tF!Da<|uo}2O{5y zJc0HaJEqs;kHTM0noXGa{g<>Qk|9xhuD6mB$ds&b{)<=YCzxxL;`lbwkbmn_GgW!p z52T@2kw$-hjhZ-}S308mXLKHIk@t&pY1|?HwAw;%rngh|KC|{wRaZ=$>atVF5!49J z1o31lwm6yA`+x1zi}Bys&D#CuWb~Pt5>E;L65_a@_SvUV?-X}?H_*kKBxa07w%K0;%ow~=TE1jLH z%oHbE@t3g={cD*1v6;<*y$l;m<|5^vJk1uKoPmF|KTp8xtlrc` zMv-zhVfU-6Gmp=_nl}j-BZHGnKQM=Px+lf+eJyS!N8tM#$q~@b894%PCOHCAK6B;0 zTZP+%Tjh)1u=V~SYhlbJE9%V-Q!b*6;@UCIGz1yO$1QClJH@cxmJ|GAYQkAec$uNy zCw+3Sx3<-<8o#K2s&ne2-W0fFJZ#>~wf0q~IwqAy^$p1QeO=#vyuv$(#$Ux>WjYz% zXUka5%4o_DD|0bBt-nSYYc4)H(|A2&6Y?end>!!`ii<_E)dYrd?@J{WNFT-Jb^fi~(=dZP4 zs@)q1()tYMN!llymwQ}Z?lF0J@Y1Jd4nmKI_p1Rvzew1>?ZOxf!e|Y`_%il=`}&x( zyBWLUyZ8{6QKjMY*niO3TYdq1zP*?I$FP5&vtR4tAiu+Oo@btOA-U{g#UN{_JcE8Ta(HId(k2TbNUcmTH)8#v9e9$4?)||1z;3kGSeHAk_1Q6WKe`va40}z$2DDkU03KtZ zVdJL_3n)Dj<3Utb8EtI@KINC>+*4)j{+cal; z8=5hqT{8#1sHnu|0+NF|48Nn?!!w7VDGxM3r* zuly@=uFfyXyf(=%+{zzshw#rFBwhQ_yU<#Q>P2^>)96NYsOsQ@6xm^vAmcrw95CP7 zSCH~%vbWbGhGPFFycy7+?brOd1M>dBp4=;cq`qW<`Iou&9zrFv=VE4}pLS;O$SB!U z{!8h*q$n3sEC>HcN?vM>P0D#?)--z|c-oQ}tq{<(Mi9CaKSDL?=m(sk_w$G|mvJ@v zgmWjpo|0jx2w>RZyb-x7+kQjJy%)KW)A^}&gNVZQ*heR!uOGU-YoPBV<{kuV5x1DH z+p&F1&k(Ourofx{TQabtzyFQ%yxVD45w~JZlPR{*3dy4tSfjb5U zKRl4Sc?b9O>v>9fj(K(v>vw_tu)6{Kx~>}>x}9=tESKL-P`D&A;s$~tn>Ow%a1l`W zqT{fXNZ|v92R4b~)hZ_+D4Onu2yx;k_8FcGmZL7CXx;jbwX0TdSk3l_^K)QO{%veu zy}{DF`B2X`%!!wtIgGOF+t#kS?dFXwZEM%vxSllKDUNhUynmV>-Z9jNRlb!X8&iu9 zj&L1?bL-q0Uf>XAyl`)R5~q%}H?CdP(y`hEwRUy;Po8Y!(BPa`90w`!p|(^v0NR`S^f3-%xu zMk`A+eJnKckeQO%LUSjK+8C=AMyzj}_SWOfPlLUWh0*)Kwf1L~z2i}7vnmmF@gdx{ zKQ_IRQS$Wde5jAH%DUel&{Gg50$lt&6yTyC4RFz)32@Q%W`$J=v$ykHfTtjw3~;$W z72u+u3vki3k8G7qPq~Az{wGTrX6bbSF8B2To&rw=xaf@mE_yn^Mc4kdRo4GZfQ#N5 z;3@EIfQ#M{;G*XOT=eb$7d;=~qK^c)=!F0meJsF59}jTR_XN1;#Q+z5e}IcV5#XX9 z3UJYn2Ds?Y1i0wW2Ds?Y1-RN;;d;Np*T?rI-6Ai%0n7mE22y*DK+Y-}OrP6*2sp7``%w>rFo8etQi6XbgWS zhL_uZ8~s=?W6#n1E@Jc^{gC=@Cc##i%t3F%-uJ-Vh!*2jT&$r5u?nqh{ zbFViUy^>D>Bdgbp`|N#%>7+J2_;&mYQ3Z%!`C&sbTY2 z;dQcT9w{upySOxM9%|I}Lxdp$2c!#HA((_r#)kT(R^V zqT*=cv+Vlvl*L~`T%N0Vli9PA3z&9wZ;4G~kpA2w0^(%eEJ6zR)9z65mC{)kxj0T)V#0y}dZ+ZAC-dF*5Amr!(@ieapJ6c(awZ z4klA^sbXW@a>B%%`=E3K^E@#RlbrpftF=Q}^FUHRD0}94L?n>Jv=!3PV17~vN^tB(;P;{%e>EdThVxX%i8v}E8A8Ff!cVi z>sWo$>J8Sn3tf(8tAVxCc~jf^l`Uu<^^y7kbWX}pR572tJWR_0|;@?TZOX(j43Ad5)hvKPmlK9mjD1Hc% zo_;~%tvS79i1!KNt|*9q2Z5I{$=5h1H(=N3FU#9Gd+tu=I-)ZPdscMt6T){84~L%> zj(d%BM1N5@?lsPlf3-lluXDKe1mr&DaP1Swep>iPNr!OkXB^%p9Q#>^Zx&8?IfwTP z$9-OSfwd0dxGy+-w{YB#JA9vT+!q~wP&n=^bJu)Iqs#5Zp_762!b! z@IEJd{we%*=7$A8O+6IE-En7c5p_fUHVG2H6@t6SFG2jufWCoXeWS`Ez}dimBe3g73mjj zCEo>ClRttt!cW1Q$R|PCuj9bQr1Lq4pK$P$gQp!lE4YUCL~t$f6?_-v$I)MObWIpU zPYObpthBkZ@ZC33rX7w>g*< z#9oIW_BIJ(Z?mK49KGAodmX*s(esWz;^?D}zSGeQjy~q-yBvMo(f2sG*TH=b9ssJ{ zI|x)e_Z(3D#7V(B;J08O<^5u7o(EnAU29S5FGdCFKXwXI)(e8`Dc6p!cR4GwtVIak zOgkpH!OH4abdoQ02^B@!DM9c?!Oyc6;Bd|FDu@@XGxRpWqFu|D{haVG*tHSiBf{Tr z_dSL07XC%rbwTj`f(6Q{!w(B$c+BC)1@Z5M!%qs*|D1F93xWguF)paMllTh0Dl%uW zD&A@L04mz;Ia-Bh(gW_(laYIHSYqOnb9k?VqYmy8#Qh$Jn|Oo2T=iNk619kK!6=2l z2i|*?bRRzpBpaiQ!$)6l+kBb><6icv(N{X0ZrrG2fnPFESW<6B%l=E*Q+(tmv{zoQ zr2ayaN~6R0t+|>p8fJ=L723ydHQ%9s=c)4tF!Rd$*MdRlU+NlLhUDJ@wD)fl-|}x6 zTB>*{ZAXRu*1znDPE{~a@sv8GvS2^WzwAio9W;jgoxonGWJjuih9|Oalr7y?-ZRu0ifY}LlzteQh^VF#oVYBm zjvh6#g$ZP3s<~GuLY}2Mb@zWZ(Z*a*5~e`_0o6$nQ%=Uo_)Bx@EEv`BCAosB>lo`L$_Ua>Qg)O-%;5WaK-| z8yoJ84CI=T3*9qIMwoX&h(Gcj$gd@cxAi|e%~=HQfU<9EARAqi$lW{j-;m|-bmBW1 zMW32Mj(_o=V6M0*t_jj{9Q+9EJBXem&w{La8}cjl$eSdQGZRlFiz4}I$(M0|qmfNX zfu9Ah$XL2$&Lv+KO;|Z3$!R|aF1O*Co1cd-k{L|mui{#VOke3O#T;_3dByt{bAMx$ z)m@Gor+2`w`lHC5p2Qupm=)>WQ){xidkPs;{Hjk~Y5c2A;g)b;iHwWuA(6^Ztv{9pMM} zhp~h!w>BM;gB49?v^9(OUTo#Z6lQf=X=tCOyw%hfo}4K_lkAwzf%rHo4`jFhVa#(+ z%=CW#shQq8NlUgkt+-bdc1=mfNM)GnZpx5&hwPi-qhzCXZ`m5wmJ4HHk!jKc3t)O9bP^(F8ZX&BF;HD{KL znda87t^A~E=hfD0?yq^jfB-UA#?{?=R%_V!!tVPraMb1Ka-|D z6^fG#lWHPYK0m~FvhInQG-dt>WwgHT%9+EZa=B}&HhS>1;_7)Qeurg$95*uCjT>Jk zOg{kE6S^mO^<%T0A)uLD0i@NYhQx*OK}*Nna93)rj8%igUs+0y-GKZrZWXrbT=ENZ>zv|Nm34J)oH|GORM{=pxmVdbhk14SRVGfVb7})?>nyEY z=Wf$Ewo;w*<=WP{+f1Efcu=Ey<;z2Tkj{S0`&(3g0dO%bQobb6kI}evGp#3n>RC zoI-Z$U#JV_n>aF-T>MqiqQ0=smCcB;*E_Kzv+zt!(V6-FL23Ge>J@Uc8XwtobWHv_ z;|rzRo0;>yDbm5Xi@tSI{`xd?cktrsJashvmopja=@9<;x*@yjbB8fwL_clL%ch)L zXJ0bDYMY;BoRmu0bE7&pW&Phc4RaVnBA=btxs6+=uP41eY@Iv%MdSCz=|sL*nambm zmCO~YqI_ZI52z!?9(l!_f%CPGmwA}WPLW3Q7Te}4tQ@iIYMfb5xhwHH_t=cm8gb{j z=OG|O_OyHmx(dujW9pO~o2=$>T5A9FU3u@Pg(nr)N=jjPVlPQMObe6FrI{dst* zvYDE&{X27lGycBvYtRJeWd4c7f;3U6~t9M(>vPYtLN#b zz?B!Av6=dZ7j3=z0RG9%pNht~Buf8zSPRvG+~Gt;?QZ>F|R_QLl2%g)T7>5|(6n2ld*+XFw|k~!n%#cG3V zse6~WxT8|jQi`UQ-+W9jV!;`j51c%`DC9KeK*kdm+Xz(bDUB3UgJ)8B4`|XD{f2a zBkjy3zwL3g{r%nL7dgR%fT=mtQCGZFSf-`@Z6c zYfI#BF;zap^f&N9=}FXms`Q?P`q0mkU%t+(t&G?C1>-hO3y9nE_#xhSzU&oFypnbI zTR-8!0RE}%lX-Pu-ix{J@RoUfV7>)&<&n(m0`tw7Gxj}GnJZ3y9jG+>c2Ioc>};t` zdv=~SO?*6r9dnk5y5`?NeGSvUC!kuM&!mLSL=nd4*;jh|9_2GFJ zw)|}g{Cx~NuYh;-k7rUz=CbHT=vs6Vtv%UYXzd}ZO+3#yTjyy`pbw%)&_`(pIpZJg z2ku4hboz13a(tiH+8k{LUNE+NjJ2iqX?-Vhym<@1&a*a`04DSH-VxQ$YR00hPuHlu z(ilU0s(jnl8AakUst32kzI`inQc!B=T4BX%O3Vi>uBHQ zu6AQa9Av*bchAgs;DPr~IO}U?RM#2Lo{{V!?D#)c4+k#x!w;!Xq4g>M#sV{VV%Ehq zzmbwXf;Do$T1SwQncR^TC0SmXRiW$A6V6^3*W=FYrQ*`;>^+D-J}yg~nf6GejK3nH z?njGk;^WLDQ~9H)+kX^C&W-xyCbZ(x3~WX7i#qu0Mk`7qz+Gs?bsz8mT0A=hl-$HC z_&x^G&DL$7{M zw&S*U$hqw48QHbN!#g;1RU@2}T{Xt?hMunB!GU3!>3P`HMjaAcg-oJ*l-8YnGPG4K zafok_) zv$nl`qolhKZ0bPpY3(`|{JOccG(Xs99txJ-F48T#gcI0n7v73h!xJvE&B}@LEA*@U z-MOyiJ*&;V_E!fCQF^bACEmZkyTiT1t2c*N4Q|g54Q}rnhKoFS8KRN$F(8A_LZg;# z+xq(L+sLU^y4T-w?VIT{YWSM>}Jn-hhp_1jYGv16ZEj<$O9 z_1gkd_*5=#sWpTB_(r~$&5TiYsP994{XMt$q;BmS>Fpls`tX1Ra;;g}C~AqNttFPW zpSU~z|9@}}?jmJKNtN&YSKFv_H|%?vcJf7sUk+?a@Mo00SKjwMY9U3>#OSR7-UwZ| z`S)Gszk*0Z=e=N*Mc>aOy)mFS8~oS=SuA60{b`dt#x~=>^Zt-k7EC3zFPzQ z7QWRNSY^-Ai5DIhza%qeRl)cuuPBiwbclc%C&+xs%;n&DZ^b&^yN=oP0E-zvF zSP-q2eU$ZoL8LcfPlGQ)>l|IEbk1$I`-LHyF{g5)tmZrCw#|hnTN<0{-6pSu-xtF_ z8^fQD;lB~XJ4XNe82$rr^$!YL=X`#;G*Gr?KL;*;tBu#WH_ZjSlAG&dcqWFo z$M8F1xZa^q`{=`eBt|cSA153i{;z_k0{h>H+5dBJwU^$%zlqWR89WovYv~u%K6?8< z3!V$`H-W4D^YpiZdnL2?#PAQq@O%s}#PCOB_-AAIFURoTh~YXj=#}DgI)?vK4A&Zj zSF-=JF??wZzY%;V?Tb(Ud%^eM&gX~Tp-}tk>7M}K7vPV9tNrx!r@@Z|`0s$L?s@CYU4Ge_3U$ux8B&74BJ-ni}SHZGSMr}p3+$KP}aZuUX859vT0 zaWN$0-7@RMo{Tf0EPYEPYtGAM)>d#f&Yga<5i}85W&+_n+}!D0>5$s&$r}ey>;bi4 zf;QZ9r;e-zCYrK!Ztaz+gm6ce%t4x!YfJBkDD$@X<1~S}e<6f`%SU{I^q3<*#@*pIlCYXGYc+9L1*k@RDTdGW^BVW@z&Y8 z7>r*Z1ypPVbxO>}VfDI>4YygVIsrJ(3P`vj;&bk$ ztSMzNJLNFuR^j<-HD!%b(E0K#E4;ZjZID6cm@3z~WsuXm^PI2?%7&^R&8U{N%5|fA zhdo+o8E2k-85kM5%S5weOHHxbH2}qNxVLARr%8tTeG6^N_>C*quWwu3vQF%b*Zg=L z121{rX>$uB+xInWvGd%9t<1k<)@|pZI+L?k_%=5Vx}Eh*;k~T4((jnF0l?e`8TSAy zZ?oh1%kU&4^X>GRgN&yH^LCwA^qtOpuOPVAaU1SrUh8nl z?8#hfxN`r$*?S)_E06QA_uD^+Wwmiu0y&s2$&rj~Y-4;t$i@ne4+1P?W9bNxjT{md zu`7YSf(@)3+^Z%l3ES94@mj_!*=4T@ zR{JQ9+NiA>-QRD%nRCAVb}?A-)4F{!&zbXn@60 zFT9-m2q~9gA!C69LM9Lgg~WGAh#+M|NPLHduZ7>}e>A#}M%=lT{>P&GaUqKfJ7&Qz z`RWl`or-Tb>e-U?2n(;g> zWP!yqLdw@YYL@Sqkn%kvq+HGlQ8+y>B-{%^(seJJ_4ZP9e>u8mjJGY{b|Lf~!V2v* z;`4zEd2y7Z^sQne>I;Ack^z((J?|m)C zw^a!JVIlmV5W@e{Lg-(J{x1tD&-p(BB%KvP;#n^w{5?YAJ0AVR9y{=Pv?bkF0blnS z`aNLVa{5!@HG~(gfFI$t%=dr`K1@3he>?m|*sDAF=@TBJT?pZ0Ao>qRI27Uj2oC^l zPX~d$zeGO8X-`KY{;)Xh=~%=c5g*9qNYXzcPWV&$f1Yv?C;T%JKO;`~vk`w$obWG2 zyo-0)J&gmxJL%^lJRG5W1$B2XU}$d$vvklg}5sZvwdt3(k|-4_tH-b-$%O;ZlGNV z-%p(gZ=yVaerE^7X*Yx7w3i_v?PY&-zbC@s2oFYhNO&{f8DX7#3vVIc(f>)HdrQv< zDJO+oJqSp;wOc7v3@_|PYX%!OvKL$f0gzc@t1}FfbN2Ei2QU5 z!7CA8B>c5}Jk$D1mWJSg{z7!} zW0)e{krWB;i9f0wi7Px|HP2i_{LsnYENtR$9nZ!1s*D{POhr0Cwi;WEZwyApa5KKy z*c6}jYJ7AN!Bl^YHkg>jMLPZOj8Hx`!wd3vFvoHl=?1aFWR5{sG|6umN0N~|80jq2 zWD*_SVx#Qz`zCZFi3phJgslblJ}SJ{neRQk9e4B5jkQb)*~=cL!oO<)N0Z`XBGixM z@V!-|dHbHS_i$xc+r)Y#))}?b^0h}RSmTt=^@s1yto!qmoYU;S zzXjmux=#Ks_*T~OWu4ve{Qv*LIx^SDx^8JDXE?Ja>0Ea=`=E@s`?F)qS+kYgZSN1H zjK2yvpD>HCmRS{B!&(P*Y%kVw9>gBNTK-3{4`VIv6IlBKi((A>B36E!=gq@fPxg%~ zu~cKw%WUPjxOQgRnvGCnJF;7M?;Gsj;nBZ++1-Wb{~gyWZ0x^l56g1igAB%XF^B`j zMa8I#w07Zt`}GVz*h773Y7Nt#{lzN{gon09uampBP3ckeZ!c-b^0f>@jYwLMuNRH2 zy=l}9+D|vltjum+^e$}@^E8t#@2W_#AE<6&RUt$- z&%X1?i1#G~D84u1D}m}3h9fS}UrAGZebEIV_z&WKL{JT7K;!7ObvNDmeuTN3*R9P@ zkIH3H1y_W=NVoRoN3b>B5$%PGt&wpm6C=T9^wZ){SS4RQbMvv}!g+aLw(ttZz__dI?Lkfh^OzbW5c3J z?_7Cobv`=F$uPzEEVE=1e^nf8@wMo27XIe*EPsBB5`XJ>F2;8T`~WtY6yItbit+go z8^z7|eDhL#xAJU!X>8?MfdL(&kxsNPLiyAvd$dg?BaQa12$TEE&=pOJ`tRXLnONA(|AQuloL>kKCOG zSIe&DG>3PtSaH5{9j;lva^=O2t+qH=pjvGkmZEopzOeeOf8NdBme$^UT$K&8ucbCR zmseo{WuEVsU`=;e3to3E_y}vu>!-P^a+Yhl-Baj30QUrv$4=c`Z!S#h!^PdNE={+4 z)9-!!>>;0eT`%9!%NYrS z53oNnFQYmVacOAnJEZwu>wh`CaNSL7`K-Nf-EACdx%vh>q#M?(xvsMK zhMR7EQ)R`{cP`z}nJ3G5U6x-{Svw2|!sD!KH?PYs zY42#6({g$Hyp}6keynYN%j;Sew6e%$>AsKMHMIS9;LzS2?o3a_w=~=xv9xdd(DrQU z?fdpkyFOu>!~ZJxDFj&yz1kZnALTK*Y02J{9s`^c)_tbF*j|mPc=*QWWcj+!X8)X@ zuWsDAX$ki!i2I(oF3t4ROXVg%|9`ZA>wmm}cY&+F%1s_#Jyyc?KUu&H|6~D=gaJ5~ z)W2zFHP)cc!_jqSMdP}$sr1vwl2iTd^_%8m)`jh9l83R;{U!Wx2_G%tCrbD~E8*WP z;ipUZizVE3cFFi1yP|}@0el3jpJU&5mHgiqar;r%jco_FeiQxv68$H@t>5JTm6E^b zyIa4>|6i2+zX5LD+1EIh9tYo0z@IPChp~0+f*4$@+n=GUNn>sX-eLVrzOaRX^hal+ zo*qGC<;qN}6AEtm0um3j9oj#%+yiY3o?%@=0WU2+X{=9~x};zRt$5H+7tfvDwR~vG znaokYu0A~H$aMtMbCpjF!s-r}giI$$YYV3P6oR@iWIDkNYeQxrnrUqeBd9$)_6=^^ zzGDa4`Y@MaM78ZBcjsv~Pr42JetH@1uFB^&J+Egxr~4w>t?+8b zph91C+LE~aW$znllfX6x1j=YUlW)F|F;|a}xlbkfuLYW(a_k;D%RV6;?SPQ-wx1L4g0)s;fxaWH*Ak}?ci#!;IOenU64H^W(fsD-G}2kG!er*Bj7Nv$Hw=!K|6d(2b-(z!aYl zmKw&jsl8a|M79z0(T%lCaBi3td`|yciUim6$QylU|L)ysN>sVfoaovWD=vCYbjnFu zX-;&(F*x&x|DkuXGslT@rE@adp0VFJE8G!Z_Wv95*G+ik;?8GGx2=$teS`NQ(o4>z zOY2lNuS`B;Zj^O@4!%Yj=Mtgzw)-zDGu5M`<2-fU-=wz z_)VvYlQa1?O|<>RXGciu9DUh2-jj25Tj!uXhiouB({{o$ZG-xEn0?Q~lZ|{;N3O`K_hLu5A34tp zul&Wu1>bo*qoJJgecjZOSf9++(J#ZqT!4|WT4Q1^Ye zXZil`P|olJFZAl%X&LzZe9kNPBa_cg+?d~U9t?LVXWR*1{rCKJFyz+sE6RTUk8kC@EzQI)(EM$;P$W% z7~MLs#&-g%`BVUbSr|FA|ihp<7;$OJkB)ll_d3t^LVE2f{~vJ*7Ulu zr?81mzmwSH_d?0a{2Or1i!wU zHbtaw>3$9iUESBm_{oU+mgbv__w4;x4BOwgtG<2jP>y;};_h8{?Ad$Q#{PYK?%unj zzi>5V-_l+66ccIo-^u1%X6Ai2uFbM_Yj3Qt-njX;u)LUbcEi}}efxIZNj5+;)?ue4 zvYR)r=R!w!<051J*kC^^GP8Vaio@T^0ba4Zl6kc{82Z|1^8J3c$=u{Rn&#Lh_pc;x zTB&21B?X**Jm@`hr`$jF0k&%WYq=-?xqs>pl7GGAzqNoHzPEsz{y+iOf3Se-e@_9| zf4G3_f2e@#KT^Q;KU%=`A1&beA1~ngpD5t^KUTo?KUu)_f3kq<|5O3j|G5IL|5yRn z|M>#0{|g0N|CbB6{-JXTZh84TU&&3Z-vXX|gfr>jlFrWlO}WV%fj&PH@#}#0Z;K;- z6HxvV&SS$UXOZ8gu{Up;AB4_sTa2z7sN7<(8GY!Bm3{U^tK8z3c$PNNKg4q~y8R<; z1)Kc;FP=AJjl=Nfy^2l#f68;MfS=(x8EL+Ytz#2?OQSAwH|LtY1^+9-SAwVXmVplz z{I3TeF5uo7K2pH@!AA@DN5M}N@Pptd3;378H7PyiGEaebV=d3e!N&^t{{#L)0aq>q zSyll^|Ci#?7{|-{Vfjo1|IYMb1P^JH@Cvx|=%bN-S;>EO3BS37_lsj!#qfX6XKX#< zU*P!=c0Qo`MTn2hmVS;9RZB^mvldnF^T94kzc z!Zm5gtELPN8uF*2YuqGN{0gUySB$N3|o-jDEcXSC81Bztw650$JiQ4G(YVr z}2Wjp=5^GT9dqSF?jXgufoJ|>Qq=e2-U;;(oJdI+Of`Dp@LnGay>!vAXvni$g zy+}-ZivJ9WtE3M(_Mur4UX`WvP#C;7-&SWc99S{JrgyxtN`mH<$p2*KFn%sshcF zNZ3$QjpD&6?yNAF(LKtm^{3-nX8boqd~5XY6@m;#d`S2+xt!1VEZ0`b?@07N zDkMJ3QU4RdpUuB@;!lWg%Voae&xrT3244tn`H8=<9^(o50Ut>50x!n=1Vkj6IVaW_f2HuPXb-N_*QI!m&L9CDcNt!~4(!zt zPf@tHt7xRvyag+L@;)D({1~Q4*Bp1o`856%(G;2KF$S1pxXIrvY~pVn&&BxM`!$GL zGAX~Sad6&UiyjA&`}u5qjxJMtTX;6Uu3S@mghrnKH$?a;KI- zWQ~Kp+_S)1j7xeyJLYuN9t;<{o~uE8AU-#KLQdtzVBaIRs*8AdgX zxbKo-k7EtbFs5Pj|G5U1kF)ld@Pj4Xv61E^Md4bC-^$VOZ+y-<^JclIxh%P{xVSN3 zPiu?s+CIQK^z5$wyLJqItaSfw^IqL_^K3rGZ$uKNTQsnluJSF-55jx`)^_icyKMtV zoXe3h+Q&E+aWCO|;oN+T*fTG0Gp=ENSa&``j|l1HpAgQ^$Iv~mqm5E7(l3e7wqv+e z5q3b|`gfoa^5L!sspOgv_sv4w9dqbzedvBDx{pNn6VcuDr9Tzj&qnt!_Qahk5Ajrl z#Ir((yL=h{mgw#}1Kl0(>3*?hrmIFfN}q#@}kW33~MJ9=^RyCk`Emd(`>Ps5F& zLR@$STA|}0=`TdL0ve+z(w!{CnfR+hQydGv1b@eHlRw|;#NTS34W7n=D~OotZy4$H zuSaOSnhnq`&L6|SG+L%R0R~6@h7zOEK^o02EM9{F;ZHitAelsGl^3IU2;^gl2$<-E z#jzkt+3-%=Um1t_=*C(m#rU3~FdoM(nG~O|{q8&VGzNng)W=ufdC~j7cFIs;Ea)2L zL!3qK{VxZ9hx>pSdpYKr$9S!SbJ<%)(Tk2S=BkfQ%pZPW+_Uz*N9AqkTODW3so+<0 z&(~q-^RwQ)iy_?MQ>~A;4YDQ~`ekW6S2;ZCTHe{l*_*FxHXhdq3qxGl7sI&H`%gA9 z2BYT~n^hYQo9rBL{qScWKifU>mC5aKthhCf6)mq%lPAZE#+`@% zWkj%^h_#7$g!PI4zWcB5e82gbS{rD6L_zeiu=< z)@fHa_bd$Nc|UV6>kw+*El8c8cwjsm31|1aZ9mj+SeM@09BZe0Hfpilf0BHgw^iWn zqhD;4X$SSuRpEZTD)o$i%h>REHu~YQtDx&R={+Q0nCvi zU+)Dm+>aY?Y!8`f_14GV9MkqLkuOo^Sxh6Ve%y8Hr;~r9?n7MpIqKH0<-aJ_=Y6E* z+45ttEp{iMq!TPwNloB`zOTQ{%2dEKsy#d6>Cy)L+co)=Lc_dTUAz%I zOy#;p-m%1CD>|5#FcxTzL*^9p>=NW>s~R>pdH53r{8Bs~Dd5I`vViOVL;=_TsRFM5 z(*<1ru>!9DnF4-o#CsTor2I6`r)%XLc>t8M4`mZYB`qv6LXu~)Ul)h=E?-|&Or|+Y5GwmUm8h-jbajJiL-Y9oXGt++5 zLrw3{H+-dp|8@!g{Sy9%CH$KuoDXWlIBxvQ2A20luat1^$7>krdrEk#h*S@OT3gnvk!_LtHhivB5o4}f0e*MgB&3Lv@F^lHbu<*RmpczguN5hu+w5@GB#N(pZU9l z;x0b`bo$pQDXI(mBl6{8?$IbJ7vXQ}W``(Lh#R1zkfIR{5(lLfQ}FFWNu&`(4Gq7K zY;#M-)a@4q&&CFgf*ZPC0u2lV1?C5eCxFh7#gJMMb~H}{oq-JDh6?uSKDiX6v0uZp z7{4cxs`}{!GwjSLWGHM>p-6Y^+#9O6So9u3+T3TpJE*P;TU}<@sS@%r;|OKOrjxYm zGkTtv>B)wiF*0Uy|!7d)}JM^MuEBU&?n{$mI4ZVU_Q0gf9r0#J(&d&~*@qoB}<-&L8 z-+%F!z)imN6d_Ay-O6{T^TCdLg;8x0|67fYs20UaX_}dOz>+y^(!uN_JkLnZ7 z&DR68;(jE$AC2x*Vb+R3ZoZIoLcHK9UYsw=5QHznRDH4MY$lT)%QC%=AI7DJ)%ToSkVH1DrcrM20 zK78vSnH1k@9B2+%EqbiKEXyi98{cefif;?g#+PJ--fcMqo{V(*-x;BNYQ~@|j`O6^ z4n_zFrh~RnG}35>v6PAA!ANJBCX?u3yHR%fT?5@nA_68lA+KD+JON!dJW|aWuW`t4 zH_$Rkb-`oyG{ezr3Jxj0AR`=VhzKvJFJ89d;`PP%nt^v<72e;24-sR_GTJ{yuPDwuFCx=VW{@?nnqwJRb-QA#GtutafYrzTL|Z zn-6(@PgC1<)8=(ItlO9q@7%>{?Ax~Q{#e+v+SflYw7qc7bQoLanyx%hKG=yT`EUnX zh$y_L3;Fnja)S})4C;C+Lf+|`5ckbO-1kS^_Ah?1W~T3kX(p5U(eig=74NQebQ_^o zQ$Koj#8X$YDn%4wYG3wohQAP9`MY6!$6{Q9#9x)?Vn4r@h^=G!vsESjR`VvoG(|fG=*Tz z2h~2U|9*l%KaYDdDL(q|fnB%H(0?zhR5)UTl|9R={8g4!t8ZViqEdPL^0!~~p34pB zR56YIJFNGqum`Z}TAv4j>^;kNjD@{t=W);Xsm%@Rf;x~v{~ogDD1Sa@Uzjpmj3+LU?LoB#5%BTmTjCv<>?$yMbWaX~0 z@%)-@TXY4cabOa;`GSQpzC|;{*Hz2Y_b%Qe@VgaTL&!T1 z=sKeft}&{i?;y^u+5?mHS6}mdoO{Tt{DgGS3&6*?`Cba2?WEUzGS^cWj;ihCYd^UG zo?Umew$7dQb;5d2EB+noF7of@ch~_jVfoM|36rmzO5rkO=IQwig|<^(vC7pg!%&XK zH~e@v&YWP8WaBZS)UVZuYFg1+Q%om)VstyjK=y)YqLH~d$@zNQhTsm0zG^`jJrA%*Np)a?ig!ozk^VxZ^tDZ|2VMz~6Arr_ZxF zKZ?Gt({O)58g2Ncu<6Vwao*Dqwy5Jv;aQW%5May1C4}V+C3w1Rf->uDsg6;GpCaGv zeZBwjv(nI)2Y=s(h8{Qj6#8KH#jc6%)jUZT!XF?!`qk>#T;igbn{j3Av87x>eBXfw zbf)KCxZ$mT?wZ8KHTr;F_^!9pW^bKPhiTqgD7&`>9^B_V7TQEMS|5J{?{qtKR|daZ zC(y?)_*{kepf->9esnHvdBG}l-|GKX#{0Mr(XLYavyNQL_`)Y2rw!jaVcn?vQ};Hz z(rhQX=laTAZyo9bouzK=iH`U8D(G6sYl^e2zHYp=`X{#ewtq{Wr^U_tM!(dV)xJo1 zZO;1>(pLwYr%|6^$PwbqYM)@;X3lHyqu>2Y>#(Y>byHX$nfiy+7MLYXcwclDc};Pm zPh9X2}}|jo*Ji%*U`}*!hI3 zW6MUm|B*(Xl1V%U{D)yKF?9)`XJv&ofjqqW1%YI)SnNN@dBuFV{}vrH~zB) z-1xisNarRGKfi$Mzm=CR`KKqL^Ctb9ri`~|*GEssi!F^&a_-ocT~Z2vNn`!)qk+DW za0qZQYaVaQqYnRkPqKb&9s3woUBwVE8T}6=1StMs3IA1a%iDL?@Q;-I|Dc3_y@Zd0 zTOahjA^cyI{4d2X8PoqUaAl!2o=xv9Jaag=_1l2ti!g?X!ZqBuE2j}hk`nRJ*+g6P1j$ON_M4l@+r$&(PgbYWeZDNrQdxD3y zagH1}(1mDuTy7GDKyaL|kuJGy=lc0ZHltd!K(d3wHFvxDbcP!eBbhN53$1_mzFm8E z?<*$m=3%Mx)8!f*hXXeAO`e-K-gwguW}~`onk$RJ?;P4$QftP<&A71__)|MOLt;Dj z?i$*)V|zmf3)@KQ(0xiv^D!n{%l7A}zPG?uIS7)! z{-J&w?(Tg%`u7gyPtCRLcF#~o?+gJ38`!qN{=K{Qa7M~C+qMsc zC~oI=$$jFU>}^r_IJjpZxNUDnh<6BPmOpa0RMSL}`MsJcu3fu7O3j4y_wC>WvAx9_-nXwMyYH1K`>dq28s zN52~jAZh4e$=9wOAM-*@bkW-pyEbyZb5EYV!5zB{;a=o2SqyyF_QAnjyYCDkckP}k zoju=ufJ58%?a0#_8rZk(j{faKckgvb6V@^=L}=<*vW-EV;~LKz92H)bk9R!#@5P8a zhHSGhifSx%R*1Rx*91(wGuD5MNIO2EOaF6Q#CgK&oIqGc}G4>FzFs9(U z=$VE!A^PPJ;6mI_h+oC{CBiYF>7I$u@2C1_zmul3M0_#&Pa#S$<)`Xv>%tYR4HRC> zo&_O#*XM-rdqxOq}-^{j$k_%8Al{htzENq8Ybe)VQO?2wXV+P!mZcm z<20diR-xZ0;k*dvN7xf#MYx7^gllsda_c(EQT#pmxKK#ZWvw^lvgp?J`TCsJ8?&sY z`+K9l_aBb8ee12;^Y(83 z9@hW%e4O68BVXSjJfS=A5n&&H7inhFM+{JB$+X9ZvOdB)!A|i`bm0$Z$osF3cv}oN zT8K+0X*J619jh1VQd;__=PJ*JNqS=Avuz|Jo&IYgOz}Mm-J^*JnBt?!PSIODH;=j_ z0`noO(#aQ1BE)O@n!(vK>n+r0r94S@1iGS0es|yqZ-dECI?EuLM0XhuDG&Pn3+O(Y zh=7Ss*jjL31=GHJ$igz~)O>Vf=U|KR9YPWR@l+W2rTFa9?e&x9qOmt++01&2cdWej zqW7j$eTfTt3-_jEoSS!5ka5+J!>=A6L{8gMePOcYjK41X z*@^c0=;=!Dq4CPt{o}ZQ`E|(6$p5EbIeAH-rCUNbvFS9Dr)!YKy?ziGt@2iiud}7H zas1oJzFLv7>2BCps;?PmfAFVW$FCe$cm0D5ojnyRl%MyqKA&{wBcE=oA)6g(%IApp z*(WZ0Xz~f=j5XxfgjFUztAgyZn(H=><9Ga5bG<_k^0tS;AO4*juYeyl>~Jo3TLeA= z-Z}c&F~ctgcTWyg$~lU8x4|1Mi;%UoiJ_BD>hMC;vSHFV1{40~K zmHWplJZH7SIs5GEQExPxGE(Q#&a>%c_0LZ(B1}i^^Fg-WfqZlkWmo~y2P}9I*{y>M#;lwY6cjUqgmXN;rLp~kyzBuB)53Zbbh4N7L?6h`2ja>L?;skb6N8rfgu}`yy z9eF;`Ju#O6yMeQT^MEVRA(&p&dwu5^@hZD;450qcF~U)-YrvEv9K;S_pQqI>!P-{c zU!U5CZKD<5+bZlIp?oZxyWrnF=k9S)uB*IQ_dBgO@?d+b5SRT<&=pYrE!8#Smrx&` z;rVIGllS)=pMrCr#J&OhaV&M5pPh+*s-3ex!`YPG4^DOy4ten0j+307S$S}h?@s5n zq@yffI`w`XwFf6_$a<9*cMPH{96@I|oY%AN%HU_?7v#mrsChT|f`4G*pAy$4+2+%~ zBCPa{&8prx)|PENjSQ*tZ7Gc!{M1b+*PZ+yw3T+x4}h;<Eu$v{^Q_&>*@cSaF&Vs7vJAM`)l-@(Ebtb$nVcJ z%8zo+PGYmK)9%!@qPs)qN*Q-_kuToWXIm=+V@q*wt=>OI|3u%jiL^FOJVIP8Cs&VK z$F1~tE!oSHEtS8dud9u>qSsjk?dsa~g}&}S`nq9t9iI;URrZ>3n#!kNsaz81M~#nr z+AOyd@OVuuy9(!%at`ZU+8AHx(YC*b|NY$Wb{J?~!0R*F*f)4zo}(_l@$J`iUpdAO z@6&B#_lI-6sw4p+{KoAnD2*W%T8H zEGNn^E0p^$yz3Q7pObAl{hn7|dA6gvYs`9UsjOw+<0r>j<;QZV z{?+8_?wl9C+nuXVuA%;JndllDJzc5O=XNK4woa@F{LBjcEFcG!d_-UDu zAIrmXO=Yqngw65y2HtNyy^yj*0!;fp5cImX;WxxK%=;PIf#n;{#2w7v^OibgU87Dy zJs+TL<+|&nN2IY3XFLa_8~s}qTKgONGutcg@B;4<4BrguU@7mo?}BZNaSh+v4~B2= z9|b->IKj7qVMwl9e;bhU?evUYbbS-wA|EZ#^L?62x}EMJG{1=#^_YzLzM9;#i{PiT zzz=O=!LP^iV34*LcK9<=|fuRoqRwI7FGo!;=hV!2(?f%Rqj3r$6;5VqX zH`e8FeVnmq=P=*=;m^gj2{ra0j<8>|`oLt*i3i5{-kzIN`4h@?LV>@>ocd{eERK{ zIqfgG&Ea`Yh3`k5_AuJiJsaQCl&A0bJjV{uq%<8fbi_PRhn;iCgZ#G-9vr9NJ?Ho# z?UQt!##NO2=ezSY0Ddoxrz7%Y{CT{LIpP=~rITf!ocv?jB)a8uzi2s-|7sz=;@(fw zbp43&rg;3;5BZ(vg{WX(Kz|?BQ1sI7>oHx*KBQM0Jv|cJ=o2?TaoW3|==;Ccx@>Hs zt-5ney)2FWtA6KQ7x04m^kM5J*CRWQOnYDd)w}-{?_hm`w(zyqE5{~UE4|^{8tymh zJ~Eb#+z(FOT#}dR9NxXN>~(E?rwI$c&$g52A0a<}!wzN-oNc4req`A9yFT&nD3{PS zYGa{XE~QDCxOWkX@@i*5`` z7V!Q~%p&eoHpWeXg>UI&_$T+`dyOvpYrb=QAI}Nh&w4G;Z<^}^TFF<%^&2NgCth1| zA1&>=%Gw>u(0#`4XLsMad3kiyvG~}8W9WAFw08_XFmBzo!~2iGd!zjnc-PH7CzXd| zAfGKa<_DeTA+zmMtp1nuqtY%!<_Dv4khz^#6K0G)4LZ7Zic1bYv@j^ui(@;A9B;J*KgjqZe4ae zH)k3Cu3fu#-G#9DuI>8+{M-G#-~WB5wx6bH32W-bk78Y8z_%qlS7?lB&4KdR+?3ZG z%*n3D!}gk+IoS<7G}D+9WPwYPHd|p8U_rdik#xa2rCk zfPa{0#7)uUcYHlo;CBx`;>MBk)1F=?@_PXH%`vp;eVXUq0&ZTq3iKlp-${pHe52q) zv&j=LYl{DoMuFsah&@`suY>-H0&e`L3b_7H7jXTbDd75_Dd75_E#SWyab@m_pOL(q zz^5hqeg5}jb2BHLZ!nNh^8d#?TPC^5%X734-t^}wY6`|4s%d6g)A3aFUJP{q@mZkH z%*_H0Xc*6}GXAEaU<<}I98>-06nyO?`3e`zO#6{vDfoBuT;31-x&O~l7b{+|c$!B6Y{;@<$beI@$x8jL^2-}aUK|9y-v zg?B%(?JN1uX}mkR+rkq5))HRcKU_Y`dMos{p97?0e)g5Zf2xE(RKkC^gg;rrzYV^K zm%wjxSVPiyS9AU^E8$m{@MYkB@9cBjYq756e`^U3db%Lg4ZA5g)NA(+K2K`$`}UxO z-8)T-w{+LOz1x>w)3_^{EyeN5HlD8a{^WP~7w&Rf>C-#?d%J%t*dV-j+q6$9KFg~5 zFI$%F-m&ej?L#Q%Q8(T>(BHtrhSwQG=9k7T58+o#`%b65%W0En{01lIf~r`x?e#a_ zylrqVD$P3@AMKE4aLaw~Mg>_2m9GLYZ_tGsmZc4Qck2rDfVDCsVUMi4 zUBljCu`&f)TFXu|?N%-qPS{I4&5_8axrNxgoi8O5DA-V3$mazYTjX1^2kJ+xQ#^4)CcX%u6=Qb3=A+q#=JZ@ew|gyjoU ziCNImzdtQ3n3m_j%Cbgu|;uSWb}gpO_8 zYkOEoKjj)Q@5ehTq+c10?hgz3?ztwc4Q0u3;g2HU7SegTXSfZ4)uY18nOD$nw7r(G zk?_aRNdnaoAC0hs@q;?z6++zmB7ANZI3LHCBJ5!jtj@T~r%<|@kP-V~A^AThB>xrq zaPgHw@Dsp=HTVMduFkTP;%oA;hxk*`-?2vTI?6fvJGKyi8R#D9^^}b|=>g#l$nAye z$%l~iP6$cwln_40B3w*a_S^{H!uP!Z#9sgeQPK z@26aaH^IM4kZ^VC*!cGg@gETq z?y!(>M}^E@P6!z&o)O-fkAdV9G;6Kq-xT{z); zBR(Lc{0|9V4?n_r`53$P&AFb|^g{gLDSpT<%KQXWEm)dWFovJs7|-SNVLhA&P?cE? z8_etSwolU!;c2d6+)vd7oMs)&hC*CAn3m=(SejIJAv*anOp)#=crvD|p$Mk%cMOJi z;wFEyu!%p4a!Pz>;m^8ACdEfpO^L6Y0a67w%6t0zrGqWTX?lGt$YY zW)XeG;`}lEOQRi(FgWtJ0lK0|Q4ixtnMfXtbe3r{iH(^3?D04sOG6B^l{cxVL48|6DxdEJpR8%Jd%lv4nFkr0)IJ1Mq@e3VrGkXyqm8MY9GUza03WZFk-o`4}Y5tB6ZJzEa?0EABJ#v7Wfs z<99K9EP}So$5zW@SbgG_iFv&bT=C;9;qMqcJo)l#o3!ol5oB&7`B{Qz3V!HB8h*b) zKAt>}-!I_zT+HL~w>R^6q>#rWxX+Zw1H^d%znSuwpB=er;#ZLcHuNeXosUl*Mb_D# zeR6z$cfQ9=dGg4}O-<--A5gJ3hNIdis;Z5%N4* zAAhG|(7Cz>pkwrY!Vw-BWk-fy2H9>~HXP*X#dtf=XSSfL^v*)%oa&oGyBc}&+s50{ z%YMO9JLzEGopRBTE^<=7w39C)-|da%cJSI}x$Q2L+Ys(Em0Rx>4^8&sH&eNxyE~`c zwH+QpdbCOOjSKFIX)P(Fb+nMy{PU#MPFn5fN$Wb&nngXB&Y2&n%kys& zSE`49!gI(^_ZKERtK@U!-q26E$JD;cbfvAFC(SO>>^e`HDPNb8cFHe$mAToldX|q* zqPM%^-~RP03w}Q4_tf&4^ZN+yo~vtL-9ca7iN5CH%UK(Qdk1{-zOnc8F!h$N1v0JA z|8-v8KA(*7?=Qq(Az$fR(1-g>i=bsY)%JYOI`+a+*!kFbSl5QSp6WQ(`L8l( z=f&Mv$Dq#>?OCj2qgMJ6&oD-BHqmkd9da)^HEa*ox}7)jz_@2r_s|Dsqpoku&UIAL zK{Ga5P5%RNcE;7zjw_W)jTpjE9;X2== z;r!eS+nN5>{bAzpO!3(j-npvn5?y=rYY%(UiKjbXtEYQv^T98!590mpOlyVco;ueO zr)4O8F<#Sap+3X@_j_3{37zTb{->1LN%CrW9K{~OS{79-?_>5Q%I?*ef$h8RyxUzt zm}xp=XN^0u3=#Se8?umap>uH~3{Ojfu=qOeULM-1C^+8>L%sCx4|I3z8jvj8iydN% zkk9DF>yTGAgzZ?BHH}R-*H!S%GByLDMIH*gFlh+%VSi3#L*z0iG@jgjvoTk$-Usy$ z!`}A7X7;6f_heXQxj&Tm-B{i|G)(o7%AHnp=%Q)KuF4n-5674wpt zmh3|j-^_PB934eD9UthvMSi<{C_}?wz zhf4UblyJv*$;i(?E8*WP;b%(te=gxyw5Hhd@_SPWzqW*LD&c)4d`}4(GtCS)%;ViXnQuech8RgefxBXx4Nbc&?-H1%_vVnhZ)qFL5&(zra_k))Tp_N z^qtvW6m>)tRH?#TZ|Z;2f%+U`SQesKc8$76RghCROV4m7aMD!<1=f^XUZ-rN<%0#~ z^4sseBdNyNwOYJ@DxO4~2PzyxtcLCb`L5saEewbDMa8JPSJa=|{0atDD{=OPhoOG= zjSp;RyQoCQ%EsG)cn)y!BHhBK@4@YR_x0zSuM28SmAnNs*WMPmil6PY5jmpyruDo~ z@>_00&ZemOf=hkl&0B8Uwr1VN&H0rN&AsAzQOvNP+YRYy=lJ=97cz#j{*IiXg0{MG zW^y{LF!-sfZusN}CdYP}oj)n`mzX8ko;T#*4EKB<7GIqA$-3KL>E6S88TP0OaUT%A zDc=txd^qAy3jHYZo=ETf&%LLff#Dg=y+RT_Bt+okJkm3npAj2>sJSKH}ajs(($0{{|uc?w8bkG`c?%;qyY`oj*JG-ykGhuMqd42uGv8 z^L_naiujU_9Cs|zhE-px{@1;J>VIp(OPPNQyC^py-{}oP=;}h~HVdKKB7|bR|@Iykv?-vsOp6EXu;Q=9Z2Zhib5<)i;{SQa~Bhmk8^dF7> z4+}5P*AkiT@#ua+NW6~-iT6<<@je#aPe%7AqPuH{4F6>Ge=7Pv9sQq){?A4KvFLv$ z`k#&N&qwzcqWg={{iW#sa&%YWB!BHf`0EhDUzZTuEyRDG5dZl?{8s^8A22NBBXd}Y zp7${!6N9Is`Jm{T)J@72RUu(k2(hc8do8-JjqdA( zgxe7P>(PI6^xqo&`yw2OFzB_{M7{P}=E1moX89Q*?k@`8L;pkD*L|fB_j-hmUESlq zRk(mW2>%Z4KH@utOd1D-EPNjn{&>`5uh09-R@Oz(B?bL9;G&GBZXg)Cplpb^ zlc75b23BlJSuJ4nKd+^X>2t_d2rnH?F1tG7bc4YhE5xOPX=&bqmHt9>@?)4HonxM4 z5`X5q$lvoYJRdjtgUu}QN0SQi(G>?X27jmGvp_o2t4C;~uNG8#h_09hcx{oCyV4@T9X=<1u`p6NOx47ScH6Ptr%OsT@ zk6HUX?)@tSO!4Kz#qAA+^M&-y%inSFXL`@Kq6_+F_g1%8k*QY;dy*>1>na8O0(+MJ zrr}e*WsKKqim~i$cV%On(4?@^_3D7p&GOcy;?1+&^t1gG{c7On9S7kzxI@uPE_rDR zUU1*LXaC1?X-W)Vzj?!rYix>9rjukZ3CH7yQr0q6__EZ?#yC>&2PA@N)RX1%YR(tr zb5SrYVeN|jNp9j@RS6|EU;SoV%Ka-P|0M<7_^Son@O(O>$-~zY8spzkzzv_;q^->G zTTA}E1zi7u0&e)h0T|+#-~3-0$kgz&i{8XP zr{r(X)if8g7TwRQ#`n;*%O4C_{-;|%*80)9*86Ut?uq^rJSU^uVQdAP{C}P2WOVyo zY!#dQ|1fz*x2J)%_$)u)GtRZP z=Lgj@9S#%!%_ZQT;?|H)&rsi?#YatY;>J79gC4ytJ3mH8N@_o{rnvT#w} zKE!>G7V9FjH|O$K!*7lFPW=h*JFowKal+pd@h+fuN!wOh zm*#C+PKqX>!#GkVk_RK5WtvQ)E01aa3XhRQ1Wa_o)`Gih%DYK`p>0;dnvZU5 zc}#nR!u|Ux68zI+7}I_q=LKD}Y-ROg*HAv6f1YO9HY`QQw4UR>igBy!CObIazrC_( z(lZR&(L-k4o=cGH1$&^;t)2BA$<4jEu5qlgufIZ!=JP`P`dybWkF;9Ro2qYgUDYk< zDtCVFp~;=xt?WL1^`Kde{qUoo344O2OM9DLzsOYbtGc-^z_kGFy{tEYXLQ&hPS@%2 zl?v~DHl@3iFo8$to`a6Hc<0)yze4^u zP0S}=!zKC+ag9K_*Z4tns%Jo zn;`v7F^$d8UIndbxDF@jn>p{}TrJY9DA24f(8x1qyPWH#!D)|BXNR!95ZblaMc7Ya zldDhjH)C<4RG*n3&t}DM8a6k1c*he7H@)77*@BIKpn&Ud+s{o) zhNwH>$7rO9pO+f#yd~VJvmueg&&@oi_d)(PgI5dwPI5;I_|Nj}cqTV{c2M0$YEVZH(E#U}c5JSU^ue@O^XyrWU}IbPnMTPgXM_vfxD`F{Z1vRjE&52^ko z8Pm(>AbA&pCej;QXL$9es3YA8I0Fq@#h{y9p~f+&8iQ^!sw$@kNb{GdUGu==rp|8$ za)n_8DAfny3`Cd^0NjqDr)&`)hJ{K|QG>o9Uw)TMeBYFDZvifReVi{qyi=S8?fcvd?tA4qsSgX^h>TuHWj`gPBRLb{OG4%swk^-E zwGD~)2^kO`5iZHsTZ%s)-R%d|<-9DsoJjb1wK1S*7tSL-A@hkYA@b(#=&$Zhx-Nt8 zBG}Fv^A~Vf4|r7wVt!jM$=|D129p#)rmTFv&==_<%}nzY*ODgF9v{l{lqX1V3_r*1 zWVJDFr>Fwn2GndQ#3e4RraVtMA6VWC7RznF6l=a|K-gvjtrL=L@+0FBR~{ zBM**=^>3P4*}EgM7&z0Icq)C~!KCnxiKqJ83pUNgjEVhDB;&iZBOyTXyGr;$aO+M# z$IO4f(*|* zk%PqY^F)FyeOh1B90PmB#`MG(SO!V@_XrpS{bm1|r2W%qW*SL{&ttj?Bi(%wxGZNY zjd>ZU*=P1t@-d%d-@%BFM0iw)`!S$nV%vyg;uAt%phtw4=40NrF4jAMJ61jgbZq>z zIAdksOYt+}RQlP7zbO9Z{JqnkD6&@8b=W>ymtm(WD!)e+W)sH>Z-!Rf>2O~@#i_@SW zI!L1##!@Dd2P56Zj8R=zJdy$dQ+&c=QfEM(!a7E^jhGMfZ<(aJ;4yoI3BcAA33z(+ zCFIhSi#~h*nicQ7=(G11^PXX*$kILA^fzSFpPfO@o_&C`m~)xBblISL zRO5NZo;94+=d$1MH1nk(chA`4=Uyex&R>IDxYxG#<6+F)$UFYDSmGHy{Vnn%ZIG*z zpN-Xg4_Xg<*sfxX{W;Ps?tSkFd)sD~tG_^5yilDkSBJleOW-?|bt+r;ahZ176PS@+ z;v=0Ck>vYjK3<1`Yt8oH@|GQlpLfVh;GF@>`G)8M7dJ>l`@g(%X&9<9yav>eoxk8r|%aF zZ}kqmzUQ8?DD`^(>Uy0!yEY{$Sj5o*?Av#D|K7EG?&3nGq!@_jYfW|hTN(e9I{TZ* z_zzHLX}&UI1qPF!k$E_ww1(I7JX*jVi#%Mw8O8)$d0UEaI5ix?v)s2}=7jly?LIei z^08Jz`J&v&bMss17p7@uns3|`y=||~H|_xXY#jeH<{$TvZZf_{4&Q zaO*}|=ObS)`Hz7+M$tMS`7Y4C*;CS&~GOPY*$ zT1S-lJBt4*-0fSO&-~*OeVEV0Ze-CE8Goa@U_Mh2>o=U4*@S}^^D`84!G5Wy$xx#Xu=9;4tNmB=qc$uy`D6oZR zem0>yZHD#_EoZk)k%<{jHk@H+R3S?_kA)Nl_YCH4QyJalN~ETyfC|d5yemcpMJ_Mz zp|Y*t9u@@noe=un>S2v}uaH5b-@b)c=HpG*BOMiAl=m&-C#1VNpDP*P^Wt9Gi(6fziAUm)EQ`X=e>Lhzvo?X%olazMzy z{-BTn?;#-#dj!~9;awAl?uZb&a5f=yqml06=zlCi`%Co&z8kKKB8q^M^`K{15pl~; zJ;Yk!lDyoU%k_yf#_bTI@0c$nz7QTfg~$1#3`It-GIh9;bEI&#@VlSi1Bs7sh#$@LSiCvskw z<{I<_6Puk6anH}22s7|=4^0lR{wbV8#`-4`2y;c}VJVFBLFY-v_0ne_KW13?3umM_ zFHCf)_0ZMDzcG zKRNQyeAghK|dMpw6LzPedTSmtNJ+aTW2?CMRj{tRQ-W4N9`aE z^Ox3swNUQa=;*`?w7pLFNpsjU;PNN!eatK6vx9R^=#bo!M!NwX4Pn0qob#v<#|cX_%=^0Bb@RK z>)y6%9#;@&XPt7Wjf@j^?!SS)4L{3i9%-2FHKsc_dirQ&A9iibi zd)^R72;_IFw2zW+((_!o?Bv))F~00%e%{bm_2XUQ9=uNOJmGn>@|~84!Jh|L=eVJo z%N#7nDfLM@Uxr4#qxbC?f0@Sj@nzbt_AK@}>?+!>7XE{Ey=7L*&w*+sj@A*t;U%fcJvg{$FZaXzRPI*y$biba zy?giU#U;3fFwb zV-FPYn|K~B;Fi}xI+NTq7!RoO8{==9SD6FZv8z2l>hrm{*JGbF+T4oNk;tlO87TQ_!)5P(>7-O&ZCntd>iGKjCc?l zgf3>$_G#B_G}mB;m6u^5X6c%Zur8CkG?4DZdo`A)15G%P#8sHiGxF;!^2;s?!i*Ug zOEyjuiP9XS$#vK|Y-=8K;)b72s0gmYo|pu7WC z(MYSIil@lB&PPX8g!n1yV5B=3p9Q9CobQfMdX4AgF3umrzckwQ5e7&8+(TG2iN7s4 zl83?MC!IVeljzE_BqmMS&O`)EbV7=&VK#IyCLjT-GNYM?d~^eOo`j&Q5HQ83 zEa~pOgAHL)<2;G;$dZ;VyLS0XButfySkrof_Yl)qFYu$TuBj-aagUv6l_S&0c8nog zI!#GO_Z)9wevrG@gY3z*uf`@?oM-twFFQOr7IE%!KF2GSRj`96xpzG4nXpOjhtJEhx#PL)YvTk( z$a&%_96jfb)tZS%d)!h3(dy8R#3Kb7m~RrI%0`^W#u{cQ*DY7cU; zw(OyAD<`uL@V%Uq4Uc#5E+X4weca<`d3P{%`~I(W1o>L_$BPL!+`^sR$kMWw`@?r} zK5lcmYvFwDjC&D?>m2PT^!*iL@LTV{pG>Ltlqa7b!M!^>Fu5eUb#uPGdJXbFcOLG$h|@FgtH@AW&o0vU#-{~qc zV(WWKo=B@>@W3QvdD=ka2O9R+FZkE7&Yp;M_9^OYH9Xm-<@-e4ydQ3i$-aS~?rBW+ z&4}9`b$dGE*7a{&9-PUL&SD6BWuKn>Bg(?5?VW7tRj(<`s|E$*o)_vYQG<$JK8&fl|;_XCrDbLT<7 z1$xJ|jtLxx3g<=Go*?g+Yg6S@Yo64v(T{g7p$wOhPUsKN8{i)9@p%n-X(z3mKL6gk zX4CiXIbLeobvEc&`6ut67_1J5bO*X~s16JrL+7CHBJT>P8BF>fny%mK;ixC`eNOyP z1f4%l84Z#z+q>_8w3kpv(s)l%k@hDdZF^nXTPL#G=-gSnYvk#iboN6T{I$n;8Zvt7 z+rCLW@0;>8+iT1X&?Eg*Z+l-FqG6XS+UaU_^g zo*$&08qZ+$i?ejERqt;btbSrvD{Uo&=Y3u*}7y`OufQkssBrR%1@LSETv zT!Ef+O>-G;(hg*$cthP!jdv4y4Dk}qah-KwU2+EavmF)ZR`hMvZ%husPfO(+SG2CU z|1zGhFn#+r(+%P4qZ9kKp=`#zcP^Dzd(cze;=1gwCO7%{IANb6jG#j=d`zLD_7_Gnx95N^ZN zYjQtOc;=mIwBz!-fSkQE@pfw=-m3gp9^l;@ofs*`MSc&1|C2&E)4Y?gp}q%4CtkYm zp~*wgP(J4lWwcxLp}{Zv;AzBIU)4?Bn{Ms4tGe&`@ zag9X_xcB6A(MPpZz8>1!$W`=rmDaJY%EyrhtgLeBTTHLm(kh2d<*Mb zie*Px+D4D!#%JSPvE8Qdy0wLLH-$QTQ_|s5hnAPtwo3b$724NzdEcYE@A#jS|J2^a zT>}!{$yN7H(5AzCneH{Q&HAp|X5UJF#O*W0-xTpm#IKIH?NR?LBVLR6LU7Y5r_mn! zzzXH9|G(spDWUl_Zu^M?-Ct~c6Mj1JOCRQVc&K8(dHKYx&eyKX={J&ARvnudAncRG zXI!>j=ewyK80&t`bRNgwHf%rjXW@BlVkghXc$Ri2b@A&whq}o2!Os`3pbX~1*A?#} z9pnB$DQ^0Xul^=sT4~_k_wpv-FSQ|$#(o+67l*U#D%@U=y$v_NuYN;Yx|q*Vk1e$K z*51+6_Ny(~-K>qsI@5Q}@v-tDd2_s^etNL>_*veC$+>*1TC)5*_b6imX$C1@nFYDSTicN5Y@7(+ zG1|Pm5@(PRynZ=($l9boTjs;}D)Aw2v_IaxxnT})5B$xJb8f@7#rWiPA-uW zFO*k}_pdj8Qz^4XyQW-Hd8yA|SRb8BQHL@d40)v;QYKg8mdeNR=Yej&gSQ0vMta|T zM<{RJ5z6t>xnZngyK&5~j9`do8f?9W_#BER3} zKCUsIP45iPejBpxv58O@74lb$-*?K!e9!0yZ@HZ7Fx4^E_PyxjWq4v{YS_km6 zOc;w^alUj~@K-()%8c|Z`<*FH=5QAkj@Q%`JM}pN z`ri4jx!2}-EKXBo-Oia8VKsP9k#ASQonvZvJ*W7s2j8j(hCBuv5dL;z_eX^9(iFb~ z;76h#?@vPpuTz*0M8DY)Ch!;!ry|k;G#|-4$-^@dp^pfuiKm6-7CIABs2o@~i+TE}^|WH7<-Bula-B1^B59BeQ}N$k`Z2SjkdFb)VXB&D9I zX}#JsRIE}nr43g^KsvO*Gl7Ib!KJG($oL$bN2b# z=X>9C&sj^b&U5ErpYhq$zdg*8+<~F)pre0#aQE`oeAv_7S0r%*okKp*gD*? zr5FVf3@dtBxiq{i&Os_Pehl*e2WKFweCF}fw?cF>=9w|V(C9pmW%<^EiZR`};*wA|ZeX^i#X6Qi#}PCZPd z+sU)?Fa9wGIcqHc(=pn+2(=eT{3TOu_SK1A!te5Lw`L{yX9Z2J6T4*iNkq(OuTXjT zNxCY~8Obv0e^X_>tkM?=!th*v&((l;}ze_7&Ic>g)U{|#u>KUHD5{|NeGjMn(8M(*9KXq);@!_%*Y zPD8JE{ugV|bw>GJouKbY(3_!Ezs0NgKLouk7XBm9Bhb$|_b(;R0WO=g@C{RZe&ya+zbv-lT7UxGgE=oQeXP+B%Px&VCvy3x^t&zOu0Vu6$v| zYR*(DboO+2-V57s$Hu;H`w<qv^*?j%M!j;tqaRR34&I<7R1>JGf+SV{;rEF*-ZoD3mst-NKf%;aipjLw^5p z0Rau&vMBquMYjdqtk%)r)iK!RrQ)wxGuy$;CNpiaBecTC?S<8MHk(~-1!rf8^8I+x zE;Qpgziw^*?$#FLp>tp>^Uc^MJ8k|;a%JNT_8ZS6i&8SAOHTbob2BmYcEtnY*3z!> zsD{}6SAOtfSty(z=_SF@ja^%dp4wt>o{Qzee9;-B^?7JnSe<>{9sPt5aANgGOIVd{#^YsHhbPcOb)A? zIM+xlE$_@1hI%>{+911nH#6@q1s^vxvZ)6&gF&JdBnCiC`$q9yP}%_ zmfhJ_aC=Y7Ta7yr!6v);&ek>#IwgB#nnV;!h3Z;U!8Q;pvDn3bF_CJMmDWRUS8ChJ zwJlA}_UNYqONo0E4qN+;Wh{Ws4l4^=LPo5v!ns7)ovH5r!>E|<^#?MQNwS-LuU&=9 z-LeIrbGi8%O$6CO$JXJV0X}5dZoI{u3S|{YiLrIfTiZ4E^|vyfGZyGhy-|nzLG3|2 z;LzOFx0pEvW3}$W+aP35;sxeyy4y_i`%1>S9C-chjAx=zrskb}7pS|>io&JDCu9%f z3E|uA{9gXkOk#BB*-Bx~&g+$qqO;#2B%Fi7W$f*9s5{q`{ziw*!sX;o2;UBeCxy+7 zuR_8%cdg-XKJzR2U+mD_vDQMoqTw5LsC9(W^Mu1g4i5`S{}D$&>F^ZTaED!A$bBAu z8}8yKT#cNBce7U%tb7A|RzNt;OL`{uGM^ve9sk<-cU%s+l6bX55g|iT+F+K3mmpNEIO2CQSQeb zQk+2ragfbG-^UY-!A2njR))?xY!*_MD;-UijeEP0yc4vcdmQc%lE)E8?{v6dNSUZV zP`qOfj|gdlPdfUj!xKX4#z{w?a`?QE#GiNc1&6>Dnb*OkpoY82{oU*};vD#>tq*SGxxXekpk~wD{wEJ}$BPXUScDDrAXKcvRcS zc)q3Bh|h=D4&SASs}!F6#`AINH>}=8`H&2JK2)v>ZxKJ44X+`+KJn1v6G>AssC3G7 z&9mzUOIbJZb@7XN5B9IbA7Z?`;yu)hZp+#&)K{>F`T*&|M0=>O zW>H?to(k#S>FGcv(4N)2faI?JFnAw3Vlzk_eu0{<{edSuxpw;*6F)Zy=w`w zyV!eT?=orReOkbKOzlC-=zSFL$C|>@z8&#vua$pCqwxO`T19qV@1S@;vXA$p8{D1? z?ZvKury}Rx^^k@)@_xajhdly$(xJT})KT8;K5E|W((Xu`edjwj`>9tgG(4@Ahcqca zY4iU2VcrefaObo?Hk~foJzMkg_T9GL$Ld{lb;v&NEOzXtiN7178PsWSk@BGLU%iZI zdq!>>kjZ)8+sKdMBOLK~`wk~7e=gckLRJdbhB-Fn{nWaAEg)Zi!TZp=To^r0-U?$d zCU5OSdY9u_`64_zzo5nO_;Q;mE#HH0Hwc z1o*N%JM2H^BUj(%mCs-08&}$9%-FjC_eM4;&TWdD8d|%ZFI(GGprK=w-;*RndSLZg zi=)mg6=a}Qw$|9r!&A}&i@#)Iof(!_a`#`!ulO}um5lVbH#u?+D7_EUnaHS5rQMq| zR@E=dooP*EI<}P7;aZS4+hzFW0ZHrPvaU>C&cF#(stwoA zwe_!oin;*0fjL4^NTnPRGS;fTS5h?(i>|llkceM%i3TQBbA=7`Q^M=1Gs0hI{UKx? zCSAV5J18W)2}f(+rtBLXs$FOuwM0mKOC9DMHak?hD?!a?d+dxH2cx>hkJy*rvJ~N+5`+a?OU!cw% zQ5<#5#ez|OgyX~DI|t^Uk4>*&P9wjv_xDEl@T%~SmcZ=MV-L<#+6QIMp5;8F!({fL z`|SgF^Q$uHirqaO{=dD8TIY{wA5f}Dx{)Q#1KHU9hMI3`UlXHqG@r!1&b!C+%9%P( z1>{xdkVqCn?Tus~)3vE_YT-EFLNH%WjqAj-4O2S5Sl>+0Rr1Z;&{Sp4rlDfQ#@RwV zIrc}d41(_kd7V47Zt5+X<05mvCsX0kb=G~!%@^Aj+IhbA?e3zC{Qi8UOW$AUT;);6 zt8;8J*o*hx7vVMaV>Hj*h1&l%JcT-?t`?b8g_>u7Hj)WrLj9k(aL-bn3bVW3@9i{vZFKQw)aa8!=7$&ZgCD1MZ0RmQIUKKsRV4zbR0Hg3c-4qZ+B$3Tr; zjr>kgf7kQVS}7>nZ(tGn|em#;s~sM{&G*7d7f+CcyQh!>{T zju)UGBrNf4B_!d?VsBY|Pubu=Vw2h6z%4JceP-%YN~Uy=<#{Z%9%VXi_7qqizH~1! z^E5lSf&V2tdoN?D9@{&6)RwKW_gpG$Yi#(JJV|^eJ*s@hSa*H12 zIy$3VeS!9!-2v*^(>z8-`iOG>j7l-1ePZSAnyHt}mE2+U&Jw%nzcwdm+fi6c^}3c3Hlq*s?Q2b`j5X%xJy5w_MxB795?z2#OnEfk>HoeRlmJ^sqR}lCXA+j zd-t25y^-BppjE%Ud(OH0_;n_h?7X}7;i*1*`n^22$LJoORbMv{w(|F3p1qNuk3%2l z_Z&aDe>vg)^#uLh1g&#}yis^RP0;@ct@cpFP2p3?BP0H6pm$UMcRTm_3HRF)^c~P@ z4}FebXVs|wd;i*(m&a|1!lphCC;abB&_;>khO7A7B(2KjwlZg(OsS;EHN5~8y2x57v5^?yxv#u z5Ph3{e<1rOM6zgGUwI*Hu$5L7(c6RQ0dIU#&~Li}m`7vEmdgnK|pxJC~K z|54HKbGWMEKksPG3*>JO#ehZge!oX3UaUSh5hW%+377|5AL)kNm{>c0+sP)0f2}p1#wsw6atBD3U0BEj-7= z8z+5|y*EC*CM@FNX&*|6ox-c(=krSunega3jJZg7>NC6%pW@r>Q0bHzCXhz^X#R^w zzoJ89$v^iF+>?e!#0WoRB6efMCz*Pquw;_@;P1jWYMsn~&nKifBcuKJqX>>IDMr_= ze5CnFCcZ3q44%6x2tFJ0=)O+^3)4EAnscZ*kA^c(Mn5ru&SXmGSM!SH+$+#i z#PwWl_~#txDcPsd=bCWG#`p%Gb3wur{2rN1h0<5P=S)SG^SZJRAevTlzJD9>RtEQ+ zc|#EFG5*kxpu?>5=cY?1EZvB7N^*~MBGhK7)Lx4xsaS{HPbZ5Ur2-t_r@B1sew4R)?_oN?*Zs*$C1f&poOr|ufclJ;Z1T~;}HJycvL$hq#3KJfhg=(5Sng9~?0 zRPl|!!c?LphB*20RGrnYr!>4{&KdnL-1QZF|hlr}<%A6r8`XClQJ%?iM z;y)atmEQ3fE%#$FTJCyxY7HGg%t*%~_mZg&mGtLRubmwlXr?jh!ERT_ftiRnDExBEG9g6SiS!w9F_vN}=`?Ji zd8w8Q$F9d2f6ZCjtArV=v(?$m8uN7)^daGmZvD+9>zL@9?7K#tjeWuSQ~egd^nALH zt<9n8q0Y)S>tH&;Q_g+@tfa#8vgZm00R?TTMzgUQ6UdUv=O~@MMO3h5`!&9Wi8^te^Tpw1E_j$6GCxnP_e&T5kFk9RkKkFA_K6ks0Af5Mnn*e3Gd*o-esR z{7v{qJrn5pgt1}|j>FeZ1X>^7zz@>MQ!>FiG7D%!Kk|WK>mTU>whs42%fr(8@Yb2v zhYR0&>*8!E(_Z(HmQ^cKDIb!;Y>dKH#HX7~^wIiI_qgeubvpOhbj8o+PUe`?>yB&c z>>Gn|)^Y4Jq0ZFJU#9g~)#NSE0sBx=<7&+tbXHJ(YGOqDJI-WMr@SCw^ekz!_Y1sr1N1iZuZq&Rxfz z4fY%Cd0}GKZ?d{hZE?sg}nsm1|3Df0n{3 z^RH>&&Fkl~*CN!ur^#ni*>6ViRk-+`gy$4eK2N!7pNQ6_`euS*)U0uzE`DKpJ7uLi z3AJ~svVDX-IW8`~TVOjX-z)rR`c24>c3*b@*(p9(j%GiJ>V)hRw)6v9Gs}Hd{g=ASU*r*>IZVZA2>NfKVbPxKQOVHHrr~xvrs>v z=W5B1^qaGWq17+UA?>0ol_v7Q`KCs8>0cW-Gge{UwAWF(t(EQcUvK-?R4RDqRB%{( z3?H7Z7@-YPZ^>U>1@`UWf?Ltqj9MK|FlO~zXhT((>gP~jO}XPQKwcHdP`V_YH|Og^ zP#n9qCTGr{uYbF#e<9QuVWwK6z9&Jdv);csgFX}a$cy;A*>`^wJ+_hl&((UOJAfuiM@mM zt3o}mokAye4ZPQ+=%*jX|5DCQT*`fk6(Q|+-1=LEzgpTPZ?316UT-fu$=&OtRRHtffcHBJVGgFP-m*|Ig`+$6JsEVOCeX z?ZHaQs#@Xe{4?!S98LJY3jd$Nzt`{S4CEj`G1X9fc+%)A+tE{n_MXkCZPJEKyCWZ* zoBWjWV#|d*>+DI&NiwU!9bFo2Sm#l;PNBOp?S2k2t)(6WhxvXAUS4ZGW#on&rRz*1 zuce&TCwWRg`u#Way%hc_6V9zBE$qD%pOsc$^ZyU(l6M4=;B^)!R zkQeR4_5Kxy@?zt7FtXQJ@wZl^X(7N@2mcF zDDUHAXFfzYL2g3*I^+4+6z=D0QJ^iR@UN%wo~DAXr!w|{Y3#=6J8s6lk~*rot2V52 zc2%!+Zz%gP>Qecp$?DvRXRF&sCUT6k@4&8l{0GlgXCHvxVCqdpwrR3*{DFze?8pRT z7-{(7bSmF6DgIP;#U$;jE-3!pbZUGRcJG=ZBL3D*&6%)!3h4*yQ+eA@s18WpzMs%N zo>wD_>f)M-8;!p}8oe6`nw7!PB8I{IV?#E|Sc7!RAHHL94q>u3;$F>Vld~x= z=DVM}g|=`fVZ90b9nIN-SBb8#%I}(zp0@@Wv4pBq`$~mBKKn-aB-1ec&8a5lch?aP zXDRNHKg~&M!mf!*c#O=_k4;yFt}ms|)#i6q`Y@~W-!^jzZttTH*L#Dp$`t({^SvLc ze%6jXHr+@%)K{~lt*grInWzeTCQ{+D$=dAuC#uGEmg)n{4>z1y#+c>zi@$>O2H}ri zl?ulyZwZ&Z@|ABMxaLclF|xWIy?pf~ZLz*~qIz<6_VZ^bcf!ACigK|aG=?svg7m9W*p5v zLp^AnlKhs0k4g*5B%8oX{oVuKkbk?VecfglF zQ$bm3EY;bjHHs62J4ksq=KxM2Kmf|h$zxYDcvuA@FS zrB_deUO+y)aT?o~gg*g6vP|OUL*&wRNghawhG)*xR$F*G{FvjT4e( z#n}B5mBsrfmMYE2H#K_7$lzm+HT2WSd8}sY%Lw4`aV6W7cf-x6o$j zb2(G}UAm9g)U#Cf_b0#fb^1xlD;2(i`bL-`^*j5MvtjyMrrlZVhQA>S!rNT0Gvm{$&SuOd}@1>qr81#Q%QC=wvqD5-&4?=9-C@%;lG(STtgkYop7`sJIS0NLpnT(;4uc$L;R2-b=u60>(kULS6K=@%~C_TlXuZ?aPU@ZM%ZBNiU?b z)4lIOZq4MJ{KM0CI9X{-4%#(;czAl1spBWj+BcOwS*@|KI=2&j9rG95bU%gan2{I$ ze#7!VtNw(soIZb@?joyaF3!7UH&@OpY(H;aH^nxtI+cO$WtSd?c&2~K-74z|L;ZdQ za}&j(xD=1R@rnGW^ONX-O6xnyEOMiKNkg5^E?3#=O!F%4G4b(uzVA8t?Q><@M_Rk$ zWlMece*Vbu_QiO&#CR3Yang6h@%iug6=uA?sBL}|z8^V0eFLI)FTUpPD#*Jj2l_O0cXd@EV-s@o^}8|sh3V%ATkTEtUuh7((rn~T z7;0m(7abCd>Pc;mGsjg=kSBHK%o@T@wU3?IPk(CUN_f8fTX5SsgT2-T>VK2`Z^M4W z4EFS!bt`AEm(FYP4EE~h!x`+QyO}eCz54Wv$Rn8^CXaPzXRv1+uRAe=y~drRGuYG5 z)N5?e_iO4enf#r50b0+p^Yv+G*6QK3pG4)~Px<$RrG7>AtTK4?XMP__ZCdwhJUqRg zIM>TBZB*q+nU(q?o@qDdMpNv`;-~eT-v8wIE#Rm36IJ}qQ@*G9JikK{BFO%jy*g%& zTz3`y2hZ1j5Bpiv+gape?#RQFw_`say9MCK!4$f^RDKuryVdAC@WVX4^;+q50{SAx z-7|7yj$Aj!JuelbpLsUOeU`mJJDIQkka@thT36I_R||Vxeqd&50G? z$4q>Ii|-O^$C=`LZmzxW;x)IF=1iyHolDV zI%2J>kok$Sw5>B~$xT)(KOt-V?DEM9(!~8T$mW$(cj3-GK+IXk&X{$9%P;E%=B|_l z^JeL7TH&h$uL{;)yG&soMhB2Jb3O9?uO_dWoBQ%oU!pSA8a){MKJos@@GzHP{x13L zDwE$6G5LK(;b*nZk^FWU`JF(Ys5#kjP-T@0?LAX|%-7vi$?_U`y{jKHl-GM>@o7Gq zEUz9HUl%x2c|AgWsj>0tKUTaWpPjDA?vC*`O@1wLCDORKG`s}l8tytw+IIwk#d<+!UK%put8N1f5xJ$4ST(%sdfzVAJxPjRc> z`nsyVH84iS96=%(6xSvR#`iFDqP9am-9~IvSlfm+4g)$vP|%O5WWT$s&8Nns|95? z^V~+n^vl8XRg87~WY$0*rLioRJ9wdjv5}t{>)ILX2s@Q?b0gBFIZt(1nlEX7%=~Cx zb?{^6x%sJE&#VOSrt;zKsQf;7*_lk1U9f4$%B7T(pt2Phv&mAZA ztKe5zi@(|P!)N@_UbKEypRD&Xje*AL(!4I<95KfISK(HxyHWa(V+xrygOy-AF9pwQ zO_9^ukntLMslWI-Wm%Q8eS_Y)(LdEyq0{&EM`@%K&WM)2kTLITCOz#o|9bvo(*Fz6 zU&T8^-6=H-87co}uPOe}Is9CCL|X}bONWqWPjvp1to1dYRi23_ zRU|I-;(l+m=2umrE$=MpH|asHjkd>>Xr-~Om$+vs}liZgzCNCv1#0voJ?ACr8SA>;i zMa>0G+w}ekSK*nvqS|K;^FjR2pCL@eqw-T+J`TUuVV)4^{d-Em87XPXCWs|euQNGm&+Hy7buGZ`91I_8ZTM8L?clwA*L{FbW z9d=>Vwp0E>`<)N3Vt)eSK2B)jD*?Li#qsnoAoACMJyg9OO=z)8g0sZa#Tiz^{>fdO5!y zzl}M~Z-$K?dw!93gy^)j##}&oOIOMq{(G83RPfvc>YWPx8+XU5Pj1uuu%~=oP(4)G zRl!3OD(`f-+2}XqM`Jkm&`vUnq2t>%5x}GOE#hY_dQQ4@+UGNjIa7;O=CqUfq#;eb zdY`PY6;C>}^&}nR)BcYgw1fEm4?iv>_kc+MqW88h5U%!p=$)zdgJ|D}z75fS5bgW$ zdqC)?_5|7QOsB%{Ojo48GhI3U9itCa-pSWB%<=1wQjdrKj`xhTH11Vto^filn%yfGp@Xu^3z@g)j8vzFr~wo z7_t40#uoMSCu9Bm&A3-(H%$bTQDyk;XO%Y1<5X^`+=HerNQbR)U;SiF@USU=g)>Sx z!Dy);z3v?YXTHpRZnM$7r?~e{Wfl&r#~p#G*^sx zIcW@@n9>}8@%3xUr{Y$+%{`5w=ACP$L#+E{wt}_$+9}p}Ix~qnqIvEmGsgaMqLOzj zL7mq23xfAutF=xld)m0A(tBT78IE0ZGk#O)`zwNQq7s>3t9zlT@6$m$b%>w(I6n_o z+EpifS~PAdjp(+YO1XNVzT4Lc|ExafvTsPV&G_7jY1J?p{i+(r1?ZTGUV0-sau&IMvyr5U}>lfY)4*dJyp1dr+H~Eh_iZe)& zXK#L$vp8w5>DMFw2V(BxKNzEF z^M=-3L-E}P9>#qGKOcXsX*)RJ{#*Q4*w)ziOM8Otolv4L!r=X1i1|m)5YVoisSXM} z&G)3sPZgb3XiH49EILZm_Gcl*0JOMVIG^I^?pb0ABEmWXT7-E(#pTw zt+DbQXOi#f{X8u2q)U&^fVal-k7xpD3`#X{UyN3HJsG1PgGMLhOm*-jo)&x3g+CtS zm;ci-TH#N`Xt{4giD8Y6e@Bd#`&oPbFX-0~PtgA*LH~DX z^_Nv7Q{m~(xBbwKj{Z5c`oqxCRrK@f{|-2MUNn{jCV#gi=-U(YvIM;fTK%OD@4X54 zBDDI;ahKow6Yd&!ydhbE?uhe7^j8w}A0_Cgpw-{14^#gC8rt-)Fi*l#G z+2Q!FLU8JTiZl)JzfOX5M*O!X=sOei8ff)T>Z9fVo`m~G=xw+wEV&OR+#g8LpM+Nb zH0Jon67Gi*^mn0mgr)d@l5qbSwE8D6pI;{2Ulr>zl*ai9`t1pNEwuWxr(OCsCfs|W zFUH(I2tA&$YX;?iH}rXE&51-mlJNi81pNmI`f!5&GiddnT`oO;0bO-tsXzNkg8v^9 zbY-kdRQ_352VMAAKdAKG46XiG^DoiO34VR2X{Z15I|4o)@8~P^4|MX4WOVowA4<9- zyYDUN`$@i?>@D8+mO|%7d#w0IZra_tr7%1oSMKYzH^iAQI?czNi(IfK(5`{PHojwY zcjwvoy0>)n_Bo~x^!9ai>H;~AoLa1ZZ_z*VW$0V=v_${jrhf}f3=7RSqzmooR3^HG z#@j;UWufuC(DEDq3zq~P#UfWt6?!{v3v@A*jop1***Va^$!6BwiDf>Lbh#el(&GM2 z(FdQLc;4C5F}O&dVJ=%;*x0Y*)BTxC&U^BHHx6X#EOPm9zGXFcA4_0;ogKr86VtbJ zZ;_CdB!4wtL1$S-zU-k_G17i`>f$8OeqAwlN6YG#wN0xEy46l(HOyRr zCV6nTUH7)K>-i!lE_fc?ZqsG#T2{BMHOIEw?^?|_tnQdDYQws=6>Di>gmVH-uXDJ+ij#k-My*7mCY<ue9vAYncN}0R#Ows##Y+9L>S1d?# zkz$ONAe1mw`-KHvlo`Zt5o}u5w({<^cecHo!_!vWU1(aqyrnf!vlqJd9IyPby1%w% zjSaih>I=>;cE_a`t%Re7XOiUEE^j)e+Yh5UY5TWA&j2D+bMCQq(pkqMcQ@x1gAR_c z>n-Y{NaQAdZWCO=HFi-+C>Xj9Kp&->Bzez;j-gHyz@7P~=H|5sWrpL_qL0DLu1}24 zjVrS?`A~|Y01K;^d#RYFziDt_3kUs~^F(Z7jJ5gFUA=@lkl}4CtTcbty=?6cwN4Se z6TBYW4OZ4N=X11l6QU1^zK69j^B~=GrthtFkDGK4l?-%qLETpt3g5>XRfzJSUD(ci zNZ3I7_J^JQDd9%@J+IuQlTf^xUscYv=d*~`#I%z2t>!HaovgJOe-)qR8M>dW zS=h~*Rk(?@z7W3i!p-(wZ$l61WZV@V5%x0Y6TY9dqVQh$g)Cg>vE*sk!Wb?jT?d7P zbJWrENt4pG*x^!#Cqcz)?(OR*Jxb98dN%U9+_~r!@Uki9cu1>{Q&3PIXvP} zI+M!RlW*aCw&9?4&q{!}hR{=!A1Pk1ZsL%5jrg77xlsgQDNWK;ef0ObQE+xOh-=bcF4Zlab5RxA0V#Ieu2;Y-J_)g2c zNWJ1^m(o9Pp2Y=1$xrxE>b;Qmy#6}t{Zq*eXYYe4%1-$dh+Aw(BXWCjSiQB ziZ3sGnEC-;Pkv8`{si?^h#QvbeTIzVi82J`{k$y(_CF-Z}%cR56RkR)1FA=_nbb}ht#zlXD_Hv`e zQ215af$(wCBYc8<3yEi+5cwSy;_rmRv%+@=Y%~J#KUawVW+C>ggoGm%mxV`u=(3DacvP#%C|G4Xe{~H z9%qWV(PWi2O3WJZDb3y}ESYQg`8yqS(2Rx-U}uZWia*@0I(+1hv`j zVc?xM>52B9>0PUTkNvt|x92hH-KO^3m~zS0Wi;Ok+UqjMh3UG?bHcDLQ>8o>>oW6& zV>Ov2!oxKgtN)mt$s70D%m#zAGd;rb*_my^(VEPtFh4tUP&iVPc~Ur5o6-GPL9RB# zMU1%DW-bb|wV5jFZqPnEGglbaW*UWuXJ-}*bF(r_h2yg_x)++0N;8_@1=*U+4&lV? z%x>X{nvBj14JK+bhlS^BGHMgl?96Flx;ArOm?eL;V18C+p73yOM(4S3$#h2dM+fb* zG8+umW`>RZtjvg^Ycl(V`I^ij;fdLqapC#dnWu%LvooiK+1Z)rh2iW>l`2qrcBVl% zHan9Q=Ib&!VXh{V7mn9vbl-F^IxDkHI5I1vm4gNkDf()~nEckn14%`81KPkg&rVHE+YJIdF+z);P z)cWXS;4zS4FmoDYc+TjZ>xaR);6AVsWSGz7!2bm1L1ddLf{%eaL58Kw6X2&oo%j4f zQ2Sgz1Zo|{bScva-VbUW^#G`K)HbjPZUslc$H9HzPVfoPn~fb^VQ(>H(K*;XMB#}Z z*!X@{r9AhCR-Y1@lh;HK4}={<{R=}h9o?I|2b}|fb@dKPYY|y=q4_8dz!rA&4R&{Q zZ4b3fhHq=JuNQq?cc@!i!rm_IOz0tcLoRn2M*C@;O7?g+w%yx?yZeVYd=n?-O$lJ4%Vu!G3VvN|-%xrha3l0`1@?*lU|QL^Lq1H<8_fvx>rF+1{LlG2ac(AHvc zV36oy?nYk}1=icw*S)!;FYMk@9Nr#AF$TT;odbh|q%bTFAPhvay??l4TR7aY88^b{ zB@06+$u`>iY)W>69sQfTBOd9cx;y$qv>ix|Hskz8F-0yVx8DAq?!n&Sj{eS4I7Vk; zi$4lu%htZ(-eO;OIM~%Mf%&kFK;twj#;{{>^VThBHk0;_Ir1xBBcfP%E|(=9<$5TJ z&(=li3BmVn>NNuKyaPoY#aar>NpnWt;^4rx?UB4~F_PRUp5oTQ;s6?ZANEkkCc2=K zyVui1?xx6a9~#<9JD{Bmbotu91xr<9m(`%Zn>sl#xVfXh_k&dBf&Q?gzbmxmE7|rB zsPb>>-5hpx40mkQiv!uYpgYwlHkmeKd7~(Y(fK?7Gi6<2*la5ZpZ7kh(AJL4-6R>+ zA+^`URouFfniz7`simEU4kj1LK(Tw!rd@Tv&`85rSJVYHp)Qaf~`#UyLqv^xYN_z1| zIeZa!M50b=YyZ9d10U!QQCquKRjT#gEoyhff0>=_iXwYocenOO{YW^IofN_ZXYRHl zXtcUI!ZW zEB=Dr(tCs0JAtO#?7I=#o#*rK00>hDp3bP>#*JF5Jo{!G^bdA#;w_yS3v8t+xzT7k z84L@>&R+Wl0ROzBDySL3Yo2k7-T6^U*JbY}@Eh616~xZo-!9C^g5ZXR3ue$P7;%(c zAtL=Wrpzvu_cD8XPe}RQA!YuhmFH#@$Hy%+yelcy4++KEtzKAIc4u3`3EkMu^!~u} zM{Zn2d}p%>V;KQ2FQAAgj3(0C>UcW``_%Oq9;5tkZfP#)2IF=%i%2nyL)w0mh$KWK|sMyPsW9;*Huex*jyUPN{EuuYY}^K*bX~5mv8)H+T0l#CDcmhA5xzT@g)mp=l5$I;vux2XW|x+Q^Ti$wP04 z$(Qphd(*aJbkx3_oeDat^KrXjJ7w^3iq8yJ1@p2iiaYl5#M*Ju^xFL0tt~c%2|GK* zd-XQVW~5_IEP>b`?=JOzwvU zm|^PmYTrOdSE1y_6w2DmmplB~O?4w~OVcWpjs_Gzjlx%=dvllrE6H*dSb<_kvJlR7 zsI{-?`3@I2lz-VTb*Q|HR^Eke4mUXLa@gl^*x?R`J00$IxXi-05(y!+j19I6Ua^ki#Pmk2*Z&@VLX14o^Eg>+piZOAf1O6DHpd=Q?a~IN#v{ zhk93P^6jwM;VOr14mUXLa@gl^*rE3HDV&`S_d49?@PNaE4i7mz;_#@$V-AlyJn8VX z!?O;bcX+|!C5Kh$9!&ln>YcCX28Z(i z-05(y!+j19I6Ua^ki#Pmk2*Z&@VLX14o^Eg>+pGp7aUUUugJ`#Yj2MEta8suU3-qc zCd6$HKdPGPUuwY{9ZfQfK@U@A#4B?%Kk>g5-(q;=r;N`h3VZ*Uj-O0B={t`n zrLUTw_!M6=KZWOY_uFu2i|Gf&CwI-agbG*Y_|-G(?l<5jK5s6-7dPIm4@;6$^lsvl z47~AtBs>kBr{6XR*8r8;u3Zhfp%{vg0v0j-{DIiNN^q{x>Sl B+8h7? diff --git a/Android/app/libs/armeabi-v7a/libssl.a b/Android/app/libs/armeabi-v7a/libssl.a deleted file mode 100644 index a3678fae4a7517d89ac5e884ed8cd93065d8d43e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 512860 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

ZQ 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 diff --git a/Android/app/libs/armeabi/include/openssl/__DECC_INCLUDE_EPILOGUE.H b/Android/app/libs/armeabi/include/openssl/__DECC_INCLUDE_EPILOGUE.H deleted file mode 100644 index c350018a..00000000 --- a/Android/app/libs/armeabi/include/openssl/__DECC_INCLUDE_EPILOGUE.H +++ /dev/null @@ -1,16 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * This file is only used by HP C on VMS, and is included automatically - * after each header file from this directory - */ - -/* restore state. Must correspond to the save in __decc_include_prologue.h */ -#pragma names restore diff --git a/Android/app/libs/armeabi/include/openssl/__DECC_INCLUDE_PROLOGUE.H b/Android/app/libs/armeabi/include/openssl/__DECC_INCLUDE_PROLOGUE.H deleted file mode 100644 index 9a9c777f..00000000 --- a/Android/app/libs/armeabi/include/openssl/__DECC_INCLUDE_PROLOGUE.H +++ /dev/null @@ -1,20 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -/* - * This file is only used by HP C on VMS, and is included automatically - * after each header file from this directory - */ - -/* save state */ -#pragma names save -/* have the compiler shorten symbols larger than 31 chars to 23 chars - * followed by a 8 hex char CRC - */ -#pragma names as_is,shortened diff --git a/Android/app/libs/armeabi/include/openssl/aes.h b/Android/app/libs/armeabi/include/openssl/aes.h deleted file mode 100644 index 245c552a..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/asn1.h b/Android/app/libs/armeabi/include/openssl/asn1.h deleted file mode 100644 index 05ae1dbe..00000000 --- a/Android/app/libs/armeabi/include/openssl/asn1.h +++ /dev/null @@ -1,1100 +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_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 0x1f - -# 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 -/* 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 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ASN1_strings(void); - -/* Error codes for the ASN1 functions. */ - -/* Function codes. */ -# define ASN1_F_A2D_ASN1_OBJECT 100 -# define ASN1_F_A2I_ASN1_INTEGER 102 -# define ASN1_F_A2I_ASN1_STRING 103 -# define ASN1_F_APPEND_EXP 176 -# define ASN1_F_ASN1_BIT_STRING_SET_BIT 183 -# define ASN1_F_ASN1_CB 177 -# define ASN1_F_ASN1_CHECK_TLEN 104 -# define ASN1_F_ASN1_COLLECT 106 -# define ASN1_F_ASN1_D2I_EX_PRIMITIVE 108 -# define ASN1_F_ASN1_D2I_FP 109 -# define ASN1_F_ASN1_D2I_READ_BIO 107 -# define ASN1_F_ASN1_DIGEST 184 -# define ASN1_F_ASN1_DO_ADB 110 -# define ASN1_F_ASN1_DO_LOCK 233 -# define ASN1_F_ASN1_DUP 111 -# define ASN1_F_ASN1_EX_C2I 204 -# define ASN1_F_ASN1_FIND_END 190 -# define ASN1_F_ASN1_GENERALIZEDTIME_ADJ 216 -# define ASN1_F_ASN1_GENERATE_V3 178 -# define ASN1_F_ASN1_GET_INT64 224 -# define ASN1_F_ASN1_GET_OBJECT 114 -# define ASN1_F_ASN1_GET_UINT64 225 -# define ASN1_F_ASN1_I2D_BIO 116 -# define ASN1_F_ASN1_I2D_FP 117 -# define ASN1_F_ASN1_ITEM_D2I_FP 206 -# define ASN1_F_ASN1_ITEM_DUP 191 -# define ASN1_F_ASN1_ITEM_EMBED_D2I 120 -# define ASN1_F_ASN1_ITEM_EMBED_NEW 121 -# define ASN1_F_ASN1_ITEM_I2D_BIO 192 -# define ASN1_F_ASN1_ITEM_I2D_FP 193 -# define ASN1_F_ASN1_ITEM_PACK 198 -# define ASN1_F_ASN1_ITEM_SIGN 195 -# define ASN1_F_ASN1_ITEM_SIGN_CTX 220 -# define ASN1_F_ASN1_ITEM_UNPACK 199 -# define ASN1_F_ASN1_ITEM_VERIFY 197 -# define ASN1_F_ASN1_MBSTRING_NCOPY 122 -# define ASN1_F_ASN1_OBJECT_NEW 123 -# define ASN1_F_ASN1_OUTPUT_DATA 214 -# define ASN1_F_ASN1_PCTX_NEW 205 -# define ASN1_F_ASN1_SCTX_NEW 221 -# define ASN1_F_ASN1_SIGN 128 -# define ASN1_F_ASN1_STR2TYPE 179 -# define ASN1_F_ASN1_STRING_GET_INT64 227 -# define ASN1_F_ASN1_STRING_GET_UINT64 230 -# define ASN1_F_ASN1_STRING_SET 186 -# define ASN1_F_ASN1_STRING_TABLE_ADD 129 -# define ASN1_F_ASN1_STRING_TO_BN 228 -# define ASN1_F_ASN1_STRING_TYPE_NEW 130 -# define ASN1_F_ASN1_TEMPLATE_EX_D2I 132 -# define ASN1_F_ASN1_TEMPLATE_NEW 133 -# define ASN1_F_ASN1_TEMPLATE_NOEXP_D2I 131 -# define ASN1_F_ASN1_TIME_ADJ 217 -# define ASN1_F_ASN1_TYPE_GET_INT_OCTETSTRING 134 -# define ASN1_F_ASN1_TYPE_GET_OCTETSTRING 135 -# define ASN1_F_ASN1_UTCTIME_ADJ 218 -# define ASN1_F_ASN1_VERIFY 137 -# define ASN1_F_B64_READ_ASN1 209 -# define ASN1_F_B64_WRITE_ASN1 210 -# define ASN1_F_BIO_NEW_NDEF 208 -# define ASN1_F_BITSTR_CB 180 -# define ASN1_F_BN_TO_ASN1_STRING 229 -# define ASN1_F_C2I_ASN1_BIT_STRING 189 -# define ASN1_F_C2I_ASN1_INTEGER 194 -# define ASN1_F_C2I_ASN1_OBJECT 196 -# define ASN1_F_C2I_IBUF 226 -# define ASN1_F_C2I_UINT64_INT 101 -# define ASN1_F_COLLECT_DATA 140 -# define ASN1_F_D2I_ASN1_OBJECT 147 -# define ASN1_F_D2I_ASN1_UINTEGER 150 -# define ASN1_F_D2I_AUTOPRIVATEKEY 207 -# define ASN1_F_D2I_PRIVATEKEY 154 -# define ASN1_F_D2I_PUBLICKEY 155 -# define ASN1_F_DO_TCREATE 222 -# define ASN1_F_I2D_ASN1_BIO_STREAM 211 -# define ASN1_F_I2D_DSA_PUBKEY 161 -# define ASN1_F_I2D_EC_PUBKEY 181 -# define ASN1_F_I2D_PRIVATEKEY 163 -# define ASN1_F_I2D_PUBLICKEY 164 -# define ASN1_F_I2D_RSA_PUBKEY 165 -# define ASN1_F_LONG_C2I 166 -# define ASN1_F_OID_MODULE_INIT 174 -# define ASN1_F_PARSE_TAGGING 182 -# define ASN1_F_PKCS5_PBE2_SET_IV 167 -# define ASN1_F_PKCS5_PBE2_SET_SCRYPT 231 -# define ASN1_F_PKCS5_PBE_SET 202 -# define ASN1_F_PKCS5_PBE_SET0_ALGOR 215 -# define ASN1_F_PKCS5_PBKDF2_SET 219 -# define ASN1_F_PKCS5_SCRYPT_SET 232 -# define ASN1_F_SMIME_READ_ASN1 212 -# define ASN1_F_SMIME_TEXT 213 -# define ASN1_F_STBL_MODULE_INIT 223 -# define ASN1_F_UINT32_C2I 105 -# define ASN1_F_UINT64_C2I 112 -# define ASN1_F_X509_CRL_ADD0_REVOKED 169 -# define ASN1_F_X509_INFO_NEW 170 -# define ASN1_F_X509_NAME_ENCODE 203 -# define ASN1_F_X509_NAME_EX_D2I 158 -# define ASN1_F_X509_NAME_EX_NEW 171 -# define ASN1_F_X509_PKEY_NEW 173 - -/* Reason codes. */ -# define ASN1_R_ADDING_OBJECT 171 -# define ASN1_R_ASN1_PARSE_ERROR 203 -# define ASN1_R_ASN1_SIG_PARSE_ERROR 204 -# define ASN1_R_AUX_ERROR 100 -# define ASN1_R_BAD_OBJECT_HEADER 102 -# define ASN1_R_BMPSTRING_IS_WRONG_LENGTH 214 -# define ASN1_R_BN_LIB 105 -# define ASN1_R_BOOLEAN_IS_WRONG_LENGTH 106 -# define ASN1_R_BUFFER_TOO_SMALL 107 -# define ASN1_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 108 -# define ASN1_R_CONTEXT_NOT_INITIALISED 217 -# define ASN1_R_DATA_IS_WRONG 109 -# define ASN1_R_DECODE_ERROR 110 -# define ASN1_R_DEPTH_EXCEEDED 174 -# define ASN1_R_DIGEST_AND_KEY_TYPE_NOT_SUPPORTED 198 -# define ASN1_R_ENCODE_ERROR 112 -# define ASN1_R_ERROR_GETTING_TIME 173 -# define ASN1_R_ERROR_LOADING_SECTION 172 -# define ASN1_R_ERROR_SETTING_CIPHER_PARAMS 114 -# define ASN1_R_EXPECTING_AN_INTEGER 115 -# define ASN1_R_EXPECTING_AN_OBJECT 116 -# define ASN1_R_EXPLICIT_LENGTH_MISMATCH 119 -# define ASN1_R_EXPLICIT_TAG_NOT_CONSTRUCTED 120 -# define ASN1_R_FIELD_MISSING 121 -# define ASN1_R_FIRST_NUM_TOO_LARGE 122 -# define ASN1_R_HEADER_TOO_LONG 123 -# define ASN1_R_ILLEGAL_BITSTRING_FORMAT 175 -# define ASN1_R_ILLEGAL_BOOLEAN 176 -# define ASN1_R_ILLEGAL_CHARACTERS 124 -# define ASN1_R_ILLEGAL_FORMAT 177 -# define ASN1_R_ILLEGAL_HEX 178 -# define ASN1_R_ILLEGAL_IMPLICIT_TAG 179 -# define ASN1_R_ILLEGAL_INTEGER 180 -# define ASN1_R_ILLEGAL_NEGATIVE_VALUE 226 -# define ASN1_R_ILLEGAL_NESTED_TAGGING 181 -# define ASN1_R_ILLEGAL_NULL 125 -# define ASN1_R_ILLEGAL_NULL_VALUE 182 -# define ASN1_R_ILLEGAL_OBJECT 183 -# define ASN1_R_ILLEGAL_OPTIONAL_ANY 126 -# define ASN1_R_ILLEGAL_OPTIONS_ON_ITEM_TEMPLATE 170 -# define ASN1_R_ILLEGAL_PADDING 221 -# define ASN1_R_ILLEGAL_TAGGED_ANY 127 -# define ASN1_R_ILLEGAL_TIME_VALUE 184 -# define ASN1_R_ILLEGAL_ZERO_CONTENT 222 -# define ASN1_R_INTEGER_NOT_ASCII_FORMAT 185 -# define ASN1_R_INTEGER_TOO_LARGE_FOR_LONG 128 -# define ASN1_R_INVALID_BIT_STRING_BITS_LEFT 220 -# define ASN1_R_INVALID_BMPSTRING_LENGTH 129 -# define ASN1_R_INVALID_DIGIT 130 -# define ASN1_R_INVALID_MIME_TYPE 205 -# define ASN1_R_INVALID_MODIFIER 186 -# define ASN1_R_INVALID_NUMBER 187 -# define ASN1_R_INVALID_OBJECT_ENCODING 216 -# define ASN1_R_INVALID_SCRYPT_PARAMETERS 227 -# define ASN1_R_INVALID_SEPARATOR 131 -# define ASN1_R_INVALID_STRING_TABLE_VALUE 218 -# define ASN1_R_INVALID_UNIVERSALSTRING_LENGTH 133 -# define ASN1_R_INVALID_UTF8STRING 134 -# define ASN1_R_INVALID_VALUE 219 -# define ASN1_R_LIST_ERROR 188 -# define ASN1_R_MIME_NO_CONTENT_TYPE 206 -# define ASN1_R_MIME_PARSE_ERROR 207 -# define ASN1_R_MIME_SIG_PARSE_ERROR 208 -# define ASN1_R_MISSING_EOC 137 -# define ASN1_R_MISSING_SECOND_NUMBER 138 -# define ASN1_R_MISSING_VALUE 189 -# define ASN1_R_MSTRING_NOT_UNIVERSAL 139 -# define ASN1_R_MSTRING_WRONG_TAG 140 -# define ASN1_R_NESTED_ASN1_STRING 197 -# define ASN1_R_NESTED_TOO_DEEP 201 -# define ASN1_R_NON_HEX_CHARACTERS 141 -# define ASN1_R_NOT_ASCII_FORMAT 190 -# define ASN1_R_NOT_ENOUGH_DATA 142 -# define ASN1_R_NO_CONTENT_TYPE 209 -# define ASN1_R_NO_MATCHING_CHOICE_TYPE 143 -# define ASN1_R_NO_MULTIPART_BODY_FAILURE 210 -# define ASN1_R_NO_MULTIPART_BOUNDARY 211 -# define ASN1_R_NO_SIG_CONTENT_TYPE 212 -# define ASN1_R_NULL_IS_WRONG_LENGTH 144 -# define ASN1_R_OBJECT_NOT_ASCII_FORMAT 191 -# define ASN1_R_ODD_NUMBER_OF_CHARS 145 -# define ASN1_R_SECOND_NUMBER_TOO_LARGE 147 -# define ASN1_R_SEQUENCE_LENGTH_MISMATCH 148 -# define ASN1_R_SEQUENCE_NOT_CONSTRUCTED 149 -# define ASN1_R_SEQUENCE_OR_SET_NEEDS_CONFIG 192 -# define ASN1_R_SHORT_LINE 150 -# define ASN1_R_SIG_INVALID_MIME_TYPE 213 -# define ASN1_R_STREAMING_NOT_SUPPORTED 202 -# define ASN1_R_STRING_TOO_LONG 151 -# define ASN1_R_STRING_TOO_SHORT 152 -# define ASN1_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 154 -# define ASN1_R_TIME_NOT_ASCII_FORMAT 193 -# define ASN1_R_TOO_LARGE 223 -# define ASN1_R_TOO_LONG 155 -# define ASN1_R_TOO_SMALL 224 -# define ASN1_R_TYPE_NOT_CONSTRUCTED 156 -# define ASN1_R_TYPE_NOT_PRIMITIVE 195 -# define ASN1_R_UNEXPECTED_EOC 159 -# define ASN1_R_UNIVERSALSTRING_IS_WRONG_LENGTH 215 -# define ASN1_R_UNKNOWN_FORMAT 160 -# define ASN1_R_UNKNOWN_MESSAGE_DIGEST_ALGORITHM 161 -# define ASN1_R_UNKNOWN_OBJECT_TYPE 162 -# define ASN1_R_UNKNOWN_PUBLIC_KEY_TYPE 163 -# define ASN1_R_UNKNOWN_SIGNATURE_ALGORITHM 199 -# define ASN1_R_UNKNOWN_TAG 194 -# define ASN1_R_UNSUPPORTED_ANY_DEFINED_BY_TYPE 164 -# define ASN1_R_UNSUPPORTED_PUBLIC_KEY_TYPE 167 -# define ASN1_R_UNSUPPORTED_TYPE 196 -# define ASN1_R_WRONG_INTEGER_TYPE 225 -# define ASN1_R_WRONG_PUBLIC_KEY_TYPE 200 -# define ASN1_R_WRONG_TAG 168 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/asn1_mac.h b/Android/app/libs/armeabi/include/openssl/asn1_mac.h deleted file mode 100644 index 7ac1782a..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/asn1t.h b/Android/app/libs/armeabi/include/openssl/asn1t.h deleted file mode 100644 index a5248293..00000000 --- a/Android/app/libs/armeabi/include/openssl/asn1t.h +++ /dev/null @@ -1,929 +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) \ - OPENSSL_GLOBAL 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),\ - #stname \ - 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),\ - #stname \ - 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(LONG) -DECLARE_ASN1_ITEM(ZLONG) - -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/Android/app/libs/armeabi/include/openssl/async.h b/Android/app/libs/armeabi/include/openssl/async.h deleted file mode 100644 index 5b2e496d..00000000 --- a/Android/app/libs/armeabi/include/openssl/async.h +++ /dev/null @@ -1,98 +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 - */ - -#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 - - -# 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ASYNC_strings(void); - -/* Error codes for the ASYNC functions. */ - -/* Function codes. */ -# define ASYNC_F_ASYNC_CTX_NEW 100 -# define ASYNC_F_ASYNC_INIT_THREAD 101 -# define ASYNC_F_ASYNC_JOB_NEW 102 -# define ASYNC_F_ASYNC_PAUSE_JOB 103 -# define ASYNC_F_ASYNC_START_FUNC 104 -# define ASYNC_F_ASYNC_START_JOB 105 - -/* Reason codes. */ -# define ASYNC_R_FAILED_TO_SET_POOL 101 -# define ASYNC_R_FAILED_TO_SWAP_CONTEXT 102 -# define ASYNC_R_INIT_FAILED 105 -# define ASYNC_R_INVALID_POOL_SIZE 103 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/bio.h b/Android/app/libs/armeabi/include/openssl/bio.h deleted file mode 100644 index f435bd8e..00000000 --- a/Android/app/libs/armeabi/include/openssl/bio.h +++ /dev/null @@ -1,852 +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_BIO_H -# define HEADER_BIO_H - -# include - -# ifndef OPENSSL_NO_STDIO -# include -# endif -# include - -# include - -# ifndef OPENSSL_NO_SCTP -# include -# endif - -#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_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 - -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); -BIO_callback_fn BIO_get_callback(const BIO *b); -void BIO_set_callback(BIO *b, BIO_callback_fn 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) - -/* 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 len); -int BIO_gets(BIO *bp, char *buf, int size); -int BIO_write(BIO *b, const void *data, int len); -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_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_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); - */ - -# ifdef __GNUC__ -# define __bio_h__attr__ __attribute__ -# else -# define __bio_h__attr__(x) -# endif -int BIO_printf(BIO *bio, const char *format, ...) -__bio_h__attr__((__format__(__printf__, 2, 3))); -int BIO_vprintf(BIO *bio, const char *format, va_list args) -__bio_h__attr__((__format__(__printf__, 2, 0))); -int BIO_snprintf(char *buf, size_t n, const char *format, ...) -__bio_h__attr__((__format__(__printf__, 3, 4))); -int BIO_vsnprintf(char *buf, size_t n, const char *format, va_list args) -__bio_h__attr__((__format__(__printf__, 3, 0))); -# undef __bio_h__attr__ - - -BIO_METHOD *BIO_meth_new(int type, const char *name); -void BIO_meth_free(BIO_METHOD *biom); -int (*BIO_meth_get_write(BIO_METHOD *biom)) (BIO *, const char *, int); -int BIO_meth_set_write(BIO_METHOD *biom, - int (*write) (BIO *, const char *, int)); -int (*BIO_meth_get_read(BIO_METHOD *biom)) (BIO *, char *, int); -int BIO_meth_set_read(BIO_METHOD *biom, - int (*read) (BIO *, char *, int)); -int (*BIO_meth_get_puts(BIO_METHOD *biom)) (BIO *, const char *); -int BIO_meth_set_puts(BIO_METHOD *biom, - int (*puts) (BIO *, const char *)); -int (*BIO_meth_get_gets(BIO_METHOD *biom)) (BIO *, char *, int); -int BIO_meth_set_gets(BIO_METHOD *biom, - int (*gets) (BIO *, char *, int)); -long (*BIO_meth_get_ctrl(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(BIO_METHOD *bion)) (BIO *); -int BIO_meth_set_create(BIO_METHOD *biom, int (*create) (BIO *)); -int (*BIO_meth_get_destroy(BIO_METHOD *biom)) (BIO *); -int BIO_meth_set_destroy(BIO_METHOD *biom, int (*destroy) (BIO *)); -long (*BIO_meth_get_callback_ctrl(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 *)); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BIO_strings(void); - -/* Error codes for the BIO functions. */ - -/* Function codes. */ -# define BIO_F_ACPT_STATE 100 -# define BIO_F_ADDR_STRINGS 134 -# define BIO_F_BIO_ACCEPT 101 -# define BIO_F_BIO_ACCEPT_EX 137 -# define BIO_F_BIO_ADDR_NEW 144 -# define BIO_F_BIO_CALLBACK_CTRL 131 -# define BIO_F_BIO_CONNECT 138 -# define BIO_F_BIO_CTRL 103 -# define BIO_F_BIO_GETS 104 -# define BIO_F_BIO_GET_HOST_IP 106 -# define BIO_F_BIO_GET_NEW_INDEX 102 -# define BIO_F_BIO_GET_PORT 107 -# define BIO_F_BIO_LISTEN 139 -# define BIO_F_BIO_LOOKUP 135 -# define BIO_F_BIO_MAKE_PAIR 121 -# define BIO_F_BIO_METH_NEW 146 -# define BIO_F_BIO_NEW 108 -# define BIO_F_BIO_NEW_FILE 109 -# define BIO_F_BIO_NEW_MEM_BUF 126 -# define BIO_F_BIO_NREAD 123 -# define BIO_F_BIO_NREAD0 124 -# define BIO_F_BIO_NWRITE 125 -# define BIO_F_BIO_NWRITE0 122 -# define BIO_F_BIO_PARSE_HOSTSERV 136 -# define BIO_F_BIO_PUTS 110 -# define BIO_F_BIO_READ 111 -# define BIO_F_BIO_SOCKET 140 -# define BIO_F_BIO_SOCKET_NBIO 142 -# define BIO_F_BIO_SOCK_INFO 141 -# define BIO_F_BIO_SOCK_INIT 112 -# define BIO_F_BIO_WRITE 113 -# define BIO_F_BUFFER_CTRL 114 -# define BIO_F_CONN_CTRL 127 -# define BIO_F_CONN_STATE 115 -# define BIO_F_DGRAM_SCTP_READ 132 -# define BIO_F_DGRAM_SCTP_WRITE 133 -# define BIO_F_FILE_CTRL 116 -# define BIO_F_FILE_READ 130 -# define BIO_F_LINEBUFFER_CTRL 129 -# define BIO_F_MEM_WRITE 117 -# define BIO_F_SSL_NEW 118 - -/* Reason codes. */ -# define BIO_R_ACCEPT_ERROR 100 -# define BIO_R_ADDRINFO_ADDR_IS_NOT_AF_INET 141 -# define BIO_R_AMBIGUOUS_HOST_OR_SERVICE 129 -# define BIO_R_BAD_FOPEN_MODE 101 -# define BIO_R_BROKEN_PIPE 124 -# define BIO_R_CONNECT_ERROR 103 -# define BIO_R_GETHOSTBYNAME_ADDR_IS_NOT_AF_INET 107 -# define BIO_R_GETSOCKNAME_ERROR 132 -# define BIO_R_GETSOCKNAME_TRUNCATED_ADDRESS 133 -# define BIO_R_GETTING_SOCKTYPE 134 -# define BIO_R_INVALID_ARGUMENT 125 -# define BIO_R_INVALID_SOCKET 135 -# define BIO_R_IN_USE 123 -# define BIO_R_LISTEN_V6_ONLY 136 -# define BIO_R_LOOKUP_RETURNED_NOTHING 142 -# define BIO_R_MALFORMED_HOST_OR_SERVICE 130 -# define BIO_R_NBIO_CONNECT_ERROR 110 -# define BIO_R_NO_ACCEPT_ADDR_OR_SERVICE_SPECIFIED 143 -# define BIO_R_NO_HOSTNAME_OR_SERVICE_SPECIFIED 144 -# define BIO_R_NO_PORT_DEFINED 113 -# define BIO_R_NO_SUCH_FILE 128 -# define BIO_R_NULL_PARAMETER 115 -# define BIO_R_UNABLE_TO_BIND_SOCKET 117 -# define BIO_R_UNABLE_TO_CREATE_SOCKET 118 -# define BIO_R_UNABLE_TO_KEEPALIVE 137 -# define BIO_R_UNABLE_TO_LISTEN_SOCKET 119 -# define BIO_R_UNABLE_TO_NODELAY 138 -# define BIO_R_UNABLE_TO_REUSEADDR 139 -# define BIO_R_UNAVAILABLE_IP_FAMILY 145 -# define BIO_R_UNINITIALIZED 120 -# define BIO_R_UNKNOWN_INFO_TYPE 140 -# define BIO_R_UNSUPPORTED_IP_FAMILY 146 -# define BIO_R_UNSUPPORTED_METHOD 121 -# define BIO_R_UNSUPPORTED_PROTOCOL_FAMILY 131 -# define BIO_R_WRITE_TO_READ_ONLY_BIO 126 -# define BIO_R_WSASTARTUP 122 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/blowfish.h b/Android/app/libs/armeabi/include/openssl/blowfish.h deleted file mode 100644 index cd3e460e..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/bn.h b/Android/app/libs/armeabi/include/openssl/bn.h deleted file mode 100644 index 54ae7601..00000000 --- a/Android/app/libs/armeabi/include/openssl/bn.h +++ /dev/null @@ -1,575 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the Eric Young open source - * license provided above. - * - * The binary polynomial arithmetic software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - -#ifndef HEADER_BN_H -# define HEADER_BN_H - -# include -# ifndef OPENSSL_NO_STDIO -# include -# endif -# 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 */ - -/* - * number of Miller-Rabin iterations for an error rate of less than 2^-80 for - * random 'b'-bit input, b >= 100 (taken from table 4.4 in the Handbook of - * Applied Cryptography [Menezes, van Oorschot, Vanstone; CRC Press 1996]; - * original paper: Damgaard, Landrock, Pomerance: Average case error - * estimates for the strong probable prime test. -- Math. Comp. 61 (1993) - * 177-194) - */ -# define BN_prime_checks_for_size(b) ((b) >= 1300 ? 2 : \ - (b) >= 850 ? 3 : \ - (b) >= 650 ? 4 : \ - (b) >= 550 ? 5 : \ - (b) >= 450 ? 6 : \ - (b) >= 400 ? 7 : \ - (b) >= 350 ? 8 : \ - (b) >= 300 ? 9 : \ - (b) >= 250 ? 12 : \ - (b) >= 200 ? 15 : \ - (b) >= 150 ? 18 : \ - /* b >= 100 */ 27) - -# 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_pseudo_rand(BIGNUM *rnd, int bits, int top, int bottom); -int BN_rand_range(BIGNUM *rnd, const BIGNUM *range); -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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BN_strings(void); - -/* Error codes for the BN functions. */ - -/* Function codes. */ -# define BN_F_BNRAND 127 -# define BN_F_BN_BLINDING_CONVERT_EX 100 -# define BN_F_BN_BLINDING_CREATE_PARAM 128 -# define BN_F_BN_BLINDING_INVERT_EX 101 -# define BN_F_BN_BLINDING_NEW 102 -# define BN_F_BN_BLINDING_UPDATE 103 -# define BN_F_BN_BN2DEC 104 -# define BN_F_BN_BN2HEX 105 -# define BN_F_BN_COMPUTE_WNAF 142 -# define BN_F_BN_CTX_GET 116 -# define BN_F_BN_CTX_NEW 106 -# define BN_F_BN_CTX_START 129 -# define BN_F_BN_DIV 107 -# define BN_F_BN_DIV_RECP 130 -# define BN_F_BN_EXP 123 -# define BN_F_BN_EXPAND_INTERNAL 120 -# define BN_F_BN_GENCB_NEW 143 -# define BN_F_BN_GENERATE_DSA_NONCE 140 -# define BN_F_BN_GENERATE_PRIME_EX 141 -# define BN_F_BN_GF2M_MOD 131 -# define BN_F_BN_GF2M_MOD_EXP 132 -# define BN_F_BN_GF2M_MOD_MUL 133 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD 134 -# define BN_F_BN_GF2M_MOD_SOLVE_QUAD_ARR 135 -# define BN_F_BN_GF2M_MOD_SQR 136 -# define BN_F_BN_GF2M_MOD_SQRT 137 -# define BN_F_BN_LSHIFT 145 -# define BN_F_BN_MOD_EXP2_MONT 118 -# define BN_F_BN_MOD_EXP_MONT 109 -# define BN_F_BN_MOD_EXP_MONT_CONSTTIME 124 -# define BN_F_BN_MOD_EXP_MONT_WORD 117 -# define BN_F_BN_MOD_EXP_RECP 125 -# define BN_F_BN_MOD_EXP_SIMPLE 126 -# define BN_F_BN_MOD_INVERSE 110 -# define BN_F_BN_MOD_INVERSE_NO_BRANCH 139 -# define BN_F_BN_MOD_LSHIFT_QUICK 119 -# define BN_F_BN_MOD_SQRT 121 -# define BN_F_BN_MPI2BN 112 -# define BN_F_BN_NEW 113 -# define BN_F_BN_RAND 114 -# define BN_F_BN_RAND_RANGE 122 -# define BN_F_BN_RSHIFT 146 -# define BN_F_BN_SET_WORDS 144 -# define BN_F_BN_USUB 115 - -/* Reason codes. */ -# define BN_R_ARG2_LT_ARG3 100 -# define BN_R_BAD_RECIPROCAL 101 -# define BN_R_BIGNUM_TOO_LONG 114 -# define BN_R_BITS_TOO_SMALL 118 -# define BN_R_CALLED_WITH_EVEN_MODULUS 102 -# define BN_R_DIV_BY_ZERO 103 -# define BN_R_ENCODING_ERROR 104 -# define BN_R_EXPAND_ON_STATIC_BIGNUM_DATA 105 -# define BN_R_INPUT_NOT_REDUCED 110 -# define BN_R_INVALID_LENGTH 106 -# define BN_R_INVALID_RANGE 115 -# define BN_R_INVALID_SHIFT 119 -# define BN_R_NOT_A_SQUARE 111 -# define BN_R_NOT_INITIALIZED 107 -# define BN_R_NO_INVERSE 108 -# define BN_R_NO_SOLUTION 116 -# define BN_R_PRIVATE_KEY_TOO_LARGE 117 -# define BN_R_P_IS_NOT_PRIME 112 -# define BN_R_TOO_MANY_ITERATIONS 113 -# define BN_R_TOO_MANY_TEMPORARY_VARIABLES 109 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/buffer.h b/Android/app/libs/armeabi/include/openssl/buffer.h deleted file mode 100644 index 35160b4f..00000000 --- a/Android/app/libs/armeabi/include/openssl/buffer.h +++ /dev/null @@ -1,73 +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_BUFFER_H -# define HEADER_BUFFER_H - -# include -# ifndef HEADER_CRYPTO_H -# include -# endif - - -#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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_BUF_strings(void); - -/* Error codes for the BUF functions. */ - -/* Function codes. */ -# define BUF_F_BUF_MEM_GROW 100 -# define BUF_F_BUF_MEM_GROW_CLEAN 105 -# define BUF_F_BUF_MEM_NEW 101 - -/* Reason codes. */ - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/camellia.h b/Android/app/libs/armeabi/include/openssl/camellia.h deleted file mode 100644 index 151f3c13..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/cast.h b/Android/app/libs/armeabi/include/openssl/cast.h deleted file mode 100644 index 2cc89ae0..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/cmac.h b/Android/app/libs/armeabi/include/openssl/cmac.h deleted file mode 100644 index 3535a9ab..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/cms.h b/Android/app/libs/armeabi/include/openssl/cms.h deleted file mode 100644 index 7e534e0d..00000000 --- a/Android/app/libs/armeabi/include/openssl/cms.h +++ /dev/null @@ -1,512 +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_CMS_H -# define HEADER_CMS_H - -# include - -# ifndef OPENSSL_NO_CMS -# 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); - -# ifdef HEADER_X509V3_H - -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); -# endif -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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CMS_strings(void); - -/* Error codes for the CMS functions. */ - -/* Function codes. */ -# define CMS_F_CHECK_CONTENT 99 -# define CMS_F_CMS_ADD0_CERT 164 -# define CMS_F_CMS_ADD0_RECIPIENT_KEY 100 -# define CMS_F_CMS_ADD0_RECIPIENT_PASSWORD 165 -# define CMS_F_CMS_ADD1_RECEIPTREQUEST 158 -# define CMS_F_CMS_ADD1_RECIPIENT_CERT 101 -# define CMS_F_CMS_ADD1_SIGNER 102 -# define CMS_F_CMS_ADD1_SIGNINGTIME 103 -# define CMS_F_CMS_COMPRESS 104 -# define CMS_F_CMS_COMPRESSEDDATA_CREATE 105 -# define CMS_F_CMS_COMPRESSEDDATA_INIT_BIO 106 -# define CMS_F_CMS_COPY_CONTENT 107 -# define CMS_F_CMS_COPY_MESSAGEDIGEST 108 -# define CMS_F_CMS_DATA 109 -# define CMS_F_CMS_DATAFINAL 110 -# define CMS_F_CMS_DATAINIT 111 -# define CMS_F_CMS_DECRYPT 112 -# define CMS_F_CMS_DECRYPT_SET1_KEY 113 -# define CMS_F_CMS_DECRYPT_SET1_PASSWORD 166 -# define CMS_F_CMS_DECRYPT_SET1_PKEY 114 -# define CMS_F_CMS_DIGESTALGORITHM_FIND_CTX 115 -# define CMS_F_CMS_DIGESTALGORITHM_INIT_BIO 116 -# define CMS_F_CMS_DIGESTEDDATA_DO_FINAL 117 -# define CMS_F_CMS_DIGEST_VERIFY 118 -# define CMS_F_CMS_ENCODE_RECEIPT 161 -# define CMS_F_CMS_ENCRYPT 119 -# define CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO 120 -# define CMS_F_CMS_ENCRYPTEDDATA_DECRYPT 121 -# define CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT 122 -# define CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY 123 -# define CMS_F_CMS_ENVELOPEDDATA_CREATE 124 -# define CMS_F_CMS_ENVELOPEDDATA_INIT_BIO 125 -# define CMS_F_CMS_ENVELOPED_DATA_INIT 126 -# define CMS_F_CMS_ENV_ASN1_CTRL 171 -# define CMS_F_CMS_FINAL 127 -# define CMS_F_CMS_GET0_CERTIFICATE_CHOICES 128 -# define CMS_F_CMS_GET0_CONTENT 129 -# define CMS_F_CMS_GET0_ECONTENT_TYPE 130 -# define CMS_F_CMS_GET0_ENVELOPED 131 -# define CMS_F_CMS_GET0_REVOCATION_CHOICES 132 -# define CMS_F_CMS_GET0_SIGNED 133 -# define CMS_F_CMS_MSGSIGDIGEST_ADD1 162 -# define CMS_F_CMS_RECEIPTREQUEST_CREATE0 159 -# define CMS_F_CMS_RECEIPT_VERIFY 160 -# define CMS_F_CMS_RECIPIENTINFO_DECRYPT 134 -# define CMS_F_CMS_RECIPIENTINFO_ENCRYPT 169 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT 178 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG 175 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID 173 -# define CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS 172 -# define CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP 174 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT 135 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT 136 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID 137 -# define CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP 138 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP 139 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT 140 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT 141 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS 142 -# define CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID 143 -# define CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT 167 -# define CMS_F_CMS_RECIPIENTINFO_SET0_KEY 144 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD 168 -# define CMS_F_CMS_RECIPIENTINFO_SET0_PKEY 145 -# define CMS_F_CMS_SD_ASN1_CTRL 170 -# define CMS_F_CMS_SET1_IAS 176 -# define CMS_F_CMS_SET1_KEYID 177 -# define CMS_F_CMS_SET1_SIGNERIDENTIFIER 146 -# define CMS_F_CMS_SET_DETACHED 147 -# define CMS_F_CMS_SIGN 148 -# define CMS_F_CMS_SIGNED_DATA_INIT 149 -# define CMS_F_CMS_SIGNERINFO_CONTENT_SIGN 150 -# define CMS_F_CMS_SIGNERINFO_SIGN 151 -# define CMS_F_CMS_SIGNERINFO_VERIFY 152 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CERT 153 -# define CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT 154 -# define CMS_F_CMS_SIGN_RECEIPT 163 -# define CMS_F_CMS_STREAM 155 -# define CMS_F_CMS_UNCOMPRESS 156 -# define CMS_F_CMS_VERIFY 157 - -/* Reason codes. */ -# define CMS_R_ADD_SIGNER_ERROR 99 -# define CMS_R_CERTIFICATE_ALREADY_PRESENT 175 -# define CMS_R_CERTIFICATE_HAS_NO_KEYID 160 -# define CMS_R_CERTIFICATE_VERIFY_ERROR 100 -# define CMS_R_CIPHER_INITIALISATION_ERROR 101 -# define CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR 102 -# define CMS_R_CMS_DATAFINAL_ERROR 103 -# define CMS_R_CMS_LIB 104 -# define CMS_R_CONTENTIDENTIFIER_MISMATCH 170 -# define CMS_R_CONTENT_NOT_FOUND 105 -# define CMS_R_CONTENT_TYPE_MISMATCH 171 -# define CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA 106 -# define CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA 107 -# define CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA 108 -# define CMS_R_CONTENT_VERIFY_ERROR 109 -# define CMS_R_CTRL_ERROR 110 -# define CMS_R_CTRL_FAILURE 111 -# define CMS_R_DECRYPT_ERROR 112 -# define CMS_R_ERROR_GETTING_PUBLIC_KEY 113 -# define CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE 114 -# define CMS_R_ERROR_SETTING_KEY 115 -# define CMS_R_ERROR_SETTING_RECIPIENTINFO 116 -# define CMS_R_INVALID_ENCRYPTED_KEY_LENGTH 117 -# define CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER 176 -# define CMS_R_INVALID_KEY_LENGTH 118 -# define CMS_R_MD_BIO_INIT_ERROR 119 -# define CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH 120 -# define CMS_R_MESSAGEDIGEST_WRONG_LENGTH 121 -# define CMS_R_MSGSIGDIGEST_ERROR 172 -# define CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE 162 -# define CMS_R_MSGSIGDIGEST_WRONG_LENGTH 163 -# define CMS_R_NEED_ONE_SIGNER 164 -# define CMS_R_NOT_A_SIGNED_RECEIPT 165 -# define CMS_R_NOT_ENCRYPTED_DATA 122 -# define CMS_R_NOT_KEK 123 -# define CMS_R_NOT_KEY_AGREEMENT 181 -# define CMS_R_NOT_KEY_TRANSPORT 124 -# define CMS_R_NOT_PWRI 177 -# define CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 125 -# define CMS_R_NO_CIPHER 126 -# define CMS_R_NO_CONTENT 127 -# define CMS_R_NO_CONTENT_TYPE 173 -# define CMS_R_NO_DEFAULT_DIGEST 128 -# define CMS_R_NO_DIGEST_SET 129 -# define CMS_R_NO_KEY 130 -# define CMS_R_NO_KEY_OR_CERT 174 -# define CMS_R_NO_MATCHING_DIGEST 131 -# define CMS_R_NO_MATCHING_RECIPIENT 132 -# define CMS_R_NO_MATCHING_SIGNATURE 166 -# define CMS_R_NO_MSGSIGDIGEST 167 -# define CMS_R_NO_PASSWORD 178 -# define CMS_R_NO_PRIVATE_KEY 133 -# define CMS_R_NO_PUBLIC_KEY 134 -# define CMS_R_NO_RECEIPT_REQUEST 168 -# define CMS_R_NO_SIGNERS 135 -# define CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 136 -# define CMS_R_RECEIPT_DECODE_ERROR 169 -# define CMS_R_RECIPIENT_ERROR 137 -# define CMS_R_SIGNER_CERTIFICATE_NOT_FOUND 138 -# define CMS_R_SIGNFINAL_ERROR 139 -# define CMS_R_SMIME_TEXT_ERROR 140 -# define CMS_R_STORE_INIT_ERROR 141 -# define CMS_R_TYPE_NOT_COMPRESSED_DATA 142 -# define CMS_R_TYPE_NOT_DATA 143 -# define CMS_R_TYPE_NOT_DIGESTED_DATA 144 -# define CMS_R_TYPE_NOT_ENCRYPTED_DATA 145 -# define CMS_R_TYPE_NOT_ENVELOPED_DATA 146 -# define CMS_R_UNABLE_TO_FINALIZE_CONTEXT 147 -# define CMS_R_UNKNOWN_CIPHER 148 -# define CMS_R_UNKNOWN_DIGEST_ALGORIHM 149 -# define CMS_R_UNKNOWN_ID 150 -# define CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM 151 -# define CMS_R_UNSUPPORTED_CONTENT_TYPE 152 -# define CMS_R_UNSUPPORTED_KEK_ALGORITHM 153 -# define CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM 179 -# define CMS_R_UNSUPPORTED_RECIPIENT_TYPE 154 -# define CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE 155 -# define CMS_R_UNSUPPORTED_TYPE 156 -# define CMS_R_UNWRAP_ERROR 157 -# define CMS_R_UNWRAP_FAILURE 180 -# define CMS_R_VERIFICATION_FAILURE 158 -# define CMS_R_WRAP_ERROR 159 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/comp.h b/Android/app/libs/armeabi/include/openssl/comp.h deleted file mode 100644 index 260ff1e0..00000000 --- a/Android/app/libs/armeabi/include/openssl/comp.h +++ /dev/null @@ -1,72 +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 - */ - -#ifndef HEADER_COMP_H -# define HEADER_COMP_H - -# include - -# ifndef OPENSSL_NO_COMP -# 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 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_COMP_strings(void); - -/* Error codes for the COMP functions. */ - -/* Function codes. */ -# define COMP_F_BIO_ZLIB_FLUSH 99 -# define COMP_F_BIO_ZLIB_NEW 100 -# define COMP_F_BIO_ZLIB_READ 101 -# define COMP_F_BIO_ZLIB_WRITE 102 - -/* Reason codes. */ -# define COMP_R_ZLIB_DEFLATE_ERROR 99 -# define COMP_R_ZLIB_INFLATE_ERROR 100 -# define COMP_R_ZLIB_NOT_SUPPORTED 101 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/conf.h b/Android/app/libs/armeabi/include/openssl/conf.h deleted file mode 100644 index 980a51b1..00000000 --- a/Android/app/libs/armeabi/include/openssl/conf.h +++ /dev/null @@ -1,217 +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_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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CONF_strings(void); - -/* Error codes for the CONF functions. */ - -/* Function codes. */ -# define CONF_F_CONF_DUMP_FP 104 -# define CONF_F_CONF_LOAD 100 -# define CONF_F_CONF_LOAD_FP 103 -# define CONF_F_CONF_PARSE_LIST 119 -# define CONF_F_DEF_LOAD 120 -# define CONF_F_DEF_LOAD_BIO 121 -# define CONF_F_MODULE_INIT 115 -# define CONF_F_MODULE_LOAD_DSO 117 -# define CONF_F_MODULE_RUN 118 -# define CONF_F_NCONF_DUMP_BIO 105 -# define CONF_F_NCONF_DUMP_FP 106 -# define CONF_F_NCONF_GET_NUMBER_E 112 -# define CONF_F_NCONF_GET_SECTION 108 -# define CONF_F_NCONF_GET_STRING 109 -# define CONF_F_NCONF_LOAD 113 -# define CONF_F_NCONF_LOAD_BIO 110 -# define CONF_F_NCONF_LOAD_FP 114 -# define CONF_F_NCONF_NEW 111 -# define CONF_F_STR_COPY 101 - -/* Reason codes. */ -# define CONF_R_ERROR_LOADING_DSO 110 -# define CONF_R_LIST_CANNOT_BE_NULL 115 -# define CONF_R_MISSING_CLOSE_SQUARE_BRACKET 100 -# define CONF_R_MISSING_EQUAL_SIGN 101 -# define CONF_R_MISSING_INIT_FUNCTION 112 -# define CONF_R_MODULE_INITIALIZATION_ERROR 109 -# define CONF_R_NO_CLOSE_BRACE 102 -# define CONF_R_NO_CONF 105 -# define CONF_R_NO_CONF_OR_ENVIRONMENT_VARIABLE 106 -# define CONF_R_NO_SECTION 107 -# define CONF_R_NO_SUCH_FILE 114 -# define CONF_R_NO_VALUE 108 -# define CONF_R_UNABLE_TO_CREATE_NEW_SECTION 103 -# define CONF_R_UNKNOWN_MODULE_NAME 113 -# define CONF_R_VARIABLE_EXPANSION_TOO_LONG 116 -# define CONF_R_VARIABLE_HAS_NO_VALUE 104 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/conf_api.h b/Android/app/libs/armeabi/include/openssl/conf_api.h deleted file mode 100644 index a0275ad7..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/crypto.h b/Android/app/libs/armeabi/include/openssl/crypto.h deleted file mode 100644 index 1ba7f25f..00000000 --- a/Android/app/libs/armeabi/include/openssl/crypto.h +++ /dev/null @@ -1,467 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_CRYPTO_H -# define HEADER_CRYPTO_H - -# 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__COUNT 14 - -/* - * This is the default callbacks, but we can have others as well: this is - * needed in Win32 where the application malloc and the library malloc may - * not be the same. - */ -#define OPENSSL_malloc_init() \ - CRYPTO_set_mem_functions(CRYPTO_malloc, CRYPTO_realloc, CRYPTO_free) - -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 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); - -/*- - * 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); - -# 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); - -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 volatile void * volatile in_a, - const volatile void * volatile 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 flag 0x00010000 reserved for internal use */ -/* 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_appname(OPENSSL_INIT_SETTINGS *settings, - const char *config_file); -# 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CRYPTO_strings(void); - -/* Error codes for the CRYPTO functions. */ - -/* Function codes. */ -# define CRYPTO_F_CRYPTO_DUP_EX_DATA 110 -# define CRYPTO_F_CRYPTO_FREE_EX_DATA 111 -# define CRYPTO_F_CRYPTO_GET_EX_NEW_INDEX 100 -# define CRYPTO_F_CRYPTO_MEMDUP 115 -# define CRYPTO_F_CRYPTO_NEW_EX_DATA 112 -# define CRYPTO_F_CRYPTO_SET_EX_DATA 102 -# define CRYPTO_F_FIPS_MODE_SET 109 -# define CRYPTO_F_GET_AND_LOCK 113 -# define CRYPTO_F_OPENSSL_BUF2HEXSTR 117 -# define CRYPTO_F_OPENSSL_HEXSTR2BUF 118 -# define CRYPTO_F_OPENSSL_INIT_CRYPTO 116 - -/* Reason codes. */ -# define CRYPTO_R_FIPS_MODE_NOT_SUPPORTED 101 -# define CRYPTO_R_ILLEGAL_HEX_DIGIT 102 -# define CRYPTO_R_ODD_NUMBER_OF_DIGITS 103 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/ct.h b/Android/app/libs/armeabi/include/openssl/ct.h deleted file mode 100644 index bf29fbab..00000000 --- a/Android/app/libs/armeabi/include/openssl/ct.h +++ /dev/null @@ -1,533 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_CT_H -# define HEADER_CT_H - -# include - -# ifndef OPENSSL_NO_CT -# 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|. - * See internal/cryptlib.h for the environment variable and file path that are - * consulted to find the default file. - * Returns 1 if loading is successful, or 0 otherwise. - */ -__owur int CTLOG_STORE_load_default_file(CTLOG_STORE *store); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_CT_strings(void); - -/* Error codes for the CT functions. */ - -/* Function codes. */ -# define CT_F_CTLOG_NEW 117 -# define CT_F_CTLOG_NEW_FROM_BASE64 118 -# define CT_F_CTLOG_NEW_FROM_CONF 119 -# define CT_F_CTLOG_STORE_LOAD_CTX_NEW 122 -# define CT_F_CTLOG_STORE_LOAD_FILE 123 -# define CT_F_CTLOG_STORE_LOAD_LOG 130 -# define CT_F_CTLOG_STORE_NEW 131 -# define CT_F_CT_BASE64_DECODE 124 -# define CT_F_CT_POLICY_EVAL_CTX_NEW 133 -# define CT_F_CT_V1_LOG_ID_FROM_PKEY 125 -# define CT_F_I2O_SCT 107 -# define CT_F_I2O_SCT_LIST 108 -# define CT_F_I2O_SCT_SIGNATURE 109 -# define CT_F_O2I_SCT 110 -# define CT_F_O2I_SCT_LIST 111 -# define CT_F_O2I_SCT_SIGNATURE 112 -# define CT_F_SCT_CTX_NEW 126 -# define CT_F_SCT_CTX_VERIFY 128 -# define CT_F_SCT_NEW 100 -# define CT_F_SCT_NEW_FROM_BASE64 127 -# define CT_F_SCT_SET0_LOG_ID 101 -# define CT_F_SCT_SET1_EXTENSIONS 114 -# define CT_F_SCT_SET1_LOG_ID 115 -# define CT_F_SCT_SET1_SIGNATURE 116 -# define CT_F_SCT_SET_LOG_ENTRY_TYPE 102 -# define CT_F_SCT_SET_SIGNATURE_NID 103 -# define CT_F_SCT_SET_VERSION 104 - -/* Reason codes. */ -# define CT_R_BASE64_DECODE_ERROR 108 -# define CT_R_INVALID_LOG_ID_LENGTH 100 -# define CT_R_LOG_CONF_INVALID 109 -# define CT_R_LOG_CONF_INVALID_KEY 110 -# define CT_R_LOG_CONF_MISSING_DESCRIPTION 111 -# define CT_R_LOG_CONF_MISSING_KEY 112 -# define CT_R_LOG_KEY_INVALID 113 -# define CT_R_SCT_FUTURE_TIMESTAMP 116 -# define CT_R_SCT_INVALID 104 -# define CT_R_SCT_INVALID_SIGNATURE 107 -# define CT_R_SCT_LIST_INVALID 105 -# define CT_R_SCT_LOG_ID_MISMATCH 114 -# define CT_R_SCT_NOT_SET 106 -# define CT_R_SCT_UNSUPPORTED_VERSION 115 -# define CT_R_UNRECOGNIZED_SIGNATURE_NID 101 -# define CT_R_UNSUPPORTED_ENTRY_TYPE 102 -# define CT_R_UNSUPPORTED_VERSION 103 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/des.h b/Android/app/libs/armeabi/include/openssl/des.h deleted file mode 100644 index be4abbdf..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/dh.h b/Android/app/libs/armeabi/include/openssl/dh.h deleted file mode 100644 index fbd47903..00000000 --- a/Android/app/libs/armeabi/include/openssl/dh.h +++ /dev/null @@ -1,361 +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_DH_H -# define HEADER_DH_H - -# include - -# ifndef OPENSSL_NO_DH -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -# 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(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); - -# 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); -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(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_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) - -/* KDF types */ -# define EVP_PKEY_DH_KDF_NONE 1 -# ifndef OPENSSL_NO_CMS -# define EVP_PKEY_DH_KDF_X9_42 2 -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_DH_strings(void); - -/* Error codes for the DH functions. */ - -/* Function codes. */ -# define DH_F_COMPUTE_KEY 102 -# define DH_F_DHPARAMS_PRINT_FP 101 -# define DH_F_DH_BUILTIN_GENPARAMS 106 -# define DH_F_DH_CMS_DECRYPT 114 -# define DH_F_DH_CMS_SET_PEERKEY 115 -# define DH_F_DH_CMS_SET_SHARED_INFO 116 -# define DH_F_DH_METH_DUP 117 -# define DH_F_DH_METH_NEW 118 -# define DH_F_DH_METH_SET1_NAME 119 -# define DH_F_DH_NEW_METHOD 105 -# define DH_F_DH_PARAM_DECODE 107 -# define DH_F_DH_PRIV_DECODE 110 -# define DH_F_DH_PRIV_ENCODE 111 -# define DH_F_DH_PUB_DECODE 108 -# define DH_F_DH_PUB_ENCODE 109 -# define DH_F_DO_DH_PRINT 100 -# define DH_F_GENERATE_KEY 103 -# define DH_F_PKEY_DH_DERIVE 112 -# define DH_F_PKEY_DH_KEYGEN 113 - -/* Reason codes. */ -# define DH_R_BAD_GENERATOR 101 -# define DH_R_BN_DECODE_ERROR 109 -# define DH_R_BN_ERROR 106 -# define DH_R_DECODE_ERROR 104 -# define DH_R_INVALID_PUBKEY 102 -# define DH_R_KDF_PARAMETER_ERROR 112 -# define DH_R_KEYS_NOT_SET 108 -# define DH_R_MODULUS_TOO_LARGE 103 -# define DH_R_NO_PARAMETERS_SET 107 -# define DH_R_NO_PRIVATE_VALUE 100 -# define DH_R_PARAMETER_ENCODING_ERROR 105 -# define DH_R_PEER_KEY_ERROR 111 -# define DH_R_SHARED_INFO_ERROR 113 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/dsa.h b/Android/app/libs/armeabi/include/openssl/dsa.h deleted file mode 100644 index 139718ed..00000000 --- a/Android/app/libs/armeabi/include/openssl/dsa.h +++ /dev/null @@ -1,283 +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 - */ - -/* - * The DSS routines are based on patches supplied by - * Steven Schoch . - */ - -#ifndef HEADER_DSA_H -# define HEADER_DSA_H - -# include - -# ifndef OPENSSL_NO_DSA -# ifdef __cplusplus -extern "C" { -# endif -# include -# include -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif - -# 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 */ -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 50 -/* - * Primality test according to FIPS PUB 186[-1], Appendix 2.1: 50 rounds of - * Rabin-Miller - */ -# 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_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); -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(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 *)); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_DSA_strings(void); - -/* Error codes for the DSA functions. */ - -/* Function codes. */ -# define DSA_F_DSAPARAMS_PRINT 100 -# define DSA_F_DSAPARAMS_PRINT_FP 101 -# define DSA_F_DSA_BUILTIN_PARAMGEN 125 -# define DSA_F_DSA_BUILTIN_PARAMGEN2 126 -# define DSA_F_DSA_DO_SIGN 112 -# define DSA_F_DSA_DO_VERIFY 113 -# define DSA_F_DSA_METH_DUP 127 -# define DSA_F_DSA_METH_NEW 128 -# define DSA_F_DSA_METH_SET1_NAME 129 -# define DSA_F_DSA_NEW_METHOD 103 -# define DSA_F_DSA_PARAM_DECODE 119 -# define DSA_F_DSA_PRINT_FP 105 -# define DSA_F_DSA_PRIV_DECODE 115 -# define DSA_F_DSA_PRIV_ENCODE 116 -# define DSA_F_DSA_PUB_DECODE 117 -# define DSA_F_DSA_PUB_ENCODE 118 -# define DSA_F_DSA_SIGN 106 -# define DSA_F_DSA_SIGN_SETUP 107 -# define DSA_F_DSA_SIG_NEW 102 -# define DSA_F_OLD_DSA_PRIV_DECODE 122 -# define DSA_F_PKEY_DSA_CTRL 120 -# define DSA_F_PKEY_DSA_KEYGEN 121 - -/* Reason codes. */ -# define DSA_R_BAD_Q_VALUE 102 -# define DSA_R_BN_DECODE_ERROR 108 -# define DSA_R_BN_ERROR 109 -# define DSA_R_DECODE_ERROR 104 -# define DSA_R_INVALID_DIGEST_TYPE 106 -# define DSA_R_INVALID_PARAMETERS 112 -# define DSA_R_MISSING_PARAMETERS 101 -# define DSA_R_MODULUS_TOO_LARGE 103 -# define DSA_R_NO_PARAMETERS_SET 107 -# define DSA_R_PARAMETER_ENCODING_ERROR 105 -# define DSA_R_Q_NOT_PRIME 113 -# define DSA_R_SEED_LEN_SMALL 110 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/dtls1.h b/Android/app/libs/armeabi/include/openssl/dtls1.h deleted file mode 100644 index f4769f83..00000000 --- a/Android/app/libs/armeabi/include/openssl/dtls1.h +++ /dev/null @@ -1,56 +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_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 */ -# 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 - -# ifdef DTLS1_AD_MISSING_HANDSHAKE_MESSAGE -# define DTLS1_AL_HEADER_LENGTH 7 -# else -# define DTLS1_AL_HEADER_LENGTH 2 -# endif - - -/* Timeout multipliers (timeout slice is defined in apps/timeouts.h */ -# 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/Android/app/libs/armeabi/include/openssl/e_os2.h b/Android/app/libs/armeabi/include/openssl/e_os2.h deleted file mode 100644 index 9800e154..00000000 --- a/Android/app/libs/armeabi/include/openssl/e_os2.h +++ /dev/null @@ -1,297 +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_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 - -/*- - * Definitions of OPENSSL_GLOBAL and OPENSSL_EXTERN, to define and declare - * certain global symbols that, with some compilers under VMS, have to be - * defined and declared explicitly with globaldef and globalref. - * Definitions of OPENSSL_EXPORT and OPENSSL_IMPORT, to define and declare - * DLL exports and imports for compilers under Win32. These are a little - * more complicated to use. Basically, for any library that exports some - * global variables, the following code must be present in the header file - * that declares them, before OPENSSL_EXTERN is used: - * - * #ifdef SOME_BUILD_FLAG_MACRO - * # undef OPENSSL_EXTERN - * # define OPENSSL_EXTERN OPENSSL_EXPORT - * #endif - * - * The default is to have OPENSSL_EXPORT, OPENSSL_EXTERN and OPENSSL_GLOBAL - * have some generally sensible values. - */ - -# if defined(OPENSSL_SYS_VMS_NODECC) -# define OPENSSL_EXPORT globalref -# define OPENSSL_EXTERN globalref -# define OPENSSL_GLOBAL globaldef -# elif defined(OPENSSL_SYS_WINDOWS) && defined(OPENSSL_OPT_WINDLL) -# define OPENSSL_EXPORT extern __declspec(dllexport) -# define OPENSSL_EXTERN extern __declspec(dllimport) -# define OPENSSL_GLOBAL -# else -# define OPENSSL_EXPORT extern -# define OPENSSL_EXTERN extern -# define OPENSSL_GLOBAL -# endif - -/*- - * 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) OPENSSL_GLOBAL 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 -# 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<=1500 -/* - * 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 -# define ossl_noreturn _Noreturn -# elif defined(__GNUC__) && __GNUC__ >= 2 -# define ossl_noreturn __attribute__((noreturn)) -# else -# define ossl_noreturn -# endif - -#ifdef __cplusplus -} -#endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/ebcdic.h b/Android/app/libs/armeabi/include/openssl/ebcdic.h deleted file mode 100644 index aa012855..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/ec.h b/Android/app/libs/armeabi/include/openssl/ec.h deleted file mode 100644 index f06680a7..00000000 --- a/Android/app/libs/armeabi/include/openssl/ec.h +++ /dev/null @@ -1,1576 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * The elliptic curve binary polynomial software is originally written by - * Sheueling Chang Shantz and Douglas Stebila of Sun Microsystems Laboratories. - * - */ - -#ifndef HEADER_EC_H -# define HEADER_EC_H - -# include - -# ifndef OPENSSL_NO_EC -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# 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 it's 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 parameter of a ec over GFp defined by y^2 = x^3 + a*x + b - * \param group EC_GROUP object - * \param p BIGNUM with the prime number - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_curve_GFp(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameter of the ec over GFp defined by y^2 = x^3 + a*x + b - * \param group EC_GROUP object - * \param p BIGNUM for the prime number - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_curve_GFp(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx); - -# ifndef OPENSSL_NO_EC2M -/** Sets the parameter of a ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b - * \param group EC_GROUP object - * \param p BIGNUM with the polynomial defining the underlying field - * \param a BIGNUM with parameter a of the equation - * \param b BIGNUM with parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_set_curve_GF2m(EC_GROUP *group, const BIGNUM *p, const BIGNUM *a, - const BIGNUM *b, BN_CTX *ctx); - -/** Gets the parameter of the ec over GF2m defined by y^2 + x*y = x^3 + a*x^2 + b - * \param group EC_GROUP object - * \param p BIGNUM for the polynomial defining the underlying field - * \param a BIGNUM for parameter a of the equation - * \param b BIGNUM for parameter b of the equation - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_GROUP_get_curve_GF2m(const EC_GROUP *group, BIGNUM *p, BIGNUM *a, - BIGNUM *b, BN_CTX *ctx); -# 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 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 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 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 ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_set_affine_coordinates_GFp(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of a EC_POINT over GFp - * \param group underlying EC_GROUP object - * \param p EC_POINT object - * \param x BIGNUM for the x-coordinate - * \param y BIGNUM for the y-coordinate - * \param ctx BN_CTX object (optional) - * \return 1 on success and 0 if an error occurred - */ -int EC_POINT_get_affine_coordinates_GFp(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GFp - * \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_GFp(const EC_GROUP *group, - EC_POINT *p, const BIGNUM *x, - int y_bit, BN_CTX *ctx); -# ifndef OPENSSL_NO_EC2M -/** Sets the affine coordinates of a EC_POINT over GF2m - * \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_GF2m(const EC_GROUP *group, EC_POINT *p, - const BIGNUM *x, const BIGNUM *y, - BN_CTX *ctx); - -/** Gets the affine coordinates of a EC_POINT over GF2m - * \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_GF2m(const EC_GROUP *group, - const EC_POINT *p, BIGNUM *x, - BIGNUM *y, BN_CTX *ctx); - -/** Sets the x9.62 compressed coordinates of a EC_POINT over GF2m - * \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_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, \ - (char *(*)())d2i_ECPKParameters,(fp),(unsigned char **)(x)) -# define i2d_ECPKParameters_fp(fp,x) ASN1_i2d_fp(i2d_ECPKParameters,(fp), \ - (unsigned char *)(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); - -/** 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 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); - -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 0 - */ -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 pointer - * \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); - -/** Setter for r and s fields of ECDSA_SIG - * \param sig pointer to ECDSA_SIG pointer - * \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) - -# 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) -/* KDF types */ -# define EVP_PKEY_ECDH_KDF_NONE 1 -# define EVP_PKEY_ECDH_KDF_X9_62 2 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_EC_strings(void); - -/* Error codes for the EC functions. */ - -/* Function codes. */ -# define EC_F_BN_TO_FELEM 224 -# define EC_F_D2I_ECPARAMETERS 144 -# define EC_F_D2I_ECPKPARAMETERS 145 -# define EC_F_D2I_ECPRIVATEKEY 146 -# define EC_F_DO_EC_KEY_PRINT 221 -# define EC_F_ECDH_CMS_DECRYPT 238 -# define EC_F_ECDH_CMS_SET_SHARED_INFO 239 -# define EC_F_ECDH_COMPUTE_KEY 246 -# define EC_F_ECDH_SIMPLE_COMPUTE_KEY 257 -# define EC_F_ECDSA_DO_SIGN_EX 251 -# define EC_F_ECDSA_DO_VERIFY 252 -# define EC_F_ECDSA_SIGN_EX 254 -# define EC_F_ECDSA_SIGN_SETUP 248 -# define EC_F_ECDSA_SIG_NEW 265 -# define EC_F_ECDSA_VERIFY 253 -# define EC_F_ECKEY_PARAM2TYPE 223 -# define EC_F_ECKEY_PARAM_DECODE 212 -# define EC_F_ECKEY_PRIV_DECODE 213 -# define EC_F_ECKEY_PRIV_ENCODE 214 -# define EC_F_ECKEY_PUB_DECODE 215 -# define EC_F_ECKEY_PUB_ENCODE 216 -# define EC_F_ECKEY_TYPE2PARAM 220 -# define EC_F_ECPARAMETERS_PRINT 147 -# define EC_F_ECPARAMETERS_PRINT_FP 148 -# define EC_F_ECPKPARAMETERS_PRINT 149 -# define EC_F_ECPKPARAMETERS_PRINT_FP 150 -# define EC_F_ECP_NISTZ256_GET_AFFINE 240 -# define EC_F_ECP_NISTZ256_MULT_PRECOMPUTE 243 -# define EC_F_ECP_NISTZ256_POINTS_MUL 241 -# define EC_F_ECP_NISTZ256_PRE_COMP_NEW 244 -# define EC_F_ECP_NISTZ256_WINDOWED_MUL 242 -# define EC_F_ECX_KEY_OP 266 -# define EC_F_ECX_PRIV_ENCODE 267 -# define EC_F_ECX_PUB_ENCODE 268 -# define EC_F_EC_ASN1_GROUP2CURVE 153 -# define EC_F_EC_ASN1_GROUP2FIELDID 154 -# define EC_F_EC_GF2M_MONTGOMERY_POINT_MULTIPLY 208 -# define EC_F_EC_GF2M_SIMPLE_GROUP_CHECK_DISCRIMINANT 159 -# define EC_F_EC_GF2M_SIMPLE_GROUP_SET_CURVE 195 -# define EC_F_EC_GF2M_SIMPLE_OCT2POINT 160 -# define EC_F_EC_GF2M_SIMPLE_POINT2OCT 161 -# define EC_F_EC_GF2M_SIMPLE_POINT_GET_AFFINE_COORDINATES 162 -# define EC_F_EC_GF2M_SIMPLE_POINT_SET_AFFINE_COORDINATES 163 -# define EC_F_EC_GF2M_SIMPLE_SET_COMPRESSED_COORDINATES 164 -# define EC_F_EC_GFP_MONT_FIELD_DECODE 133 -# define EC_F_EC_GFP_MONT_FIELD_ENCODE 134 -# define EC_F_EC_GFP_MONT_FIELD_MUL 131 -# define EC_F_EC_GFP_MONT_FIELD_SET_TO_ONE 209 -# define EC_F_EC_GFP_MONT_FIELD_SQR 132 -# define EC_F_EC_GFP_MONT_GROUP_SET_CURVE 189 -# define EC_F_EC_GFP_NISTP224_GROUP_SET_CURVE 225 -# define EC_F_EC_GFP_NISTP224_POINTS_MUL 228 -# define EC_F_EC_GFP_NISTP224_POINT_GET_AFFINE_COORDINATES 226 -# define EC_F_EC_GFP_NISTP256_GROUP_SET_CURVE 230 -# define EC_F_EC_GFP_NISTP256_POINTS_MUL 231 -# define EC_F_EC_GFP_NISTP256_POINT_GET_AFFINE_COORDINATES 232 -# define EC_F_EC_GFP_NISTP521_GROUP_SET_CURVE 233 -# define EC_F_EC_GFP_NISTP521_POINTS_MUL 234 -# define EC_F_EC_GFP_NISTP521_POINT_GET_AFFINE_COORDINATES 235 -# define EC_F_EC_GFP_NIST_FIELD_MUL 200 -# define EC_F_EC_GFP_NIST_FIELD_SQR 201 -# define EC_F_EC_GFP_NIST_GROUP_SET_CURVE 202 -# define EC_F_EC_GFP_SIMPLE_GROUP_CHECK_DISCRIMINANT 165 -# define EC_F_EC_GFP_SIMPLE_GROUP_SET_CURVE 166 -# define EC_F_EC_GFP_SIMPLE_MAKE_AFFINE 102 -# define EC_F_EC_GFP_SIMPLE_OCT2POINT 103 -# define EC_F_EC_GFP_SIMPLE_POINT2OCT 104 -# define EC_F_EC_GFP_SIMPLE_POINTS_MAKE_AFFINE 137 -# define EC_F_EC_GFP_SIMPLE_POINT_GET_AFFINE_COORDINATES 167 -# define EC_F_EC_GFP_SIMPLE_POINT_SET_AFFINE_COORDINATES 168 -# define EC_F_EC_GFP_SIMPLE_SET_COMPRESSED_COORDINATES 169 -# define EC_F_EC_GROUP_CHECK 170 -# define EC_F_EC_GROUP_CHECK_DISCRIMINANT 171 -# define EC_F_EC_GROUP_COPY 106 -# define EC_F_EC_GROUP_GET_CURVE_GF2M 172 -# define EC_F_EC_GROUP_GET_CURVE_GFP 130 -# define EC_F_EC_GROUP_GET_DEGREE 173 -# define EC_F_EC_GROUP_GET_ECPARAMETERS 261 -# define EC_F_EC_GROUP_GET_ECPKPARAMETERS 262 -# define EC_F_EC_GROUP_GET_PENTANOMIAL_BASIS 193 -# define EC_F_EC_GROUP_GET_TRINOMIAL_BASIS 194 -# define EC_F_EC_GROUP_NEW 108 -# define EC_F_EC_GROUP_NEW_BY_CURVE_NAME 174 -# define EC_F_EC_GROUP_NEW_FROM_DATA 175 -# define EC_F_EC_GROUP_NEW_FROM_ECPARAMETERS 263 -# define EC_F_EC_GROUP_NEW_FROM_ECPKPARAMETERS 264 -# define EC_F_EC_GROUP_SET_CURVE_GF2M 176 -# define EC_F_EC_GROUP_SET_CURVE_GFP 109 -# define EC_F_EC_GROUP_SET_GENERATOR 111 -# define EC_F_EC_KEY_CHECK_KEY 177 -# define EC_F_EC_KEY_COPY 178 -# define EC_F_EC_KEY_GENERATE_KEY 179 -# define EC_F_EC_KEY_NEW 182 -# define EC_F_EC_KEY_NEW_METHOD 245 -# define EC_F_EC_KEY_OCT2PRIV 255 -# define EC_F_EC_KEY_PRINT 180 -# define EC_F_EC_KEY_PRINT_FP 181 -# define EC_F_EC_KEY_PRIV2OCT 256 -# define EC_F_EC_KEY_SET_PUBLIC_KEY_AFFINE_COORDINATES 229 -# define EC_F_EC_KEY_SIMPLE_CHECK_KEY 258 -# define EC_F_EC_KEY_SIMPLE_OCT2PRIV 259 -# define EC_F_EC_KEY_SIMPLE_PRIV2OCT 260 -# define EC_F_EC_POINTS_MAKE_AFFINE 136 -# define EC_F_EC_POINT_ADD 112 -# define EC_F_EC_POINT_CMP 113 -# define EC_F_EC_POINT_COPY 114 -# define EC_F_EC_POINT_DBL 115 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GF2M 183 -# define EC_F_EC_POINT_GET_AFFINE_COORDINATES_GFP 116 -# define EC_F_EC_POINT_GET_JPROJECTIVE_COORDINATES_GFP 117 -# define EC_F_EC_POINT_INVERT 210 -# define EC_F_EC_POINT_IS_AT_INFINITY 118 -# define EC_F_EC_POINT_IS_ON_CURVE 119 -# define EC_F_EC_POINT_MAKE_AFFINE 120 -# define EC_F_EC_POINT_NEW 121 -# define EC_F_EC_POINT_OCT2POINT 122 -# define EC_F_EC_POINT_POINT2OCT 123 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GF2M 185 -# define EC_F_EC_POINT_SET_AFFINE_COORDINATES_GFP 124 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GF2M 186 -# define EC_F_EC_POINT_SET_COMPRESSED_COORDINATES_GFP 125 -# define EC_F_EC_POINT_SET_JPROJECTIVE_COORDINATES_GFP 126 -# define EC_F_EC_POINT_SET_TO_INFINITY 127 -# define EC_F_EC_PRE_COMP_NEW 196 -# define EC_F_EC_WNAF_MUL 187 -# define EC_F_EC_WNAF_PRECOMPUTE_MULT 188 -# define EC_F_I2D_ECPARAMETERS 190 -# define EC_F_I2D_ECPKPARAMETERS 191 -# define EC_F_I2D_ECPRIVATEKEY 192 -# define EC_F_I2O_ECPUBLICKEY 151 -# define EC_F_NISTP224_PRE_COMP_NEW 227 -# define EC_F_NISTP256_PRE_COMP_NEW 236 -# define EC_F_NISTP521_PRE_COMP_NEW 237 -# define EC_F_O2I_ECPUBLICKEY 152 -# define EC_F_OLD_EC_PRIV_DECODE 222 -# define EC_F_OSSL_ECDH_COMPUTE_KEY 247 -# define EC_F_OSSL_ECDSA_SIGN_SIG 249 -# define EC_F_OSSL_ECDSA_VERIFY_SIG 250 -# define EC_F_PKEY_ECX_DERIVE 269 -# define EC_F_PKEY_EC_CTRL 197 -# define EC_F_PKEY_EC_CTRL_STR 198 -# define EC_F_PKEY_EC_DERIVE 217 -# define EC_F_PKEY_EC_KEYGEN 199 -# define EC_F_PKEY_EC_PARAMGEN 219 -# define EC_F_PKEY_EC_SIGN 218 - -/* Reason codes. */ -# define EC_R_ASN1_ERROR 115 -# define EC_R_BAD_SIGNATURE 156 -# define EC_R_BIGNUM_OUT_OF_RANGE 144 -# define EC_R_BUFFER_TOO_SMALL 100 -# define EC_R_COORDINATES_OUT_OF_RANGE 146 -# define EC_R_CURVE_DOES_NOT_SUPPORT_ECDH 160 -# define EC_R_CURVE_DOES_NOT_SUPPORT_SIGNING 159 -# define EC_R_D2I_ECPKPARAMETERS_FAILURE 117 -# define EC_R_DECODE_ERROR 142 -# define EC_R_DISCRIMINANT_IS_ZERO 118 -# define EC_R_EC_GROUP_NEW_BY_NAME_FAILURE 119 -# define EC_R_FIELD_TOO_LARGE 143 -# define EC_R_GF2M_NOT_SUPPORTED 147 -# define EC_R_GROUP2PKPARAMETERS_FAILURE 120 -# define EC_R_I2D_ECPKPARAMETERS_FAILURE 121 -# define EC_R_INCOMPATIBLE_OBJECTS 101 -# define EC_R_INVALID_ARGUMENT 112 -# define EC_R_INVALID_COMPRESSED_POINT 110 -# define EC_R_INVALID_COMPRESSION_BIT 109 -# define EC_R_INVALID_CURVE 141 -# define EC_R_INVALID_DIGEST 151 -# define EC_R_INVALID_DIGEST_TYPE 138 -# define EC_R_INVALID_ENCODING 102 -# define EC_R_INVALID_FIELD 103 -# define EC_R_INVALID_FORM 104 -# define EC_R_INVALID_GROUP_ORDER 122 -# define EC_R_INVALID_KEY 116 -# define EC_R_INVALID_OUTPUT_LENGTH 161 -# define EC_R_INVALID_PEER_KEY 133 -# define EC_R_INVALID_PENTANOMIAL_BASIS 132 -# define EC_R_INVALID_PRIVATE_KEY 123 -# define EC_R_INVALID_TRINOMIAL_BASIS 137 -# define EC_R_KDF_PARAMETER_ERROR 148 -# define EC_R_KEYS_NOT_SET 140 -# define EC_R_MISSING_PARAMETERS 124 -# define EC_R_MISSING_PRIVATE_KEY 125 -# define EC_R_NEED_NEW_SETUP_VALUES 157 -# define EC_R_NOT_A_NIST_PRIME 135 -# define EC_R_NOT_IMPLEMENTED 126 -# define EC_R_NOT_INITIALIZED 111 -# define EC_R_NO_PARAMETERS_SET 139 -# define EC_R_NO_PRIVATE_VALUE 154 -# define EC_R_OPERATION_NOT_SUPPORTED 152 -# define EC_R_PASSED_NULL_PARAMETER 134 -# define EC_R_PEER_KEY_ERROR 149 -# define EC_R_PKPARAMETERS2GROUP_FAILURE 127 -# define EC_R_POINT_ARITHMETIC_FAILURE 155 -# define EC_R_POINT_AT_INFINITY 106 -# define EC_R_POINT_IS_NOT_ON_CURVE 107 -# define EC_R_RANDOM_NUMBER_GENERATION_FAILED 158 -# define EC_R_SHARED_INFO_ERROR 150 -# define EC_R_SLOT_FULL 108 -# define EC_R_UNDEFINED_GENERATOR 113 -# define EC_R_UNDEFINED_ORDER 128 -# define EC_R_UNKNOWN_GROUP 129 -# define EC_R_UNKNOWN_ORDER 114 -# define EC_R_UNSUPPORTED_FIELD 131 -# define EC_R_WRONG_CURVE_PARAMETERS 145 -# define EC_R_WRONG_ORDER 130 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/ecdh.h b/Android/app/libs/armeabi/include/openssl/ecdh.h deleted file mode 100644 index 681f3d5e..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/ecdsa.h b/Android/app/libs/armeabi/include/openssl/ecdsa.h deleted file mode 100644 index 681f3d5e..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/engine.h b/Android/app/libs/armeabi/include/openssl/engine.h deleted file mode 100644 index 26cf7148..00000000 --- a/Android/app/libs/armeabi/include/openssl/engine.h +++ /dev/null @@ -1,840 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_ENGINE_H -# define HEADER_ENGINE_H - -# include - -# ifndef OPENSSL_NO_ENGINE -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# include -# include -# include -# include -# include -# endif -# 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 parametrised 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); \ - 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(HAVE_CRYPTODEV) -DEPRECATEDIN_1_1_0(void ENGINE_setup_bsd_cryptodev(void)) -# endif - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_ENGINE_strings(void); - -/* Error codes for the ENGINE functions. */ - -/* Function codes. */ -# define ENGINE_F_DYNAMIC_CTRL 180 -# define ENGINE_F_DYNAMIC_GET_DATA_CTX 181 -# define ENGINE_F_DYNAMIC_LOAD 182 -# define ENGINE_F_DYNAMIC_SET_DATA_CTX 183 -# define ENGINE_F_ENGINE_ADD 105 -# define ENGINE_F_ENGINE_BY_ID 106 -# define ENGINE_F_ENGINE_CMD_IS_EXECUTABLE 170 -# define ENGINE_F_ENGINE_CTRL 142 -# define ENGINE_F_ENGINE_CTRL_CMD 178 -# define ENGINE_F_ENGINE_CTRL_CMD_STRING 171 -# define ENGINE_F_ENGINE_FINISH 107 -# define ENGINE_F_ENGINE_GET_CIPHER 185 -# define ENGINE_F_ENGINE_GET_DIGEST 186 -# define ENGINE_F_ENGINE_GET_FIRST 195 -# define ENGINE_F_ENGINE_GET_LAST 196 -# define ENGINE_F_ENGINE_GET_NEXT 115 -# define ENGINE_F_ENGINE_GET_PKEY_ASN1_METH 193 -# define ENGINE_F_ENGINE_GET_PKEY_METH 192 -# define ENGINE_F_ENGINE_GET_PREV 116 -# define ENGINE_F_ENGINE_INIT 119 -# define ENGINE_F_ENGINE_LIST_ADD 120 -# define ENGINE_F_ENGINE_LIST_REMOVE 121 -# define ENGINE_F_ENGINE_LOAD_PRIVATE_KEY 150 -# define ENGINE_F_ENGINE_LOAD_PUBLIC_KEY 151 -# define ENGINE_F_ENGINE_LOAD_SSL_CLIENT_CERT 194 -# define ENGINE_F_ENGINE_NEW 122 -# define ENGINE_F_ENGINE_PKEY_ASN1_FIND_STR 197 -# define ENGINE_F_ENGINE_REMOVE 123 -# define ENGINE_F_ENGINE_SET_DEFAULT_STRING 189 -# define ENGINE_F_ENGINE_SET_ID 129 -# define ENGINE_F_ENGINE_SET_NAME 130 -# define ENGINE_F_ENGINE_TABLE_REGISTER 184 -# define ENGINE_F_ENGINE_UNLOCKED_FINISH 191 -# define ENGINE_F_ENGINE_UP_REF 190 -# define ENGINE_F_INT_CTRL_HELPER 172 -# define ENGINE_F_INT_ENGINE_CONFIGURE 188 -# define ENGINE_F_INT_ENGINE_MODULE_INIT 187 - -/* Reason codes. */ -# define ENGINE_R_ALREADY_LOADED 100 -# define ENGINE_R_ARGUMENT_IS_NOT_A_NUMBER 133 -# define ENGINE_R_CMD_NOT_EXECUTABLE 134 -# define ENGINE_R_COMMAND_TAKES_INPUT 135 -# define ENGINE_R_COMMAND_TAKES_NO_INPUT 136 -# define ENGINE_R_CONFLICTING_ENGINE_ID 103 -# define ENGINE_R_CTRL_COMMAND_NOT_IMPLEMENTED 119 -# define ENGINE_R_DSO_FAILURE 104 -# define ENGINE_R_DSO_NOT_FOUND 132 -# define ENGINE_R_ENGINES_SECTION_ERROR 148 -# define ENGINE_R_ENGINE_CONFIGURATION_ERROR 102 -# define ENGINE_R_ENGINE_IS_NOT_IN_LIST 105 -# define ENGINE_R_ENGINE_SECTION_ERROR 149 -# define ENGINE_R_FAILED_LOADING_PRIVATE_KEY 128 -# define ENGINE_R_FAILED_LOADING_PUBLIC_KEY 129 -# define ENGINE_R_FINISH_FAILED 106 -# define ENGINE_R_ID_OR_NAME_MISSING 108 -# define ENGINE_R_INIT_FAILED 109 -# define ENGINE_R_INTERNAL_LIST_ERROR 110 -# define ENGINE_R_INVALID_ARGUMENT 143 -# define ENGINE_R_INVALID_CMD_NAME 137 -# define ENGINE_R_INVALID_CMD_NUMBER 138 -# define ENGINE_R_INVALID_INIT_VALUE 151 -# define ENGINE_R_INVALID_STRING 150 -# define ENGINE_R_NOT_INITIALISED 117 -# define ENGINE_R_NOT_LOADED 112 -# define ENGINE_R_NO_CONTROL_FUNCTION 120 -# define ENGINE_R_NO_INDEX 144 -# define ENGINE_R_NO_LOAD_FUNCTION 125 -# define ENGINE_R_NO_REFERENCE 130 -# define ENGINE_R_NO_SUCH_ENGINE 116 -# define ENGINE_R_UNIMPLEMENTED_CIPHER 146 -# define ENGINE_R_UNIMPLEMENTED_DIGEST 147 -# define ENGINE_R_UNIMPLEMENTED_PUBLIC_KEY_METHOD 101 -# define ENGINE_R_VERSION_INCOMPATIBILITY 145 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/err.h b/Android/app/libs/armeabi/include/openssl/err.h deleted file mode 100644 index 29a261ce..00000000 --- a/Android/app/libs/armeabi/include/openssl/err.h +++ /dev/null @@ -1,260 +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_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_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_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_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 STOREerr(f,r) ERR_PUT_error(ERR_LIB_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 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 - -/* 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_ECDSA_LIB ERR_LIB_ECDSA/* 42 */ - -# 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) - -/* - * 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_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); - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/Android/app/libs/armeabi/include/openssl/evp.h b/Android/app/libs/armeabi/include/openssl/evp.h deleted file mode 100644 index 43c97a75..00000000 --- a/Android/app/libs/armeabi/include/openssl/evp.h +++ /dev/null @@ -1,1597 +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_ENVELOPE_H -# define HEADER_ENVELOPE_H - -# 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_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_HMAC NID_hmac -# define EVP_PKEY_CMAC NID_cmac -# define EVP_PKEY_TLS1_PRF NID_tls1_prf -# define EVP_PKEY_HKDF NID_hkdf - -#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 - -/* 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 - -/* 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 - -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 -/* 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 - -/* 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 - -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 - -/* 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_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); - -#ifndef OPENSSL_NO_UI -int EVP_read_pw_string(char *buf, int length, const char *prompt, int verify); -int EVP_read_pw_string_min(char *buf, int minlen, int maxlen, - const char *prompt, int verify); -void EVP_set_pw_prompt(const char *prompt); -char *EVP_get_pw_prompt(void); -#endif - -__owur int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md, - const unsigned char *salt, - 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_VerifyFinal(EVP_MD_CTX *ctx, const unsigned char *sigbuf, - unsigned int siglen, EVP_PKEY *pkey); - -/*__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); -# 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 -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_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 - -# 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_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS \ - | OPENSSL_INIT_LOAD_CONFIG, NULL) -# else -# define OpenSSL_add_all_algorithms() \ - OPENSSL_init_crypto(OPENSSL_INIT_ADD_ALL_CIPHERS \ - | OPENSSL_INIT_ADD_ALL_DIGESTS, NULL) -# 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(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); -# ifndef OPENSSL_NO_ENGINE -int EVP_PKEY_set1_engine(EVP_PKEY *pkey, ENGINE *e); -# 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_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_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_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); - -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_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_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); - -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); - -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_get_init(EVP_PKEY_METHOD *pmeth, - int (**pinit) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_copy(EVP_PKEY_METHOD *pmeth, - int (**pcopy) (EVP_PKEY_CTX *dst, - EVP_PKEY_CTX *src)); - -void EVP_PKEY_meth_get_cleanup(EVP_PKEY_METHOD *pmeth, - void (**pcleanup) (EVP_PKEY_CTX *ctx)); - -void EVP_PKEY_meth_get_paramgen(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(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(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(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(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(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(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(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(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(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(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_add_alg_module(void); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_EVP_strings(void); - -/* Error codes for the EVP functions. */ - -/* Function codes. */ -# define EVP_F_AESNI_INIT_KEY 165 -# define EVP_F_AES_INIT_KEY 133 -# define EVP_F_AES_OCB_CIPHER 169 -# define EVP_F_AES_T4_INIT_KEY 178 -# define EVP_F_AES_WRAP_CIPHER 170 -# define EVP_F_ALG_MODULE_INIT 177 -# define EVP_F_CAMELLIA_INIT_KEY 159 -# define EVP_F_CHACHA20_POLY1305_CTRL 182 -# define EVP_F_CMLL_T4_INIT_KEY 179 -# define EVP_F_DES_EDE3_WRAP_CIPHER 171 -# define EVP_F_DO_SIGVER_INIT 161 -# define EVP_F_EVP_CIPHERINIT_EX 123 -# define EVP_F_EVP_CIPHER_CTX_COPY 163 -# define EVP_F_EVP_CIPHER_CTX_CTRL 124 -# define EVP_F_EVP_CIPHER_CTX_SET_KEY_LENGTH 122 -# define EVP_F_EVP_DECRYPTFINAL_EX 101 -# define EVP_F_EVP_DECRYPTUPDATE 166 -# define EVP_F_EVP_DIGESTINIT_EX 128 -# define EVP_F_EVP_ENCRYPTFINAL_EX 127 -# define EVP_F_EVP_ENCRYPTUPDATE 167 -# define EVP_F_EVP_MD_CTX_COPY_EX 110 -# define EVP_F_EVP_MD_SIZE 162 -# define EVP_F_EVP_OPENINIT 102 -# define EVP_F_EVP_PBE_ALG_ADD 115 -# define EVP_F_EVP_PBE_ALG_ADD_TYPE 160 -# define EVP_F_EVP_PBE_CIPHERINIT 116 -# define EVP_F_EVP_PBE_SCRYPT 181 -# define EVP_F_EVP_PKCS82PKEY 111 -# define EVP_F_EVP_PKEY2PKCS8 113 -# define EVP_F_EVP_PKEY_ASN1_ADD0 168 -# define EVP_F_EVP_PKEY_COPY_PARAMETERS 103 -# define EVP_F_EVP_PKEY_CTX_CTRL 137 -# define EVP_F_EVP_PKEY_CTX_CTRL_STR 150 -# define EVP_F_EVP_PKEY_CTX_DUP 156 -# define EVP_F_EVP_PKEY_DECRYPT 104 -# define EVP_F_EVP_PKEY_DECRYPT_INIT 138 -# define EVP_F_EVP_PKEY_DECRYPT_OLD 151 -# define EVP_F_EVP_PKEY_DERIVE 153 -# define EVP_F_EVP_PKEY_DERIVE_INIT 154 -# define EVP_F_EVP_PKEY_DERIVE_SET_PEER 155 -# define EVP_F_EVP_PKEY_ENCRYPT 105 -# define EVP_F_EVP_PKEY_ENCRYPT_INIT 139 -# define EVP_F_EVP_PKEY_ENCRYPT_OLD 152 -# define EVP_F_EVP_PKEY_GET0_DH 119 -# define EVP_F_EVP_PKEY_GET0_DSA 120 -# define EVP_F_EVP_PKEY_GET0_EC_KEY 131 -# define EVP_F_EVP_PKEY_GET0_HMAC 183 -# define EVP_F_EVP_PKEY_GET0_RSA 121 -# define EVP_F_EVP_PKEY_KEYGEN 146 -# define EVP_F_EVP_PKEY_KEYGEN_INIT 147 -# define EVP_F_EVP_PKEY_NEW 106 -# define EVP_F_EVP_PKEY_PARAMGEN 148 -# define EVP_F_EVP_PKEY_PARAMGEN_INIT 149 -# define EVP_F_EVP_PKEY_SET1_ENGINE 187 -# define EVP_F_EVP_PKEY_SIGN 140 -# define EVP_F_EVP_PKEY_SIGN_INIT 141 -# define EVP_F_EVP_PKEY_VERIFY 142 -# define EVP_F_EVP_PKEY_VERIFY_INIT 143 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER 144 -# define EVP_F_EVP_PKEY_VERIFY_RECOVER_INIT 145 -# define EVP_F_EVP_SIGNFINAL 107 -# define EVP_F_EVP_VERIFYFINAL 108 -# define EVP_F_INT_CTX_NEW 157 -# define EVP_F_PKCS5_PBE_KEYIVGEN 117 -# define EVP_F_PKCS5_V2_PBE_KEYIVGEN 118 -# define EVP_F_PKCS5_V2_PBKDF2_KEYIVGEN 164 -# define EVP_F_PKCS5_V2_SCRYPT_KEYIVGEN 180 -# define EVP_F_PKEY_SET_TYPE 158 -# define EVP_F_RC2_MAGIC_TO_METH 109 -# define EVP_F_RC5_CTRL 125 - -/* Reason codes. */ -# define EVP_R_AES_KEY_SETUP_FAILED 143 -# define EVP_R_BAD_DECRYPT 100 -# define EVP_R_BUFFER_TOO_SMALL 155 -# define EVP_R_CAMELLIA_KEY_SETUP_FAILED 157 -# define EVP_R_CIPHER_PARAMETER_ERROR 122 -# define EVP_R_COMMAND_NOT_SUPPORTED 147 -# define EVP_R_COPY_ERROR 173 -# define EVP_R_CTRL_NOT_IMPLEMENTED 132 -# define EVP_R_CTRL_OPERATION_NOT_IMPLEMENTED 133 -# define EVP_R_DATA_NOT_MULTIPLE_OF_BLOCK_LENGTH 138 -# define EVP_R_DECODE_ERROR 114 -# define EVP_R_DIFFERENT_KEY_TYPES 101 -# define EVP_R_DIFFERENT_PARAMETERS 153 -# define EVP_R_ERROR_LOADING_SECTION 165 -# define EVP_R_ERROR_SETTING_FIPS_MODE 166 -# define EVP_R_EXPECTING_AN_HMAC_KEY 174 -# define EVP_R_EXPECTING_AN_RSA_KEY 127 -# define EVP_R_EXPECTING_A_DH_KEY 128 -# define EVP_R_EXPECTING_A_DSA_KEY 129 -# define EVP_R_EXPECTING_A_EC_KEY 142 -# define EVP_R_FIPS_MODE_NOT_SUPPORTED 167 -# define EVP_R_ILLEGAL_SCRYPT_PARAMETERS 171 -# define EVP_R_INITIALIZATION_ERROR 134 -# define EVP_R_INPUT_NOT_INITIALIZED 111 -# define EVP_R_INVALID_DIGEST 152 -# define EVP_R_INVALID_FIPS_MODE 168 -# define EVP_R_INVALID_KEY 163 -# define EVP_R_INVALID_KEY_LENGTH 130 -# define EVP_R_INVALID_OPERATION 148 -# define EVP_R_KEYGEN_FAILURE 120 -# define EVP_R_MEMORY_LIMIT_EXCEEDED 172 -# define EVP_R_MESSAGE_DIGEST_IS_NULL 159 -# define EVP_R_METHOD_NOT_SUPPORTED 144 -# define EVP_R_MISSING_PARAMETERS 103 -# define EVP_R_NO_CIPHER_SET 131 -# define EVP_R_NO_DEFAULT_DIGEST 158 -# define EVP_R_NO_DIGEST_SET 139 -# define EVP_R_NO_KEY_SET 154 -# define EVP_R_NO_OPERATION_SET 149 -# define EVP_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 150 -# define EVP_R_OPERATON_NOT_INITIALIZED 151 -# define EVP_R_PARTIALLY_OVERLAPPING 162 -# define EVP_R_PKEY_APPLICATION_ASN1_METHOD_ALREADY_REGISTERED 175 -# define EVP_R_PKEY_ASN1_METHOD_ALREADY_REGISTERED 164 -# define EVP_R_PRIVATE_KEY_DECODE_ERROR 145 -# define EVP_R_PRIVATE_KEY_ENCODE_ERROR 146 -# define EVP_R_PUBLIC_KEY_NOT_RSA 106 -# define EVP_R_UNKNOWN_CIPHER 160 -# define EVP_R_UNKNOWN_DIGEST 161 -# define EVP_R_UNKNOWN_OPTION 169 -# define EVP_R_UNKNOWN_PBE_ALGORITHM 121 -# define EVP_R_UNSUPPORTED_ALGORITHM 156 -# define EVP_R_UNSUPPORTED_CIPHER 107 -# define EVP_R_UNSUPPORTED_KEYLENGTH 123 -# define EVP_R_UNSUPPORTED_KEY_DERIVATION_FUNCTION 124 -# define EVP_R_UNSUPPORTED_KEY_SIZE 108 -# define EVP_R_UNSUPPORTED_NUMBER_OF_ROUNDS 135 -# define EVP_R_UNSUPPORTED_PRF 125 -# define EVP_R_UNSUPPORTED_PRIVATE_KEY_ALGORITHM 118 -# define EVP_R_UNSUPPORTED_SALT_TYPE 126 -# define EVP_R_WRAP_MODE_NOT_ALLOWED 170 -# define EVP_R_WRONG_FINAL_BLOCK_LENGTH 109 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/hmac.h b/Android/app/libs/armeabi/include/openssl/hmac.h deleted file mode 100644 index 9f068960..00000000 --- a/Android/app/libs/armeabi/include/openssl/hmac.h +++ /dev/null @@ -1,49 +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_HMAC_H -# define HEADER_HMAC_H - -# include - -# include - -# define HMAC_MAX_MD_CBLOCK 128/* largest known is SHA512 */ - -#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/Android/app/libs/armeabi/include/openssl/idea.h b/Android/app/libs/armeabi/include/openssl/idea.h deleted file mode 100644 index 4334f3ea..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/kdf.h b/Android/app/libs/armeabi/include/openssl/kdf.h deleted file mode 100644 index 9f87f788..00000000 --- a/Android/app/libs/armeabi/include/openssl/kdf.h +++ /dev/null @@ -1,75 +0,0 @@ -/* - * Copyright 2016 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#ifndef HEADER_KDF_H -# define HEADER_KDF_H - -#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_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) - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_KDF_strings(void); - -/* Error codes for the KDF functions. */ - -/* Function codes. */ -# define KDF_F_PKEY_TLS1_PRF_CTRL_STR 100 -# define KDF_F_PKEY_TLS1_PRF_DERIVE 101 - -/* Reason codes. */ -# define KDF_R_INVALID_DIGEST 100 -# define KDF_R_MISSING_PARAMETER 101 -# define KDF_R_VALUE_MISSING 102 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/lhash.h b/Android/app/libs/armeabi/include/openssl/lhash.h deleted file mode 100644 index 82d40c1e..00000000 --- a/Android/app/libs/armeabi/include/openssl/lhash.h +++ /dev/null @@ -1,217 +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 - */ - -/* - * 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_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_inline void lh_##type##_free(LHASH_OF(type) *lh) \ - { \ - OPENSSL_LH_free((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline type *lh_##type##_insert(LHASH_OF(type) *lh, type *d) \ - { \ - return (type *)OPENSSL_LH_insert((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_inline type *lh_##type##_delete(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_delete((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_inline type *lh_##type##_retrieve(LHASH_OF(type) *lh, const type *d) \ - { \ - return (type *)OPENSSL_LH_retrieve((OPENSSL_LHASH *)lh, d); \ - } \ - static ossl_inline int lh_##type##_error(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_error((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline unsigned long lh_##type##_num_items(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_num_items((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline void lh_##type##_node_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_inline void lh_##type##_node_usage_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_node_usage_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_inline void lh_##type##_stats_bio(const LHASH_OF(type) *lh, BIO *out) \ - { \ - OPENSSL_LH_stats_bio((const OPENSSL_LHASH *)lh, out); \ - } \ - static ossl_inline unsigned long lh_##type##_get_down_load(LHASH_OF(type) *lh) \ - { \ - return OPENSSL_LH_get_down_load((OPENSSL_LHASH *)lh); \ - } \ - static ossl_inline void lh_##type##_set_down_load(LHASH_OF(type) *lh, unsigned long dl) \ - { \ - OPENSSL_LH_set_down_load((OPENSSL_LHASH *)lh, dl); \ - } \ - static 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_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 - -#ifdef __cplusplus -} -#endif - -#endif diff --git a/Android/app/libs/armeabi/include/openssl/md2.h b/Android/app/libs/armeabi/include/openssl/md2.h deleted file mode 100644 index 7faf8e3d..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/md4.h b/Android/app/libs/armeabi/include/openssl/md4.h deleted file mode 100644 index 940e29db..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/md5.h b/Android/app/libs/armeabi/include/openssl/md5.h deleted file mode 100644 index 2deb7721..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/mdc2.h b/Android/app/libs/armeabi/include/openssl/mdc2.h deleted file mode 100644 index aabd2bfa..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/modes.h b/Android/app/libs/armeabi/include/openssl/modes.h deleted file mode 100644 index a04c6a59..00000000 --- a/Android/app/libs/armeabi/include/openssl/modes.h +++ /dev/null @@ -1,203 +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 - */ - -#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 diff --git a/Android/app/libs/armeabi/include/openssl/obj_mac.h b/Android/app/libs/armeabi/include/openssl/obj_mac.h deleted file mode 100644 index f97f3eaa..00000000 --- a/Android/app/libs/armeabi/include/openssl/obj_mac.h +++ /dev/null @@ -1,4577 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by crypto/objects/objects.pl - * - * 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 - */ - -#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_certicom_arc "certicom-arc" -#define NID_certicom_arc 677 -#define OBJ_certicom_arc OBJ_identified_organization,132L - -#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_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_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_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 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 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 Smartcardlogin" -#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 Universal 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_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 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_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_aes_128_xts "AES-128-XTS" -#define LN_aes_128_xts "aes-128-xts" -#define NID_aes_128_xts 913 - -#define SN_aes_256_xts "AES-256-XTS" -#define LN_aes_256_xts "aes-256-xts" -#define NID_aes_256_xts 914 - -#define SN_des_cfb1 "DES-CFB1" -#define LN_des_cfb1 "des-cfb1" -#define NID_des_cfb1 656 - -#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 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 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_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_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_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_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_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 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_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 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_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_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 diff --git a/Android/app/libs/armeabi/include/openssl/objects.h b/Android/app/libs/armeabi/include/openssl/objects.h deleted file mode 100644 index d4462fee..00000000 --- a/Android/app/libs/armeabi/include/openssl/objects.h +++ /dev/null @@ -1,1097 +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_OBJECTS_H -# define HEADER_OBJECTS_H - -# define USE_OBJ_MAC - -# ifdef USE_OBJ_MAC -# include -# else -# define SN_undef "UNDEF" -# define LN_undef "undefined" -# define NID_undef 0 -# define OBJ_undef 0L - -# define SN_Algorithm "Algorithm" -# define LN_algorithm "algorithm" -# define NID_algorithm 38 -# define OBJ_algorithm 1L,3L,14L,3L,2L - -# define LN_rsadsi "rsadsi" -# define NID_rsadsi 1 -# define OBJ_rsadsi 1L,2L,840L,113549L - -# define LN_pkcs "pkcs" -# define NID_pkcs 2 -# define OBJ_pkcs OBJ_rsadsi,1L - -# define SN_md2 "MD2" -# define LN_md2 "md2" -# define NID_md2 3 -# define OBJ_md2 OBJ_rsadsi,2L,2L - -# define SN_md5 "MD5" -# define LN_md5 "md5" -# define NID_md5 4 -# define OBJ_md5 OBJ_rsadsi,2L,5L - -# define SN_rc4 "RC4" -# define LN_rc4 "rc4" -# define NID_rc4 5 -# define OBJ_rc4 OBJ_rsadsi,3L,4L - -# define LN_rsaEncryption "rsaEncryption" -# define NID_rsaEncryption 6 -# define OBJ_rsaEncryption OBJ_pkcs,1L,1L - -# define SN_md2WithRSAEncryption "RSA-MD2" -# define LN_md2WithRSAEncryption "md2WithRSAEncryption" -# define NID_md2WithRSAEncryption 7 -# define OBJ_md2WithRSAEncryption OBJ_pkcs,1L,2L - -# define SN_md5WithRSAEncryption "RSA-MD5" -# define LN_md5WithRSAEncryption "md5WithRSAEncryption" -# define NID_md5WithRSAEncryption 8 -# define OBJ_md5WithRSAEncryption OBJ_pkcs,1L,4L - -# define SN_pbeWithMD2AndDES_CBC "PBE-MD2-DES" -# define LN_pbeWithMD2AndDES_CBC "pbeWithMD2AndDES-CBC" -# define NID_pbeWithMD2AndDES_CBC 9 -# define OBJ_pbeWithMD2AndDES_CBC OBJ_pkcs,5L,1L - -# define SN_pbeWithMD5AndDES_CBC "PBE-MD5-DES" -# define LN_pbeWithMD5AndDES_CBC "pbeWithMD5AndDES-CBC" -# define NID_pbeWithMD5AndDES_CBC 10 -# define OBJ_pbeWithMD5AndDES_CBC OBJ_pkcs,5L,3L - -# define LN_X500 "X500" -# define NID_X500 11 -# define OBJ_X500 2L,5L - -# define LN_X509 "X509" -# define NID_X509 12 -# define OBJ_X509 OBJ_X500,4L - -# define SN_commonName "CN" -# define LN_commonName "commonName" -# define NID_commonName 13 -# define OBJ_commonName OBJ_X509,3L - -# define SN_countryName "C" -# define LN_countryName "countryName" -# define NID_countryName 14 -# define OBJ_countryName OBJ_X509,6L - -# define SN_localityName "L" -# define LN_localityName "localityName" -# define NID_localityName 15 -# define OBJ_localityName OBJ_X509,7L - -/* Postal Address? PA */ - -/* should be "ST" (rfc1327) but MS uses 'S' */ -# define SN_stateOrProvinceName "ST" -# define LN_stateOrProvinceName "stateOrProvinceName" -# define NID_stateOrProvinceName 16 -# define OBJ_stateOrProvinceName OBJ_X509,8L - -# define SN_organizationName "O" -# define LN_organizationName "organizationName" -# define NID_organizationName 17 -# define OBJ_organizationName OBJ_X509,10L - -# define SN_organizationalUnitName "OU" -# define LN_organizationalUnitName "organizationalUnitName" -# define NID_organizationalUnitName 18 -# define OBJ_organizationalUnitName OBJ_X509,11L - -# define SN_rsa "RSA" -# define LN_rsa "rsa" -# define NID_rsa 19 -# define OBJ_rsa OBJ_X500,8L,1L,1L - -# define LN_pkcs7 "pkcs7" -# define NID_pkcs7 20 -# define OBJ_pkcs7 OBJ_pkcs,7L - -# define LN_pkcs7_data "pkcs7-data" -# define NID_pkcs7_data 21 -# define OBJ_pkcs7_data OBJ_pkcs7,1L - -# define LN_pkcs7_signed "pkcs7-signedData" -# define NID_pkcs7_signed 22 -# define OBJ_pkcs7_signed OBJ_pkcs7,2L - -# define LN_pkcs7_enveloped "pkcs7-envelopedData" -# define NID_pkcs7_enveloped 23 -# define OBJ_pkcs7_enveloped OBJ_pkcs7,3L - -# define LN_pkcs7_signedAndEnveloped "pkcs7-signedAndEnvelopedData" -# define NID_pkcs7_signedAndEnveloped 24 -# define OBJ_pkcs7_signedAndEnveloped OBJ_pkcs7,4L - -# define LN_pkcs7_digest "pkcs7-digestData" -# define NID_pkcs7_digest 25 -# define OBJ_pkcs7_digest OBJ_pkcs7,5L - -# define LN_pkcs7_encrypted "pkcs7-encryptedData" -# define NID_pkcs7_encrypted 26 -# define OBJ_pkcs7_encrypted OBJ_pkcs7,6L - -# define LN_pkcs3 "pkcs3" -# define NID_pkcs3 27 -# define OBJ_pkcs3 OBJ_pkcs,3L - -# define LN_dhKeyAgreement "dhKeyAgreement" -# define NID_dhKeyAgreement 28 -# define OBJ_dhKeyAgreement OBJ_pkcs3,1L - -# define SN_des_ecb "DES-ECB" -# define LN_des_ecb "des-ecb" -# define NID_des_ecb 29 -# define OBJ_des_ecb OBJ_algorithm,6L - -# define SN_des_cfb64 "DES-CFB" -# define LN_des_cfb64 "des-cfb" -# define NID_des_cfb64 30 -/* IV + num */ -# define OBJ_des_cfb64 OBJ_algorithm,9L - -# define SN_des_cbc "DES-CBC" -# define LN_des_cbc "des-cbc" -# define NID_des_cbc 31 -/* IV */ -# define OBJ_des_cbc OBJ_algorithm,7L - -# define SN_des_ede "DES-EDE" -# define LN_des_ede "des-ede" -# define NID_des_ede 32 -/* ?? */ -# define OBJ_des_ede OBJ_algorithm,17L - -# define SN_des_ede3 "DES-EDE3" -# define LN_des_ede3 "des-ede3" -# define NID_des_ede3 33 - -# define SN_idea_cbc "IDEA-CBC" -# define LN_idea_cbc "idea-cbc" -# define NID_idea_cbc 34 -# define OBJ_idea_cbc 1L,3L,6L,1L,4L,1L,188L,7L,1L,1L,2L - -# define SN_idea_cfb64 "IDEA-CFB" -# define LN_idea_cfb64 "idea-cfb" -# define NID_idea_cfb64 35 - -# define SN_idea_ecb "IDEA-ECB" -# define LN_idea_ecb "idea-ecb" -# define NID_idea_ecb 36 - -# define SN_rc2_cbc "RC2-CBC" -# define LN_rc2_cbc "rc2-cbc" -# define NID_rc2_cbc 37 -# define OBJ_rc2_cbc OBJ_rsadsi,3L,2L - -# define SN_rc2_ecb "RC2-ECB" -# define LN_rc2_ecb "rc2-ecb" -# define NID_rc2_ecb 38 - -# define SN_rc2_cfb64 "RC2-CFB" -# define LN_rc2_cfb64 "rc2-cfb" -# define NID_rc2_cfb64 39 - -# define SN_rc2_ofb64 "RC2-OFB" -# define LN_rc2_ofb64 "rc2-ofb" -# define NID_rc2_ofb64 40 - -# define SN_sha "SHA" -# define LN_sha "sha" -# define NID_sha 41 -# define OBJ_sha OBJ_algorithm,18L - -# define SN_shaWithRSAEncryption "RSA-SHA" -# define LN_shaWithRSAEncryption "shaWithRSAEncryption" -# define NID_shaWithRSAEncryption 42 -# define OBJ_shaWithRSAEncryption OBJ_algorithm,15L - -# define SN_des_ede_cbc "DES-EDE-CBC" -# define LN_des_ede_cbc "des-ede-cbc" -# define NID_des_ede_cbc 43 - -# define SN_des_ede3_cbc "DES-EDE3-CBC" -# define LN_des_ede3_cbc "des-ede3-cbc" -# define NID_des_ede3_cbc 44 -# define OBJ_des_ede3_cbc OBJ_rsadsi,3L,7L - -# define SN_des_ofb64 "DES-OFB" -# define LN_des_ofb64 "des-ofb" -# define NID_des_ofb64 45 -# define OBJ_des_ofb64 OBJ_algorithm,8L - -# define SN_idea_ofb64 "IDEA-OFB" -# define LN_idea_ofb64 "idea-ofb" -# define NID_idea_ofb64 46 - -# define LN_pkcs9 "pkcs9" -# define NID_pkcs9 47 -# define OBJ_pkcs9 OBJ_pkcs,9L - -# define SN_pkcs9_emailAddress "Email" -# define LN_pkcs9_emailAddress "emailAddress" -# define NID_pkcs9_emailAddress 48 -# define OBJ_pkcs9_emailAddress OBJ_pkcs9,1L - -# define LN_pkcs9_unstructuredName "unstructuredName" -# define NID_pkcs9_unstructuredName 49 -# define OBJ_pkcs9_unstructuredName OBJ_pkcs9,2L - -# define LN_pkcs9_contentType "contentType" -# define NID_pkcs9_contentType 50 -# define OBJ_pkcs9_contentType OBJ_pkcs9,3L - -# define LN_pkcs9_messageDigest "messageDigest" -# define NID_pkcs9_messageDigest 51 -# define OBJ_pkcs9_messageDigest OBJ_pkcs9,4L - -# define LN_pkcs9_signingTime "signingTime" -# define NID_pkcs9_signingTime 52 -# define OBJ_pkcs9_signingTime OBJ_pkcs9,5L - -# define LN_pkcs9_countersignature "countersignature" -# define NID_pkcs9_countersignature 53 -# define OBJ_pkcs9_countersignature OBJ_pkcs9,6L - -# define LN_pkcs9_challengePassword "challengePassword" -# define NID_pkcs9_challengePassword 54 -# define OBJ_pkcs9_challengePassword OBJ_pkcs9,7L - -# define LN_pkcs9_unstructuredAddress "unstructuredAddress" -# define NID_pkcs9_unstructuredAddress 55 -# define OBJ_pkcs9_unstructuredAddress OBJ_pkcs9,8L - -# define LN_pkcs9_extCertAttributes "extendedCertificateAttributes" -# define NID_pkcs9_extCertAttributes 56 -# define OBJ_pkcs9_extCertAttributes OBJ_pkcs9,9L - -# define SN_netscape "Netscape" -# define LN_netscape "Netscape Communications Corp." -# define NID_netscape 57 -# define OBJ_netscape 2L,16L,840L,1L,113730L - -# define SN_netscape_cert_extension "nsCertExt" -# define LN_netscape_cert_extension "Netscape Certificate Extension" -# define NID_netscape_cert_extension 58 -# define OBJ_netscape_cert_extension OBJ_netscape,1L - -# define SN_netscape_data_type "nsDataType" -# define LN_netscape_data_type "Netscape Data Type" -# define NID_netscape_data_type 59 -# define OBJ_netscape_data_type OBJ_netscape,2L - -# define SN_des_ede_cfb64 "DES-EDE-CFB" -# define LN_des_ede_cfb64 "des-ede-cfb" -# define NID_des_ede_cfb64 60 - -# define SN_des_ede3_cfb64 "DES-EDE3-CFB" -# define LN_des_ede3_cfb64 "des-ede3-cfb" -# define NID_des_ede3_cfb64 61 - -# define SN_des_ede_ofb64 "DES-EDE-OFB" -# define LN_des_ede_ofb64 "des-ede-ofb" -# define NID_des_ede_ofb64 62 - -# define SN_des_ede3_ofb64 "DES-EDE3-OFB" -# define LN_des_ede3_ofb64 "des-ede3-ofb" -# define NID_des_ede3_ofb64 63 - -/* I'm not sure about the object ID */ -# define SN_sha1 "SHA1" -# define LN_sha1 "sha1" -# define NID_sha1 64 -# define OBJ_sha1 OBJ_algorithm,26L -/* 28 Jun 1996 - eay */ -/* #define OBJ_sha1 1L,3L,14L,2L,26L,05L <- wrong */ - -# define SN_sha1WithRSAEncryption "RSA-SHA1" -# define LN_sha1WithRSAEncryption "sha1WithRSAEncryption" -# define NID_sha1WithRSAEncryption 65 -# define OBJ_sha1WithRSAEncryption OBJ_pkcs,1L,5L - -# define SN_dsaWithSHA "DSA-SHA" -# define LN_dsaWithSHA "dsaWithSHA" -# define NID_dsaWithSHA 66 -# define OBJ_dsaWithSHA OBJ_algorithm,13L - -# define SN_dsa_2 "DSA-old" -# define LN_dsa_2 "dsaEncryption-old" -# define NID_dsa_2 67 -# define OBJ_dsa_2 OBJ_algorithm,12L - -/* proposed by microsoft to RSA */ -# define SN_pbeWithSHA1AndRC2_CBC "PBE-SHA1-RC2-64" -# define LN_pbeWithSHA1AndRC2_CBC "pbeWithSHA1AndRC2-CBC" -# define NID_pbeWithSHA1AndRC2_CBC 68 -# define OBJ_pbeWithSHA1AndRC2_CBC OBJ_pkcs,5L,11L - -/* - * proposed by microsoft to RSA as pbeWithSHA1AndRC4: it is now defined - * explicitly in PKCS#5 v2.0 as id-PBKDF2 which is something completely - * different. - */ -# define LN_id_pbkdf2 "PBKDF2" -# define NID_id_pbkdf2 69 -# define OBJ_id_pbkdf2 OBJ_pkcs,5L,12L - -# define SN_dsaWithSHA1_2 "DSA-SHA1-old" -# define LN_dsaWithSHA1_2 "dsaWithSHA1-old" -# define NID_dsaWithSHA1_2 70 -/* Got this one from 'sdn706r20.pdf' which is actually an NSA document :-) */ -# define OBJ_dsaWithSHA1_2 OBJ_algorithm,27L - -# define SN_netscape_cert_type "nsCertType" -# define LN_netscape_cert_type "Netscape Cert Type" -# define NID_netscape_cert_type 71 -# define OBJ_netscape_cert_type OBJ_netscape_cert_extension,1L - -# define SN_netscape_base_url "nsBaseUrl" -# define LN_netscape_base_url "Netscape Base Url" -# define NID_netscape_base_url 72 -# define OBJ_netscape_base_url OBJ_netscape_cert_extension,2L - -# define SN_netscape_revocation_url "nsRevocationUrl" -# define LN_netscape_revocation_url "Netscape Revocation Url" -# define NID_netscape_revocation_url 73 -# define OBJ_netscape_revocation_url OBJ_netscape_cert_extension,3L - -# define SN_netscape_ca_revocation_url "nsCaRevocationUrl" -# define LN_netscape_ca_revocation_url "Netscape CA Revocation Url" -# define NID_netscape_ca_revocation_url 74 -# define OBJ_netscape_ca_revocation_url OBJ_netscape_cert_extension,4L - -# define SN_netscape_renewal_url "nsRenewalUrl" -# define LN_netscape_renewal_url "Netscape Renewal Url" -# define NID_netscape_renewal_url 75 -# define OBJ_netscape_renewal_url OBJ_netscape_cert_extension,7L - -# define SN_netscape_ca_policy_url "nsCaPolicyUrl" -# define LN_netscape_ca_policy_url "Netscape CA Policy Url" -# define NID_netscape_ca_policy_url 76 -# define OBJ_netscape_ca_policy_url OBJ_netscape_cert_extension,8L - -# define SN_netscape_ssl_server_name "nsSslServerName" -# define LN_netscape_ssl_server_name "Netscape SSL Server Name" -# define NID_netscape_ssl_server_name 77 -# define OBJ_netscape_ssl_server_name OBJ_netscape_cert_extension,12L - -# define SN_netscape_comment "nsComment" -# define LN_netscape_comment "Netscape Comment" -# define NID_netscape_comment 78 -# define OBJ_netscape_comment OBJ_netscape_cert_extension,13L - -# define SN_netscape_cert_sequence "nsCertSequence" -# define LN_netscape_cert_sequence "Netscape Certificate Sequence" -# define NID_netscape_cert_sequence 79 -# define OBJ_netscape_cert_sequence OBJ_netscape_data_type,5L - -# define SN_desx_cbc "DESX-CBC" -# define LN_desx_cbc "desx-cbc" -# define NID_desx_cbc 80 - -# define SN_id_ce "id-ce" -# define NID_id_ce 81 -# define OBJ_id_ce 2L,5L,29L - -# define SN_subject_key_identifier "subjectKeyIdentifier" -# define LN_subject_key_identifier "X509v3 Subject Key Identifier" -# define NID_subject_key_identifier 82 -# define OBJ_subject_key_identifier OBJ_id_ce,14L - -# define SN_key_usage "keyUsage" -# define LN_key_usage "X509v3 Key Usage" -# define NID_key_usage 83 -# define OBJ_key_usage OBJ_id_ce,15L - -# define SN_private_key_usage_period "privateKeyUsagePeriod" -# define LN_private_key_usage_period "X509v3 Private Key Usage Period" -# define NID_private_key_usage_period 84 -# define OBJ_private_key_usage_period OBJ_id_ce,16L - -# define SN_subject_alt_name "subjectAltName" -# define LN_subject_alt_name "X509v3 Subject Alternative Name" -# define NID_subject_alt_name 85 -# define OBJ_subject_alt_name OBJ_id_ce,17L - -# define SN_issuer_alt_name "issuerAltName" -# define LN_issuer_alt_name "X509v3 Issuer Alternative Name" -# define NID_issuer_alt_name 86 -# define OBJ_issuer_alt_name OBJ_id_ce,18L - -# define SN_basic_constraints "basicConstraints" -# define LN_basic_constraints "X509v3 Basic Constraints" -# define NID_basic_constraints 87 -# define OBJ_basic_constraints OBJ_id_ce,19L - -# define SN_crl_number "crlNumber" -# define LN_crl_number "X509v3 CRL Number" -# define NID_crl_number 88 -# define OBJ_crl_number OBJ_id_ce,20L - -# define SN_certificate_policies "certificatePolicies" -# define LN_certificate_policies "X509v3 Certificate Policies" -# define NID_certificate_policies 89 -# define OBJ_certificate_policies OBJ_id_ce,32L - -# define SN_authority_key_identifier "authorityKeyIdentifier" -# define LN_authority_key_identifier "X509v3 Authority Key Identifier" -# define NID_authority_key_identifier 90 -# define OBJ_authority_key_identifier OBJ_id_ce,35L - -# define SN_bf_cbc "BF-CBC" -# define LN_bf_cbc "bf-cbc" -# define NID_bf_cbc 91 -# define OBJ_bf_cbc 1L,3L,6L,1L,4L,1L,3029L,1L,2L - -# define SN_bf_ecb "BF-ECB" -# define LN_bf_ecb "bf-ecb" -# define NID_bf_ecb 92 - -# define SN_bf_cfb64 "BF-CFB" -# define LN_bf_cfb64 "bf-cfb" -# define NID_bf_cfb64 93 - -# define SN_bf_ofb64 "BF-OFB" -# define LN_bf_ofb64 "bf-ofb" -# define NID_bf_ofb64 94 - -# define SN_mdc2 "MDC2" -# define LN_mdc2 "mdc2" -# define NID_mdc2 95 -# define OBJ_mdc2 2L,5L,8L,3L,101L -/* An alternative? 1L,3L,14L,3L,2L,19L */ - -# define SN_mdc2WithRSA "RSA-MDC2" -# define LN_mdc2WithRSA "mdc2withRSA" -# define NID_mdc2WithRSA 96 -# define OBJ_mdc2WithRSA 2L,5L,8L,3L,100L - -# define SN_rc4_40 "RC4-40" -# define LN_rc4_40 "rc4-40" -# define NID_rc4_40 97 - -# define SN_rc2_40_cbc "RC2-40-CBC" -# define LN_rc2_40_cbc "rc2-40-cbc" -# define NID_rc2_40_cbc 98 - -# define SN_givenName "G" -# define LN_givenName "givenName" -# define NID_givenName 99 -# define OBJ_givenName OBJ_X509,42L - -# define SN_surname "S" -# define LN_surname "surname" -# define NID_surname 100 -# define OBJ_surname OBJ_X509,4L - -# define SN_initials "I" -# define LN_initials "initials" -# define NID_initials 101 -# define OBJ_initials OBJ_X509,43L - -# define SN_uniqueIdentifier "UID" -# define LN_uniqueIdentifier "uniqueIdentifier" -# define NID_uniqueIdentifier 102 -# define OBJ_uniqueIdentifier OBJ_X509,45L - -# define SN_crl_distribution_points "crlDistributionPoints" -# define LN_crl_distribution_points "X509v3 CRL Distribution Points" -# define NID_crl_distribution_points 103 -# define OBJ_crl_distribution_points OBJ_id_ce,31L - -# define SN_md5WithRSA "RSA-NP-MD5" -# define LN_md5WithRSA "md5WithRSA" -# define NID_md5WithRSA 104 -# define OBJ_md5WithRSA OBJ_algorithm,3L - -# define SN_serialNumber "SN" -# define LN_serialNumber "serialNumber" -# define NID_serialNumber 105 -# define OBJ_serialNumber OBJ_X509,5L - -# define SN_title "T" -# define LN_title "title" -# define NID_title 106 -# define OBJ_title OBJ_X509,12L - -# define SN_description "D" -# define LN_description "description" -# define NID_description 107 -# define OBJ_description OBJ_X509,13L - -/* CAST5 is CAST-128, I'm just sticking with the documentation */ -# define SN_cast5_cbc "CAST5-CBC" -# define LN_cast5_cbc "cast5-cbc" -# define NID_cast5_cbc 108 -# define OBJ_cast5_cbc 1L,2L,840L,113533L,7L,66L,10L - -# define SN_cast5_ecb "CAST5-ECB" -# define LN_cast5_ecb "cast5-ecb" -# define NID_cast5_ecb 109 - -# define SN_cast5_cfb64 "CAST5-CFB" -# define LN_cast5_cfb64 "cast5-cfb" -# define NID_cast5_cfb64 110 - -# define SN_cast5_ofb64 "CAST5-OFB" -# define LN_cast5_ofb64 "cast5-ofb" -# define NID_cast5_ofb64 111 - -# define LN_pbeWithMD5AndCast5_CBC "pbeWithMD5AndCast5CBC" -# define NID_pbeWithMD5AndCast5_CBC 112 -# define OBJ_pbeWithMD5AndCast5_CBC 1L,2L,840L,113533L,7L,66L,12L - -/*- - * This is one sun will soon be using :-( - * id-dsa-with-sha1 ID ::= { - * iso(1) member-body(2) us(840) x9-57 (10040) x9cm(4) 3 } - */ -# define SN_dsaWithSHA1 "DSA-SHA1" -# define LN_dsaWithSHA1 "dsaWithSHA1" -# define NID_dsaWithSHA1 113 -# define OBJ_dsaWithSHA1 1L,2L,840L,10040L,4L,3L - -# define NID_md5_sha1 114 -# define SN_md5_sha1 "MD5-SHA1" -# define LN_md5_sha1 "md5-sha1" - -# define SN_sha1WithRSA "RSA-SHA1-2" -# define LN_sha1WithRSA "sha1WithRSA" -# define NID_sha1WithRSA 115 -# define OBJ_sha1WithRSA OBJ_algorithm,29L - -# define SN_dsa "DSA" -# define LN_dsa "dsaEncryption" -# define NID_dsa 116 -# define OBJ_dsa 1L,2L,840L,10040L,4L,1L - -# define SN_ripemd160 "RIPEMD160" -# define LN_ripemd160 "ripemd160" -# define NID_ripemd160 117 -# define OBJ_ripemd160 1L,3L,36L,3L,2L,1L - -/* - * The name should actually be rsaSignatureWithripemd160, but I'm going to - * continue using the convention I'm using with the other ciphers - */ -# define SN_ripemd160WithRSA "RSA-RIPEMD160" -# define LN_ripemd160WithRSA "ripemd160WithRSA" -# define NID_ripemd160WithRSA 119 -# define OBJ_ripemd160WithRSA 1L,3L,36L,3L,3L,1L,2L - -/*- - * Taken from rfc2040 - * RC5_CBC_Parameters ::= SEQUENCE { - * version INTEGER (v1_0(16)), - * rounds INTEGER (8..127), - * blockSizeInBits INTEGER (64, 128), - * iv OCTET STRING OPTIONAL - * } - */ -# define SN_rc5_cbc "RC5-CBC" -# define LN_rc5_cbc "rc5-cbc" -# define NID_rc5_cbc 120 -# define OBJ_rc5_cbc OBJ_rsadsi,3L,8L - -# define SN_rc5_ecb "RC5-ECB" -# define LN_rc5_ecb "rc5-ecb" -# define NID_rc5_ecb 121 - -# define SN_rc5_cfb64 "RC5-CFB" -# define LN_rc5_cfb64 "rc5-cfb" -# define NID_rc5_cfb64 122 - -# define SN_rc5_ofb64 "RC5-OFB" -# define LN_rc5_ofb64 "rc5-ofb" -# define NID_rc5_ofb64 123 - -# define SN_rle_compression "RLE" -# define LN_rle_compression "run length compression" -# define NID_rle_compression 124 -# define OBJ_rle_compression 1L,1L,1L,1L,666L,1L - -# define SN_zlib_compression "ZLIB" -# define LN_zlib_compression "zlib compression" -# define NID_zlib_compression 125 -# define OBJ_zlib_compression 1L,1L,1L,1L,666L,2L - -# define SN_ext_key_usage "extendedKeyUsage" -# define LN_ext_key_usage "X509v3 Extended Key Usage" -# define NID_ext_key_usage 126 -# define OBJ_ext_key_usage OBJ_id_ce,37 - -# define SN_id_pkix "PKIX" -# define NID_id_pkix 127 -# define OBJ_id_pkix 1L,3L,6L,1L,5L,5L,7L - -# define SN_id_kp "id-kp" -# define NID_id_kp 128 -# define OBJ_id_kp OBJ_id_pkix,3L - -/* PKIX extended key usage OIDs */ - -# define SN_server_auth "serverAuth" -# define LN_server_auth "TLS Web Server Authentication" -# define NID_server_auth 129 -# define OBJ_server_auth OBJ_id_kp,1L - -# define SN_client_auth "clientAuth" -# define LN_client_auth "TLS Web Client Authentication" -# define NID_client_auth 130 -# define OBJ_client_auth OBJ_id_kp,2L - -# define SN_code_sign "codeSigning" -# define LN_code_sign "Code Signing" -# define NID_code_sign 131 -# define OBJ_code_sign OBJ_id_kp,3L - -# define SN_email_protect "emailProtection" -# define LN_email_protect "E-mail Protection" -# define NID_email_protect 132 -# define OBJ_email_protect OBJ_id_kp,4L - -# define SN_time_stamp "timeStamping" -# define LN_time_stamp "Time Stamping" -# define NID_time_stamp 133 -# define OBJ_time_stamp OBJ_id_kp,8L - -/* Additional extended key usage OIDs: Microsoft */ - -# define SN_ms_code_ind "msCodeInd" -# define LN_ms_code_ind "Microsoft Individual Code Signing" -# define NID_ms_code_ind 134 -# define OBJ_ms_code_ind 1L,3L,6L,1L,4L,1L,311L,2L,1L,21L - -# define SN_ms_code_com "msCodeCom" -# define LN_ms_code_com "Microsoft Commercial Code Signing" -# define NID_ms_code_com 135 -# define OBJ_ms_code_com 1L,3L,6L,1L,4L,1L,311L,2L,1L,22L - -# define SN_ms_ctl_sign "msCTLSign" -# define LN_ms_ctl_sign "Microsoft Trust List Signing" -# define NID_ms_ctl_sign 136 -# define OBJ_ms_ctl_sign 1L,3L,6L,1L,4L,1L,311L,10L,3L,1L - -# define SN_ms_sgc "msSGC" -# define LN_ms_sgc "Microsoft Server Gated Crypto" -# define NID_ms_sgc 137 -# define OBJ_ms_sgc 1L,3L,6L,1L,4L,1L,311L,10L,3L,3L - -# define SN_ms_efs "msEFS" -# define LN_ms_efs "Microsoft Encrypted File System" -# define NID_ms_efs 138 -# define OBJ_ms_efs 1L,3L,6L,1L,4L,1L,311L,10L,3L,4L - -/* Additional usage: Netscape */ - -# define SN_ns_sgc "nsSGC" -# define LN_ns_sgc "Netscape Server Gated Crypto" -# define NID_ns_sgc 139 -# define OBJ_ns_sgc OBJ_netscape,4L,1L - -# define SN_delta_crl "deltaCRL" -# define LN_delta_crl "X509v3 Delta CRL Indicator" -# define NID_delta_crl 140 -# define OBJ_delta_crl OBJ_id_ce,27L - -# define SN_crl_reason "CRLReason" -# define LN_crl_reason "CRL Reason Code" -# define NID_crl_reason 141 -# define OBJ_crl_reason OBJ_id_ce,21L - -# define SN_invalidity_date "invalidityDate" -# define LN_invalidity_date "Invalidity Date" -# define NID_invalidity_date 142 -# define OBJ_invalidity_date OBJ_id_ce,24L - -# define SN_sxnet "SXNetID" -# define LN_sxnet "Strong Extranet ID" -# define NID_sxnet 143 -# define OBJ_sxnet 1L,3L,101L,1L,4L,1L - -/* PKCS12 and related OBJECT IDENTIFIERS */ - -# define OBJ_pkcs12 OBJ_pkcs,12L -# define OBJ_pkcs12_pbeids OBJ_pkcs12, 1 - -# define SN_pbe_WithSHA1And128BitRC4 "PBE-SHA1-RC4-128" -# define LN_pbe_WithSHA1And128BitRC4 "pbeWithSHA1And128BitRC4" -# define NID_pbe_WithSHA1And128BitRC4 144 -# define OBJ_pbe_WithSHA1And128BitRC4 OBJ_pkcs12_pbeids, 1L - -# define SN_pbe_WithSHA1And40BitRC4 "PBE-SHA1-RC4-40" -# define LN_pbe_WithSHA1And40BitRC4 "pbeWithSHA1And40BitRC4" -# define NID_pbe_WithSHA1And40BitRC4 145 -# define OBJ_pbe_WithSHA1And40BitRC4 OBJ_pkcs12_pbeids, 2L - -# define SN_pbe_WithSHA1And3_Key_TripleDES_CBC "PBE-SHA1-3DES" -# define LN_pbe_WithSHA1And3_Key_TripleDES_CBC "pbeWithSHA1And3-KeyTripleDES-CBC" -# define NID_pbe_WithSHA1And3_Key_TripleDES_CBC 146 -# define OBJ_pbe_WithSHA1And3_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 3L - -# define SN_pbe_WithSHA1And2_Key_TripleDES_CBC "PBE-SHA1-2DES" -# define LN_pbe_WithSHA1And2_Key_TripleDES_CBC "pbeWithSHA1And2-KeyTripleDES-CBC" -# define NID_pbe_WithSHA1And2_Key_TripleDES_CBC 147 -# define OBJ_pbe_WithSHA1And2_Key_TripleDES_CBC OBJ_pkcs12_pbeids, 4L - -# define SN_pbe_WithSHA1And128BitRC2_CBC "PBE-SHA1-RC2-128" -# define LN_pbe_WithSHA1And128BitRC2_CBC "pbeWithSHA1And128BitRC2-CBC" -# define NID_pbe_WithSHA1And128BitRC2_CBC 148 -# define OBJ_pbe_WithSHA1And128BitRC2_CBC OBJ_pkcs12_pbeids, 5L - -# define SN_pbe_WithSHA1And40BitRC2_CBC "PBE-SHA1-RC2-40" -# define LN_pbe_WithSHA1And40BitRC2_CBC "pbeWithSHA1And40BitRC2-CBC" -# define NID_pbe_WithSHA1And40BitRC2_CBC 149 -# define OBJ_pbe_WithSHA1And40BitRC2_CBC OBJ_pkcs12_pbeids, 6L - -# define OBJ_pkcs12_Version1 OBJ_pkcs12, 10L - -# define OBJ_pkcs12_BagIds OBJ_pkcs12_Version1, 1L - -# define LN_keyBag "keyBag" -# define NID_keyBag 150 -# define OBJ_keyBag OBJ_pkcs12_BagIds, 1L - -# define LN_pkcs8ShroudedKeyBag "pkcs8ShroudedKeyBag" -# define NID_pkcs8ShroudedKeyBag 151 -# define OBJ_pkcs8ShroudedKeyBag OBJ_pkcs12_BagIds, 2L - -# define LN_certBag "certBag" -# define NID_certBag 152 -# define OBJ_certBag OBJ_pkcs12_BagIds, 3L - -# define LN_crlBag "crlBag" -# define NID_crlBag 153 -# define OBJ_crlBag OBJ_pkcs12_BagIds, 4L - -# define LN_secretBag "secretBag" -# define NID_secretBag 154 -# define OBJ_secretBag OBJ_pkcs12_BagIds, 5L - -# define LN_safeContentsBag "safeContentsBag" -# define NID_safeContentsBag 155 -# define OBJ_safeContentsBag OBJ_pkcs12_BagIds, 6L - -# define LN_friendlyName "friendlyName" -# define NID_friendlyName 156 -# define OBJ_friendlyName OBJ_pkcs9, 20L - -# define LN_localKeyID "localKeyID" -# define NID_localKeyID 157 -# define OBJ_localKeyID OBJ_pkcs9, 21L - -# define OBJ_certTypes OBJ_pkcs9, 22L - -# define LN_x509Certificate "x509Certificate" -# define NID_x509Certificate 158 -# define OBJ_x509Certificate OBJ_certTypes, 1L - -# define LN_sdsiCertificate "sdsiCertificate" -# define NID_sdsiCertificate 159 -# define OBJ_sdsiCertificate OBJ_certTypes, 2L - -# define OBJ_crlTypes OBJ_pkcs9, 23L - -# define LN_x509Crl "x509Crl" -# define NID_x509Crl 160 -# define OBJ_x509Crl OBJ_crlTypes, 1L - -/* PKCS#5 v2 OIDs */ - -# define LN_pbes2 "PBES2" -# define NID_pbes2 161 -# define OBJ_pbes2 OBJ_pkcs,5L,13L - -# define LN_pbmac1 "PBMAC1" -# define NID_pbmac1 162 -# define OBJ_pbmac1 OBJ_pkcs,5L,14L - -# define LN_hmacWithSHA1 "hmacWithSHA1" -# define NID_hmacWithSHA1 163 -# define OBJ_hmacWithSHA1 OBJ_rsadsi,2L,7L - -/* Policy Qualifier Ids */ - -# define LN_id_qt_cps "Policy Qualifier CPS" -# define SN_id_qt_cps "id-qt-cps" -# define NID_id_qt_cps 164 -# define OBJ_id_qt_cps OBJ_id_pkix,2L,1L - -# define LN_id_qt_unotice "Policy Qualifier User Notice" -# define SN_id_qt_unotice "id-qt-unotice" -# define NID_id_qt_unotice 165 -# define OBJ_id_qt_unotice OBJ_id_pkix,2L,2L - -# define SN_rc2_64_cbc "RC2-64-CBC" -# define LN_rc2_64_cbc "rc2-64-cbc" -# define NID_rc2_64_cbc 166 - -# define SN_SMIMECapabilities "SMIME-CAPS" -# define LN_SMIMECapabilities "S/MIME Capabilities" -# define NID_SMIMECapabilities 167 -# define OBJ_SMIMECapabilities OBJ_pkcs9,15L - -# define SN_pbeWithMD2AndRC2_CBC "PBE-MD2-RC2-64" -# define LN_pbeWithMD2AndRC2_CBC "pbeWithMD2AndRC2-CBC" -# define NID_pbeWithMD2AndRC2_CBC 168 -# define OBJ_pbeWithMD2AndRC2_CBC OBJ_pkcs,5L,4L - -# define SN_pbeWithMD5AndRC2_CBC "PBE-MD5-RC2-64" -# define LN_pbeWithMD5AndRC2_CBC "pbeWithMD5AndRC2-CBC" -# define NID_pbeWithMD5AndRC2_CBC 169 -# define OBJ_pbeWithMD5AndRC2_CBC OBJ_pkcs,5L,6L - -# define SN_pbeWithSHA1AndDES_CBC "PBE-SHA1-DES" -# define LN_pbeWithSHA1AndDES_CBC "pbeWithSHA1AndDES-CBC" -# define NID_pbeWithSHA1AndDES_CBC 170 -# define OBJ_pbeWithSHA1AndDES_CBC OBJ_pkcs,5L,10L - -/* Extension request OIDs */ - -# define LN_ms_ext_req "Microsoft Extension Request" -# define SN_ms_ext_req "msExtReq" -# define NID_ms_ext_req 171 -# define OBJ_ms_ext_req 1L,3L,6L,1L,4L,1L,311L,2L,1L,14L - -# define LN_ext_req "Extension Request" -# define SN_ext_req "extReq" -# define NID_ext_req 172 -# define OBJ_ext_req OBJ_pkcs9,14L - -# define SN_name "name" -# define LN_name "name" -# define NID_name 173 -# define OBJ_name OBJ_X509,41L - -# define SN_dnQualifier "dnQualifier" -# define LN_dnQualifier "dnQualifier" -# define NID_dnQualifier 174 -# define OBJ_dnQualifier OBJ_X509,46L - -# define SN_id_pe "id-pe" -# define NID_id_pe 175 -# define OBJ_id_pe OBJ_id_pkix,1L - -# define SN_id_ad "id-ad" -# define NID_id_ad 176 -# define OBJ_id_ad OBJ_id_pkix,48L - -# define SN_info_access "authorityInfoAccess" -# define LN_info_access "Authority Information Access" -# define NID_info_access 177 -# define OBJ_info_access OBJ_id_pe,1L - -# define SN_ad_OCSP "OCSP" -# define LN_ad_OCSP "OCSP" -# define NID_ad_OCSP 178 -# define OBJ_ad_OCSP OBJ_id_ad,1L - -# define SN_ad_ca_issuers "caIssuers" -# define LN_ad_ca_issuers "CA Issuers" -# define NID_ad_ca_issuers 179 -# define OBJ_ad_ca_issuers OBJ_id_ad,2L - -# define SN_OCSP_sign "OCSPSigning" -# define LN_OCSP_sign "OCSP Signing" -# define NID_OCSP_sign 180 -# define OBJ_OCSP_sign OBJ_id_kp,9L -# endif /* USE_OBJ_MAC */ - -# include -# include - -# 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_OBJ_strings(void); - -/* Error codes for the OBJ functions. */ - -/* Function codes. */ -# define OBJ_F_OBJ_ADD_OBJECT 105 -# define OBJ_F_OBJ_CREATE 100 -# define OBJ_F_OBJ_DUP 101 -# define OBJ_F_OBJ_NAME_NEW_INDEX 106 -# define OBJ_F_OBJ_NID2LN 102 -# define OBJ_F_OBJ_NID2OBJ 103 -# define OBJ_F_OBJ_NID2SN 104 - -/* Reason codes. */ -# define OBJ_R_OID_EXISTS 102 -# define OBJ_R_UNKNOWN_NID 101 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/ocsp.h b/Android/app/libs/armeabi/include/openssl/ocsp.h deleted file mode 100644 index 90ebe5cc..00000000 --- a/Android/app/libs/armeabi/include/openssl/ocsp.h +++ /dev/null @@ -1,398 +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_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 - -#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) -DECLARE_ASN1_FUNCTIONS(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_i2d(OCSP_REQ_CTX *rctx, const ASN1_ITEM *it, - ASN1_VALUE *val); -int OCSP_REQ_CTX_http(OCSP_REQ_CTX *rctx, const char *op, const char *path); -int OCSP_REQ_CTX_set1_req(OCSP_REQ_CTX *rctx, OCSP_REQUEST *req); -int OCSP_REQ_CTX_add1_header(OCSP_REQ_CTX *rctx, - 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); -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_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(OCSP_CERTID *a, OCSP_CERTID *b); -int OCSP_id_cmp(OCSP_CERTID *a, 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_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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_OCSP_strings(void); - -/* Error codes for the OCSP functions. */ - -/* Function codes. */ -# define OCSP_F_D2I_OCSP_NONCE 102 -# define OCSP_F_OCSP_BASIC_ADD1_STATUS 103 -# define OCSP_F_OCSP_BASIC_SIGN 104 -# define OCSP_F_OCSP_BASIC_VERIFY 105 -# define OCSP_F_OCSP_CERT_ID_NEW 101 -# define OCSP_F_OCSP_CHECK_DELEGATED 106 -# define OCSP_F_OCSP_CHECK_IDS 107 -# define OCSP_F_OCSP_CHECK_ISSUER 108 -# define OCSP_F_OCSP_CHECK_VALIDITY 115 -# define OCSP_F_OCSP_MATCH_ISSUERID 109 -# define OCSP_F_OCSP_PARSE_URL 114 -# define OCSP_F_OCSP_REQUEST_SIGN 110 -# define OCSP_F_OCSP_REQUEST_VERIFY 116 -# define OCSP_F_OCSP_RESPONSE_GET1_BASIC 111 -# define OCSP_F_PARSE_HTTP_LINE1 118 - -/* Reason codes. */ -# define OCSP_R_CERTIFICATE_VERIFY_ERROR 101 -# define OCSP_R_DIGEST_ERR 102 -# define OCSP_R_ERROR_IN_NEXTUPDATE_FIELD 122 -# define OCSP_R_ERROR_IN_THISUPDATE_FIELD 123 -# define OCSP_R_ERROR_PARSING_URL 121 -# define OCSP_R_MISSING_OCSPSIGNING_USAGE 103 -# define OCSP_R_NEXTUPDATE_BEFORE_THISUPDATE 124 -# define OCSP_R_NOT_BASIC_RESPONSE 104 -# define OCSP_R_NO_CERTIFICATES_IN_CHAIN 105 -# define OCSP_R_NO_RESPONSE_DATA 108 -# define OCSP_R_NO_REVOKED_TIME 109 -# define OCSP_R_NO_SIGNER_KEY 130 -# define OCSP_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 110 -# define OCSP_R_REQUEST_NOT_SIGNED 128 -# define OCSP_R_RESPONSE_CONTAINS_NO_REVOCATION_DATA 111 -# define OCSP_R_ROOT_CA_NOT_TRUSTED 112 -# define OCSP_R_SERVER_RESPONSE_ERROR 114 -# define OCSP_R_SERVER_RESPONSE_PARSE_ERROR 115 -# define OCSP_R_SIGNATURE_FAILURE 117 -# define OCSP_R_SIGNER_CERTIFICATE_NOT_FOUND 118 -# define OCSP_R_STATUS_EXPIRED 125 -# define OCSP_R_STATUS_NOT_YET_VALID 126 -# define OCSP_R_STATUS_TOO_OLD 127 -# define OCSP_R_UNKNOWN_MESSAGE_DIGEST 119 -# define OCSP_R_UNKNOWN_NID 120 -# define OCSP_R_UNSUPPORTED_REQUESTORNAME_TYPE 129 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/opensslconf.h b/Android/app/libs/armeabi/include/openssl/opensslconf.h deleted file mode 100644 index 1fe7a9f9..00000000 --- a/Android/app/libs/armeabi/include/openssl/opensslconf.h +++ /dev/null @@ -1,169 +0,0 @@ -/* - * WARNING: do not edit! - * Generated by Makefile from include/openssl/opensslconf.h.in - * - * Copyright 2016-2018 The OpenSSL Project Authors. All Rights Reserved. - * - * Licensed under the OpenSSL license (the "License"). You may not use - * this file except in compliance with the License. You can obtain a copy - * in the file LICENSE in the source distribution or at - * https://www.openssl.org/source/license.html - */ - -#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_NO_ASAN -# define OPENSSL_NO_ASAN -#endif -#ifndef OPENSSL_NO_CRYPTO_MDEBUG -# define OPENSSL_NO_CRYPTO_MDEBUG -#endif -#ifndef OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -# define OPENSSL_NO_CRYPTO_MDEBUG_BACKTRACE -#endif -#ifndef OPENSSL_NO_EC_NISTP_64_GCC_128 -# define OPENSSL_NO_EC_NISTP_64_GCC_128 -#endif -#ifndef OPENSSL_NO_EGD -# define OPENSSL_NO_EGD -#endif -#ifndef OPENSSL_NO_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_AFALGENG -# define OPENSSL_NO_AFALGENG -#endif - - -/* - * Sometimes OPENSSSL_NO_xxx ends up with an empty file and some compilers - * don't like that. This will hopefully silence them. - */ -#define NON_EMPTY_TRANSLATION_UNIT static void *dummy = &dummy; - -/* - * Applications should use -DOPENSSL_API_COMPAT= to suppress the - * declarations of functions deprecated in or before . Otherwise, they - * still won't see them if the library has been built to disable deprecated - * functions. - */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; -#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 - -#if OPENSSL_API_COMPAT < 0x10100000L -# define DEPRECATEDIN_1_1_0(f) DECLARE_DEPRECATED(f) -#else -# define DEPRECATEDIN_1_1_0(f) -#endif - -#if OPENSSL_API_COMPAT < 0x10000000L -# define DEPRECATEDIN_1_0_0(f) DECLARE_DEPRECATED(f) -#else -# define DEPRECATEDIN_1_0_0(f) -#endif - -#if OPENSSL_API_COMPAT < 0x00908000L -# define DEPRECATEDIN_0_9_8(f) DECLARE_DEPRECATED(f) -#else -# define DEPRECATEDIN_0_9_8(f) -#endif - - - -/* Generate 80386 code? */ -#undef I386_ONLY - -#undef OPENSSL_UNISTD -#define OPENSSL_UNISTD - -#undef OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* - * The following are cipher-specific, but are part of the public API. - */ -#if !defined(OPENSSL_SYS_UEFI) -# define BN_LLONG -/* Only one for the following should be defined */ -# undef SIXTY_FOUR_BIT_LONG -# undef SIXTY_FOUR_BIT -# define THIRTY_TWO_BIT -#endif - -#define RC4_INT unsigned char - -#ifdef __cplusplus -} -#endif diff --git a/Android/app/libs/armeabi/include/openssl/opensslconf.h.in b/Android/app/libs/armeabi/include/openssl/opensslconf.h.in deleted file mode 100644 index 9f8634a3..00000000 --- a/Android/app/libs/armeabi/include/openssl/opensslconf.h.in +++ /dev/null @@ -1,141 +0,0 @@ -/* - * {- join("\n * ", @autowarntext) -} - * - * 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 - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifdef OPENSSL_ALGORITHM_DEFINES -# error OPENSSL_ALGORITHM_DEFINES no longer supported -#endif - -/* - * OpenSSL was configured with the following options: - */ - -{- if (@{$config{openssl_sys_defines}}) { - foreach (@{$config{openssl_sys_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_ 1\n"; - $OUT .= "#endif\n"; - } - } - foreach (@{$config{openssl_api_defines}}) { - (my $macro, my $value) = $_ =~ /^(.*?)=(.*?)$/; - $OUT .= "#define $macro $value\n"; - } - if (@{$config{openssl_algorithm_defines}}) { - foreach (@{$config{openssl_algorithm_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_\n"; - $OUT .= "#endif\n"; - } - } - if (@{$config{openssl_thread_defines}}) { - foreach (@{$config{openssl_thread_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_\n"; - $OUT .= "#endif\n"; - } - } - if (@{$config{openssl_other_defines}}) { - foreach (@{$config{openssl_other_defines}}) { - $OUT .= "#ifndef $_\n"; - $OUT .= "# define $_\n"; - $OUT .= "#endif\n"; - } - } - ""; --} - -/* - * 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. - */ -#if defined(OPENSSL_NO_DEPRECATED) -# define DECLARE_DEPRECATED(f) -#elif __GNUC__ > 3 || (__GNUC__ == 3 && __GNUC_MINOR__ > 0) -# define DECLARE_DEPRECATED(f) f __attribute__ ((deprecated)); -#else -# define DECLARE_DEPRECATED(f) f; -#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 - -#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 - -{- $target{cpuid_obj} ne "mem_clr.o" ? "#define OPENSSL_CPUID_OBJ" : "" -} - -/* Generate 80386 code? */ -{- $config{processor} eq "386" ? "#define" : "#undef" -} I386_ONLY - -#undef OPENSSL_UNISTD -#define OPENSSL_UNISTD {- $target{unistd} -} - -{- $config{export_var_as_fn} ? "#define" : "#undef" -} OPENSSL_EXPORT_VAR_AS_FUNCTION - -/* - * The following are cipher-specific, but are part of the public API. - */ -#if !defined(OPENSSL_SYS_UEFI) -{- $config{bn_ll} ? "# define" : "# undef" -} BN_LLONG -/* Only one for the following should be defined */ -{- $config{b64l} ? "# define" : "# undef" -} SIXTY_FOUR_BIT_LONG -{- $config{b64} ? "# define" : "# undef" -} SIXTY_FOUR_BIT -{- $config{b32} ? "# define" : "# undef" -} THIRTY_TWO_BIT -#endif - -#define RC4_INT {- $config{rc4_int} -} - -#ifdef __cplusplus -} -#endif diff --git a/Android/app/libs/armeabi/include/openssl/opensslv.h b/Android/app/libs/armeabi/include/openssl/opensslv.h deleted file mode 100644 index 4fb437f2..00000000 --- a/Android/app/libs/armeabi/include/openssl/opensslv.h +++ /dev/null @@ -1,110 +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_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 0x1010008fL -# ifdef OPENSSL_FIPS -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0h-fips 27 Mar 2018" -# else -# define OPENSSL_VERSION_TEXT "OpenSSL 1.1.0h 27 Mar 2018" -# endif - -#define OPENSSL_MAKE_VERSION(maj,min,fix,patch) ((0x10000000L)+((maj&0xff)<<20)+((min&0xff)<<12)+((fix&0xff)<<4)+patch) - -/* use this for #if tests, should never depend upon fix/patch */ -#define OPENSSL_VERSION_AT_LEAST(maj,min) (OPENSSL_MAKE_VERSION(maj,min, 0, 0) >= OPENSSL_VERSION_NUMBER) - -/*- - * 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/Android/app/libs/armeabi/include/openssl/ossl_typ.h b/Android/app/libs/armeabi/include/openssl/ossl_typ.h deleted file mode 100644 index 129a67f0..00000000 --- a/Android/app/libs/armeabi/include/openssl/ossl_typ.h +++ /dev/null @@ -1,190 +0,0 @@ -/* - * Copyright 2001-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_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 ec_key_st EC_KEY; -typedef struct ec_key_method_st EC_KEY_METHOD; - -typedef struct rand_meth_st RAND_METHOD; - -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 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; - -#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/Android/app/libs/armeabi/include/openssl/pem.h b/Android/app/libs/armeabi/include/openssl/pem.h deleted file mode 100644 index 2375d635..00000000 --- a/Android/app/libs/armeabi/include/openssl/pem.h +++ /dev/null @@ -1,501 +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_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 - -typedef struct pem_recip_st { - char *name; - X509_NAME *dn; - int cipher; - int key_enc; - /* char iv[8]; unused and wrong size */ -} PEM_USER; - -typedef struct pem_ctx_st { - int type; /* what type of object */ - struct { - int version; - int mode; - } proc_type; - - char *domain; - - struct { - int cipher; - /*- - unused, and wrong size - unsigned char iv[8]; */ - } DEK_info; - - PEM_USER *originator; - - int num_recipient; - PEM_USER **recipient; - -/*- - XXX(ben): don#t think this is used! - STACK *x509_chain; / * certificate chain */ - EVP_MD *md; /* signature type */ - - int md_enc; /* is the md encrypted or not? */ - int md_len; /* length of md_data */ - char *md_data; /* message digest, could be pkey encrypted */ - - EVP_CIPHER *dec; /* date encryption cipher */ - int key_len; /* key length */ - unsigned char *key; /* key */ - /*- - unused, and wrong size - unsigned char iv[8]; */ - - int data_enc; /* is the data encrypted */ - int data_len; - unsigned char *data; -} PEM_CTX; - -/* - * These macros make the PEM_read/PEM_write functions easier to maintain and - * write. Now they are all implemented with either: IMPLEMENT_PEM_rw(...) or - * 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); -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); - -int PEM_def_callback(char *buf, int num, int w, void *key); -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 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PEM_strings(void); - -/* Error codes for the PEM functions. */ - -/* Function codes. */ -# define PEM_F_B2I_DSS 127 -# define PEM_F_B2I_PVK_BIO 128 -# define PEM_F_B2I_RSA 129 -# define PEM_F_CHECK_BITLEN_DSA 130 -# define PEM_F_CHECK_BITLEN_RSA 131 -# define PEM_F_D2I_PKCS8PRIVATEKEY_BIO 120 -# define PEM_F_D2I_PKCS8PRIVATEKEY_FP 121 -# define PEM_F_DO_B2I 132 -# define PEM_F_DO_B2I_BIO 133 -# define PEM_F_DO_BLOB_HEADER 134 -# define PEM_F_DO_PK8PKEY 126 -# define PEM_F_DO_PK8PKEY_FP 125 -# define PEM_F_DO_PVK_BODY 135 -# define PEM_F_DO_PVK_HEADER 136 -# define PEM_F_I2B_PVK 137 -# define PEM_F_I2B_PVK_BIO 138 -# define PEM_F_LOAD_IV 101 -# define PEM_F_PEM_ASN1_READ 102 -# define PEM_F_PEM_ASN1_READ_BIO 103 -# define PEM_F_PEM_ASN1_WRITE 104 -# define PEM_F_PEM_ASN1_WRITE_BIO 105 -# define PEM_F_PEM_DEF_CALLBACK 100 -# define PEM_F_PEM_DO_HEADER 106 -# define PEM_F_PEM_GET_EVP_CIPHER_INFO 107 -# define PEM_F_PEM_READ 108 -# define PEM_F_PEM_READ_BIO 109 -# define PEM_F_PEM_READ_BIO_DHPARAMS 141 -# define PEM_F_PEM_READ_BIO_PARAMETERS 140 -# define PEM_F_PEM_READ_BIO_PRIVATEKEY 123 -# define PEM_F_PEM_READ_DHPARAMS 142 -# define PEM_F_PEM_READ_PRIVATEKEY 124 -# define PEM_F_PEM_SIGNFINAL 112 -# define PEM_F_PEM_WRITE 113 -# define PEM_F_PEM_WRITE_BIO 114 -# define PEM_F_PEM_WRITE_PRIVATEKEY 139 -# define PEM_F_PEM_X509_INFO_READ 115 -# define PEM_F_PEM_X509_INFO_READ_BIO 116 -# define PEM_F_PEM_X509_INFO_WRITE_BIO 117 - -/* Reason codes. */ -# define PEM_R_BAD_BASE64_DECODE 100 -# define PEM_R_BAD_DECRYPT 101 -# define PEM_R_BAD_END_LINE 102 -# define PEM_R_BAD_IV_CHARS 103 -# define PEM_R_BAD_MAGIC_NUMBER 116 -# define PEM_R_BAD_PASSWORD_READ 104 -# define PEM_R_BAD_VERSION_NUMBER 117 -# define PEM_R_BIO_WRITE_FAILURE 118 -# define PEM_R_CIPHER_IS_NULL 127 -# define PEM_R_ERROR_CONVERTING_PRIVATE_KEY 115 -# define PEM_R_EXPECTING_PRIVATE_KEY_BLOB 119 -# define PEM_R_EXPECTING_PUBLIC_KEY_BLOB 120 -# define PEM_R_HEADER_TOO_LONG 128 -# define PEM_R_INCONSISTENT_HEADER 121 -# define PEM_R_KEYBLOB_HEADER_PARSE_ERROR 122 -# define PEM_R_KEYBLOB_TOO_SHORT 123 -# define PEM_R_MISSING_DEK_IV 129 -# define PEM_R_NOT_DEK_INFO 105 -# define PEM_R_NOT_ENCRYPTED 106 -# define PEM_R_NOT_PROC_TYPE 107 -# define PEM_R_NO_START_LINE 108 -# define PEM_R_PROBLEMS_GETTING_PASSWORD 109 -# define PEM_R_PVK_DATA_TOO_SHORT 124 -# define PEM_R_PVK_TOO_SHORT 125 -# define PEM_R_READ_KEY 111 -# define PEM_R_SHORT_HEADER 112 -# define PEM_R_UNEXPECTED_DEK_IV 130 -# define PEM_R_UNSUPPORTED_CIPHER 113 -# define PEM_R_UNSUPPORTED_ENCRYPTION 114 -# define PEM_R_UNSUPPORTED_KEY_COMPONENTS 126 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/pem2.h b/Android/app/libs/armeabi/include/openssl/pem2.h deleted file mode 100644 index cfe73f13..00000000 --- a/Android/app/libs/armeabi/include/openssl/pem2.h +++ /dev/null @@ -1,20 +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 - */ - -#ifdef __cplusplus -extern "C" { -#endif - -#ifndef HEADER_PEM_H -int ERR_load_PEM_strings(void); -#endif - -#ifdef __cplusplus -} -#endif diff --git a/Android/app/libs/armeabi/include/openssl/pkcs12.h b/Android/app/libs/armeabi/include/openssl/pkcs12.h deleted file mode 100644 index deaded9d..00000000 --- a/Android/app/libs/armeabi/include/openssl/pkcs12.h +++ /dev/null @@ -1,282 +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 - -#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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PKCS12_strings(void); - -/* Error codes for the PKCS12 functions. */ - -/* Function codes. */ -# define PKCS12_F_PKCS12_CREATE 105 -# define PKCS12_F_PKCS12_GEN_MAC 107 -# define PKCS12_F_PKCS12_INIT 109 -# define PKCS12_F_PKCS12_ITEM_DECRYPT_D2I 106 -# define PKCS12_F_PKCS12_ITEM_I2D_ENCRYPT 108 -# define PKCS12_F_PKCS12_ITEM_PACK_SAFEBAG 117 -# define PKCS12_F_PKCS12_KEY_GEN_ASC 110 -# define PKCS12_F_PKCS12_KEY_GEN_UNI 111 -# define PKCS12_F_PKCS12_KEY_GEN_UTF8 116 -# define PKCS12_F_PKCS12_NEWPASS 128 -# define PKCS12_F_PKCS12_PACK_P7DATA 114 -# define PKCS12_F_PKCS12_PACK_P7ENCDATA 115 -# define PKCS12_F_PKCS12_PARSE 118 -# define PKCS12_F_PKCS12_PBE_CRYPT 119 -# define PKCS12_F_PKCS12_PBE_KEYIVGEN 120 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_P8INF 112 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE0_PKCS8 113 -# define PKCS12_F_PKCS12_SAFEBAG_CREATE_PKCS8_ENCRYPT 133 -# define PKCS12_F_PKCS12_SETUP_MAC 122 -# define PKCS12_F_PKCS12_SET_MAC 123 -# define PKCS12_F_PKCS12_UNPACK_AUTHSAFES 130 -# define PKCS12_F_PKCS12_UNPACK_P7DATA 131 -# define PKCS12_F_PKCS12_VERIFY_MAC 126 -# define PKCS12_F_PKCS8_ENCRYPT 125 -# define PKCS12_F_PKCS8_SET0_PBE 132 - -/* Reason codes. */ -# define PKCS12_R_CANT_PACK_STRUCTURE 100 -# define PKCS12_R_CONTENT_TYPE_NOT_DATA 121 -# define PKCS12_R_DECODE_ERROR 101 -# define PKCS12_R_ENCODE_ERROR 102 -# define PKCS12_R_ENCRYPT_ERROR 103 -# define PKCS12_R_ERROR_SETTING_ENCRYPTED_DATA_TYPE 120 -# define PKCS12_R_INVALID_NULL_ARGUMENT 104 -# define PKCS12_R_INVALID_NULL_PKCS12_POINTER 105 -# define PKCS12_R_IV_GEN_ERROR 106 -# define PKCS12_R_KEY_GEN_ERROR 107 -# define PKCS12_R_MAC_ABSENT 108 -# define PKCS12_R_MAC_GENERATION_ERROR 109 -# define PKCS12_R_MAC_SETUP_ERROR 110 -# define PKCS12_R_MAC_STRING_SET_ERROR 111 -# define PKCS12_R_MAC_VERIFY_FAILURE 113 -# define PKCS12_R_PARSE_ERROR 114 -# define PKCS12_R_PKCS12_ALGOR_CIPHERINIT_ERROR 115 -# define PKCS12_R_PKCS12_CIPHERFINAL_ERROR 116 -# define PKCS12_R_PKCS12_PBE_CRYPT_ERROR 117 -# define PKCS12_R_UNKNOWN_DIGEST_ALGORITHM 118 -# define PKCS12_R_UNSUPPORTED_PKCS12_MODE 119 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/pkcs7.h b/Android/app/libs/armeabi/include/openssl/pkcs7.h deleted file mode 100644 index 691f7220..00000000 --- a/Android/app/libs/armeabi/include/openssl/pkcs7.h +++ /dev/null @@ -1,404 +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 - -#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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_PKCS7_strings(void); - -/* Error codes for the PKCS7 functions. */ - -/* Function codes. */ -# define PKCS7_F_DO_PKCS7_SIGNED_ATTRIB 136 -# define PKCS7_F_PKCS7_ADD0_ATTRIB_SIGNING_TIME 135 -# define PKCS7_F_PKCS7_ADD_ATTRIB_SMIMECAP 118 -# define PKCS7_F_PKCS7_ADD_CERTIFICATE 100 -# define PKCS7_F_PKCS7_ADD_CRL 101 -# define PKCS7_F_PKCS7_ADD_RECIPIENT_INFO 102 -# define PKCS7_F_PKCS7_ADD_SIGNATURE 131 -# define PKCS7_F_PKCS7_ADD_SIGNER 103 -# define PKCS7_F_PKCS7_BIO_ADD_DIGEST 125 -# define PKCS7_F_PKCS7_COPY_EXISTING_DIGEST 138 -# define PKCS7_F_PKCS7_CTRL 104 -# define PKCS7_F_PKCS7_DATADECODE 112 -# define PKCS7_F_PKCS7_DATAFINAL 128 -# define PKCS7_F_PKCS7_DATAINIT 105 -# define PKCS7_F_PKCS7_DATAVERIFY 107 -# define PKCS7_F_PKCS7_DECRYPT 114 -# define PKCS7_F_PKCS7_DECRYPT_RINFO 133 -# define PKCS7_F_PKCS7_ENCODE_RINFO 132 -# define PKCS7_F_PKCS7_ENCRYPT 115 -# define PKCS7_F_PKCS7_FINAL 134 -# define PKCS7_F_PKCS7_FIND_DIGEST 127 -# define PKCS7_F_PKCS7_GET0_SIGNERS 124 -# define PKCS7_F_PKCS7_RECIP_INFO_SET 130 -# define PKCS7_F_PKCS7_SET_CIPHER 108 -# define PKCS7_F_PKCS7_SET_CONTENT 109 -# define PKCS7_F_PKCS7_SET_DIGEST 126 -# define PKCS7_F_PKCS7_SET_TYPE 110 -# define PKCS7_F_PKCS7_SIGN 116 -# define PKCS7_F_PKCS7_SIGNATUREVERIFY 113 -# define PKCS7_F_PKCS7_SIGNER_INFO_SET 129 -# define PKCS7_F_PKCS7_SIGNER_INFO_SIGN 139 -# define PKCS7_F_PKCS7_SIGN_ADD_SIGNER 137 -# define PKCS7_F_PKCS7_SIMPLE_SMIMECAP 119 -# define PKCS7_F_PKCS7_VERIFY 117 - -/* Reason codes. */ -# define PKCS7_R_CERTIFICATE_VERIFY_ERROR 117 -# define PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER 144 -# define PKCS7_R_CIPHER_NOT_INITIALIZED 116 -# define PKCS7_R_CONTENT_AND_DATA_PRESENT 118 -# define PKCS7_R_CTRL_ERROR 152 -# define PKCS7_R_DECRYPT_ERROR 119 -# define PKCS7_R_DIGEST_FAILURE 101 -# define PKCS7_R_ENCRYPTION_CTRL_FAILURE 149 -# define PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 150 -# define PKCS7_R_ERROR_ADDING_RECIPIENT 120 -# define PKCS7_R_ERROR_SETTING_CIPHER 121 -# define PKCS7_R_INVALID_NULL_POINTER 143 -# define PKCS7_R_INVALID_SIGNED_DATA_TYPE 155 -# define PKCS7_R_NO_CONTENT 122 -# define PKCS7_R_NO_DEFAULT_DIGEST 151 -# define PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND 154 -# define PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE 115 -# define PKCS7_R_NO_SIGNATURES_ON_DATA 123 -# define PKCS7_R_NO_SIGNERS 142 -# define PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE 104 -# define PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR 124 -# define PKCS7_R_PKCS7_ADD_SIGNER_ERROR 153 -# define PKCS7_R_PKCS7_DATASIGN 145 -# define PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 127 -# define PKCS7_R_SIGNATURE_FAILURE 105 -# define PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND 128 -# define PKCS7_R_SIGNING_CTRL_FAILURE 147 -# define PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE 148 -# define PKCS7_R_SMIME_TEXT_ERROR 129 -# define PKCS7_R_UNABLE_TO_FIND_CERTIFICATE 106 -# define PKCS7_R_UNABLE_TO_FIND_MEM_BIO 107 -# define PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST 108 -# define PKCS7_R_UNKNOWN_DIGEST_TYPE 109 -# define PKCS7_R_UNKNOWN_OPERATION 110 -# define PKCS7_R_UNSUPPORTED_CIPHER_TYPE 111 -# define PKCS7_R_UNSUPPORTED_CONTENT_TYPE 112 -# define PKCS7_R_WRONG_CONTENT_TYPE 113 -# define PKCS7_R_WRONG_PKCS7_TYPE 114 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/rand.h b/Android/app/libs/armeabi/include/openssl/rand.h deleted file mode 100644 index d521ae19..00000000 --- a/Android/app/libs/armeabi/include/openssl/rand.h +++ /dev/null @@ -1,89 +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_RAND_H -# define HEADER_RAND_H - -# include -# include -# include - -#ifdef __cplusplus -extern "C" { -#endif - -/* Already defined in ossl_typ.h */ -/* typedef struct rand_meth_st RAND_METHOD; */ - -struct rand_meth_st { - int (*seed) (const void *buf, int num); - int (*bytes) (unsigned char *buf, int num); - void (*cleanup) (void); - int (*add) (const void *buf, int num, double entropy); - int (*pseudorand) (unsigned char *buf, int num); - int (*status) (void); -}; - -# ifdef BN_DEBUG -extern int rand_predictable; -# endif - -int RAND_set_rand_method(const RAND_METHOD *meth); -const RAND_METHOD *RAND_get_rand_method(void); -# ifndef OPENSSL_NO_ENGINE -int RAND_set_rand_engine(ENGINE *engine); -# endif -RAND_METHOD *RAND_OpenSSL(void); -#if OPENSSL_API_COMPAT < 0x10100000L -# define RAND_cleanup() while(0) continue -#endif -int RAND_bytes(unsigned char *buf, int num); -DEPRECATEDIN_1_1_0(int RAND_pseudo_bytes(unsigned char *buf, int num)) -void RAND_seed(const void *buf, int num); -#if defined(__ANDROID__) && defined(__NDK_FPABI__) -__NDK_FPABI__ /* __attribute__((pcs("aapcs"))) on ARM */ -#endif -void RAND_add(const void *buf, int num, double entropy); -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 - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_RAND_strings(void); - -/* Error codes for the RAND functions. */ - -/* Function codes. */ -# define RAND_F_RAND_BYTES 100 - -/* Reason codes. */ -# define RAND_R_PRNG_NOT_SEEDED 100 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/rc2.h b/Android/app/libs/armeabi/include/openssl/rc2.h deleted file mode 100644 index 585f9e4c..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/rc4.h b/Android/app/libs/armeabi/include/openssl/rc4.h deleted file mode 100644 index 86803b37..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/rc5.h b/Android/app/libs/armeabi/include/openssl/rc5.h deleted file mode 100644 index 793f88e4..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/ripemd.h b/Android/app/libs/armeabi/include/openssl/ripemd.h deleted file mode 100644 index c42026aa..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/rsa.h b/Android/app/libs/armeabi/include/openssl/rsa.h deleted file mode 100644 index d97d6e07..00000000 --- a/Android/app/libs/armeabi/include/openssl/rsa.h +++ /dev/null @@ -1,590 +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_RSA_H -# define HEADER_RSA_H - -# include - -# ifndef OPENSSL_NO_RSA -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# 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 - -# 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) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, EVP_PKEY_CTRL_RSA_PADDING, \ - pad, NULL) - -# define EVP_PKEY_CTX_get_rsa_padding(ctx, ppad) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, -1, \ - EVP_PKEY_CTRL_GET_RSA_PADDING, 0, ppad) - -# define EVP_PKEY_CTX_set_rsa_pss_saltlen(ctx, len) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_RSA_PSS_SALTLEN, \ - len, NULL) - -# define EVP_PKEY_CTX_get_rsa_pss_saltlen(ctx, plen) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - (EVP_PKEY_OP_SIGN|EVP_PKEY_OP_VERIFY), \ - EVP_PKEY_CTRL_GET_RSA_PSS_SALTLEN, \ - 0, plen) - -# define EVP_PKEY_CTX_set_rsa_keygen_bits(ctx, bits) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_BITS, bits, NULL) - -# define EVP_PKEY_CTX_set_rsa_keygen_pubexp(ctx, pubexp) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_KEYGEN, \ - EVP_PKEY_CTRL_RSA_KEYGEN_PUBEXP, 0, pubexp) - -# define EVP_PKEY_CTX_set_rsa_mgf1_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_MGF1_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_set_rsa_oaep_md(ctx, md) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_RSA_OAEP_MD, 0, (void *)md) - -# define EVP_PKEY_CTX_get_rsa_mgf1_md(ctx, pmd) \ - EVP_PKEY_CTX_ctrl(ctx, EVP_PKEY_RSA, \ - EVP_PKEY_OP_TYPE_SIG | EVP_PKEY_OP_TYPE_CRYPT, \ - EVP_PKEY_CTRL_GET_RSA_MGF1_MD, 0, (void *)pmd) - -# 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_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 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); -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); -void RSA_get0_crt_params(const RSA *r, - const BIGNUM **dmp1, const BIGNUM **dmq1, - const BIGNUM **iqmp); -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); -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); - -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_get_method(const RSA *rsa); -int RSA_set_method(RSA *rsa, const RSA_METHOD *meth); - -/* these are the actual RSA functions */ -const RSA_METHOD *RSA_PKCS1_OpenSSL(void); - -const RSA_METHOD *RSA_null_method(void); - -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPublicKey) -DECLARE_ASN1_ENCODE_FUNCTIONS_const(RSA, RSAPrivateKey) - -typedef struct rsa_pss_params_st { - X509_ALGOR *hashAlgorithm; - X509_ALGOR *maskGenAlgorithm; - ASN1_INTEGER *saltLength; - ASN1_INTEGER *trailerField; -} RSA_PSS_PARAMS; - -DECLARE_ASN1_FUNCTIONS(RSA_PSS_PARAMS) - -typedef struct rsa_oaep_params_st { - X509_ALGOR *hashFunc; - X509_ALGOR *maskGenFunc; - X509_ALGOR *pSourceFunc; -} 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(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)); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_RSA_strings(void); - -/* Error codes for the RSA functions. */ - -/* Function codes. */ -# define RSA_F_CHECK_PADDING_MD 140 -# define RSA_F_ENCODE_PKCS1 146 -# define RSA_F_INT_RSA_VERIFY 145 -# define RSA_F_OLD_RSA_PRIV_DECODE 147 -# define RSA_F_PKEY_RSA_CTRL 143 -# define RSA_F_PKEY_RSA_CTRL_STR 144 -# define RSA_F_PKEY_RSA_SIGN 142 -# define RSA_F_PKEY_RSA_VERIFY 149 -# define RSA_F_PKEY_RSA_VERIFYRECOVER 141 -# define RSA_F_RSA_ALGOR_TO_MD 156 -# define RSA_F_RSA_BUILTIN_KEYGEN 129 -# define RSA_F_RSA_CHECK_KEY 123 -# define RSA_F_RSA_CHECK_KEY_EX 160 -# define RSA_F_RSA_CMS_DECRYPT 159 -# define RSA_F_RSA_ITEM_VERIFY 148 -# define RSA_F_RSA_METH_DUP 161 -# define RSA_F_RSA_METH_NEW 162 -# define RSA_F_RSA_METH_SET1_NAME 163 -# define RSA_F_RSA_MGF1_TO_MD 157 -# define RSA_F_RSA_NEW_METHOD 106 -# define RSA_F_RSA_NULL 124 -# define RSA_F_RSA_NULL_PRIVATE_DECRYPT 132 -# define RSA_F_RSA_NULL_PRIVATE_ENCRYPT 133 -# define RSA_F_RSA_NULL_PUBLIC_DECRYPT 134 -# define RSA_F_RSA_NULL_PUBLIC_ENCRYPT 135 -# define RSA_F_RSA_OSSL_PRIVATE_DECRYPT 101 -# define RSA_F_RSA_OSSL_PRIVATE_ENCRYPT 102 -# define RSA_F_RSA_OSSL_PUBLIC_DECRYPT 103 -# define RSA_F_RSA_OSSL_PUBLIC_ENCRYPT 104 -# define RSA_F_RSA_PADDING_ADD_NONE 107 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP 121 -# define RSA_F_RSA_PADDING_ADD_PKCS1_OAEP_MGF1 154 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS 125 -# define RSA_F_RSA_PADDING_ADD_PKCS1_PSS_MGF1 152 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_1 108 -# define RSA_F_RSA_PADDING_ADD_PKCS1_TYPE_2 109 -# define RSA_F_RSA_PADDING_ADD_SSLV23 110 -# define RSA_F_RSA_PADDING_ADD_X931 127 -# define RSA_F_RSA_PADDING_CHECK_NONE 111 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP 122 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_OAEP_MGF1 153 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_1 112 -# define RSA_F_RSA_PADDING_CHECK_PKCS1_TYPE_2 113 -# define RSA_F_RSA_PADDING_CHECK_SSLV23 114 -# define RSA_F_RSA_PADDING_CHECK_X931 128 -# define RSA_F_RSA_PRINT 115 -# define RSA_F_RSA_PRINT_FP 116 -# define RSA_F_RSA_PRIV_ENCODE 138 -# define RSA_F_RSA_PSS_TO_CTX 155 -# define RSA_F_RSA_PUB_DECODE 139 -# define RSA_F_RSA_SETUP_BLINDING 136 -# define RSA_F_RSA_SIGN 117 -# define RSA_F_RSA_SIGN_ASN1_OCTET_STRING 118 -# define RSA_F_RSA_VERIFY 119 -# define RSA_F_RSA_VERIFY_ASN1_OCTET_STRING 120 -# define RSA_F_RSA_VERIFY_PKCS1_PSS_MGF1 126 - -/* Reason codes. */ -# define RSA_R_ALGORITHM_MISMATCH 100 -# define RSA_R_BAD_E_VALUE 101 -# define RSA_R_BAD_FIXED_HEADER_DECRYPT 102 -# define RSA_R_BAD_PAD_BYTE_COUNT 103 -# define RSA_R_BAD_SIGNATURE 104 -# define RSA_R_BLOCK_TYPE_IS_NOT_01 106 -# define RSA_R_BLOCK_TYPE_IS_NOT_02 107 -# define RSA_R_DATA_GREATER_THAN_MOD_LEN 108 -# define RSA_R_DATA_TOO_LARGE 109 -# define RSA_R_DATA_TOO_LARGE_FOR_KEY_SIZE 110 -# define RSA_R_DATA_TOO_LARGE_FOR_MODULUS 132 -# define RSA_R_DATA_TOO_SMALL 111 -# define RSA_R_DATA_TOO_SMALL_FOR_KEY_SIZE 122 -# define RSA_R_DIGEST_DOES_NOT_MATCH 158 -# define RSA_R_DIGEST_TOO_BIG_FOR_RSA_KEY 112 -# define RSA_R_DMP1_NOT_CONGRUENT_TO_D 124 -# define RSA_R_DMQ1_NOT_CONGRUENT_TO_D 125 -# define RSA_R_D_E_NOT_CONGRUENT_TO_1 123 -# define RSA_R_FIRST_OCTET_INVALID 133 -# define RSA_R_ILLEGAL_OR_UNSUPPORTED_PADDING_MODE 144 -# define RSA_R_INVALID_DIGEST 157 -# define RSA_R_INVALID_DIGEST_LENGTH 143 -# define RSA_R_INVALID_HEADER 137 -# define RSA_R_INVALID_LABEL 160 -# define RSA_R_INVALID_MESSAGE_LENGTH 131 -# define RSA_R_INVALID_MGF1_MD 156 -# define RSA_R_INVALID_OAEP_PARAMETERS 161 -# define RSA_R_INVALID_PADDING 138 -# define RSA_R_INVALID_PADDING_MODE 141 -# define RSA_R_INVALID_PSS_PARAMETERS 149 -# define RSA_R_INVALID_PSS_SALTLEN 146 -# define RSA_R_INVALID_SALT_LENGTH 150 -# define RSA_R_INVALID_TRAILER 139 -# define RSA_R_INVALID_X931_DIGEST 142 -# define RSA_R_IQMP_NOT_INVERSE_OF_Q 126 -# define RSA_R_KEY_SIZE_TOO_SMALL 120 -# define RSA_R_LAST_OCTET_INVALID 134 -# define RSA_R_MODULUS_TOO_LARGE 105 -# define RSA_R_NO_PUBLIC_EXPONENT 140 -# define RSA_R_NULL_BEFORE_BLOCK_MISSING 113 -# define RSA_R_N_DOES_NOT_EQUAL_P_Q 127 -# define RSA_R_OAEP_DECODING_ERROR 121 -# define RSA_R_OPERATION_NOT_SUPPORTED_FOR_THIS_KEYTYPE 148 -# define RSA_R_PADDING_CHECK_FAILED 114 -# define RSA_R_PKCS_DECODING_ERROR 159 -# define RSA_R_P_NOT_PRIME 128 -# define RSA_R_Q_NOT_PRIME 129 -# define RSA_R_RSA_OPERATIONS_NOT_SUPPORTED 130 -# define RSA_R_SLEN_CHECK_FAILED 136 -# define RSA_R_SLEN_RECOVERY_FAILED 135 -# define RSA_R_SSLV3_ROLLBACK_ATTACK 115 -# define RSA_R_THE_ASN1_OBJECT_IDENTIFIER_IS_NOT_KNOWN_FOR_THIS_MD 116 -# define RSA_R_UNKNOWN_ALGORITHM_TYPE 117 -# define RSA_R_UNKNOWN_DIGEST 166 -# define RSA_R_UNKNOWN_MASK_DIGEST 151 -# define RSA_R_UNKNOWN_PADDING_TYPE 118 -# define RSA_R_UNSUPPORTED_ENCRYPTION_TYPE 162 -# define RSA_R_UNSUPPORTED_LABEL_SOURCE 163 -# define RSA_R_UNSUPPORTED_MASK_ALGORITHM 153 -# define RSA_R_UNSUPPORTED_MASK_PARAMETER 154 -# define RSA_R_UNSUPPORTED_SIGNATURE_TYPE 155 -# define RSA_R_VALUE_MISSING 147 -# define RSA_R_WRONG_SIGNATURE_LENGTH 119 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/safestack.h b/Android/app/libs/armeabi/include/openssl/safestack.h deleted file mode 100644 index 9fe733c2..00000000 --- a/Android/app/libs/armeabi/include/openssl/safestack.h +++ /dev/null @@ -1,164 +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_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_inline int sk_##t1##_num(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_num((const OPENSSL_STACK *)sk); \ - } \ - static ossl_inline t2 *sk_##t1##_value(const STACK_OF(t1) *sk, int idx) \ - { \ - return (t2 *)OPENSSL_sk_value((const OPENSSL_STACK *)sk, idx); \ - } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_new(sk_##t1##_compfunc compare) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new((OPENSSL_sk_compfunc)compare); \ - } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_new_null(void) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_new_null(); \ - } \ - static ossl_inline void sk_##t1##_free(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_free((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline void sk_##t1##_zero(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_zero((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline t2 *sk_##t1##_delete(STACK_OF(t1) *sk, int i) \ - { \ - return (t2 *)OPENSSL_sk_delete((OPENSSL_STACK *)sk, i); \ - } \ - static ossl_inline t2 *sk_##t1##_delete_ptr(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_delete_ptr((OPENSSL_STACK *)sk, \ - (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_push(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_push((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_unshift(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_unshift((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline t2 *sk_##t1##_pop(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_pop((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline t2 *sk_##t1##_shift(STACK_OF(t1) *sk) \ - { \ - return (t2 *)OPENSSL_sk_shift((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline void sk_##t1##_pop_free(STACK_OF(t1) *sk, sk_##t1##_freefunc freefunc) \ - { \ - OPENSSL_sk_pop_free((OPENSSL_STACK *)sk, (OPENSSL_sk_freefunc)freefunc); \ - } \ - static ossl_inline int sk_##t1##_insert(STACK_OF(t1) *sk, t2 *ptr, int idx) \ - { \ - return OPENSSL_sk_insert((OPENSSL_STACK *)sk, (const void *)ptr, idx); \ - } \ - static ossl_inline t2 *sk_##t1##_set(STACK_OF(t1) *sk, int idx, t2 *ptr) \ - { \ - return (t2 *)OPENSSL_sk_set((OPENSSL_STACK *)sk, idx, (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_find(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline int sk_##t1##_find_ex(STACK_OF(t1) *sk, t2 *ptr) \ - { \ - return OPENSSL_sk_find_ex((OPENSSL_STACK *)sk, (const void *)ptr); \ - } \ - static ossl_inline void sk_##t1##_sort(STACK_OF(t1) *sk) \ - { \ - OPENSSL_sk_sort((OPENSSL_STACK *)sk); \ - } \ - static ossl_inline int sk_##t1##_is_sorted(const STACK_OF(t1) *sk) \ - { \ - return OPENSSL_sk_is_sorted((const OPENSSL_STACK *)sk); \ - } \ - static ossl_inline STACK_OF(t1) * sk_##t1##_dup(const STACK_OF(t1) *sk) \ - { \ - return (STACK_OF(t1) *)OPENSSL_sk_dup((const OPENSSL_STACK *)sk); \ - } \ - static ossl_inline STACK_OF(t1) *sk_##t1##_deep_copy(const STACK_OF(t1) *sk, \ - 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_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) - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/seed.h b/Android/app/libs/armeabi/include/openssl/seed.h deleted file mode 100644 index de10b085..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/sha.h b/Android/app/libs/armeabi/include/openssl/sha.h deleted file mode 100644 index 6a1eb0de..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/srp.h b/Android/app/libs/armeabi/include/openssl/srp.h deleted file mode 100644 index f2b6ec75..00000000 --- a/Android/app/libs/armeabi/include/openssl/srp.h +++ /dev/null @@ -1,131 +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 - */ - -#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/Android/app/libs/armeabi/include/openssl/srtp.h b/Android/app/libs/armeabi/include/openssl/srtp.h deleted file mode 100644 index 0b57c235..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/ssl.h b/Android/app/libs/armeabi/include/openssl/ssl.h deleted file mode 100644 index f070bd2d..00000000 --- a/Android/app/libs/armeabi/include/openssl/ssl.h +++ /dev/null @@ -1,2567 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - -#ifndef HEADER_SSL_H -# define HEADER_SSL_H - -# include -# include -# include -# include -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# include -# endif -# 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_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'. - */ -# define SSL_DEFAULT_CIPHER_LIST "ALL:!COMPLEMENTOFDEFAULT:!eNULL" -/* - * 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); - -/* 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 for verification callback */ -typedef int (*SSL_verify_cb)(int preverify_ok, X509_STORE_CTX *x509_ctx); - -/* Allow initial connection to servers that don't support RI */ -# define SSL_OP_LEGACY_SERVER_CONNECT 0x00000004U -# define SSL_OP_TLSEXT_PADDING 0x00000010U -# define SSL_OP_SAFARI_ECDHE_ECDSA_BUG 0x00000040U - -/* - * 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 -/* - * 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 - -# 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_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) -# 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 put onto a free-list in the context or - * just freed (depending on the context's setting for freelist_max_len). - */ -# 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 - -/* 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 - -/* - * 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) (const 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)); -# ifndef OPENSSL_NO_NEXTPROTONEG -void SSL_CTX_set_next_protos_advertised_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - const unsigned char - **out, - unsigned int *outlen, - void *arg), void *arg); -void SSL_CTX_set_next_proto_select_cb(SSL_CTX *s, - int (*cb) (SSL *ssl, - unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg), void *arg); -void SSL_get0_next_proto_negotiated(const SSL *s, const unsigned char **data, - unsigned *len); -# 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); -void SSL_CTX_set_alpn_select_cb(SSL_CTX *ctx, - int (*cb) (SSL *ssl, - const unsigned char **out, - unsigned char *outlen, - const unsigned char *in, - unsigned int inlen, - void *arg), 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 -void SSL_CTX_set_psk_client_callback(SSL_CTX *ctx, - unsigned int (*psk_client_callback) (SSL - *ssl, - const - char - *hint, - char - *identity, - unsigned - int - max_identity_len, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_set_psk_client_callback(SSL *ssl, - unsigned int (*psk_client_callback) (SSL - *ssl, - const - char - *hint, - char - *identity, - unsigned - int - max_identity_len, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_CTX_set_psk_server_callback(SSL_CTX *ctx, - unsigned int (*psk_server_callback) (SSL - *ssl, - const - char - *identity, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -void SSL_set_psk_server_callback(SSL *ssl, - unsigned int (*psk_server_callback) (SSL - *ssl, - const - char - *identity, - unsigned - char - *psk, - unsigned - int - max_psk_len)); -__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 - -/* 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_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 - -/* 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_MAC_FLAG_READ_MAC_STREAM 1 -# define SSL_MAC_FLAG_WRITE_MAC_STREAM 2 - -#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)) - - -/* - * 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 -} 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(SSL *s); -int SSL_in_before(SSL *s); -int SSL_is_init_finished(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 2 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 OpenSSL_add_ssl_algorithms() SSL_library_init() -# if OPENSSL_API_COMPAT < 0x10100000L -# 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_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_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_CURVES 90 -# define SSL_CTRL_SET_CURVES 91 -# define SSL_CTRL_SET_CURVES_LIST 92 -# define SSL_CTRL_GET_SHARED_CURVE 93 -# define SSL_CTRL_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_SERVER_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_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_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_set0_chain(ctx,sk) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN,0,(char *)sk) -# define SSL_set1_chain(ctx,sk) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN,1,(char *)sk) -# define SSL_add0_chain_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,0,(char *)x509) -# define SSL_add1_chain_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_CHAIN_CERT,1,(char *)x509) -# define SSL_get0_chain_certs(ctx,px509) \ - SSL_ctrl(ctx,SSL_CTRL_GET_CHAIN_CERTS,0,px509) -# define SSL_clear_chain_certs(ctx) \ - SSL_set0_chain(ctx,NULL) -# define SSL_build_cert_chain(s, flags) \ - SSL_ctrl(s,SSL_CTRL_BUILD_CERT_CHAIN, flags, NULL) -# define SSL_select_current_cert(ctx,x509) \ - SSL_ctrl(ctx,SSL_CTRL_SELECT_CURRENT_CERT,0,(char *)x509) -# define SSL_set_current_cert(ctx,op) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURRENT_CERT, op, NULL) -# define SSL_set0_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,0,(char *)st) -# define SSL_set1_verify_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_VERIFY_CERT_STORE,1,(char *)st) -# define SSL_set0_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,0,(char *)st) -# define SSL_set1_chain_cert_store(s,st) \ - SSL_ctrl(s,SSL_CTRL_SET_CHAIN_CERT_STORE,1,(char *)st) -# define SSL_get1_curves(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_GET_CURVES,0,(char *)s) -# define SSL_CTX_set1_curves(ctx, clist, clistlen) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) -# define SSL_CTX_set1_curves_list(ctx, s) \ - SSL_CTX_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) -# define SSL_set1_curves(ctx, clist, clistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURVES,clistlen,(char *)clist) -# define SSL_set1_curves_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CURVES_LIST,0,(char *)s) -# define SSL_get_shared_curve(s, n) \ - SSL_ctrl(s,SSL_CTRL_GET_SHARED_CURVE,n,NULL) -# 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(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS,slistlen,(int *)slist) -# define SSL_set1_sigalgs_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_SIGALGS_LIST,0,(char *)s) -# 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(ctx, slist, slistlen) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS,clistlen,(int *)slist) -# define SSL_set1_client_sigalgs_list(ctx, s) \ - SSL_ctrl(ctx,SSL_CTRL_SET_CLIENT_SIGALGS_LIST,0,(char *)s) -# 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_peer_signature_nid(s, pn) \ - SSL_ctrl(s,SSL_CTRL_GET_PEER_SIGNATURE_NID,0,pn) -# define SSL_get_server_tmp_key(s, pk) \ - SSL_ctrl(s,SSL_CTRL_GET_SERVER_TMP_KEY,0,pk) -# define SSL_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) - -#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 *); -__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 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 uint32_t SSL_CIPHER_get_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 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 len); -__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); -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); - -/* 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_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 const char *SSL_SESSION_get0_hostname(const SSL_SESSION *s); -__owur const SSL_CIPHER *SSL_SESSION_get0_cipher(const SSL_SESSION *s); -__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 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 SSL_SESSION *SSL_SESSION_new(void); -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 *s, SSL_SESSION *c); -int SSL_CTX_remove_session(SSL_CTX *, SSL_SESSION *c); -__owur int SSL_CTX_set_generate_session_id(SSL_CTX *, GEN_SESSION_CB); -__owur int SSL_set_generate_session_id(SSL *, GEN_SESSION_CB); -__owur int SSL_has_matching_session_id(const SSL *ssl, const unsigned char *id, - unsigned int id_len); -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); - -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 *s, int purpose); -__owur int SSL_set_purpose(SSL *s, int purpose); -__owur int SSL_CTX_set_trust(SSL_CTX *s, int trust); -__owur int SSL_set_trust(SSL *s, int trust); - -__owur int SSL_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 - -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_connect(SSL *ssl); -__owur int SSL_read(SSL *ssl, void *buf, int num); -__owur int SSL_peek(SSL *ssl, void *buf, int num); -__owur int SSL_write(SSL *ssl, const void *buf, int num); -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)); - -__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)) /* SSLv3 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *SSLv3_client_method(void)) /* SSLv3 */ -# 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)) /* TLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_client_method(void)) /* TLSv1.0 */ -# endif - -# ifndef OPENSSL_NO_TLS1_1_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_method(void)) /* TLSv1.1 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_server_method(void)) /* TLSv1.1 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_1_client_method(void)) /* TLSv1.1 */ -# endif - -# ifndef OPENSSL_NO_TLS1_2_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_method(void)) /* TLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_server_method(void)) /* TLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *TLSv1_2_client_method(void)) /* TLSv1.2 */ -# endif - -# ifndef OPENSSL_NO_DTLS1_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_method(void)) /* DTLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_server_method(void)) /* DTLSv1.0 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_client_method(void)) /* DTLSv1.0 */ -# endif - -# ifndef OPENSSL_NO_DTLS1_2_METHOD -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_method(void)) /* DTLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_server_method(void)) /* DTLSv1.2 */ -DEPRECATEDIN_1_1_0(__owur const SSL_METHOD *DTLSv1_2_client_method(void)) /* DTLSv1.2 */ -#endif - -__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 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_renegotiate(SSL *s); -__owur int SSL_renegotiate_abbreviated(SSL *s); -__owur int SSL_renegotiate_pending(SSL *s); -int SSL_shutdown(SSL *s); - -__owur const SSL_METHOD *SSL_CTX_get_ssl_method(SSL_CTX *ctx); -__owur const SSL_METHOD *SSL_get_ssl_method(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_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(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 *ssl, - unsigned char *out, size_t outlen); - -#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(SSL *s); -__owur const COMP_METHOD *SSL_get_current_expansion(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); - -/* 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 tls_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)); -# if OPENSSL_API_COMPAT < 0x10100000L -# define SSL_cache_hit(s) SSL_session_reused(s) -# endif - -__owur int SSL_session_reused(SSL *s); -__owur int SSL_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); -__owur const char *SSL_CIPHER_standard_name(const SSL_CIPHER *c); -# 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 - -extern const char SSL_version_str[]; - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_SSL_strings(void); - -/* Error codes for the SSL functions. */ - -/* Function codes. */ -# define SSL_F_CHECK_SUITEB_CIPHER_LIST 331 -# define SSL_F_CT_MOVE_SCTS 345 -# define SSL_F_CT_STRICT 349 -# define SSL_F_D2I_SSL_SESSION 103 -# define SSL_F_DANE_CTX_ENABLE 347 -# define SSL_F_DANE_MTYPE_SET 393 -# define SSL_F_DANE_TLSA_ADD 394 -# define SSL_F_DO_DTLS1_WRITE 245 -# define SSL_F_DO_SSL3_WRITE 104 -# define SSL_F_DTLS1_BUFFER_RECORD 247 -# define SSL_F_DTLS1_CHECK_TIMEOUT_NUM 318 -# define SSL_F_DTLS1_HEARTBEAT 305 -# define SSL_F_DTLS1_PREPROCESS_FRAGMENT 288 -# define SSL_F_DTLS1_PROCESS_BUFFERED_RECORDS 424 -# define SSL_F_DTLS1_PROCESS_RECORD 257 -# define SSL_F_DTLS1_READ_BYTES 258 -# define SSL_F_DTLS1_READ_FAILED 339 -# define SSL_F_DTLS1_RETRANSMIT_MESSAGE 390 -# define SSL_F_DTLS1_WRITE_APP_DATA_BYTES 268 -# define SSL_F_DTLSV1_LISTEN 350 -# define SSL_F_DTLS_CONSTRUCT_CHANGE_CIPHER_SPEC 371 -# define SSL_F_DTLS_CONSTRUCT_HELLO_VERIFY_REQUEST 385 -# define SSL_F_DTLS_GET_REASSEMBLED_MESSAGE 370 -# define SSL_F_DTLS_PROCESS_HELLO_VERIFY 386 -# define SSL_F_DTLS_WAIT_FOR_DRY 592 -# define SSL_F_OPENSSL_INIT_SSL 342 -# define SSL_F_OSSL_STATEM_CLIENT_READ_TRANSITION 417 -# define SSL_F_OSSL_STATEM_SERVER_READ_TRANSITION 418 -# define SSL_F_READ_STATE_MACHINE 352 -# define SSL_F_SSL3_CHANGE_CIPHER_STATE 129 -# define SSL_F_SSL3_CHECK_CERT_AND_ALGORITHM 130 -# define SSL_F_SSL3_CTRL 213 -# define SSL_F_SSL3_CTX_CTRL 133 -# define SSL_F_SSL3_DIGEST_CACHED_RECORDS 293 -# define SSL_F_SSL3_DO_CHANGE_CIPHER_SPEC 292 -# define SSL_F_SSL3_FINAL_FINISH_MAC 285 -# define SSL_F_SSL3_GENERATE_KEY_BLOCK 238 -# define SSL_F_SSL3_GENERATE_MASTER_SECRET 388 -# define SSL_F_SSL3_GET_RECORD 143 -# define SSL_F_SSL3_INIT_FINISHED_MAC 397 -# define SSL_F_SSL3_OUTPUT_CERT_CHAIN 147 -# define SSL_F_SSL3_READ_BYTES 148 -# define SSL_F_SSL3_READ_N 149 -# define SSL_F_SSL3_SETUP_KEY_BLOCK 157 -# define SSL_F_SSL3_SETUP_READ_BUFFER 156 -# define SSL_F_SSL3_SETUP_WRITE_BUFFER 291 -# define SSL_F_SSL3_TAKE_MAC 425 -# define SSL_F_SSL3_WRITE_BYTES 158 -# define SSL_F_SSL3_WRITE_PENDING 159 -# define SSL_F_SSL_ADD_CERT_CHAIN 316 -# define SSL_F_SSL_ADD_CERT_TO_BUF 319 -# define SSL_F_SSL_ADD_CLIENTHELLO_RENEGOTIATE_EXT 298 -# define SSL_F_SSL_ADD_CLIENTHELLO_TLSEXT 277 -# define SSL_F_SSL_ADD_CLIENTHELLO_USE_SRTP_EXT 307 -# define SSL_F_SSL_ADD_DIR_CERT_SUBJECTS_TO_STACK 215 -# define SSL_F_SSL_ADD_FILE_CERT_SUBJECTS_TO_STACK 216 -# define SSL_F_SSL_ADD_SERVERHELLO_RENEGOTIATE_EXT 299 -# define SSL_F_SSL_ADD_SERVERHELLO_TLSEXT 278 -# define SSL_F_SSL_ADD_SERVERHELLO_USE_SRTP_EXT 308 -# define SSL_F_SSL_BAD_METHOD 160 -# define SSL_F_SSL_BUILD_CERT_CHAIN 332 -# define SSL_F_SSL_BYTES_TO_CIPHER_LIST 161 -# define SSL_F_SSL_CERT_ADD0_CHAIN_CERT 346 -# define SSL_F_SSL_CERT_DUP 221 -# define SSL_F_SSL_CERT_NEW 162 -# define SSL_F_SSL_CERT_SET0_CHAIN 340 -# define SSL_F_SSL_CHECK_PRIVATE_KEY 163 -# define SSL_F_SSL_CHECK_SERVERHELLO_TLSEXT 280 -# define SSL_F_SSL_CHECK_SRVR_ECC_CERT_AND_ALG 279 -# define SSL_F_SSL_CIPHER_PROCESS_RULESTR 230 -# define SSL_F_SSL_CIPHER_STRENGTH_SORT 231 -# define SSL_F_SSL_CLEAR 164 -# define SSL_F_SSL_COMP_ADD_COMPRESSION_METHOD 165 -# define SSL_F_SSL_CONF_CMD 334 -# define SSL_F_SSL_CREATE_CIPHER_LIST 166 -# define SSL_F_SSL_CTRL 232 -# define SSL_F_SSL_CTX_CHECK_PRIVATE_KEY 168 -# define SSL_F_SSL_CTX_ENABLE_CT 398 -# define SSL_F_SSL_CTX_MAKE_PROFILES 309 -# define SSL_F_SSL_CTX_NEW 169 -# define SSL_F_SSL_CTX_SET_ALPN_PROTOS 343 -# define SSL_F_SSL_CTX_SET_CIPHER_LIST 269 -# define SSL_F_SSL_CTX_SET_CLIENT_CERT_ENGINE 290 -# define SSL_F_SSL_CTX_SET_CT_VALIDATION_CALLBACK 396 -# define SSL_F_SSL_CTX_SET_SESSION_ID_CONTEXT 219 -# define SSL_F_SSL_CTX_SET_SSL_VERSION 170 -# define SSL_F_SSL_CTX_USE_CERTIFICATE 171 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_ASN1 172 -# define SSL_F_SSL_CTX_USE_CERTIFICATE_FILE 173 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY 174 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_ASN1 175 -# define SSL_F_SSL_CTX_USE_PRIVATEKEY_FILE 176 -# define SSL_F_SSL_CTX_USE_PSK_IDENTITY_HINT 272 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY 177 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_ASN1 178 -# define SSL_F_SSL_CTX_USE_RSAPRIVATEKEY_FILE 179 -# define SSL_F_SSL_CTX_USE_SERVERINFO 336 -# define SSL_F_SSL_CTX_USE_SERVERINFO_FILE 337 -# define SSL_F_SSL_DANE_DUP 403 -# define SSL_F_SSL_DANE_ENABLE 395 -# define SSL_F_SSL_DO_CONFIG 391 -# define SSL_F_SSL_DO_HANDSHAKE 180 -# define SSL_F_SSL_DUP_CA_LIST 408 -# define SSL_F_SSL_ENABLE_CT 402 -# define SSL_F_SSL_GET_NEW_SESSION 181 -# define SSL_F_SSL_GET_PREV_SESSION 217 -# define SSL_F_SSL_GET_SERVER_CERT_INDEX 322 -# define SSL_F_SSL_GET_SIGN_PKEY 183 -# define SSL_F_SSL_INIT_WBIO_BUFFER 184 -# define SSL_F_SSL_LOAD_CLIENT_CA_FILE 185 -# define SSL_F_SSL_MODULE_INIT 392 -# define SSL_F_SSL_NEW 186 -# define SSL_F_SSL_PARSE_CLIENTHELLO_RENEGOTIATE_EXT 300 -# define SSL_F_SSL_PARSE_CLIENTHELLO_TLSEXT 302 -# define SSL_F_SSL_PARSE_CLIENTHELLO_USE_SRTP_EXT 310 -# define SSL_F_SSL_PARSE_SERVERHELLO_RENEGOTIATE_EXT 301 -# define SSL_F_SSL_PARSE_SERVERHELLO_TLSEXT 303 -# define SSL_F_SSL_PARSE_SERVERHELLO_USE_SRTP_EXT 311 -# define SSL_F_SSL_PEEK 270 -# define SSL_F_SSL_READ 223 -# define SSL_F_SSL_RENEGOTIATE 516 -# define SSL_F_SSL_RENEGOTIATE_ABBREVIATED 546 -# define SSL_F_SSL_SCAN_CLIENTHELLO_TLSEXT 320 -# define SSL_F_SSL_SCAN_SERVERHELLO_TLSEXT 321 -# define SSL_F_SSL_SESSION_DUP 348 -# define SSL_F_SSL_SESSION_NEW 189 -# define SSL_F_SSL_SESSION_PRINT_FP 190 -# define SSL_F_SSL_SESSION_SET1_ID 423 -# define SSL_F_SSL_SESSION_SET1_ID_CONTEXT 312 -# define SSL_F_SSL_SET_ALPN_PROTOS 344 -# define SSL_F_SSL_SET_CERT 191 -# define SSL_F_SSL_SET_CIPHER_LIST 271 -# define SSL_F_SSL_SET_CT_VALIDATION_CALLBACK 399 -# define SSL_F_SSL_SET_FD 192 -# define SSL_F_SSL_SET_PKEY 193 -# define SSL_F_SSL_SET_RFD 194 -# define SSL_F_SSL_SET_SESSION 195 -# define SSL_F_SSL_SET_SESSION_ID_CONTEXT 218 -# define SSL_F_SSL_SET_SESSION_TICKET_EXT 294 -# define SSL_F_SSL_SET_WFD 196 -# define SSL_F_SSL_SHUTDOWN 224 -# define SSL_F_SSL_SRP_CTX_INIT 313 -# define SSL_F_SSL_START_ASYNC_JOB 389 -# define SSL_F_SSL_UNDEFINED_FUNCTION 197 -# define SSL_F_SSL_UNDEFINED_VOID_FUNCTION 244 -# define SSL_F_SSL_USE_CERTIFICATE 198 -# define SSL_F_SSL_USE_CERTIFICATE_ASN1 199 -# define SSL_F_SSL_USE_CERTIFICATE_FILE 200 -# define SSL_F_SSL_USE_PRIVATEKEY 201 -# define SSL_F_SSL_USE_PRIVATEKEY_ASN1 202 -# define SSL_F_SSL_USE_PRIVATEKEY_FILE 203 -# define SSL_F_SSL_USE_PSK_IDENTITY_HINT 273 -# define SSL_F_SSL_USE_RSAPRIVATEKEY 204 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_ASN1 205 -# define SSL_F_SSL_USE_RSAPRIVATEKEY_FILE 206 -# define SSL_F_SSL_VALIDATE_CT 400 -# define SSL_F_SSL_VERIFY_CERT_CHAIN 207 -# define SSL_F_SSL_WRITE 208 -# define SSL_F_STATE_MACHINE 353 -# define SSL_F_TLS12_CHECK_PEER_SIGALG 333 -# define SSL_F_TLS1_CHANGE_CIPHER_STATE 209 -# define SSL_F_TLS1_CHECK_DUPLICATE_EXTENSIONS 341 -# define SSL_F_TLS1_ENC 401 -# define SSL_F_TLS1_EXPORT_KEYING_MATERIAL 314 -# define SSL_F_TLS1_GET_CURVELIST 338 -# define SSL_F_TLS1_PRF 284 -# define SSL_F_TLS1_SETUP_KEY_BLOCK 211 -# define SSL_F_TLS1_SET_SERVER_SIGALGS 335 -# define SSL_F_TLS_CLIENT_KEY_EXCHANGE_POST_WORK 354 -# define SSL_F_TLS_CONSTRUCT_CERTIFICATE_REQUEST 372 -# define SSL_F_TLS_CONSTRUCT_CKE_DHE 404 -# define SSL_F_TLS_CONSTRUCT_CKE_ECDHE 405 -# define SSL_F_TLS_CONSTRUCT_CKE_GOST 406 -# define SSL_F_TLS_CONSTRUCT_CKE_PSK_PREAMBLE 407 -# define SSL_F_TLS_CONSTRUCT_CKE_RSA 409 -# define SSL_F_TLS_CONSTRUCT_CKE_SRP 410 -# define SSL_F_TLS_CONSTRUCT_CLIENT_CERTIFICATE 355 -# define SSL_F_TLS_CONSTRUCT_CLIENT_HELLO 356 -# define SSL_F_TLS_CONSTRUCT_CLIENT_KEY_EXCHANGE 357 -# define SSL_F_TLS_CONSTRUCT_CLIENT_VERIFY 358 -# define SSL_F_TLS_CONSTRUCT_FINISHED 359 -# define SSL_F_TLS_CONSTRUCT_HELLO_REQUEST 373 -# define SSL_F_TLS_CONSTRUCT_NEW_SESSION_TICKET 428 -# define SSL_F_TLS_CONSTRUCT_SERVER_CERTIFICATE 374 -# define SSL_F_TLS_CONSTRUCT_SERVER_DONE 375 -# define SSL_F_TLS_CONSTRUCT_SERVER_HELLO 376 -# define SSL_F_TLS_CONSTRUCT_SERVER_KEY_EXCHANGE 377 -# define SSL_F_TLS_GET_MESSAGE_BODY 351 -# define SSL_F_TLS_GET_MESSAGE_HEADER 387 -# define SSL_F_TLS_POST_PROCESS_CLIENT_HELLO 378 -# define SSL_F_TLS_POST_PROCESS_CLIENT_KEY_EXCHANGE 384 -# define SSL_F_TLS_PREPARE_CLIENT_CERTIFICATE 360 -# define SSL_F_TLS_PROCESS_CERTIFICATE_REQUEST 361 -# define SSL_F_TLS_PROCESS_CERT_STATUS 362 -# define SSL_F_TLS_PROCESS_CERT_VERIFY 379 -# define SSL_F_TLS_PROCESS_CHANGE_CIPHER_SPEC 363 -# define SSL_F_TLS_PROCESS_CKE_DHE 411 -# define SSL_F_TLS_PROCESS_CKE_ECDHE 412 -# define SSL_F_TLS_PROCESS_CKE_GOST 413 -# define SSL_F_TLS_PROCESS_CKE_PSK_PREAMBLE 414 -# define SSL_F_TLS_PROCESS_CKE_RSA 415 -# define SSL_F_TLS_PROCESS_CKE_SRP 416 -# define SSL_F_TLS_PROCESS_CLIENT_CERTIFICATE 380 -# define SSL_F_TLS_PROCESS_CLIENT_HELLO 381 -# define SSL_F_TLS_PROCESS_CLIENT_KEY_EXCHANGE 382 -# define SSL_F_TLS_PROCESS_FINISHED 364 -# define SSL_F_TLS_PROCESS_KEY_EXCHANGE 365 -# define SSL_F_TLS_PROCESS_NEW_SESSION_TICKET 366 -# define SSL_F_TLS_PROCESS_NEXT_PROTO 383 -# define SSL_F_TLS_PROCESS_SERVER_CERTIFICATE 367 -# define SSL_F_TLS_PROCESS_SERVER_DONE 368 -# define SSL_F_TLS_PROCESS_SERVER_HELLO 369 -# define SSL_F_TLS_PROCESS_SKE_DHE 419 -# define SSL_F_TLS_PROCESS_SKE_ECDHE 420 -# define SSL_F_TLS_PROCESS_SKE_PSK_PREAMBLE 421 -# define SSL_F_TLS_PROCESS_SKE_SRP 422 -# define SSL_F_USE_CERTIFICATE_CHAIN_FILE 220 - -/* Reason codes. */ -# define SSL_R_APP_DATA_IN_HANDSHAKE 100 -# define SSL_R_ATTEMPT_TO_REUSE_SESSION_IN_DIFFERENT_CONTEXT 272 -# define SSL_R_AT_LEAST_TLS_1_0_NEEDED_IN_FIPS_MODE 143 -# define SSL_R_AT_LEAST_TLS_1_2_NEEDED_IN_SUITEB_MODE 158 -# define SSL_R_BAD_CHANGE_CIPHER_SPEC 103 -# define SSL_R_BAD_DATA 390 -# define SSL_R_BAD_DATA_RETURNED_BY_CALLBACK 106 -# define SSL_R_BAD_DECOMPRESSION 107 -# define SSL_R_BAD_DH_VALUE 102 -# define SSL_R_BAD_DIGEST_LENGTH 111 -# define SSL_R_BAD_ECC_CERT 304 -# define SSL_R_BAD_ECPOINT 306 -# define SSL_R_BAD_HANDSHAKE_LENGTH 332 -# define SSL_R_BAD_HELLO_REQUEST 105 -# define SSL_R_BAD_LENGTH 271 -# define SSL_R_BAD_PACKET_LENGTH 115 -# define SSL_R_BAD_PROTOCOL_VERSION_NUMBER 116 -# define SSL_R_BAD_RSA_ENCRYPT 119 -# define SSL_R_BAD_SIGNATURE 123 -# define SSL_R_BAD_SRP_A_LENGTH 347 -# define SSL_R_BAD_SRP_PARAMETERS 371 -# define SSL_R_BAD_SRTP_MKI_VALUE 352 -# define SSL_R_BAD_SRTP_PROTECTION_PROFILE_LIST 353 -# define SSL_R_BAD_SSL_FILETYPE 124 -# define SSL_R_BAD_VALUE 384 -# define SSL_R_BAD_WRITE_RETRY 127 -# define SSL_R_BIO_NOT_SET 128 -# define SSL_R_BLOCK_CIPHER_PAD_IS_WRONG 129 -# define SSL_R_BN_LIB 130 -# define SSL_R_CA_DN_LENGTH_MISMATCH 131 -# define SSL_R_CA_KEY_TOO_SMALL 397 -# define SSL_R_CA_MD_TOO_WEAK 398 -# define SSL_R_CCS_RECEIVED_EARLY 133 -# define SSL_R_CERTIFICATE_VERIFY_FAILED 134 -# define SSL_R_CERT_CB_ERROR 377 -# define SSL_R_CERT_LENGTH_MISMATCH 135 -# define SSL_R_CIPHER_CODE_WRONG_LENGTH 137 -# define SSL_R_CIPHER_OR_HASH_UNAVAILABLE 138 -# define SSL_R_CLIENTHELLO_TLSEXT 226 -# define SSL_R_COMPRESSED_LENGTH_TOO_LONG 140 -# define SSL_R_COMPRESSION_DISABLED 343 -# define SSL_R_COMPRESSION_FAILURE 141 -# define SSL_R_COMPRESSION_ID_NOT_WITHIN_PRIVATE_RANGE 307 -# define SSL_R_COMPRESSION_LIBRARY_ERROR 142 -# define SSL_R_CONNECTION_TYPE_NOT_SET 144 -# define SSL_R_CONTEXT_NOT_DANE_ENABLED 167 -# define SSL_R_COOKIE_GEN_CALLBACK_FAILURE 400 -# define SSL_R_COOKIE_MISMATCH 308 -# define SSL_R_CUSTOM_EXT_HANDLER_ALREADY_INSTALLED 206 -# define SSL_R_DANE_ALREADY_ENABLED 172 -# define SSL_R_DANE_CANNOT_OVERRIDE_MTYPE_FULL 173 -# define SSL_R_DANE_NOT_ENABLED 175 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE 180 -# define SSL_R_DANE_TLSA_BAD_CERTIFICATE_USAGE 184 -# define SSL_R_DANE_TLSA_BAD_DATA_LENGTH 189 -# define SSL_R_DANE_TLSA_BAD_DIGEST_LENGTH 192 -# define SSL_R_DANE_TLSA_BAD_MATCHING_TYPE 200 -# define SSL_R_DANE_TLSA_BAD_PUBLIC_KEY 201 -# define SSL_R_DANE_TLSA_BAD_SELECTOR 202 -# define SSL_R_DANE_TLSA_NULL_DATA 203 -# define SSL_R_DATA_BETWEEN_CCS_AND_FINISHED 145 -# define SSL_R_DATA_LENGTH_TOO_LONG 146 -# define SSL_R_DECRYPTION_FAILED 147 -# define SSL_R_DECRYPTION_FAILED_OR_BAD_RECORD_MAC 281 -# define SSL_R_DH_KEY_TOO_SMALL 394 -# define SSL_R_DH_PUBLIC_VALUE_LENGTH_IS_WRONG 148 -# define SSL_R_DIGEST_CHECK_FAILED 149 -# define SSL_R_DTLS_MESSAGE_TOO_BIG 334 -# define SSL_R_DUPLICATE_COMPRESSION_ID 309 -# define SSL_R_ECC_CERT_NOT_FOR_SIGNING 318 -# define SSL_R_ECDH_REQUIRED_FOR_SUITEB_MODE 374 -# define SSL_R_EE_KEY_TOO_SMALL 399 -# define SSL_R_EMPTY_SRTP_PROTECTION_PROFILE_LIST 354 -# define SSL_R_ENCRYPTED_LENGTH_TOO_LONG 150 -# define SSL_R_ERROR_IN_RECEIVED_CIPHER_LIST 151 -# define SSL_R_ERROR_SETTING_TLSA_BASE_DOMAIN 204 -# define SSL_R_EXCEEDS_MAX_FRAGMENT_SIZE 194 -# define SSL_R_EXCESSIVE_MESSAGE_SIZE 152 -# define SSL_R_EXTRA_DATA_IN_MESSAGE 153 -# define SSL_R_FAILED_TO_INIT_ASYNC 405 -# define SSL_R_FRAGMENTED_CLIENT_HELLO 401 -# define SSL_R_GOT_A_FIN_BEFORE_A_CCS 154 -# define SSL_R_HTTPS_PROXY_REQUEST 155 -# define SSL_R_HTTP_REQUEST 156 -# define SSL_R_ILLEGAL_SUITEB_DIGEST 380 -# define SSL_R_INAPPROPRIATE_FALLBACK 373 -# define SSL_R_INCONSISTENT_COMPRESSION 340 -# define SSL_R_INCONSISTENT_EXTMS 104 -# define SSL_R_INVALID_COMMAND 280 -# define SSL_R_INVALID_COMPRESSION_ALGORITHM 341 -# define SSL_R_INVALID_CONFIGURATION_NAME 113 -# define SSL_R_INVALID_CT_VALIDATION_TYPE 212 -# define SSL_R_INVALID_NULL_CMD_NAME 385 -# define SSL_R_INVALID_SEQUENCE_NUMBER 402 -# define SSL_R_INVALID_SERVERINFO_DATA 388 -# define SSL_R_INVALID_SRP_USERNAME 357 -# define SSL_R_INVALID_STATUS_RESPONSE 328 -# define SSL_R_INVALID_TICKET_KEYS_LENGTH 325 -# define SSL_R_LENGTH_MISMATCH 159 -# define SSL_R_LENGTH_TOO_LONG 404 -# define SSL_R_LENGTH_TOO_SHORT 160 -# define SSL_R_LIBRARY_BUG 274 -# define SSL_R_LIBRARY_HAS_NO_CIPHERS 161 -# define SSL_R_MISSING_DSA_SIGNING_CERT 165 -# define SSL_R_MISSING_ECDSA_SIGNING_CERT 381 -# define SSL_R_MISSING_RSA_CERTIFICATE 168 -# define SSL_R_MISSING_RSA_ENCRYPTING_CERT 169 -# define SSL_R_MISSING_RSA_SIGNING_CERT 170 -# define SSL_R_MISSING_SRP_PARAM 358 -# define SSL_R_MISSING_TMP_DH_KEY 171 -# define SSL_R_MISSING_TMP_ECDH_KEY 311 -# define SSL_R_NO_CERTIFICATES_RETURNED 176 -# define SSL_R_NO_CERTIFICATE_ASSIGNED 177 -# define SSL_R_NO_CERTIFICATE_SET 179 -# define SSL_R_NO_CIPHERS_AVAILABLE 181 -# define SSL_R_NO_CIPHERS_SPECIFIED 183 -# define SSL_R_NO_CIPHER_MATCH 185 -# define SSL_R_NO_CLIENT_CERT_METHOD 331 -# define SSL_R_NO_COMPRESSION_SPECIFIED 187 -# define SSL_R_NO_GOST_CERTIFICATE_SENT_BY_PEER 330 -# define SSL_R_NO_METHOD_SPECIFIED 188 -# define SSL_R_NO_PEM_EXTENSIONS 389 -# define SSL_R_NO_PRIVATE_KEY_ASSIGNED 190 -# define SSL_R_NO_PROTOCOLS_AVAILABLE 191 -# define SSL_R_NO_RENEGOTIATION 339 -# define SSL_R_NO_REQUIRED_DIGEST 324 -# define SSL_R_NO_SHARED_CIPHER 193 -# define SSL_R_NO_SHARED_SIGNATURE_ALGORITHMS 376 -# define SSL_R_NO_SRTP_PROFILES 359 -# define SSL_R_NO_VALID_SCTS 216 -# define SSL_R_NO_VERIFY_COOKIE_CALLBACK 403 -# define SSL_R_NULL_SSL_CTX 195 -# define SSL_R_NULL_SSL_METHOD_PASSED 196 -# define SSL_R_OLD_SESSION_CIPHER_NOT_RETURNED 197 -# define SSL_R_OLD_SESSION_COMPRESSION_ALGORITHM_NOT_RETURNED 344 -# define SSL_R_PACKET_LENGTH_TOO_LONG 198 -# define SSL_R_PARSE_TLSEXT 227 -# define SSL_R_PATH_TOO_LONG 270 -# define SSL_R_PEER_DID_NOT_RETURN_A_CERTIFICATE 199 -# define SSL_R_PEM_NAME_BAD_PREFIX 391 -# define SSL_R_PEM_NAME_TOO_SHORT 392 -# define SSL_R_PIPELINE_FAILURE 406 -# define SSL_R_PROTOCOL_IS_SHUTDOWN 207 -# define SSL_R_PSK_IDENTITY_NOT_FOUND 223 -# define SSL_R_PSK_NO_CLIENT_CB 224 -# define SSL_R_PSK_NO_SERVER_CB 225 -# define SSL_R_READ_BIO_NOT_SET 211 -# define SSL_R_READ_TIMEOUT_EXPIRED 312 -# define SSL_R_RECORD_LENGTH_MISMATCH 213 -# define SSL_R_RECORD_TOO_SMALL 298 -# define SSL_R_RENEGOTIATE_EXT_TOO_LONG 335 -# define SSL_R_RENEGOTIATION_ENCODING_ERR 336 -# define SSL_R_RENEGOTIATION_MISMATCH 337 -# define SSL_R_REQUIRED_CIPHER_MISSING 215 -# define SSL_R_REQUIRED_COMPRESSION_ALGORITHM_MISSING 342 -# define SSL_R_SCSV_RECEIVED_WHEN_RENEGOTIATING 345 -# define SSL_R_SCT_VERIFICATION_FAILED 208 -# define SSL_R_SERVERHELLO_TLSEXT 275 -# define SSL_R_SESSION_ID_CONTEXT_UNINITIALIZED 277 -# define SSL_R_SHUTDOWN_WHILE_IN_INIT 407 -# define SSL_R_SIGNATURE_ALGORITHMS_ERROR 360 -# define SSL_R_SIGNATURE_FOR_NON_SIGNING_CERTIFICATE 220 -# define SSL_R_SRP_A_CALC 361 -# define SSL_R_SRTP_COULD_NOT_ALLOCATE_PROFILES 362 -# define SSL_R_SRTP_PROTECTION_PROFILE_LIST_TOO_LONG 363 -# define SSL_R_SRTP_UNKNOWN_PROTECTION_PROFILE 364 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME 319 -# define SSL_R_SSL3_EXT_INVALID_SERVERNAME_TYPE 320 -# define SSL_R_SSL3_SESSION_ID_TOO_LONG 300 -# define SSL_R_SSLV3_ALERT_BAD_CERTIFICATE 1042 -# define SSL_R_SSLV3_ALERT_BAD_RECORD_MAC 1020 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_EXPIRED 1045 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_REVOKED 1044 -# define SSL_R_SSLV3_ALERT_CERTIFICATE_UNKNOWN 1046 -# define SSL_R_SSLV3_ALERT_DECOMPRESSION_FAILURE 1030 -# define SSL_R_SSLV3_ALERT_HANDSHAKE_FAILURE 1040 -# define SSL_R_SSLV3_ALERT_ILLEGAL_PARAMETER 1047 -# define SSL_R_SSLV3_ALERT_NO_CERTIFICATE 1041 -# define SSL_R_SSLV3_ALERT_UNEXPECTED_MESSAGE 1010 -# define SSL_R_SSLV3_ALERT_UNSUPPORTED_CERTIFICATE 1043 -# define SSL_R_SSL_COMMAND_SECTION_EMPTY 117 -# define SSL_R_SSL_COMMAND_SECTION_NOT_FOUND 125 -# define SSL_R_SSL_CTX_HAS_NO_DEFAULT_SSL_VERSION 228 -# define SSL_R_SSL_HANDSHAKE_FAILURE 229 -# define SSL_R_SSL_LIBRARY_HAS_NO_CIPHERS 230 -# define SSL_R_SSL_NEGATIVE_LENGTH 372 -# define SSL_R_SSL_SECTION_EMPTY 126 -# define SSL_R_SSL_SECTION_NOT_FOUND 136 -# define SSL_R_SSL_SESSION_ID_CALLBACK_FAILED 301 -# define SSL_R_SSL_SESSION_ID_CONFLICT 302 -# define SSL_R_SSL_SESSION_ID_TOO_LONG 408 -# define SSL_R_SSL_SESSION_ID_CONTEXT_TOO_LONG 273 -# define SSL_R_SSL_SESSION_ID_HAS_BAD_LENGTH 303 -# define SSL_R_SSL_SESSION_VERSION_MISMATCH 210 -# define SSL_R_TLSV1_ALERT_ACCESS_DENIED 1049 -# define SSL_R_TLSV1_ALERT_DECODE_ERROR 1050 -# define SSL_R_TLSV1_ALERT_DECRYPTION_FAILED 1021 -# define SSL_R_TLSV1_ALERT_DECRYPT_ERROR 1051 -# define SSL_R_TLSV1_ALERT_EXPORT_RESTRICTION 1060 -# define SSL_R_TLSV1_ALERT_INAPPROPRIATE_FALLBACK 1086 -# define SSL_R_TLSV1_ALERT_INSUFFICIENT_SECURITY 1071 -# define SSL_R_TLSV1_ALERT_INTERNAL_ERROR 1080 -# define SSL_R_TLSV1_ALERT_NO_RENEGOTIATION 1100 -# define SSL_R_TLSV1_ALERT_PROTOCOL_VERSION 1070 -# define SSL_R_TLSV1_ALERT_RECORD_OVERFLOW 1022 -# define SSL_R_TLSV1_ALERT_UNKNOWN_CA 1048 -# define SSL_R_TLSV1_ALERT_USER_CANCELLED 1090 -# define SSL_R_TLSV1_BAD_CERTIFICATE_HASH_VALUE 1114 -# define SSL_R_TLSV1_BAD_CERTIFICATE_STATUS_RESPONSE 1113 -# define SSL_R_TLSV1_CERTIFICATE_UNOBTAINABLE 1111 -# define SSL_R_TLSV1_UNRECOGNIZED_NAME 1112 -# define SSL_R_TLSV1_UNSUPPORTED_EXTENSION 1110 -# define SSL_R_TLS_HEARTBEAT_PEER_DOESNT_ACCEPT 365 -# define SSL_R_TLS_HEARTBEAT_PENDING 366 -# define SSL_R_TLS_ILLEGAL_EXPORTER_LABEL 367 -# define SSL_R_TLS_INVALID_ECPOINTFORMAT_LIST 157 -# define SSL_R_TOO_MANY_WARN_ALERTS 409 -# define SSL_R_UNABLE_TO_FIND_ECDH_PARAMETERS 314 -# define SSL_R_UNABLE_TO_FIND_PUBLIC_KEY_PARAMETERS 239 -# define SSL_R_UNABLE_TO_LOAD_SSL3_MD5_ROUTINES 242 -# define SSL_R_UNABLE_TO_LOAD_SSL3_SHA1_ROUTINES 243 -# define SSL_R_UNEXPECTED_MESSAGE 244 -# define SSL_R_UNEXPECTED_RECORD 245 -# define SSL_R_UNINITIALIZED 276 -# define SSL_R_UNKNOWN_ALERT_TYPE 246 -# define SSL_R_UNKNOWN_CERTIFICATE_TYPE 247 -# define SSL_R_UNKNOWN_CIPHER_RETURNED 248 -# define SSL_R_UNKNOWN_CIPHER_TYPE 249 -# define SSL_R_UNKNOWN_CMD_NAME 386 -# define SSL_R_UNKNOWN_COMMAND 139 -# define SSL_R_UNKNOWN_DIGEST 368 -# define SSL_R_UNKNOWN_KEY_EXCHANGE_TYPE 250 -# define SSL_R_UNKNOWN_PKEY_TYPE 251 -# define SSL_R_UNKNOWN_PROTOCOL 252 -# define SSL_R_UNKNOWN_SSL_VERSION 254 -# define SSL_R_UNKNOWN_STATE 255 -# define SSL_R_UNSAFE_LEGACY_RENEGOTIATION_DISABLED 338 -# define SSL_R_UNSUPPORTED_COMPRESSION_ALGORITHM 257 -# define SSL_R_UNSUPPORTED_ELLIPTIC_CURVE 315 -# define SSL_R_UNSUPPORTED_PROTOCOL 258 -# define SSL_R_UNSUPPORTED_SSL_VERSION 259 -# define SSL_R_UNSUPPORTED_STATUS_TYPE 329 -# define SSL_R_USE_SRTP_NOT_NEGOTIATED 369 -# define SSL_R_VERSION_TOO_HIGH 166 -# define SSL_R_VERSION_TOO_LOW 396 -# define SSL_R_WRONG_CERTIFICATE_TYPE 383 -# define SSL_R_WRONG_CIPHER_RETURNED 261 -# define SSL_R_WRONG_CURVE 378 -# define SSL_R_WRONG_SIGNATURE_LENGTH 264 -# define SSL_R_WRONG_SIGNATURE_SIZE 265 -# define SSL_R_WRONG_SIGNATURE_TYPE 370 -# define SSL_R_WRONG_SSL_VERSION 266 -# define SSL_R_WRONG_VERSION_NUMBER 267 -# define SSL_R_X509_LIB 268 -# define SSL_R_X509_VERIFICATION_SETUP_PROBLEMS 269 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/ssl2.h b/Android/app/libs/armeabi/include/openssl/ssl2.h deleted file mode 100644 index 5321bd27..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/ssl3.h b/Android/app/libs/armeabi/include/openssl/ssl3.h deleted file mode 100644 index 4ca434e7..00000000 --- a/Android/app/libs/armeabi/include/openssl/ssl3.h +++ /dev/null @@ -1,310 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECC cipher suite support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_SSL3_H -# define HEADER_SSL3_H - -# 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 - -# 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) - -/* - * 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_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 type for SSL/TLS header info */ -# define SSL3_RT_HEADER 0x100 - -# 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 either for SSLv3 and TLSv1. - */ -# define SSL3_CT_NUMBER 9 - -# 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 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_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_STATUS 22 -# ifndef OPENSSL_NO_NEXTPROTONEG -# define SSL3_MT_NEXT_PROTO 67 -# endif -# 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 0x01 -# define SSL3_CC_WRITE 0x02 -# define SSL3_CC_CLIENT 0x10 -# define SSL3_CC_SERVER 0x20 -# 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/Android/app/libs/armeabi/include/openssl/stack.h b/Android/app/libs/armeabi/include/openssl/stack.h deleted file mode 100644 index 23ad3b89..00000000 --- a/Android/app/libs/armeabi/include/openssl/stack.h +++ /dev/null @@ -1,78 +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_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); -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/Android/app/libs/armeabi/include/openssl/symhacks.h b/Android/app/libs/armeabi/include/openssl/symhacks.h deleted file mode 100644 index caf1f1a7..00000000 --- a/Android/app/libs/armeabi/include/openssl/symhacks.h +++ /dev/null @@ -1,52 +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_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 - -/* - * These functions do not seem to exist! However, I'm paranoid... Original - * command in x509v3.h: These functions are being redefined in another - * directory, and clash when the linker is case-insensitive, so let's hide - * them a little, by giving them an extra 'o' at the beginning of the name... - */ -# undef X509v3_cleanup_extensions -# define X509v3_cleanup_extensions oX509v3_cleanup_extensions -# undef X509v3_add_extension -# define X509v3_add_extension oX509v3_add_extension -# undef X509v3_add_netscape_extensions -# define X509v3_add_netscape_extensions oX509v3_add_netscape_extensions -# undef X509v3_add_standard_extensions -# define X509v3_add_standard_extensions oX509v3_add_standard_extensions - -/* This one clashes with CMS_data_create */ -# undef cms_Data_create -# define cms_Data_create priv_cms_Data_create - -# endif - -#endif /* ! defined HEADER_VMS_IDHACKS_H */ diff --git a/Android/app/libs/armeabi/include/openssl/tls1.h b/Android/app/libs/armeabi/include/openssl/tls1.h deleted file mode 100644 index 3fe01fe8..00000000 --- a/Android/app/libs/armeabi/include/openssl/tls1.h +++ /dev/null @@ -1,972 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * - * Portions of the attached software ("Contribution") are developed by - * SUN MICROSYSTEMS, INC., and are contributed to the OpenSSL project. - * - * The Contribution is licensed pursuant to the OpenSSL open source - * license provided above. - * - * ECC cipher suite support in OpenSSL originally written by - * Vipul Gupta and Sumit Gupta of Sun Microsystems Laboratories. - * - */ -/* ==================================================================== - * Copyright 2005 Nokia. All rights reserved. - * - * The portions of the attached software ("Contribution") is developed by - * Nokia Corporation and is licensed pursuant to the OpenSSL open source - * license. - * - * The Contribution, originally written by Mika Kousa and Pasi Eronen of - * Nokia Corporation, consists of the "PSK" (Pre-Shared Key) ciphersuites - * support (see RFC 4279) to OpenSSL. - * - * No patent licenses or other rights except those expressly stated in - * the OpenSSL open source license shall be deemed granted or received - * expressly, by implication, estoppel, or otherwise. - * - * No assurances are provided by Nokia that the Contribution does not - * infringe the patent or other intellectual property rights of any third - * party or that the license provides you with all the necessary rights - * to make use of the Contribution. - * - * THE SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND. IN - * ADDITION TO THE DISCLAIMERS INCLUDED IN THE LICENSE, NOKIA - * SPECIFICALLY DISCLAIMS ANY LIABILITY FOR CLAIMS BROUGHT BY YOU OR ANY - * OTHER ENTITY BASED ON INFRINGEMENT OF INTELLECTUAL PROPERTY RIGHTS OR - * OTHERWISE. - */ - -#ifndef HEADER_TLS1_H -# define HEADER_TLS1_H - -# 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 TLS_MAX_VERSION TLS1_2_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 -/* 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 */ -# define TLSEXT_TYPE_elliptic_curves 10 -# 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 - -/* 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 - -# 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); - -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,(char *)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, (void *)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, (void *)arg) - -# define SSL_set_tlsext_status_exts(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_EXTS,0, (void *)arg) - -# define SSL_get_tlsext_status_ids(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) - -# define SSL_set_tlsext_status_ids(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_IDS,0, (void *)arg) - -# define SSL_get_tlsext_status_ocsp_resp(ssl, arg) \ -SSL_ctrl(ssl,SSL_CTRL_GET_TLSEXT_STATUS_REQ_OCSP_RESP,0, (void *)arg) - -# define SSL_set_tlsext_status_ocsp_resp(ssl, arg, arglen) \ -SSL_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_OCSP_RESP,arglen, (void *)arg) - -# 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, (void *)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 (**)(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, (void *)arg) -# define SSL_CTX_set_tlsext_status_arg(ssl, arg) \ - SSL_CTX_ctrl(ssl,SSL_CTRL_SET_TLSEXT_STATUS_REQ_CB_ARG,0, (void *)arg) - -#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 - -/* - * 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" - -# 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 9 - -# 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\x63\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/Android/app/libs/armeabi/include/openssl/ts.h b/Android/app/libs/armeabi/include/openssl/ts.h deleted file mode 100644 index a5659825..00000000 --- a/Android/app/libs/armeabi/include/openssl/ts.h +++ /dev/null @@ -1,643 +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_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 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); - -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); - -/* 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); - -/* -------------------------------------------------- */ -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_TS_strings(void); - -/* Error codes for the TS functions. */ - -/* Function codes. */ -# define TS_F_DEF_SERIAL_CB 110 -# define TS_F_DEF_TIME_CB 111 -# define TS_F_ESS_ADD_SIGNING_CERT 112 -# define TS_F_ESS_CERT_ID_NEW_INIT 113 -# define TS_F_ESS_SIGNING_CERT_NEW_INIT 114 -# define TS_F_INT_TS_RESP_VERIFY_TOKEN 149 -# define TS_F_PKCS7_TO_TS_TST_INFO 148 -# define TS_F_TS_ACCURACY_SET_MICROS 115 -# define TS_F_TS_ACCURACY_SET_MILLIS 116 -# define TS_F_TS_ACCURACY_SET_SECONDS 117 -# define TS_F_TS_CHECK_IMPRINTS 100 -# define TS_F_TS_CHECK_NONCES 101 -# define TS_F_TS_CHECK_POLICY 102 -# define TS_F_TS_CHECK_SIGNING_CERTS 103 -# define TS_F_TS_CHECK_STATUS_INFO 104 -# define TS_F_TS_COMPUTE_IMPRINT 145 -# define TS_F_TS_CONF_INVALID 151 -# define TS_F_TS_CONF_LOAD_CERT 153 -# define TS_F_TS_CONF_LOAD_CERTS 154 -# define TS_F_TS_CONF_LOAD_KEY 155 -# define TS_F_TS_CONF_LOOKUP_FAIL 152 -# define TS_F_TS_CONF_SET_DEFAULT_ENGINE 146 -# define TS_F_TS_GET_STATUS_TEXT 105 -# define TS_F_TS_MSG_IMPRINT_SET_ALGO 118 -# define TS_F_TS_REQ_SET_MSG_IMPRINT 119 -# define TS_F_TS_REQ_SET_NONCE 120 -# define TS_F_TS_REQ_SET_POLICY_ID 121 -# define TS_F_TS_RESP_CREATE_RESPONSE 122 -# define TS_F_TS_RESP_CREATE_TST_INFO 123 -# define TS_F_TS_RESP_CTX_ADD_FAILURE_INFO 124 -# define TS_F_TS_RESP_CTX_ADD_MD 125 -# define TS_F_TS_RESP_CTX_ADD_POLICY 126 -# define TS_F_TS_RESP_CTX_NEW 127 -# define TS_F_TS_RESP_CTX_SET_ACCURACY 128 -# define TS_F_TS_RESP_CTX_SET_CERTS 129 -# define TS_F_TS_RESP_CTX_SET_DEF_POLICY 130 -# define TS_F_TS_RESP_CTX_SET_SIGNER_CERT 131 -# define TS_F_TS_RESP_CTX_SET_STATUS_INFO 132 -# define TS_F_TS_RESP_GET_POLICY 133 -# define TS_F_TS_RESP_SET_GENTIME_WITH_PRECISION 134 -# define TS_F_TS_RESP_SET_STATUS_INFO 135 -# define TS_F_TS_RESP_SET_TST_INFO 150 -# define TS_F_TS_RESP_SIGN 136 -# define TS_F_TS_RESP_VERIFY_SIGNATURE 106 -# define TS_F_TS_TST_INFO_SET_ACCURACY 137 -# define TS_F_TS_TST_INFO_SET_MSG_IMPRINT 138 -# define TS_F_TS_TST_INFO_SET_NONCE 139 -# define TS_F_TS_TST_INFO_SET_POLICY_ID 140 -# define TS_F_TS_TST_INFO_SET_SERIAL 141 -# define TS_F_TS_TST_INFO_SET_TIME 142 -# define TS_F_TS_TST_INFO_SET_TSA 143 -# define TS_F_TS_VERIFY 108 -# define TS_F_TS_VERIFY_CERT 109 -# define TS_F_TS_VERIFY_CTX_NEW 144 - -/* Reason codes. */ -# define TS_R_BAD_PKCS7_TYPE 132 -# define TS_R_BAD_TYPE 133 -# define TS_R_CANNOT_LOAD_CERT 137 -# define TS_R_CANNOT_LOAD_KEY 138 -# define TS_R_CERTIFICATE_VERIFY_ERROR 100 -# define TS_R_COULD_NOT_SET_ENGINE 127 -# define TS_R_COULD_NOT_SET_TIME 115 -# define TS_R_DETACHED_CONTENT 134 -# define TS_R_ESS_ADD_SIGNING_CERT_ERROR 116 -# define TS_R_ESS_SIGNING_CERTIFICATE_ERROR 101 -# define TS_R_INVALID_NULL_POINTER 102 -# define TS_R_INVALID_SIGNER_CERTIFICATE_PURPOSE 117 -# define TS_R_MESSAGE_IMPRINT_MISMATCH 103 -# define TS_R_NONCE_MISMATCH 104 -# define TS_R_NONCE_NOT_RETURNED 105 -# define TS_R_NO_CONTENT 106 -# define TS_R_NO_TIME_STAMP_TOKEN 107 -# define TS_R_PKCS7_ADD_SIGNATURE_ERROR 118 -# define TS_R_PKCS7_ADD_SIGNED_ATTR_ERROR 119 -# define TS_R_PKCS7_TO_TS_TST_INFO_FAILED 129 -# define TS_R_POLICY_MISMATCH 108 -# define TS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE 120 -# define TS_R_RESPONSE_SETUP_ERROR 121 -# define TS_R_SIGNATURE_FAILURE 109 -# define TS_R_THERE_MUST_BE_ONE_SIGNER 110 -# define TS_R_TIME_SYSCALL_ERROR 122 -# define TS_R_TOKEN_NOT_PRESENT 130 -# define TS_R_TOKEN_PRESENT 131 -# define TS_R_TSA_NAME_MISMATCH 111 -# define TS_R_TSA_UNTRUSTED 112 -# define TS_R_TST_INFO_SETUP_ERROR 123 -# define TS_R_TS_DATASIGN 124 -# define TS_R_UNACCEPTABLE_POLICY 125 -# define TS_R_UNSUPPORTED_MD_ALGORITHM 126 -# define TS_R_UNSUPPORTED_VERSION 113 -# define TS_R_VAR_BAD_VALUE 135 -# define TS_R_VAR_LOOKUP_FAILURE 136 -# define TS_R_WRONG_CONTENT_TYPE 114 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/txt_db.h b/Android/app/libs/armeabi/include/openssl/txt_db.h deleted file mode 100644 index 0e6c943e..00000000 --- a/Android/app/libs/armeabi/include/openssl/txt_db.h +++ /dev/null @@ -1,57 +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_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/Android/app/libs/armeabi/include/openssl/ui.h b/Android/app/libs/armeabi/include/openssl/ui.h deleted file mode 100644 index 49e763de..00000000 --- a/Android/app/libs/armeabi/include/openssl/ui.h +++ /dev/null @@ -1,378 +0,0 @@ -/* - * Copyright 2001-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_UI_H -# define HEADER_UI_H - -# include - -# ifndef OPENSSL_NO_UI - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# endif -# include -# include - -#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); -/* 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); - -/* When all strings have been added, process the whole thing. */ -int UI_process(UI *ui); - -/* - * Give a user interface parametrised control commands. This can be used to - * 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); - -/* The method with all the built-in thingies */ -UI_METHOD *UI_OpenSSL(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_prompt_constructor(UI_METHOD *method, - char *(*prompt_constructor) (UI *ui, - const char - *object_desc, - const char - *object_name)); -int (*UI_method_get_opener(UI_METHOD *method)) (UI *); -int (*UI_method_get_writer(UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_flusher(UI_METHOD *method)) (UI *); -int (*UI_method_get_reader(UI_METHOD *method)) (UI *, UI_STRING *); -int (*UI_method_get_closer(UI_METHOD *method)) (UI *); -char *(*UI_method_get_prompt_constructor(UI_METHOD *method)) (UI *, - const char *, - const char *); - -/* - * 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); -/* - * 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); - -/* 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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_UI_strings(void); - -/* Error codes for the UI functions. */ - -/* Function codes. */ -# define UI_F_CLOSE_CONSOLE 115 -# define UI_F_ECHO_CONSOLE 116 -# define UI_F_GENERAL_ALLOCATE_BOOLEAN 108 -# define UI_F_GENERAL_ALLOCATE_PROMPT 109 -# define UI_F_NOECHO_CONSOLE 117 -# define UI_F_OPEN_CONSOLE 114 -# define UI_F_UI_CREATE_METHOD 112 -# define UI_F_UI_CTRL 111 -# define UI_F_UI_DUP_ERROR_STRING 101 -# define UI_F_UI_DUP_INFO_STRING 102 -# define UI_F_UI_DUP_INPUT_BOOLEAN 110 -# define UI_F_UI_DUP_INPUT_STRING 103 -# define UI_F_UI_DUP_VERIFY_STRING 106 -# define UI_F_UI_GET0_RESULT 107 -# define UI_F_UI_NEW_METHOD 104 -# define UI_F_UI_PROCESS 113 -# define UI_F_UI_SET_RESULT 105 - -/* Reason codes. */ -# define UI_R_COMMON_OK_AND_CANCEL_CHARACTERS 104 -# define UI_R_INDEX_TOO_LARGE 102 -# define UI_R_INDEX_TOO_SMALL 103 -# define UI_R_NO_RESULT_BUFFER 105 -# define UI_R_PROCESSING_ERROR 107 -# define UI_R_RESULT_TOO_LARGE 100 -# define UI_R_RESULT_TOO_SMALL 101 -# define UI_R_SYSASSIGN_ERROR 109 -# define UI_R_SYSDASSGN_ERROR 110 -# define UI_R_SYSQIOW_ERROR 111 -# define UI_R_UNKNOWN_CONTROL_COMMAND 106 -# define UI_R_UNKNOWN_TTYGET_ERRNO_VALUE 108 - -# ifdef __cplusplus -} -# endif -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/whrlpool.h b/Android/app/libs/armeabi/include/openssl/whrlpool.h deleted file mode 100644 index 20ea3503..00000000 --- a/Android/app/libs/armeabi/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/Android/app/libs/armeabi/include/openssl/x509.h b/Android/app/libs/armeabi/include/openssl/x509.h deleted file mode 100644 index ee98df8e..00000000 --- a/Android/app/libs/armeabi/include/openssl/x509.h +++ /dev/null @@ -1,1123 +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 - */ - -/* ==================================================================== - * Copyright 2002 Sun Microsystems, Inc. ALL RIGHTS RESERVED. - * ECDH support in OpenSSL originally developed by - * SUN MICROSYSTEMS, INC., and contributed to the OpenSSL project. - */ - -#ifndef HEADER_X509_H -# define HEADER_X509_H - -# include -# include -# include -# include -# include -# include -# include -# include -# include -# include - -# if OPENSSL_API_COMPAT < 0x10100000L -# include -# include -# include -# endif - -# include - -#ifdef __cplusplus -extern "C" { -#endif - -# 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 were sent to me by Pat Richard - * and are used to manipulate Netscapes 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; - -#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); - -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); - -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_NAME(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); -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(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(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) - -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); - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_X509_strings(void); - -/* Error codes for the X509 functions. */ - -/* Function codes. */ -# define X509_F_ADD_CERT_DIR 100 -# define X509_F_BUILD_CHAIN 106 -# define X509_F_BY_FILE_CTRL 101 -# define X509_F_CHECK_NAME_CONSTRAINTS 149 -# define X509_F_CHECK_POLICY 145 -# define X509_F_DANE_I2D 107 -# define X509_F_DIR_CTRL 102 -# define X509_F_GET_CERT_BY_SUBJECT 103 -# define X509_F_NETSCAPE_SPKI_B64_DECODE 129 -# define X509_F_NETSCAPE_SPKI_B64_ENCODE 130 -# define X509_F_X509AT_ADD1_ATTR 135 -# define X509_F_X509V3_ADD_EXT 104 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_NID 136 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_OBJ 137 -# define X509_F_X509_ATTRIBUTE_CREATE_BY_TXT 140 -# define X509_F_X509_ATTRIBUTE_GET0_DATA 139 -# define X509_F_X509_ATTRIBUTE_SET1_DATA 138 -# define X509_F_X509_CHECK_PRIVATE_KEY 128 -# define X509_F_X509_CRL_DIFF 105 -# define X509_F_X509_CRL_PRINT_FP 147 -# define X509_F_X509_EXTENSION_CREATE_BY_NID 108 -# define X509_F_X509_EXTENSION_CREATE_BY_OBJ 109 -# define X509_F_X509_GET_PUBKEY_PARAMETERS 110 -# define X509_F_X509_LOAD_CERT_CRL_FILE 132 -# define X509_F_X509_LOAD_CERT_FILE 111 -# define X509_F_X509_LOAD_CRL_FILE 112 -# define X509_F_X509_NAME_ADD_ENTRY 113 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_NID 114 -# define X509_F_X509_NAME_ENTRY_CREATE_BY_TXT 131 -# define X509_F_X509_NAME_ENTRY_SET_OBJECT 115 -# define X509_F_X509_NAME_ONELINE 116 -# define X509_F_X509_NAME_PRINT 117 -# define X509_F_X509_OBJECT_NEW 150 -# define X509_F_X509_PRINT_EX_FP 118 -# define X509_F_X509_PUBKEY_DECODE 148 -# define X509_F_X509_PUBKEY_GET0 119 -# define X509_F_X509_PUBKEY_SET 120 -# define X509_F_X509_REQ_CHECK_PRIVATE_KEY 144 -# define X509_F_X509_REQ_PRINT_EX 121 -# define X509_F_X509_REQ_PRINT_FP 122 -# define X509_F_X509_REQ_TO_X509 123 -# define X509_F_X509_STORE_ADD_CERT 124 -# define X509_F_X509_STORE_ADD_CRL 125 -# define X509_F_X509_STORE_CTX_GET1_ISSUER 146 -# define X509_F_X509_STORE_CTX_INIT 143 -# define X509_F_X509_STORE_CTX_NEW 142 -# define X509_F_X509_STORE_CTX_PURPOSE_INHERIT 134 -# define X509_F_X509_TO_X509_REQ 126 -# define X509_F_X509_TRUST_ADD 133 -# define X509_F_X509_TRUST_SET 141 -# define X509_F_X509_VERIFY_CERT 127 - -/* Reason codes. */ -# define X509_R_AKID_MISMATCH 110 -# define X509_R_BAD_SELECTOR 133 -# define X509_R_BAD_X509_FILETYPE 100 -# define X509_R_BASE64_DECODE_ERROR 118 -# define X509_R_CANT_CHECK_DH_KEY 114 -# define X509_R_CERT_ALREADY_IN_HASH_TABLE 101 -# define X509_R_CRL_ALREADY_DELTA 127 -# define X509_R_CRL_VERIFY_FAILURE 131 -# define X509_R_IDP_MISMATCH 128 -# define X509_R_INVALID_DIRECTORY 113 -# define X509_R_INVALID_FIELD_NAME 119 -# define X509_R_INVALID_TRUST 123 -# define X509_R_ISSUER_MISMATCH 129 -# define X509_R_KEY_TYPE_MISMATCH 115 -# define X509_R_KEY_VALUES_MISMATCH 116 -# define X509_R_LOADING_CERT_DIR 103 -# define X509_R_LOADING_DEFAULTS 104 -# define X509_R_METHOD_NOT_SUPPORTED 124 -# define X509_R_NAME_TOO_LONG 134 -# define X509_R_NEWER_CRL_NOT_NEWER 132 -# define X509_R_NO_CERT_SET_FOR_US_TO_VERIFY 105 -# define X509_R_NO_CRL_NUMBER 130 -# define X509_R_PUBLIC_KEY_DECODE_ERROR 125 -# define X509_R_PUBLIC_KEY_ENCODE_ERROR 126 -# define X509_R_SHOULD_RETRY 106 -# define X509_R_UNABLE_TO_FIND_PARAMETERS_IN_CHAIN 107 -# define X509_R_UNABLE_TO_GET_CERTS_PUBLIC_KEY 108 -# define X509_R_UNKNOWN_KEY_TYPE 117 -# define X509_R_UNKNOWN_NID 109 -# define X509_R_UNKNOWN_PURPOSE_ID 121 -# define X509_R_UNKNOWN_TRUST_ID 120 -# define X509_R_UNSUPPORTED_ALGORITHM 111 -# define X509_R_WRONG_LOOKUP_TYPE 112 -# define X509_R_WRONG_TYPE 122 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/include/openssl/x509_vfy.h b/Android/app/libs/armeabi/include/openssl/x509_vfy.h deleted file mode 100644 index 1aa0a33b..00000000 --- a/Android/app/libs/armeabi/include/openssl/x509_vfy.h +++ /dev/null @@ -1,544 +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_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 - -/* 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); -X509_CRL *X509_OBJECT_get0_X509_CRL(X509_OBJECT *a); -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_cert X509_STORE_CTX_get1_certs -# 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); - -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_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); -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/Android/app/libs/armeabi/include/openssl/x509v3.h b/Android/app/libs/armeabi/include/openssl/x509v3.h deleted file mode 100644 index c93b112f..00000000 --- a/Android/app/libs/armeabi/include/openssl/x509v3.h +++ /dev/null @@ -1,1008 +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_X509V3_H -# define HEADER_X509V3_H - -# 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 -/* Self signed */ -# define EXFLAG_SS 0x2000 - -# 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(GENERAL_NAME *a, int *ptype); -int GENERAL_NAME_set0_othername(GENERAL_NAME *gen, - ASN1_OBJECT *oid, ASN1_TYPE *value); -int GENERAL_NAME_get0_otherName(GENERAL_NAME *gen, - 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); - -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 */ - -/* BEGIN ERROR CODES */ -/* - * The following lines are auto generated by the script mkerr.pl. Any changes - * made after this point may be overwritten when the script is next run. - */ - -int ERR_load_X509V3_strings(void); - -/* Error codes for the X509V3 functions. */ - -/* Function codes. */ -# define X509V3_F_A2I_GENERAL_NAME 164 -# define X509V3_F_ADDR_VALIDATE_PATH_INTERNAL 166 -# define X509V3_F_ASIDENTIFIERCHOICE_CANONIZE 161 -# define X509V3_F_ASIDENTIFIERCHOICE_IS_CANONICAL 162 -# define X509V3_F_BIGNUM_TO_STRING 167 -# define X509V3_F_COPY_EMAIL 122 -# define X509V3_F_COPY_ISSUER 123 -# define X509V3_F_DO_DIRNAME 144 -# define X509V3_F_DO_EXT_I2D 135 -# define X509V3_F_DO_EXT_NCONF 151 -# define X509V3_F_GNAMES_FROM_SECTNAME 156 -# define X509V3_F_I2S_ASN1_ENUMERATED 121 -# define X509V3_F_I2S_ASN1_IA5STRING 149 -# define X509V3_F_I2S_ASN1_INTEGER 120 -# define X509V3_F_I2V_AUTHORITY_INFO_ACCESS 138 -# define X509V3_F_NOTICE_SECTION 132 -# define X509V3_F_NREF_NOS 133 -# define X509V3_F_POLICY_SECTION 131 -# define X509V3_F_PROCESS_PCI_VALUE 150 -# define X509V3_F_R2I_CERTPOL 130 -# define X509V3_F_R2I_PCI 155 -# define X509V3_F_S2I_ASN1_IA5STRING 100 -# define X509V3_F_S2I_ASN1_INTEGER 108 -# define X509V3_F_S2I_ASN1_OCTET_STRING 112 -# define X509V3_F_S2I_SKEY_ID 115 -# define X509V3_F_SET_DIST_POINT_NAME 158 -# define X509V3_F_SXNET_ADD_ID_ASC 125 -# define X509V3_F_SXNET_ADD_ID_INTEGER 126 -# define X509V3_F_SXNET_ADD_ID_ULONG 127 -# define X509V3_F_SXNET_GET_ID_ASC 128 -# define X509V3_F_SXNET_GET_ID_ULONG 129 -# define X509V3_F_V2I_ASIDENTIFIERS 163 -# define X509V3_F_V2I_ASN1_BIT_STRING 101 -# define X509V3_F_V2I_AUTHORITY_INFO_ACCESS 139 -# define X509V3_F_V2I_AUTHORITY_KEYID 119 -# define X509V3_F_V2I_BASIC_CONSTRAINTS 102 -# define X509V3_F_V2I_CRLD 134 -# define X509V3_F_V2I_EXTENDED_KEY_USAGE 103 -# define X509V3_F_V2I_GENERAL_NAMES 118 -# define X509V3_F_V2I_GENERAL_NAME_EX 117 -# define X509V3_F_V2I_IDP 157 -# define X509V3_F_V2I_IPADDRBLOCKS 159 -# define X509V3_F_V2I_ISSUER_ALT 153 -# define X509V3_F_V2I_NAME_CONSTRAINTS 147 -# define X509V3_F_V2I_POLICY_CONSTRAINTS 146 -# define X509V3_F_V2I_POLICY_MAPPINGS 145 -# define X509V3_F_V2I_SUBJECT_ALT 154 -# define X509V3_F_V2I_TLS_FEATURE 165 -# define X509V3_F_V3_GENERIC_EXTENSION 116 -# define X509V3_F_X509V3_ADD1_I2D 140 -# define X509V3_F_X509V3_ADD_VALUE 105 -# define X509V3_F_X509V3_EXT_ADD 104 -# define X509V3_F_X509V3_EXT_ADD_ALIAS 106 -# define X509V3_F_X509V3_EXT_I2D 136 -# define X509V3_F_X509V3_EXT_NCONF 152 -# define X509V3_F_X509V3_GET_SECTION 142 -# define X509V3_F_X509V3_GET_STRING 143 -# define X509V3_F_X509V3_GET_VALUE_BOOL 110 -# define X509V3_F_X509V3_PARSE_LIST 109 -# define X509V3_F_X509_PURPOSE_ADD 137 -# define X509V3_F_X509_PURPOSE_SET 141 - -/* Reason codes. */ -# define X509V3_R_BAD_IP_ADDRESS 118 -# define X509V3_R_BAD_OBJECT 119 -# define X509V3_R_BN_DEC2BN_ERROR 100 -# define X509V3_R_BN_TO_ASN1_INTEGER_ERROR 101 -# define X509V3_R_DIRNAME_ERROR 149 -# define X509V3_R_DISTPOINT_ALREADY_SET 160 -# define X509V3_R_DUPLICATE_ZONE_ID 133 -# define X509V3_R_ERROR_CONVERTING_ZONE 131 -# define X509V3_R_ERROR_CREATING_EXTENSION 144 -# define X509V3_R_ERROR_IN_EXTENSION 128 -# define X509V3_R_EXPECTED_A_SECTION_NAME 137 -# define X509V3_R_EXTENSION_EXISTS 145 -# define X509V3_R_EXTENSION_NAME_ERROR 115 -# define X509V3_R_EXTENSION_NOT_FOUND 102 -# define X509V3_R_EXTENSION_SETTING_NOT_SUPPORTED 103 -# define X509V3_R_EXTENSION_VALUE_ERROR 116 -# define X509V3_R_ILLEGAL_EMPTY_EXTENSION 151 -# define X509V3_R_INCORRECT_POLICY_SYNTAX_TAG 152 -# define X509V3_R_INVALID_ASNUMBER 162 -# define X509V3_R_INVALID_ASRANGE 163 -# define X509V3_R_INVALID_BOOLEAN_STRING 104 -# define X509V3_R_INVALID_EXTENSION_STRING 105 -# define X509V3_R_INVALID_INHERITANCE 165 -# define X509V3_R_INVALID_IPADDRESS 166 -# define X509V3_R_INVALID_MULTIPLE_RDNS 161 -# define X509V3_R_INVALID_NAME 106 -# define X509V3_R_INVALID_NULL_ARGUMENT 107 -# define X509V3_R_INVALID_NULL_NAME 108 -# define X509V3_R_INVALID_NULL_VALUE 109 -# define X509V3_R_INVALID_NUMBER 140 -# define X509V3_R_INVALID_NUMBERS 141 -# define X509V3_R_INVALID_OBJECT_IDENTIFIER 110 -# define X509V3_R_INVALID_OPTION 138 -# define X509V3_R_INVALID_POLICY_IDENTIFIER 134 -# define X509V3_R_INVALID_PROXY_POLICY_SETTING 153 -# define X509V3_R_INVALID_PURPOSE 146 -# define X509V3_R_INVALID_SAFI 164 -# define X509V3_R_INVALID_SECTION 135 -# define X509V3_R_INVALID_SYNTAX 143 -# define X509V3_R_ISSUER_DECODE_ERROR 126 -# define X509V3_R_MISSING_VALUE 124 -# define X509V3_R_NEED_ORGANIZATION_AND_NUMBERS 142 -# define X509V3_R_NO_CONFIG_DATABASE 136 -# define X509V3_R_NO_ISSUER_CERTIFICATE 121 -# define X509V3_R_NO_ISSUER_DETAILS 127 -# define X509V3_R_NO_POLICY_IDENTIFIER 139 -# define X509V3_R_NO_PROXY_CERT_POLICY_LANGUAGE_DEFINED 154 -# define X509V3_R_NO_PUBLIC_KEY 114 -# define X509V3_R_NO_SUBJECT_DETAILS 125 -# define X509V3_R_OPERATION_NOT_DEFINED 148 -# define X509V3_R_OTHERNAME_ERROR 147 -# define X509V3_R_POLICY_LANGUAGE_ALREADY_DEFINED 155 -# define X509V3_R_POLICY_PATH_LENGTH 156 -# define X509V3_R_POLICY_PATH_LENGTH_ALREADY_DEFINED 157 -# define X509V3_R_POLICY_WHEN_PROXY_LANGUAGE_REQUIRES_NO_POLICY 159 -# define X509V3_R_SECTION_NOT_FOUND 150 -# define X509V3_R_UNABLE_TO_GET_ISSUER_DETAILS 122 -# define X509V3_R_UNABLE_TO_GET_ISSUER_KEYID 123 -# define X509V3_R_UNKNOWN_BIT_STRING_ARGUMENT 111 -# define X509V3_R_UNKNOWN_EXTENSION 129 -# define X509V3_R_UNKNOWN_EXTENSION_NAME 130 -# define X509V3_R_UNKNOWN_OPTION 120 -# define X509V3_R_UNSUPPORTED_OPTION 117 -# define X509V3_R_UNSUPPORTED_TYPE 167 -# define X509V3_R_USER_TOO_LONG 132 - -# ifdef __cplusplus -} -# endif -#endif diff --git a/Android/app/libs/armeabi/libcrypto.a b/Android/app/libs/armeabi/libcrypto.a deleted file mode 100644 index d481a036cda57bc2b1cda32e49318370b11707e1..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3166134 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�vC;gvq3{rBHdwNV^ z8@uPxn8Gh_t|m^6A#U=Hp!%ryrfAw_V&uLqp)CK$QnVR-J3H||l5+oiivD7X{^b;{ zF^sK7%{_ra)Eg{$EMSj7BYwXyPvE-jtxsd@Wc}VQn{4hG7%-!q;3|X*?ipx;fYCcr zYbJT&+ufQ98PO>koD}k6dBNe!LdHsGg{(zu%pmtxVFUghz0u*gv!4)BnEQk%6&!W; zuR459NH}$rv#?Rf8ou7I!aS(4nbzcm9S#v=L1w{rhn&2n(m=U7H@OT!=5{{P?kj_{h%0NIu2Sd&!{qWpqFOd}E6a+{EwA;S0#8 zwKLLC4EYu^w)jiJn{Ok-_| zcRm?Y6nHQ4ew^*#uIr7tJ(qV7-)eq&e(kuydwCwW6+Cz2K1CdafBC+6&pUdvd(hQ* z_vM}0J#%dlyzw(NTBGOA?&-&^Y0B!kC|HI7eKXTVkZJw?l+dXf1l1E|b4t}L!5#caKNWww?z{u5#o8+mQ zdSY64Q%k0*+`x1d;d(W3z>3p;xcQyJDd}AvK^FJ!gv1jI9=M09%NXjEWCaK6z zRxxhNa0kB`r!*g--1MDrzAau)SQ_srAHPh!s>&aotDHJY9v_{Ha!2_trMs`1{MKGg zMSlEbCHFjwpSz(MKi)S(cm7_*RXg$7X@#Zxv}+6ZP1Bubj^STpOJ7d9hc**a1};v% z?Y4w(jh@~>9nqSn_`jEM!uxDOQIB~3*%W;sMITDhFQ(|Pr)Z7WY&C2yjn}y9 z=f>sBmbDr^hkM#T(6!& zH+`E&{jEl3d&~J&V4*%aHy%lwL$2-pTl+>v?<;cuj=kf?T6~~?u!mt@!r*VXkxw*6 z))rQ+;X>UmT{|^6(x>FM^3zzZUC7w#xR4it_N0xTgOI_7_9HY#Gh;Qzb|;*Bj`l0Q zULj+*okBX1=N%pwHgcX^_|7PbsT-o(giKo7g$%4zkE{4~3VHW#a5Um9$jmo}Q$6%X zbzUYthN~m4N$f8+hMOQPABMv5&*?GT-XKo#kxjhp{% zrWwQVKI7ZM(qEmapLXM+{BNJC&zX1JX`@3t!FOwP7Lso!R_2MPXy1Q(S$9EibY@i) zy=dO?j0rzTwbQeI&q{}Q8Fu>SqQ*jNcy8jkqOka6%-Blf4!uLe@19%>kNZB+Y%@H0 z?t#}DlESDZof^04`>}Ne5dZa4e4~>vR*+`BPW2UFt&BNsAzc|6LW|JHMd!jJiG zd2Vthj_e*M?|SpSf=1#sVel=~Z!kuP^3${Ej-LKq#;;m?+RIwe7I-U=OKUxT?MZy- z44?k8<14x~CGl>J%lV|Q{RfUu->g(P;tSWZ6rS`(|Gne$-!T?nZz?=}Uo%T4j#Dwa z`K{nb_hi1|-9R};1(z?B%@&nSUOLTu_muDLv0lJ;W<>w^>?WR@q`R71e6k8XUCNf; z?fzNXd!`v3;fU{HU5#DVJ%0rI2w5u0N9C{0x5Df-@O;6^-Raiqluuh-8pYQ@JhgnI zg*KGvE$dt6)!0SdlT~!JCB5|S(mI^V(|qgF>EhV&oRu$>LC?%rmPlVaw0{jdBj-fn zq;z*F_nB(aAiF&AOBY(-G^b2v^!@GXG3p(4Pj$9_>M669>Fb@whV&68yx%9DIC|`4 z2mYnkF1=|J4{e0;?~kET%2wIZIvVo^=*NwA!!i$kUmd)n3@|ugOn-oqp~W z|6PvS{KUy0%8%V~WF>h~?3-3y;Fa=9O-wr?-L=ukJp2;uet36}=EOq1a z)9Qn$c6=8^=g&Vs-R!=ZruR(A?kUq($u4|%$X{aQ7?|=gH9hU-(%t!7n*Sktqdp$q z3ghhXSnmH1_E(k7>ML|6S8I`aR=J4Qctqo0z4t}m0B+?5=8fndO3_Uzx;aI+r0CmH^r{rixAzjG_&%JXdsFlw3%y}?y1?_ zuH4VvoU+@(!^k#0aiOnQHV+kP&;>B}At!6!Qip+kXk=snt)VSFI|fFj2jIRPg8t!$ z)~@L^6E&|Q?}8Nl3?j#^LKi;;*X$>ExS)Z0@!SZ;GtGf6mTpn;6_{9x4Bt z*Gb+(jy@)2uy{%c|2ZM~p*~*ntp-Jp3U4K!gtyr~zKWNR`f{QAY@tl$JMDa|@@<48 zngN&Ex9){fyVN;n^S+|{Z5HkP@pw@)-+cQhaeLz*)AQ}aq(x;UIRGG0&f z-tj418Qqf~@`*=3jRl0>j4HCgc((!UNJG&(iBEapjpt+OCP}N@o`r9hX97K+kSd!P z>DwG60+MZXzLZ|o4XR36c*n5#Yaa-1{*j(`pnubMGk;&+78`T%`TI@@mD2B!9@BeO@RZJi&S>+}-zpfjoSY!P%QRS15z#M=Rp-lZ^e% zn7_lx=I0I@3VaLC*)=;Ly*vHJ6ai$S!y#tCvr8_AKdo zp6}QxUHVp?=ChiQtwyHn9lz#KtI3-R=ACWaEu}D&FPisspc|oe2y1uWY$JK!1Wz7& z>NvVBrMYW+Vf=FF%if*v7iPuR0`2`NFMPiEc&Kw`ZNt)&d=HU*G?%|hTh`?)kEAwd*B!)jjY~UwMRp!ZnC-}#kM`EE zc9D^ONQVo1)U7jke?DyXica6?!Y19b3ST@cUD%Rc=T>iV;fTk(i&yCtkILg#=STCz z-@(swRJ6mCUoSsKPAb>a)zdeyzhmpD>Su@QKk@lGYRW8{{07bWmFh_ARg@t#b^U9~ z)9SO&yt)E^3d>`iUGqAv^)L7QSG76jw9(idRng?VQx(jCDGRkbwU1_ZXBXXutrG>@ zgZkRWdYHn`7PN+SAL~NXRjehP*7`@?6t}ugJ;GaN-E4D~=j>;A=KGg1&+(&|YYwcr zx8jj3mECIF_mYM}RYg2mMSEU+CGplz+4V8)G_drX5l=;tJvn3{+l*Xw#c|^Q@GM>7nX#u@r{0EoRh^;` zt+DfQ?Rj|GKMCKAy*58oD-fRMQ&$BM=>5%5)7)t@4az;7Z_E82e%^@g@&qXQ6Dj(! z6#XQ$#@!Fq3b+}2M<|+Q+(`gU-Njrpz$B==tU1q{pR)*T>7N{)j-Tl=|Uz|1wZ*KFqeyuc4oM@6gdYp;1qNC$UR z$e!{`4o^5do6ALu6|s5%4Us#IkDEhwD-JI$OKhwS7+uA2(NH= z0I)W3Li9VFo*@%n=>+Obey1=-$KTNh93FEhy%xo*_krToT7mGaL#-KH(a0JE?cMCL zgI6>YzVI5mR&d4A$b5rEYXnb-58UVQIq@+G)OwuO8rmG1H3H}jqT%1^?57>R=8zm) zkRhqc+K929F|GV>qfhXL;EYMn@n63*GJ1V_N6NqW>iAvlXv8;WAP7qq;*}w3hW}!G zIr!wq&&d@Y)h98ESMKk3D1MnS_{g5bh)2H;hu-191?1ZR1F{uEKFREj!jhp%i!U+X zAiQk}RZ6e;sS=6N8IvL&$wu=oRyy>~OV7!5N83GtM;|X;wYubFQl8u$w(J6Wk!?5M zy3jd!tAt3+$u-9u*Ibr4rsl5^<93b5n;EZaUYcc`tnszxnHrBbGB($kTW*(oH#1im zH+$5iBje|Q;(4dzX>#+ZCO02@$j!C{;d-yAV+CHCnux+iUK!6!|pPmV646 zmAJX9T)3Kp$*vjN&tGDEYmB}de>zLz(`ERG=Q`(CX<|PxqrE=)H|gZgG4b7$(3*#p z(xx*I8pn(0X2)}DDs4M1khU@8vT3vP4avBTvlNoioJ}rF&a5O%<_a^KXB&CgN2U9r zIkHELU5ATP^NEN%puIfp*oWsWKH+3g7%DH%*NqH~ZeGzC%y%>oG4qkYuG-mE2X>m< ziLWlOt9N$wf!%y_D$SAPw;|w*on0K*mCbidYuNlR^Bu}fM!JORTS~^>F+7o2RG7Xi zA)^|@zb~<{{CY22WA6xl*^~69Kg9EZ?~tGs-)KO~{cJ$X{k4FGOpNAB;xC!DL?8! z`BzxGpm#d@S3%{6cRvh$4%&~`{|j^-eZO~q6*>#;-TwhvdmG+;F@CkT;oUVR$_4K2 z&~1VHM(FmyeFR$LAMgKj&>I5xpNH-a+@FUY2;6@cdNgqV6X>zP{coT(p7P;qzTui} z`GiB3=JJqvhx{Dl)kh(nn;F}d57`-unh^Z3*ARi1?REy?6ec~l8NQlR^4^BgyE`}U zZ8Tc9`)uAuBm8n36HZUDXeT`ZU#{ysTZNb2pfl1c*m)h~BejK>c$m*#{K2kjAkKW& z;x?0{kgv=_9B#ihZj!Xy6hRO)>GHacY=h3mlwjtnt};`hN^*oyCJ?x(GYKV!oF3-)K4gK+;Z#^&E)?VoeHuSED)IDd^@C3c+C{al^1 z)1HmizyDA8THU($EOuJQ=i4A=e@gpt%{d!}^b{+j;n_HPsfMuG$GU@idDiQW*3ZT9 z5fcx4I;UHlEIGm(v7 zHA(~Ldrr5yutgt&mJF5f{Q@#HxUl~{_WE{m^*3D&FYVG#;r9koz~9T z|4DxPJCCV*bW!ZrnBaX>XVNqxG$rr9A8GS}n3&ioZ;*!x z^SZ}H=12qNdol-2<&#e{BfdH5r79m)U#s$yGtx^vM>&o2dxXwr1*q~;IW?=il*iqg ztJ-p*zcS_VUXVOxzf$tzmY-hCc-8DbH*4>d@-ceul=}_Xn{TkSU{|C=L&PDmjncsr0y!0dXK5f!fad>i;df@b%Cujb^x&Om=zVoXl?1{;lDeRO7 zlLsefe;Z!=?IG$`B;9&+o%z-C%kpa&+cT$nraGxR9K0M_lOS&Nhiy3|_Jxq=zS*Cq z?I^u9_`gt^85PV%Q`1TON!-NWn2Nt{YEQDy$(hL08|dS*^fRUn=IuH}8{wI><_afy z&txiN+UQ@|IMin~W*6?*sQ?Oy*!=||Nk z`gOSn$=?Ua-=t3r{AzypI(LnpEt2=$wCUpKr=`QAx+gt|oAGC4quiDuTV;+qcq!qd zi&KG{-sf6N(|6FSsdo+e$LAUf+#f$NPFm>G#*l5A_rw%^S@!9HFh}$7!GA zxZ`&kzf;s#!qB@p&V7^LkvZM9Z{nuRo1^hL>P@BvJH2DnZuRa~e$~d4GdaTUK{n5? z@2=J0rgszLf;scvAx*73oBK?87OI>y9{oWX+RzWol&!hh5%Xq6uJLovaL;yTcJ5{h zwwA2@@RrTDaG0{3$ISqThEsmI?b=>!VZE1yJNj_3PjS5^bQ;2Q48ub=zR5=!l6j7j z`@P)TqBdAE73SQYp=szkTcA2~ihjkK^1I@7Ho^E$=1CQ1KTi{`4m^1OT08Ro#orOo z6t|%@pZ5G`k~YCz>bOh))tZXvPDgJe4DokD_cB-O1-<_x(AHT0M+3SC2hn3ee9bgu z&#!vMbl#a-qx+EaB4z1{Yr{Ho1*_I zMZY~rqT>6}6s@&OZ{&V^ie8_hKboSo|LcwX>+FL!q90DtPo?NDrRd*E(O*l^-$>Da zmZHCvqW?#Vu1?yHUAK69ioQBU-<+b~o1)*JqVG-7A5YPrOwpf7(G!jyAnz`tKK=r< zo;__kYO{c1Zg2EgeR7h1AWO{yg{adbo zH|t-k{@s#zbJvO{9`!v1b0UB39UokEXJ?t}ieD^5ixz@I><;z<=y)3u9wQJd}`fOj| ze#@<*?czFD4RGJ=a;$Xg0FTR}-jSZ<9^0h6Bq+=5QmdKIeYsz*-(pRB0&CR#25LngMQh)EZoi(n`qypT!wfbd54ID|}8 z4heItQ48^>_n*Q!>+p4lg=*Xx2zLuv3>g~Oe2*v?*&a25IGXx+yo`yV+)$>wQw0vEvKP%VN>Ikh_H}wDbzen{C1d(k;aQP9gqx z3GqKJ#QzgQ{2vqI|F{tUFA4F#P(#oWRlH2MXPPv4Q|%todl3hjK&tL5eey3prTJ<{ zQ*DiDK<3bhSB9ox_%FuS3ZMLhd@nhmzk-iGdHEwUbAzHgRiy@C0^=FeshU9f9Ti*ndA&(~d_vX{P!)*}oLe*Cl6c)UK! zzhWL9u0QnQmpOW}{$SQKoX(BvMfp6H)NjV}Uv%MBR@9mK@0l7iuKIVrE_~v|!<(tw zK2CVjjkq?5Ky}-epq|z{n&fs!=oQ|YhiYm`C@y_%f5?ykTgcaB>k|y_o}sj+ou*z zYX4HAERbNcrCih?yS4MjPCVbXC_1uZ2 z%8DW8|F&_z72YvSSGV_Z&A|`)`;~NgfwB69Nn@l{$z5YzYpnYjPdfM416t#yZNBj& zt=55N|KXN6!kG zkG>`((sOdhzxMIuKX#aNC_PO1S6%OBzAD|cZeHF+VH2JgXy%*mjS_}8)$SoZE?B|4 zV+uFTC&VtkI(}C>+Q090b|y5QOpgmL#Fum731!5mvhYUX>Bka=L2rNDN8~I#c{g%*84jfJvEno z`_Rl}<>ZWX>??S83#IGNyZm%TcI8RU-?We4$bNDq^RZg#n*HtPCn%TGj3Z97^mLm1 zIL#8$X_jVA-^`D`6SXmPCt~(+2~&Dzjcz_BIc^|s*?YU|&<(1bhY#J3B~^?yDwz{< z@AS#6yPF~F?q(p_6o=AQn7xu`GyXt_IhW>}p?nqS0C-s?k7UvOQ*v=X_DRL-Wzt>A?C#9!jys=^XO)NfbtiRCi`+)7)ggg za%gO3?rvlZHin;2zk)c}nwb2WckjhrcUVX0G$_A}Zb-1ljb2`+9iD~@@o*PjMSgNI zdVii9j;@owWsYu~;&=(!UP8x9a+~|pb5>_aZt}<7;;$TnCn}%|gIv)V~1_cT{HD;K^Q)hy08t7at)%HUH61 z`L~1u3Dtq5nE`+*kwK4akbVz2^j<~Pg+_~S-y=RU-hd7@?-)a2}?~{z`k&y?T z66Tc|>95qe?=z}iNS_40SF&U1l#Pv>w5p$I4ASvl{58=2OgIyzeqoff$gW|E`|2n5 z%th!IscuQvt$GTYa8yT(KjKn((g!a&Ou7Hh7~K}?Y6E?b+|^bspVuo<+Nk5`jeNtc zaqZ4MJC`BOQP#Nn@So_|shW(%)_S0kv24*WANz^U&l)w8ZG|QQmS_{x%vO zmmlPv_2=%hr#|VO_1rRaywK~Ziq_507nu8Rb?-mJvdr&0xyRvA+D5XIv)cl>)i+ib zk;&&Zv@aj^S-u>+T#dY2V&qbLh~lScU$$>Hl2^@}l8!lSx~ zKH1zg-VVLB7M^v_2mPh3OFU<@+~G^VVBQHutMja|=nt11a%p_dm5tIEmdzhgHoxL{ z#xKBw9MWMtT^(D!L)9mxgZ_I~_pScA^WPEp59^3@S;PBveO`w=e4F63<{=tq?xk*w z^3%AQVXx`;o9Oo=;>l89q$8}nX)HWx^m+9zugj~9J7=!sx!yhNU7mH%Nxo7JtnX)3 ze(82ioBkSk_F}h7kG_8;S<`1nrBA3afZF4~iEUmabp-yb+9B_nXiWO_=!3cZis&=d zkJeL1Og$)+>v1x)f5rC^QMPcBZ&k2P!aFvH&S=5vE$cm_F^8{5>LVC8WPF^%PWE0` z7HQd~%l>i4(|!S-KZNI_j;HwoJgN_Ml$GWrVVl;wBUYO(l-hJn*0;^`+jLA`sSnrp zF~WAO^y#i@wN=LAjQK`pYohgwsdH7d%f*btto|+K$-6C6ilfy28E2|}nYya>pthv2 zeB0HyM|C=>&y<~)r`4tZj7z`H*!EM_z7MUY?0h(3*?a#N>kIyb_t$kUjwgaR!v05b z%#qJO=J>V+e4!q>bi{9WJiZM|-Y_hkX~;RAr9n7h8&rHc({O?^)wpW|Ki>v(8i(R; zbaTlkQ~$_&^|8u_bUym?9;!d8zp;xmBELV0Y)L-i*Yo}&^-1$0ooQ&~%z=4l6DMUp zqdU^;+*n0r2`j?|&M@fxAEVQ$F$FyJ0gvvb_HJ3+vZ=9-{Jxp#(i!Oa()B5qE;Fv` zesb{~i56QDMiNDJNf( zFe!J>qcb@LcFaw@aS})8~O6!Gq%F{YV`nvh$`NjP1 z;HP&LMf?LXcM{7FGQJP|fa81c2OOXBQa_m@KmTkjz7PNCw4&kn#&HaeIMj!+nKMLJ zW3lw=-k8gK-Xp$({iyg2_n@7`x69uvKLzLKUWa!%^!wB!JvWt>i#DTkw0>peuHB7! zjE>#$SnMF?5^aWF%{8P|7ft*=tNd0cD0e(Mtwj_zI}oJha9c*`HElRPgQvj713inHhB`| zs?YJve8QR9=<_@^coO%$JnQ{$O>OjZJmeiERt zDEVFxF9|&8=%b+SCieODr_j<}^E3-HMt{ZAuR-hHGEY~K?&Hw;3N^RrY5YQT@h&~m>*OF|;S^j)L z?}18A_q^Pl72&`vMECsXgD5qQOy8sT$0_%3rs$az z{d$T{>sB`;ZO@KdZ%EO%rsz9T^x71Ce~R9cqK8uSr&9EjDSCg3K9Hh+D@A`bMgLxk z{^Jz=^%VUVDf(|y^gpENs-$nQ`L{SlUz4J5OVMjm^v6>4$5ZrArs&V6=$}i`zmlTA znxg+OMZc7yS*S>i>f_(1=+e0rn|^&~-5c>Yr0930=$lgX$`q};-MmqFLn-Eau0YrD~8wtY2_*xrxQ_u$r0ae8Q=w@XeMws241=Aqs`Bds z0ljgn8~{yk4d9sgF@-KKwS`ggmHY{#Z9X?@FgTC>}PC>8cl zy7F5O#bWMA^r9Mt{X`U(Dq>rfv(YK7y?v#$5`CC-NatFXJAn^`4KuMMW58py$XrGl z27r*s)^**z<^yY`bkEf=16xOoDm$MFTt3*} zThfTEmmY0b@!jlg`%8~TAMB@^C$0PKlgx#^mWURCk%RXOHx{U~X|0R{=B!xQ%QWls= zg(<_reRt@vh-#0m@K$_hZ7PtFEpmbeby{`4XJl}hIbSgn<>|Ao;NQ!j&IxF|Cw=;A z-pe`{&>(DQye3@5*h)eOVC+Pj6^9e5t8(C)oo7NK#{diL+d!)kq z7?V4Cqoa$CHs?Wb-zS>M$P3^VKhE9pLI%c1g!dD#@FQe4uY{(LlFvf;+JqYkU-%QO z`wBni&Vj6A>?yh{iYA5K>^};77}E>kJ0aXe`7y>8E_Jxtp~mV}?`90@Q0GHLcRTEL z_ypLrnQ(=@%n5{jgv*do;Wh{<_gJ`vc!b1X5N<_Y;Wp;_!hYlyew^|YK7ic90m2n- zXFMz<-1<6;Ixo^R$Q@^nE;`h?5Xn2{aNMEJiOBv5hcAQ5*E2%$wTVqWg`X3WZ*4;I zty4&T_X^4HqHu`tg{#mX5*DcsLj0d|7&FHZt+|NeZE=`$*y^y&VK>;sv3U!6ul}W{?~-0KfV+so)#hYt-=oSSGbk%ocr?*k2`$Lq2@l4ui9aq!+M8V zhs|KqFzr)FyxWAtyUV%n7fm~ua(KewIU#a1&{pLyFT|g|^=ZmU^cw1s!$il8-{lzEP;UCZrC>!W-rykalnAhKxZJqbrrSWOSG`sBfZpjeqeWMs&5K=@yOY4#JX!;*z>3Ucs|5Q(kizH;QO>^0zIEF$cE?)e0j>9W)tQ4 zDZN>KRFSgqTBxfNKGSgX;rZA8d3UCv#db?>8H=UMbNq{!<#M;Sa$8#K?QILbGwpQ= z66m*Oky86hx{J4hy%zE%qkF3m-{_TTPss0;MA2h&=$7$Do~)966g_EmRoG+Do?n!E zY){GC>0)#w#Tr^wUVV=CnBUWo49tz+Lx`c6yO%Q0~k3Ma`=vybNY!kV>lP=`4I(X=aSY4+q`!JGMdnnfsMmBHn zVo@6~cW?#Y9jOk!J0g8M+!s?$l$_P?(;gQ4uO^O4@~@)X>p^(^Gj#k5_TDn>S=G6` zY05pSJ@3<|Ex7z?;_kP^&hfR)!`C(sU*|l0odI7x;Yqhb`*CeiDQ=ZTg~>m=FQqyl zow4NJHlCHgP3WzevZ0=kPkg`D?%8W!H;TB^2p+i;miY!zjXrT10F>68t)1#!vwckdtFK&|Q1(Gh zwyFJ0P-jkF3 z+W09R@1}6*$D-Z*(r#Fp{)XhX5Lyk80L9|-&=5BD!Os_`@2!4a`fiSyrW0;Li+{`EhDB8&e%I|x;^RK z2LigDXO){Z*8ee2!vD_XSr3<(aoF+1&hkq)$Qm18eLzc|T>-85#sXUI69Fyvy#X!v z=K@;p2Lf8|n)6#@<3AkGa@W{8bk`W$({i5zp5|HohZY~(SL9{U@yP$XgCdik zT#EiN=;PS0;3xj{_o1{8=Z*aLL96~NKgF**gqHGC|1SE|JP+{G`$Y7UJdXwRmv~nF z_wK*Rv+BF2f0t*~Z%?Z(>*s0hYpMRKd=!5A&Y*w7P4!oKAa{Ka${WeA`JXqUHSg1X z?XUAJ{%ce2x2NcQie8hVbvL{>3cou=n-zGi3-Wep=8Ml-^52x~B=80)?ASEWznN8W zRvjPg8s%HVe*H7BD6KOFmU{Q3$$sNMU_Z~IXUEPU3hQjwTf3Z7Nh0StkxFRO$;t0 z;+b(p|CWdS0(-CoubcVV9dP`P?GCm~?)y*|<+6G$tNh@dC95c={^`yfwQb#1vjM!~ zR{Q>}y4s$lxT1~vkG*L1%eouqu#h#HW3sQOy@}>doHGv9UtjTKtUG{mFMx92;Bcqh ziD#GG6|QLFnQ-)^bAQg!FF1F-=fr>1x$C_q`h;_zcJynaJM7wz+_i?IwQ%V=G~Gjg zFJuj=LrCJa)~!2$v}de4ehxeLGr|wCmL!C4DepP0d36Za(sn_mkH4sr360uwWg&`U zM>ji~tTpZ=(YPa;p;tS4qocbWU3B!QqsJYs_maZj=ji>yd(p{o^g-u7<>(`he#y}< zJNlHP&p7&=qv_tF%5|heNO~F^-Rx-f<8rSPKMPuo&Ywvqbc<;6+ow10_)L1SM|2ae zNiY1pj(@<}j|mz0oAiMuJ$}Iqw~HBqR1(V8*m@}=Z>rrxdX25{LzF2V0pnkMN+Tj0 z+6R%opHy+lq}SLk#HW0bpD?@@9|-ndz8udQIpq1t>|<^3EGYSE_<8wO@f?PyJ&i-y zdE>)diA5OR?yPCbqOCB@yLwvBTvL`jQAF^W_J~JW5Rm^eRx8eY+_!3FGrYKBBi@C>CJ-56JHiQ zMz3DVI$+?@ho_ftZ(nhEp=)-_xb{tJc<}m;ma_%#l#n-HxD zL-q}<-{>rr+)I3%J9752)BWLZh573LSNAm3tAZrP*9>d1kb4zW_hi(!nQ^3{>_64T zn^N?O6wPZWG2-8rQ1sV4Ka`@)$k9|?l7p^52DGjcW2uG)lTqWYL77SAQW_MCP)925FX;`w4`zP?_0 z>y7XG(tZ8wv~S6xwy#nY-+X=jG3-O*OFZ4zUx+VEZ;9_U{R@nb z_ipUMK2m%O=_B7o0Qb)mp27{fI`hp>38ERP@<#chdX?@YcjD>O*n8vUQyw{xAq^=A1Vo2r#5>P^ndEp)ZZO) z=UTm+DVO}B%o&ATSd`HiC^}x7(by-NuFYty!`m^F7iMcStA%H4GaHS4U1q@8*JU(@ zjf#sh8oNft+RUVIVo^q8)+kq-IU>y0W?m8&YBR42yK6HVqehd9GDgqx;G&F~cXltz z#441@+DwaZjQE8UwV8s@nJu=MG%n|SeiUs7n?TxBMs@7tpz3%LTn+Yt-5~Gn%qaK( zxEt&T_k*liW)6Xa;1ST9O+CHwgYiQ>13UVnO@pyj-ij$@ZXk!Y4=|TGK=%*gr@uGu z?cd6mZ)0->xwi}Yp2+Fj#btIwy*mbWjKrfuL-9b*@K$7x28RNcm`(}1#7}Hg(@@(h z$@5@5I5Zlw^18h*(j-b>?2Y?J;(@*q0^Zg$$iF_Q!L6g);-M|E)@Zrag5FxrnIm%F$fuk+e#4CUrx$=r>3oSTG5EdNpxxzL&LbUYmijcR}S7n=o{}8_xe0 z=W3)r%K%=*o;@8_}XxLeoSUsEK*L^|i zA9asltHV54MN;*?t0cqKp9&iss$Uh|?6Ae5{L6lYL#0`?`deYA!;KDm9jYD3ebnJD zhvN>PaJbjueuvLFeBR+c*fyt4$nEPrW#3}dWUAt54}(`-#Dy2 z@LcVl)8jDdx5c>C^CRjDj>C5178>!&T+gqLpP#>7h_4kM`3d=A9|-ndKGj`~b@KdV z#*t5B0m;YIF_BMclXpKy-UrbgyqguC+}AtwZ9?}}tL}Lt9{n~t^!BkA$XSR-W`JKf z{u7__z#Gq}Ht*9aw|n5*<(WXwCk(_kXNz)JGBh`BRbr^kq{n}nn@bjNe0b{C>C^ob z`J&^$+jGkp8OmJz-lmo-O>D{d?`@1y^*yj(x|g%k@gK~-##}k(yLb)Jy2VXB=4`$6 zI5Mwk{>nGMbgxU4XU=Y}>Ar&; z`VQW{A$V>Io(sWqXYkw-JV(S^H8wfZPTYKpf$#Z!@TArSRy*B_OJZ~*81qVZ!N`C< z!w`H&u6=fHHERUbxm72>Q1Qt0Rm)gcK&PZ)a@EOR{8mOEnXQr?{;Tj$7*B1(z9RPs z$2ulwHt>8f$6ZWQR*$2SaL!Ic=bo6Z$o|aqFI_b`6T|ZuVQkFqnQM;s7=4sX{4>)_ zv6n7LMKpF&yp?0bK|CF#s~g@GxVLrhnH$LOnadvJTXq$cANoI%UuCp-XlUk_Hz5;g zc^_%f9Y}YBMahF~(%on!44>ZR711lL6VJ?1b~E}`o$jtUp11le)$q$sZkGQev()jg z=5rfJ>!T;XldC$ZdXUd`a2H0jBqq-?@KWVZN4c+;@l@niYAC;?B3^g$|M|{$u8R($ zYsA{i!~}OiAdkwTn)FQo*aUH1L*3hp+e^6V8<%q1i+zm!KI~t{p6_59`+eAJ z{b)b-C$O(}_WQAKzZ9_+qc))Xk1F!Eu1bF?q8_|i z^;Pvx^-lFq_0IGi#P8+oMjoX_Zdyb1_8-B%7W-Q4Re!yGC-x1Lop>v7_x5YBZ&vt~EUSAKk&?->4SL-#YLU-EsU^860?3wg>z;RoTYz+SZUz1m}&*Wzaz$;i`0 z+&<1_*mV+i8}X`qBh~{r=Ic^Lkf+VmC-p0N<%jy;jQW~Ab6dEBLiH-_`;@j%p@-In4ADgC-nvcH zy)}fXbe(l~_IxTkIXg%l^Y?Kmz5g$J?*m;|b=~>jC&|*YP&|)XX%$9HuR#Jq1bKi+ z+=){jK?IW+@&Zocw9fe1mO&1}e%Nwi@^jl~TgC?L@N8soKz1IOB>ZbeZRuLHL#JvX z0TQcAozfXihhKZ2#QpIn^!L-WtQpOelHcch?m17_7kf}UT^ZJD&eGGq`<#9E+2`Lr z`~11*xH>33*|zoo_pTiXpMHnEZ^)-Kw;;PWTB&{Z{5{XWO`Pm>^vAY6H%Xa_3AZ_SC_z5q{2}dnKE*qesKu3iKt; zJcN(-DT=?ln^a}s_Tnjj_%?U>I`V<3_a`o=dAPRTo&~o8T<~yr^VvPy7(L59nv@I zU(k=7_4vUqi+iQrAN1{Ws$8kx4Xx(%)laF9Q#|;qKD;r0;=~CQzp;P1bLCKHymjS< z!(3Usx%;$){wzx0(q6{w8HbG6>=BX{=4<7hY-my=2F>UHNy7G5!M|SmLZG@FR%^q0t zwk}&qX--i2CV2-g{1*M3vk$&B?d2=gYfPN^>4l|A_1Ae;|EPDBXA5{wHqguPlq^xY z@>A;xb8@%B?;>zlw;W{6MQ3P5^{p_MpR)g)e^2arY3y0HT?c&mB%(Pzs`UTr^f=Eg zIX$nO{vprmmnEmt-kv@1y9-FaY`q0BdDVvyW@JADf3<-Qo3Cm!*P?&CVlchxLv!b3 z<}dhGl<(e`stk?KYQx@9-o4CwOKq5J5!GX_RH^+?2mEBUDhk)gG6fVve-|0Q)! zVfDzQvRMGF{B>rJ^ihR8`v&$@0K5~Za@3u$(xqOdV)m!6=;HiN%TM9lmra<~(a3Z3 zSBEcsWaB3vf0H)q%0u;WSIYZ+$*(+@&FI@Q@J*TJryqiT7CT&eU;CAN`~zXpKQPsu z$4)C@1Lv@tOGm>j{vAc^j2vwcqv?Upl8DrVqQUe-?lG zr<$HTC+4rX9RGIwr3>4jPm>4E|L5`7`DR9+SEBw=Ym?gdExXszG1fNys>81`Ht-jx zxnKBk`RN_vJ868w9ph(p=Q)dzypwKGxnD!sHIq)mXLPO|>N|)lChAdZY#}Is*Jbwv>f5DT z`~bPK_fA2xSYx#k{A5c?cjYN}$)Pgt%2EF1qv4{eN#}HTiMm04wUnZ|y*fA$_WB3H zm7@p3{sLpBA~pc>A$zS1PLPLApZzt@=1jdpg>eLS9(f`=_vOr7`7|;f`9tVdA&c}V zcV1V2;CYYtfqVX+g{#JnhP%20+V6^~hk>5|Y?$)@?A3fhedn&}l>h9j(zPw*U!y-) zmXE`8Mm$KTvxj{6ufWfh?=#r*8dEskD?V{urnDvPXY~{EPukDlz+bvgV~1rK*&&e* zY#!YcNdL-~b@`OFae9Ty@y251A=<_7JKNgJ{ujz)ZY=0!e`LmjIe4mFqjTSQud$%X zbK;jgs`JYCc%G}xtwUbvMYWX%__{n4cIV?3lomKLeg#G|tH zJkANVvc~n}h0uwQ!qjG!Cdc<&!dAjV@ipNePmgqn{5oQB%C>fOX(i<=+gf#r_Ef9) z*bzVc0DYI*>}nH+o+Uq253m!cjyKAFGIdAwK<(bi^EK&^5^1W;>5z|N7b{%-#N^-4 zJ^wk+>1^dsKgOBKZN#NC)O-7a0&$9-uxb|lqdqro_hOeU_TTwQ^EUWS6QA0FWa>rc zUY=FwdXZIfE#&{i)kPWLU%9i`uhBnMw6~Y>pRp}!VXll?2+I&AKCYfPn=C_^c*!P{{IUtKyNylZb5^M2R$u=%-{0GYyZA!@l>%=-(vlEUi>EM{EEFhdqUqfjbW!zX3f;K+eo*@ zIq~vpDMn@aB4y+9^)br&h~6bnhk<%mJc_4y-z!G-==XTv=^W*+;?P)hQ* zGZUwY?@Kh5x}Ko-#~Rt@zO{pE`8349i&;{+uA_7#x?N&-QOTICf3auvBX@xS*4is&^lY(X)_fg=8zoubH<8ZF`HD@Y~I8bbl0yL*xJAGCgUA#V_Uy= zU?AF3zwY+I4J;XRO>VE*nsmW%x zx#6Kba$noLrB4jj_8D;N+O4-lXYJsp1DocAxBb=x`td!~;f*|3Q-j83{4 zuXcGbgte%(0|wllRRfI93_^UH0Zuk^UD2s`{<+JJW0w?P$0r9HzrMj+vu5pvwd*#n z*|t%FYGE%~R+pMAgx-~myGNLe-n`y@oM5C-0xV$-kMjQ7O&d)H&y~jKi}W)aV#V{R zjhogE#3kjPB&vzhKS;gPJ%C#GZAX{y6J&v5SP+G+w$;vL%A*!OW#O2GjFU|Gq=m0o zIAfvKe%qM{@dZD`mM}pUPP9*}oyF{|Ao1rcd`b}Gb<)D6bQbMrv%V|H84mjeSu7tG z^x4}k2tS?aDEOw}681+f0K%sz$ou;QiN7LvPPEs${anty5Z-~XbT{%h_Y8NkA3^we z>}MB5ew{DVem?sREZis9#Ww?j$n~-y@xLW_0k#RGx52evV+Hz8_dc%@Wc7APkjbmEAaXw=NJnbUiy>U+!RVWhK0)~O3sPTXubKKI zNWCcwQg22qH0Q&BKV|VT3r|?siVhY(b3P2|lulOuv^6M3(p6c5K@qI>+`VTDTabF*D@Z+GZT*Xa)bk^P$_GK@e@c*i zpRn*1!7k#bPDrj^LFDKY`~>Yw@WZr6!CyvC2qM>Og0yd?LG(R>A0ZzEvl{J0_$rI{ zS$x3aj|fsu8FZ4`QQpFmApB%^s{U3ieA2>E3!f6CZari1F$-U?kQ|zqqe^)xel%<2 zdiZ|=9?qd|j7#pz>7h(!38ea&_eDpO^T=|8*8`2CZpNMBk|Rq`+Lz;{Oa_Q z9CS`5q3)TiG<28B6W0Kps;hINQ{2~BD86!PI~0G-iAKM?g)X4?H1ZW7Ag#qXozmu< zOE1+-bTzjbezlkIb##KYwDKH4r!&oH#@KLCdNV-O)=B&(XcK+07ac#ljdI@mZ7#X| z(xtv}@4eq97iE5Jzm4ui?dA?8o$t}j{Xx2u%8dPU%z0v-oBO7&{DapPv&LlR9*X%X z>RYq!t6wGYiR=nezT}^Rhs^_pYp$k&alQEI9vR&sBmTPA zD?VQ>UNlj2=LUB#MRK#p=TDK3Im78jWYk=Y_@t1btuVwLY381$H#~5y9hh|G^HYDx zJIuxXv;KBQx@69|8XWn|=i3>&9^-Pns_~9=n{#S2sM(qmet8Xx#;aE)@XsXhFDCGR zlfVZO_}3D+v60!+9PMM(u2qIQ8@6D}nv*{;)t#NpBUbv?H*DD~1Afa|jwj{c&1Tf% zjQ03w!;X5swvmnEHw~<1yX&0YugBPNm&hc2r*Ce01At6cfZk589EoK8P7}hK|1rXA0p{Ok&EtBeNcSd z4T+%@l%5tnY>Yb{U6xSs7nBp7^3XYj>4!O1lzi!MlXlEpbkm+Uj1 zC*Vtt2Fhk7j+HsTHj~h%V(t z-}7{H)|c+xR38#Q15Eu<54yaAJ%(N;m~LRLPWrdO%`dagq`o1;8CBiTNfyZwkHg8L zb(b!Gh_#fcpXjkNo^DS_t4o80t(m#=$99n>$>HKwUq3^hJat=iK3Y@pp1>ndv_`U& z_eEdBLq28m zLmvb`^W54y`DxM9A2;h=rC0ANy?S41ckfca&T?x4SghvkuNj+%^4DF0%EwvyR+W>= z1^+YOqR;y>vTN@Bgq?f8nYs5*kv_Lai90jjSPrgp-pjPte)^4%S>BrW7k}}-((;z<>_e*EH6X zy?$0_r!~wReMLN4sNdSpqxkE_lsAFyTAgkgWABYWPCk{V7G+DHe3td&GdeW-*RX5!pDCDTB zUMaJr99Y5yd+_OM*7xQyRQ<7eV1X%Euj zsE!vEpMCaLk!N3A>{VDRH}B`CuLG(av=2aQv97EX2Sfd4bN?LAsG?@WyPTi8if7$x zDVnVFr+rB#@k*|zG9)+tGkbN$o!+}~`hQaIlrLUcwj#d@zY=orzT%e0zxX>Zh@Snt>9O($y|JB)RBo7V$?%-n z#WVZce4g3ACS5$Mx)iAXe2((^H}xrdXI(q_*fJK?D@N}+;+6XeqdG_W>luntC%7XS zIqH$IE>HT9OXG<}UX)+y;t+g4Prm>!t6y94^813hqd8;!GKJ_2##wZe+N5C0LdDS< zJM)pdUO(t%cNy8u`HsZf>Xk#}uBwjIA&c6CkqxMFYt8L3aiR}RU6Nm0VGr$?^+X$& zpx*f#$`${r@OIi*D)Vf$JyQymSM7?2hGU*h*zQ_bmN5CJf$)DLu^y;yd%aOP?}xjL z-pA{JnzxNyavgAinbVLh>%ujzc!|p8a7<=%uDQc)fB~mk7d$zf5o64~dt8&Qoef6+ zZN@R3F?w{CIh#UZX&a7?GB&*W8;yHD19VRGUv>yk_-zUN&IEpc0zVF}{5Zi+{C_(U zK9<1$Qv&~g6Zrp3;C$y$bCRz;fnS)wuLKV$50`$v^YC5+@8w;|w-UU&9&KXrFDKsL zn83fD!0!g%$NP?d@(!Kv5nhgk^Q}|0GTu%5i3!*WL;`=1{E8rDm5w1IT^c@?z*x;+dE8qo-Zv^+K zwvt`+w}WTEWv2??2i_hFzYn|{+~wbQz&1+`lMQ$$YG#IjzL330A^ zPcgX|w-x#B^`__>Sgp!2+TXP8R(p{PH>AXGq==3Y<4Tha>j$GXJaN*>q>J7rE$$@} z36LO(dqrHbd4S zb_imSj9Pq55KHF;K_)9F1b=~cZDC;HYZlH}*g$*NT7>!_&GGjLXU>1QAd?)c1!;^s z1eu&H3$iw$bIr5{^nxJk2W@J1zCEW5m=nH)`3dVkY~j-uz92}v>dO?b)*uC6w(u3; z*~}w1pqrG=rGj)m1A*w7{J4VOk6x8f9P~ahoI(V&Sv1Kd26kS_!vZ5 z6X~|lta*a>31=X>!}^;wPyC-0&P4tzf|uDfPvBb?f7`-_1yOj5U=M3A(qYi$E!4Ne z!k@En(!!;r`E2BzuRGNm$uf92hd9P1=ciu6aFCA2NJLAXetxPL<0VF-mD8M%bST+q z-0A4ZGV=~uR->bsYfkcs=M@%;UTz=pc14fozi9MZZlUqypVn^U&dIk5Ph=~)Fwse7 z=NuhPrbPk8h?=!pJp>_x{<^H}Ol z+(cIGteMMBeTM#Jmt^NXkJYO}P0V9y&Soed&Dku--xGL@5j1YeV*hKua+@EGw>59W zG-1?`i(brAu^5*QNGdrHLtG zvv!hoejax&L#H{GXk2@8+BDy#@sDUeZfV@T-Y#vwahkN1kSj`CG#-+S{hae78O>Qg z`AYR#cxsHLxhoSta}HEJO75_k&&u04H9qqgr#X36;2*zdV5gNqJj}d;mAilpz8#PG zjNQaXW3vwH*Aeq;uzn3OKaJtcST5$LxgGhn#QZYWFB9|ASX6YaF~2tJ*B0~BSW3$NUmwOVgCrljirs`EKu*J*H6|RHn$K%-MnE2r)RzA~CnX)Y&67 zpNRgY7%qO3F`PDK&Owg6qI0zeor1IR&BSoMuknSWcTa*En~L9@qvMRZckel+!;CrY zQN_G5PHB+s-(hh9>1NjlIXtHa>lD7iAwc23!cV+%{KQZFg3>=?@ohloM8Df1K;d`s zQ-07@nD>tYWjAfN_$W~M;liHP8-(P^2V&QLsYdq${ z-vO5$=;Zr3o=0Ng=kfe#EPNTyqp@)9;d~|*eiP5n#lp>4&T59lU{1cq(m&?BHeDp)iwWBiq) z&1(GBCy0U?5^Te=0cw0RY~eFDd;)kjbke&DpOrtxdkbwv_x{<)Zni2QR?cO|rYrcTTG+{mEqyO*yl!p#l}q(~alT4B`(b2PTl>0bVaYW;PH3h`?%!Pw}>tN@JZh){}Hl%|4gl0f3C`T6Azg)WPF!D`RU)&n&D{l?Q3I( zwMxQt9)y$qw`{oh>wD~ExV~R&hdz~EtaFZ1pC+HRcOjG4n)~Oc*^|=TicH$WrnTS< zb)cchx5C6}#yIfRI%x))#%!f}Ib#LYjeBjp8cRwZ$rj)Hb~oWFBgrILGoRgDedLps zD(6?cVZOy9F1Mzya=tlU&a4R^fNqrWtEmrm94oq;5_Ft#@kZIw?T^uINYLF5ozkf9 zX!R|o*{eqyRd2M1uhEb83%Y#$RpkEx@A%%(R1e|lM7i!FRMMrl7e_OKAYiKpnwS?wS?6CuU99jp&8UICkQUTyF5)9ZL{ zvCnIG&e-SGJR3fYTXXK&yCdSAzt6lYz76=XXND$OS-jWLv8H`C-^Kgcp{XwNM0w-+ zdgn&IiRIgH=v1!4KgYAv1KLkw;;cln>l`xS`YvDJK0~i_HR{>NK$E6zWp~$$htA;W zq3*f$SC9JAfgkPMu4(6|uO$4xW*J)}Pg_r<18zy^07vi6cyQ+>89kwIs`JdH6qu(d zvmQ(xC|Q0dE{pgT#gFekC9~>hlz$cWEJV+0NAh#}M0*t+ZI9I}j=$>I|3e*cG7s1| zk}|7}h=q=kz+vTUJk4kIY?|1Oicgo6N`lsgZB4?u% z_3i!K9@+1z95cgwlRs?oTDqj69PO1cX{U^or&@3B=G|k&y)Yl;-M{5oVR2n1{4nvl zceU46e$1gndqt=-DQ~e^SMNez*LD_WZC(@K9^O~_(05hoL&xhkY#Md`Q{11nYv@I% z@5=SPv}o8*P_0L2Dt^af6SUHAtz*(}tEV@Tezjd6Kk2uIx&yDNkC0xHPHRT4Wmc!H z;a&Ob+#lJ(Tp|Joj$)UQ^%=_jT4&mcdV zh|{G7d#bsOvQxWMTU4EtY%csl!W)=FlYWlB*J1tR<+i}=8G;XKR@-wtn9esmOk2la z{Pj(|3ukT?^YOkK-UROFkA{E4ci8Vr%Wv5|ATj#CrGAM1JnE95>i36Yb?oPPR=vAb z;iOUe*~mbCNH1%Dj&zfg=fCkSI`!|3G{)E%nq@V=9)8lXvLiHSroB(nJzn|V@T17v zl6{c!ym6YTe)L%MjLq7NPOR2dY+mFnEV#T`IW61dRJzP7RjOB^tE8J36f0+bLUDKx zMlzCz(ut~LPG&!**L-W+m^M#dI9-I!pKjs|JGu;WZh_u)Je;0#I!U_9otNbF$q9Rg zm-udo^QEpjTJcf4adQ1<>Z^Fh{n+Ev9M>P%zSIxt0GmGYRk+&yiIZ^Z#m_^J#us8^P%-vuodG`bj?9Z#w;2$4@iSAua%wjGv zpKFFL>k0pCal@t?Z(QLs%JwyK-`t1i`(gi3{EEr<*_qp#Uz>B$Jg#t+iSCya)KB9| z;pYPB2h3Wk@Jo0etmmI`DG%Ez=9o%WDKE@k$X3-4PH@zeYI*3pGa9)0uZ@T)DZ zHC`9r2^zZ#7yU~yT>NyeP2{3^W*ScoSNK~oT<_1uaE0rx`p8kSV@~tV3ZHWeJooK{ zs;JINxDBZ1Xs&@o#+>G*Pkx_XD(2>M=J>7{y~g;AXKPOQw`y242k@N){#yzB4-@#0 z68N7b@F0QzIDsekMAgNzQ1YFb!2e|eKQDn_l)!&Efqy=MuT9{Z>vB%dn{}Lp*NUaP!*1 zjbAkzg0|VS12pB!1shyBY`o`AG*G~;+XlqN9y(xWhcB(28c>s6)5O|BWiK6c7d!B( znLuWj6OXYA2bCuxa%uXoW!a29g{sR!5xrb(_&9WuyRIXDk{C| zio zF>7do&}(f*^1NwbD}9D=&9Q1PPM=_wc!2d-F+&z=Pmgfz=@EPqsPsN%;ah@I!VQtX z>~n>837$*7S-fcBb_*XBT*BTZK?Xb+F;RXAVzAFxsBejdccc0xZ;v3IVos2JT`ov? z-ojND4hup*BG}28!Qw9o65neUwlsp1zgfY{$#+2p4+GY}B=|AU?0Z!HJS}`Fd%7$P z1WCu+f=sHdq6<>K4+>H~+Djw($`&56uwvn(g1rBNAm#X)AmyipImOc|_^(O7;Kx}b z6eN7LU>ETS^8S8{zbv>cvH?_HGvI=6S*UZ4gfC?>Tji9qaJhvgLHL<-5Xh&eg_Dmb z1j)yj1WC`!7QSL(2A-np66C#Q7OoKN^1Ol|`D)HfpkA1B63Ew4`IE0N2$J5w!Wlv2 zNTaKjuYH2#Ye|rNEej&YGlHa7HjL7x^AH4Ov(z(JF55&*ZPeD01Tlk+0i6 z3y7b>Z?sT+R z9GxJlvF3^&;1S^k{OIwNYd|_r;um8tI)3WJit1eP&vl(K&h=7uOZ+7?trl%aYAcLnD8Mo3ShY)W_yWlK$-7BJF3nc?d6e zARJ_#p^kZm9n85mFyGr=d-;HV`sCK0#TG@*Ck-pP|n1 ztK)YD-_B&ogVuaGY+)W~J?YUpm(To{XV#@YSN#lrw}8LJoC)_CRIdZqxrusaze(*| z#T;`TUnb1WDZF6l^VL-`zY7=Tr&ogS%SQ9okJ@>d?c~o_$e-H$4)X+bk8kK+1=>I} zs_cilcj1?bk98R{ccAz*m*nCb1c$DMe-fOosfI7L@?>LvlBYX{w_BR?V}32x54GQX zpOyP<@|!u!=~Kx~yLsa$e7l8eVmpcUzU?7z4@_lQN6cmac)G&e8uh(7wd_AkqjJv@ zO+$=EcR(oI-0fh)-TNxfxo7Sw$j$K@A{c!|B5`H|4i z>3)l7J*0v4PSga+M`o=P?EHh*TKPVYZ~mAUV?Hp?8VmD8n(xs%n&{N#9BnerjGehPhkCBJ*B)jt$=un*bKN8d~;j~d2y6CUN2?#)!*2o4~}AV1RfQ*oxx zwf8F8Pc+Oh-EARSb6ezl65XwRUSj?;>bB`X-gk4ITQ*<(PdwdeY%W(g|CqB>WgpGC zl(CTvj(*kr;yEC%)d*5vXYE-JP3G(s>Y;T_<{slYyRgaFUvom*`A~TGQmGvO4mzsH z@eLafvQr}$y{|EDJP42KWy<>^_|xF~f#SD8;V6!0EdDj1hvIFsxYE-K9=Vi} zuPuh}BS3f`(8;$w7Owo-5yS7Z_;8F~W75b){4+89I|K+T(z$z4%{{4jT{h=sw}{r*m`$fO%xT6sdQH%6V*hE4#LR})FuTXHhMUPZ zq|)S@4&pS^X=d(o-R)+ptvvIex%x|H{?f?DH<=sV`Jd)$-;-xF?SY@>BvDP!#rC)w z*_lL~yJ>vGSBqLGZk2Y-+xx6OJN$ zR1hQnX^X#P@z;R$>Bx4iXAWjYI990Yx8?~~S!m`D!H0!k2p{YJf`yY7zGk83%k{pQ zM+EwH5xzo@_szT^FpJKtU&K6*g*gicftsH&^Mu{#ev5aYQ#EhZC&)aGnFnOv(S74* z<^vfhJ*99a6HW+T#(a=q5A!(IKSL8ao57HDu;R}GHLoNcEBuJ?Eb$BS{?mdVW4;P_ zHktmmaO9Vc6@52Q?@NaYCriCL2FWdg?RGwh0g%!E7ATRX` z!fU?nRP#kgV(*h|Ram?MBmy|_x;;U~8m4D(NPap9%o3TE8ltzUqPhEPF z{M`42or$zM;3(|*L-{FnZq%d9!!SJbdbzerCyr|>?0;{KP+L|NjvG9Qh@_3XcpRQ!`m!cebmnvm*DebMl3=4`r;?5X`wt%t;tE zA49EozUq#6H&$hB!8;1Sspx(3+Rv`p%F_J+%f~#L)pMXRJ>?OZd?y`}k2J;*HplnJ zWwMcKO2OPFAE#PFTsY;S&c5^o={$M`u@mxw*bO4mSrCJQ*cB=leG@byNFVvAAjZW@ zg4h+W0PE><-VzR9^PM4lyU0p?i_{|sUyWPDccmbFjhzSI?ZVO6LxS)f6@>2?P<-d> zPGy%o2M^~O>_gHn(b#sBux5TD7ad)rm$XY}W4s79w1P>yVz;w?|7q+7p=(^SDRdj#X=RL^JaT-C5=b z`Ibm$H+M5{o*o+sbyw(5xeprLuzk?G*c|F}@w%;B|M8a#xqMWW#hY z%4DvTBOmn_aaV6z$DEJO{6Zxdr~X~~Q|(L74mbML6tI~dkRo-vko2q&`=zL1Gp~P& zL+N%yg&v-hZApxl@Dm;N-?$YPI^go|d_2_V-;1sr8olG%rudzzZ8F?5bO7U|OXJSP zdo`Z%wkf*#w9Rip_xTt@$4@X`!qUm3{L~ipJ6+p+gcliN)|}&~w)xd9H@T+izt@`Z z(o3z0KaaMlIB_SpO}>R_`Dfl9rAOzSD~ZTwKJ8KVpWI39PlXt7es+#3qI~cFr)qEF z@0{wD+!B70*tMe^&vEBclWcFfI1$f|F4^8hH=p(v@3+L-@k_Qh(aop5-3#4(+S_Z; zRrtMEd)tRV?a(>r=>N3BL6+33zW`J$q^X}vQb->Z-6xqRuo&&GNtGHz;ZM&GV8!)wk) z(iv1K<~uYuLaUF~sF^FmCYhU$BFxR9Xii9L%nR`QJJ$Mjb}ruq)@u*L&t0*ZyF9L& zI(})T`YDr4_NnA6)$`0;7I)YeE7gz4Kl`WQM_9A>d9H(>nI9_5#lb8jdlO0l!@0BC zcYcfY@X}PebWfoD9IrCBW9Zor!Sr%-6Mn)!!W>S@yJJf8NR8R&US%X^_EZ!~eI3ZG(2f38m7lRm>aRZ5@Esd^s%wRt%5;YGhvPi{3U-0>+xFS$i8+COzN zLC>Cuv;GWR-*R_)@XA)IyU5=wEsgm61#$i%@@hV9Is0csCz`9Ear0>^3(l8*<8}NT zuXKW!()K(wtyH3?DA9fVmhy9RZ)Tnh8kK>`BjQjwO9tU7zC~t4%QyaB^9$@(s245! z6~_GN4p{9uIY((HjiPsXsd>0Y%i{>|HNZ#j?c=>VFT=U*Lv`Y%cf^BXbnW}G1wM0= z(1_Op%6B#I>)j;(<)`uQ$$raxqn-sS-~KPsbZa8tbjQmW`H&)C%0P`Bd->Ia`@pEq z<`*lUm`AKvK9MhrTanWvuXHw8s$k_Oe;CI9MMI7=%50ianVk0G)Y6BJH0P|j^b&R^ z@tFH{lvj_~vVPji+;@tycJqsmT3UT$uk?v_V=R4&S7-45rllK*(e)?j{t~+1wsfjz z;^p?piMQm{FPr&RsQlDCv&uqs(ClThG>TK_?mtS-mH0__F5}l>e>0lvg}2#*Q?U6$ zTVO7uS^g$piuoyYI(zBv3tgL4-SG2we2_BG=OJdFotr~GQTSH)RnpT~xF?9_bfflk z6a17P;;DMvNZtH(i@UjT$?N#^XQOsjviYR3G~`dGx|V z@84|SkLO`Ge6)vBd=~iZSxe-h&VqlA{3`P6Chu-US9%k6WYO#YPZ!YzCr`L6j8d1`v(Vm}S~Ht-b9;!=cxsQ!5}=-Q7MBgSoS)XT6@DepCu%~ZjE=?2 zx@Zs3%dzll2@&q|bMFT<{K%!uH;AfZk!$j(8m5gnT=Kphqwlx4=42heo`#58*64N~ zWk*J?$@?`P)b1h|$+sd#zl#9jxfs7e8eim6p62MK_aYa)zdsg!hydYF0-Zeiz9n+e zo}#5O{7M3PW4NOfls&KTIk%wpO{CKF?)$8p67)@TuktjXJw@M(y^-PhcN6%(OW@BY z@E<1d$prpa3H+}U_}?XP478e)JS_=ac8_xkKR1E*B=BVk{IdzXFM$sx@KOT52VCW; zxb2#Y##b`p%`Am^WS7cd|GL}xXl{!adE7j(d7Vzm+k6ZAeIl=0H*C3i!`v35$W!W$ zYl!uI;2?o>`;MYuz836TbJMm>>lJdD{`FXH1Dn^Hk0md+__j^PM>e!&Z(vo8go5zb`d2|)&muUP0) z=K5YtI!91-MEh$-EF7~?dQtm=Gyqq4}gm2H4F8Rs3;W7(z7WN9VZnj(y1A8@4-}?;+QVu1-k9yviAp9o; z8Q4tk%Wh+Kr4dxrCrz2u?Fd7_hyoffBfjoT69B@fZcQ56mSd(lw@ z=AAel&7x_>gUlH6n@l*JX7K*Q28{MAr);ZDW zr!kA5bGehd$6D9`1f-!BmFScQ&N&_wZEdbgVYfiH!w~@;ogmp?bNbG-LIfYc=RAH& zM~2@*elG8L^!A;>H!_Y1xOV43&@t?P@Lqqhkt zJ#iaQZD$Km?O+3N1@II?3;@AINJf5FWY5sa4GbjS z_4`RGsrcI3t^T&HN}9(mnA%HDI7J#6PYmWr^4j&c_#3y9Ra>@fD-OnGlwC%ujhI_D z+_sJLC>We#WUV7>jU037i7c~IrO0K@+5zrxF=^krtytWQCD@0}go()~HO~HvaAV`y zFl$eemQ$LNHGgXv8a&1@!Xu+`0GrVmr{c9n@;jppo7DK#n8^B@lL{LK{9Ohd?-+j! zO&%kQamxl%cjT{)?5^&(@W^21kPBlmNAEBwmKXbujFG#Uf)u})^=)u%SWoh| zSN3>cy>)9Ozbs;$a2JoBT}J5HCHiX{H(hpVEY%Tyl8Ns{eqY(lEjG$Bi$|QJFvr=2 zy(^pTJMq*w+O0*Zhz1Cj#z{s*KRYu@*=?Nmh{T=dKj>m(F6Ch^d%2oVOfll8@wme0 z+yb*_S-20W#^b(y-UmF@`26JeF$7|6KI3!Km-0?8KaDr9j=e7%;#U*6S?`mvU`C_t z0aSxPTbohipmx?pD4Koi=1p787)-U29e^fa<0dYy);Lef$d1f-9q&2P2;XXK812K8 z?WKKqvIhloK<$5P0M?P=Ef%&~*luBmh20kFebFzoP-zyv!ormnuC}nxLMau|4O+Ov z!XXRyTR3dth=q?>_@sqTS@?{F&sliF!j~+3*}_*WeAB|WEPUI-2I`1OzlE(9c39YL zVULCCr$ygu;R*{^TDaQ6J_`pd9JFwUg+msqpBKMj3r8$Oym>k1@~Lqr?^WuJz1d)& zlj9HV&-V#y;ivaShu6EtAL{4hPPB3#<|lgBdQV5!1C8E^(;1r+KRG9#+K_DR96z}o zFh9bJl5YV&Ctokm;&&-OIlm5b&M^lUox+pjj~SSB;qRPi^jmGA^Vj$??nEOuz>jD! z-6AJC<$-gKE;;_V3c4MR2=6@G?2jgd4ZTz9{CA2=N^^sQAMyS5ctj$z) zS9qE=;TFyo?}(jM%G#Z|t6AUJ>zi=$@h@2WoYopftNp%P=dLzzUakiuiD#w#d!fC7 z^`2<`=~C^XWPEe3;)2F!kEP{h)~C#U*@UCon)l~*76)r3`Dp!8YbNdBUt-g*BR48;rY-i@03n=XFFvP-8D|$$)EaETOV~}N4EwV#XS@%U)qV! zt$%ABP-l`~X=N3kzlP=#XGiuv~teHG19c!q$$H5OFhe9btjYK?q<^2 zk`)c-<>Yo(TXNqp_lPO2@@w(u@W9HNv$Ad?T?77Hn`3}K{r@5B2}|e7Lv-=-5S`XY zv!o>|kLZpAch{HF_c}bxJ_G8S^2W?yz#Ov!Xp*itAH)ZS@PUJ zL7P*XR+-LPIiIxY*$MwmvGh3JMR>nuX@_F8aXFM%u08fK|HFJvZNJOg@HBO~5S_2l zZtri)`O&@+&Hc0&=I(EM2YT0r8)%o3>q^U`5x$&@{Kg1*H^|TQleDcFwIy_g`<{*b zT1-F4`Rmc$?ke-UZ5k?^Go*afS@ZGqs_tKJ_8vv+%8fd^4H%}JIAC0I@*+x+v(g6(%#@l z>8vAfJmhtJsY}N>*ZJ`wn}#C%J8d5J#nM1pO&)Ro!W+Yub~&`lYvifw9hcsRq4}nz z>5B1-@3;6SG~(&<@;{P~E{Xn%I93<5UxH+eTVuC$H(zicmr)A{+{bQv`?#yA=b*T zfuGiYp5s^Gx0GKSzkvGx3_qvO)rYk3ZAZ#$mo0Nv8_&{ryxwfS^&l1dQIZFEwd75nJ+UL?RbM%!nkU{!5tF}j9p?AAgr_jIHQPp3N zJoM|jZvfBcm(dH#AGZ(gGas?_i#m)AY}$-?XK8n>*7lHImmZS+?v_RE~5Jv++h9k!f*9oge`NpWlco@|X)n||(oIcpNXYp#gONd1-4t#{+;mJI(1 zx-N8bsq zQmfOI4t-;+Ht3-0y~q3Fqx@1{sK4w(u1_Q1QlQq@i=^p)m0w-9UQ4cceyNU&FK6Gs zq5Wy93)*9)a=JT~KRV}1bS-1tV}YD5pZbaaOT^y}Ozb_1Zac^SeKAM&KK^Fc*tyCl zj9ra6=iCA_f2Mhg$VKyK(Rzz~QYO5DvWi?3?xV;Y&Unt#dbGneKQnt0zZSz4J{!aJ{)x0DxAMOg!xcWDA*pdu{DU!E;iYH| zji)GlIEE{{)d(d9QMez&75-EV*W+_BT;aygY?}RS(t)AL1w8n$r^h{Vouw@COq3 z_Y(N`6Zj;!>YuVq{7}%|li=Ge{?|a&zcGtz|B>q3gvA?>L-lKg#XktH`ZR0tKa-KUar?fNtHmevOXtj_sIWm)e7MFyXPs{ai(wdPxPFmzS zdE1hL&B}`&qJ<+py=$3Dp0U*yp-g?*eO#8M-5#Z|o5H+f3wdAxc$a4xK9`f9Z44Yu}Eb=3fQ1 zFHhkGLG}$jZSgk+FQ%Oel7Bw5%D=oI`;vAD^4^f(`Ruc@_z4TOe?$Ih+O_Di7A_Se z-!IiS1f$Z!Z$56=Z(W> zHTp&I7J=eBDx7?4YmWR^TDaXp^;e?XXW@PeClyY58qhc5r+!OvwF^SuBmZUSMnMkM z?X&oh;DzLy;4ek}ndo(1xS*7=_;v}xSN)mz_6jO|p6*oZ5zFD>94w7Xu1CDd#I5$e zkvwToPjqCV*J*KrjN1|8B@fZceVCu<<8&@Ag}Y~}lzHb;dE&&cEqXNnMJJwDSSWhA zVd%P|NAq7a`YpH6c=GR=)5y1qFk~yn=_IprE*)p$;nJY6SK-(1h=7hx5EW2!c?P9Q zB*p2SA3d7BnQC?tzdR9q(=j2;J!<{H?#4802=BFi@UefuISJB@xZ3)G&Pn(w+xPF< z|F69?8#vqKVz#erxcHjuKYx+gJK|k@K z{FM3{TQL8SM)NcK?4RB~)7a5D*Jjpl+w#>7mtKDPCBGE4n_6FU`Kk9sUH(fSyCk}J z=)KR8?R(Y4RvXu7UsQ*GFw`B)yDr%kc;$oP?(D9hp>!}z_3WNX7Y~NdF1s^mDI5&1 z`oz8Xw3<~BWMeR?+Mz+gbxLNM))^^t3I(mcy`%N;4WaLy8EHs!Cl$i!9spl z9oQGVuw!p<&8>F?KUlpdxca)G;JG)y5nMmMKR7Y6Gq_^$v(r~>eSZ3#p%p@{Z8Kxrmwj7Po}SYk~N}N{&?EUjD^cTT&Z5!#`@CeSor+!LwDo%r_&GJ zRo%N}SM`qHzPnln%?~~V{c|U#-|2mBdcoqI)%wa9=M(Vman8Irr&3+M7x-1~35LfH zxCi?O8(82!V?!(s#krzQf-F*jKWxWHSb)_J1xX@ z^_MEu-d29gE7dzIcUAZA+*hqXXIFL6*1gpaK)(q37k`Jlw%1jv{~|vYp2<5`-B77s zeJle*_!Vmdl;aTwbm)SAy zjvoup&WwfsDmNDXVlWoY-17&oHDsf5tsg};&iK1~jC64q$h|ARZ_4@DEzbvUvDSF( z+At^t-0ebGx^yr+w(-@VzM{L04~4Vq#;eB$o)7%ef$+#xVbDT&jy1;y?hY2F z!e=Vu)!Zn4SC3a)xyxCy6~K?(@p|yUXTo3-zB8X0uS(v2;?2Y3@FPDCeC|-0d2GD8 zd$dwLBU`B+e)2~_mhjof$E)}5c|F(%-OOHO&mIjYca2vki09bu*Ms|bcNYKIhsUdp zWzr1qRfVJGPVIxA3WIO1e?E{rv*c-8<-yP+9hD;T5tm;&8tz)VD>(Aq9|w07cLmCm z*(b-VlV5?BcOE6qL$|yd93pKK=Og!Tj#oX>lPBzfuIZpiKF@v_dcw8`2f_z0m<}e9 zW2PJ4{?YKr!#@rt&jly03~{ybu4FlK;dIbG`e1kjzZu?NI(i`N&yq*W$sgh`1V_W& zOLhm#@w@kXKMoYOi*~-$Kgzy=13Xu%^^~3BC=qsO{i}iUWo8q3Mcr!Sd3NJ?H9bZ; zZ>4Mq@8WrqxMra_);%3$3+%%zLWkc3^4@>mbTA8?xB&Vk(}55D49^pUj}VrDejk1# z?eU+~FW#?3nRF!fvcGc!P*<&TC%cpawf zCWv36Zh4knOcmNN3PdC%G7_#XJQ3$mWhM++lX`K)8o}H;+n*NAMbpV zx>54+2cINu4XY(smUl*pFOwrbp!0Y(_4Xplm%4tq zV>+noyKkxvxs;CjGUpfDuKP=tp`6Ys0s3we0Mqw^y2 zAG+!`j>rr|Sj8~hLpOvFwUzv7E*)KeIS5@VD1YC7a>D`&x z7aV@<$3dQF)ww?CSCP-3{si%Wr{Hn;N$L`D%z{roPX1?(hIN$(g8I=X0<{Cxg(DYF z2QyDV1Fo|4eA*x7pf;y;+>7j~-Up_<{1a0q{iJK(C^~bDxAQFT>!y9r?kAtW5$U~EijS}r<)h)9R}EEnm3Ic) zsY{Y)5}HHkM%95?OOq}g4PRVM`-J|R)Pa8Rr997e!n1q4D!-!eF49i9H~5Ew1=-_4 zT@GE7r=NgtIZK?B+o9v=T=K^sC4U|no_dgWiAXnkO;9kNe zkyCw{@>6QNUq&cP=?V3D(qG%5SDz={S=T#E`I8@4 zj#uaMFWTcb>RKD$uso*=&n|9k8t%#i?Fr4 z%zpxl!^D`IXKG=@*pNi5%&ozf9+bgN6BTW4lIqaH_O)WRHdy-imG;8n4!`zoRPI zOUS3ZOFeRAYJ~Qp_UVm2HgyKPWjj5J{i?LqA(P%$-MZ@6sPC8UGXCl_Up#@FV+X=U z>R}W0P-Q1OV}^21bsU=Vvd5~5Zt+%r7O4pds+>1~)&-!lO|vnxuMY=KG9P#;V<&lB+0zPdViDxX!K zuQ<1EYWAG*>b1z&f{dR5oT3-X97LZ0ME8eDO5V8qdcB{U_;>x!6fZZ_DCAPF8o@6MwgKGR-TpD8DK-D6m}GN zFINiN{ZjZAdofQMWBAIKgW=1JCw39{cK<-Q8@~tEJs)_vgQ3QaK7K>^$%bwSROSc6 z4#Ezvdo^etqd&Xr#o)XOdvrhp*#EixrtjC-Rqd}OSE=3& zop@z=Z&!x4hz<8Z_p?Ecc=PhlQ}?K!hw0>u9e+{>^1QUCsyj_Ychtc6fyxTyU z9=MV^xsSH0dZv0+!fw7k3>ryKOF$bZzNPRz@|EWU)oG`*Mxc?7mkl_vk-CAr_x8VP z?12gR`98LEfW1$@u!wk6)|mjkOFYtH>c3?VFM@v;{xj&~W2D=(E!s?ubf}Lxj1EaBC==j!Rt4yzBj6FW6WohP1EW$H_bz6JYK`g8WvK|Q2a;eqa>@+XzZxvQC~ZP-Kaij7F_v~LzYJLNfY{HK@pjeub~jt38hKngM-Mg z{!X@%`n-dm#`dLuQ=i*aAfF^RG#b0f9-ZAC<+u9FN$`DV?hEdO_aWr%Djo=T7WW1H z$S`p?ys0Czz{!1)9kreC`^lGrWE>)2h(qI#gV-q(7e#SuJhqDPWAx+a1(oT8ixvg4 ztrwN)e<|DhDZ>eHrSX1fCXrR?{LYF>buam;GI@SAWw#zXk$NLrK{kN;M%j`NQYX~k z&D_E>cB1k_d87RLCN`#IQk^N~sh2tIQ0ju(zS80PboGx7l#$Y}dN=|f=|r`IF3L)E zMYf9U5T$*l1ASrpsZ0esCQBcHEcr6^g?GOBY0BEi4k1mleO*75>Z6Y<9-kUP2HA_M z4}JmJJ4wrjv5Rv@!~3Xf{rD@7q%W6}wqg9FZ)ec68iT3-P@9-J55G^+rhMYfQhvnu z_yGMM^=9%B`XBo4x<{~EN1vE_eh2xD%uV#I3wT$yhw6{U_Nue8Sv}&PUCW%rZ;~H8 zPw?D;J=08{_x=I8oP3|bPkpgRKkRJY**lPR7qXz6>quAqC~3=JKf&V|{q(Tf4q?*O z9r&k^N&S`jt@Cb0mYviaWNbp-$LW71=as*Po}vGgyg#DvtfSu7Q}0t9#GQR?O7jDn zFHxVTc9SOk>iaYvMS(?={UK96jNrqu7t zj+x=T`XccbNFVj3C37HDUprZf`kDpwUy@1nNb(t*2V8mb9r(*GlKoIexNL`d@}ZU{ z^juvp`H&|ch;M>=tM>QKP_wbeCLfFXX=jT}LZi8#j_`Mc;b7c}o5H41TgD zG|!=a|D8u7yFm3ym}VtwP3?D}hnZ>A5P z{o~bhs8fxlRpjrBk=;l6$zG_#uO7d8>e(!5Huk`7@`(6cnBp+@0A(OOQ0Mbb7TsG? zzEGz4E5BU*mL0dSNZiOHn??0_q9b}wby@GJ?oQBtCeS09QYoyX4C^UFV`D%sd%%=k z7do7})t0572YNsssPTH5XN?hCfNFoTg<5&myv<3r0Ddo9TR?NjUXHm-Y=9JH{onuo zCqK^f-C|c}&(vEy4+e+B^QeEv>g$8m{^775Sy%EM(=O7vdrUfmxj>&j{IMSeBVEr1 z`7vln>;4Swmpqdkg$#EZ7wDH6(~U6xEP_jCtg0Li7Y3E;&VxIHJI8inD`5}w-dz>i z%~xIx4l>SZt6-ml>-|3Bm(Fb(W$t*4ye=|_z&pxw#hob~2nR}sL)l@H`3N#gr{$1i zC2`h!$belSd8Fg?EW0V|F`vWuQZ&-z&BUd7%JQaH1J8?%rPqyD7na~rcom%pkDH=4 z)t8OZcQ5{az?=mBUC5FSqz4!W?tU@I70_SAsd4vx{&bK=7RhhQiTFn9tHJ&y`-9mg zbTo48D(??=LYoSxJ3cxEIaP=E!%t(=RX*b@>g*xr?));msXNO{^mWV+=8<8BJZK~S zN&L_AC_nl#jca6IN!~-G_g>EnB&!F{LV>bCrb&2ai|9%EW63YMXZMX)@58njfJS=m z4&*&{2e?ljNC)9}KYj7c9n5)@4;x$bUdH8WJ2Q_E{wQg}Ut^^Ekx%V=DRJbLrtes} znPZd9KJ#7L2;qvm{3vPj$WQP|{8bi59)d4%st(QKcd+z&F!DX-h4IsPVPKTHRbrfp zzwCI)*Iasl@#_=81hOdKg{vIYH^_gL&wSJ<_Dh!dNrUDdG`7_^O!mku@6`>Jr<4w_ z{Ls{FBkBFlkAtRwHa!&Om-0Y$>3+?LbP+H3LFP1-Zsoh$abJ-tf zxsf=a`6g|{*m~e~=>B?ie{%uZi%$fzeeginsO@X)avpt06Z-gG^0cmSB)EqDqQ3Z; zu~Cb}ss31cPIE6>8&F^1`u#LzT0|E03->qvQJ^uM#>azM{0h{$B6SR#Tw@E#eT;TE z(LkD@^NBY_yjK$6Bz}cJ_m!7}`piSYEV$7{Y4Y5EAh>r?H86H;6KP!tAL{rSS<(Wo za?-d)_U}Q)3X>K1Bk$uaQQNz_zEqXX@H~B|`e*gW8i%DTM;JFf7I=k2L8^G%jP)8R z(}xG5d7dW9b@%!^s?Y8q{mA=GY!&5)bb^^*C+=gEfls_jPa|?RA(M3QYd02nA}Agi03ovXC5U!(vjjDdTGM=FinxrnPPi>}8JA*z=^2mmpp-w-(pY&DA!QH#}Ra2vs-NVom-bdUG zl#BXYrSXqOI6GmCdQd-J{SJAoetUwSY`I3#bb@?tB3+a8Q5wf;JndwbJ#gEJ_C4C^eS<#X1*#(hq=t36J z%N|*XOjjJQn^N7m;@tF<>~dqT`zoi%_As`@Zg`L{U9>IPFq&JI-kI1#Ss_!67JT9+ ze$+p;jhg>XaQvma6}R)34W@F@*t07$L^(uuq3k7T=(Aba}PY(k<$}~fGiD%W@HGgC@uG2+!L~L*c&4P`JYz3ilU= z80$;_91bhqfvGyyow_(nq8q;k{DgOdXTj4J&w}@Ww^+OfJj3%+{6xPLd>PNJHhdX) z4!q6cIq+U^eLpVxUhw7MzQvb=uK@3`_zLi+{tjEH!1t)ZaJYJGm^qB$a3$ZTHk5~% z*B@qGc{p4&dPmS0Yzh`pH(G+P(9ZXpd66#q;Dwbv^bz}l1^JCZx_C2se>m*tJ-b*|7s*&sdbth3qhM zCX!`u&^1c=khk5Hp>QSP8vAMP!V7i=xzbRW$`n}lK?Zo$<#z}5{<!=+Ub6W3ufk7dy3g>426q=e)cj9h0lQZd*J1b!5Gg)pJ(2Gj^{SsT}0k*4@gT1|H4hd4xT%Rb5VXn zP~v%ef#+a-Fhp9s(V?(DJ7ChNdCh?_>Jjp2Zl;hO3J1X(DnpbT^|>%KwId(pb14`K z)jq~j_q{fp9}bVecVuihY%Ht~nu=?KEIiboroBS2AhR}DL_W5VXYdI37l*>KHxv$M zhQcHMP&kqu3QxrB^DgGpWSe`LgQ0Bo6!lkje?#Ul-@_gbSITzBuK~X_ep&pwiY4Qh zhF8nj;jjlk+0ZS}wcwY*Zz+BanaD4LUn_pg@XPCL9q3x|Yr`*xpYS&DcJN+{w}boO z%PsDMcYv?3cn7!#-UV**6ubdkG7DE5PlHQd;cDYfR^g_N6D~Q0tBpGug{zG_`Gl*D zJNbmGjXU{-tBpJPgsY7|{NI1_<0kZ%`r9u5j;Ukd`OFR@$EVepzYbkZBr$F0> zUwi&Q*y|w+@3yMW`h260K3EO?qWu0KmANTs;eFxdEMbK^f<>7D#y&$~Uoadl!@qwF zTIyvhe*O66@arkiF7Ru^uMXX@4F7h$Ls+o@pWqvT=<2*u&@#3&SkANBd9O#EhPKgL z8#HEi27~@^I1GJP8QoN(FDMU(J4)!9BDx?y6qbtUyx>5X8>75Grw{)||8B-I#6g&JO&w*Yb@Br5EiCm1Ej-s}_5=&dHwW6|G8E9hJ@^+l1^amJ zhfeEZ&6Q2)BlI5e7V&F`*9hroL3c@i?#a{E#@5rW*vEh#s?QdJl(&ceVQsLT_;-}Z zi!yqo81kTT zA_#&YMM(*Q&>%=FG`I*-Ypk`q_BF)5b1g-!q13K7_SP0^U!Qv;_7bfnRG;&H&&`wH zukY`D|CrBx=FFKhXJ*cvIkTL(4uAAJh4;i<>Z*lWtXY%8n`ngcINa5t&<4tE&5}Jp z^2a$&l-QQAQ{XcnYM%N~;O>-{mIsse#GXIKfZz+vL#w2DmjfNGjU%@aeDP5)FBA4e z()(%`Yk*$(Jk1Apq~tv;c~8s7vhcAN+D2Kd%Eur23NW(B_=cROVBa(ax-7-2oNsTT zzW!;TXPyuJoCotlodc2Im*ykn!F*AFf9(4gu;s=5ZNN!Go;0fp0sOhXwM6G6!5 zhkU_+%bh1lGog$i&p9Xsde1xG~!0c}RYcPN0@rO7(quOVMA>9jboR6w- z(2D@Q2;`MCU%YXoz*{{dE^~c2Xvv)_DMQ9<6y@R81D!~u1sZ9RKN7GY&_>@Wx%&|f z+EFM&?1o^_7F{8Dgfe3AEn`jM(b5i}LnuSyF`yGdD3h!zmN3rHHgUj@%dfNl!pBmE zjK6r4A-YfM4t!^wg$BL@;*mE2dA&eOV4}y6FTgo2K`#+`eT847#e!dHGvOf-<@+0O zp=n0G7}P=dF$2#Gx=ElL2%Mz+I)NXtZ^S-G23?`qANhj*Rj*{w4L0i4A2d=xBgM#X zlJY=9#&3U=5rTYf7}LXybQi6`d`C6 zx^&bRxl^k-n z$Q!)5(_~HTR`o08cXDX225>547gdl6xM)QxfKvPk#eH8Td)S4>s`S zPMhHO2Yxc}O$Poj13v}$A(Tfu2Yucjd6lV&W2CeN@*Ri1_lldW4MTn}=y@4qW79A{ zr$KhpFrGluEd{m=;KR~VF{h!Pl7_e&(q*i8r7h0(z&P?k+}E6k>kIlGpfB?7Z@|U^ z7kF|$=hR95zz@`5k3!~UJs|d<(4C^8Jv8T72#_^_*nt9upcxFF ze8E#7@&%bCj&=ZTu@5DmDQ$Oh8=kQRzGH%;2A zz4WnN&aea?2Dq024+9UF*8;-9gRcP#MVWFxQs81|`5W*M(2g)@h;0=39~xNq8TgUF z4>I5ppc84pqW}*!;NhTC4{5T0D`i9@&19rS8}ws9Kg58^S$T{Bj|Ds$@mR#&Q}gCG zue8ZnyDfa|Zh^kHpw4m2opqMID0dCAt)adKEE46$qg;2Cn}BkC4R|cz2?jh7aQ}Q7 zfF~MoGvI*+JRWef0e2&;KQ+mZaR8hk11HHyPX;X5fF%Ma*?{*4++@JbfV+{&(cef* zL0S@EilQ7L=H=P8LZZ7NvnH$|(^hA9zBJnb*@N8TjYkdgo+h%o@Ue>-vWUEHrZw3E zf#XcKVGgiC2il<5ZDeho}P-3{2-6v(^*4+1>cfCmB|WWa*~HyQ9Cz=I9A3GfgtkH_L&XFGzCWsDa%pcyfitFl=0vRxtDp*Df>2&54?kjIr8EJ zj0-JqY>Ir#-blD6V<8VG40&bDM8wHB$b-px8}?a1J+xQgfAIc0HX?x=WWXapQ|@dE zjVQo_4R}4kBMo>o;3fke3Ao&)5d6F`kY6TjC8OL}lpBruN!_F#z8L>9m&-Wu1^;p2 z-wpGzq{+F9p9N#UB4a)uhVf&-69D%$;IS6uHQb z_05N2ycqCgXMOYF@t|QgX!HjSlR?7_c#;860X)QjmtHg5k%Y8F)G67ZHw^TW5ij7J z*E(huuuaxv96RM*llL||X7wl3mmudP_05Ng4V4G?0^HYt4>Rccg08;-6MJi%lxd*D=dOE9VG7+}&i@GESY+F)PFbc{bo;!{q6@j#**g z*BxyncaNmaB2XW(d;Cqyg@$t4Fb0h<@E(zmkMBsSJBdto%o4dK@F_Cxlx-tVq=7GM z?Rv;#GVn#N1>Y&x2CV$t*$$C;(fg7n`rV6UKI;g5g#923;1+9uQ?FBAfBIU)$0HB! zlxqVX4Y%h*XEocjUhlyOU5SvZpmNRm1m@pytv z0#D$wuNQ24Q^(P2Q%yya~?beG(A91^tw}*8~DQve6JMj zO`0$kkjEE!{f+dIM!G*>!;lte(381A=!v~9`ZUPE7kS6JH_v7_aAjXzaAmz31YDDW z8*I=vfwqi;5X$3K&V{j72?$Ap{c?0R-p__UPZQfq+N^7qPuyg!+Oe6kp0RtwzLGVo z?9WMBh!y2qWsI-R4hFwshq+lr-_x^)c%VS`m}MW>%bJIeyMO_*ckFA##pdxg=h-%5 z>(n#L8WVJF7y~E+^-!YQy{snO)i5~%DUVJV(v_{1BOK)u%8x`j;V3uApey6Vn;=UB zxiDa27fD%S<3x~*g*;l328|fd2r*zXKDJJnj=L(>08bNac#H*4w2Snc@FzA?B+5HB zXu3n}QL%U9QqV3WI<{+;tixnoA@F#>W&I}bD8OS3cmm+Q23*z=vaS&PM8N$GxU3Uo zEg^6-;IW7YI@e%bv*J-lS+B{MkTrLZkte~xPX>NG@blJkU9)7Y2)>LD85br4KW{8T z7A;c$JU-1PlxeaC3^QS$F|DQJSFBe>F1$3ru}<-^PS%pr@tqExpN=tMO3kiSeXhez z%UhQvrDLu@x*yWrke-aVS9)Grf6(yJtN~sc*3O#DlX>tI1K$_;{{MlcW)Cyq{(uhy zoj`-mNQ2Hu&*?r?+ zXU0M1smCp%)6u4uy!2=j^neMrUtHdt5p9B=H(?Bz^3q)_ zd2@oy5&lM=SR;=ac!5SavB(z(xX7pM%f=xdWYCZ~MCc@=++YJHbBPN<7gOH;l8ghV ze4{?+FJYe^<(Z^B%nMS-q%=9xLLa3pmAwkU60>9t>y36OfH@!;>E33{34qIdApcce zfUL?5^by2OQ}F5zpk-4S=% zHJ}*}n3n;QwXBqr0GPZ7FL;Ug_Q$uZYb8x!amKe9X@Le_629ZZ^KfL}&^67fNVN1M&#m6|(7+t^9ZjbZm;)eAcWPIOCQ*bT{nRNj%+%%YC64Xdm+L?r=+! z`LSIV#bF=ZvMAddV^HFAG|a;(I2+ca-tDr|Y&cs-J9*ji;)@7+BVGQ>A}=my!9l?H zz!(zzRp1-<>YRD4$ma=J2}Zi4`9sF#e0QT2G*D+xE7~JGFD*T7we#%tKnl)WqNY6A zk}hRJXQX3465~O9D1xn!UGtRe?Z|%wv_n8k=(>PTX#O|aE-e4s0y)e7PO++p{BQ77 z&-k{*IrWcU#5JtDjQCj_;x_cT5kF7Z7XZ)D11cJPN%>a+%QWH4#*|m@7?Ygs zgEzE^*fWAd;aKa3n+wMi_R?*6`4Vh-=T}7L!iid5T|%trL-ezpTgiEq?A4I1e_@$Z zgpTadnB#z}4J@2w&dWn_y$Z`Yzq1^3@524ljBiVF;S{U!o%UT}IoEgMSo`8tI`EXz zr*NzZdM_OEN6=|D(K|w4_9-yeT4YZe`)gLrmnl=S8$U>O`g6z~&fz!%Dl#zD@lB&t zhie?2U>ARgWYu}D<4dZJseh=XH2!4a`dlJ7k{GP?H+`Tw2>FWTqug*S;cu(AU z4MN?;1`xj+nbQxLS7*aqeaG7KQx4 zB@1X!YPN=PIV}yoZ7J}PXn6|v58y9u!#zRV|98=>_HdKa2DL9}lC2TGgZ$yMv-zBM zHf42oMUypafv2Z7F&yXYpfA2WF==9_r)H;3{#6Sl%qu4012z`Y-GPTbu=~W}t}W2njZHpD>@BX3(&<`n~g}a++At$ui$hWi=e1O6(*u|GCw+-%c zR>eI{lp}YEr3^3dK0hj3J7C8BRQR@F&a%g(0Ul+wF9&a#KDe`OMqNNx{Cz`_CcYAD za3?aSE$D(~Zgt#Gl=d_3u?dg4NXrC2H$ig?+HoO#Hx|0so$nrqPlvw+{hgkg-Q-oO zL)s&UF4{x>Kzn#)Xv=VC+C3d*X3ez+0WTA@5;XW5!AJWm;D`+)Ws5C*Q+U8VwgvEa z5nEV=L6<}wx5Ex{`l2nseP1`+@5?EO`}w%v7f>4MmW==OOOrCG4%r`&x@SgZpj}Yj z4zv@>!hGo*$09Rwk5qh~<^GHKL@&l&T^R#XKe@ZA3_n)!iIIK~o^y9yu*q^f zOt!wjd4maee87JbjQ59dbMYHa7*qbZr`#RB7Qx`loMD%C$;7YR^$9|{_|6jYRm3^E_>iS3<|!7e8|G@6Pv;snP{@pVAPx0%#ob5nl}Q=)Ht7H5xIZfEmR!i@O;6Ov1{)9cl{!jYZ{m($uJ;A|D%^V) z8OcRle32FIT`rTm@VI-Kqkscgy%g9CD8q{On~AoMGNbQsXVJxNkz>j9ryBN7ocByc z?}$J243ujE4{|qs3C5wE)hyinT)T+;a{v>6u$##UlOPBF@Il4hLAf(3dmcBD76<$V z$fr=2&}a-=@%VN6THx-Y_({wA0^(y<5ozMLEI!L=z>)i^QXlcZkhd=Cfu=Y3lRN%0 z)-tyvKgtz(lsm&>V~HQG>xnsbxdWbNOT{}m@WnkZa)|l@F85#;g+p%EVeE&4&P?=O zdAU=WSMG^O+?Bw+VA)ej0-pE?NgZWuxLAN+5p@NPeBWbfKWCel#a(;pOWe;CALjqm z=>l{o%AE<{VmTuyVuLTPRd}B5y!$;2Wyt+z@u_zDy`Zdo+ODYQub?G9b1ta&!XshY z&FZ+Di@T;?ruML_;rj!gRLByCZ#w1x@F@3oDSWeIJ?cDJ+5x^K7L=>tuX_S8Z}>ln zAMq5xWIW5fof(5Rz*zG_n)r0f9a%3c^egVni+^zy+|6C)kNr~oTJgKgKhHm3d~ykX z$4*~E=mGK35xh*-3wA5|Lf**Gqv6ktyQuECCoDcta$mLp_>%j^ayMS?u3Ev1`1;7( z7~;40723?1j_*c2;fsWJ5S^#Hp>FWM72hHSA6#$n?<4$U{5k!mktROVA}``U<@5{2 z_**4)jY3)+bQtO-x>oMwi!6wblax)+nF{(+?*EEx$h~mePlyyAgC;aJO0f zpj>gkS^N#9FY@0*5IuhrbrSz*Hw(&uKb7bK55z@QrEWq~Xvy90pbWIpHo#GDfh$|0 zBPauXrE`hgvVfPzScjbF(goNS7>D={MxJzhiw}{s-CleL;TwC7cCm-Hloh)Jdl@Fo z?SR|xeX=oZfr+p`*1`7Zo|^spAN*Www}0C_k73uigNDe%Lwx_o&I4XB=sMFt^Ca@- zR)!#^?&6HRnW1>7glz4_I~6U{s4Lw?<9%MyA3vPv4*%m90k3vP%qdSt|+@d zc$M{5O3iz)`LAZfH#A{kJSP;82=1t1xKgSWYu$)0MXW_r4025yVfq5fM{9XlK5b$~Sd)c`dmy+g( zv;ZjsbR^x?dKLRX$QyRSK0)(y6heBGHaCmXaYxG^0XXg!(1VW8@shq3dKa8;q!cz^ zh0T=5hxjZBZXjUtK8lp}8Pb}|TxpaQKuD{6!Cp-A7_>zmav*y}kXG_v@S-J2}X855o3Ui^W! z%G`i_v!Rp3S4p8U$IA-UM9k^?RYt1yEpIZ!95r|AgVeWUZ9o81dzDRUm$ z24hp&a4hmjS>kKp9tPVQ-$l~!A9kQS2We84dpvYIzBBPHye`7`O@ZTk3%)51^H$Ua z`xL;YHbzwD5_p8-9ZiMTK7 z?0XhNAI#ys7|JB)Zj>FFp zGVJA#{d2?Nm<#<)sDFzjV%Hw9jW52>>P zjkCZ_L!3~L>9AR({3nQOkgc-EW}|G#G~mL+Fnn(hp6KLZJJOvpfHdLbCgS~(9tK?| zylg~#B;s?BF7hlqZ7(&`$Ntv0Ld(?WX{S;tx0Mh^yKBe9%k{@yL z(aAvi6vRd6xWb;6`X?j4QD{KlNxHmKG8V8oXajk#MAo~?0-1x361zH6WF#4VZP+%V z1M}A(PQOf)qd?mW=>^30f!w%kTmYXv=+tVEq1MQYx!L)?K{$R1GUAW61%2lmMqaYU zL>%R~Ss@?z6`d;YRY;r4dPD4B5AY=Rec5Wz zr2CwhVi%iO=DU%=IT;5$;JafEkh9zrz{D3`>{PMYlM&DHM%xyd)G?2jIIO`k zG3rv&;J(Qm^f>JqfrXL*kpd1$JM)-7N3eiNCAZ$)cY`e~W%jfDGlo*Wi4gpe1Od zoP7IQZ2XPjFQ1Osa-zRQA9*3K@McB7?`@2F;5Qw=*6vupOoWa`J_61n{HB#n#a`Qy zCzINyIue0%V7J6KJ~@J48^TG1vk2!AG7+vK+(fvGpdma&c!KZ(AqU|NLN3B51lj}s z5QM(aEQ0Zrg!1ISRZ~o<+2yNa-rCIoroE*F9D?Sh3&`&-#gfxUW(Ju%Zf(gMN!D6+4j{QmI3Do3{qI!kpjYG5nZ2o2VjYM4Z zY!2c!{6-;u0Kab#&%tjr;!p6Ki@1j07{qVl_Y>lo_>Dz;EBF=NP53^IJtO~s)a*EX z*K6D%J3R&YYGOaM$Lj2dSYt#uKo9e_7jWEwL--w7DAf^p&1d@HoYddxpjZjSUQ(2lC4QB;z{JH@2A zrFd%iHx(^!&%QjyIcc8ODjJz9YOYB44)3ic)I$4)Pt&xTSd-O4nd`B4NoAe5%HO0# zfKNaFa+;gJ()_ftnyVEs2m09svX8jTFD5(Mz=S*|*wny{L>`$3UC4yH>S3B2a{9Yq zoKkhI9)1In*Vk5EBmc@yx(av&(m=}wxj??4)JjoFQT>K>3|Gx(ka zdwc=v>|fEzhljbW=0#<-*zP#jMw%CJ!uH_Tgmjecg}Qlw_6)$|K(9bJ;NYu(sl4Wq zR$hxoIX-C>G`F+@Sj$(&9xm*$c98ivIV-D-yhyWnAuSa6p_=sX6X4_^-G3eS%umDV&FwWZ(q?9$GFB z?*;JuY~N|gNb|GJ)N&A){)}26d6KpMfJ;1jlEi0dZ;(#5K3WRkWP@Kd;>y-r8-}>D zP18Oh?qchujYQnVHdQ11y4sSovCiKqTFelP3w+1+!1)biAhagxQC9jLwu`lg=9)H1 zivUc{QR3PouLUr?sT&E{NE7-H{otxi(p=3wv^2z{0C%+k2YbZP$m2rYwKNymdx5VS z;$oAXRTA&6Ei&M-fQ!v>-heMN;BkP9%x4<#RR%mBa2Z2a4Y&(@zY+ku834Ne{WPoK zrO(#3(CX}sg>i1y1pN)Ymkj=FcGz6U&ytpf4#;Zw>?89p7%Cl>phA`6BNOE*ZR-py zrFp|A&DT0pD*zcH_#Jy$%-V~=(0vmj8^Fow4!vcWp#_2;iTf{rPPg>YULZXR@i*-t z@6LR^wH&~rhlm_NM>fV<5BWS(dTBB3S7(1hAGpUQX}RstuZUAQ^obchZ}5HngnGx- zLcI#3Z*X71HN1!R26ZR&easN}@<|%}7?aUJb7Ax=;)|NVR^Nkt%CsKZNZ`%s0sc)rv?LeIOYLzcu^#P|(p__lg3mMXrJu$Y zM%$RpPJZ3v`fB-oW&w}Vzcaw&9PpS19v6YfWe(U8$DxbM!7c~CMbURcE9gv_?BK^` zvgN(yIiRUFVt+e*vttp;7JkJpo|fb8RY`b>_zvEdTt)R}=judmWG|Gxi};taf?lO7>C~zNoIrUbNtf zpW!Ba%X#ER{EFRe!gmhrMSmN3#94tAa9<650h)47Df{J9v2X8>c_Rn5R}k<*k}4(-webxp;4ovZK`MOte18T9@AleY@xy$E^BR^HB&b06p1dF22b2pHZ|lf9pth|4?0 z@^+o9QRQ6^7qp4&-Me6K+!bvjd*ZToaoV4uSZ}~S&Og7CHHiz_E*y1mwhPk4-mHhX ztTkj^9EERLOM9UWBwrZdF@TlBZybL0Xm3Y2(!^G}xx?7w#+weg_!heLkmh_#80{u+ zJ;*!4^3J%FA@L}r%YLDp3(0wbz@%@b+#JASB>#5U>Dce`Lwf#xw(t;#G&d{yJ{`Ow zP1bRZHsC!9#DzC`|62C2oqNq_%Lu^o-{6w>cjf&F;Z4>I`EN@!+JLvXkpCvyAyR0d z9xaeAZ*ANh1p0V`EPpRMU+$uT*9JJTf{*@@GblM1ly$}bbq3HHG?3O5xE|(s=$uoU zM-*fjZRgyF!QQ-_*~Wv82hJqqox=PwRqD z?g72F0CX^ZqV_;H!Jpg*c4Ghb&`r=K(SWC5{9tcYi^2CWj49WsDOxPP6V~Hfo2!MF z!+eVP$m5thCIJQ;LG19PA!57b>9iCxc(l&a#sV)M_~M@~?`W7&2ZE0F0nakWDRXnj zFh{EM{&NC&OW z*?iIO6|`W~C9nt9=$MauVaFc8eB`E8*TjxDp&VaRInaUK13O&7{`M~i`vUf)*z!RO zU?=SXE!dVvFy|0#^Q+*6QYvZg6yn5p2`{h7JWeRf3pONyKR?*IvUe@?Jirg3JTKUw zK4M1$KM;JLEsMDeZE=1b<}b9733a-PGD2Krje)fp_zMMpcTt|ZIYbLP4nE8tkn<2N z6u46VaMVpx|E+%*=#s6H=3LLz%4-9uv!=w>DX%?2o$8@Z!WV&$2$U~8zgPzt`1L>? zBGFdTKCYHfEehq|1TS~NR}T1j171AQ&SERbyzgzPs43XXBIks5^fFh}3ZNW6@ZcRD zs<~UxMo5>w@RIfc@4lcdG;(*#x(j*@^^GaFI{O9MFtUe~13RM$)_EvXWIq<=d}<6i z6~0{1_QxTI?Q!?3mhcI?8|6y>$m)k+zq`PW_CqD_p(R)yg$B8*sqi`sBI5$27~h||ERoo_ToO^%#3ix0bHVanhERo@qSUx`+-Dh z4n@`?{+6Rp-b^5pGp-#t<1$61;(k121GrLVP*mReR-^EHxI=RJkN6KK@Wqd;1&Yn_#+^tx!+V0~1h=C+>?8 zc=QTS&F+mg^Jwfft90l*ORA%6n^Z@!HK~sE-BKNMC!{(m4#eI8>a;8XIuF4Yc~T$; z!w^Oyj76{@OhK4|Fb6^QR~8|xLa-uiMA(9`9U&cIFTw$YBM2uEWNe*B$V9k`a1-G! zf`%Y6_XObuLJqFqE5zv;Q**q=$q+zuLI!-y=2JvR>X zi0EOFN#W5y9eNu)Ng2L?xBn&8kzb!+%%xu=P4ER*>eUW$CoSmezM$oA)J@V`AuZUJ z*B(Mk+N9b4f6ag8Z-xB-?vEk-RB|y)91zir_Tfar;LLCQ$_*A|F_TG0E;sE+#Bs8dtst4maUU@A?7LQkX0F2 zgUrXeu_o53Ww9n53|$*H7aFdwma9QFHH(J3s9I)s=tlHQ0ox=^-Y#)Xn+{v3rzUp_ zWsk}g_Q3XbSi7WQ457cb%*T2aX*W@Z_)VwVF~97F{S6u(=I^w<8JKI*CTnuHkT4!x z@lKLf7J3?a7J-Ie8p_4`@rZ(rj<|2yY|S5i?*m>|A?}TJx{Il=Mpjv~nKh9OE8zZi z>?vhno~wyD4|F$LG0p~KoOK6{cF^%}AxDr8*)#M)dmPT@=YfzV`EG)5xlfg^S9d(f z)2mY(%uz>Qhj4C%6UuzIF71zP$S0b7Nws1(D*MJ*j{R~24{un8+RcyR5sm$5{m|>| zF{?U_ee{OCXU(IC636Mln^>ASud+J!rU;MOI+}Y-jHXf77ScDpO7prtD``%rru-`V zm}=^?k51>z)L%9`!p{aras~c^o9+2ow`BfABT9_ZT|KY!>sqb(>vO00_vs(Gcz6;Y zzP48nNcfIATwbHxhxQ=1oss&sx&!&vz5ot9vXvIB>aBOYzLSTHUa6jjZKVlbuhjJy z&uEwX9je*)OZI4z$u4~da=T|m_(ne)H(mOYid5;(*M1wMCU* zR+{~{98~o>J>gzgK2hb5E$IB#w(M8^700!HMMtlH#Q~`wsA60!ANzVZee-ZDt-6`1 zPF&i^OPa*;F1tUc#`RFKcmAZ)>xWSF+skNW)z|t;YclUC@JUY^c$NIzH`CKs8#s9B zYSn9jH|uMf>n%P!q=eG7D7wCte+f!f6PrwATdl9z>!(><@#C*FG|ozs9}T8)2@9!n z^cngmb`1sd2parRrzT%jr$@J|QufG0YEg7mnlbjJI^6FR$AA8gYY)@8_TeAMC14jd ziMOiv^-ELv#-HoWUi?DUroB}g#@r**z(9^D_5&Td-h!T{o9WM2b<`J~W>E)<=NZ-{ zN}M}VPab=W_U&%SA1i-N%O+J(=1=cv>C#5}tEmmiRBshk+kBMgPW?$u{^oZ&{L>Qs z<5oY89{d^KKh%Jmc)nK6JYwjZRsHq4n>*2fh&y`0^kRH6tS`S>+=4gG8OLjPD5_og zG0ksSmSzp=q7HUwMrlKB?D(F-?wR!XXMyy=dRo00|BUA~yhjr|UFW*9-Sz0eU)b;b9##ItEvixb zqN@1r2fA3&LtoP|glRz|<)L!*SGZoPnMm?hv z^Vh2(BgRqgr;pUD>q$Nh7l_(bex~WZ1@r;iukfiC$JOh`D=2(b4PM@~F5mv4oZf2h zPjtIU3zaasCtcllhZCzj=2x_W-nQP)UE6I{g|FSDZCzSWMAuv@ymXy@>T(m_`KFM* zK72pb{4z)XxyuPU^Uy<`br0Z~)&AiAi`=Ml+dsHcqt^U+`%7wW(GlG1Nnw>(qA9tb zP2jRyX7OTs47pq`$zgA|sJnjzaOvN_(^FsGBTL*{eUR=)_q!ca4+^}d1+iDT|Al03 zG<-RwH4CTm4+oL0YzC)XKc){|wv>wXPN3SYa>;RKo_>CPFV5_KRJ~0uOpo4`=3t@toR0J=3*?}UwGU#!o zr+lW|EV>`PgTDRZPyOzd32gIxr!Oskm`=R-fd+NCNLSxaRV$`m=9Q1VDXL9H8vP+j zl`hhq8-DviaSI-^iFOxp$A@0BN_unq(iET?!pFZ34KW+@- zo1ZtMS2@M#_~Lt9(SDzv@LqjH`>FiJ<=txblc}^Oy}EuJGM(@q*QfgYLig_P(icAu zqoogv>$kt_Lvz2rLW?IJ<7cgjL-2U`%T7B;>ZRiz3r-oFZqHqrZRH+}Q|vD`WMyuPbJ4*OKjRsBP2bK33` z`jU_1Y1X%m)yT;E{5InimAZbEEiT0=ZpC_PeYc-_cA*v5+0=)J#T1~2U2AaZv&Fgm z^-la{`W)`y*uY;++D?{=0n}~gGQKf(t!mqaXi@vs`iV(@bLele{P%c`R`+bEU-GoG zIr;?6IkcK57kSK8EILKp`BLwFE{0M)efZGEYgA_R_cZm-`IPzT34eR-XP)QwQU7qG z75z|pklI$@0cDRVrxGWX;MOavsS~qEhsZgexU+9fL7No*|FX6ibuCV*gO?ueGqx8J|Lay*Wm19!fxKBT(_nqD7 z^RO!9QaXp+8Z@GWHX$^4^IkgEB7@JY*~s<1wo~h}zSJ0-Cd*rwcPy=| z1(m**948C-=fH*ZR%+LfVFTawg|JFL{N{BUY$Zout)o2luqj`7`3g=xdx`aE;y5$@1? z0GT~v>Dm1&d~oLl6}jdb7kqu4wojZxU6TJK+p52*>hRKJZ?}dfJh@Gd;B)k}@G%(-S5hrXpT7^@e_Fyf*fCx?a0I4H*7V@AKdsfAy)5 zTG8Sz7c2O!O5I}SeLqj7kG1R4vu9WJU5(aIrJM-0=4c3C3;kM|_P*yLy-TS0pzhr4 zv-`AY_GrF)?YVk#j%m~v3n|NU1$|z0p^8y~+xG`;=kO)rA>(9FJ5D6~{%s#SU!kNvJ9J^JML(4oKpZeL!$E0wU|B5(fXuD-r-0{@&;jLHm; zpmx>!Dqj~*Y8Lmay8LcCVcn^;-xFwR009#uLs`Hz3 zT+^qbn%MskbxJ9udR0Hq6V6xD+wwiG-Lf!GsM3pHfA$;U#wdMP>jkxqIK|1oWvab} z{HfQeHr%82IjVf{wJM)6mddXz#+N>~kcg6Y>^3=^KI<}wzZ~^gH9H%^2g48Y zpqHO>g^>YcKs(Bb;^?ugdLr{G;j&v2keK zZ|O$=boQy|N!rs`y4>S8{mD1=pCH>mO2K4mrqRL!% z8Nc8{e5zACcUe4@c3KD1vz|ZlvSA67wy^_uD|MR7)hNV0M^0n+7a8>7{dit@xHQ#z zG@Se2y2BgVZQ_{XKk6$-wdLTIopjIf0kp7jSykiNKUAW2VfwDa8QyU65e?4WNDlor z9ld;xH@?5GbNL_0?Z{th!cQ%z!XG*(9m*m1FIwn*Vp{T>!tM0zD^vKT$6ofy-pN__ zY$~8;Fm1STQZF#Vjcez$purOdaBR+FIZJy8c*PFZrkx6`K9M+OqW! zZ$A~wpT0UmGsm8!n4)H`w)BI#J3on{Y-@SsD+f*7vw+Apj-JnYM*CMUpblqjd|-PF zx3pWRwZ}(3)VL`nzq>?7OtbiQ(4W+FRy+NViK961(h^nqj6Zt>T4?PEciQJakMCA2 zM8%>O>MctYq>c~2Q0K>5sA|vyy3_Lv75yrZiliz}Y$L0dLfpkfK0YU81SWDc1|&;HD&kE4pvpLz~zPV^}xmV!=K=h)VRXxg(GT&Zg*IvDee zn`52vxVNX?`tcmvT%*2P)O`f|m$a)*7w7T7J=b~fE>{8h{D>h@J1n(n?{^*eZtTt4*U z&_A2gowLQM`09exw0#_({7{VN2QH>sF$<_`>>?HPcVjAJD@F&d{>o#Xu2=7O#L)VV zcl7boI?-AmUwzYerKn}ehidT1{oG{30Cjbq53hZ^MX{wbec@MM?-b$9|9EXsH2(^F zPyAX{-&d0Q%&_X?k6h+*9OZeZ$RXccnEMzo?ak zYIC7uL#fU5OZ>sRq}n&`DRtXkP~UoO9anlWi@SB{$j2<*Xk4L-v}ws&$||&mFRmHM zRZ=a~YtKlvYQSW=?H8uM-*Si^c_0rj z;H7Gf3FVBVJ*ixlmBQni>%Z52LDfdT)x&mr(T)mFc}?SOG`iUh?i}aBllz+WtRd6s zLe1~>^oCK~zIFh=4*ZKJ74*_AxBlYwC6(TJ#A|wY`W@HxAHiqWuBHtEistkiMPIKQ z!4+vSt*Y^o3T)b>zUr}$Yqcs)O$ybZ+4i**>pGYHULGKyOP}+8+aa~hw3B~{y{F!9 zy+g&f*V1nlcuMESNAv!~aGJ1rziM1lC;vthl>XUP*mV>1qT!9WWSdEP=!sJFaY~9_ z{#+U*|G0%N{ZpEgLo4cCA12U6e+yr&JDML9eMS#XO`w1F?Njr6kDwRJL-^{g7!Ir$ zq|a*Dke1DHqepjpvij^QFZ%T{y%|$Lr)^iLcKr&h*pJ`rpRd!Oo2Y23DKzS4W$Jcf zh(0xFDX(%o=J)Qc`Q4(Sx;?QS-;aBzZynQ#Tb)UzQh{DPYesYK@>L?;TUb+%81JC$ zvBju*fqir#Dnd=xgK6oSt28;P4P7k0jp)&A`sJU2dY|{3DJnEnRr%pHH~8wIKK8Gp zd@^wlPnz=$r*^8R7M^zJbGd8uwDqavv)w_Hs(i+3^E^%q3E}XBjrx|Ycd18<>-24A zTUs0YtJ+lMIyYlt56d_{rsmLs4!8Nn%NR9!!sm2!*bf}<)r7CRX7aUxQ|ZK(Ftz4! zGg=>YR{yqsGW}ftu>RrU3_3S0R_}T5DSf41*W;S4pr~cJ`imLA@#^oE>x*{MfpTEkb=?6w&JsQBHW18#DCM}=|_j6UV2_v|4 z`y2X^Rz)~_^KpH6@h05(Sv~z)(N(mxK^MJRa7jKiej}SaUeSahJ=L8E7w&1^q&GY^ zp8Mb5qP}wMq(_c36gm7hf65J1*N>d1GRLRsW189c#~mSh-5%f4gDSoCnW{If?p&N+ zjgI0^9#6@$P9V1*wv(n;sKbR0jiaoTU7WPn&Q<<+!*6yt^xVQ_Xe@dK3Z?-1$^J-(cdCx;MeCB@A%G{vP0!dWDznhA_)seiG z26Bm{`kem5ITbOYIeD6N{f+*XH>Vxvaf6F-`lx+0BmOeY@+i%n!h@;oN}?&W!^Lm= zP|c?A^umi{xM1-Zs?zp4RdK7RO3qH>#fOVg;f+)1ZTta!q2h~8-|9K8xB1J| zYutT*Upn#Rx!&!Y6?8fLfUMX$>YeVOkkXo7 zzRU!A{A8&5y2B*8((*0Wm^Xx@8=s;EF%5bD)E#=4Q6sp)?sojF*$%#7*-dxf)TR<| zurGDLHE-}T>q{2@PHXgYs?LPjv`%Y4ZUc(){VLTsb3t!@G50Xly6~30TXoXI+s>u? zv6Hy;rbhI_w;%>vL7N`f~%JcJLO0IbY43#sB>N zkUY^C+g2L!G(xfu5{up%x$em2U0orVn1&lxNL5gEfkxQa^W47ay(UL+2yOd)(Lj z#9W-Y(|f+A?@~`P+EH-TRl098yapG9J+;#{X2 z9Us9*Kd;Ft#phAQ33b`gYlEIS^-G@FY^ORlVm?RqxWl&!zU7ZIyeVFH(6432shrw> zbD7DL*kx8NzHwu>df@w#KP|4uW512&nDJZn?>UJkO@G3EZTHZ}$){-6=}gRNv-R%_ zhj6Kk(c}*qx|Z`?Jv#OypDzDU9|$|@`n}g&Z_#wJ4R52TcDcm!8ZV~L3ise{VQ*C5 zUs{v?wU>Tr8T!M{_h@F#R%+wD8+`ewJAe10E>|ft zQDyK8s(veyW+fbENBbAtuGvzad(2-IoaRLnMu&5|s8zJ>ui5lR`FAvWUWR^k^aAQu znN`Ort;y|b844)VhALItp$E;q#oY>ca8?Ho>d|15-mr98@*4WPTHoEmo(GEQ!-BVP z?yRNU<4q178Zn86(WqaKVb&N_xw!1RAdGvZR|yHnXP%sr9ZfkYauSXX&|lY_BB^HI7lt&Tb?&9 zjin(Sr}Nt5QRF+i3_tPgrSJH@2Vt*6|K*F%dCL@&f1%1<#vdnb5DO%bNkh!_a7>%YJbLY>8E|j+`c&#`*jettAz8S{cZU8v$7nW zHAlaBaTql(`J9u}+S0~HUG(eISJ8^Yf9gj9Cv(VvowPRPHMtL5tU`XcO`A#;QG2Sl zq%KuWdhXFbsQ1cL`nAgmem(miE;OhI_iwyGU)lB;x7?YbzY7iLehEJMZ{5G&}+S)Lf4O8qqGCx z(E~k~cwr6~I}$^lwd>H4;(PVGdx<+(18Kw2zqtP83`pS$* z+GKI#koom^NzNS_S$jUUUtUGcd9i@{CFZK5-mcVW#-H?ir64Nu+d8$QsD z*YnT%THZb^f==|guU}}^0Q-NH)$Q=(6nEuMx^mr>m+jT6LuH=i2ea>DXg0vzzYC zK2EOpZ_woE$F%#KJ^I+Cd+ET~imLgB0Q&IvK2@b|7CF|1QLz^TsrKTzs*C#zy1l=z z-ZZE+g}%Ma_eU+KAHFC}9mYjc^NQ_Nw#N|~aDO$|9npv{EImY7Wf!xa{!V4>&Z2UC zH|XhA+fv_dZPdZnqxqoUmlUFYqk?|`JZPAg=t=XfNCRU|ogWS22>npy+A342I3vTtcwfeZTFqf;D#qX;B%`3`>t8uHp zGt|j(!)Gt-Jbg|E9VrpydJ>lC;UcF2iW-0XcZdYNtE-8EBaOOL;K zREu2t%WJ;=E^9g8`Ej@Y_v|0ocfC`ly@uPv$nHQ-ymAC#gBUw=&fR`1hKEF?bO zGnqThImWx2jMw`fY(h0}m!VHP*U*u+kJL+CW4rpyOU=N!_om?;IQm3asy^jc%2}2` z8^36#TeT|O;6_va{zNK=>>Z_Fs^P^uuROq>XEbyBRP}M@Q|kWBROKJnjHXOpOT)S( zQMJ_Bv~2ro?p*a-YO%aJRq{{aTQj=z-P6VO-JjQ_`w7$7QYexx*?wf(u*=-H&F|{$ zwf*erJ6gYgE|SX*Jfr{JcQ`$?yQz`&J^5Znyq+?(Bpp5bE6<+3gr3z+=PzqDre*zq zq{J>OXh?6n;HG6%ko<4boZq+(B~VTH+&}#y?U11f7?%gZ1mO-zG_G> zMi$n4jOoc+em$;Ne|DXInOc*3{`fr|J6v83{j3^)m>feX9%J}=&3*c&r{yT|RB!#C zhZoqj!LO=HkLq-%LV5o2L`CX4Hbbqd`hdE{Ow~tT{DnrJdd0gBw`IM$i~6|v7{yO4 zLgxl=;tyqx>M^T-%3RMbk-3VucfBI#;d|B`&)73&6OS3nkgIp}(X)lRb@w1$ zEg#Dj$L*q{-LKG)mtkD_$d7upLo29VVo{o6&7e`4J-A@IFg~}cJ+-KhHOr7+^jZ}c z(u$iWs8{jA6#4N6Kb`WN`|O&l{QdCKZ<&Gm%h%O-`K?!~`<5E~;cI^tysII9q1U1N zkH^!dYQy!yN6q{&wicaz)0Ivy8>ynpHDlk#R=rn|&b0Z|NRF;^kSpIlLW8%2Q^I#g zRf+Z{KGci-`- z6=(IdD|>kS7ZX+0kAB>1P_U};&1?R$`4axTr8}1{v4$@HABxVyk;}J@;^$6_N=c!m zVWgxYii{$ul(I^ZnMx(3kffrbp@EDv$&3hPM1x->DGEtLLqv+ANOE8A^Zp4Q&-1;n z>zvOy_xN=<@!c5l_JugDGl|FT`9lR6R}nRO6rQ{5^Cv;mX}zl|9Ui}o-c6|EF57Hr z^0&!67}a#ip|Z*#B3^}Y7I@7(~X1YYLb?CPmg{T8n^R3R6|iTHJS6=KUA z1Rr7q6)ZW2>+}D>CoYRD#tg&EnGaalm1~sS;trFhv9wI%3?{6ahVEl?=*{#T+W6ry zlRPa>OLKnGHSgaL-MO7zzuiNt=d_dMi;cqNF`?b0x*OWLbXHqX<9;{Xa`;CYUQ>De zTXUMhCXix$BE@e?;ksvy=t1IW?D%Vd5`8tW?9oInjFivIk*Rw!+%l3eW19-S5r0bY ztsz{Qc?3ZrYbydt);0g z6Ifd9IOyH<<5P~x(8v3Fur)f5+cRC5)cp@sRu)3NUlkCcbqfD!RuK<0qA53i(4@DI z;O4xWjx_b+bL)Fjc=eoTWj?1|l?495(G$lVlj&na8WKjRvKMU?^l#uqZge#YE%(&9 z#UESJt21F48QFAI%>cf0tFS2LIpIYaJ`~JiE8@%{dh-lPt}3EQ+DS}CIR+E&-NUKE z0JO9{p|99U^YyPlXMGF#_DAx6t%s@9Z3eS2Sw>}2+I)L|CygCmN#70b!n(AaeM~zj z%q!*4Y(4_EE*CrR%|w@BI@|d<24$K1nB3J|%AC8FtY4?lpXk*n=WZCRu8h-8`m`ui z3P#&)(Q;x3bIaDH>VVg*^Z7=|S=Y0iGuvs;X2E;<`;Kl@42DkRHLOURMICOY^nKNN z9vjk&h?XWCovcLZ@jlo!?s>5oODfu8=Hc`pKhjCw!0N>X-RR{YR-ME#Yj8Q=J6dqZ zcI8pt`;$=0^x-*v)`I?a6FnxynDBKkzThQkPnU)NrcjDBG-Rh5{@}dd3vxRcO-)l@ zvfy_m!vA{!hM%b*vl)fhy(Wm%GphRdJA? z6h-An(RI^27L+pvGn_ZG^HWD*Rg61Z_v|Y@xEjwB1l@(biswrtGAL!3HeH^fODhV+ z>A%6pNh*92joB(f-GPm?Pw5ao&5_}9@B3Ԗn#Mbk9%CF$mS;~G#?Lw-+Kb1^=L``OjY=-t2^t&`8+E$#pJHz

c@^1OP7@^mvH{DEQpWH_EHt+iE_-)VU|$a;YLZCL?+Eoc-^GRZ z(Ku5w6&JK;QKan;c2LBM?3Y!tBw-FJjNU_H($YBopDmm31k>mf^eA@L)F z5MMhTLI1+If`%Dg2r|dhq;|4XxkX2mV!_=#*!-3C$Zmee+U)L=bk|%~9{Pl)d(R}V zQ~ls*fO4N2=BIpRriN8G_oR!54hhC!4*bhM2&bU|q$szXs^#A@rSTh(ytssmG<47a zi#mSm$~G+AU5q<>wo_Bj8w&6)LV0>FON?EP$2-FL_hZIrZQjnd3BT=&KgcpB(9v6> zGN`!yGx5JQDERJ+C4CO8M0OZ*?JMw9;071JQ(*L7ma^tn)6X(%N_y@=%qK|0!n%g`)r<^2r=8$U5M;Kpwf{fO481FF;MMa`C zGPoC!je)4Z8z$5F6zx@BB=yS!@V%w7Vz#$0swgne-6Up z#Fa2xF@`E%h~ew@NV1z|P5g=$e|vNjPKMv&GSc~&p(RUq9allW;5~gvQ=n;j_Uy~q zA28W|fG>`=!6c^(_|&ICU#kbv*(VJYfAbw5^hE~Q`<@DWY!LYyMRCW^{{&V_n$NX< zPLUtXnPreHem*B}G1e ziitnGv22wE`?kpjGyfiD4xrHytH|ld0S*71zc-gXdan8aYFZiX}He zf59sr7q$m#&uVCK*d)4q`7m=%2&6RW0P@!mzW1WhY`p3)x}E-*1wR%iXUPb>aax0! zo6c|t%%zfE3+@uJhT7bYaq~m7NPmVrUtcYT0^b5S1wBG)VK#p;tep(}0=fEEUCiAj z%?GdBOFmh@VHNNgou{6o+;c6?NyTF8e{(TTHI+^*2}I6{ef*qEAgY^UFy+E!SZ>or zX0a$GZdk|WTNI#I$%}T1)R9KmEVgJ)Hi}<~aB<6HIF>nrmUrDDFA0CDURX`GYu>|p z{ck$?+?|XX=0L1_4VBhsq4DD|w)#Le=_wz;)^lM*Ht>E1k!@kcKbo{VNI{dJkjxFBBqFS`@ z(T_Hh1OIl&UZzK1c2b;V2F#UYh zMfydb@a(5EcMeLV@8u;}Fv1K|_HQAj&zbPPJ(+#E8bm$?9t201H=y@e4^$$=M~EN_ZvRknBObSUEbPI$@_h zoqkN(LSh?ZsLApT#Riz7%DRI6c#}?-w}di{tW~7$n#?R3cA#2*C%hMGV(26(e82h# z*Pma)@nv&xX5AE&b`C(z++%EG+8s1UZDS7in{dMPKL7D5kerkU^W=xB=pSt(Tr1)W z-LUCwk&6uFC3x@yZB8()bs|34uH&ED_5K_g3p*fX6DeEGVOrnXB`!miWorjH`7 zDkt&|n{C*kTg=7{G!(e3d5Axen<8Z4`Al4PE(cZn0WX~+HldAi;rG|@T!w6>a`wSTtAe($aA7G8Gf|Iq6u&H z_pr#n18L*ww=}KCfGR#_^C+_@EK~YMCl={p@R}c#n|~YLY7?-i@d5lcEo5pRE|A2> z_x$Y#6B3{0$4(u}z#lw}oGI~Z`Nmn>xVL)_{NlIQ(q z`=h>4)sGUk|6V@kF6_pb))x2+9@YpxnSN&mlIv+Xr22RAkm1uPAvO-ro^D3ZxM|Ee zR14FMwBTLwggOz2gkQ2K-SY{D+|N_U{2ZpUZzNq5gD&=38FkO+Hst(fPh#VU9 z_c;o5CUVtruPJ5EQ}P+T7Z>-0(-DoGG(z|m+$@rC>CJH(ED}g+NwTDKWex=#y2R~7 z?m{Hd5Ek$25NTb^Mkec{(PADwO*NqT1v)HxiwgO~e8i6)!9Od>qLa(sQ-%2`Hsje$ zy7=H7z4H4-uV3d=!JQ8Jmv)u@QaI_7<^5WHwJOYKb~yUV%Uc7QA0v|U9jHmxD! z#R0r~wmvrfJjlDFw$Ln%Dz3fdD`GO@X?^DuxGOSH&OO?Fb0kmE3BbPZKViLU5%i4r z(!T%P;4?4_4V^C#ICVC^s5ApfVIEBNnmhU4Y{RNbaS|C<%4W3HVy*m3rn+$_mC4BR zk$kF`A@pvfZMXDp8LgvFHc3{_8c#X}$ zlPjn2KG*~|n{U#+raIcBaGU0hJwfB{ZXngU2|QY*2iIL2U|K#16P9k}6;c6o>z^Kf z!E7kZjnkXBiFp67mT3>2D)3Xk5KuiAJFZs2L;E>)n!MuE#^zJ^CQZsdDM|U0)W~v! zB#i$$(Z`u(^q~GJy%?2*O-JmRaNc}^U-qqF3Vl&K~<>!#Mjn)))+>z_H&LF#)3&=J88=?(4#6pDmW&0Z5b@@1!WEt>Gzfu~h zHw`80XHtZHCPkx^BKR))Xnl?R>w7R-LWm+8?Bx%}iIUp8r%(;DoH=>0?cGD zlIilPeDs%{bb7~F?mzwr-5jM&k&hSRS;}Kn`F?^@nm9%3+L5N#MLMMuN-C}q)E;_) zp0AzE9}ItiO-{BvdQ=oX=D)?MwpqfQJeDsTKbb}>w&fEwOOdJfhvf|YiNww4Xtmi< z3TUWfg((4okL(Cl4;`v+>VuE#2~3ytYC z`4(*3RgMd7YcN(ci!QPbl%3PX?w%K<`Yu@5M}{)F*`hGh7d$?JqxRo3n~Xz7(2I>} zJY0Gi>Ob`J-LAJNbm3h7CR2tkk`9Xr??iu)6*N{hVeWqoG&w_!F22}HRdNk9`cF0+ zAhww<75|~j6`RS0m(Uu$fyheR%pAh{NMGzC1{_bIJp;d>vyMShZW1ZSu7P$$H|sOF ziL$98Wa@UB{)?4hpEV80Z%!ybGB6%X($g@m-xF4jR_yOvOE}n+k%GTAB=x-!tNxR| zrwyi?_lcN(Ab)?a8JqjRP?+3K{GDXNR3QmJ>kCY3-4uFVt1skz4noH^g@zu?fy5ng z-haGX@F(Z;RqdcZ8;xkwhm*(?B{n3!3QrH0GOL%55ctv_?;;u?t(eM7+-jk`JA~I| zdc#58fO%d14)Mh~G<%US2iV`Ek54m6dC+M}+f+lp3c@jI-g)}GM~2I8u7qTFBn5pL z1plB<%tYS_-vX!7AU8cMbroi=T~Y`gW5J7KztG{^I;el1NloW!xX9r=cx4u_iQ<## z<`z?^Sw@lnWFb#-=_pBNpJX3e#$%e-bxQh|N-Iu1;{ku=uzbxo_O@vZ%_zS?n^v_` zsniE@E&Y$=PdTt}m$hlTvlZNg7ShJA4T!PzA!CntT4FPR#)eL%EiZ++zj-Ua)}093 zo;^J2!$f*JK#Qe5vxMJg37W9i2R_5X*{wMr$)zlxCk*g}$?6)Y#AK4pLtk!wDF@c0 z?y=$FC9v;^reST%urADp(t=(>=kP$(MDBt%PSK`Yx2=$EZjzSu@WT@W7%(w4ve(z<|lus(!=%g6sPEiLuHp( z`l_vTBV`(Y#Zt+0o&=74E{0pACg0wD1(JDdC{nmk<$`G(ppin8qSnFCZWJ~SapO*2 z5!7qaO#NaZc)5Qgm-BAJhPhfyN+S_@XLSWesu(Z-=yGkhZupKhD)TG|ps zoo_Yx?6+&NE24)Sv$xW{g979HJO}pb0qpwOXSA=Zf|8xXpmR2Y8|f%vpL!;BS8t~D z??VOOe=j5_-@t*6i*)Ah6FfY$o?4H7B3b_%^w?Dme$Lv&uZggC=Wf%>V_Ll7)^Vy_ zKc6N}?V}|x)!BZM>pBaCL?wp^;-=*eI-02%=n^S}#Cr2^+_{B8pT_WC;2)Bw( znnlh_y-25RJy$Zjfo1n}sbKvjK?9M-cdvMSOny%>o_pw8bSIOUavlCoyLhtXDo9*< z%P*)8f~0#aEwlbdH{54&gWy}-NTI_`T-f<6w}gnOzv*e!aLwTwSOwT4G9 z%V!^DJIzCc^>!>%YbLSt-jr!H4hdFIu|UWRw97hT*M&+roj-_aJKk_F&oo+fi+HD2 zHocpc#x>(q$wGu^*Sot^IPNnawSEIFn^?-FBqFHGm(z~&O(gnEoV}fM9y^XtXO61H z6fv)a-&r_}b||;7vcckX`=~yD_c@jP^uDmhuh}&1ZVmrc(2IK`Oj+OthWAHrK(wKh z3=SG2>6I;ANG@dtp@89**(}XE2CojSq^nBva9Lsk+y6rq-^y=N)cyygSac8eIl8zO zzMm*z9!*q|;B^kGu`cvApDbTa>qG~^eMT95cXfo8-Yj_Kjbti6_aK_RrArBg_&f42 z)0yQ@`fvMarCJ^|tPjx_(_%UnaFC51T|g=eh36eU4e7nZxZJ5p=rGKr-EIrfelL?* z{Z6ENsy!5Dkw-Vgr&Cy+3r@e^i-@udR8twsM%}K*jVV?{a<}30K9-fewA zwWO93jkDwZNV6-Ok1;%k=^=%@ziJSb?G9$jX-#y|r2tWVNl*`#7I>!R2rt>e&s`ow z?Ps3h!1?2}KDvYtF-*e0D+$!GdOpc4T0n{ocKDt%7+eQ;O5)QWzQkF@HLN$;9~T@ilC=68ij+Ew zSrG}ObTAhWO|>cEJwSv-1a6>z5?7d! z&Ul>NA%R=>bVxHto7|Sor_#{@6d`bq@5e^d38@_Vd+{m0sZ`OLbDeCn(Q|BFosP|C z(}Ra3NBI9`5;#4$l=_(p-Y}`+p@R_4}Cl;xb)0l7Os1Guh&e zN+iG5gt9(+)0}Cy1^(|cTei|3 z7nNja%L_B4KKe{C(`KMCVJ14>iDA zevup!AshLIZTwt=jiowV?`Ro4o}mr@_MLR=T00BbC-`Gh>#5|DkVUrB60+<$u#8=c ztg!t^OdLXEtKQ>cPA4w-=ELG*I*$?Z1$Qi3*!zXPG)a0r==Q&iX^%7x5)qIB&O^nORx4dQ|r~?(8?dqf9x7U zgG5L1@iwm5S^5M+!<7&a^qKbGQ6f*LBRuhlG&U`r1<}rS%F_@s=K)(teM%P(e_tld zz1ckY>|;8mpvj_i8p(RaMfN1E0H#rM$nN+TlE1G_AD`bQ zau(7ULph&Dafgo^Y4@1xeDL4Z__Oi`X>1rwxaE!ILN0#s&}S_D=zHYr9i^AUoKP~k z3aLrINb1XN7Wq0KJt>YX;bafZ*&D&O{+S1zr4#wM?1$Jt6n0DGe~+~@K7CO?HXKs4cM%|@p3{5!g)TJi6e zkEv$#C0?`XAk{mK;wRHOko-81&J?9kdsGptbD4n--2^^Bq!Ut4GI?f&l#qe0<&%fa zAYAd~SI2o$oM{;@MGZqt&}#N-{y)s!dKBBC+tgWvz@c@;9+>&pXUZn$EtkMKq!$ z2qMp?QLuJ7lAKp#&ihr!*AYCLL_c<9cr59rE91YVXK`@OeKu{@YG{2`7oc7x>b4Uy zY@ZK7XSGoI?p5e{b;kjcdh&)>Szp|yReYr_O|eUwHNSn#7x+!9Y*$b4}@4m z(E=Y!79!U{=T(-lZyD1uKWZyoo~cg{JA(N-jVFk3oWozqNsy6<5!)(nO-kc$AaCvn zTzgYbW`h~MyY9+ct8C%?xRN@o-BtW(=>OeTu`_U$IbB`kzDhuLhbiWi9ilJ%G60b!=JbK{68^ z%bcbUq>5!KY^D2geAWJfDRb?qVzMWj^ibG?eXWl5caTCF?9Ou#kdw-)cgpifx9&+ zRHB2IOY~9i=-;%-s{?rhv#I<0JW}X5PKh3gWL7wp^8cO|^pG2<@_3AH<p>yt=f=6ohr@Hc1k196-W5$3#xSafF)Ejlxb9sC0*Jo2Nxlq zx8z+69;Y!rG;Tc-*d+45&_uE^Z`sz4jd;s;Qh6zZ-GI|fe*P@9eY#B7`(9GMi6|V6 zJMrdP1pScnruUxf`GZFy*sdT$k7K>balGzjl7gbt z70Y1%9<73un>hurVhlT^%dEshslVYK8@W6kYp<>23pdRo6`4Xl{^>|aHof3~1eRx$ zkok{!q(D(!zN9#BB|Tmn$Y<&Qg;sbM4^!5r4HGpm)l!DC=Z)rfjVv(iVm5OM^1)?y zclgAtpt40FTxG-vig_@An=PM-*;n)VERVqmtBYXcZ@R#6q80n5cAl~i{pHV!?o;B% z<6J|j120$wPrf0CQ(Y=dUTr6h>@23nEBokXMmaaqS`MZ6ny89fNV!h780kJ7vO`zV zk%Qf&(zz8&Z;vFg=duvV_QlVZ*UazHdLc_$&I$ts-*t19@cXEORYfw)e*8~Lh%11+ zX9&s-29bhhIHHFMdFiz+^f$PMsm3ij}D2i!ws6;NU>4@o2@)t4cUyF@*HT3!ZFB2(7leO9;P5;mhvu?Is7Q z^-?Pfw)#$0BfhZbhglpFZt8js@>z+mZ4wavHlD@+bfPA zm(#ejhmTOzcb+S0S_t~(Y|PYHMVIf#z((MSZj2bk1}*LvwjA(-ia~vBf*M&1QA_c>51KNk`BeDuGr_Y51_8RGShdb}uW9v?q zKBAAZ)(_zmv<*pY>HzxVsEzTmVeDqO80>v3S>bvas;oQ*q-L!B4TG8$x%0$DTL*mEtfueCH_aY6{>y#|A=E3N?(b<2MXlsqym~QhZm7 zYmJe7^1acxnmvq(S=-Uu^!2z_-9(R$sUy(-9fcHr;U{+;BCphMT=nf3(jJpapLZ5w z%*QGGzftLE^lgYVc}6eVKVd=55#FJ-AJ>a*sdrQl$wcXqSdJUe@~y`>yak+}zF&+n%7Edh(RzD|lo7jPUl40xH&T zWru{F@LS^$wq3Q9bToHhlV>~LR@ku>1q>TvreSq`g1|fXl4x^3Jq`Yi@&AU9<FQ1o9}f0dId!fX%OZ-RTL$LQH$hl+ICu`pXjVU;RK*zk8PaE?nhS zf%9qgUR@H`oPlvO{K+c$H(n+fp(bT8y{Rtd%WdPSWa?H@7S7PaAJgz_+e8=|3Rgf` zj-Ws-C4SOG6PA%0m~VdxXGdgm``tqJQreq-CH|ygcY=|%{Rue=SwQ7}6~spm#7XZC zI4~LBcD|aDg}y4aj+^kD(SoAC8p6xy&X4VzL5{9VP!}ytAP8Y+gQhgdOvKV`I?WR9lhvJL> zXu3MF1hRQ@?EQ*f@*6Xo2Wu+OjS)@ECw3bB)?I<8{vJ5)5`_A0S^9qZ4D_#T5wz}m zc;j`0rYY>@WlK#ldH-u}JmD(c5i+359{q!h*%c;HHXYTv57_v28=R{j4sDxS8fKPD z0nPi!^GPW4xn)4hPu#+Xi0$w(ccH2fWjKlE(9_L9G`M~q$g?mi4i z5yyz0Je(fFAzvm<>z}@dO@KO$y(5b=pI@+^uYag{>12NMPB67URc9yHC`00AJ)hFG z1fA}!m?bAljh<#~;IiSQxa~fMc&U-uno(F}s85&V-N@vp2z^rNW2eVG!(PAVY$9)` zL5B{IO+y{Ujl7R_KUN?(-;B@tc?~shUXVxJ1ypYKM)Gn^dN@cO%hNjPfYc=l6Z&f6 ze4~Z@hdut|W!yY64nE4EydrHiC4RU97s>DR`#=?a(yoP9eF>tMf5+R&(p=p73l-KZ zW;&a@X|2pUu*{u8_IV0hnezZXKR+P<`vl6{Y|h#gOsGFd5-r{PptC(2{|y_Cod#{p zf0s6NmEw`%@&g0r6p-5RQz$-pn}Ywkz;R;()ki!Qo~JjhiCThvr(aXV?+%=pS;kEj z9BIEt63L&iqQFVv^wVlJRX9qr%;!?n(|C|?^0A;A!S5NBosCeFG```yIK94`gdMHg zBsaB7IM+NV_TU;;ks$`9u_w68p3it>f1HlqOQx`duPk@dbmYFB&#B=k;@zIfG%2fRsq}P z$8&E%S1=UVvmLRuH2az%MO^Pkfy79>zM4R(a^1{fgd`H4c;ThcgZIlXlR1mHAgj}n z`h-krwaHBOca0G(`en+tZSIEdv4yPNrWWGbPLyP60*NEDxmHFAKdW|8iKOU@k?qZ7Hn8-f7 zY$o}=XRu(XvamD$X4{<-V7y~H*BCgTtg|AS$X-ACHE09#{Hsg+yg4%&DFLl^Yi9qx z8Q;|B@U7?K$+uFTjUJUxE5{h4VAy8No*O_?9WTh_TL8J6RFLj+M|xD>M>Fdxa5VHW zX*GwjHs?}=t&rocrDG^(%?mQ$dJNsJH!)2@ha`@p%h2&&Bgwzo#d0TmPDWX zvbm{3UUgXzJN9NC<=C9!s#lgn&iglc+-W53HBM~RIi;7*A-H#R zRh!Y1<=1#oastHTA8}c#fc|nDmT0_%%4P~#m0gWwAYFx~SI#8UF&<*AdgLdT#m390 zlh2z+Oy$}=j7pw~M6FVqIDR}1Bz!@it25~~`O-q~6N0}fff3U@_=Zu*P^j8Qa*yjs zY5QhAxWf}lTR-vcgKo4aX(5jMIE_J<*HgfX%Vf7949)YyFjVCR)(Cs=?mIoOTznWy zKJ-)N-NlHRXvS2847*j$|M%w=6fm`osT-J5U-|_an5}@X@wVJHqaUS9t?0w{+1NDc z1@sC%Y1Y@FNXh6S>7B=^DQ7w!B-ruao9l6Zy#pTFZKCb%!??x)p`V6rrrF^G@Ob}z zIyL+?MkERxQlHSy^mjjPKNm(hBg!#RHwpF8L;2f46)I~cwm{#CZ0|dA&pvTX*|w35 zuRH~r$`O35+FZJGZVy!}e}uxcI3E9ECK*aQP|nMt^xNw=8T_Y)mBTH#sld03CdjkT zZjJaUVa>*=*I@Ab;dHV~3&RCJu{-xZ)!tu9%_C2P{r8Ygq|Twmi?*{-DKDuqU6ZX} zag=h7h9FaX9EIm;kXU0Z?S1u&R+zNnQu|4!t=|fxzE^BU-g%nx!~wne&gXN_vv*j_Kq*s+#5dJg3Gt2l@JK-zd&an&cDR z$mZKSGWfa&?vlT_SnGI9$sNoG-0#HeiyC}}ju9n)bBAyK0ct;8Ned3B<843{H?0u7 zBk8mJwUR3xERV+%!NVJH8BlO2qz9_T*f|hzPZHxcuY>7{!3~Nm7IMw~Lg(2QUp&3< z294r@FjG?Da$C;OaMx0y6Q_m#ExW^Rx_RQXh!@*savG8sOW4La|De$##paK0!)&>` z^sOcU101S&S^Fc>7JU0K#9bRmOyw2n-IxgX zgl>56wxL6oI!HSE1Xd%uASL^mW$p^2fa}ft-}wLv{iqD1FN0{`wgY@!_c?M?h~dvg zY+x9whtH!DXu-Q)p7p{87Gacju#E#x|cL&Zy)AGzO)GdG{`W4ZGw z>}w{%Hm{>uerMR!=h1jzJ%d|}^rzZ1bJV4r#i$X}Fy*;3S&r^yB@*AL{!TMguihkg zZ%6v>(uOtK8~M`SVI-Gk%p|=H(Xc;(ZW+kYy7X=+8@tniv+L;dR~vNJ%J8ML+UV^q zISl-_)+bC-6a$VeqNe39xMI*o zTK&3;xyW16@Igh?nW0PfQ)aX5@Nn97?P_{q&r-hg=JpC?C|>-CA8fPn>U&1EOa9GViOi)^9vzL zXW0$0K0JA@#$5wf}RrtSwAs;TubVp)QcMPsh7vb=K3< zM#s}NNN#KeEo*$qTFiw#eQu+WVb7z|zJJ1eA!sF=57YAG0vrkUrxPxY)Sj12T`ras z{OS{(Jo_Dm$0M1kW(ciINuuJ_hUezINj-&Xzk$8f z{7k_-m5`g_KWDdS3d3^I7VlET9K>e$mTpQ zpriyJrs8}6W1R-`&`5jQJ74from_CnU6$va>qXnE+4xg_jB>nXR-5o>r)Hv%AM|>&*#vX0#nDltXx7#v8ahouQ~jaa66g zj7x@TAWX%AXPLLtsH2wjsZ@9u9mmjKZ#nW*`$BO|7pZ#uaClDNP0wnAP*Q)D_5|4R zM|E##<@;XNzvni!)Va{-z;4R-S|@ZD4@Ji$UH0ATDEWsS=M~BC1>Na4Vzx=)ZA~og zSSmxuU*D#mmZcQ9ubNH`Jx}-k&q{2_0*#u>_c?4MulX%B?Z7swSdxeq^%GPbJ{;rb z55cUFb$s4872GonVB5n#Vxp}I|8{C5N$AGn?d}Ko7AnKtlT+|v;UYR1UkLNBE7^z3 zL3nQH#_AL6Ve~PP6%?JJQA5^~*wYYrJ-EmuG!-#nzbi|vTR`^xHMkI*Ox;=Md5obk zT67)wwj-79&4#c&4AgCQm3KY zf-rpNa#|>KcAk~1z^toYTx~}&m|+6ByT#$Mg%V%&@+%g;dP=Dd;iS~)$!<3Ogi&uU zJ7#&3boTY|GooIUnSPwF=sAOL!WphNu7^|>Yf|j5!I-9{$+neS;81uK25%K3;}iPi zXzENa)2EVJkTJPM1#)-GG*~`b$^U43(9l;|Of=UX?GuLb>rda}zouX~t@=)%Y{oP5 zH`D3ky+^FR%$Llvhf;|CGh|g-@xT9OlgkD-)_?ahoqc(kt_qxzM(##7wyc=KrtV_T z8KG^vG9{_E2o2?eCnGx!f8R}D`a({7jo(A)KYUNCW=XKMKMhfy+e`X2H6%JUhAq=J zMMkkUof7(Lov;2vbCo8v$F1b1#l;vcQpT@d*^MJ-dYHSd7A^cfj0H6W)4pr2%uo5A z&|~n7o8~O1s&3&*R~=ErRx0AuP8+-$Sxv`QyTR$23yn4Pr5jnf?BJP!g2rmjUyd3< z4((If<#Ww+FhGyy(F@W$^^IRzAaIt`f8jylUm-uM0Vhi{y75GphpR21injYuFZqS_ z%GG?reIFEliGhJxEH)NhWq%v@!f(MR&ACfQa-~TjE0X3N??>6{$&lKn zhCm(Q$Tb@-{iOg8)^y;~mUwz#K8DHM-bz12zk>P2)6rH?d1ohd?)=8jQIF`up3D5c zzYTp@R|#K*FVrY1FnZ@Z$hW1Quk3sv^ueiv<#tG5!z+j3Cx zk?7^g7c^k^P?|K{9qJbu`p5Q>Lc(M|Jg^$uM{Dqzn_?hdughNz+el?49z0y}5#;~v zio?HCFRW3+bu3)NAa4#EY_Mc;`r6wkvqwW@ma;Z%h0{fzZ37PTEg0smx9tyFD*c zLbMAzu;~+dU;4#%l#N1>brXCCugAqHw%q?`wa~|Oi4tPQQr-tC`YRJnyG$mdCspXL z&8#5xXyR65u~b8j=jE8)OK<% zD^;0BIcgKw;TJYEd;TG0_-zyV%UAOyzdGpm{H=VoVkZsQDCGLmt?1;UvygF}K-0F2 zX49mig1y}6kJCi%cnei&=XT>xovpx7BjwCH35 zMrL<`oJW$mMlg8kNkBpyI&orO5ULQN)ZTbCW9Opr~R6 zO$KZZrPAPul6;tZ52hDH(utM`cdB7e zz9BjYHxif#rC5qB6j%lQVCvlc4|;RTaZ9N72wdZgtqpCo08WwmG&jQ|%UHv8MXl|xGyRY#09rl>_dH{RnUrHh6hxjmiLs}qe%hS&f zriwHNEWPT6T18bp!L%0M{+=*0T0$dFub{*G@~LZ#8V~%ggcnyrSV@$=kXJUqe+R5F zs{I@DF4#gMGDoRkX)`oSHnQ5Kc4T^@i9H+Aj0X2+X4C3Jq8o;=0Zt6(jE~a1?pyRZ z(}OL%>q^B>zVorq|3kQ#99wtklh7A;l4}lGNqW|Ma9bw@C*o?jS<+-Ywf3N?9*wYw z@?x1ER#5ucdTOp%LsBL}o^kb8e9$_;MO9CsGdzL0SkG@E|@~O=o?sLs43E zhWQG;qG?h_P&3>^n=_Q?&$d=1J{bbHlGmu?<9YI@eoQ{&fMHu_AUEI%ckVH!+5<=M zB77DeeVxG0&AE*WHkaA_Z5cFRbtvBwV~<0X2f6zGZxm>`4DY(C5q-T94ci|f*V2w} zEYqYDIlI|uhcFyH_8E?&Be9^*03lljqI_!g48&cs{ zp%>!4GxO;9g|pJdSU5cgzh=qs48v@S_KsmU;{s9dS;21{SWQzKWJ!L24GlQc1<|%T zh@?g_nY!PUJSU$246DS_fLk!^+J&bepp@^_e{#pD~0a z3(j*n@*vUBe6Ds$0mD301>fo(eeFtNI%}n2JpC^AsCM9g?7azeRK@l$TqgqwA!-8w zLk!w#z=#Y@2nvc2W>AC{f})~HNCHGc5|V(Rs8MEQ2r{ZDjo@`c%@tHcz^JIGsHmWb z6G;dlPN?YRB6fYhU!AJ%!x4w~zW-b6eQSLOPWIVVyQ+5W+BNMO`l;O?iuS7u<*H?^ z#J0&V%JW7wkoUdTUFICWmf zM6^rq$-_f`6)%iwZH@1~L&P1~hx5A=<%0Vsi@v+CUY0w_nj$0RfCjIMiH%>Ex1VvQ zxPQof;^UiO1HELi>>eB(ymRP%qG)svSvYjHEO=>`<)3?j=q7KJ1L8M{4}Uwy+WKgv z+~2lou%h=N@$rAh1!ph1Mow>ECAPd&CwDfVCqDfM=h&{^6ujs7IpXY$H>_C?%n?*3e^U)fZ)=yj|3IPj^AXxCldJmlVBr#ZRu+Ps4}3y9xC*=Wh9 z8{Urnc&n|H()rSdvyQ*uK9cCCzXNfFp?g8tw8&1eKzicko|MIo`=*PpN_;|G( zjSPpu5z(yo)7^tC7W)Ab*Vn^t{hMMfT$qXvx(`Y%2pqW2#Rc24|CPUtep zN| zdG+Kso4ELn0w~vt)lq*oZx}f1ETKTjNtb88u70dUy2ERJIRHs62+q%uMjQwl?NZ% z`L%eZ{0`h{JVQ3Wbe^>%rIS2#_C?~Ge$UB_F82l>Z-Tj>b(-9sRwdJS{}O!cgBAGd=PtZo^q*Oe-8d=Y z!WGft{vHG6dCyN3Q@&UxlXmR3E?kE((S!HO@pmVP{^PdGpGR+j9duE!{fLPo_Psjs za?$T{d__WV=I~B(4%+8E=QWqpJUiu-rB8^`re|9J@}DCo9Jy5-T7O*hDcTVH@QGW* zSA}ck`$N8#XVupRKNxkj9MUI7OnWg;Jkj!D+4$jcvTL(OR^ImK*g|%)A~8FtV2&Z?C$#DudVMABY(I* zcth@;Vs-Jk^7~JJlG9#%4L0V7LE z(cE4?$os#0UVd@MjNlbJa%IoOx5(TskIEs~?^XW5e)-)+rw9AaX(XE;|IxbP)`jxj z|Nbm?C3Ta&=c_E=nJ>$Cu%6fMirwfZn*@JZb3nd$bGaOL{wfiV^?m<&-G%4cr{z=m z!^PVvR|f-qcgT#Im&B#--6XE5>>%o|`9<_twAE@AeSsMNTauWw_^^0*$|6}={+@jO z(2Megt@Gr-_@KNe;V1dT^*_j*UN6aCo|_f?5^M0kM0X0l(_ye!k-tX_Jo9!D%s$up z=EH&Vq7Oz`F?Wp@w~pN(eB!5f#7{eB$+wfgmOUHXDOOeX7kTrt#NcJ8iQmRevYx;6 zc4@UPl=HWIAY&i6-I}oG1~~_hoz;afqux>&p$8x*roD;IfH)8$2<+#&xx<8JxTkR@0bX=TN~*GzUl zugLmt>@(6oy;v@IdVt8R-w-TVKTl*FJ41dw*CT%EeOqwvlwGn%)?RD(j5%`Q^FyUC zxsfnL+Zw=a$J$^^tPzgT>atE%%69-rg$r-kc%(eA6SCowQEA)S;2}NfVsm z&b$u4J5?cWnt*x9T{~sY8N-4NlQ)YW8m<-H-i6(H%_zCC3C^TEe~%b{*<=}2{hN6F z!y~fQx{<*pAN?ZN_e>YRpH?PbeEL1Bbn{Z&7y6XA2zUCAD4ZbD&mSauwOAs*h>DTR ze=L<-KR6^trM)SZFWW7fT#;gRPK^;wXZ4gx>-vhPzZ))cvn~{oT|DA~0Ol_@?+w1# zCsW?A>GELjh4bZUNB<>rOWzQ07Oj!5;GV{*Km2MH^=U35zG-jm>NZXkv?;JoKd?f? zL{Ag*$KEe@M>Y`C_CGAw=OtSQZyPS(JN+x`_v{0r^@^p|s5$88-o={siuJO=j5*?= zzVqaShwqmgeqJZf+EOMLw*Or2o>?RBXxUe6zG#m1Q@@7d`W;dpd}6UUvrE%pm)jqd zzV&HPuzW`{H!8Dz5)Al zVSXd*mR z`~tb7VWs@+rh4nvvr5F4g7GqAC+>B;^Aanf_6^Z?&EiQs3(&4~{%;^~Qd{ zW=nn)PxKusr!+YzN0vs4jolB3nzydSn*GD_xt~54PrdYoRondu+2xK;t%;}A$@Ohv zPniFJto&k__~wJ1qD|vRtlzGlA*TNFRxszIL^lG?iAO5Hczhpv~_UT z;vTYB<`V1uNJ|`;d7X9V;9KRs2P`=h_l!Kda;MzXqNDsW@b9R- z7v@*UM?E)*8$TW=Ck+rm|K*3}lxJ|C$K$_=oC_8Qk8kTJA6Z`%{HoteviXABt^4si zYm=(lSaDC^CsvLeEgm~Jo(|_@?ht*9&*Z)V`bp8o5Zz4PY)h! z6D=OO=g#0Y_?@Y{yY&jbb9Ot~e%r0qe>*=cXD=KR{N%$@aWEzje0)V4S={bdv0&OP zIj#Q=nNr(Gh~%GS&D`DcKkfGfe~ElS6rQ-kdN0W*-@W)(`OzCGa?1H>B7M)>vh_W8 z1%DcdcI4oE*`~t|F}S>i6;<=HY_NF0xOBw7#jTIj%M-)ilKURbw*I~GA^B6mdh6I5 zN5qU??^wZ<4x(LRnY^WYP;9H&6ufOdexqRcg|fEz1+n|!a{NwGjQoD?647h%x$>M} z=gSY~m&>sw=ZF!j*NI`D90+zOUM||TPPeAF+acywj1PW2ai;uv>r=rWzda&`-uZ1X z^{dsg==mCX+tWXYSwAhZI(=}zSQc3p{B-RJdCAJYu+vLgbe}uM`n7(oJUZ#E;5FV=a{PI7tl=MR5^=A*61??QPo~Y{Zfc4z|MlyD#5S}Y<6z`3a)}{BKFXDgR80`M@5eGGb6N1}vnI;GsujUriC@UNxNg?` zS);|yEz7Kl>qm;|&1cKWxSzM#T|*miZ#cSSVYu(k+^3C<>vQ_3g;)#-{MWd)2MBk%l zSrey?6z8sZM$Wr$ocwLpMZs(5M#(o0FAh#wk%>J-4_FU2Y#|2R+&EZxpO9PXH;Gqb ztK`#5KM>#F-BNu0@g3IXwWCGXHBr_Z#hqlkA%m^5598$ChAren_q-uL8v0VuKVz79 z@U8>a&ogGq)Y%?!)wm(@h2bNufA4r(tm(g4uIRf}tn0MdI{x80`O!}ktn02zk{P{< zgXJsQh}9RIB`@{|#myg-S!1T=V4Z7}Jm+8o@oe?v;2EF3Bd0zzM3gN0j~IE}XRUee z71^r8f?(yAM`ZhZkBA0WR)`B9+#bAk%5Gsz_*O)>J1#2Yhl+D>9;oJrTjZlLTjWdo zr^_PjA-<{Y4(s9c*Tvw?KL)!d%oj)R?O?r^*Gb$yZb|U0*RB#Pe!t#|Sy(AMwK_+f zhjq!A*C&blHh(0RCzJ<&>6tD!{9a^r`1c25b#7zaq4Ku4ef#Sx3By$xMbyvvaac7IrT!XJml5Mg_iCac*v?8}Ai=v@> z<@O!b@~uUa#Kax#LcUZS>KJAiaQvR#Jf*kFOT{5So2#QkW;bG@}bAh zmLDH$CQ4q4kyp<6L0(b!vpl}IpZIw4!{X6~>t*wYnuxtuePHE`zgiwWcfIVI-WBJR zKa~IN|AAca`1j(WE%(W%gJXiD&OKesA9O%YxF=nnap^Ac*e7qvV>>>vzUmW@UGIM( z*a7QpH~(vnxO(-Tg}BiSj`3r!PO3 z?+&jMF)v;!CjF;}RelxjKKx~Sut$?ta$M&_!L%E?6XUPkGIMZ4_rIWmG*)b7!_-Q%m*Qnt3Us{X4tADaQ&n^=a zy4)?EJf{G^`BEr5wz*mShI^p;-ndjGbPbBNEsDkUo3EEUqFxuNyJ6?eo-Rks-4NV= z?^L<**Z+u~6R(lKkNz+ioRT8ults#JiF?G%CN0HfwK<|{L4OhR!D_K3vs3Va;{(L* z%x`47FZYS>mn@V|wCOAdKRQut5~=d`e~*!UYkJ|g(neTUu4^D3Z-<|`PU$DpA{xqj zUTH2CzHl(Ow{M#Gw##a3_p~-*?xMEA+4ZTiV~_LY<%@oi`Pi?0=+Oyc#n{%?lo$7k zDffI7yangudT#kN_|p1^W#FX)qWiJaafc*~!T(t!Yc9J%j_ZG^{ISEiR@%gG#b^KS z5j=YRdU5`%pU5q})8v`6?h<3Sw307&eN~*_{h<8(SfPkN_^epyzrmVzW4^4sAi|Qz zpB2%KzYX5wZ7+6gZXNukEM2}lVPNp(!oIS3-(RdV-+5L%k^6+`d8}BpD!fl-V0~DO z=pMXoNu_+b&pzwN3p$Gn-}z21y5m*(MVsGci`?ZR=l8FyE6O^`2G0zTmsPzZroQlB zYybXSaaa8N!N;m!lRK(B!4-#}6j!yvU6hk&$px?0S?7Fwso4F}?eb9jZgOjRo8aA>dhwBqS-6OiHVN~7u9|*emHZS82{X6d7z|Y zaNrZ)$%8M{N&n{w;?;3?T6f|ellJMaTOU4|B1c4CFS{(CFL1P1wi&!#1pD=~j^6&5 z*wJUMHT9EzVsx+V!N%$P#l+7S2H!b$o9NQyX}M|nTG{E)PAjk&(bRtA&*madw1gUp8fYdCn-n@=_a)HD8FYeR=-ma?w67 zr#wfrA5~U{tK*7oB)53{`1~UH6&07~w+Bn@%F1(c$BFhmhhEh_r@XwhVARC&d>kTm zJ(dHH5BCR7C^5)n#vU#1AdYV@0CDFN zDPo)`;%nf-W5qoV7Z1Mi3vr=`_o<2j<*W@rUN!Xid8QEt-zU|6tF^nkvp+; zQhr+J&K-Vsw61dGV+z)D?V=pIAsxHbIQZ&nijF${SV4ukkr~c>?NL2rp=P zZn;RwBV9q!r2NuyF7Ag9aW4+X8(&D@q30RU<%BRhO`@bXc_8lDj~5P& z@J-n=A0E7vu`@m|%|vb(tOI@=esyP z9d4b|@Rv_^+?{;~^|LG!6M0Kj{FyX1G*w?X3BV^+#Dl9NL)v{EDXy;Rw)3i5%O9wT z%m~zES3Fq1QK`VtI#Cj+iO3GrGyxtV0yRO2-?HyfT(c%EP$PsNtDXU*I1MrT>yXE! z7|=xFckW3?H{?IbBbL^VtIY6Z+?BecYeJ}t13{_2=O)4aWK8RK_3U4?uMV+;TDVCElxM6U0l4& z4ZT+!o_e>pw76VzQhUN@_OcJUiISoc+Z3N4ZYyqhy2M7N={iW znpn`pdmls|!Zhd_;^^MTyS&~)Tqb@$+#6`zBj(qKzCmmGde%lFEe~W7(J@dLac(f1U`Gv|E@r1s8{@P^3hb}xW-Sc2Q<1sRUu7zYSDv&1P zpAFeF?Kq@uLPs$_t|L$ z>aGTzDPN{V{bpKGNUNbEt^JUc~5! zfqq0IKJpTScxG4MtMX4;lkZnRmy9x^u24264GdGE|2FQ1!tbwL@8W^w+Ys?Od3eG_ z!+IR&qFL>rA)hRN%7Sr`cf;p$2OaZ#s`M7PXqaBKE4>*G8m31YrpLPEOz$?(F)YiU zX&Jdpgu9VPs^8Y@Xwa~HjNTH`jd`K08J2ax)UmEoCb8aFzTUO0kE}0I_-37A-DEvX zg)Vtf*Vrya`Iexbq5c83MVj=9K1wXD7tnRa6YKc4Dg$+$sqgS(S}GlU8(yeyl&wksLd5wE=#A_Q z6xoh?oZE^(l^~Tg?>Qp>rXmlmsMQ3!1bd?jydqC@~Ywv@`v=z?s#p=~bGGqCZN9tt*q-D~0*%6+67#?4Ag*P&%zB^^{ zjHYV@cO$b(q(gdVI*+*GGyE{VCq}nm|eTMHvpd(Is7~P|; z+{5sw(@xnkez$Dz0v*FqX3*tO+1$o>g^gbfz1OzX z>2bV4K9&4S@C)k|NC)v7UdTWFsJDb{pOW=hNgxfdnZ$TJUb~H;TquuPv^h?9QQ@z> z0esNSPRm~#QyH+>H_>#osIe7kL^j$a(2@U1zuV)uKJX_`Do&(} z*(CIDX+7!le2W!5%es>u?_k^>@@ITZcO>*C1~g9nZcjSokMv4*=zG~_dIIz76RIG` z$_MKs0w{;7K+Ty#92R1+(qZz)^e6-JfN`cukGvQjn*T!{U@kx%yS}Cw>Am-%&3;Mc z%gCWKWMBp6*0SzLRnDnpnxC_+51 zziSRUX>RhrV-G^PIUY-#p|L0kp7xlI#PMxEmae=t9D_=o*CSBtj8ha6D@ z9nU|pr*w7Da}J0)6ncn{3}N;haiR;y{3Y~|etrnE=~uY$H7x89`&-zAJ?IZB@X|iE`Q;uiYYn3vikQ+8=p14xTt(g@%a4GDOn}O1x4j*{$5a0 zIE99)_Jex+M6bbF1!Y;c!u}-s_RjJT88|qT4mss8VvQ~+Dkz^4c86ICMzOF5!uHM_ zkp&AYj9nTT1Jl*0BG|b|TEfp;@+X(%6y=dX^OTpBQ(8)#5#CZ<8up_-O^2p?8HsX> zi^|H&3&z97c1uo)?E=G?PA?xZ_Z>PEwy*N6{L<3mP`pL?V{*z1Cgq1@QC2X%1co}A z@*tjD2KVfzzC*blU7DY7VpZSp=|6PHaDUd=oJp|y*|s`ZkChO^QYp&6g~1@SP?DNA z`h=p-Ee6x3T-=cvhECzGWOhmpOrTSGLXUiSlhN>uAcWG-25brAQ6+I0O;|^hVI5hk z;Wk1H6m}7!!#Skk2@O5aIl8A3q66zjh>j1(Fhp{q5bFpLej{NE(4lS-jwFQLxkSV1 zgh-!tkLj<_u!<0dsY8UYKOWUE8OABvA*T}}okJQPBLp2Q4daU?M0{u-6`h9={;7mW zzng}Ygpf->!;OSUcPAm@-%p5q(LkAu$xgh6UP8FH)vya81Prm{cH^jHJnO_ zaQg`n{~!!d2&*(aqTyq)w)-Isj}bC|Xs06aT>_Zwg&YXah5R&JLU^7K8wk%AVh3T0 z5T9#!ln{LSFq*;kOtC@3OtdG-tzniYyufaMT3%?kGc7Mdy8rMwl|6R_;xrG6MLo1R zf)$aWFd@ppQwGWy?5O^hbjYRviwZ~as%M8IE;>NH)I%0Y|95n(2Mm*jmk;BE_(KoV zrGF0%NzZ3L=u+)Z^_Mh!2WY4q@hAS|&OXH72>5}w5+@ybHV@QNKHIQjEXD zaeb@jEg}Q9UJvY9q%;10jGz61rkLB(D&J<@#)U3$@;3v|mXaG@+sH3h% zWCUtXL*D1f#*;|OYv;ojA0KS`E1;0Lsle`-kFEGE=ZnW#0Z{a~5L%nUs zFwl8{Z}LDp6m2*xJ5w$xprO4&WW0`Fg|pW&jGy0u$7F-|?22A* zmkPHy@CAK~+pp6|aHQenYY)O1-q>!uq3I84U8c@C>9O4y?a1=_K9IZc+T~E0y|_LB z<)Um;D2t1=&4V^~)^{U+;oIE|wxK4%_j)td9gp^l$v|0TRP@@`bHKhRlm&DjWs!-z zh`1OrV_y`?!jwZ)$*g@bC<7B#0Dlc}MM5^+0rzPB+x`jvOt%XZV<#G#CFqp$@J8X? zBQPGp%lauQht;Y+!~Y=G)u2y-53ybps5vH*>a2>mS}WsiuIEL^kvZ<%IDFMuj8lMk$zChap-LZo{j)8u9h(VYhX=bRBfZ$2QK? z!405c+Eor(r|vlIW$atxLCbQW{Wzus@-C_9_2vY--p=x(-g;+6Sl+vvG!#Q?Ix60< zVJ#47Iud+EJHqo@m1m{hhVq+rHRP`QL#D%i3~QmawC}L(H$2c@#P*Fmrg)Zx_@X<8 zhMV?5SDClZwa&Wbz;@51$2vhC*bW-mD5%#^SL(P{{8?NmqsO5WQ#IY>KcQnft3bzg z4#RWgYnIBFr-W_Vw0$w&a9jH^^q%dL$s6;9LVuzG!k&k)>`R27V+LC;q4ui^{Wsc1 z_SGR-`TezQ_o4%o--GoJz|S3?_Cr-BI{XWu*#P}l`l0K=sbu&R=!9>X;)DFK4p(L@ zR`rfJWfyJ&m|0J{S2z}pJ% zY`jhIj>X#-Zvb_%58jjQejGXG3i1Ej{2&>Qx1-cJTp{X@y{Bq6WNSa+Jz+K;t>`Nq z{#Z*E2^hTEkEQ&54xIk8Ik;C33dZr!CP@GA6CM7<*FUidVoI+b^29w+85$?xyaIi8 z=plY%2($giy70*^e3}bi=)&)J;m^46T`v497ygY4Z{QFS`9IUS>b6H3dK{V!x0BTG4>VQkEIvZK;45o#NoN|rXllOilGgn4el#2nkKsEmR6`Qx$* zbIOcK@DBz;FjkCcT(VIn(lj(|VXNIAO`*0)koL{I{4q2chVntTzsN_?#PM093d+mO z20!FsR8iWff+9B?U?5Gg!fe7nZB!AzCUU1=C^5G!_9Tx}7qBf+du&B}l@B^fdllxT z%5KLtp7uMxh8S-sd@3RAewBo1Bvue&u(XaaQHbq?u=5=vMCW>p5Q8g@=V-s0s^JPk z*zwj9qT{B1b6?>xLNC%q-6MTAA^58xgg@KR$QavRNVrG4?ULxALXFzjgUhoamXQC!$J)!2`@ys5Vpa1oDlJSPKbQ$CqzC^0Mag)jL8iB z`)G(OD^&OjLWEa#Oz6R8;*g87XSPND(04K1AVSEaT;sH3G9Q&1uFx=`;bR(BX}D3t z%^E@j{?UV^m2D2xKR6T!2$NI=HX*QW49f~XTFkSlh(2(?eV!>Fd{i*(vhVK9kl_UPp z{_A{5!)F9u@K&M_{2?8AHjkl$-6E6+`rQD!v4#lH&=Ephp=TTDD8EKAT{$8~r1M|Xadz@Zgy%Kwyo~!44gZ3*cV|p#;7f0^e5*sTrYjD*dh8zLn zhX~IGjVA+h+6;S+kRqn5`BsL8DcEa8n@k_zXd2=&yu`83Rrs;5gYz8hkE+;$X3Gwr zfxWAoYxL0&EsXLvX{3ls9ef%^-ZsDi`R!Y9d8%Bl!wX7snRiVcr-0`S=W{5GKlcQ z&Y4a7v65{~ipQ1{%MkhrtsSoH9-KF2IQ*cu@Vf@{UVHCrpO7EsjIiOAfG3s}A6n{vMbMRFE^x9|-=Bkh*Y+h>rTZE_v5B|DX3}0!>Wtm5N!{Jb; z(9&WL9PN!rXM?u6OxJV4*I);khPce0(VsE@OGWuIo^w2lYrA`<^?IdAI6mx`i!*vf zTLIGw>zBW-4*m>Jw^N1x4E~0mGN4VX92G1U`8Q>ZnMG|Zc#Ri}sGo;z*<4*q*>GI| z^{pwon?J4rl=y2|R25Kk=C41QA zqp|~yk*}l_Jx}*)*{y=?dTQB$Mum?8e+LjY5*3nd81p3{bC2&X>;+p?9|@T;Ugn*7 zOs%ecF;dpz6`=5R`NW&NpWyJ+39kT!KZ%A@4=4fT|I!+I49nW+5O zx`O>>ORy#pc0)T0yE^tg{{9W>Z=dX2bc~>T}j7x7kpFay5PGT=(~Xz>Yvd$lc&GZG1fan@6>X$A<);H5;(I0(R9Q}-2e70^c z;AV7=bkIj7e-n=d{a~9-xyPcOns&i_yY+4j^scwoJ6pccB^|Cn>mBM)63Vqa0-j`+?faAB8Y>y4Ti0R$O|)ZD`zypr zTQBXF#tpjD6#M>@XjkPrrgGQom)Q4@{nI$l65_$`sC?1wtG`gexl6b7VB{P4sP+lE$F0?*&(DVe6#{k9N2zrnBduG-H01M)$+(LEM>nhoDy!~L(q)i}cSaqz=&0n=h!)IFBdr8+I1Eop?bO?oCR z+O|#Eaa@44Zd=aT{@Mo6xs6)q-qy0VDlm4Uyb(Wji*36o!9M4Vu>P}tk`L;ON=Mu2 zxn_}~>z~ml+uvXNmTn&!1po2D&C$6U&_e95cvg13!@h#Ava9_l7 zq-WZLmEh?TEyG-fQT6{B4QF={>x;-6kvA~^s*6)OyyFFM#H^_(U zdMp=H9vH`|eeYaHbne$Lf;-nC)qZyHN8Y$kf#tyU6tlLUr|Ia=eGiFfYZ!*QU}$at z4c#-KC#WN#w1;bV(mUO`u1$KbcRJl!hp1=C;589`CJ(*guJ-7IPwqkBIV7HwAy4Gj z@X-}?JR`-h&Un#>D0k-H>5l%yZub!n_nk0YGU9dWSS#)khn$!e%TcZIKn{$nkwXS( zNaN^7**nvKEkMcnujGgMfRcw>PSM)kE!XE*hpOzpo4m$>H$rE9pnf>}Ahwb04?<^f zpj+992m4{rSJ-WaGvCg*RNn;oFb~Y1vv0z_^|%{M9Y_1#0(ev)P;;J&7di)-sCbbc z`jaHaYjEs4QR5NH-kJ7xgpJzQu3pV8P@f_oXZo`Zj5_k*evS`ACG+ewJf3 zGu~qz`Y-aS`d08B9w+%Z$HSa|3HoZxo#9uKVb8Op1lIn|Aw_dTn@pTAlmbm2<&Or7eoBNJ`mt6vj3^`0DdU3{a9FUay~I?|9_^# zA0|kVf{xyPEal(UfzyAbF>FH1ur*Mub>Q@;eb;_$|0)Mg{}G(fs>hjI+UTM~=ND}M zXo2~;dbZ*3sqS-NeBmdQkaCJtmcOuXq_U1WaoiQ8(UE{$i|Y-@Z}cGwzY)+pWSj2h zAzp~L8gB|-hMx_%AFm1jFun&Mo5p`D@Iv5y07<_O&^(Oqd%RWfhZ$S>b1yX4FD7fe z1HR2e`b&UkM&JXG@m=HcALGK^Yl$;l{*^8~0G#?k`!M6LcKLHHe=PhlMppiZUH-oS zFMWBQdap9d^c!mof1^fu`T^jEJd>cB&eHtGJ+&s+xZ7zH^aMq`I$c_AR zEy+Bj-{HbP0?zuyawGi#mwzMhlF<<5qy1Y0AAnImb&&Kuft!c%Uj=*vI(Oa&L;q}- ze~}BHGx{;NJqz*7z4L`k#Og0wd&w^s$hgdFXb&3%}Tf4|d_> zT=?BC{5}`H!G&`T%{)y1dl#Kg>vQ5adGi77lk=TcDR3xrYw$G_U*)iHn^O^$d!5Zfh z^eN*yiQYwF$H)b1b?*(AmrpvMqBjfJWNOO*ug3{3yO$IfPD#^ecuv|1aPmUCR>3eUhblGEy;t@Y%_2XYO#&Y&mEVQS5TH)S}-0v9dJ1mg8bRW zhCkWJKxY=YD+RmI+)MF@o=)mulPkdJg8affb?gX4A<5xLlG+h*N@DDn2+4hXaUSj< zD*bcfyn;z55fgXCYV-W(rF|-&a6bRIzk%s7yUxQ;lX40t=4TZb{fTCtdZR>mZ^Iu; zm|GuQ`8a7e#HnMnH$1q){Y4c=y2VA|8WGxU;);PAP(s@+l(-;*Kkm->qo{0tLP6bn z<4PtEcTBmQ^u1D{7@T>5qhi<`bIUIuTb#!TbS1V=zhSpeeyP0;#TB^rbAYr+NYYAaYU8ms&4R>hBaRUAK0k#DEmN>#6)$oLdZP8zoE?vWJ8uEN7 z-A8IT7Lf5wChirYLc`e_Zq{&{h8(|jYpwB zSNYbkt%j2c!T$;kA0tFQsx&-8h zNWM1`@1^(DfPNS8-WWp?GJeo7zGOn+K82XgA^UFOagvo>`-*iI6JCYFbE+Is`D+#GT8g3>W zfUzeb;@v}tcoR6bh5H~4D>USpXzJHWLd3s|5b+-(yaIg0+jt5g(rZhI^tx!+M?=4c zBQ+eWVY!AC8deb^-#ZDBzx^5>BfJv&bQ&P|Ox19nhHEw4tl=&V6R@a8`nDPlA{+$$ z(D)7w_iK2J5OU#!n{r7c1RrfR>_dormk@%_3PQ+bB_a4*N7xQ?U&5=k1LyBk*e(B!Q-eVYny?*J$&$ag&Ms&kjT;gy<(juZe%AK$$^oJ1qW)lv!+wX`W z(0k&Dw2-hr@=w^uZqFn7+4JxSFgKO%!yp&JOzhnwgzBk}U7bi_rReta&%OZvZ~V|lpa+XgrD82)^4aPsGaE_x9#9`0Z>#9vQ* zGd`%SdNLc^x}s4x|2e`h@P_v(39PM>UZnwEO}JRBEqgrkYlU|i){V|Z9`%|m zc*8nu(r6uTH^j?y-SJ}m^6&&rlk7;lrz7osps9dh(cCCKw>&*-)p~Yzpr)-}&y9qf z8e%V*_2a@y=-^>AuZPFrg}NNh$J-2VE?zV_hta$ohCUybh?n_^_Nui5-qWPkliPCL z5$oaH>xZUCtveXEHrN*tfjkP_i)P$N_Y3kGiTvTd!&>f};M$cJ-;AGk7;^0$%|CkA z#Yzv*WyG2CLi4Hic_>~Gj_VazhYanf!muWe>t-o_d%cD0bKHX`Kx@j9`m+=HvB1lE zmCjI}5mr1Ud-Zwl60S`LEUt+&t@v#4igm9jyj*`x@L~;yaaV-nrOuvRkC+yckI7dQ^5vE>EW33$Lv@(4qs%BjFZf^>BR8{` zVFl>8K7})NwOs3Ae57N#gzB6!&LuBE{;dkg2R!rcFXoTyTcghb&ld&ivM*U>uUl36 zYq1`+muW_!%qR;dT{lgK{eCrDx%LHrbFZ0+E7`;aeaG6}CQtuW(P*#Y;^EG_zaleu z=jnBIPeVTdT0_)fV&u`J{XkwM^RPi9+$ZwLtqcUbdj;EIU3EZ2>Fq9|eUwf0Y=hyOlo?5>{TF!N0oPP`H+$gOd zCOx)qb{_n-tUC#aC$VIHEoBwsg*>wDJtl}>rH3}N2JK{01=45ToT~5d{N59&TZS?* zdokH|$spS5iWOKl#JaJO74qC2$~P_A0nhImVjrdl`9T=AgNi?| zzt)FvT({;LJ>9qt9FOvi_uX4R`iwx`8NS!*Vtv!<;(d45CqutT~pBNm~Lc5fk@FN4NmOu{@%1ha7&K z5wagzHyV5qXI^5lkAUv1=PA{?{mu5*qF)NvP1L_2xbyp4oMHa< zJeG0fKIR=m^H5#g(_|IuCiXo*AD``D_g#G<&qTV3lDcT@Q%9ePx~c0r${OcRjvvykVS5jXcF85u!lHUB~w#>+mKZHlv9!a3(S?jvD1_8Csy8-)0n z4F_p)6}MtXEhZ~VuyvP7V+?sw$X5udYPIDzpH!?L|Z8@!jiFfXQ^KsyI_=pg)~ z#5Ikrl0YQ#(zH45tyK9%+k86p#S1zuf66*O8+&0OM-?~n=|O$8GEkooKY6CRiWhAm zVFV!EjNG_~R8*s#ZEW{rA^k?V4-LwDhq^7L|=-1d`Z}^qviu}4?&Lgy%@`~?~L_hT;_pZW~0237USdC4EI}O zZzt{w#%tn)Xp+1;?J+#*I2Ok}=b*Lg8~2QHpU&YEwjOb>TMOiY@#4Fd{So7$4q>{a z+7_0x(Rt><#QzT3Qudz%^f-OD=j1s8+Z~&)aF~yD7<2y%%AtngOrQHBWPs_vnj@R} z4&@JhwCilPqfAxVm@^@`$3zToYWYyMKHN(K`QrWz6vr@@Q4-T(9*sWJAD$S?qtC{P zVwCww=R&9hoCh62IdIRSDu--c4kh;f#J?*CwO0( zq4sM3l)EfU8p~W|!Tf&WkSp5>>>)n9QqyryJI4p4an9>ZnUNm*J5^a=d?kF419?>Y zv=B~}E9wGugtSpekG#>{f`2@8(1*Oc_s)OmN{_NJv|FLP$mjo9T9m;qhYXx)-LKQ) zKK;ZD%vo8+Xd^HmjB~dClzm6I*?Mg24D)O70njb=4LZ)fnMSN9eD;OoXUs1#K33y$ zTW-)f(C#fnA284xo;QhXe{CDY!8%L&sBC-O=*i&t*$T2bJ`aDB` z_NdOpz0R{r?P=%OV+7)}c?r`h9Pv<@d(5!Nk-574i=<2i^KQ;4kaytf?A#V}!Xg_ejiWP646KZgp zjaLgBmuz3adxgfo(s+r+S83d@@xU1s`w+Hz8dsrLK~vGvdZ=w4#=e2fLx z9U^YShYq1#hub{WekgfC$2h++vhz7~Z{VNko+l7^Z6x?KGPgVxA-fIT&>z}mRjJON z#4WjNRsB&f^SE$dXk1p}uZ0fB4bXa-UZUqSsQ*|piZePHh?svUj{1o3&as049olcD zlhjkj>pRyT%b>o8%8zX__KK_gH3-}iZJ1%}67w>EdO2&$ zA*18F{zS)Xb$lDOKjU(?fo$uY@fn_fL%t|`@^Av*ywi#ERl^VcoZ;MhIY_7H)=Rd_ zzdGV${N$-8++uY8V52!a4+{Blj?XrDH>;j$&b|qv>f41eE z%Y|j@ufrLSy$#?-e~u%ge6vGyylqI6?mU~oa3+3~T~p|9(q@!jAH+>rWB^jnPgQ;< zZ!EuLyzzKhek@DAm3ZgjWjXo)ReP$-k^MN!5o6|hmSrx>vOJ!k$vJ6dKGd39J_g!7)t(hlrtt$INDEmVw z7t%3YL*&a@_OJ`>je#5e?XsT}D*G2TPjTRh;SB#Q`vVTkF8|zt90A zk38^{_ZK|D_PLk*@b@05mr=ejPfNfP`+VvV@2{JVmwH5f;`=#tXOGsSa=;OIGx1WN z*e0lTmJGCOC6EWwFl~WTzj{-@vK@6E?F4Nyp*8@rzQ}=}Qn#RwUdDquh%sK$cIXcE zhIPqZud#lYv`*_E_0aT(ZvCq~h5l9i6a9mJA7EL57ZC{5d%;Sfn%dFVdm@+2v&PFWeqd|2{+<+%rTS=oYdSmS@SFE{D_U0+Vw^5w%mp7r_vv3O}) zJWqdfTu2=4oElpg|31L!#_!Q+up9VgN$HG=@4?_`lnp@i!S_A7yg3_moB_TR46;jrkv`+FLvQWT=xg@5Y8zjNWoT=;2@D#Y^Q-G=5N-qD5ka^b^W_&67Sn+u=q z!XI?u&%5xqTsS7>p@;na=)x^5B$$W(Sa=FO#Lsr&7rAim7dH>-2fFY~7oO+BC%W(% zEP`- zuetEgTsSsZsQzL)+7+HZJO-TogAeT{@kSh&;3>h|82teclh_+C)n&NFICTXV4tH@+ zZEkU%I+--SpscK*XiQc~c=*iU$O550*M~DCS>;no^3xPW=oBGiqE~KtsXC&gZgqtt zjwCtbq6>cX>0~E{Q?VI7bc$sKw~{C2O)m5B%kYXz8`43&-+ z!NPej%g4z-{JNJp3lvH?L=xr{V#BF9{9IT^{z-GN5%TFoAN=6npx&L0H**p4znET^ zh=R1dtiHYd@WP>=D=|UAsiiCXUdNvc^VtWLjEngNF8cE1-H={aWEGFPIjyK5k0kaj zyzs~xg>vBG#H=Eeci4-Et8&VUI%bV7%o$@MrK36y6{fS(Iq3()^3n>(WLPQsUgOX5 zhuE}PHc>)KX`?2N7QL?;mNl$kOi_O6z@pK`c7`yE!mY|CFc@bhaDWqs_zK1pfJ((4q##^sb2 z*aVo_jmZKxy@y`s&m3awx+7VqDt#8rJ%P5Vp6bIa}g_8#aT06v&w2xe@4sft0nvc5WTQXvajh51Ee z%Evn8OSS4bY;eb{%huw zOn!bTg;|hRO#M=`^eb6bb~%jCDa5SSj(k|=(1C;d+ZqsxNG0Y{p_BBdtVm@XEaJTD znEbNxQBzc&!~f#cuhPqU(0T(U_U4o`Zg63<|^1xH(QM z!rA_vMW(K@;2+*A)V$ca3vtN8JgFTE-#_kX_MEY>+0ZglLV?Eg?VV{?bElM?^_;0d zZ&hQ7Cd=lVt!3EJk$crJ^%^(?r{VL^Dj5ZK97w09YWqhcGXIs~wp8~BVacG2ESi)x zy0~<_t#N2e|3HK6*g{r^I(1k&sg^g4gB54Ht>dwKKP5w+#Gri#XP$c7^XcS1_SvMC zeeL;bazFd5QF4EKF3+=DQ$f!&RI>@Mz&xMuN_&lzXSsF~NBEVIEB!lXG?U6BAqY`-#`U z#!L5Wh1f@k$@d|`>yTf}U6_tK1A0B?(Zp{MBAaleeNPDET|pcRSJfKs*N}4?x(_0} z33ejFEXaotd`%_HhAoFM2YeBZ!kP$SF3zSA=E0ssh;(@OL~_19>p2?hB*e$SPECmN z@nHDI^n8Q`NS6@#96<=fRRtmVc#IHot|lCZwHCrc+$XQ`c#MgY$0Hs>q}zuOa^qN? z@>Rdfi0~YHQ*L_*A&-69U)`hL7iZ^)7vYV;3wm|dvlupD;^1?IhCJ(;i~%UmdL~bR zUTAk*3?-6bU{hy1A*WR0{ZYPzpjT%+%TUh5%aKn)l$*L&9pyNiILdbgVILs^g#92# zLg?c*!ih+aa1z#+2yX%3gp;ub0P{xj6r@jhE7B)KzI=qpS03SQI73GWW#?~P0de$sPeO#Fos#t< z5ien~hN&91)v%j}eKhm~QXV4!TUJ1iHD0da62iM+C)D_6!n;w?%;19A;QJO zj>&LdK+>fXzY6t=5dM?3|2*xl&X9u7jdZ^UQu{h==xA z=4ZNwvo)NjVWoyV6G*xMAmzW75c0^-h=j)5c$g^ME<4{R-!%-E<$@o*c&~T83ehte3nXh?-i=h{UNM{$}66{YSq`V0shlFN;OVJ(?E6L3Z zmGC0)PuLc6(e4`nncg-+==Cnb~d2tM}_ zB7Pd$$)|^K1nMv0eW<^L_oEyM!FL`Z_^u!X-y1aCNw@;}Cj{T#7J!I%03qn|2;n~& zkbF(ma5^FKF`MvW$b%61s3b%_RuF=ICE+FDU%OWWlE2Rhk-u*Vk-rm!$e$+(5c%su z2)?rk!A}Jt@>xkZ0&*urJUa;Qha6y!CtU&|^4XRU{AX)8l@R$@LWq2B*Y5kZJMH-_ zj}wI8n}@~;V+oNzkH!-Sk?%x8w!A0)oC9Aops5d!fN zwg;bt&5#aZYsiZ*9r{X$!1xpqh^z}?EAT;xO!hO$%wy z?=#S0cocdJ9brVs6?%Yz+y?-DDj@WM)g9==YyJ;L^iA{@7>2{T+Nq zV&6+7&Vhg*XchKDVefJ(?ofrs^Egvn2D2^S zv+Q_hZnCK0{=dVj9&4Ip&s`xmJDybsPmafdQ$9Wijy$F-pYmMxaegn%os~0ev~3*_T(?f_b#h#k2gV|7c_4+H$Wt?syltyB~aF z-?$CU{wlhOKzI+FsNnwUS@olF20R(@^LL`Lmm@Age?v*);_=P&V*#1|{V4lsTDKb_ zJmchENy3j%ZYqrob>=;3PZvAvEFcni^2lYUP9PS6)3tw{Wa@mhT6>F=5NHng#z`wBSnj=HP)M;X}o zwKXXf@76zyxOrzc+k$8C&AadUz0RbGy_J>b8+$Y7pQpC$JTvc02! zLm$phnQ+Jhgdf^l8&i$n1g@^=#l4F=@O$2jCkFS_pI%kb3q5t+I~{TE1p1JI{ot`x zXcwx%Kh6q}uMLQ2>MZ6Pdpj%aGZr`FtgffpKEvm!##vIdgZ!2Tj8?_D>#MfZE)p6s)KzhV)?Lhn@D>*1?C&%( zr#?&p4~{1Y7MIrIG!;ya=56gZ~O z>@(k|IobyGo8lGFbCf0ZlJ{p&e@8%O+fxv~=94^+OjuPv0b$9*CI_zi&aj&{RFx%mdyMkq`a`0Q16pD87&n_@f@$GR4{V!$)x^0OffEkaUz~Ea*%g z9zvek7BG!i)J@ha{*K!KrXlb<2jFuf?l_?T20*9myiM&knSSFC&kCK^5}g+1bpm$) zn6yTLMxDh#-WY~yv8{eGD3kJZSl)eL_;i+OIl|7+x|pG90*Kp5a|LKpbv*oicN34P z6Q<9}0bMNeVxN^dS$@3xg1n_cc874c0cE!zka783>9t2ZtoO+{3*klENc??X zMWC)9XnJYB13Dg-f#HetmxE?D?oe>^LmI=+>EMTHIqxvQzW9^+Cd^ynQgnMn*=9nn z={gTSN7_!A?MA$bnkGThxa-po;O_*^ZWw(N(0kHQCghQMXjBoXf#44B(R=N8>Am(& zeKUG#fzHT@ed>AOn=(9IEILG)oh~X4wLXbvmZn)+e=FSGzxVEzC+@z$?@HjeYINP< zZ=S?rOj?Gp12lhq9Q--UViCgfTolVa^-pMKgT|w2;x!HB;f&{Dr1iapxi%(O(SXbF za=bnY?=cMg>i}to=RAY+4XzDr#sr)D{@UZ+7cIoCqyb!qcP!or&~cw>6uzGaJcLf< zIN&tA^YDESAlFz%;C&F^Je#*K67zP1i^0o1g42QX$02!-C-=~`!Z+7>o&w~Z?z`|- z;(Z)=Z@gZ7zYZ7$cpqRVyxZ{JfOjn39(dF74#t~^cPri#7^8E}Br?Lk(TBM-#zpoV z2__Jnb01cRX?3{Y_4sQcswB4A)N_tujgIj5CLtQtH=6zT&i*z5;i3@6rVr1T_}grB z3(+DC)*0M!fH?wr@z;H+>yVR%=b6-*6Y%2Z1Aa;P?LS+8GyJtUlb*!i|D(Pn1F}ve zVqW0X1@gvoMrn{CZ4LaL@hD$qy&B&`4(behcAy4!f;isE!ujGz=9hQ3!2ddY$AX^U zFj<6XU>Cx8>0XtO&JKFYI#!46Kza{obUhU%{@VYCxi^8U>HGf1&uvf=q9lZiC?u6o z_)vrpN=b-HQW_M6Bq@>*G8Z9p2q9$7oXqo-l#n5F=Hz*=bN8v!b^SiRzvuh<|DXNp zw9b3)wfA0o?{)Tc?p|jVACB+-z>l{F!yzB7C9?X)I33KVg>d*&{gq-)O7qZu@GoKa zU8v4YVN;Fbq8^v<`LJ^p2@a1jmY4TUP_O#Jyo=7>E=5>6&2v#_X`obRsdd*r^?^Jz zR$$G~_bDn4I4grSasuOx2aN(B@rN*8zRkg}5`{TOFs=k#h*#d84k?8~-gGX8_|+K| zbcT3IuW0>a%mKmeFzvzHhI1D2Yk_~E0)9G^B-l@Tx`OLi?#9&H}{AWphD(o{R7p#G!nI_7K zoQ8N*k6cPh!DgH_AB6g+yc6M1@w*_MN@YTR6G%p8LnRA!&bJS~SwyF`eU`w!mInEATC2+YMd%~%ry}ypgP%IEIE{Pd zaoO_;S?L>U#6$Btbt(0?EDW+!`A`=0A&YsiUuz)X zeTfRnL44%Lr=xY_X_=OUpNH}BwP?P(gb(MaELzY($jZk@Jq$;iC9pXo+2$hsK)+a^ zrwtuKUqpP^e0;fq&EWzV&)3?O`*=au5#gmhOV5t+UIcH9^!L8)7I;-mW$S679eBCW z2CJbznk*f4mQD=PnWG?`Q%I)~)A4*ZhjRsQqypYd@Sb30$z;67;1xep)K}~TpEm0c zmV%G;S_OQ+J%5mO19++Z#X8po?V>8@*Aaf6C>NDgi`f*T@yHl$DzpcU6+%Bv`h(Xb z8t0h2T1?)ET5F$%v$9dVnaKYu=BKnap*bqa=n5VhgDHF}!c|!P2=h`)gbQV^hO!Y~ zH3xi$3%nVa(@}qs4l3w_I`{>BPzC=O@SSCH#WTJq8282f-w5ysWs#)JeTERj&T%yWxcR){rE(47Nb;jKF8}7g3stsj` zz(uy^4*=8ekk*2J#YNwTPsJ65i^E0V^Pzd^M^M_;r}IW8;MV~y0ZU8V-vyPuQ@}bJ zd#V_R%jcvuaZhv7x}fNn3z3R4rso<@SY73_y6WDz^7sQj-o699I}qlZe4C+fLR)J{ z(Ekvoxdz#R5c5(0Mfq_e9(+&xCB0Xmb`BNgDYl72X~CYtOIOB6_RgpsNw&#S(bx_? zoNs+;$@nZ7AN6m(xngy>81e=_*_;b=!FSM^g`QshJQ{K)3>QTO2i%>rk zMdcEnDWW**{qiAu4vkp(h<~~Qe#+-5_{Xtw;d$fNDH3a%|Djy09mvKKUT9RkoR%KpThE`_8?wGaUQccv~D0iiWer5m*NQNQ~hgE-NQCWdEG~` zy7!Q)d&nKm*RxCEFrwDf&o~zj!M!^6SY`W`G|!N=56yS@Ho*Fd`lE^PkK>kMN;(94 ztuaqW0t7>n+Mh@Ta{`dJZ(%+{%#U%>~okUY0+N2Q>eX zPm|U(^p1k+gR_pU!^>K(FL5$`fz1(X)-QGu^^1#9r-FV{8od5to}hv`7rF#~ElKGK z?L*J8VCO@V)~T2)WYBy8eZd=yTU6F|?EAAXf%U+n1iPqus3+P(;mZp>fqmTinP^vf zeluA6k}Ni&_LbQ^lkp@n9xA(7X0lrl#nOoor87;G4s4LVBwG}em&YH{q4H&b&zA97 z|A7zo30|IrVi==xHh^w~&RqhH13e5H0J<8~0dyCrDJa=0qjuwMm7(mi{mc1JeW|_K zTHhP@R96zTw-TpK?SO9>%k}|CzxaBC-eTSh9i@7o#rFqddk*L$>l@P?1m!eha{#KZ zEKwWlbccNrgpr+!D$pktgp-XEN}tA4vROlO1o<`>Y=>0=Kdr-P&y{#cX5>*Qfy}f& z>InIiqO>3DLl$0UJTID<*E+$U?Cg+!=xZ&-e3?BHQq%`{ml!7gg@h0QFD$*ZuIo5#ZC+pYJMd^w4UKMG<2E|M2A1b~N z?tph`v!3EX=k;V0!fn_bCg2b0%mj}!lZX0U>O;|1mGmK;!c`Yn zD0H0koX%`MfgU%7UlwQzF08#dbzo~y>es-AzDs5!pXLrdARBMj3c5)BH_eNWq25Ra zq3%dOsGf!Kp7wlb?4)CqH_|aHBHNxqJnEb1c@o-+>Mud`JW(7} z59UY9_&yW0qf9oOD1Vv$!&VaNIFzLm%-Vs{5Vtw;)4N^y_98xUeIflqvTs6rXe5_0 zOHW=d>O1XFs1($x4X6ibXVzY*131}t38;;hZB>FuA*7N-M#c9FbmMLuJ zd$4k4$!s7~xvQAY%rEbcP~X9*Z#yO*^{3S4iSp&JPN8qYzofYcmBT<(4&tRTN%&31 zbMU!Ab_+=D35tD8ew?RyA?e9KeEnlT6VHpj6n!XUr1y%HF4^{#wFAAwhaFjzN0ODI z%w?r$Q~9`H8vBRv-&3IY6pzwSGfgRwYRxa#8(#lt{mhp&_9^u-ypCX8Elz-KXZ(Jl zY65I8X$kEPU5$bcajF&^J1M;%nW^IQIu z(oH}fvN*B)yf6>-B0u&~Jh8rzUI}u#A-?b)jM64v(m_g-)-kZ*SKb~LqV^y@VU9rQ z!JgF1CuoCkw8acubUuN;lSyOWR8Rv@b;PGQ&R9<({g?3Ogx`2Li+-4OEQJYw)2h8P;pc$>8(AMN$iceV9V zAADQGkIFB)=hN3mUC?*7)lBjG1=FbRr|{bar7Y^-^D!sIdwCAwrt|r^I{%x4EIbR+ zOT7MQNmB}=P{))nr7NT*$W0{`oK(1Bl&Zl%&W|9Tk4ldCteFpf)4)5bM|*Zpe$*t? z=esgLfl%B~0WeB_aSHsB<@^XLk|hiNrzwy*k|i5gs^9@ivRoBmx@uU>?Ur+VN@m|%m}=c2RTZIun$ zYI6aH;a*6S!bal~;$`3-+cvz@!~b+#LKwA=5Rc?67KKrr3h7gt)b?VRz{0ac{^hc> z^1HGGD%-fCU!r>9{2m>*#6e>uIsq5<)8XgtFsP4rJj!vCVCQOV&^V4A3Zx^n z9Diz(S-_GVwdB3&JYYWun?W}Hdph?VgvmYsWl|G56+4=J=u_|$ry%&zH#5h2jSUT$ z(!+-25U0d({Ks7T*mAN@=;B?lXNWh%x%A{b zfk)vA@%E-BVPU=c^t87{YAju6I>wB0nV^(`-k@GMVeB3{84Igmlb}#K^vu$CH@)L(BO*u;PQJ}S`Ix2INJ;u*uRgB zJ$U`iaN*^ne>;Hx_iTW{`j>Zr2^~S^Zzcr&w~c~{R2a|Sd%mwjP4G^ce_8}Y&x`QH z2;nMRwTfWeNjU7IiN*`qtN@O}C3CWHX?dm+u9gtQ)2ckbktm$fD}NY~KBY(Ys$@=< zo{k7pIIW+=;RYg1;YK1%>0630g;&@alBI7i7f$w|WKI_DCc+foLxd@P>Jw#7CV#L9 zQ+R|3Q~W3qrto+Xrf~YLgUreDPZnVcPZ42?pC-Z-o-V=^o+ZK*ep-YnoPJ*+b29nw ziZF%K8C-FAu?SOmsR&d06>21tKZ`nG-pSIZ?@J1p;$NkIypx6JiZI>AW3xr(WZ`sn zNx&2yT(1IC{&dzz=4AQ1ViqT03Lh=P6knwQ3ugMKDZ+gEm?+AeEdLY{rf_R13uf`7 zM3};}MVRuxD8dx3*A)MFCrjT#gem-q2vhtL5vK4^13ohT$>J{+VG7?U!W2JMgeg2z zgem-p2vfLTbNu6-EPW#prf?4true=hEQ=@mPd3hozrv|<*oWnvY(AjM83NJ011<^p zyMWRhfGA-{P#X8ikFYoBXB+yh5o`rjw3kdNOfoc2~^4kHNk4uPu9QQQ- zn}SmMH(8hv{th?`;WS5~aOzNL-Xo;n826@33Nk#R#d;ws0-ubV_pS+2KNrfnLLQ^u@4 z6X}zS!bLWV@Ei4Vr-i#hIa~@H1%GN2;;)CY36A&;foVL*$32Dj0;c|-!U$LNy)r*P zgi-%5gh%6EaO6jQC-whSpA?^LzI72{diUpmONgI~`*`qD{nbMKQs3qw3NOQbun5-@ z4Uv>aW8h#>d^6xE5x=b*{~%zJQOMsLI7Nh~0H*^B^3MaN{#wAa-%b6qfN9^GWEL>( zms9^s-zcW?=MrX)@_a3aOXV=_GYXFQwdAmY95$E3R&v-;4$Iq&^Op;sD2M0C;k9yj zyBt0xho8yeZ*mx$9p#S7+ei+Z$zeM=>@J5V%Hdc!yh09dm%~}WG(Jl4Oz`a|7yeNW zSHl8`#!Iq$K>V$Q1rfC!E(K^@ev!h$j{pmf^yvyP%`b%h<{>c6Cj^YmO@96m0A5P(n_PS~=qb$~ ztXa6OXb7V84S;F>K>abrZwDL$Y|AhX6mi+WaSZpDi|;OnL*#Ib99|}eQ{-@}96l&dR4lo@yvc*#E$_6dUm$9e|HQsa77GUr#GEV07G zd8lV4=HGTccuR0LWEXC1sCOWbe&^whXH_uq@Q)2b_Q?Ji$joqwG>to{GtqOS%NKr(AlnArFDDsur+~UiLK=~+45D~vPYtd81QWpDEe(Gc?iNa+G zRcabx79EklkXZH#teKOzfeJc5h%`1uv3PYFPFcaxXJA-0> z_uwG11xohNWE-3^t7ue_1N#hcmId<`&-luz$esGUiYLm{UAF%Skzp&3XGQFuy?YLl zV=LdD6vt+^G<)|7R!~x^J8^;)PYTNcT@SO4D5{I{SRy~B^c7OW=xVUPsQoL+^zZiX z%Gr?_lp!dP(yK7yN6j}D?KiHH8PQ5bL0xqpKpKGFXq>l?XDAF4G8pbXA*iD6L{{#Q ztE_4G;#5iweGSDX6MC=?TM?V&liBU#H7?LQ&?}g?f+|ah>Z-gf6!~9tg6wnhEETcD zIRsaDQ(_AAPF!CK>z^3@%EW4Ue^gQJ<^4^C*Kalx`C9wUrli=H8J|S8kc~vX#4!Cw zC1X|;1H7>_E@+g%Lxwh46mbw$FcV8;w^5dKxkW+tPofC>1BG8sYVaEDHfujGt5hCSSPBU}!}cUr=aWCBaz|G=Nr~9F;@fxFxGA z;*vL!D>9r(Qi=6k)*ZlZt+!XG%t&UB?l2NNxIYay_5)$U6qJupsml~RMLmMx#rk{! z@?Ez8gkDC#HUoxI`ZP@@`+>AoO7;V3pNeoY!?;V{D3 zY>OZ~8S`<%c!w3wa3W#EPi8okFw#$B_y}Rd&jKZRt`bIk+KVRqgfQYiXZR~lx- zet%7N6vK!{V~s;}2IL@$dWk2BdRam!WwyJgDCO~W;Bc_@{3|Lg(9|kX+8}&+bIrL6l7H+{PZ~qbe zp@b1m>rIM(no$_J;p;&iI!pD?g($*37!4r00_7qKxoAB`;TIXrC5m#XYsmbK8Fgkf zj8WcxqaXH;3Hzh`%wHWF)|8$e(XnVJqImc$i6%h~79PWBDx)_U%_T~UT|BsCZ_I)y z(z7MH3iZhFQbscwJq=3F>0L(i87*d%>@ZSzDWfXYWmuh2O-A(?l`=}-qoH^fj9M~k z%P84vq;NMzJs9<6G?dXWM#-)t@y9co$Y=_qsf^NhZ-_6G(dVH0t5Gl5o6?U$|3h>Q z_SK0_Mg0)Pb8Al&e7;2S`~@={M-dJ~lLai|HL0)9qgh^|BX5?v4d zB)S35C((_lN1}*tfK3LX)n^Ci#0X zN_H9vA7S)4qtekS@c#UB)fYXTqtFk5N5s88&9rno-{FBKU#{Z^b(uq6?58 z(YYL#PjnkD9bDV-91%@JI}_c3JrtslFO|`|jFu4HiT1&-tSH=`QL>jvIE7K(J|gnZ zCJdTS6!lz86!lz66!mPN3yOHQj0P~el+h!MW)nqyJSU2DRPc^Ze;4{+qKHrS4vB^` z%G*6eyCecr`)_14jZw0HNdDQ3US;$qqjwo4`-sH%oY8lTmN2S zpHV5J28@z@MdCAM)RIxMw@CiBjM_2kz-S66m6Nx-2))WAyc^{px(9kkbS>(cVV!z1 z{w|F2b{MIifGM8{MtM7oz`XrM&~)OT2z?=%j^~Id^go{{o<|+*d6FFZMCtit*q&iG zP)gr}(NOZo0~op!Z5vKrTFTM@^%;_pr61b$7rIED~{-Xq(}4s z+L>r3>WAn-$WIjdeU~Wso)87!SE7e7{$S&f?DEc;43MgtfPW;B%12u9;U8)iUmP|81>`Kvbp-i!W#DC)Zl!(l|h zmq--tlEv_IMzxyC!u3H(J_AOL88u}z7?j#OohZ`FW%M}^$cX#no(ay=^Z=C6US%*qbZ;?kEM6)G;hryJO$}9d>2&zJoLV~EM0n+ zPU&ios4mY;ZUNt@tiXpNA!+teM0F&wK$~^$jid< z2y;qz(XI@iCW`#<$IF8tP6_q&oZ(`IOBv=Q2!}jcM3KG@(R(Nd!}PA0F#V>H!s$H^ z@zXkpumi&$438!X`RVtP6dpzt^2ae8PZaW`Fuai{($8f02n)Z+Fum_qx{v3R;U`2< zxDtlH5=HvzN}!%-7otdC$}p|JsD3ON?m`s#IWX)@6#SzZ_9cq^!WfPqiu`DuMd>Fn zoWk%%hSjM)`#_&rz4CehY{9TK3wL0cZ-0abFdW9h`SwOWOBvqC!ufUve-^_RS$HnP ze7hpNg!!vey#Vv=3i`JW-4}aIp!?^l;<9Eq-WKxI6*#Bc!=e@h>E8*dJXui;u7TRiF4YPgtNgVPA_*5bQpe=9+qO|>AB*bqMPF)XWI(Ts$6;meQ*&aImx|41sKV0 z`TrC~S1_ZzC;sUf3wJU~JmjKqp-zaMcf?0^DmZ};)8z8Hqp%*}OAweq1wNvpYUOT% zkJcQR)^lTUQT=J*qB;@U0=HaDC$ysm-N~Gg9(~u!7hly749A+ahqYKM3-gX0{$MxO zv^_$|{kz>*Bbl;^B5Ni?3Jo9CZNYfyb$m3}KO(>^bF|G)9O z$RVK<%uMhJG_Rn*K>8|<$+)0UZxd{Wwh0OK^z!FSYzFl=@eIYw%25+Ty)o{~ zJK^~v|NqVJjWsJJDB+*);_^f#_)UP=sfq!fdsUvl!c#t+dd3Q;Tt2GE{OFshby=_q zIve`^fp~bJ{-t|GbiThCB8NxIVH!sTNAYJ00F>||IlNj9ZgZ&Y}Q4{e2b;TQU2$9eK!A7bw$@DeF#96Ml8zSU1#_vMN4 z8|~$9>cB61%T(#jHMa8U<6*-43(>nK7Q#}L1q4nEsCX%Y1U*CXeI|Tu4j=i$oC#&s z#{frT8ht0(mnbTM>R2BGNeodaNE%UX%;AXY$mS^ebugwee|_i^h0|P8Ul-{y97Yrh zKyyM`=Vvnid`3wRm7zlK7^OKM;jfIAGD-s#`Twm`G{+(R6C90gw_>>_`@(t+#( za4#KkMmm({2j+{5RBNXc@U|r!W~E>1*@MDAC-SJ z=1Mo24XUfm1{KXAAVa|}jK{+KrAh+qL3_-9s)Y+*_SO|4V`qKmYlZiPmwI|usl5a~&Hvwf&W;}_EN335pPF;X%`J1E0; z8pb*evg1bgZE>&6?oDuipr!+FD^3V+1HbC9Uq`%1Lj(2=`1{tPc+@w-h7a$Lbz%8E z^-+%9WN{5~uiaI~gZZgOD#}7>V%*p0*G=Y+s?^wv{A);4lu>QyZ)JK!Hr2>>5A~BX z%x30msV;fSpQ(pG%J@`?La1_~otM_NdbT0znNjqwwrysdon^Gm z!^O3e-N*mS`0pYPANgjh|NX!?y@V&eF)s_7e9^3Sp-=RnuoVvdio15$-1^e@W-2SZ ztv~nVW_`F{(DP(-rws2&9p>oOSU*J1r+e4YH7>i=4x3%~;E6+3E}Yz4c4$_Nf$N#T zyw$rW&bP`k`)9@>#}Ky%T{k9eo4n=r(oUnlZ1~{*IH=0L2HRRJ|DMqP{&1&$x0Zd{ zRdapz;*J3^X$6M|nASU>YmrsUtWNSy<;ySbEol;S>}?bOI}JbFe-yjf&~)6DZ-IyB zr4=OZZ^V7wYyL0g4<6jr&BlIfi+VP(p7o}uY4vWn`$n|-i2D!s&0anuc`G;ezug{T zrW?%Wd32uh*nE7?v}X2amR@)`|DSKVTB#N`IWH5vjRo*jtsM@GJoNOTQPrbfQMzB6Melra^sdRh(ZiaU znuq^Wv8 z&NcMfc`c`P+thc?Rl+Vcs@dtT`r`jqdkAZ`_=AmRY_JS8syQMk(&3rSqdINJSAFg5 zl2Lp2{d&_6)M}P?V@u0~hV{qK?#*eNsTDi@hx`uH9oOvGax}HU-4+iv_g+*pzTc8w zuj4PB9ni1-(OMG&FE^BiZfnswF3Rn7aQk8HGRD8r%S%jeb8thI54$c+X#b^E^s1=s zwO`$Ks%tQ*>{72*+kc(@RjQ5SGTpbiBrGWe7ow{Q8%hMuG86ded4ei9YUus z={-EWaZcyB5Bt}vUo7jjRNb}z$vul&Oguh(jcZGzKghqgvF^BlG?nICu5{YJ%YXVQ zt)ZK z(S02{-F&5zdhTJ<%SJ5(I?rmKv+g_Fh_(l&6{zK2-)s_BV^h~xqi#iHSSc-gaDHj0 z1F_4$JJ{E1s6YCh@0Fgv)^F|^+Zr-`v$`?y-gwrQc3&bld%E!Llp228}vUtz}uU>*#`H)q&p@wKS^Ht5=iBi=u0F zpP_8iqKi|V|80F?KEn6EH%9iBb~rNdKtY$Vk=G^p-rp8p+5EYr`rCnv4;F_lDK;v- zS$p^Uy(Wf#$!D0f7Fe04LhTj$L6TiR=XdNt+#n0htRXZ_k*viRe~ ztssSyyxe*&Z1T1=zjHSR^}IILWI@4yT7D^O|E)iUJXrT;>yfTwG!jtA#Vxp~D(k3ZjhK1Fc!0A() z7WA^Ui5z=mf1cGk&8KZ+D^X<>tREmv()P_dcQ_C*%zzp`yF+!-|K;WrTnh` zNW7+dq+ej(kqw)+ELkhG!{5m5yXl$n*2@9Ip4(7)QF5Sg1GKlRE8e{2Kehy7rC6 z{d`k9YntmemoF2tCIlIr&0I6!Qkp^geru9)HhjJ@Nk{3@-^fk-p;X_elu8;dY1QG< zmJPj3mt32FVBzK7fd#3fR{X(#srId)@5N!hjeNi5Wpr+T?Bow$XA{FYQ>S!#@iczM z=Pss3CXI^@mvq}=Z0q;A#51~O)ktF(pOZ~HCA8X?W4oG*Iq-CEUc^Poc~Sap*Q{CO zKm7T7rIn}CP6+k-Z}Ryqs%t%IcYZ-KCY@!mvrgpXTR%O!(&%k3ToFbWH{?!es4~!Y z`H`H+5}lyq&Ch40jE>y4f8%VY^mbgax3XMaMh-_hZj^W5!>PW0iF zo=xty{(H++3;#_%?BnqD_hMvU_mJSBxgL+s?O3+=uJ*DzqiQPf(+nT%AGp(L_*BQ& z#{H*l3$Nxj_+!-Wq}`oYS-d@A6*>CQE7i1<-oKiK?YKRDUPMGa&v!`;VhnmrZZhb6 z{*H?DhAz74(9(L1M`=}|p8h8}ENV=Byguqx=;LFahwg`tSn>SJDXx+0%2~_0Th!Jb zxUJ36;$_))eMY(-yR}RAWjDWpqn5wUD(zPTN^y}RRr?QIBkcJqbd-%ESDiOZM#jnDUVn?QeX!O*dZ={E zNI^cTCv4B~?+=6otYtTUC!1Qkg+e?LohrI#w~}n7ZGt=Z@mySktFa4H0|Ytf{r_+E zL?0OvJ9#J>GiA!gY8zKPy>&7;tV&(3q+j3n#V5ULsE4_|x>!dj`p@Hwb_Kq~=D3g- z*6y4KHeaH|Y5(zFKGXU$BHvZNU0S1={VtUNzY%k1Sq*O%aC(RF$5xs0WFiVPWDcJa7Xjm0qNCUbCkCR&39jaa&YK~Eq5VW7t)W|w_O@Otsr&Ps1bfc=XLbpl&vlP_}A=|_V<0N zbAmgMJUhSr?6R}fb@fm5IkBVfBB4&PXT}Bp`a6Y|me;i!mw)|D^QwcYe0sd`+v}!l z8#f;}CFOC(;1$*9SC1WjuXos)Nw?c-9B@p&)T(}h9}JF`)~>;Js+9=(esA=L*Axi>-K%52Mlg6e>Q2hOP#u| z!`HQIb2h5HZvK3OoOvg4@$vEV?kAl%u>H8L(z^G0xkU8x8SL_YnM+D9-F-gSn{CQ> zarxn#pu2U9%cda)6CPi!7tyCfx5h=E_CHV?F=+qNY1$*=H};GgVRgj9rG@(P*`cky zS{7A_YF00Uuk5@S= z*=6LPQ~yKkk#*vm^FJ2)&pP8W$5^`M)$)NwEKNo2@86p z>rYv*>Hg-hg^kuv8BqFZ{FuxW)>a;k2G0nwKE~CXsunYH)#H194{Ex1nQr{+Xn5Dm z{bi@zrr)04;^AkbVWS6zYP8Vd3f3MwFs}N#@s5#KtQ$BOt$L@UWga&ue3gx#*2t(9 z)tuMnHdvg6LP;dIT!ysTo)%ScqtwQ2(Zjmk7Vh)B@0+A++e5WsMcJF7>{b5fXNz@G z)wo3|i{5p1Kh$^6#ggO!51ZCZHyYoj`>~0wjjgNpKXhqd><=k7-skQ4)_V#sN6g*! z%c7uF^59_QJLftD?c%y6eZCkob#;}$_uMu$X|C?ng^flnYf|w{;Ahgbxy`Ln3+g|1oR9BBPsfP` zjn+P#{7q^T1%HK(9t4S`+3e6Uem;`|$4vSX_H5Gru}O8ujCnSDOyKM>XZ_atEv+~C z&|1G9j!9{yj#VOW&HhyHOz}RO%qKRr@)}wPe|~YbzftmlIg7d!I#v7mLV3ls?z?;4 zvO3-%Z$R>5lVLS>jT@=0dXVdX*{#N%vY{JX)IVBw%+|eIZAyu!=EX`btxxUi_Z}s5 z{T4TGZVmfiq_^~}Q@N_(YPC7B?W2vtvp%AQkD=kTDEKRMe7U-tN+u84;`9AUvqYCw zp$n17?23K-jf{bQ0Pc|zoeN?BH!Jszca^c+sccb6R^7hIZe^7e-ZTg5P zg@uAAUoLZr`Vh4UXS3R!dS$97__%!P(Y@<@!`TzVY7YrZn>0m5{llC49~Y0mF^SMve&grx;BjA`emdb&;2#+gt2}Gai-w+e z-#AP@)vfsR`*r>;=06#G>Rjl6ty{;BUVCnlkEjd z9xWSM{4PA}a@gPjhB2?=8(rHJ&ea^euYQ%H1uIX@Rd)X*y_;S)`q=Kxht)l&6_S1* z`sTKx*_o*UP41igYBTay+|gU(Bb&6v4~&GipvfQUSiX~Eo3k;3jyd@33=3==rASJA zy)i(d*4w4(qNYu?To&n1z7sil%jBY>qUjgLm(~B);!4bvId9+2&lvjIYw5k3<~zF8 zdERk^{o{doJ#6RX&F)oHH&)_M_1QSftt}op53{Q4xqQfo#Gy$Y#`)c_&)*Vpr}oq; z$HZFXsadU_Z|&pzjplaUAeNc*M}7R;wr?xOz+?IM-0J*EW@{~@$^9o!K6hYDp!S%T zJ*49e2hRB=DblMVRhe&enU5|TBI(60m7+&0C+L*agQC&GW#AmMcHZsWfj}8&b zOmox$+BwdKwn9A*Zfm$QJ|;>Ox8hbwVl>8Ss*legFF)T;-p&OrtPTA~ulX`)l#fZz zw?i6pVL?9W>J64I+i=f$)Tca+b+d{)?7jbWy?K>yr#~d!*;7Bc!=jEKvilZnt3GLX zkwv?`-$u4;XNy_Yqm2SzjaJRDw_TlEVi#3HnUGgBz!4?BEqz zjeGL!LCa-T+^naqw#vM^eCqPxeyK0cSK~(9@2zocv`*fF6YX{yy*PZQv{)nm*9UIC z?#Wo6#Qog2ck?n*pL=|48K2*GNFo=s(J8sjj)%7o?bDs+nbD!(UhCa{E_gF4;TAiE ztSH|2S!YPn?baIgE>|gQv7<=x18zYZHRE1tLV0!q}>HnlkW zPuJ$_T~gG>u66ER*y@SPz8cD3s?<$-V?vY=N-MEda(Ua%{n9NzO;MQ?c?})bN>0XQuV5`Y;A=9W%b|a)U2iPYq@sS z-(_@)wpXoQ-sY~F8y~OzsZd6V`rb8@Pw!Sgb}#yMjX5=HML6oen^46k?Um)O0e11$ zq3wR{9H<|yYxzjZ8MGKTV4qf?#`6A)Psi41G5*1-fHP`qefvKe6LaQL^LdsDN)4LD zKDxH{Oofa;Kld-FQ~$w%g<4yFm+^Ymk2;goJ@VeaDG`*@S)q(-&3oOh%ZA-%e|hO@xAWbB9FaXY$+Mc-GxX2(-?{5Vg^YHrty`tIe(6-B z-F7?wnw~0JXF5&SZbnCq{|in9ug(7}PNGy&BeH3e56kjej<0**1#QfTRbiwzb?OGS@@NwBZu4Uh!dc(qg)!sI!M*kwKLphq$%YIF7Ie0?2 zvNG4uBGaX1fNs{!>Rs+k)L3%u`ZD)ajZGyrvmZ=tb@b>{D~FP->q{=(skLFa&kvoX zogT`uI`6Ie9^a6W?QqYqplDL^g5oyyl&5|O>3-j9Rp7;6We5HldnZ1?a5I;DIHz9J zS0}3`&o{?(@7m)~`rIL-7VTQttHGYsy-p3=s?0jEO84=5$8pUbcByY?xU0e36T>Ui zs9fiNyLsk$S?|~2#1M7WReHY7W;HtZFnOJB!x#TJhTa}GbH_WQ3$gG3}s;|`<_UEJ-+487%MU$weDNlRY8f~$S&riVe4og_woV~^lvF-!KS zKI?tow139s^!UTq4q5f-J?Tf{yxw*D=fs_RymZja6#Y39l>6jHO&@r?Xuy%%vDUYht`Yv zEV*Q_)Ajv1`Z?skI&D3Ng7+)Ep6p$e`e4y?8_WHscl$lPZDrYLQC@~y+2n;@5n2*q zJhMP*l%{pkzKuh^-CjGT$v;)?`(5haeN>Zbf0Gw4Ocej0{$a-ZA3F)xWYfv)H)~(H z^;TvMPmZSCNOI)`NbdI~a(9&^W<464lT3^>|&>{NN=tD{& z=jc<)e{hn=+iq{J{jr_eG53uTUDl|!of$p)QpbDiYw>dhibQow&&K~p^+;L%r%u9o zymR+nh;5usyXVv#AJe49&#JQv)w1mk)2?KG`y6rdw1?iBecQH;dehWo_uj$QS6(P} z>?J82t6D8$K=-sm4bzURv`n_}2y44&!A8Sp=8oPkUTPKIcMs_P;>@5r+mhFZyLuJd z-OV@h=cfPG%`lHL_nCWczLZ+mI6ZjU$Qy-4Im7$8&CJYiTvSo^pN0J zHD|U8ytThgY22kMhhvWY`?#UC?k_4uqBPZ4BRg|w;HHhc=GIFw?Uu9R=cJydYu9gz zwj1`jMOU-VQ`Ub{{btpC{(*-H1xp6T2d6(OHhJAVb8uu@a@6C3#IKi*U5ec;byD{6 zbuKf|(LcEG+08xGl`_VrdmsEZ!D_ij>5{n#y2Djk zMZDdyS526^QQ7~lfBma+{zX-A5>@3U-NJHg-(a0%C)JytvY zWSW6%AEOSEi}x*S>aQ`IpYUyj+SBeq&m((gJ=g1%_+;p)4g)M|c}{-Vbg1OFCV#Qh z*S zHqSOp-E*zQY5S8Gr?&DQT+g(9?j$pHmG>sjs~$-7wM^#}wbx49GqKdH)rhkPyq(_V zNGm5hY)aYLi2W}b>o-j0o`mu9Y+;>GdK!9b?YrszHviOE*UzG#bo~RBRSu^V^#N2~ z-u=(zl5k^2N9F~zGoBt_wb^0UCY{@LmcF>$J-V!x`?Q4#JGk%XA6-bBseQPK)%(K} z-QRj2v1&Z8!`H8`LdO3bJWs;;sc)>O+`dZK(^*Exj?b<3_N&j9oDSoIA|+q72FYct z{UWre?cA|Vl^eEDzLI}OzHR<5${>_fF_lOrm>-(eDKez~`<5Ttmgp?=+F0+T|0fOm z)#Kjo@N6M@;54oHdA$Q)Y7QRebJ{TV(yI4!U#)VU83SPyXKfGp+;mzCj9V1)qndLWJxA5(O&kcL%?&R+6pH|OA*(Y21l)QNQP~9X}~#aU%dGy z3Fn}HlfB!{bLA_f$|y`Rh^r?wbrAl67J`Z zKF6P(N?n__V_SHm;YT7)oP2uMtaqG_q$K)?d(E$XLw5u`3d$=v?m1LJk zPYm)-qNL$bPc8GjQ;tsbD=o*iVWEA^RevhKd$n#K4RUol2U z;~w|A9@grynzm<~OSu^u+n4&^Z<({`OQ&zHyY4BEU9o({_8xO4&vEgY<1#%gJZ#ct zXRgP{2i@Q9+LO52v8=Q(yJ}oX zDaa!k>%6|5%Brn+lPKuDAWON<^FrMxS?GL;*h#9Zt!q$qi@!?~TbqR+f5kTs&Qz+K z<)RhW&+FjXb1iklzTL3lq7Qv*{3x;A>6*!U+C98xCaJ}bi`)>;H4e$v?$=NBo&7G@gVrjccyCx#(Qk=;Y_F(l6ZeV^3~8ZlPwYH!uIixn|tz z5YM3YCEIn>?zA6uq9(V=$kcF(>zkNsW+QLt#R}SW?_%*>tEWK~ztI(b%OO9ciyA?G zxW`d|a#xn2sxeDbW$*S+Hs&r4w&@4%9KUkG)MH}GFty&JZEr;<&Eg_0%2VfWbl2x+ zzU!*}uw_p-w^siMzX72Bhc8rRW}wn2sM=pTdOQA`6Y8o`0IFYbl1u03=0DCG()T#} zA3+|{qu=EDStP_!Nab>`$bsh;a+DOm99;iyNBlZK$V-ZFV*ah@6&`4#(zbju|NDPx zQ;v;^{FZw-ZE(t{WtV4HQ&U=1`k>8aqkBU?L=V^fS~t$#9-<2KOnfq*)T}tQU*GI-*?OS7`SoJYn4EW8$4^?j`%6W82*2AAi7ebg^fw*uQ~2u@=@dw#D5W*><&% z8E9FH52bZ$j_u_an)h=))i2Fog=gj9s-*O!z0L9st8Nr}8b^60g1~7Ziadk4i~@@r zKZd@Vw|$6VAC)ovhka6xJH!pjO}A*-sa9m;f$tlbeyO+G%=U61SGKF{L!sG+<@w{k zSO1o1T(;$AHxp4^wr^Avo2vJ5-8z3+9g1bta=P@yxV$5D>iqF*yPopm{F;uED)KCa z8Ny?w&PT)Nd8d6{8-4TUjx*lhdvbl3@AF;oDa5GP=&^HrPt7~1eW7#)*KD)VU^CyP z(}w1rudUL|v19m|ALbP@N=mZ78ScE1GqLHAigp(2Q9f%~o&9Yqt8ty}EsYDq*Dc;C zSu@GBL&>Ly{UZ-^OX9z^H(Qwd+W+K?Sf{$}PQB|g@Qp~G%lkM+p^Emt z4T5g*ul=a#HL90Op_$dmHsopt9HXl&gB&h>K5@zkttln{+%-t*V*F<04c*3H2F;tZ zs*R?RN5m%M;jveSWm^s3^-4Rd&HBX;Ux&{`e7wEmxQQF8H%PEtS4WTm$IWH+U^rx5 zt#T=xbhAcQyZIoZ)$vh^*V*mXDa&d`W;s?w|d#QE|~ z^r@QCg7SP@s!Ry$w!3n^l~A1bny-gctaRVx&8ZdKx@lFr306tNMi%)G{&w^SS0_g z%nHo`ANh$Liw+`lqOj6oXWQT1)@e!6-d9HlPfCnE;@z-H`bDSo&z&!K>1uf0qo04> zYaa@XyZ8QjZ!>KjpWjc)79 z?S}Z9jl6tezqN12I`PKw^}HSm@u%}QQQ+j*R+P*~7XDjkY4ahf-&>iEao$~WLHYI;hYgy| zB}z9FXV<-VsLuAlu0Fmy7w8>ceB}z~wshtCv-j+ru0HcP{MC8)c?b6w!*tc2%~@!r zS>;H>!L4^R4eA_p<;lEp(J@K8^a@`Ge3Z*~#fVondpD~_bm`Hg*C6lT%Jn=$qN`HX zNjax;R8nH={IwTWKGT&;0Y&)xa(PbQ?rT0I;BeWk>PhbmlDoZeJ=iZrIX?Wkef-R} z#+JLP-kWV0>?l3oFA3;g6%8yByrMYuc;lPhMz@*g4MHImfA5N-yWVzIvCN`dgJ= zn5y)Cr<_!4My^~tB4PZGYlB+EC9JL{luH=fPmlGrZJ)O{?DT%OtwS5N8seq8(&SfV zhhadW6Z}h?*8bj$R_7q?q7Pb>Fq}c-Ta$BNv`fSdgIeXO{-4p zb$#zSy;*;#sGv_+_YZlK$6k4Heooee9b<#+l>2&zUTZjZe{r}^>&#Z_|9tq69y9Gl z@SeOnq72I1cW*Jsjk1ZgyZg{gkhwdaUwYoJu8HGX>SsDFzvxrf$~Xm6nHh5yEqGtGz@?s*V{zn? zsk(!*j&|OCT&;b`qqu*JE#ANF+4!cvLpP2)J8MCe11c&nF0JW$VNA1S8QqgdM_Z|O z+t=i)(Jl}F{{I|W*Kg$Hw?#vZ${L<9T>mRIubtiA6SMrfulg1lX?F7I(J>M|tCoIY zD?4YYxXpFXFrL=nUg9U)K0{X7`qtfbw60;-F~%$2Oh_78(!%69crHKy9CFs zpK#JT?%2{vYp;!Q_}6;)?if3J=JB@6{ik1)*nO$G>1yYF=QHOd_uhFp=s=@ImZSOK zVAFifl(pA}_KW>C)LS3kkelP@6S8qe_@%Uve`yq6=MbHD|H4bb^8BTH&Dw5x+_mUQ z;sRCw!mn-W=`~CqR~BtkTUkeap@a79VP{>e=Fc^`wz}13 z>^|4%qjX2;xQ3la&D*jnap)JD{29)zEC(xn7;$`X%YaVKBP}OP(m2qeZeHKzEsTRk ztVuk+cyVsauO$tS8m-iccyZrMd*8dvEDev{mm5Y#uMY3gFe2e)4fj8l;hb0h=#q|Y z9=X=9zQ-@*T80QZFRZtMsX5&idlR&VEW!<7+ZBF0Ivc*O+So> zBb-e9?PWLW$0 zzX}}RQWow3d=0qNNQUWK0M~&77$&Gy9?^~wSmxUAFiSSZ-aREno7qADz*1+k&Y4kwB`2z0- z{#v&J?*X;lscN+OqI`@E-v-sx8Cn z`0?RU;1VqvHU&NgoJ|{EaP*CX>%((ku|B*2-pKSKtFhfBg}sfw5klp0k1*0RD{<8JHVe@ z251U!6!I1DI>IOyxqO7LCyaIy@CJ$xJtU`zbTNEV+WxGvfhD&xS83^+~~?)VGC!QXdip zN_|-zDD`2LZ7uRvy1Wp?b#G(Vfx4USZOq#-YAK@@rqm5~Z_~abb;tb}Uq8kN%JcPW zBjfAG_#E1pSyA`y(8k=Hx;4=D)EzpsX=f?J?ae7Yr=C4}w;kea?u<>ci@tIrxo}41S4yJ$LQzWAzW-5CO zm;yfYc2>Wq_^0fleZMjPUSDQr?RYMHP|S0}6tUhZYX5e!I;g~~AWcPV6>Xp>;SP$V zP^kY3IsedRc)))zoC0~R6tMk|@}kH1Jz@52S8iIN$tqP@McQ)AmI{*nL)p;z{4T;D zc+rvl&Z|Jb6xNp_KG;U4hpbYe6!BU8UB2d~vd-$?(o+pBwuu$}XC>jzJr~{{nPf4k|#)d4}F(vXQ`Lp?_YU}OuLAmzXDh5*Nj-XWo5gU0az z-eIBM<3fOBolp}zPX9xm7Ug+b{+II{)T@WIeFyZkm4|1Ab@vBeg&n_QUd46&2VMm| zI>#yIZD+1%T>k^FqG9k4>9$uiP5FPwZZ&5z!8^c&w_r^-6M{?vg1kHf;Qe1RYt3Pb zS?>N@cCGW-yqb0=*^-Fmq0Z5gz?#j&DV&x>aUx9N@ghv&r`bH7_$i#$FES^KPv2Y< zFfH+DZZ31`ynS-10CB3H9z-J%Zh?E6v&)=1Z-Tt)_&L4I zOP#kBOmlky+v3K9A&TD@_r4-b>j9ec%bYsrf*YFq%bYs@{gNmFBK|1c$BA(HEp8Oq z2^aFBwTy&Qvr0MqVV^iw5~5@@zt;fqjmoih8qIY zzQA3E+X2(Qfq?q})4qa$-GOP}A%pQx1g3on0nY=beG37v1Ezfq0n@$&?RzA%__VJ? z`y$kCBroj)(7uU)zX8)efq-kGt!dxoCM#bvVA_|-Vz?tP?c2C9+zA)4WIVK%X7bsZ%+G)m$mh8!C~ z40V$OHsBNo4j`!0IFV#aUp^A(L`pns$H4hr-ruoQ%4*tCZTJxx5#@_+0dDcLG1X}a3JIwx* z(3%Gd^f0vMAy1k8m!LII8S>*&K<$0)SrDy(Ur&rbb=cnmt@j<6iB3Pd z=U}G$#hDVZaXH8OHCO5HYW;msf2;I&js8{? z+`n_P!Z}*uT&-}ETvSv(~%;LjrHs8v^Y`&F+ zS$xb=%;LjrHs8wG{xWu+#mA(}EP0sC=DT`!_*PsU!pD~msk36$Rb3xh+u>5hOs#nqCz2}g-;+hq6$d&1AxiXzCcf|*Q_> zVadx>#`P{{GtF+!nlU{xix0C|e9Yy};=|1IX{yNlB}s3d6&R+0W;?!ew&NAoTzR{X zUrM43XGvrR#!E~yUOhMCtT3*i=*{*fDUWH9E9MFihCV>PXnRra{hC^dU*%q%tkUft z`REN@)K*KGwBgE**@o1^ISj8Zqyz0`QWGsGDVZ3~;e6$)Ih*xtWWu zf&Sr+ z%Sp`7f6I@v!IQw@ZzEEWe6Vl2apl(9%|A2l1d?YxcXJ6)U)SbAZX06GnyaU}Zo09o z2*~z6OlO2U5n8Spi}9YmZGA&MBZEUTjfeaCoO|vw>e{rue_*8F?mcp;=L5K{zjvjQ zRW5_c@CZh|5tn9d-dgtGw{64z&H>$Jt#1#Z#^^$g6?F%%&NpxSjK8x|bg$_982g&} zVIc#z3E};G7YH9<{2=@+attR8Uo|{ysQZY-*Tz^w{;V_9`h43?{1JYR@v4w;oiWsU zyY8-CCd7QT@biREh@9Pq`Zf{$s$px+)60dUjI)JbfM56^V_36)*-&Hq`hMIC83&y; ze9bUo+$8g6!xqCf!*;`EhRY2#=9jzGhMF&tKgSq%3EiFdU*tOox(#fBSGe48t>H$) z5yRbv2MjfKle^=FXAE-;qh;P^*kO1Stmj+$MIi(4V?qXfF9|O}j*xHXmxX*YpAfe2 zeImS+a0`Eo^b+#Tdq&twx(WHFJtyQ__BG*KiJ!2I!p5*&@g`ZLd3?Jz3%7c`ebHhO z-EQ{FjqWgdwb5&h*4S43oknjoy4UCdqbWMhznw;p8NJ)+y+-dd`hd{~jXrGj5u=Y9 zeaz_NMxQYHl+kC5K4FXY>K14;p>g=p#lSHTsy*$BjN=^eLmy7=6y@*Nv85 zkBh%h@i$uSgXngnmm95b6c>M^*BZUv=uV?I8r^I3fYBpH?=*VM=-o!|HF}@X2aG;w z^kJiq7=6^}V@4l0`h?M^j6P%ZIip`UI!8O@;xAPEjczl#-RR{;ORvbq-{`eQuQyuv z(#U?J(P|$>4;VdS^iHG4j8^+8|Mwcb&*%e2A2j-~(MOCvYVz?Xi+qlclH;=l;cKjKqbg(vXQl_znP-H+cHMUMm~Fz^XO+R3^CUzv;=Xe;R*6|58-DUla%K)jGdlq-Wxn{P@39e(2t#=%zJm zuFWsw#@qMiJFd9qiXHitg%w;4z4FTZvhq+LtBZX-!+r0Ku48UI>gns*)F0L5d7Xb% z=MB+MpJO@%q-f|D|r}ytmJbt{A?5E6d>E$dJb^;Z3WRBdmc(Zt*g@ zV$<;O4}SS>C=UdOGW2)f6NaZgDSh6genv@Exy@x}ebdrpubNnUw1$>`>Z1nN?#PT! z7dOY*o?=jWzA8hn%g|JV>-5TIx`$4W)n z95KV1e6yy%LERUn`*_|u*xPmY_HCOT-;L!iZ`e1oWpL(~W=&4*n^<3_5|6X3gWE>B zwq~4drVI_e>6fs+h`WaSx0VO`W=Tl<#dk9gp94`F)Ama9wne_Z)7^P%MN=U+3Ta@J zrn)SY`nLThp&s=@giImHny=VKX7paIP?9_a#q=}Cva8_Rx&n$*X zDOUR{{?I<2kFNlaLjz@%tE{?V45=~qj zSA>%n$A^TY7snIA@i;y%eCgu&l<@3D@i}4fqFB1X&*u60JIv5wnCmi3!@i}39ajdz9sCaR#xrQizaV%Z% zs1nD$!b5TF){`dUcvSTG!g$=-FN`(kz=$q(>qTc5#*?B8&2gg&Ki8}-6UI&PT4BB^ z?iLoB;@!exQ|t~zEj7lPLx{Q?V^^pOjd7a_SA0?2AuKk=ox+zE#RJZKalFf!FOHuR z<`>6Dh24webHeiCxJ3nYl>88mFOIu~mBsO>@X+FTpR;d{k2(A1_>{A6j$ap+n&MX4 zsHnRsE;?KgcMHo4;+?|L1@T_tcw>CfnK#8wCw{ake%+Z9Z`!P=(iC?J4>iTTj$ROt z3MZQ4abdnOeopvOQ#>Iok^jQ(I6fFK zVR=!!Q&?<>4+u*QvD;gbr`(I~ZisVgT*?ix?omfUCGHT8BTraCp72mZTz2M*;xXYw zLwwNLFN$9hzSI!EE}U$L+cgM2+Ypz8#pZZGc!+QaClc)j$ag( z7se-qg~jn1;l$!NN1qhEv^ZAZ6pb#7JA{+eOJVuqc!O}9^b}Suj>m*A#qmC2sX0C< z>~4;a2*)pqUlNv^<4NJ6i{i7w%0+RGdAIN|g{#orU^n`@_c7vL8A#SneT0RG!1^0tFI-^IxHjpXfxBw1i{>cd&0bzs)JZmdk@fBl*6~y<5&_ zryy{B0cC7uKaAyj%RNJ^(2VpA4d?If=^t=`>+Rb-*xMIE4sZYPX7-J+9srM{tr=ia{ilXnVAnX)p_x9y%0>Rn=9?xVzrafaEpk)CaXTl;$k@|${w`;{;u zUDyEh8J4x2lVCP7)IWp!-rl?ONx86MfEQNE`dpfB?H?W{iZwnwNz77yY-7pGl@C58 zC@EwPTG@n01-2)z^+&%aN#U27`wmgYQ8*mEt$&1g^grO}ly`XqIyZ9fqU2;t&R|)K zZ_3G3wZMJ3$L0OD?E?cfLGXt(3?)8Y8dv&^N$Q3xIFzpbku6l4{>|y~Zgxas8>@)@ zBgzzSMx{|u2vI0c)cD>(YQy%eo5(<0FLdhZ)I!2KyrpM|lta>B2v#&afQ-8dJ#x2i z>+RE0Wp8jxBU3Z;0CRx*aSyCwrEp?uyqG)S)cmL(|zWSBSi zE?Es78SJ{7DT=LXM_4s3C9MeF1hbpdrpD*9>SkYFdk3}PeDe(->mm!Oj%v8NHg6s7 zq5&GZzwF9cVx~_~pD0~Q6#0Xq|2mdxw^A|sx~vX3e*2nDTe(dEUHGULu&a+Q(Ye3l zI+?LYuK(`)B@epBkfL4bt+~15BR6$v?KsFV0nmM$2}qYqxs|R_m}#b{(Y7Xhq(@>D z+{(-~A?hbg-u6v3wv<`IW@hqnrSlx8#HW@6mc(%LRRho2z&L z1r3(F!^-(g^R3$lMi51mT^=b+Gu*k#G28`P#(YRi@LTc0rSS|m_w`e8?(6Gyt|V`V zvc7AONa$USK}bDElX4-I_-0j?+~xZmUlV7Vxmv(VyJRu1!o-LsR_+q>W-bMvV@TVs%sGq`zVrSr?Dmk)>e;mlXUaX!0LUZk}c zvSILXQ5a@xJY;!YNRzH}hEz)fn}2etH=~@^=BB(|$cee!sT9m*F7Ih>2Dhm?_^{3J zZ}`&;uV$G0jHo5BOJ84H%jmTD{C5f+Ng2=_nx@{Iy-OTlEQ8#ccIQjvS~xtvs)hzg z=kp8u^ZFI+F3>MDdfw14*`Lp^#O}iU>hgIxBfs3Vr8l3EAI|(dY4B#%CZzogzFMv( zd2aSwd+zPC(p<|2v#V7pD+^}sQp8oKIm{^mGel;>Ip^hb>EvaL z=cmg)XZ5Qe$Dhojo7bgfHit?OS`LK3+<$n#ia&KuCvz zZ(28~P-i}ex$Agmnh*N#sYLGJKyR0eTk1n$aCmqCLwzjyfwig@X%NhZd;CWXUovSk z|B)gqc+0Ad8Xz;_Kv52K*XEHSSAWdj(Os+}t84}{bCS@AqMfSQyH3HG)Xel%B^f^o z>)tc=@cxiD@G?D`JU@)JaZURd6Nzc*S|6OBtc81)`F=tfLi3Z_@AYrxCc??02FRZ+EY=+?&D-5NKg%PoO3fk!JR zY6#tj!EKOeg%1q&sFuo{`6h3s1#?Lm95Uk?XJC`xT6bP1d<(i}hDA`iyChFEk2RiV z!xlr$zstPcaJiw}%Y3z=;wyT+VW;6n!(KyGCh?6JGRN)cF~i-4dkyy)9xyy;c-ZiW z;Zeh5hQ|$07@jgbV|dQ+b;BIxLE&mPY%y#z)OvyJmm78%t~Ok2xZbeSaHCaW%~0zZ zF8+ochN}&=z9IYdhMk65?~r+~;eg?Y;ZDObL#>C1f3M*_!vlr~4G$Y0F+6H`%<#D3 z3Byx{XAI97zHX>>75Uq2*kY)47MZsjE;sBjTy414aJ^xt;YPz=!vVt)!<~j>hPw^- z8tyYZV0h5*u;CHIqlU)}j~kvaJY{&s@SNf6hFbS=@i%NS)H;xhzu|Jj4nwUE$$qWj zdc#gbtry9@*Koja#BitKnBiW-eTD}N4;mgeJYsm%@R;Fo!xM(549^&zGko1JM;GAY zZP;R{Jr6G4hT7{Oy2DU=9Yn7+TyNNExY4lJaKLcHaHrvzq4XytZ?EA#!vlr~4G$Y0 zF+6H`%<#D33Byx{XAI97zHXR9PeT4S8@3oqA4BHthRY2*3|AYjHC%7lX}Hm_*N|rR zf}Xkbn%1UVl5OtE>NWMYMNuA`W_~nju0K=n{4S#@=I(J5-S#dJub%hw6aSm>b-*Jx zX}&UX3{MDO0RxQ|ie@oJ_`2a!_(=LBe2Saot>mZYRd`yK_;>wFp6u^1lw3VJQ$c-s zc*LXMM#Es<&i<72BOW~i{D?!@5&VfyX%L>kCv|`jSJ~YP-_F1U20kH8Y4RL{Px@3E zuW9U|cnFmyX?d@cky|hePmss3h+*`F>r<^L6t21Y0`;lJRVY%rwaqS6m1*>&PNTdq z{r2yDpe{zgDk@f{q;I>tu(z6zMo*$mFrCZqae7p_!u~3`GEI2DD;?SxeX9t*=E9S~ zyeWs?)s^4-z*NrkvzoD&oB2{RgYU>(yy)pJ%a3tqk_*pYFAr`FW5X81);v03_)~~0 z)ARC=P5yMjy9;4bc`Fc?X5tZ*O#c_%VDf^a9BR75tlUpEM`P8CUD)-w8y!ZzF98bUq$C^>i=|Ud)qYWyQEBbl&%jrzs9Rk{_$!Z zVXKdBpHiALJZ%c;NbsHC7nF9ECd$L8P+5{Ij9t1xvZAL*_tG?DbEh92bt|r3XKn#u zb2`k}EB@=nA3x>w=`dRd9T(*Oj%ie=nnLMtGhg|Hi6uDohGbD9@5j zU3cMBIV-E|<9~P$a$AsrZnsN^KOp~0l+CEHr`lS0wi?6#o0Qo#`O0*C;ju~YrZRmR zzD6=#`i&|JxoAAmZB)4nI*rnAR~Y6yp30Q;9YcBkzmSoeyqtKD&y+LO-Q~ok4*x>^ zRU8QOpCI$QxkzQy)0EX0RJLAHQR~`4n$9O#<&K(nW1(bAdX8-v`Zq)e-sI5?Or=U!<9%|3yp^`**GT=;5r{wVtZs4wr9T<9ESk9N|zlbZ(keVEj~?m2n(3*US- zF3JBpr|Bk1+X{6NIry0}xb($p-DqX{6nQSc8wf)~ zkso3BFPOP7Qda(V!YBJ2_BrhS6L#|>FPFp2Pp9Mj7sji29K+7a(zMD!Gi9kE8mFzN zjpHZzA%D{4g?2Y7FQgxBi0>EZ-ihB6)k8+pKh7vSDl?M3*2=@brtF-rJhU5cC_Cc4 zK2^^Cp0Ml2F^yRoK$RWkzuIxNzgNp|YY(ne7-QdFsXT;qQ(51#(ub)RRK4wf%d^!_ zrTn2RO)n_3zobaITbhP;Rb?aOv6D%8Q#+irpWUUCYTrc5|Au@muRluNRQuRC`lQ-7 zU*7U1>T}d|^M`#~^70BFrel{pTYVrErW3?{0z0MU5#xCdo@`o%uzl3z?KR$=@IIK5 zM_V-gZDcld`|@>^cNb>Dw}5i0JvO=?YE9p&<{(J;_uscK7}v@TFTh=<~ngq`@%b}St?nY&G<{Ov?;@b~k`a%qAbxotpJi2F2g-(c=L z&3!9wKWkxXEPCE;$apJdwUb6wWmkLfe~h2zJv2x1Q~VnFouVwi8+;MG9@LohMsO|I zOrOCRZp!r`YAcbgv5dwTYM0brhrX4mFUp=D3xxJS;{aw1Pu4}1CF)o7YcZM46XR7U zH`+MO(6uR=*az>%=~mvKE9^`Bke_LPsC(4=z4U#)9hj@1S6IThE`&vWXgVzFXBD1! zjySfRCywM@GH#LF=Gezq& z8LCGSWp;j^HmFc5b9{mr{hEs_euetTMUF{-92F_+#mbVy$o(XBNOOz2*Yz=e`c7=Mvep`px_Z?X>H>AE z4Kvj#eKXbLFY-wT>Kt*A*<5tHxo^jPUHlMX^>RJ^LP7@_>VMu|8>eY6%6~^W(3}>lV!JWRd zRPU7cs>{J%?`pGDhEBTtRT|zg?Z*qg&0wtBRFQwyhH1!axkBG<}AJHqVlZog*GeW;alLkcT}c(Q)OJ=0oNm#`ryaAbEL(A?=vmF zml+?W)8ZCOivnrUQXH?gkQN#b>zi3)Uh;ElUMfy1KdxVi9_HJjvV^MA)I$9AO~(LQU=zIZSJBR|q}0I<0-sPT7c^x0~OxrD~i$0n0;31ceky;dT45I@cB?WHeuuJUWpW)VaAltxx!;&e>~UNucScBhA+b zTJ8^~XxUGuXvWA9b;};_pUx)okN59o8o)qHp5{jbEqS{&q39kTo?|Im_Ko^;kGI#J z+(7Hq?eB61-v0H)X3fl|?Dx{p`^VewOVLi08c_Fmdv^LIwCsLk7??LxcDVEc|$bM0(f=K?` zGxYm2^feh;-w)xD`_2r#F+&e#=+9>82Q&0IwCYO{*$S`j@OlY)tOW%zBlKG4`QugnI4v*ZdfgVWt*9kq6;_rhVOVK-^_d=I&EB_vW z4v*wL1APkngS^ZB8yS18iE2NuzFB0iHBq(a6{Dv!{Qs1pbCgxJ@4>y+Le-wXWbWS& z9Ug_}stm2Opw+&I@^weXz9&O(g;smN99aslDTOAwK%6V=j}?|4kTg}L>sWgYimqnj zPIz2%`^QS1x1w3eZZ~#!^rBF7%S|7-h6qP|iI15{udql(Vdy3b3jBdNzNCN7vxpig@C(Mr<~2 zA2v%MPdFXokF zt)&}ox#N!YXrT95z6Rys8P4!{P3MM?vp#~T)fT#vtz{_0x(%jqYLlG)?r}$mhK!K= znOWpF5TzB26F+N;%pp$a(^amSlkyj?v#SJ0B{^|pgikNx<;Ls5Zz--O20rqs)OP70 z)o9dAok}M{B}cB(#&|i)Ridw*_G)J2eVkG*o!rFX9NNL*;MU=h9#okv>juz1^_CNT2A8xl>k_?hPr@FB_`bJsUx6Nt)`B0sgJ$+iM)UW51c|lA`p_UjnB6Zz8 z&?9}qS{lzX6zAr_ZJ+6KyLD5XGYow`y2Nxl#AL~SYBqDua_6?6$zOR}b2r0SIiA&2 zPPpf=u#z@AIy2&DZB;tTd_1mX%ejK$Gr_Bkn~}syw;Zk-M@`w>5+hOM_xcN=$|uH2 zz+Ls`=wFmPDMy<)0l0r#xyO}&;FBC>nvP`ufZX_FgLxb7WAjR1XhVE@v4ueaw`Nbf z=La_jDl``2+}yLxDMzbcQ}_P1cl-XRZ5e$NblZFBlZEfIb9GS?IUt%&>!9#*e^)}= z75)x|whzz;VlJK1S7rY$&PNrlVBAX=*Y+Mit`=%;U-DlSvH+#=tK>>2v8{t~2ji-? ztNi$0{%Abf#-f!wSC@~K0nw}QS9lHXh1W7>VI0-=lTkD(WbmwSR)t5pbZx}%ppb=5 zorR=uoDmY=EhK>W_ZsS3R_>lNlulXOb^aSx=gLaAO!m?#Yg4pqp3b;YxZHWV$lWda7UT+VAl-zxJ8S69&xKysh&ldm6e53z@K(Yt#QsG?orf#B zbs-3UQ3$<3SYm8v^f;(+KW$hsJYaax@Q~s2h7*P_8fwBp<)cxELey>{>=L5O_WO^={0Jovv3rSBSz~i9NDwz5VdU}|AjX*M|P1$KpEX)%(TH9S>fGxs zLilzHAE164{URv7US#iuZbC-5nHAr7+Z zf^SP;0t26rrZRb6gime2B23=JPw^mYT^gt5JOh7>m}!4elVZs z2uHN?Ru-h1hmPLW9Ub|6$JL(BU%)w-DziMv*=I4cayj%|q~D^sVp-;x8?TR^eI?ME zTPED-p7^zCPNs3|R*mLP=S?bpil^qHojc~CwGQI+&Wg;Fv)-U}5E$HAanRvwWW7IP z{$2W1QHgb&{1|ILelEOR{N}4#lc|d;(^?17+S0*K`!$({@?(>ld)FL#0sEVg5$4j@ z;J&Urzq{h`Z(s7kk3v>MeA7GktZF6pjYq@tSj7z zKS2jTa=h%?+E(yOI%R*xdctwi|C6|hSpSfYfOJYE=iQizm-W`ux0t=`#3TFb%wB$c z7oIyUEWy3(gU*3?l-75d8?A}{d)(Y(ZnXXs+{xb%{y&1}01~CDx3Vsji|%9%eGht8d#coNnw{IEYxjFmH)};Px}edXlUKR2S#r8!%S>04cB`p= zg7x0K;=CVSE!KPrdrq!~H!eXJ_g9~04MzE^e3Cxr*9foDq#6EJTVMOK#X;*#io-v~ zmFcgi;-I((UacufuH@&?ugv8uUr<_TeXhB<=V8fao$2%=CNr!XN@iMTO=0>A_;!;d z-TYL4y5nb^E`;>Vv=+9XFsvp#k|`Y{x*^i0bDFlgDK}A>x;Q%W>ikLJzj{^gX>5r0 zv4-@OS98>_y23-0+lO5`NGCzl*R**YHdJ;@4@cqnNtZNIaV-iR;9E z*40K?Pa8#tag_LvR$C`Wt8Ej|$jgWIX2WIRa(D~ysx9b%UIp#jliQ}XCfHaSzcea+ zfhCLEr<-Hm;|DKo#y_Jz!@XTC`bFKVl ziMy3O>r8Lt{dZ5^Pt(ZaM`68f=AEROOGHM?zpDuLr^j+m2&%cunA<*(~SBjQAogL>N z@1OP-1zPs8?`V1R_FCicPdfE9cA1~KA8&s2|YF)pzQxshW?uj{ogWlLn?{oerbkYmZ7zl6dv*abcVhQ+I@F} z3g0~$`};HWD74DU0J6ld`%hIq@<#tMw8}$BuOrY!=#XB23cW5x|2=dGT49sCCdz6z zbhFX#gdTw2X!NzvFQ)kKfYzC}!TqP9Uxi*~{JWrIika$|lDgr;up~pf2_I`_+iUj`a)jG9zsudt>RNNlk!L+RQpzTqWU9F-&FfhE97xUF z1#WX}jGCvL+eU6?^9GX{%L*ooDfHmNCY~OcG4YgMVsO*#UWl84x7m1kdc&G9Qze1P zbp2d&^L{GJi%G|^Cc-AWGAE&voDrMNb%FE=Y9{HqGc!^O`Y6ocl(E-G z37L@MPajlZiI=id{$L5T=F?>Hq*ymWO)ErvS7Rr8>2)Oopc^OP(3us2%$tlW(nYEQ7}itGu$`dQJ2`SRaa|pg}0#CG~ zJU_)F=BG3XdBH2kbw|;AQwBjE-Pl0?rZ9_?x=-ai^GGYMTy^Dz?)hAEs3zeew~(e&M=4=mns zzIi2A-@G5fAMd`VbNdta{T_5q2MEvg@P&B|x&1%*R(`wjX`hjJG=ET+N2j;o_u%O} zU;Ck!;a2lAvX}0&c(21u{z{hiMYWJ|yGYcH{M43g$w^zc zMp}qhX;ujQl)pCgmuUu?G*?FXb?KQeKJ3bx+~_wzI(!~MU*s2b|MMYTCw!i_7WY-9 zKd$;i)pqkeD(i9ao3FMJ=X-2_RhW0%N_onbPsfjc&G;9Y+_pE7o81HV;2X&O6~eFf zD9C=ZFlS{SdIQ9j8RJ$6cK%|B}Wbl*=|ugV{Ps8p?uQT^8N4ITG|fn;dSjP zbBij+h+&zgL#eU+bo4&M=q*9YhnwYQ?1_Z8rK_~m(5Tc-YlcBxT&!3wGNNb!o}S{vU; zn3SK?YquZzMr8Os(WR5ji8}XgtwL=r=^*!^J=|b@#_E#f`TisHC-X~>O@_8gbHHub z-%C8ye#pJd2B24&-^;S$&hM>uuzywUGh-U(Z#!X?+ZNJ9bJlK8hq*5p?>YK3ey3ZJ zcRO)$WrDOI?;5o~JvKh&_gr!5e6zUZeO&VK-s;a4Qt`pOmvDU^Gp)}kJ)6xh_6#r8 zzTqNaimYy}N|k?=&1mxR>SES<)PH}?+OS?L14GE|OO*ljIiU?>W@yT_gPFRiw)h|L z^Q)QmP_nY^A>)A4nk#bcA>mV+wRDHNf0x^va<9Uu^An2n2^P*T5m%M_7Td4;sq=(W z^+w^8jE#lIs~egB7OMZgL2{APjoF6oz10ou4~?R`rkUR&Dd>N>N#sV}UB3f;HSan2 z{P_ZRO>a)|txxg!`p;Pilzokz-icis?qc$-g>ukJy^ud~{4n&x&<|G?mi3Is+6Y5v zBmN`lF27ap^U>bwpBSyMsZZ0oRvR+&$P8iRQ>iJBeD#a&j04=N-fC~C8<$Z&mQarx z@uv~D!5za|Rz7QEt?uY?XV;BCzoYU5f7nwg|NoG3rSmR=`wj4Ii1%LlTbQ50{9((V zu)k0Flg@js&wLd=g)PX)A%p$woPV&l`s>)K9PI&D(`G1LG%ozEr9oRaeLuf%VK4U^ zc>kKc=Xn1G-gDGJeeVuXzWmU*G|hKPldqSRDUH#b-`%B?ZtO~0IhwXt;lue-(F&u= zk$y@ezaHV&KmGn&@1F2Z)t5{L^?p8nsjUez)qWteiMGwj5eE6*thP?8y>6@XPuhOH z+Zn@BCMO=RHe31sy49`qR!=`aNBIwX108a1!&}Jrrl0clChSR*yL7(jenfpoHuBRL zLTOc;4C5ZwdAj#k+gN8?qVNwQH(e#-Xgl93LZ)=a-j0#eta$H6epQ5e_$0Abwz1BCG#nKn%_vSIv&g|XSvut50M z6F#?ZQEO$SpIehorJvGG>9@hsZ)A?JDIW_V{YX1UpC|3)J{>NN0sbrDT1S{pr_$~R z3ES^{pJDsoGHE9F*|62oktl2-&CZf$8&hePFS9nBDRbGePx(CII!l^G#V1@@{X5#H zi2hIImNZ$avY0RXv^;BR`9dbVlA8|itEA;6gtt2tUZrDqD!eV3u&O^*{;Hm6Y&CqI zuquDkVO99vD4!)K9X7SS?;va?!uD1$jH%V0^iG8KWTS6SCTsovcQWnCe>_k4w5K+- zC;I03Lvt6}6S+%=XGVKM|E_Rsd4qPX)6%JA>GYWk2#4CWY}+As*>GG-dK5{Qt25~` z@CNCU4bOcS5FVvVHav2d4bQC>o|{8>ti4@V4DGGoo7=9kL|)Z(v+vv5+XI$P6-%d` zbA&6jx2;;EpV(9FAYAIZbzYJBG>t1-^ZS!A0R7hs)Q>+@+N-RFzD2S%eh%{|>H}Y) zoasA3e9Kc|NXJqAozAEEecGFG()|TceamlyZD8nMevtV7?*EJNmF&6Vd%2xSqCM!U z!{VDOzJF@*{Vx_@eGe$EY9q?$X(QbD%i1W4gKL-4^*(!M&ZlR^f70!?!Rl zuhm25CYLs0)|@hX39}>&qqY1{Tyq8d%~PLo6XbGs&z$_xc#5yPCWn=sX-dNq&A-uS zxNzz$k09?5@-&uB{3vmrMyawy<8;TvcsGhB>mShgyZMF{Y znj=o3&CbR{yyn>9C3vIuDnrB!yJ&l;dNHW2IkK+ zu6Fj+_YJH&=zCA!x%2bpu3S1vKPr`krclRKre7o6L0&^Qvdd#t&V@J~byub}r*qbo zk=ssc49}WYQ$1x|`g-%=b!k-8+zjT(O1}9BgUs};ufA6EQ__zN;d65@%w=m{TJu#j zl8K!QH)cMrrIV~TEe+vQ`fVtUx$(cowm}~0!2H;lzMy!ww|uQ?#qM`vbvE_a&u zlRl*S@i1>aNLgExul4szC(gDy-B9Pp=gT-B4!5TRYW+d&EBRC>^BMYdTJ73A*Vz^` z4z+NE-w)_E4AqXe_)*Zc8`NDgS8&YyiYq#zE6^-(w@hBa^?rR<+;q#Gm$O%H^S#j( z*WLcnD|$vavwjno)3HY&`;dIe^MmNoQIJxPKf9rr2%Yk9S`?=h%n;xs1Kme*?eVw=+Q;XvtreqGhjr zN&fNjccy6BH@b-yaaj0MwCoS0XvsgAqGj*yyap5ZEGYWNhhO`40xkEeQ?%T_l%i$N z#JN4*z4o&E$A@n;MeDU$3;*u%_H8Lz_Rpng$v>Q;Wv_iZ{_*a6Q?%^eUDA%h+iM?> ze|-4HQncjnPSGxWTIhF=g)c?ReqV}~`-3T3_U_K-lzVsgv(d62VIs^wUjD8WE&Em` z0@C)&Qnc(_g7T;3e|w6S{fQK<@SRD~vR_Y2?;r1fXNnFs!XM_@Dr!@tH~5~E2TJy< zGPJ(+!Xx{&fdEC9GBn%JBFSC`O8#KR{vqfc*sBW2UV5gZDf%~{cctiWLyxEEzkrtB z(|S23+>0m%Jw-oqpJtDx0>2Kl!@m!U&=`=EEE=+8lq zrs$`jrJEV}bspq+ihcoF=ZggUzl5%&=!LvL$8R@bQTX1%b?ZXcJeOwS7q#Pf>wJwZuTF~*!M#>6ZwkS-v_PswVQBA z-oqLGuV(0PWa!_8Zl?VW;rVya-O!;t=q!|j&>_A568bRoF7y9;&}yF#7`=?NQ+pi3 zcN?_Y-+gAk9a`<}(?;v;6Sc30jQ&+mtVr$O8KbX-R(luZ-vq7pO}f)czfS1z;7!z%p$9VbeHr?p4E<<^ehPZ;kJZBa zYtU*xU&Jr@KLM@wa<$QalyU!E=w+?7{CNd>1bVsgM@e7r+pAXSO3MD~jJ?i6IfngC zbANBf{>H7#roWLY6)UVl=7l!IrgIkOjEhJaHOHcPKEoYh`V?mr6}#dtW&%zNZj zuI&sIQxld(?#y#0JTK;)vC+3pH-2*kb`n_e>+W8E{&vzij-sf! zd=nN)8Rqu(kmq)$LQQWxkyP+}Gm=6sySS~smLs(|bJ=dq*rnU{A#PKgVVvgn$9p8+ zo%ia}>=mW{M3)&?F%w3A)`e-hdm4sV%8Pb0lm|p7hBs?sTV+f4!RqREB(PevrF16UU12oPMXmcV3=!`0V5#%TLY( zBCB-J&8*XN%v=ZH*lQ?q5@AL&3TXN=&=ByMH>Rdc-EHc%+b@HSy9yJ+hcA1O48_dd zmzgzB9Bk>Kie_zttMgf=`IE+&2qvYRgsn9NO66Kp4x8>qN-b6eYwuD*lk!5mi+!T;Stfd zvA;@qJAEyEyHI<~ghf#2Lr4!rxXy6B;TEus0pnre&-y)aI=`cpF_g~bXano{@XHHv zUz9m~B_Vw7Tp0Y_M6H6X`>Gs zea`4c#zwL)f#UBqTKfc)PRE4`huP;Ddx&qHq2^iSzT0rXQ0KqA4R;#r$o@E}b5C>* zOxt$SRXEHTR7iTiZrBX3{L6!KuXz|JU-W%`-bHkUpX5C!MBZWHXUI3<{fre2PY7{$ z4wQS%%gFtD(50WD=3`|3oZ&e$U&{snoewe~e1PRXA>n#SxP^EK`w1_3sr*|lWV1ra z=x*W9F`gBYZU=-zq=yhW?%Wr`@6LT8{F?VsIJBKpm^0K_jiU3Q&b28BKTEk0j*u=w zez;WON5=6ek*X8xSvIWup63+}&6IEDDL!*CZUdE$yWwh?--$foU6f;^OGXa}H&Nb%<9yc%AE#U!9yXjX zJZAW^Ve6&vKS4PYK1q2NB5%Fn2E(U?d-;wuoG^Sz_%oCr!?VJ#P@ego(|JYBhONSG z;$>JABCpf1SNIg^BP2Y#goNj~kaTJOagVK_(kE~DoS7dtoHX-S4cqySd)vPtAHcS! zNgvVsXfK4nfP9(b@1$@$^+!nkZRY!~t%5&7!ch=nze7lU+bg90A2OT}{vz#!5WZ8w zA?ou|@Rz6`;M<<%-RPo_c$GlKXM^m2nR+1nRpw8G-yj_?@R@6$+XynkL-X$*)~#mj z`x>~MHjcKKW+gAUjZJuS;!&UFo!4bQSFmB$nGZiwge_H z@CoUnljjh86%ua|CLiUec*OkZCT7Shy&F9)@;N*~9^)8Jz#K_7lD*k^MAsCqS($fF zchl!@Sbt+(U67=+0o!_D!PacGZYsXkH@IWa>ASF=8JDCVeW%+S6`}V_X?JJLct8G)qq*y1sqU%k zh@Y+A&03|Mlk(Tn^%q|rbA?Cd{n*Pa$k%$N^Z=F!PQuw7eR4{A z5Yo3Ii<+L*`ZDXIuYJht{ro=h?n|wYl9SV&iT;T0kGZ41zT)+0>R2OZU3Lj;r-=Gl zr%$jW&)R$*odSOI@C$mr(sZ}<3F6hb`t%g>Z6w{6!K<{C*-6Ye2dFCZV0H?#7R++dF0Bze zzA9$XA+3Mcc%$g!tc~xf{xb1yAzm@MF43s`xDCELE(z%tjefbxF?CICN;C8cHqB#= z9a&95AJVUl*O1}6cS30E!jQ7$gdh~N2UURaZ zeG8xE{RaGDsQ4(#InytKs&{pS13iE#hE=D(L0DBjx8PoSX>U|M(M`}j6jL#IqO@@F zjDDp$uk`Swh39eN{4nu-M0!nUkS%%FDG!z2$Zsh4xV1)JXDOZkI`ioP+oPm1(gJ<_ z{eJIWBWbBU5h{<3<;o=umC7Y=CqJM6ICpXs_gA%VC+JT+XKr%QVfaha+^4kk>9@j% zJk{xU*c}|&3wQK}^7v;I=Bk%L+qHyRg zH}RhNXUdM{5oK-qDa`AQ&Otv8-A+2LrJO4rSC{rv-uG8~h;v@)i&+8uFk#WV@^?L9 z{t)(CuJw8zyh07|{(4ZLC)B4f<)rHZ9sb{Eb(&1~Wd+?Qp!h@3q-gEhfsx6@6r1&&_;lWqx@{gWe zmPda^yel4jWi57%UwW4PN)MgXT{AiE6O!MJq|>=&wvQD(q=n>>+NNA_Ep5pi^reqX zD!=l`qAtGjJ<>ul<5Bs0{mDW%XUQR_{*dom8oRjzYn*a`?jv!XuA>cn%aw=l>p+!p zNt1N_qS4CqeAzVJ2Ix5=;O(XUw=ts{-d z3+Va@?o`F^=0aua>H7M~mON&hANLme-HzCoPnE$s#w?A*k-S;aSg2gqj+?6}YrjKY zsXZusuomA>=WF#z^@n{@r~kzGnp1phGkg>9wUgH!r1g{Y=1tC{{4o}MUtP40eqeNx zHo)bR%ANXgrFm0fbe#V9DeBClI)5*ZdyN(1(I=`U`WuypeeZsjdvxj3vDdyum92*2 zLzAoEReRh-8qB+l_K5y|Rf)cnbnGZ$SE)>ObQ3rDS0AGP?56IFR;J#mvV`v0dfd;G zK4iXclD6kj>Qj}k8_J^ZKl3qqg!rwrmp{^Z4P~q$dgv9`X6H@64UFPvkmvhP>0Mq) z`Bj{9Mcos9$5b2d^ACM_vZ3T~5PUoQ87`3m)ka-=>jod==an;>6TmB@!~+EsW5E`7GT8ky=Jdf(;avp{96 zxWD={w)Y{(yN*0nJES;jrvd-O zSE%^@;Rxk)EpbqM8uFDX`O!`q1-E>2HPu!8SgG#NM^4IZRHVHm{Q4faP3Ma;o?B~m zUwxv|RBcx@NzG+4x(JTc-F<*A?3dGj}SJ)}%{Q;~zZn$_wz+U$XC&1%xB` zO*`DgH{G<_6tzQYFWv=zuJF56^=s&BKcjZ4amACb{CWOK!gKpH{b18Cepu;n$JD?5 zz)wuhqm9%Zukvq_bWnOOh>0hD>sv&AsVpd+Xp7L{k4`sU_QWfr@&2m96vftmuXsY= z67G!D5I)CWCLc+QXO*__D^Kf7w3~-+KKa|EtX^%7 z660^dac~2_f8>1~s0#x-NrYAWG_i3X^rQSVxBfCRGj`uj8~o%|+lrPob=x1^DA z>tX0n-V(k;rIRGO`zBDC(EC`2?~6u-v>j@jj}V3-!k}@uzFXx-^C9lzH2>5_$xQh# z)Y#4OnE4{;xb(7b*|Mlv(Q2lM8s)7_5PD zPF&t!t*od_J=xGOdFrP;Ug^_hr|=NpMWlz)<+|@9 zO<1{d^{(+e-+%2(^zBGpq91RwKHwl})L6hT;*tZE28{ntUyHx$YgGpoj-!M}VR7+= z4rv|Yqi>j>PQ_3Ch1!D~Fw@<)-d$<>z0j^Lqh0IdU2_-hSn0M&WNva5C;b*6q?`oLwFU=M#XKEu^Dl@1l|w^rENN| zzCjpB2j*Ysw+?;$BR(s%GBR7Zfc~RT}cHUpdD3veuDP=F6b>_8^2%V{U`W+g5Pceth-}% z_La`ffTYa%Jv`lR?+1OyT=$x~8S2eH8s{bdi0t8@TTDH5?%cfNiAi0g^@Q3p->nav zNDMrGE)E9V2g&Qc6ivO4w6^9SZ=Yi=EYRUiD4lTe*B%N*>e1Q5>1VF{HiKx!yH3ZD zHZFM-te@m3yMz3sgLo?#9@#Uun>?cX6UwiLd?77J45U2;qb`+Ga357W$24&2f`zM>8XTA^gE$d-r9MW|I#tFW}v;MWQwj1 z=4cAJV_MzKW~R}TzSVCg(@c##N12=Sd;0iYXWrG-)7P`9ziWGcufJ-_sXXcSxEr$S zs$NS9ZK1Swsrg}=kfDgq8P2)10Hw7wry|~rOXW<A z#2J?Y_NGHYRx(FF9n)9<|ZF9S~B^)ULF#pfh2#+ET5Hziik_5!BlG0pVL&pQn7b zwMG71ThQIN1+F*qmxXVGPyHYZLLEZr=Y`18d9=b-;X9BcBs>Kn;VBx9816OHK8UtF zZL`q~z#RWF>Z#-vgveVZMBX|f@-`Uu3NJ(7KnVY9LilrhJBhzVsCs88eXF*gARUCn zV?Al2cso6(ccKr&H<;vvg3;1XQn-sk!d)`^ zZo}P%PYZEh5yF2^2*10p3VFwj&)ruA{hDafsVKdrcbi_*dx($dWfU$tPMPbxU!AY~ zywUCSOFCy+``W~(yS3f9%x13rY|2OV;VP%PdsWzC*k;&nxXiF%xXN&~VbO5CVac%5 zaD(AS!!3pbhGT}~h6h2N+wAnAE+@Z5UqLt-n5h1^`>#Gg`im|Qf8h$!M@aha5TdLx zDkPnE3HeAF7n0sj8$K_jJhd>{uJW=@NP3S7k+WO4lJpZINBd4B=a3LNFA2$~9BqU6 zTZOn^X1H2N{)`LBw*y9N!dUt8nvilYeJQ!`5aN&1o8rA}=Fbbs-&Xt--)bT9wiu3^ zc|}NgoSxH4^bAEK?}!i?8k4zp$#Bx}Rl_reuNzXrF6hAv^|BGw+&vxqFC!e`p_y?H zS?6?1ik^%PlIE{rN%eH@#YfeSsIrc(2lZ@B$r3HU^t_*+_}`3=BI4YTB<_(sk|TNK zuVjAMQ2ctz@R3c)BOd+M83v1|&lA24Fc7wKnonU4PlyM_Fo}cgUO?WKzyt<9AzefA zET_*Y;sMPQ;~dH%znCA*;tY8Ml$m16VUS0s$3>Tk`cD4M^mndYakaZ&EPny_iS1CP zX3l}u*$`*fT>e)j?s)R&kg=X!WIkk)IptC24f!ry#`iPjsVVAyoVh1|uG>59`}27_ z^X7B$Y~2^>)tr5Zb050*RqLW3o2Cdi0J#Wa4{tG2g2CE?-#CJht7p zwZ_h?lni^13X-z~T@b>;S&j9Ch4t~Jf5rFh{0W8A&g+6-XDz+m!WhmkP#CZ0n>eg% z>#XPJNRY3R_%!Pb7Jjg_xXJuEY-#a(-$z=E{ZC2@o#mjohj|KxF{HzPA{`E7)8VGe z|EiNR;m_Jll?lp2eZ`lF<)f@EX39m6rNxA$#b@V83+aNLeWX?{s9LUEjHl9KIrAo= zY%HW~Xbwtc!@0f5myPs$C>zwXq-<~|?NaH_gt8%-!HvqtCoHU?d?>8x^6@9QJ(Nus z>dJ=iv#xyJ{0VjCfjQFT|LeN)*-Tm}jOnz<)|IoAk7xqDC+61cN16YcAiwx&%{=O+ z{V0)NMVpT-mza;!I)nIq-fyftTm5;;V^ig^$z(2+`O<%2?#r$3GPji@-y`bug2Gs* zik7|hANwcq*pWYsvkT~x+@m;YUgD>W7AWpFXXx!2`WK+(w$a>w8(Q(#_od{0H^cw; z8Cvs3N{`_G+o8iF|38?aZ-rL+sNa(OO&R-ghSpcKFZMI1S!!GVbRo`A-|#SdG&c|O zJ>I{KE9Zy(4$K)dAxOIE#+6&Sfo5xYpwDf)n%k}Xyy?dB1u!xhZ~*~HZ>;n8k`p8E zNi8@Ti^TVudEyzaS32XYjEqGhqh_AS@M7QinsK#18vE}9-^RF5dGe-0GC_I`<915BB#p6Od5HXJbX=fSrzkUuJ9{N74=62I!5_`{yBQ8RxLd>h~X z$At{++9^-sS3MMehhewOX|;C=FXJ1_Xg62!6TV)G|3aU+zDXvL8J_T({U*^J+ONX& zX5S<&%zdOElFvQaZ<6!z72uYe@J%AV3;8C|T+K4?mHU?r{ni;eL;gzV319Y`M0^+W zP4ZdzwgllRzvMSXA$d;0r!zhDO``Tr>8!RT`%Ti)$UZ1JwkNz&oy*!c9KK54?3?6+ zE3UfWJq6n5!jtSNSWGB&rdnOGGWF^u{{G;o%y@$JS@rAlx@`!NYB_g{W035TQ3qRyCO zuLE}}bd;2qUUyJBTbPsd-u7}Gy&O`%&$Virf0>2FaMA0=NyS!6C_ z`ae*%q_;)U`EHxm@iAkKo#W1jrY|b~>3q(0C9ke$t=iq|@#saQxp=hCAy@SL(!*Uu z{3wb|b;ZeP>9mRG_rTbAbRUB5a8^Fc4*jdsZ7KRU#G9gZMruTPQ27mMFpqK>@=JOa zXJg$DdK3ikNg7ac`-Wq z7(7AtZr-QVmXLOPtxhWKLOotUc^9wrEKVC=sPE$Ya=w{SP=2*X>~i7}tG}Ut(Y#ka zva(*_JWzBOqWt8N=KKqnUKG7>X$$vS*Q3LteQe7Jm%^gCv#5OANu7~Auf)08#eLP5 z@$qWN!}YW=A7Sd01!2~{0+*)nqCfbp zsPHhq%73UUR9+w)Q|^pq=GV4a{;alq{4V*^o5~;c8EJm?my(Md`n!jzUo}}w@w@(4 z?Vg(twDQR~sHv`O@t|#>PpD(K&=kd%@3cYcUzOhr@|7v|Z}LNah4c>nNZKrWp6#C# z_H@}w^FBg(pr}MD+bR!g2YnbR-=uv@dED)9aA`&u8CoYXr&Chu-ZAOk+rp&V^G?vuB@^&{&psu5#=Tw&nW&{l6TBOEk$qV^fQEC<)*Ci zMtF}?{-SO_Mp3y_S#)71E!9p^_MHAW5{pjnK-AOKJ}?;3vpCATI1yE{dVdla!Zf1&xyU5==8RhyzGcPm#!{4 zVs6h)l=r%iA#JXue`z87%6pX+cc0Iw+MYe^3EGQ}zMsoNw{S{xn$BGj9jRhvNe_In=dVstT-Y9zHTjb#jzs%YG>T8ttQQ<+CuNCN@Ck%>5xL5Jdi2rWVHQl$ql;YDl z*6M?2@nNR^Msbnf`ZW~Dm%`}vFQDTXvENZ;=^=PD_S5(AMt-aKX&m@J>(O^k&rr`+ z&Ykh+O5yR0`9uE|L=klAD~`9TZ=0ugln44Z_m9X<=Xf!hqJylMVd&k`b#L$8U0Zwo zdpH-26Uln}VE$2M>TsdMtB#}Q~1 zIMJP;`1!twwm=t+&VxEX$3Nb^&d~|<=XnwRG8p{Rd6@q3{G%y)Hx{BRVBl|U^xVo1 z#V4Pl_ZvL{2L6{*_TuN`%$_=@t0VeMivOr4C*0%ZA4}1{i@E3`X&B_cuE`DeBn81y znj_A83;RzJ*6bTH_DRIeKJnP-B;ZCjMaSHm|I_&7Pcn2hL-R3`JmP;nq5Syfl2jCA z&mM#15&fPFeN~2Dlc6M=o#R53FTMQ)S>HX?}^IXZ7(&+%_Bnt94I#wwf9Dx&RNjkO8s4_ zKMtf{zve3aU9Gi;-St)Kpo@H%bAyGmUp9o{CzKt&`%!Lwf{y4jJJ{lgI&fN@$$=yBBbI)+?C^{4_ zyEfe)0_M)>Bv2n++ck23IdxvAv^Qs*%PDaRdLm8+ruP|qkdZ&1aqS(~by@10YN;tz z-mpei!~GA)FaJtDkWzAMCj;tL{<|aWT$;JW?HP7?rZjZ4GQ|&Z`bPSOTomQf&e`kh zA`ffPR zEm`j^1~;$0v1`LMU01IRLQ-0?ssk$cnuw-e=3=O}sf_`L(=#P9|AW1^fwS`{4}0JJkhESeWI-Yo>WUo0 z+6WNlNS2Lk1gxyJEn{IHthEuKRx3+uOCU=dNhX50$p#A}s9csHKp`?dElT1Lr&V*E z8z*(ihA2cKrg2iI@#X5?u6DJFqqvE=aZ-~y;r{>g&Ybg}S1Y8Zw59zqzdifB&&)Gl z&wM}g%*;mdt63ug7XzI)NbeqD9}A3{5MkSxa24qi;{Ui1VVrw9!qX9Y54U(1LVsaj zglmPQ-|nUFZTy79w@&zW(jgqk&)rG)h&b>uA?bWlxElY=BTS$Arox^Gdm|hK8t+Eo zwWM3PCZC^3|CIP3{ET$r{=Vy?UMlfzWjNN|`HA#L#II*BN_a!Or*AFgDo(mQLufkt zfYJ|$L%%_|mOfQ@BdcZL;&%{^IP@okgm)6CzZb)~UzztUMo*P*q>ri+!gKAQQEzx}{u%xoo@u;2Lc`Tm=mVDI zpW(kW{*ZqJ7%cg>7P_KI`Q3#jc^FM@(#eBl5?xt;aSwFP`;$p@Lb{lSc^#bpKc{vL)X# z>=;0nfSiLfmf?=6tT)JT+emwNC$f*8ESIPDA$RLTj*(=($zJ(HFZxN!cNY**&~X|? zCPVnhCr$;KRSjA5ST4tyhwSF117p`7Uw!NpLrV9H=rkEd(rJ11xisjAg|s5)gkNnH@^@sEGsU(2Q=Z5EXf5Ao^$g?fG5idE(T5@XdvIp&g!fo{ zWU^=ClauY$`?+uK4^DFif9eM&+ooPRdGb$Izx?E%bRt9Sm|Qc{*}KN~x_EaGIdJX% zN#BfauUU6TGJMy%&Nebh- z8N7~B4fDMqKl&~Sic%k9w!T|(q74QXOk2>$PME#9efq|RMJ`twZzLj@I~*zCwA1j0 zMee07W0(!&YL4gO73Dg)eg0oLg#Mex(WGfEBsb0KeqG-59`;36m++fP_`AXN zJ3yZFzrEysPYJ)Tgg;Qi>m~dbOZabq%fFLA<9iAye^UDYq(uMC5+2sQvHG*_Ei7}x zOBA{0SX9IcE20*gd+zk)-5uL^F27@ET2G|4U`}|)&Zq_kUE}m#TJq$}7egR`?S=eAYh-Wo|bi5y{moVbc%H$ z^OQ%0%<1H}XL4Q;La%P2XK9uSv0o)*E*RE2xbF}LhP4jRHemR!d4z`}d`vphb6QAz zgOsKIh9guTO?uZZu6e@R1^kHa71j^yzlm_WG zo+Evs9u($+(p|`0@MF+zGvH`aT*3ldGvDZ|U~w__O!v+?7j&)n?HHCIg_rg|&e9uO zS*cuET~?`7mWQ(|%c|9@R;;La*5xWJG3URFc4J=Xjk(~(tOC5Rb)9pyHue|W-t}qc zYkL`QJI0weahC~mfKOx3p6Y$~xqn91s2cU@b?T(^R&h4Q*j;bVqZsqM_r>vGt1FxQ->bxk|RqV9%0+ELQ6x02rh zq&>|i-@Ao2?D?VNqCI?O5B+xUBE81>!@RKrlZM57ynEj8?URPLkFYZQNiR+RY3}Lk6o8D5&N{D0(Id-qG{5|;M*b57*9ykJlK z%=g0FE-K<4J=>7UtPlAQNrI_ z!kwokV|e!_1Sn1eXc+OvMkNO%7;BL<7R7N&5D|E$Gv^V_Ws*1z2I1^&qwE(Vq-RN!eJ3?2|-zd=YQw+dYtU!b9_Q8KM(C@rsK&Nc3I;$WIxGfOUA7r*kjbF>f^ z&Vg1~9(T?~SB-vz8tG;mPpmt|sGcYy1-Bddrpq4%1S8#rj3@sYy7wecz!bc&IG)r% zDp)!m%NzMZv79Aa7$p&(#y*)8UKmey?b)*<4k!)T!a2s1E3R11sG>Rlcw+s+G{zHU z3q2Fu39FvbM1Br#0^KfkEl6H>=S03<>mA6?8ZL>t66q}2e@0iLPM?}|CDQs%*#cEK zj8(3Uvtx`+b;g}>){Mh(>|tGeCvl{HH}uP6t`(zum3x=a%lIfXjkP4}{s)TqXj9jt zt-E)64SJak83Ai)+E91U1s=%n_||PM{d;j7Kuj6*xs2c6^XO~(j=gkU71GO?<=uGt z{Uo#@os3nVFZi1`j*Mh{>{`bX-G7Js!Wz0CKg>6GfW4ow?g(KkQ;=UBg#V-PF5R7% zk+;tf=0y{CP4*D4dN{sAZg^c2+}(sf?rNG8pGTVH%SZ69E}i%8sgpABa`Z^C3uzp! zPtz8IZlYsvG0*+@okJXkshjKe;D>xMWkxTke(Dj%KJ7aB?i_8F%OrY7j-|>KJ{9AV zH$kqz{9<#gBafr2s-E{F(3`fOhBnocIfR$WG?n)s6W?vo@BZ8`x~%o-9r#~e@;hgk zdz_%ZKGJW9aSg<{W}`>P`^>sXzZ81I?uGvIvxNOe(C&-0ossr5GL^wdOTGe+&4)U+ z8zZgy>4y6lw8b>cg%5L~RsTEjc^7k*ZPDMu_>)&-_?wMa>e%jzv}2KW=p3{ULz~t9 z=}g-wbz}S!hC8j^)4im*MFx^8~*` z{2Y6WG8{C3La((2`|pK0(|1d;hio^@-)9cR&|EP2SwqLo+;Gx6eFiuu$fP$m>~i`Z z2a#Zksc{^e6ULV0noIAS*oDYj7DjU8oK4=c3VYoq84z?Iiu3}Te2&v_V0FX6O0Dd-leS?b2aJoa0HxA{8Q-G|P>j zXFb`62&b_P&R)j{ne?We^M-w6dpz1Sl>l<-Pm9DTTsoC@(pw&AJm-U_c_?ZZ%=%nm z`IXGLHBXMtA?IQWj{ZOpm^H**&7J+Ev#5JaY@UFmLm|t;ca)wL?Y+vWA@w?Eibtsr z$~~N?+XpB|+AIF@EE^Nj85|HU$op8~!{W%r9up#mIxb}4{FIQ!YkgNv<=I^2Vm(5H zL{(v5TpuJk7z?od+B4~|3oGo|3NIl%A?bQn_-evq9Pmz=J|Po^r9vhY1H#J~7lhE? z8{PK{U&|h0v_Bc4aw6$gMmQXy^Iz|xQ6EtE6A?OL7VibhAMctHx~DI!MCf@=@g)(a zbDhTJ9o3*=3|{xQM<~7K01mLbVWjc5Hp1j^>>TOa00DUzEz(`cy6OKW zylu%7&^R?hsz}2O&Os)Ng-aCW1}1}QaMrr%Da!KSr9f~`pLB(LHs@22U2kGFbiQ@d zvg*}UmQ8xAA+?j9hmvz4E`v%_m z5axfZeY&VBJ-zuJu6Mj5tqA+7x)a{Cd$jJ8>E;|c8@O*K*@ZWoSTFPwKWA#tyMJJ2 z6X7AV%IERp;jCQq><4Qh3XZBdG~GE?f7vkKAswVSz|l1S_nnt_&u<&9cVxqy3t~Oc zHhe$D&Rx&-`l&avzH_^@o9r&Z zuA4B6c63|aeejKl&&az#OCFeqggkkdZSwEF=bdqGT;Yyq=g%+n)~CO~+%~N@;Psio zNRt(4Ru^bkqfV!|T+ifjvIfhBC|}QDN)HyGi(y^u($1rDY z3-lq5vD(y6lZR`f-)#lIDSchTd0f-X(N{z|&uFGN9xB994F8>xwlC7M20SHi5?{VT zcxxlgi>yrzuT1l+(8!NDl&5dMB)+pI3FW4|v}pf}*eCui4E1`wGSz?0{`x;p{Iy=O zCh7KF3+qo;+XK%iQ+7={w;Fj5%~kL{)i2}S=-PaYJHDaqhPH!su=LW5oPFGGDhqpYF^VKL^cwp~>(6&);`ZW?;Tk+Lw~9pNsL-&XKMg3FEVorg{#V0cge} zP479<@@CTlFD*msLXoGo;ofm{4XEE4=l)Dz{uV%fMkjoaew?-FeKW5o9OUlPsr@u~ zPq~^`!#0ne-!9e{sq$O)rCs`#$6RHt=(g zs)ygRj6be{l?m4Qjqw}cSK*iOqu4z&pFDGv!W8?$- zysS1%Q@7^(23*@XeJk%h{Y|WA!JWRGgT;CMWo#e~u`ch=!}81$dpU-|dLG{FpZPKT z2fy@-o74AbZR#JVZ~ABZ%hYdqPy2s~Zu0rQw%VzTH2xarxvf|I8Sm6oQhICC@AsM- zc&RRmcf)({xaY=5$NaWl^3dz}V47~7&%P6HgVj6w;6Vji+qG_Y5T9=_D6?zuqME?V zCK$`J`n0sEKkqrlcsCK}2&s+?$kuCrFoUEsjkW$ zyaATK0TIHSs7+l(pVS}oP$}dg^*5=EKT5olF^wLP zSzF`HGW-sX@;=r8^V(7R!5VK-j@#~UbMIggbGXKMh|W#3{o~K`>Wl%W=1|W}Pil9z zYrlCbXVGv>_sPP1EzRi$h;xuQO}lRngz~`e`-n&XhMnxhi*v;B^Mv=eybqA(MB5^5 zdF*~3nwP(gv91a)B2D0Fq3(8(t{dZhAWP0c^KHU;N2KXG2hCqYljd>HoMRs6+ke-_ za85)T%QvMd@B)6?kE1kt=FcK;(>%4Imqa@YY)Q3s;d(hZNg*}8y zljlQ}gLTI~qqAUtGxn)ZTUq4|z1}cRg!y5y4h%xacrv{Qe8?Whd?wH)JjBW{EM;$Z_>)P7dgVgtCowJ_S zpf``jdEzzH`!r7+iu3969AyNar8vC1G0hW~%rgHj*7JAcFX2Ocr@7(C#dBVK{T6w*y3ZLP9dzSa7DR0O}8gtW)v&1Xis|jNjVOaLo zp<;Qw8vZ(7NtfO@bN%eSBWI1vV-L){ldx#_%m?y*p)vN8Hq&VMrq_98v98Tf25DZI z?yfACneU;cdFA1A%q#x_n)z+WEm&-NPGgLpvgYG+^K&2vfy_xV^@yIGgFU~a{Koh_ z!F+U#-v)lltCV?prsZjV6a1W~a(Ppx%*^?zI%x~}o#y*-e(JET}64@?&y`J#XguMofXO+ zI_Lf=e!`y5{RLr8miHqM&MYMjx(9!R<2_EMfigU^mwa!A2SGM6uzsqKy#JJSXx#ZS z@|iKxSBv3~)~0?kzxueUwiSCHwWF?MiMY`^>m?vnDTDRi(SCoweddAj^3$)Hb z)7@WB#eQ5m_gs^#g&nl%&qDW@V-;iSqXoL+yiGdqkvJUb4i)H%W3P1HTO?2AZQ`r# z8rjUE;pktPNvcmR{GdK%<8VK|5rN&!jQKcZyTprr%l=^aq@` z#PFTJrE*K@SW4JiV>*Tl>1g3G>3DS^4fDlt-e9o5 z{hsLG`?#$Wv-$sH=srU~>b`<UNK;PNOP5zeFkpix}?^G1seXk;omIb-!9?K6_YVNuPouOE#b>c_|+wRbqT+@ggbXi#`r#5!pnLJ z>INkv{jZns-!0*PQNsVGgqQEX_(A%TWDLIwZhfvZbFw_011F>V#uEPi67D&TWTgM` z67Jq(GP;-Vzc_}w?d3(>jQ=Yo`X@`cm%%4vcz;^LzXfjldNkJ0AE2L2M*7Q2_!TAm zZ6*B160Tf38N*YLq}jFhpRGuOW4K7+*3~x;a?iqu3Ju=Guyt3kSEqUV@~xY4%k?+j z5S{tTwIY&2N({%V8uH5%X4e*qq?c_epW-T13%sbaR(Q7 z@L70PYxm}zTQ~9VE>yHzRAC@1oH_z)Xmd2wHj4TjCITWK6VqqQb7TKqG+Bsc=T2_R zk`IlnbA8rMZUx!AceAN5$3FrunymT`iYCw#+NM4C+@V)L!>ea|Mp8)mg&omtWZ!5W z*Opy7_w3!f{qB+Mtm52$mk~D#vsEd`iegQOe2WLtV(2m~e!|dAKYY*jEg#Tg_nvLr z?+hi_xSYc(x^vggEiLiK8$-4(-(IMFQ3}yVk5Uuk0XI zR*bXMp`yKNK73N)c8=V&d9Qc9fZk)Y6`Gj(IxB_f>#P+rUaB{tzRqDGgWSVHR%8=G zgd`^-d@@4&7xi{}=pQ}5rrxD*n6Y;e^mYa!9ExyAzRDb6QaiDsf>hVlQ z_`I;6eoS~N@(TJP-R)ncw_k1O_kgPps{KTSrz3np_}YAaD6G)mn9h~LCHZ+S-;UZL z{`y>Y(f0<6R)Ea-J{Z!x7#qT*h29;wK_} zHo{K&Ro~F+6TSxBmk0-iOeVq|AjG##dRNe@G{aL z@gosFBBcI2CZt@#TX4~bI`9~K&pkZ?{2*=+X>^H8rM zd`5UF`HFaN7dU(zjBuThb`b6;=_eoJl*_gVMfpd)LY@z)K}p({4UDzaAyhi zW>_5h@CG07;fOyaB)=~T-vU3GH%PZG!hI1QiSR^(PYcQ4vk~^Qsb~FMA*4KN!d1j4 zB)o&sy)L{2J-TTBLWG{>kUh`m(!kvw6|x3gww<1M7R)WyHNK}Scx#b z0k|~c=X(oqFw(7!a9xDwdmC^#(rt~f{8r%JXn${nV-cn|1P?^~V1(&S!9x*09O2_Y z?=pH?_%`a9ka5B@Ti!|3FSMNq2hb@LuFltH^5rpc+V2VB8rp}DcKodHGRj#vm^n$! z`mTe&5iX3dKf)D4+V!B2`msYuIovC}o_ZyuorbpvDbKq24fKz~wa5a5_!`9!~H_q^CLpydpg2S#!m625e`LoZ-j@0g!6dBCxwL5#aOGq zYJ|fP?hw*{g*OUmCyzz@$q1hl(r%s?(ry-72DFnQlRtYEKM}_47$%sz^ zEtk^~J`>?{5k4Q`ixGBGw$k@RxFAByT>JhAePd62MT7$p4o0{(LQ49A3|(5rke@Le z1hazw>j)zmhRtB;`h(8pK#pdE73v^;FWq7AFCAz`l?ZqTP%~BtOWe3Lur|=2j}8_G zKUAGy3~yol78tK#(nJE3UUL|_CHZIgFO5HnD8OLJzln3CZv$?mZL~;dnv+TSpjk=R zFn>mP+ZtFiF6r9~_CsW1oWx&@9aTN#qZi1q)Dqrl>gsSIf)sDQY;$Fn9|%0JUTZjI zUcsDSuk~PF=q-A!os(}2_gF8SL?%4(g_$bn0%;B59Jyz_Iwv1I?YnZXMBb_V(!0%j zktO~Y4az<{i96jl!|qnJdwHBXhUJn(6ltWBufk+puNO^1 zEq8{8(c~uGg^W`j3`X0MCtwOsSRAKzfQ(}4IAz;0AJ)_IICZj^2;5V6`8f5#-FIH# zx%FjNT=<=M1H_4G8K<&%Zhhr>`sOrFr7_~g^YqPC`g_NxzBvA@D2+dkQ`K{fKYu$* z*nvKthcEa0a%+n@`+mPK7pUKz;rwer!oU3dt9@Z^WJmBW^zbTl>~W2_qTX zyr$f@R%m|}?9bP?KBMP?Nqs}PZ#@@X6~FpPeXDc}3*nusZ`D(=91O$X+6Yq+OSCMQ zgj!z3ZcVxi>08%Bw{4d247b>~s-somXWxq0ZM%Rqz{8Byn3lfvx!4D`4WlzPP(OuEd(a&Ux(Kz}6r!Z=dCc42Pk)CFLD1C* zI$Y>GsD~8j@Rz=whuaT6M?binv@RQ zyVV&q4W>nV_0Uqh8Gh1taV_wcQW_4;l7`~CA?TD1ziaAI#sx%JL8q*}o^*w3QYteRt_aPmc*?uFb&tw_?&p|0fUeybKjN87JacRHQ)`F|ov<^~ z>Cd0(?8)+VoH}bPcXQnqbmykiH##{Nd(MLNg?m=2TPEkfeb=ckE+>DS&G1~JVX8+q zufkfan&15u!iOKMhXX%)iT^i=|6<})uj=B_JpW%Vq{;WNe;4{r+&gjaJeKqBms@pY zn&klfzb%xDI%p|>x$fC|-cx#DX0kwI-7z2P@?@m9ui(e{f4)GQRclj~u>O5u4$Za^ zZ$Ez2$tsuqzejgo{kf3$1>6JM`^ib;kT&t-Yv2C%H}Z2f>!(TkqLcICYdsH7dUc5s z?XMHwM9EzqoAyNWe?n6)(R7t)Jg?_@9p7V=U*YTyadv{6HtmK9!}vQ(e!qaukd7GJNPe45yH`WKf}ADGJZ zt|))ngLxGvjBuW#$j=YL&tortXy(|foA(NwAz&fR)ugg%LOn4R%_ukwy|?zL;Hycl@lnO6C!JY*-~r+90`tG@SV zUvuB&7d?lve9L5q{)X?LdKNveZun>3IxC-;T9A2e`0JtGm^XDG=U|`0n&e%pRkVS5 z1GKTRyxpklWt;kQpmY;2o4vlV*80Z7xTSJSVIp4sM(RVd;o6k_to2#CF~UuBzx#LJ z?)H8j?dMkVvQKW5^*884ri<;h4PN~|Y3drt)A?1trMZaocVK6le*?SJPK}%Mdb9SW zoSkU2xo3N4&mX#Q-w5x|73!L8s94|r6XB=}c#JTLbyD5KdJNa|k%#$K_dD^b(GSy) zog^Ob?n!QK{-CO(|^MMyT@_o-of$ocXx25~1o<%%Lr{Zrv zKkt+M_<;iloJZ984fA`3vGD}Iqx_EWI~afafd4(m@5R(j<$h`W{w(#Bey1@m&B=`+2d}AIx`*V3dF9PFt{};W6N!Ikc?L&9$-o6!oYj)kac?-eeH8bVw(UKv$?9%G;ed2xx z^ZoT)V1w&9=e$jm>m43wSmbiJ2Aa(Y^w#CvNrUlJL9vxHqAMX9Kf;$jzMWLwr1! z(8%wJ0{`Ua+O9;{j7V_(2*6)h3I+yc%-+CT|a-a;J=se&zJCjQNn+rgg477 zmskBp$^G}hjcY$Y<6|PyFvj-+KkL&mHpX->>s>A^ut0j>>rF=dni76(3IDIvv;2vY z|DP)1|GI>$W1WoYnJnSz`y`|L#f&A%h+kg92TJ(*6285JpHHvyffBv?M9CQc7fQH# zmdWUT0^ItU>I?FeG>r5&l^D}oU@LtF?9KkWIy?v#UI|;aEPRK@!j^^C!j|RFg$2T8 z!A~G*J}g#vQ!G3=wk$X;yE^HOh37vu-8q_Fd*dye_H4Ry`wle0_ze1Q!0_5vRF@01 z!8K?YmIXaEU*il{+n&8G`Pp=blbH0R+S%o4(K{BX_p?w) z$6pnqzc3(Va9SsP19L**()_%iGC=!y{ndr|vtQKTapC36GllqjQHVdsRQ)OIQomuP za9P~9K>$}5hwc&K73h6L=p0o1c!W;~R}il7N&=_7swdSWd^7oous_0K;Y#+zh3IeC z-qq`x5WahyRJ_ep)z4c~B6R&VS^+ZVJIw(ZvWn9Q)>97#t&JiJ%t}bK&cvQG3*Z=E4ApD4UALS)n zOnnd%j(UL|uRXkR?jEH9xH@pKve5sNOG$l%Q@(5ulk{ggE7440aI++HuPf;j?R(WLZkz_NpCk=&#+&B-J>_x7M`nBRtOTLWw6S9;jhFjW{=C-E0!a~VJL zL3KN8e^9-_$%4le@5q*1#XN2go?nK2)zugLW>$}#W zHGb+~tc-5lr8B)Q8xOLT8fVSd)$;pxYCz>5E7|8`9e?J(mR@;rxc7P(SwoCt7`Ed;% z&JYeDqwCG@nCU32!#gLG-{$^Ylk2}IA66$vd2k4K0vXRhz0Effin=>p72>Xv2hxzj zQpTk$8{W2YCsX&jG4e2R|BUI(M!A~{Kgh36HDovgwW(~PKEH>1=e~h#YhBFmx`Afi zJI9dcPSj7;u={=Zt$e5p{NM2%(ud4>UakJJ$M8QdtDpKk>?bL3_XbFZ`vRdH+iH0} zLs<^TvIJU|b4Z_I&E>o%-C_5->SxHu`f0kWhFoqP_bSoFcCX|7WQdo1Qti8IoP{>e zw3`NP4O;QGtUm2MeYB1M*Tp*v#0^h3>*BhB@rDi&LxujlW9(FCCD&0>mxwse{9!EH zBwx9ovfWi_%2&*bdlS}U(i-Y{F>HpBM%W#M-AP#l`WXJNm%_jA?-9Or&-5F%d5~8r zOWVDCf`1cicDc=BKp(StFQB})yzFw8cZl%rcBOOq z&Ru&)F2CXC+uq1Qo-H59E?<4?J1^h7ckk})cW_bip0kRlSY&^nJHBm)O_RT|HrWWY z{3hGH@FtsgcjP9gKiwEJ^EcU^Dd0@+vcblnox86s;JP0z;HKx{0B}-C*IdcyepLxC%aCp?x!+#G?<(ORE#c$f*0+a=%k=$R$$g@P z|9%Nq*X$tmabxuVO>pbyaKz^|>T1r9#o*S@!aVgf3D>I%O(7&68;w@{0B)(GKTr468?@7{(%y{zl1m2TAs%LP;zg!wcPzp zjkc8I?=9gwO8AeJ@K2ZUV3Geq3I{uPfohC465A|9lBYX4e=> z`kO+#-6MN1U$$(;vMX@kbi?)W2x_=h9+?$qd!u!{!TxNAa6C4*z7r37ws{)!owwXP z)I8mbMG$n&7F6_ecI5F;X(PzOA=BByX(2y5G|%k@xmQc-;z`*?YN0y&$a3S5a+JLR zKDc?uJtLcT?F=VR_wEYEcJJDC_sH%K&C0Hp$PLbT&rV}F;XG^JJo;SZYM{hoD~G#_ z;oRwd-KG(?(YB7v;!rpP%;zkr4rQ4Kvge0)&l1Ackq|Ud-?@9&-RB7bmcyIKrF49| zQN?m$XNsexdNqWU=X8zF43PJ{=0)$}kh&+*_sr^Z%QofKTet7o!X710hA~TNWp^&W zoTb|54y|=H#u;UvJSDap5p-w(vjsX!;pRTA9I$EoPCf4}S0G*AF}i!#`$x8T(izz* zc_it~plq$B^vk#lr*6i7_R|iffOFE>kGhvgJ+9x%fUS4zDA|N#@MY#Bl-<1dTztS0 zadO^*TSNEUcdO0an?EoTU#lp&glz2DR3iAm$cH$Ne)s5(5hcnWT+X|z`YTw6msoKs zSx13+{wPPQkG!f8#JRkTHqX1GwLR+#A-Sx}^MOkl4?GX+9ILOA%cB-wl8@!uD?9T1 z=RV-#{w%ADWB-V-f?QCD!01UKa={mcO9-DigzoOWDW`Uhq(A3I%DGnw5nzRL?j&Nr z_#2T^M!JWE_&*^;zC8(4j`%`!?_|t3T?>R&@*yN01HxsI|Md9@GZbJzCO zq+9oE^YUw717F1l;e+rx@*})HFW2@P@_BFj+Pr+*Z_MXp?eEC<%-e6u%e#FY`Pbh& zbAe;~&G{aB`z?7rXs_k_6758OP&)Pl4hh*eI4ope;D`|Ue_hCg{iyKPyxz30&vm%l zhbR~AZ$nNlyq$j+XeiQ*s*uf%^du!y)}KuJEX#@aA|M^bqvfD~=`0&qA8?8_n1@pU z5tmj&l@0Xgqcc7FDbgJWPbLLV)oqbupGE*^8!>%z_@(r%=G*Y7(!uP&abf%xNT)kR z6QJR0_CrT?Y#3?$y(hxt@Q9HWj5M0<{K&&-K=>z}JV++d!PZ7zb^9aeK9q=niB3q< zYnU1ZI0`LW9-;1=k6wO=ty{vIxH!vxsgTALo>NaZ;?9ygUp@Q#yjNCNUa;=8dkUC_ z?zD2}q3Wk*hN@%A56?VzL$15LWPm$lH!CX|nw~rS$;oUKUAY>vvvFj>W5_S-_4yU# zcFOjYOZiLkO688^cTo@b&UI8j`zJ%ykIm@jxkY867gdn&RiiwMFjE-aF)U@j%D0~T zST5@=hD*I(+!uJmij;67H6e=1M^Ey5W{1ssZ?`42u~-Zc&1 z=Bo#%9G-0~#JKCRo}Vd~u|c^yNZKTv;J%CGfkZY9Y?^Ssi|xC1n|Gkxg}SM}|O zCJw`c!=e7o>#d(E=Kq_d>vJ*xt786thy33k^AGQXZlw8V|A4zEV_t`AQ*#GM7x|>l zEmAN2|HXYNdHmmB&Ki2CEulESFJ}#G=xFKP?dvV@PAjr8Som$^gP$V^7!X9$|lEORl=_<;cH6xdrJ8B68@nQ z{_zrC)~)+_+^sLql1}+mzSHolxLIFLNB5JZ@TS47FXmPMe_e9_fks`+Xb+Q(Xc%_6d zFX1KRtE zv*eog?onDai!3G=BNZJA^k>QM8duXH5vhimt&)SgM>Z|HdU@kAx>lh?lv5#~X^0_} z1jftkiZaG>n9G;1Fw7)3}EA?KzW*4=XL>UEoLx&Hd~ z*9~nNT7B)h>oyr;;DPrR#(XvKn5HJ4r=Wqys2jL(Mt%glT*jE>kz7r9wxa?_k|0pW z5Xp2N+Q{B*yUG%#oVl~e?Q(}%#d5L4&n>sh3E|GfCCqihnq z!nm#MP&rGu8&TMw@9)0yQeAbc%yB_To-=UIzhhfGn3408+^WP(6-9V?8# zhEo-izO_QqN7HIiHJ8{_CemcN{#Kls?N#IoLpSsP|F_V*2J_m(sVIZ^NT% z1hWwb>qaut>0XP_a5c(Hm*k(}zcl{JvcV$;P%zSHw(}zoqXFTcbn+mXM5h=nC_1r%IeQ&nCe6uI+9yxRT@Yb_?@cos~%yd?p``4_r7I`Kth3o#d`|0lMr*m%^=f4hDK0V`` z_IDCixWj0cu(*$@yB}Kj$JMz|ufnr#VSk>z_S3kpjc3VN?=A}AayO~_@9eL2yLT@A zKulxUE5{%E_#s^5HC$;tZ|1y$h38=(3B!3>AfSpk%Amoek`bqZt!#DaTRIP6BdE=ek;-lqY zStma3mlxz&y#)Cv-GPapoJo93bRUN95Mfy-{s~aNcgYX@CcgeKG}@=KDDsMTGS68a zTX6e4VOqwFz3|^*zvWzuB2o7M4{pj(5dye2-IJwi8xL+dFVeZrw(>ZRA%yqQ-q)$C~#h zX4t3xpktVF8zrpqCeP_lksRGVy#eTZIJ< z-+I^D$vN4EQv=~ztJ|jAYV{7}1l@DsXIpmv6la2i9#32Cqf@>$I;Z#kaIaq5=z*y@ z+1O;pdFBfA|0(ilANp&FN5wjt((W6&@O9dD^jp!-+Jc`VUmt*G?lJC(%<{6bJsrd@ z)MF$8$m#}XiI8J>TnqG`uH|av=(e1mdo@0GB)>q4}n69Vsm(oTbe`Y$S zDZRZ~rhfvO)IRMK+p7Ct{_SeV%YTk~@-qduc?0lwVC>rCtJh9;!e8nv680g|$DOL# z{ga*WH}SS}^kb9r;A4SX%Mao<6fXD`J1eiuBuvrykN z%8yEXW={PZj`3maXP(DS&HCw00S-;GjkBmNd(Si~!`<`ao6V1$BRu=+)P4@exDOO) zi*>?&JJH(K(tN|Q>#R0cq0LojbCr+0{G#mEQ*61A#@nZ}dVT);NSE`3EJJcs*=nD@tH9Y2eg$LiB5ZtJ&c zu)e1}26#(;X8c~luv}6bJ1Z>8d=eL%hB;wX<=SO5Y25e&3zr(=9UXzt8#Ui{Vkz z~{pZhn3vf3Jv$!B;4@4rzYXLPco7xJbekj8+Y2d_oOjR>V2^l+Azw` zITq0{;>@2LMx6O^!-$VIuw4HBqb2-fCHyB#_=6?X8~( z4NWf*bb*3a)K1@sMK?*iSroX!o3FX{lAlS-iO-goS0h;n(&KGg)3c@@9^qOAg8#s7 z&Q5Omzz7OZEw9JKnB(D9gV_-tab4DY)is2D&mB#RdwhhpaS@w*IQz_BI8Yd(8X5V( zrX8Enm&x6VVhlNb2P6!v~cLJ*)GeG?nx__sh%+UxZgiOeu6!xL#Dr8a|&dQ;0vVyTpeVGAa zB|j6Vo=nh3A)IHme|6MH0aqVIJ(*!4;T;g--}CV5tvnU+lfp|`!_lU7uL#NaK*a6q z)oWQ7p=ad8ha%h%q51Nknq z?%BzOLMFR|Lj2c+q<@2u{EY$^zlrok_s1eUEyVu|Lj3nLmRi0mh45ooNF_cfB;2|X zK0Fce(?Ij_OoY!x_zvmb=jp6$0?Y#g|M_RF3lVGNq;^%+qr(0^V1j}#ndpytNYs{lwPwDx+VE% z_%DsWwGjqO{`n?t(MY4&z>lH73qDgc@x`KvTh(c5^ z9*y2G%ttRjs!L0FOVFQsbHQT@Pkn+t9D+_l>hsB{mtD1NSuUhLzl{3$DiTrH-znb> z*UueYt|CGInvV^(^I4?r{_Y_JX<(norZj(H}WWkbH;OaFRXdvpSm~DKAfL_q`t_{ zQ_4JpKh~BMTX#0_S!55$_C^m+wXtU~uX^azYqUoeez>ZPef>1UQRBS`_6+9JW@yGk zL0%!9`vZrg{8;&{Z%ZVZaK;^W)LH1?Jxx3vmbZRf>n1e z-^P(M4%DY#V11ZmIj$E63i+Wugn0gvHK(%j!Q_VDiw0_whU@uDWhjQ3^Dlp6G8LcUx-_5bkwT;wA?_6+@8K7UR4zIB@Q zP{?O{Z!@2ro@uN$gRd8cU(Gp+BSiQ}C zln&^665UvRx-0UVeUvkumFD?F+tl1K;;TG3^QdW{Ogq8smw`Rmr>vuA`X}Hy zcJi>N5_r^N*MVIR{FFAlA2jf;sqpS;je0&l?wQm1R}r5wuEbwqHcb4{jxuY0*9+gr z3g7SqhP3PlF@y)XjCH@f@5J!BD65^lH)c76^5srQ+km)j!1`}{DDJsfu1Pj!nJ{$> zb=vgzZrXL~XKu~Uc82`0m(w{~f7x;5pnpq$pqy$!lt2AUZ+&`oC6|{&lk=gLpE)kK zAMSQB(ue`=c`1Z#dkJlUadqcRvktIiZ1Kwkk!)`WWo}&$`7MR9IMBRzdQ0?c z{Wk6{=n{WId{IVAIh-*qwvU!NI8mEQVH~QM_FJb}GSH7aIAhyup`|>DcM-gx-_O&Z z#$dxuGVz|#&(3_6GT0yG++(qy`8nF<`(r;7_)9oNe`$ZYi*d-dTCC%YMS&;GWdpA| z$)~(Yd#d>!Z*xweOx!oCSYzb%KIV-%f7tIgj?n)QPh($){LyFOkN%DD<*78v$`3Hk z$k!rI9gjjjsHb1XU*~xJ)ZN%2PoGvMZW%hKvR}0A23q2veulI?5A4Rxc9`=cm&LnZ zq#WEnI_=}iJI1oGf7){_=RJKFW25&Jn7({({^F`_tI3B?6UWz}`y2W*b*$dVq}i#s z?W3*E+iLFJlF#;G+Q~rPPC{D7YE!>%SyQL&*ABqHgX5nL`{cb9;v{Wdj3+Ew&Tcnj z&9+i(H@;(+>P<$w@!c+#EZx1;&l1P_=|_l99S->{?!Jw6FtwknQ-5K)#+r37wI%u7 z7w=QHZdgaGL&@Ja;f3{0H+h!I!}*YYwYT26FOl5TD=|H@rGs&=;ikW0T2b?D2u_hg?BZJ?MJ?q;UGJ7#?%@Nofk!Ma>b z+rN^AdSkxik@dy5_=;)!S;NQPv9}GnV%i?UO@8TKjGJ*Y@T0T$^NseKc#lpA^@Q}2 zPxe(?!uzMupZxdzx?)<@EAj0$-K_t`bo>+CLK;Fo2%9{la{C}|DUb3#lz9~$gaZF* zt8u*i{EYE7{EyKNnWx`LyOGDFH{WBY&dFQzE`L*9laGd9u5Y&y{%rN_7UPY6LfQ)H zUR&_voUxH6`i<4NeTX#a*Z!pJ_iEhj%Vu+1j$4Btq}6h;Un}zCb!-fu`*PMT+P3^LZh2IU?-~XUr|RwXQ){!2qK}fD`6TVi z@oq=l|NU9~-&JYq@K}~<-8(?~T<@mzF%NZ(Je~Mv9oEgUCiw}pj5$k)qk}u}zlfg> z-2asNw=syOlr7yF?kchzU7L5*theNGG%ruXa9-R=7|x~UR+yVr9jlt-T8NK2r%sjm zsl@y|On%nPmLF*Um~j~%gfTgc$HqIH$J;^t#yf}jY!9wgs5^^7e!v;a7xh*@7wXY6 z$Hg#~=Hs<@`Z#7=zxI+J`JulAdkg9IUDjmZGQT}mn{v)%-M6lG)<5?O>qCmObNn-} z(7l_mi)BJvo_}dbTkfw5e_IOvy6{KZTm7N)q(AD*nG_#$7t;MX>VLC+F2SGeJoUfk zDb=TBC!g{$J6~_5ap=wRs5aS{zoxokT`u}{eyDt;I2NI6*4;^;Y}oc^VQi&7_!dK| z|9=9_g7F7uel7IV=)W}5P2RHleAdtOi}<0;QaH}PieWf+=sHh4&K(%X8~rXa_wLTI z`l*j%7i35=jlNSF=7fbbei^^L^#^AjfVPKnP3cJUlww-`kC2wn%@~e(HZ19jG_Jc3 z5EeTf)2^MJTXvw&v(&leaQ#$m;K7-XS!SfqyoPo)+HAj+!ON)MFS~=XaV}?F5B0lV zn|fcU)7I}e2W2hk+_NA4EvP&&vyks@)^B^vKYok#JFC+tM!W1-^Sd|?Ew%yQ8BX+- z!nbqPe&V^AI8wd5hHuBj;=GrW&7wp?3(qYHoXG7 z3U-!9Z{zrZ`!(iN-v2S6b8h6g0NK zMAJ7*ILN!YKNH(eqMI$O-w0tf!hf4`ErKW-Ie!xTo@_4>?t=4?mAvT0dDg zbJ@ZAY1-Q&=P&X%)rT)YYx$Vop5DVV=G*bCSWe_At{)BrI`ib4%9c%$*Us4uN8b1z zbJ_jALR_H_A}-%xF2?m?XgV{}K^*0Jz6Uqc-bp$a5`N0V-Pnh6#m)2=dBJ==f%#PT z9Q^0&vet228B&_RFwa{go%}10_x+}^FjsKgGdJ=L#wQl;2KxP>kQXf;7q- zOsCSC|mu&<2_!iax?9a8=DErYE4&&Hg(^fcb zHqAWkWsc+K!#EOjPqFb0{XA&0THasJwugdySob79rr+>vFDVVl|3#IYSB8`F#oeXd zy#vlo*tZy{&wrNmsl)ENWocZu+{wCSu+m(IO_TrNpZUaZ;(yLq{nQiK9YxT|+Ar5* zXOGRcZ=0sA`>bKN{aKjzRozFXjH(a30{x1!d2p=2gY12*$!ha$-)+O}`44;UDQ~Z) zK^b+Pm*!ev--3r`I+s}<^f|qsoZQj>5Opo?Ei#`p&z)oMU@o4W>CA2q``CujHhlk- z{aI)B@C^IM;oMr2uPGj6LD1NLbdv}AHFNcr&2$a z_EK02(@zggUy8fobPrSRWA{z9jn|c>oXM((XR-;`Q_5yo8!~=aM-EIJX{=$~o9oQp zgTDh)o$!Ud1L8hB(>DI`sbZRp|4g7I48qIHqBaeW7r6(+E7CJ<)SqPUTm@b4Gq(MU z@!L`T#AIjh{2A}@bsZh(hHF!wk9kdU3-^tT%Q5)kO1|b!>#akCDPMG#el{BCDsAIK zQ!5F_xINd^HMVA|YwQz~3+l)NhCedtdWiBn(>DGd@_hYN=h)h*H$dN6{lS)U2yK}7 zGVa~A4@vDy`MZ6F=}Kv^u9z-mScW6t1J4Wm4q=3PcXnLd>AYwG=~CZ4)Cpyg){EX| zytcs>RaV4^t08U8fggjWAstuYo@HXZI&-*Uv4mc!@o*Cn`QW)2{-Z8eHrs) z87YeodE`6g?+WVx<)2ZGd0qO+nKsI4HeM{TyaFFu>z%wy;r);_gylM_9G-PO(J@zP zX%qAfVZM~w!b@;(t11h>e}=w_`Oars>Z5t=#J+s?;N#TUjzXXJBC<^SpXt8=%0qck zZlCPgEczzyJLm^b@I(10d&eAfviW8%gDw{R>i^bn)CJA4EoAk3<4nc>LT}Xh7IAK7 zzdN~JaHlWKcAzYk=-EHZ?k(WDAE3j|O@6oX!2+&(7rLoM_uc}o`x6M0itbMpaNVEk zZ*_mRfb0H30Z){||Cx6)vn~#243OJ23~PjJbpy*~us4EBYZg3{uoZZS-;Rj?6QGKk z$^9^Be*ynh-J>!5-{$8zq@_T^dj{w|g~&_-K9BEYq@NG&y@l)eNx!V*esu}Iu7uaX zPtds=hyH&IxT>=m-%pq5e-?ZY_XWf){g+GbzXPt`H*%rieyZfI?z(TMREbmnDrF{P zekvvW4JG`l53Guab=TpO^598hv{n<|QS3O$iTYoZ?X1 z-#p}W)?L@};7oo;akv)QBRM=e2e`nO_|k(|ySDH2QLeKd0?c0oyU?4JiT9lE_vInY z_I_VWHatHRuUa-U_uPH%cix(JHXCnzJkP^gA@A7vU3h~p#X}4i{(9QkXP&SLN4Hv! zOEsU^5+u7Wgwc%a4J>?L$ z-mxR)Z`OlyXPwH+shWr9T2IrpCN~z0m8{hvR_n7Jav$=kaTC0Z$dCVNy>sNQ%|7;L zqD@;WptEn6ZWhkjC+qaxe5bPIINWzCpVmyA9i`9vH3E~f4J0+R-T7g}nEDb|;>&-e zEu2VfjV;uNCRf4%zgCLk%YBWAXRj;yX~s31YPa0TTcq;!Y#s%g)))dyTb~GAbL)F* zL$~m1;Eo-;wqy|tT?t9Jfs5&5|IvKWG8S?EreN!%l!aFXzqcM6bWZ9yM8_$ib3Wma zkTF#~3E|cV?~QPOgyX=)xE~S6-_Z!s>kIg4A@0vc_nR_ zaGQ{H9TsvZ;SnL}a!w(9N(lY)LejB-xq)vehVzmrHmnuLexnd!S2!n$kpG}K{#<8z zuJ2Ltw{YH4_*T+`o$1*s1b-~T6T-Lg>*7bc_6Y}A4++Wl5h3|{IKoFGoQTkaXZjx# zt|mW1(l;T54=04LBOOBW8_q3~pX1%&#OL`$^WDSzTDVFG-6+s}?2GWQ_N40xA?bQb zNV+B?d^W-tA{^|&o%q)YiGNJEhWrQz;px8%;6JAHUBc8E&)OS7gQ;7Xg z#1BRIh!8$MC&Yix4*&_@^LN6v5pER{PF)Dy@8{v3_M1BN&-v@;F8xq35jY9ah zLr6N6J6JBq#BZTJ32Vp$g!u27pSv#sT3)Ln+$+3-`YI%S2O>NaAv*@a{wX2p=~5pEL_-vV}*jBlxsdbBp;PewQ?q&_?^ybV6Gjw=%-P2x}2OA|#)W3dzq?LfaW*gs@*ozQ%>5`;lmWLTG+o zmD6n$zL$C$@n?jjuaotg>F5!Xj)f7f6mF#b3WL%t-oCr zaKh^q5?)_~tAvCzC?uR6!cFi?NLr6Z_eY}p)56!lZ{aZMyaY%*{X+QpScFds;r}zj zw-E2Efve$z5W0ngq5G-`w+gX86yd&paQqz=lAq&3=#|r%pOXH|<4tBH1B)PcENpe-|b0=lA+MzftCc^C}{|D=-# z$s{_4sYYIP+XUT*5)m-b3EKp1XD_MQ|RqQYRZG>YHvd13m+c|ISetTOsIbS-@vM(Iq zj4S)WlxO#n%0n|1bag81Z?#uGIr&HIjk)K#pqD*!_7B~oe!9Yb*+71uneE=XFlspH zJY)mtShKI+$@%vM=y1@)(53n`e%GI(T)HdxRo7=h?*mf{vj?Us?7R0vx3JPY+Y2jy z?Ie3)Azt><)W_&#PfwlduHgsR-<+Jz*k7ANdcuA%dJt{sCQxocA7}|WiKFNs9jQGO z&XmuoeR9%0LC=W%o0y-+O$TwhU)h`0r}vV-)z}%H`AlK_0`%%Sr1xRhLHDE3HSVY! z$n`lA{VzxQq#Mx}!%g(Xut{v#H@KL}vKAi7%Y~dhSjgD}_b+`b)-v&oseChSNr&09 zrIcYP)4+SqXnW3-9&(y)xcgc1PFb8X?>*$l{9C4X#{6gOp}!8g6Oqpq?B%cbzhxEp zYd+wy>79+ooM5w3=AEF@?E)70y5@)K(?z}}e|H!@@vW=ocTGyS7r*j}_ijU+ z#+~T5og>`2k@o*$kM=bDlc$a)UDffKa8Cm|CGv&72)$eDd2RX?d@rO<=JkGkILl}q zRsZCbxY-t74YVzJ2SS#8WX3jQSpZL27dyyv;7gY4Y@1H+bJ$0I%-7zSuhHIzW)8-D z<@B5linO=K`|#3zc7xEi)GgvqwCV1=B{AHE(0;TKuDn8T^~|l*rLE-uCBOloeXwVc z7YxxeHqq+Cq^Hdd4e$Kjec^{Ha@SK@>lb%T;vN-zBfY0L9ln`Vj9y$}D%UkWF=&%?iVo$%B!ntpTMKIb`Scp+Rt zI4i1oS`5$hq_&l}nfkwP%j&-=?Q!z%?-70u-Tm>WUY5E?=+baEs&ziE!^VL=(o}Et zfuNt0(XY^_ERwfD7YBVU>v~QX^?lIG86bb=#WNA+!|z`Dt*%k}F6xx+Pz8qI(aKLfG}Dj2i^e}Wc@gnnQ;EDC z%g z&i@{)(M}1={?a<-xS$SN`*0qvb&GoZjUCe9HV@vVwqQKE&%<4N>v3oG{;6_3eu4hM z@)w$J+w!^UuQdBfr@vu-mH4}e{^&W?n%7bL59?Z^j?#u8?zY_|epv51EA>-b;em0rk+u|mswZh&u>4!<3AE~2 zrg~x>urI1Wx4M#-xpf!)v@<8**(+hhL0}peEPwfD`wwj&{&n@z5158x+lM!hE(+}) z9)`L-oVVwmfd{{1Tc$r;^nMKL_JLPk8%1NmCB(o@64)yFf*_Eo7Ca2Ft!|;`62KhuXarRPyrvP z-Zvd^#vj8-{2M19<$C5E*Yw>~s59d0B5r;7%MwrKRym7U;t9Hqv-U^Q8mD#9aIcTy z+CMl>SKys>QXUHbN0|_3jPD4M9{ukeaq&LgxDwi8l$XAK&#D`5zJ2w&8wV@3TW`F5 z_0V;do34A$+ZZ5&!F|K>E3aI3b)~j@`v*7g9eLwTBOkh^TYqkd@D;)sz2}bb*&5z$ z*RH#9O*6PcSohqqWBZmERF+4;ov))KJJ+vYSBVjB-f`Ei-P`wWyE`Q0d*SZiRz0=L z*R1_`{vT;%I@f=jDB$K;X6)>d$(wcf5E&&pQm?8 z0e>1N@yCFP{)vM7A7j5ic_)2Lj>7yqx60$6EYLrPgZN-E|4e3blgHm*z`uoqc&$J` zoH`EpWqsURz`LLmA1Kg2d~pmO`l3<)(E8Cd4Mqj44)W9L-pELFZzMG0*7~ODU7$7yn8d^!I9m2vQhW^ z^|EE}ZeP0Jm+K+*Z_O@Wx275_9Qn9Pddse@dEktGn{wTYeVhD_PK}VZj^H7Z>J|Sx zd1iLqn&tkx!hb9LccuT9HKW)%(h^0(+nc4kD$q3&X}poX5idEpYh-8Afe1MtDQb2V zl_Rz<-@0k_`kR++x@FDKbwiuh58Zm>%{OGXT>FkqJGXCLzUz+nXSJKwtY5h)1de`2 zH3eJH6l+yoN{SdGcgve5w)LLTY{Qk+t2fndyOybj${y9c0Mbn0+8b}ld30wMl61#C zcSfES(tsXGHQTy;`z)yrp7I=c3wU)?c+j_KyJKYMU3<6X$ymMahFfk8bSaS^ZqXfy ze2WSt+uHt*T9{jQyP7K&WWD^!sMA(5dD zX1A`sd2rJmAKE*zC#5FFA2k8@h1pnM3<|WZ1-aGcJv)~L8MlqZv0A+X+sERo^ET4) zl6)UV__*%u^E@GBFX1^Mi->;u4ELAqqtyr45urM{;>Upce=NesBRr`)`$GM+$-V)` zNg?4530JdUEF>L=g@mI{s_^*;9mfr~lkr-(1K4*h`}{)bBYZx>PR42JdLmT+Lwp_3 zeM$8`ga?I#%rhb$^gF;`h`8f>2b({=!al}-;bO*V;j8c~MDSJ-LKpNvt|NSK_dE9q zZ(y7it|cDfjqDE!-vLt*Ho0%#CtSyPEqo{Q1|j=tgTh-VA0hb+`X0cO5f6GF;5`g) z^3VBz`SiYQVSj`}x|83%5qe*?`40La*gG#U{Z9%nW9$%;zo&(-B|ahUgA9{>lwY_X zoAlSkN%t`!={+eVJ#Iz`dw`~6L4Hoi{5`NUl$4qcZHDs$w47}+a@HQgApEy_Rc?yr$Uz6 z-;~RE+R+WzDoz~xgiMU@jc`o3G@nLbN~f&_WR`XR8tFv zp(vbLczwhL)(5-ZWW=*n@LMvbyw}})!;Lpzw`s?&&09C!anJT0d$;doGJ4ncoy;a~ zsa_nflaxHh#+l4ee`_`fs0!+gw46lY<-dWNG7%Qa$nR- z{YrIRj!9?VQtpdtDWC`wcguazx#+6+(~nRi-E4gV!$qT=O1IB{1(V{v5xZiaAl-%Z z315WnJ+p*oxWzul59m*+exBagga^}ftrgdy4pE7knBqPQFnxg<@Pk}1#Vw*WV2U3E@B>o}$d-rrx&aI? zz4+bhd-J}({pZZq(a2WPrsVR;miDZ(_FjAKzh|Gd*Zvpx3A)EtXOXmIS)Y)7YzjYn z_5k`_^%D{EbN^lYlw;hU%hv><&L8PSXU)9V={Dv84L!PA>1@q&#@Y~5cx zcwm1~b6z?t-~f2-gq?eA1m6oTKb-+J=AN~-VYhqE@T@uYWk7#d;WFmS7~P-#C+=X= ze6n}f{QGkHwsz*hs&xK1y5t(>r>`Pit%O(FT2l(k9L3nkHM+afq?h@?zf-jlkLHDR z?p5WXiPLGyM0wJAABK)_D~#Hic}?#&nLC3RLY04H`Z1vN)J@J$=f5Z}@nBA@((~Bt zcw{^eXlP$cH2D}%*-A|r1CsgC;l;0|?L&=xQ-|u^`$c|j&>!hZ@ zesAJoUT?{wv5C{?(4|+9U*(natIs!9GOsqNImpM%9hcFe+?ihDZ<*x$AAE{wbM`F_Hmc)OPs~* z)BR+SZhOATM>Hqy!VgW;kD0k|wPoh4&!~OhPTXp%N{`MKO1ZhP1<|#qqeBy?k)?Pa z*G~5mC-}7P{Ve6ro{_&}wSS*=r$=u3R^ri~dY{LSl1CrLmv?87?y$UdPofV;W@}p# zyl+bI=KC{?_r*-9OhVp!;ax#p`8s)*E5qXf{pW)+RD1WdN`HJlA9+MtEdCK?qPaMw zm$NY9bjy!5F14IHcK#P#9Q`hi-$_kOj|Xw6AK3=o0XlBo!z4S7)tGb?TTdshaqlT- zCxPQw?R}6gP4+oDbM2K_h1J;n9R1}H?0RfHYliBX2dih^SnrvCS4cDG!ZBu}!yU%@ zxgR44+~U6qnxKu=Y7{o0UMS(w+B>^*tGha)&O6q2 zb+2x3m!IVD&O29|=iA<&>(Y14>^}td^lsj;t)HDdej;axczQPtZyDH%hJm%HY2xX9 z7tri{GHza4c_qk@->Zoosx3AzWnO2d2xjkk6vH;G^!_&kOY;&HMh2CiH5Jhtc@W-K zU80wM!gatud6`M0G09D)VHk?)=pJCfJnN@A`Ut<<1AGI| z*#PHzW#*8qQ+0Gd58`P}wc(}q?QzWm;I6 zOW-FH_&+D`il70CpXRr`5q^CFZ%N>{B=9>D_`M1Ifdu}E1pZSA{0j;ER}%PdC-CGv z$loUX{}EjE+d|&7?_2X}-YCCj%p}3sjG44!+VzC&9NpI6+wHbVqw$~ZXZkj@??!XK zLV9?kzJI&X+-J+_Isc8H=8H(B=koE=7L0 zHgtb?VW2d612xLwHFtjC_U9FTc|rW2a&S_R zeJv*h--c}CaOv4ar|(WB9k9`>*F{#Zj?$}1?kGQ61Ybw_38wh&2%=PL6=Z;*Z&)Qd zuvLQfl&|1*=y?UvX?6&*@T*gh%9Kv6@&~Cm=f6&nG_7}d-r+qC?{l!AsYMph-jDCItUKJh9lfZT5?#J=Xee6#{n3>Mg-sz;@~1j38D9g| zWwvhAw_NYPFun&=KKjnv?|NK$=Iidh>_#JM$3fI9Cr=EQBEI62-chB_H)*=T_&ri! zpR((D7M*XmZSo9^{A46Q)?lwh$LGWF^Y5Pc@o9;T_{q{88|Xdq{=q>X?``138NYj? zo6o!VS?KP;dgJ*ChP65cK7rMoh3s7K-UtEtD_BxnQ60=7+2O; zj`3~5#P6Q;l^5Q_`fc=*+LzKY^2H*b;o6I9SPPy<_m$oM>;m*!jL3_X1+VWIFXkrf zxxa0boPC_#XZAbk?kYar->T)#NIo^SMD>+xc&01=CSRUu>an&n`h0OglsdyFxK`_7 zwHEcNwB5haGQxf;>5|^_)pL#N4+z70@FlUr41NFIHqnal3n3XMA48{ROnQ+6^wf9WK2GQxnra zIU`?FM#ojhnV}0w+roc&Y>apLJau=T@8J0+Ebsbx#EkRA!;)g|XZZS_sk&%i@qnJ+ zy=ST>D?M1(^aDyiWh(v9sq4{^k!I;BD^eq8q_g$)DP4>S=l1yMZl%gH{#Eex{Kf)) zTGy=bRkTCy#5%8hSFPOltlU&~{~3PrlWq>abg2`S4?*`SUlvXmr?SxAFy9_jcLUJr z9#_s~UGjcM-x$z`?ML*Rp!erd=ZQDstWnkLkD4^-IY*nfX;>%Pyz2el>3Y>WdR3*D z1XAzzc_I5!BJL33Ju!KZzFOreKB7xeX3|$HT#9_t*AP~DT|51+r1>6~X0Lx!9v?~M z@vWqzdchOVwgMMqCr%Fmv*^pR=e}mH>{xbAo zdsTbT+IM{`?EbghwFTx_Dkdi?%^t(aiEC-QwF~mho21d%XVqWbZS?4xcZkrxqm$jW0s!P`<-@q=x}-X zb>a!@z}%PN`24A()jd1XYm0Vf8!PeEw=NarTYKj!auby)%2;g%k-T<6!REWtgtR_>}V?ZXPog7^F@Rq50j`Uxb) z4^DRjuVEjL%C5%sGhZg$ZrARrvz9mg5${%)?wMV3mUl|@Q|{doeON}SgOvJz_R1-( z^o8_&CAaTn+&o4Qenz<^=-0UYjN1eHT`qm%AM#e7ZYNKCo3y`hNkukwM(=Aa^ovMC zUCQpk(^w&$;?nIfQ+Z z?i1CXGhauG!Zw+uO=c&)@f)Hk1T>_l9G!IbyIp*vW#aSov|s#4laDig2V8tl;(x8H zZ}l0?(ZsaU{TY|PMOj(co*?x3O0xu+R)p;`@!<^{(HADP zn{%ldliE*WA0Fr@yUVaT%Shj~MjGc4!3H~@CsDEEtk&>8(6aGZ~HBSP#cL2$hz`9}0^z)Ex@(&q`L9h6>Ac#DI}1Zl?^2V0$c zn}e$y%sT&eK|Xdpz((|N`vi$s?~?dlaPBGEg8W+r`OxGAq1)r2-YwBjICxI(&|eZ< zie>OEe4QZSMjad%gx^tzKkuOS#WeELm~+w;k8t1tLHKArte^(sa<3Nz?{K)@Wu<4G zgF0tec;3Mt2m2iyc2MW8iEh4zr1N&n)Gh3Qhc^_TF;uA;Q)ew2P0#^dARzLE2`@SY zyUF2HzcGgbUUE=eGH=4l>q>MPXcWfl3B|7o+#AI!{~vKs^fD))Yq5{!S2VI64jM;( zE(a5aBlD2|D_z|7b?2V_B4$0?1emBz=`#cfQ(+Tpb#AXb-G!Bb#Q8Q3J)Gy&Y zgWn+t{s}j4JU{6wm?!tDiYu<+;vnxeCe~HxJQ>~$bH<2=HL3l@k0XO< z&L5ctSySdN(Nt(1RxXDg1KC9T=%dKq(OQk%tGiMkC7k3O;q~A@<#6rYZUJ{ZjhrZ& zG5q~qQ60pxkAbn)Y)!ofc`h$qiQ*V9?vZTH*bO=T^nwx2<|s^@rhR`Uf`{a*K(@Mi zg^?lcSdQG)?tPn;4ab3!v7Sc8>LK2EyqdFTBJ7cz%$l2Hx!V}S-!om!82%WtHs7!F zk6<6g{tWg@*x$ge#8gkd)6oQLVpwC=@Z|pD zRb%^~jiR5i>$J?6^Jj`014R>~|3&l{-^x0(X#cZ+NZDWb(th?#PfTkan$}9~Bi$yi zW4SZ8!O!QrC3>XD+-dF6+xHib{wHj+*4FHQcJepv`2$9OFvChf|`LPzMw1y?e_=t5Zzs$J3 z&W)%4Cw0)29!E!Y_w*MS2dEvGc*q0I@muL#lp%FcGs2k+@b><7DK|!^JbgMCBTO&I zfETzI30mH%IE@;6oxBNNv=fal+AAV+Kk8N7!Gq3e$>goJ9UK9w9sDNsHVVJ69mMhE zMvKyQXbi)v%$Ve_OdYK!{Ug`051u@zEpJzRq+R)`BTT=-jO;yAF*0#&YGf201NYaK z;j;=pS@`H35udhzPd$7-Oqd1S8{aT8`gwRfe(wt}e4)Xmzuu)^?f9`o`a4~?CKs-Q zaOYT`sBy?ypl|=la6eoojSrH>r(M`XmkE0dVaFYv)UaL;T=td zN6$$As{Td!5pUVuxkt}5GTu#d{={%}Q&Hz)$$g=tsZJAjhVu%*>xs+UU6ae5$rDEd z?nY1LbPOiF`0<%uB0sJ1tHG}covZ3O?R2kd-}eP|@cZ0Lqp+0e^w)X5w9)FRbe@CK ze1Ub5hBxmP>tMKtdfeP^?BnD77jrMGXpcGCqd+sRrc8XjuO?1~`6c40&)IVP(*Js) zb^+;8-)Q*3TlqB4gjJn=2l_wHSbapn=|BDpVf2mg@928mmB)3?U++L6@YlQeS@=xg zrgYW1bo~}|K3)GvyYTDllxFWITBXPLabJRm@YB%O@J?1?egAL@eMBUjw489d36=K) zL0VLo>Z8;a#HW{ZHMzR{8_MGdc;x!stKxFWO(O%veVXoZ_xg!iT0pL&gRgu=rC4$)?^Q08?c{&_W!^h ztY&=x_Ew(TfYO7!7hA=%_EKw&z(;@+z^%X$U_Vx4jkkgSH*5;w?s+8h-$kZng!x0js^#N03#dn^nGbh7>y2nj^?KzD)HEYM~wv;#NgF2;FbM zeQz1}M%+isxNB}hXDKE5AXB2-rZ1vgO*)8E@{Z0gNzzg*hE{a)6ZGf%3HQ&3$=3nw z4kkbPv8S+EaKy3~kcFZy?0PK46a5i(3`<{XWZ`cDPhqF9^8aIO4P~YAC;w(WOAikP zhttoRH7UoyMgJ$*OFUPBP))PUY`vDGK*uQQF>?RwL+ovTf2 zu9nqB>7i|f!oVO3Gr#V1ZJ~G57H(e{N)Pw-rnNdXJv?BZS^bl?BlPr8--f~7o^=0~ zje{EoABsM3XZO8pI&NF@K2jQlA4szph}|*UdeglR_HIpY*_?im&EKp{O`CKo{>>Y< z^be(5HVzE*_iotwhA6tDJ>;=rtB-O^k6Fl?-aIhq6F*~(><9bUr`tQI#In>Vy}=NX zMweoj2j--E2e)qMC+S1O>6Xm9whk;?@vet@hnB5;*8>~2GG9M1_z2!PJbe6<2jV>5UJi2TW{emM^TMUO5`Tr?9r!Cf z>Q}6(h(64NaGfvj=}UTyis(N4P_sC*$nZ^jG_vuxF;K9^##dKc!hf7c>CmiM6e0IU ztsW(OXrymddP}A{`h-J9fEBa+D-Uxp~0yp|~`{`}k;J>u? zW++_E_71nGSZkcMd{_&1BY(UwHEnF7O>FSU0D6*ZO4_-YDM-+rS402L?SSN1%nk z$QZqG4D*~da8n8H=#L;F@yg=BElxF_Ggcv&TTQLpJ!Ts59cMpn~=jRfX$491aD>@La@c2qoVcRM})r-V%~T8 z*9j6nEeM^~0&5-kD#7dBd=MYPVc~CPBqz9>@2((|@ka$S$oPWL>pT^uL*pprqg@d9 zJq{jq{${;5bQ*h!KJTE$WTGDvL}`22;l~{QoFMV>Nj2-qTO8E-YOOcV3-Y1XI8f`x zM+DzW{ss9+pB21`epIlH{4;)3JZZtVlO93h?-GR0oRfm^vP1Yg?K)$*A9McCIcUyH z!CmL1D11hc{F`%9a5wWpq;I#}SFsLWkn%q0=#M)3bAr%ca_;FGi!T#|zEzO=X%{3O z%^NA6VL`%422$TWDoFd#xhna0QJ&6y+_~>{?)!va9hq}iwBG%Iqmx{v@J~B<*uhB$ zk2`q6!BY;Nb?}^n&pCL}!AlOBb6ntW&T#>nb6kKr-%athIN0joDxl8$$q8nea}iuk z{R+OD@)TS{JqxzeE(LF+T?*b#eG5|m&kMeX@&zuX{%eS9DY#_6N+xDff()+HfV?m2NHu+KrjyiB=yye87@O_h5{ z&g1PPj}x?yI{YiJqEp^zItItfn04^-Jmlb?X?lj<)2$EU6rFg=s2ubh(v5(7@QqlyeaKQE~D^sNhUbVhWF?_LMRS0?qE^7De-`1!Pot_`}- zc)tN0$%B$)jObJb-gr7*p*XMd+XUTDcp{*u6AY3aorP|M#4GyivC2mZt1|Ir$79sP zyLoHi;Q47@5V2(5^MY@AyH044x$?Z=dL=3`FQ~b`*7(c?r>jNpOnPc7(C4+Weh=M~ z(Ir)*L%R0$qeiFg{Y<@N7dKC-5ORx~F9_xrH*4)9mv=Qc2#zgm)_O=T?`>XXU~O}! z;8aa>pI~}%^RVEd+U8LM7dGz`99!IcP;g>#^Q2&=uK9#uwyyb{!51~_{kp!57B`#5o2qGUR3lE;G%phzS=_uz@WSHeF2SkA&HaLtwaq&WT->}z@X+Gs z1A@-;m#hjy?m-0(S$|uiOXh2Yw7V3ZzeIJ^;6DV2TPH0ZO0wDIoJ?(MN%KAUvC;pL+nf8@Lsy^=6L&p8`Gtlw9$Xz-NF@0?z`U z0BVieHee0)TmUuzw*#AiW571xCxPw2PXpHhhk<>-p9XFRJ`NlM_5vk$d=7XF=*@=y z!QKr$55(_uX6EkkLJ<4JEw+uePlM-Ve^!BU$@`%zGMrH41%kFsjZRz&@T z+tvZ+jQiHjoWLhdlGh(1SHhQNKj`=@BSmU%cT_5R_&61&SPCu}Pa|hX-X*QI4s+rnFn`mzL zWVgQ49_Ahd0Mx@-p##(9It881$Fp|dCUL(T*Sov1f6QM=j|AC#ck<6KI! zPlBg4)$ESI@UKMZXZk4@e>?(qc{Ga-y9aykBd?|rJ9oRpkqzR$0$uoR1&H~M@cxo` zHG;n0{sJL|yRg3Ba_@BP?sh?&B7WuR;=jj-tn>Mc%}ZH_yf_Z62djtA#%>{Z$&1zT zd2W`ZI+9!}lYvxv=o{U0+Tq62{YdZp+Ry$F0m&|= zV{&f7^->uD*6f}{9q1eA@Ss(>l+-A=@SPu$?n%le^Jn z2l*pg8940V4hKga+~eT5gZmsj;NU?ApLXzwgGU`a?%)XrPdRwj!RH)&-oZ-_R?$9` zKJ7gc)O@XAqk~NjwmP`VLCKAx>vXWo!SxRIIN0ytu!B1s9Cc87EAbh3aG!$*96adY z(+(bS@Th~w9X#RSDF@Fw_?&~!J9x>#D&$JVE4`Rty@QPoN^X_=G6yvV6)t_5pyXJ= z`I>U$`1T-hm3vN(<1aD(P2*RGCF!QUmK(<#;Rb(iL@V2l=J z8=t-m4&gYykuu0ar}R~0MW^_bH}PAEm605OLL+k0lQUgYY9dm4P>&E;)|>E9iE3BA}-e42mJ@BJ=8FHDp%5rhEvhOnlk# z7>!bIjE7?5`KcS+ykU6W#BFp-+YxWlxs3O(HTa#K!><#+<8%0B@q2m>zxU#|Zw^1sBCQ>r!*4Zy z{d4&J2!362_@NrDT{VXv>fYKW=cjy!>vd35EzurR=`||exs&~QyNcSo=-r~s&eKV^ z8{4K%S7MXyRoq{cbXyR*5l6_oCiHV@SWqSnx)&+QcchHl!d0{B76fkU3)N4m4^{uF zzIPnE1KWe`#I|A^u-WKp)^4+RGCRSZ$cfXaP?wBE_0vm$6~Na67XaxVxL>c{>;YV` zxPJOZ@EUO5$t4Tw>Zg|jD{#L-(CL-b2K}0*e`eib25sMU!IQgv@zVt?`f@VT;|tsv6gHhZE+#)bt!k2XIAS??Ve4wjgMsP8cE%e z*i5-7{8tJ81pHJ!T5DgO)?Uie8ox07x=Sy-u#8@*9;-EM5&RWSG~W$W-LVetT(~Zd zzHtfPh4Y@b*2>Y%)^@TEvL?EA`Xc4!{X7&6%g#(&5Wm%(ozdNESEER8v@k?Xka?zOC2de3cZyVi1%#BCpvySXI6&S%@{TSi8pE67Tp8pm9Spu z6|ygq_ck!4bwSeGX&nyzqLGa(QAMyPQZCie_5AAFXic?IY*P0zu5U7JBgXap*LT#K zYIF98+Nj5wnhWBnj@J=+e>DiTYip{bJ9v;xV@h}e|@{W5uQ%qZ%N>{C-9FX@COt46W|5XmxH(R_ZtcSqY2!McWw8=IvHt8 zSQgN|X=A(+rrZh_+{{%yiKG2y9RkP!fAm>f%O9c_kF2E)bZR2?o_+`&I9ttJY2+Pv zS#4%nFLlRdn9)0zaiza5<62U8Nk3OU7IpG-1)VdL(*&4P__+6Gi2c0MmCxL|D-1oK zQyxfT>Lc=sF^=?mpwQ2~O|w0W_BT#(93W9%v3pQhv0G3ZCAYZrVy9Bk#ZKnS=L#iu zG=({%L}q%$>e1P$)`Fg7R;41fs#q719E{#IP21O=*;Nj%b8y(fF$WJis6I#ZXC36V zv3qVEY;#a!Y_m65kb#uO+FBdXCP+uCF?S^&i>x36FO9u*reBBP>yS$YdFeG?)f$H` zL3BNbf!f1+Trh3VT+v#JOTurUU!=d%S{t*+xrum$-vl4QX8L=ic2FP84tQlD^$VaP3 z@K*X$!M8E*C)mcC4M9F~2OUld=4Hz19wy=8jekt)9!4nhG3tn_P}Q05c@2;vGC0Ly z%=4as!$m7Y(ag|2%tc3$7=B(?Ai91ra7OIKlkuH_qL<0@S#7b8=2tYb9S#~tes<6N z{2Chhsr{0Nf}UkWr!;%x^O4jQ{04M=o(Sma1Zi5a(cbbgBA^LJyauNHQoy9H;2;hs zf`Fc%bOq9$du2g6IDH@UO^Z-l`iGR<>s5eb0jS++b$t3c505MKdPQ zepJQ8{N9b;#yw3g;#F=hEy$<1DR;^rz2sWk!p+^k`AC z`vt}qU7Y!^dxI;o?PqA|W}jVGcBH6rbu00q0kY?JvB#KKXNlSSmS>D)&ik@wnrV-% z8T)B`#Mw?t*KKYblyl>t--YI*jDh@KF^wnco?%Zf>8Qw0Oh3oCtfj!7w}STHK56zc zwPrqF)R?Xmr*;2(XtQLl37a7gM_C6U9g6ayJ;^sv7Eg25)6>MgAR2$RGBy6JNgsL? zmD2?7m6`EpBkpui{&;_ubh-5E>==#PK1O<12kDJ)Q+hL`w@=}-gm-(c;&G?Oj)9w} z&pFN8)!A0IK1%MY zTl}uBAiR&O&!wxy<@tWXm8&D=S?x$?R_eWKz|J14nKxmRQu*pQ&6EOtS5+{ElAAqm zrjAOmrUF?tH1>R&`oN#hXLL5e>GFe4%<>zJ`=*%CFx5Cm;Y)^&F);HP=b$$-CdaSj zYCdm9#y;xsHOANesPEMHz#HKkJpvTYlxl2*kHwhv{{?X6|2d%I`?ZAsA0+To3H%=u z_@bal6yHt4DX%>M@i*fD*L0go=h3*S(|Fp|Op+!Y-CV45)=J{;ZNppaQPi`Rsk`Oq z?yQ=b2iOEB+mu;d?ZiBjgqh(6w{7hn(4vU$_jKO*?$w>$ciw*cS}yVITK(?M+q&a< za!$-~I{*g!oUjhPF>c)hn*EM?=JFXtxb#A{pL^a%*)?8k@2qRAw{@j6RH`UWopq!3 zt+~4tFi!(oC3ik3+XbPQ&Qf$5V`}bCYnK%Mg!5N>|3S2hbUM)zgr4UF>G&=P@}Yhn zDE=B_E`k3gho`Am@s+%)xkSmQ;@dAsyn0WRp4~u&pRXw=pY4H%H+)l!Ny=wOkS~tm zb0zs~GT*1e8zrIFP@doYC$wB zC!e*x?d>Ziugzyo=1CN3?{x~Db!vh) z=+m4@va?vj_m$>Z()mj6;+rnHCzUGg7ybf#{a)Z2=#NDEi`v&*P`sQ;V$PvV?T=+0 zn!1y9h||eBycV@%x&6f+(&x`>_#yaOdBL0!sdE&kbI6Ic&}a?my0l$88s&3mjNAqf ze-32Y$q@dGypJP8tcIVL^HdI=R_91GySSu7m(KqX`8bGGpRyaPwj3FrBb=o><@nRKcM5wH)+}W6%NBT{biE(pqnL9^- zc33Mv)uS&*m8oc(f_nW?S0-WHUfvp}IP@+%neM#ibn-^tb?5K6xEOBNc3Pg(njiaw z;~AywoP}i1DEBGk-p8g`$yto>_h4 zZRr{2Q>a(Qk|U}&@?@cJ6U>isF6;ZxM5&SM=zC0k`TGAI*S2*|tLD)(F8CDfJCxn2 zf96kQY#a0Zs><;D{WAPMJqN#KsSz`$sdk(Ro?COcwGKwFMx5d;mw+Vhs*y`K(Fu}_C?~!rce4eYi#(l0q%VS%dNK) zzmlnn&&?DI-Ocn)pq@Qmq7}cH!eP0)nsP2cJ5b|@j|L1~V*Gh-YuaKe-S5(+U6NKJQ=0U+qhI6#uV*_keGA_+KT$)7iyF@%>u@UrboFM|}^) z??#@z5xwS*)E+x|mVa{o=)(#6L2$KCpT36^{(Hd>1pZ%6_+RNf`9cV8-vd5Q!YyQgPw}I~n@O#0fXZHU0gO7vz^gjf?FTfuGmp6mp?O(wx0nzjCP}9UCFeSRmz(- z+FjjDp=BcPXs>4WTNKPjXZAby>AvPU2c+?~YmJBf-NiG9#b$7;)!StT({u7Q16{|* zYzlV6ZtURXaWJ)b3)+R!POBTG(@kw{2Ile0TXU*}o2(}VV z5Pp)Gl&*C^h0g<*X82ah|84Z4!rMrf@V8qTN`0l~i$s4?5WI%|RP>t5T#E3K5e~g% zD*1N^Lf`4|g8biQ_v=qU%uSmKj~R=8v;;gX#c ze!ixh&g)zd-ajUFUU?MG((@4|Up*^t)BvesgOfaC8W|jhMzk_it@%cUbZRT!_;{%T z!_Vuy#IL~<0YxXCNu8I@p{816BO2Kb2ffGoInuWd0@79p>6B(~d_E-4`#i|+Gw|#4 zL_kj`NE3<81?aL^$;UThl@H}Vsq@M}knx3qzvoA%YL--ZrPr0_ByW9t+q~~m8bz0i znK37+xu|{U1@@(}jFUD0rg^yJyc^1{+7bN2c{gPA+JfA2noG0uS3Tf*uH<}N%~|D` z%Vh5I8uU@uNk?JyPi`J=j~h?>d9`mamR^lsBh)?lxvnvj^qD{FL7TA3!vuMlAP<@w zoGTCXRkgZPBFqELy>>W}2h9(fJfLf-%4&}B^7+`G$j8ykSNSNA59#Qn z&rrJZIo6tLe$bU|KKq18SGn{^ALq;0>+62qrAxX?={|-?SE&0?7~NB&a+F+prTEvs z$oT&t5&!TN;@4dU1`jjPoj!%`-wenuq=F_VGyLC@k z?Y%BP?a-+_x09dn9+b1rzs31)N%%)2(kt6J@EXcq^`yIF{@#Uq-qn-B^(Wo~PuuQj z{kfk?!+im*?yb+~cNW*Pjy{)uqWBa%wQj(a5407eA(!68*`_;-`P8oBx1|4ad6aJX zy^g=$iE??=eK3FHXu5**Cfk+H*KUjU7uOS)^iL7-sUEn4{ruB(c28k@u=?INV9(P2 zBpXa%d$8@;QQS?NWNm=n2|lB>=?(jf3-fv>o-q9Cece-Mm7GOQonBjsu8+RER&`!w z+`6v)AFO%Sd&Be+b*lTV?w($s`uuh4Q=i5PziT?5{?v8i!MC$^lDt(@M=Cd!&jQ@5 zQah{tS_#&fQAbzFO)LVL|sizCB+@+HhPlXH1JxoU+ab9X^qsKn z|A27!ji9cU@O?RN-cjm^?`5s>5~WJ#NBYqJKb&O0PMOL&2@Ob3kj!h zhR&MzZmX^-?Ypu0%uR16j+O;hH)`Bi`+`tV+Yq|Z7b`zC3ZK@x4B9bu;CWn+--WC9 z7cX$Wui}-z&VmnV8lX7=O%>riP3W(@9>)LhWq2%tMtgar^It%_@qBzbevh(|n{eG7 zr8A0$fz7lLwV#jDPKF69|2%w@mj(F6I(VLanW=A6_^b=Bu;sqVDqj;nWyBqOwVdtE zH*4%%G({avju#saajy5ocriUTUThi}FD}c`wx)I!Gsb^cu@#z{Xjic<8ZXw-53Nd# z7gO{V*)(TY(|2`b#A6pccEMv8Ja)lD;T2Zl6h`!--Nl^IICfWY2k*{q*S8B;Fq-BG@h?@j?a$@@t&fmWgT)AbK&QwHXiZ9{{%Fd*O1e+!zQTkLp#=*=sZGp_Q3eLD(4|mXX%FL z*h+r)XU}%tv9?Qx)`~YQ;&WxU^e_;5b?=9Yg)v3>HAPPuU;UI{Q*<=&M>aI)JX@y< zBfF{Xd0hS)4|`m)U0s07e>A}5Us?}g*CY*B+0aT4^U#sTH5s7hHbg%W_>133{H?M6 zqW8G`wN}&P3ZD*e`KL5MGN!_eAv-)8RhxL*0{m8`FnW{LgDq_ub zYy;}q<0V@0mSzkf8tN1pamKi7MIg5yJhh=f~$QLTz=XT{!aI9y5*)>YuL;&DNf@a z`O{ig>Zw&f^V`tkb=8JhAE!Lca2V#$BELw?=mX73F-{xn6t_vO`8jjH5Ezdb^;|9_MNg2ZDX?*7$%N zqm$JsL2hTw+PUVPK|LD6ihA9ZfRrE8+HmVxBZ;_#G95-*G`Y`-_6`)psmUxEi47jeZyUc5u;m3PQhK5PE&rM86v- z`boJ%e^wB^t@N~_>vK?h>cnTl;l~|ZMjAzzbFg1COx#izoPFDPCX6_QZ5sMl*@5J;+=Bvf^)BeM`M;Tx*#9cR>9Ti(;eLI;64YB zIB4$aqh6j9PCld**7>5#1i@DcuAzSE7lrHlul7?9RQqWVr2XhTQ?;M8Ao(`unvxH5 zt|@}aGTbX0kWB=^TLoFGsx!VT8S(49(@K=wS;0oyjo?zsLGbmoAHg3&eh?(B>jcx3 zvBP@=ujf5-_+FsSLp>@;y7iqm_2K-<>AVb4Ml|t=Vm5{>MpN+chAbMB)X!I4LtCSb zUP(V+FM_}*E}1uBDf$Q&#)wY1H$GlfnZi&N#)xjWdlnF#{Am&fie6?PbS?JL{E9}l z!$IT7&(S&3w+=tjRtV{oW^cqx=4!0ZgYbWbU!NYF@pOW``mtHJI5KA>1I$_-F3}2_FLbo6{+)CliEqU#mvyp=h2~=b08SA zS7gzNuue3W+FyK%b#Q+C-VUzupU0)EsZkSQj98&?=nTwQo$%7D=vnms%mu+55vz{q z;>=pXDaM&zKSSQlx;oKi8I!Jtui-~Llv!=P$I%@T?-Cye=T=N>PNAB3jUFqv)1=eK zn+?MKi#sQxCvamuVQp2alxBM4>1T1%I!VP5=NEVGk*aMg7FbIx?BYKF4#$jM48h`;llTwOQ@gLT_9-IdOHwJO<68wvPDy+{CX_o)weQ2aXmw zbK(4Ur+@Hw-qRJ=)}Zgu+=$Adj=fw_=F>&3pJhF2@#j?^Y2DSHo2EagtwC2(k$Lz` z4SFq8SNK)09-Y!XUK;;bOj*57&7^eG=x(mwIaM{all8BkDi+~6Odj%By1PjF2DKYg zUzDZM6J(9<#;ip}k9m55^Ovr?Dowj^{#p;Ma5VvahPz5Y=Cx@S-KQR%sXXWg-9 zo`KR~sJ>fBOTne3GEbbuD;nK*R!y8$8T1!+ZRfWYra&0YHz|x+6G|F~c^96d?3Sl# z*Myf|xx%#<`4eJXm`tP%F<*iPDeuop>7l)dZB zP1F&i#A*7D+6{L98NH9If2I3ItrdT4sy_GA)XzQByjRRe*s{2Ye-C%asU0-rRDbtO zOSeh;oL1aEKbi;8yQMsse9<<#dAEFC$mg`~qFYE_3@`NSs{7O$;#U5$k4-hA6GJ04 zT@9Z!^>R@oJNa&_8&2b1k=b=7ow0SfkoMO^`#Z8x z`ghW9=7Q{=H2RL(r>+og4{_@qQT*wMd{b}H^*g5;CwCT`QlBpBU9603{!?k!zmzEh zKG8GEpbfsh4C*NZbdl#(M%-5!>uFizTdQ-KR+NV?*D+hXwRW5^<}UAWx5RS zFW`O@x+L#$+z*v;|0&0NPr&;T+@!0V)dmW-4X6+F=|IFW_XG;>TEV+WS(*Az?=1eJ z#^6+|91c*Y$wlk*dErOH)12~VJ1e@pPKlj!)4wiO+AKX z0y}f&j^F1|g}?fmkcRVjOnD~VxdYPPIZIu|{S)u~`8nKmK9fmHg8uL3aOXUwvh;tB zdk^K9OwV!LC2J(z{{Z(@W!xum_v!Y~mxJb`F42b`;BcvW%JD28%5`*nEnOTf)XliI z+iRS4y3iXsIR{o}E9VBcJjm@S=5*hihUjGn;W0bR-D_IkkRE1jm)#S`39&72;F`03 zj%g;0lh>lP1Dl6G#w~McJ3ud8RQIZGno^bgTNNSp2BxHomP{et@6Euzn4%(jWBja# z>WCqv(brmMyMI+-t*J0)1{s|8;Q8fw_WoHOcJLBOCYS%6!1ds1hv$J=aLG3ES9+y$ zu!h^99ey0>`L{xEjipz3kB{&m-C-8!>5m2e;(t8A#~hw<^b^2K_{-ggAEmFcrXu=v z9$Gz0`H0`1!2h=#UWG8>!>{5aXN^toSb(eikJXg?|By$?Ce~D&_22y-CBD!|_pIA9q9>4cj*{l*ypex$U3{r6*)%+qpnoKR|6&6F%>@3J3H<*} z;8(?M%f|Qm1b%A*e_sOsU;_VW0@roxrt@-W$dDNCN*dxZWSH>;Fc=|4$P5sRVv5fopxHH;S)b z4cQstZ%W|rNZ@xR@O%OvNZ_AL;EyNppG)Asn!vx7!2c|PpH1M^L6@QYq!PGP;IRV4 zoHgyfuJ#;h-G!j@*_(PaH<8iLipYGJx!<*$^X>if3cI7dgl;QvP*iW=&qC%6{r=nC z?azPmvAMO;mVR(kt3L(bFcfZ9b1Nw%VP(w5pU8!yyY-HAtx&>5zkKD&6}PrVg@GaS z^p?oR+P!s4k9AoY4aPC?)SB_p`p_#^_|PlaCSlI9ibJn>d$gJI**d&AdiNc7a^%y; zSghUO8|7|$zYgT?;V!v>ZYS`(kA#cJ%u95458WQ!c5klx{q5WxH{7S7GjOeYAM734 z*3TmCEg$Dlt$^0fYy=Kwk-YBa=-#Ns__G4Ye?y^QZaOIIx!JB3pT%+u=YS;~U8N?S zZPhy0;fD%wiq~|lqb^L;(b|sHE4pttjlewKV;hKhzJtm#k=Y|EZK=dLb&g`Dxg1vw z<{UBv#b~oRt|1IAN}5VHm*(9!+!wi<{Gc_r@~IIitzlfg20}Meun&4BK?s`9ECwPj z733^7Y=5!YDa%mTXqa0cO}$wu*S?qjwb3RGH;EL?Cz+JT`zCBT+9@mfTyYNt zXRw)q_NU>gjSj@@#KN60dIc(TZrhq}wq_%=Har+KX@;cvJ51shrDP=oxS`I@xgD!WfY^E>*! zY5ph=)I3j*g9w#&-UcXl%{>dQa1xvFaLuP_U&4sPHJ`S0O%zE!P`VBZ zw%f6^pk!w8Jtg2~hxox7QrgKoR<_cBHY zs=RgsHJ|gm+~0@%NL-Db_WP^&HSgB=e&#J5yeJ4=4c{-(H3&ktO7H{B_Xsk$(7jQO zIr1rZ7xm!$4>^A`?}oqT+vI;yP<%B%Ccc8=D~Nlib6@Y=cL);SxFGQz6olWTApFdH z8~zuae+pSe{!N1TYb>C0%{tibV26X94(1%xJ&B^%{G8x=2lEbUzE18t92^HWuBF`x z(nya0m)^seNBF(Wn+krA`V?HpSV!^+H%y`)1p={O2py4j9-D$}G3T=Q}BHR!q`UWJ+S zZ1C`gqA(^o&vy1Y-UZqk>H`yAbP9Hp!|^gk^Od1dTrzLMiaw+(jRWoYM|2si!o>4z z@EetfGm2OKKjNV1Wi$`jVjs<~Xk-gC&XGQ=A8gIU?Oa^Cx3G-r&N zG0(OtICCKzJhunWtK69iSqIx4ys*aZThP9l8`Wg)LMJ%JyaszW7K~_~f_2;ltAFh> zdULHe@0xxMw9?O zI%`75Gj^@-6X<=nIeoDBN(ZO&Emk=??bT_HILjQmaP6znbwk(T=(Hx)(|t0*58dMV z4>&rlN%eFi0Uc>Qjo$YBMG9GMIgjO2W%K~wZCPbsVp(l)Y4&CHBxO*pto-@!zN|!7 zuBWoJ>1wpOV{;O*4mJ*4Hnhoh_uDy>^m0zeA70 zn|0q~kHVX?bT}WUUhC-ZWFG)+Q0?hcE-$`pzD{1kGDJFDXnfg-CM@fa-$~bw+FU!Dy{_5x7Mt*Xb*-@}1ogA!*BWbWx-}*JuEp(I*1o`B z`bx=w*4VYZ;{h)JiMT_L0~+#jYh4{9=Z`QEm~v}ZX{*N6@vF6%s((Fud>zjX0sbkT zo3Q%!ivH(;%L4rCJnK8`{r`by^-a<{ivEA`?2W!x(pP#TTy)+De@6m;Ke)=z^OGE| z^3wc=_#6F+YpPA9wVv}Ga%h<1@4_oLB#HeKcjC<&yJ%p1*}+YTVB5xWG0Fc*k;D<8 z*)g~I&0JC%9Gf`P!yU3XbM5Hdi#vURaG&U`I|CC*jC!cEMjFg^LDt(Ga_|{J#upbI zOjA|DI~>$IlSfF@IuWfCTkl}rK{MXMeGFXu4+z5ll!KQ9;n$?L05t0sfx`~hJ0|{` zlN5iAw*)meA*lW8f|`pE|0zNEr+N1Tvx4yJcW}(X3845M04n@b4jy!n?9R)SlcNv8 z!yCzWGD$hQkrypR-mfG_pAC444?&Dc%F%PtWn369M~kk}@eok@#4{;J%cDgE&WJ{~ z!$Id9wfGD=2cN!m;6zmj>EQ8ZGDI+TP{w`M^DIwg=TLUw!xcmv0#6mfMZn&=XTiGmS4ZxnB8>$*`8x z1}YPGK8D=nUp*r-eVaq0Z=dQ{Mn3Vk!d0G8wTBu#>yDax*o2wSkKRqCil$;^8u;(#G8v?-Qe{~?_BFj|I%IgF8PVq zDu$V3SH2GBj6lIC^EqVvO;hGQoctW;Vt$VGFk?oBM+>7fz$>(dCCX}z$(UI?Q)9*n zxoNUv){IKl56>X%Ol^u7~f!6`x7E04 zg!PxuE@Ny|A3aK*$BLCX(nPuzFdph+oMid$#c%EOhsaybo%#7jo-6Ycr;oArsbTC< zvp1f*#EQ`&o0p3Gy=SU&51&b^Jj^(1Z&73N251aV*8cD=)oT3Y^C>9Y_*2fPa{1(a zc)IS;Xi@8Tv>wX)t;VlhnO9I2io1q2Om&or((rez4J1#~H&Vta#!;!%7mGdAhvAjU zo#7i-TLE6j+O0_Y+JPD?%3otR)p-@=cZ=f8?krZ4MzlvUjh>aa68+lKs$2H&vzEu4 z!)f>^Uaij?^l@hy>lyx*M!JS&Zr`=mX%46M6Svl9J~n02N;?Uq@O*tF?FX_vyGFfA7aSwDVOo!buu%p0!&&SoLjc zr)`XnqnsTdSL93MW9ej6HuNL44Ww1$;8I%0S$AsJ$g0mu!%u6lvjHzZ&h~uhQ)ixQ z3V)MtlfQ?FYn*l5Zrv?B$5~Hi&b!ERCj@O+`k=SNL+2Zq_sZovJnKL_l;$SrQYrQY z=dQPL6mn;f&uCLm8h?tyuJeMHHoT-RBloq_Y`=ORp0-lwn_f#GM|A@be?uI?axFI57B5( zvd*{=T}}2$+TCZ0oVjsce)J3HYe-ua{eoHRjhl~~GZ5nZg#A)Y_A^D+VxE^wIZ32d zQ*SnTmhNp~^yoR&r~0nfq)YWFomtg|FP^=~+Oyeu1KU$?g4e5ilvN1&wpN+@S1qRB z3iJKbllp(HQ@Y+g>$@miI$nk)hEDi9c-FVE11tPaU_aKHis)|tXkfL8uMoRcL`*pt zp<42_4}T)?M|Wz@*0fHR|G9+!a{;dSt7sh7RG9c00$l!@g9`n70$l#3@s16DIN|@i z7of@UDUP`GgC(oC-8j<{HX-~ zl?47x@MBojzhu?Zz?0Z|hhGG${Fl+8$p5vxuihxk%?bRS3H+`Ez9E4>n7~I9_}&Db z+ynf(3I9Jy;Lj%T6ENnVt{G`Kg)pVn=u{dDmx|Mw>RllS4>kH6YeJMoJC zCld7119&6;UrgY?0Av7F16j*S=0i8pA^53$xx7#>qYbyf@)?M`Xn+Jcu zC#Qb)49L;1=MmMmt?~V5n>I$K`*ceg{1RTymo$qATpaN&9QJHNe;lVF34-+Wnj7H) z7wF?<1kyK!aRnN)(Ah<4oqRfdjI;MF`^Y*wSU|(Tu=l~<_~;9AVUyHd7#<8=!_zP0 zylDlHk7xFAn_BE+4%ZAKbVqQORec3yTBqT1<*TK1zULKHWHZX6RC955$hfKD?hS+Y z`Dkq6`7P%`QfylY9Ku?*p@yi$P4+@S=^`K4FnE6)7X|v@hW>4=_F>V4&IcVHumm#_ zX(L%hJJua?Il&vPu4HMGTQ`9+WVhUJLV6W!cIzde(>Fr%+xiv=Ht;Iw+{u1H28knr z%h0O{zB#e~nDEcb{TBK$-Y4zv)Orc6=V%usyw)NsT?IkXGa`u6X+n_ws!t2HI{h32 zTCEKhoxVMJ1_d=h-MLrqUkVY8{2jv5{|= z(l=jIPG7hz{{Go9wRk1(aMnJ89E8kk^I>B zXZ4c`LlGDwI>u755uN;#`obO1wZv4GMsyvH-g_OGBYo>2AP+6pI7<) zDg6385zx~K(!^rZ#y})R;%Q>h4OrzPg_Ry7h)v2u<( zS2FXzbEUD2?xKpZqQ;5H{pU%dId4p7E=r!)n22=QIdA3^&A4cc{ca{A)# zPDhLxxVPNwFRMxIwPP#BQ0%i=5*=dPTG(A=Kk0dN7mSH!rrYq3)|>@K&0TJ) z*OO#G@tHikJxLl{3HMOrwf~PiuwUuicazSF?;@QU5>&R_(A!AglOYe9=a&9P<8_mt z$(%VOOZ8f%a%9X)9ZjnaRgN@Y_Tk!j>I`{X#~4$(1b^P;?~&eK=%q(6{3tigPm8vW zvTF&}cBot~kOq2Q&O)Q@k%k6!L-0@?>fRU=Z$5YC8t$3VSobvr>W6XfLfRhPR;})o zX_@?dv1-NR&nnH*2l@1>4JysFPu@JMn^HJ*B1_Dg4$>sORtx$7-}a-t?kqvS6AeyR z973-(GI9E*AWaL2L*rbtMr6Y1q)fW1#vVPRbk)NDKZ)L?>j{%C>3WnVh4t@((pHyy zvZyqxoN9O%{+VeBX}N0s{m&xi72N~>0T$iwplufuJR+=4qC zwO3gC1Xb5H)Rld2tZu4?{7e6lOFw=cXJKBGOYgic$~=sl(^*mwWTcX?d#oegls_gsL>U-P-v*zl!~u;s7yv)=zU|7f7qb?gZI#ZU8m z*2IhrD&2tmOD2g|MelW!v8e5 z>SKrVuL!cNdexc>)dym_37^yrbSCK6gBP%#-%s$Y`ttEl@a&EFKP{Z{uK_51e+sVg z{IJ9SYl8mYz*S%RW{Cb8o;5!|>hR?}dn5j3cIGJ4SpC{8ZDaZEfN<~NF~reFmS&PuHtqO zyWM9djUBIhcI8Kvj0v}Hdtmku5w7gU(79V%H*FZ|m4?EN_=9B4jBaRVOeH!W(yIf^ z!cvL3Z2V!XLL!`}niUE?$gGeqO;S#jztcTXQ~2!>$y5hCW_r2HK4)gj53ue23`IOM zP<#pfY%e?RX5&xq;NZZZ&!2|rNfvHEo^ZBG9c^sU9&KBI;bxK9F{*L+cuLHq)-gUa zRUcPAVXlmxU?vNpN6= zEp)=sV;DUG>CieLrQ;bv@CL$4Z_zG@-Xbr^hi63aZRi^W;ivD^526Q{1TNvjdsGm; z#4$ni64E0qSp{F9(sNRf_~&cN=?zZ7!yEsY)Eiu);M0@=!nL~DNObDok(UkbyS!92 z4uKJ^Oj2(kIv`bus| zyeb|)*}mELWkGk`tikJ!v811RepXv^79G*!{8HGKGSAAa02L! z_|j>`M)-HI$FZKD);_3wef)2T%f_bbUEnHTeg8Dx$no5R9d`Iep1l!&jh$4!d_oPq z#sl%IHs^T2QVhjYgBHJ>%s*Rz_dI3@c9#*{%hF#~VD}*cA$#6}dYQ1+X`X`loZ;sd z#C;GePa@=~P9#T3#*loOcK9eza;4r&`5zE|y&ZQ;?mQy=2D=YIbb3EU*9Ba9lUv6Q zJ`Aq;v!j9tD0&YoQE<-Jl#|yan|ebO#w6vndcNr+_*_X|lRO(5&pIiuiO$C*djFi^ zSz)}qCOVa+H=>h&QeJC?j^c=oXkQ9glGjwW%7@b92Dk7 z%WEm_beEp?wKNN@>ym6^bm8b^YgyZc-ukrWM$8-u`dR6CrI+>dBYvG1dT290!dZYX zsE<^AznD3aS?M5tlMdq7{DSV9_wzL7JkBemL-o=~T9gjm$8BY{(wtYy$y=#F_A&MJ ziji?%x^mdJH?mF}{g)R6y{U{_qjk|5`p`%>toB?ocK?}hm8o>SbY(MS8_~ zF5E&{LUi+yC4L9G4Q2R=ug`1LV&T>ctkT4VhuJPN)1v%Vv6;X49c{_6t#Ro%}kU-uKgYIEv- z{7GqkS-8btoSfx(%vabdOMh93%ZGR=Vpo~4)@h!)pE<+Nt^4soUe*1${^eEOk1Ysw zpP{_=z0my(ZE(WcymUWrLn|b6W!;a~A7fs$?x*e*qWhVZj+a^YQ|IKZxvTc=u4(LK0BXb6|v7gi@ntmTYvqQ%zSh|Z1aeX%4IE9(Cc2d#J<-3 zQ{YY5^;qd%KA-UaGWZDA>wdnG@IR5j&w_`#pZ@_K>V9k_j!N1A@c}KSl`z zD!tl&L>hl=AH0Anola}LgZ@iSJ9KcKawe=r!CRg`6l^UWBt<}g0cGGw9^>tuiujSUdR-E zC3dDvN5Gq~UZ!|F;r~nEBiLnF$sChFZ&dDo<`JOq)7XPp&+p%O4rPkh_znqo(O(Z9 z$`rSNCuIuTaa~5LxNS{BsCbc6N`#-UNRcGHtV99vOVMr24CdvDWX!Y0iBdR86JRQP z?0-ag;>fG=gsOMe`QI;xJfZb!-uOr4iNgKboiX1zrMJ$1eadb%+LxfCX!_q|PU*Wz z=gTpt)bu@^Q|d%^3itRMR{2n0kX-j9{nH=&$nf`%bQz_CwV55e@*3*4d9R^ve~CJ;hF6Hr zYgRg5W}R1qlQA0tdC%0-tMh24eba26;Vee?q_!@d*BgMLET#8Be%4t3v`3+re^Y=f zyuQQMSpN}^I{udeT;Zj&vBvUm2yppdPUofgN~YS#9KvlsRBiH8^8fDlf2}StGv#tG zxXQ=NDi0+59|l+Xtj9|B_(H<}5cmkz%SwNg@c&i-jC9tWo)j z4|QIWrII=?({Wu!EuapR9rIqNqZ9?jN0cch zUzI7$tN;CwDcZdtL5%*9qrXZEe?y(c95Tgk)F7=I@)=z#+~)5 z{ojq8MOuNJpmRv;BFXC60c*BP-#e|&#&_14idiwe|je%F~s&a~yc=;BGO8+!R)5=^Q|<29O{CA) z-Rt4M%K0_Ax>Np_aWAye6_)Si@*gRm+;OG!RM5_8C+9Atx&MlGz98+-KKN1V~4SMY!;iw)?qb2^9=R~HivD)N^c?E(K%;# zaBtEP>^kgTY%6vco5JR>1-*BiA*^$xeZC94Ux)MD@s!tl^MrfPo*>P+X>{+Lk8Ixo z)e$$uO;@kyTxE{2+nu}eyVjSPSx3ZmZe1Lg-q9zD)tQ}~8^L{EiFZ|PoI8}xFQW{X zl`X?v#ebj-{}P&~$^R&}2it``&Rs@zoHMNaPLfXL_Xs>p+sfN>!|S7mC zJnLEaR;hf{hsX_`V4@uEonF{)%b^ecVVh0nLw%0!?+V+h%AqY0Zs8TmL3unuzLdvy zY%5m%a7T83v4gy+&rSBDDdo%6pPs{h)YQNFX8Mf=_0L&*|5g^hmq>I5-ed3{bG-ez z-^n=YDH|UL-|gBLx~k8JXOy$|tTp7+e(o{%x$DgA*SLCCJM`(1KTVuF)jrSp-u4V~ zeY;A}wog%b`lIu^N#kCZ#&Oa(euXsBLB(n0_@3Gqe)#vNUzhoY$-CA|n7V!$(z%Cp zK7Y}+!zt=}igc>2)aVR#+N3SZQafxh=~SCrJAIR$Kgt>B*caNX&MeH1QeOCFU3y*H z)VC=vQ+WEe%bTG7oiZIS)=;KubKY+~X^HZWx_0Z@dRFmvah8n21of2Q$$fo%QjiT2 zJQaq!0M4Hz&zDCie(bh%%Z<-EbpkJiTa}psgaD=yi7j^k29fz1nBxJn0u?Nqbi5uy;~c!M_6jHZ4bs zC#aVTJHN_ZZx2tYZ>)@z{)eaZZLV_9r+8kMMvjXfJ(DG$DzD~MwjO>Szbt+WTPIH6 z_>PIwxqwFHu@C%sUv^7120PRjU(Kuwf3EF0Du-`#whj;hbg zaW?_@By!Ae;dU%=JBr(vaXTKk9m8!uZqEd6$8n=kEIARlJ%ih4a61{eoxqJXAxlmL zZYOaYz-=mUJB8aO+|CAWQ@C-T+mdsE+gaS+hud?3+d15rLtb(raC;87x8U}C;C2DG zn{m4sxIK>>bGS<`1#TB{dmV05SM&bRjxS~S22-BulP)1M`TH1;;y*$kBKQA}yLnfk zAAz1Tq|QHu|B;0M5qNV);rTKA4k!E$22qiG<$-e&hI^qtD)#@Y{#qZv39XZ*RhH zFMd1lll(ZI@EgakfZqguV+p@8{Ce=)jo+Sx-yZzd;a9+KcfxNsex3NO!*4X^Q-@xf@%+uES=rE!Y(HBJb)H_83<4aC@;M*gk9ytGh^KpR3$oe2%f3zUEk_C=4#?yP9QoG}uR)?Fu9eQUamz%akKZe$?whq}}?a#R7a%V`g z>4)uiYeI6_xe?;r_&VNe;(Ft97oIyukO^uRIKG}I5t;9p#x35hT0GOX&k()b_5Bg= z$;=a`|5(dAag^sM>-vxEF50mAkCNL_+z#S)Ja9XP+XQaU1a8N18^`TL;Pwn|yKy@i zxShal2X3bVx0ARPaGMI;PT|&r+u6Wv3b%E*oeSK~;zs{V|4~ZwIoz_iT?pKs!wor- z{-Z>90k;<1E(UJTrKe65|h?T+%0LyEv2*_Nz65&-d(!ow%l79-}mSFF>`bzVwz^}D}VHP&6&^n zKF|00{rmg;IL*(Pc0%ok(pK%W()JiUImY^v+mL69U!;5F-unAsuB{sglg%!XrT!A!mJ*%{V}us zn7xWwEoS+cSst_JF*{G)+!r(3huO23ox<$JnAwY%{SszJFxwk5+lyH*W(P4FikS^z z)`6ME!@FZDy|8ZwwZyXJekDZFzF= zt?TRZqa&Gp#p&rMN2_kmkKSs>5<_5^;>cG7Q&8v?y5{B#pUkYp%FMRC5m@ozs-!aTm z@YR7W;)PG`WOQ64zT=qH!8Z$BD_;116TawJNqi?Tn+0DQTqj=mJ_}!T{3O0pn5E$h z!8Y;2w;jIdm`Z#F%tH9;!A|kQN4c9Y&Jy2g%+nCLTF9T-93*S=sqGL4iox>~xUn4jmUidQbMaOO8JC9i-e2c-Y;)M^n z%!IL=_%2|!7``RoHu1uT++wyV*I~ho@0Osa@|ok=c0K&G&9BjJ`SIN_b175SvHuWd zd_QJ>Y`52$9mWhf+1cHg`LW$rXZ9LqComhp%#ZEXIkQ8U@!j;Z>oD_UyC!EgjM?vF zwj47*wySq$2Qm9~%;sX|$9C1u>;PsOqt#*N$98YK`nn&pr!l)oUG`(UW6ms(Ss!Mn zG4o@)L(Xg;X6=~0iJ2eUz39wd#H<;!Lzwxo-8N^o7c;e!`!MrkyEbPwgxM{a4PxfU zcFUdFZp^O3tOqkcwrg-^J20!otOYYawySk!gP8r}58gRDOdInw&pw_(o*teSo+Ui> zJheRMX^T$r9N}Ty671#K#=}^`%+oF~Ki7OaLHnz@c_nSJX|oucU3mKI)r0egin;5D ziWSU#L&i{v%+pi0eU+cd6^y)<`FIdKII}7D66GyNd%LrU{1CZ8%edq(xy(yuJjnHk z4AUMkGH!xdGa`MyJysp$NAdSeF#jdvC-?3le|wfTQ0C7R`5yXNjU&Y)J8IX}j;pN8 z?nq{5QD#k~TQ0zy@!~JtYR4qGrk%y}*jE}Gxl{OQ!aP_kAlKkITZg`pAB4{uzrKUs zV$z9tn|*CsU-47CADudOdsm#;YR3?Ugny^)BZ6(edO-Iu38v2i`=|8Tf z|47k)Ttoknio2n)wfB#))P%gy82gfWaeuDRgiJ^2KaxSV(`LuBO>NtYjDt;DX}mo` zdTWfP^c2>aG<#uUnqfzMUM*>${!FsF1m(nsOLOsPI*`{jmGdbJ%G;o2W>fII+M4R% zdaX&U9>@QhAly!VLT79{B>&YO)n@$q#rC4|MS9gg#NTL|{;>4$VNtk#9N{r*Sg~}t z5X&D5{H61!-PaYDM%mB0y7G+jrzV*HSyT3B>YY4lf>v7jd5X_NeQ$7tI)UFN4~3GK z`|-9f_o^E?_!z>SO_jJV z>t&u-bN>sY_Kt3~N3 zn=wrI30LzF>zd846%(vwl3!!YQEL>=8DW03CnI@8u5bn4{=7EDdT5|;)dnYJUNjt~Hdp%$_mqkEZyprtV6Y-{x-i!Yils4O_`qO8rKrd5rX_$x$Z;uYR8P z;C_X-rsC@7-%5}+LF&oTimRV~OMQ*nPoes9lP~1`&F~&462NO=1);<<57@$c*HWm zBNmPCw3}{_XF89{qUxH)ezae~J{}rnGbg9NHseCt;ea`u8Rr}UL!LKzuID+Dlr=>227uxx*8EUG4q7n=NHNANavJ znZ-S8KRBn~{>1OkHuv@2s%=Ic(z|!5{)3?ZiT;7EO(D*cR`*(D!<>0pzS7csSGB8C<(4bGv!L-KA^po$udQEVFNS-hH2WY5wT4H6L(>vh(0V zOV~|%?tPheH3&9yg>_eFs1HMi_7jOgu&KMhzkBn;PP4aPaoNCEb5#~MaS)-mBizv5 z-Ls{yi}*v!eyD^S=M^_de zIn~+S7x2Bub}`^qduL}~_vQ_~dY6mlo&Ae)saJO7U+mrZjQ+;n{((|BHf-qG(!a4( z29+^=?R`%~%8Vg{_1zEitKOb z$+56&^J85-M5Js&9(HZ&?Rz3zzh%RQuD*yt@A^kbvaq|eYx6)iu13vN9!r71-_BS# zwyJz~boI$%NBh78|7_vf+|k>qQdM?^JlfFx@Rq)IQ*JhppJhXRn3=*vve+6{HVFda z+MONf?g%@!^gR}_v%-|?vis00qxROUSrsJ%)tNFkqXbiT$~vabQGv=jmS_HgvX)K= z^==BuqxGcM!(E%Zhz=hbUB2eNuzyQ7+uJu#W+vTKV8i}__D$Kcw%yWOrte#}rnyWp z+PS+--F0{KnleS(d(Q+iSb5LVWfRO>%GA;|AHO$h_|fHel?@5oPsAPLe6-tqp<7?? zrlq0Lx#cJ2o89Vf%gWx3DO&xW&J-fQ3z~SWN|^pxW}d!*7ttvm@$;!sv#+Vq(Xv0t zW0keP!;|ng^DcTWkN0mlVy^HViqLZJT!fbSg$OP4WYTLS0=lV)nr_0MjhKsnWtC^K z;cJV~GM}r#iBZlUWm|oJrkj2eq4hgqpbZxgqHaU z4UUXT1P_BsORJ`vu~vzl*nbj(I&Td981G?(HvUK4lly56x{R{^hY?!l8yQ?%l?d2d zV9JA~ZF&z!%*B5Y!J1Xpy#T?1r)7RBLMuF{Becwy&$8Sa3(0&(gqHaMef+|xM34j5 zS%UxR!FK-FMrheT6ycZsVWa|9S@#b`Xqh)KnTwjwjnFcGEkeuv!x38MyEW-I%DTTd zLd$$D6MUpMoOFP{Ec=-LRKflfu}yP#E{JpY5xDvqA+f;QQU zMgrX}qIoYMXcGM_^hK3#Q1p;!9Q5`vDXB^`8!C~cM!9B7w~|@XOW5~H;r#6weI!Qz zCA8YtF^)Y%NM(>Q#x|6~yh5xsp)n1?D zUH%=0R{LCV^q<7|wSi6T^Ezk#_c8Nngj?!%F1j@ZPWA;zS=!-F$&B1}% zTfo>4c{voJ=R>~+y%LoB9~Pri3eP<;x>Gde^E4p-K4`Va`$5r9fogv>hZg;LXtk&6 zgG7HBx&Xc0(O-wIr#&5V^tZ(iz17jDq1B#x^9#^wKTkOG8RWg%%QqeUK4`U%ryYGK zwA#b0qkjSV5cFC{XQ9>JopSUbv{#D%uf*st#OSX;t3AxXtN0y(o)yw2JNi4&EzmxE zft^9ux9g>~e}I|R!>t+&wr*@^u2kPSNxx%LHt6haEwlHxYBJc`+uz^QYPd0t=-jeu zStj7GQGfIGw?Kaj^|wfWAJE@z=5ikVZ?&_sZsuJpRF5%{EXdlVwjlw0QL6S zR9y4%H4`F2q_BbMK>K>d-~$2k!dn*4&nz}!R^kQsHLtjr$&*bUrM3&o?+V3GNK-Cd8_lv1&r z=z;=h3-4t8s8_9>M0H{|BK?>$ zdsWVD@o@a56zD@n@mSYHH*FM*zV$>Ja(aT7pE44vz%&7-{JBa56ZtJG*)67aF-sSv z;@4->#L#lkMzIHpi)nwXt*)*|TYK93qjs~>Gt3jMPGy0{WV6kjvaPb-L|-pyKNg&+ z!YP+FcWo_4!U~oYRoARg+108VPY`Ii*gj_TTs~MapU*|gjii31(xx(jkSFFq$xV5) zslD$}8;jm->p-uiY45?F7gqWj!%4s3^v?*7&vlp) z;&!8uvBhGizrGLgIBsNW4smN70fC$Q|7)Ce$}`gi9Q*1?A3w5O=l-`x)DS*Wr%j z2I4;~efSE(EsQONOw5yvGv(i0hms?RzfCm!JB0A(h43E~!hhUh0Th2V<5Tf37Q(+u z2>)6k`~wbkpRRGwnICleZ#a}3LhhY%cv1QTxPJxsIP)MO1GygIr*K#JON39jjeK#a z#T?NYheJa6haDbsD7i-E4frR#k@OMPGu9K%VV(r0pWvARO}HAt^e>aY!W{nAlFm<3 z{=qbO+~GNgwJah@zro>hhiwkGIegLKA&18tzU{F3O6yL&!zPF897;Z-@bw69W^C$k zz~NSh+Z^T`4m#Z7aJR!DhkG5q=y0FIyu&yN@HnXQz+$gyx9WtXTa$1*<5%G` zv}Z!nF(+J4J}^L5dR=fh>uO6kI&5~><8X(={SHSQo^p7>VIA@yxtnpg%Hc+bgAVf! zB|lPn9&-4akaRulaKzyehi^E1)8R3P#~q$TsLGoWntf`#_~nmU*GVCwZO1 zb5OXDc0kz3JXPlKop#v3JW=$1A@(Gvlf4nAFS(rTEe6FWIh^P>9KA7Z?MeP7dqYCZ z4@e(=$=&4tIwAT4p!6kglYWyB{dJ(~Pfqv<{e-XwcVwO~z@U zaKPa~;L@UX)p4&QWm+~FyQryZVmc+p{!ah<|n>#)vY+F`vz zjT2409crI}iMPX54z=Gv`s*BaI_z;MS)R-pTj`7Xv9wa~IJKFEL}fT5{sMz!FU^u6-#y&nzfd%kt@^IFeU_E+JN`%%6earDZ& zmqCM}Owi;E&Mc)a!>907@%Zp9=UwhC;E~d~6pcl_5}(Z1IF!3mZ#U3J*jMu}9zE+E z8cqJ{-sj&eibtx4hd5*n!Jqh)23~o-tI_armDz{k+vb@-&nJu|LvR?r;VS}j_xXCv z6c2_3CQYL5_0VRHM&j$;V}{qt{%&QHEdZsvYi5x1r9Eo) z95TIy-G65Go}tH81!mu!_SA8gL+PEp*QIy%qL$vd>!I|{S>@6@d+ti_#mM_u$eOb|BNeNKBb=w{`Q@yd1a|KSl!AAHAnR*88GdLsHkf)_pP3{AE_8PVF3 z-+N>9hhy{uF}gcO|GOCdLX3{DZG9_d{ueP?>x^D0eCjW~60LsHE79?_t-E68pNP@D zG5VPpZ3K&I`0Ryxw1P&qYK6}e3H1E9EGaG4?VPp^9WX`YwX&!t%#RtB1`v+H5Tvv*fzLN&tP{|skwI5Sbp8HmczoFO}V zjHAapon>4w~%vHI+uvAJz~#%A8T zXDp3*U9hJ}wK%IWX!80x?zMV_GZWX0*UqoIHg$Dfu^PQ3eqR~v;SAfJVq$iFJRQDL ztb@pC^mW&ecy&%B!F@L3(HX+4PwgQd+`;qd zub&wvjrS{|jaxduWbT_gdjX5)P8`mW$PL|Rlj00bUBLMicpcy0$bWw?*D)C76#LKp zzVc39l=VLu`!Rd9taA%Z@BCX>HUCkEixcYAk7K;($A2`7)SZOHcN6wHs;w!jsvv|= zJ+i9Gj6W}U(%DygX_ft+Lv4hX`%5CU=M-u$m(0t`RuWHZyc$)L$G6p{&GS5}>$mdA z%>s|cx644UWZvcpP;_*JE;`5KmFQ{J1ER1i}_|D*{r_Xl|U^h+r`HI){galanbD{(6S}_x%-%mw03tI z3wCwW_WG?;FH38jH*x8-ytHWpWgM{sqNqmehO7x5i~0W5tUW6|uA@($3#u>PD5Nho zeKLKq>b?5nV?z4kb6_Qn$ax`6VUjew4o6I%OP@R!T7A3v+Uw|>FIP>~r#9h+SH3LA z`&5deDI01)#4bL9H>pn@h`5EZ;T6XF)JySYoErx=*@OMx1r;BQH3 zUG_wYDyJWHpmqIijhEf`E?#)~@|rATI#j9e)m_6nCu+{YHrakl{T1gxtJQxc>C^mu zU*c1L#PHL~A-Ic)Hnb)k*z=-|saK0#VV*PG^m{3Lf2#T^`Z&{$7A#fug;yOgY7zFT%&O7 z?4``iIZkN3%YWVBqVRc?AI;AFX-8$fp=-)s3 zyNTdvZPP2<`|?ULOg+Upxx-P@4FPtJf>Cd2K8AhW9q znik-p@#=6-QGU;I;b5=qNu3p+mfkhifS;8^8tXhcHkbEm!j~qFtv_S^yOQ(LiTAI! zcYaZ3_G^rkeVOsp%f;#0!Ghvdo!wPrEIYfAuvZ2j(^k@>-Y?FI9&P=_U1L{rx1Z83 zNEJ*ONbF9HEg>H&bAL1*w(T0LCSJ-n<+7sBdT{L!+eT9kH7Uy7heUCQbr1EB#@@Hrl`QI{H)0F>$ z(o*MFs|lCMf8tada%PvbtY*BZv`vOj6_lsAQ-xj9^l9S!(0DCrs`5l!OX-S?@2D?J zwb*aKEu~K-;i_P!;meTXtFlp*p-yG@m@~9GyKKUp!>=Zd4_l}kHoVF!`s1$#O)r~! zuO_5pZEB44y{39-*R`baHQb{zTX`dYKaZTT^^RR*^@LMr(y!!Bk4DON2t9)`Fujd? z#_=o6>>5j<*O=KeHa&;m&G}KzFc*_qg*!Mqjr7tT(yBL!%yG66*n75Xoj*)>Ys6Da z+RBc2kpa)1PW-B&D{*sr@WANx@DWb#^?AkIeU;2STu?fsQlu09)sbGZWAcKwpp$ac zNIEJm?UXMcuV2I+U$^8Ra$oKPpq{vTsdn#s@T;6E4Hfr>rai^akseCh``~YElDjSA zCkbbWAC;7;Zzz160e=p@Y0VqS=Lg1@lD{&aOBk!e9ms3fk|t~BC&K)VL6~1ync6X0 zqdPFd{PT&h;;HGu)q0=FJ4v^Ce3#rztr+{l)oM$h9D6cBnuIII65NG%qHSz6LAqUN zd%b`x{e$>7ItTs)_f9=|^@+EFa2M^s1EW8<_M5s7=wwBTyQ#txZza&Hq)z-`&g(^n z9VaW{PoOVe)rB9-`9_ic>SQv6KXu}*3eSJ->qSHoC#&GEKwtb7_#yYHPba5wN0!`I zIK2Bo=ENWIHPMkDEE@S%b@Q&`GSW_Y6p~jyZ>g)JA0gZonT>_Y?6aiX$Htf8o=LNe zO*8IJna{lNM#}QSiWKE4RJwg^9Qyf0rjm5KM(;CuC*9VJlfI*?m3D0(8T*ZP(vGwK z&wPWlE37p4cwY5QeuDH%gi60}eydbw+o)gE zgWE~Vi;L8*5#Oe!Ybu(SSNsw8{j}b(eXO4JeGhR=jI11c4{g7~n+Pu!6X7Uj_5M+= zzMf6}KC8A!Wy80(3^PsJuD)bDZqW}E)yAKYyH`F-TY$T|3oVd)xGg_Y|BF6nocgfF zxO*IT6EhwdC%-D`%c^SWN4|yqtMK!6P<82uaXUXQx4*%=Z}%4Ro?(ugVGQB#M1R)x z%OUzy=3}=Wa_12zES> z-+}rL=p_0VX`hl!?FF?X)T^VECGw+X^h-hTRoPFZa)oK|B~v?#U%@=!9wWJTz}Rau z_Gmj#hU#NeI}7T+)F=7&k2SKRLB1T<8q9s1)F)`{K)ZD{@%}FD+UrTeAMpH_ciuVK zddJQ&wfBXNSLv%6^9)mGGdsts$vc&eRF*N$jJ4ysqe6Xhbw2-<#Bb%lD8Cc6sqy<% z_Xw}*VjE$s1pkz9SLQpoui~N6);lOS_(?zdoyuTmLE*lVa;1ARlKDJEf<8EWi9Qnf zO!!=(hJLex_E3Fhb-1(m1a8*icOC7jc&7!;qd~B<_${T4NvGz~!=xi^sktXwcFa3% zMsir=pq)jAz$a_5&)Ai8|JZ1c(jB|gv${7>Y2S=|XJ?V{yR>f}eL(NH!T6JOr`>ev z?#B)4JCyFJEa^g;sqC1z5D(H~YzF1HD6y3 zySvw3Ltl5td3}F(+(GmYM)dbP{yh5mi2jRCzcR>={#*Rnjk)fW^X?5g^BnrQh`zsT zuJy{DraY-!`M4<#)%l&&qvs0KaMQ$zvWXu|X9|@G^p@bB?)dcnbh~@O=Ay4V=DfbY ze=bBnjOfq0-rkW{hraHe^Zd0=zZ(7Oh<@PoFVep0E;`SDKD6$fL;qYv|BTZ=jlS-u z^Zcir{t5I?MD+cgc5kAuJL^3EdKWLXpMS;k-~$gla5%w!KAwkphTZcBsJ%0Kv{v|{ zdww4rbPw~9V5@tWcbL6BjbOcdUIu5m=kuWCLwdf*6S$`pJP)bo7kEDd>iI?9Pl0-# z;Qbh=XD9DRKs{>fOWz;J+qPbHK;>CuwkpbydDobp_CC>;uMFDqGjE_C&7fWcL;2AU z@J=B(`5xOR)?_I2UA$kzSWxzTA5cS`(R@SW7|D5!yKQAZrlCiBZt7baH*0X?elP)k z6qKE)8@k))oVzP12<$fvBpVL62QgvZ~PjC-@?o(~WA{Of+5 zv$NcN%BN{h5)n6B|MMX2`mQnED|AJ$_e_`{q%UW_Lbw9#CPEvJTYq4`dGZ(Uyz^D@ ziHEzGOgfb2V24veL7W%Uy`nnfQVGAj9dQ$FTAYQ)rjxD~<+ekecY;rqkxa7oyJfc1U--Jj~}-O%8jd*8d- z{ZZ^Gj7vUr2@fa7jlg{<-25)_Ry_V0Zkh-VY|5JS!rsDQeS3e`ZH-)cVs9Gx$yh&$ z-e=L*`{TaS!ZgFa4E{LRRT^+q>nb6r_ck8U6sKU2$Erl+{sievH*(V*&QzVmeBMRx z=JEDZrFvu6S?VG*V;v(qKRmt6|5`PgMkRtfLCq7anjX-u8riX@XYg_?!oSMVZ_`(L z|1Z$cTa^fCqfOss>FL2IcqxZ(x`{VqQm3W|UA&d!KRtK^dSxm6HvWhG;uP`k#a#3t z?S=P$E*+LtHvUZ!dMgH^8$i!L5HWWa4QSm-`B7F?!IO@Vecc%lRa%Fd$WJ0i)a9I+ z-xJ|iJNnreeIQ2vUX1>)F&ddoNy$ArwvrP4KTDKtxBn?dm-EV+ho!u*^sO=awiq4X zXBGV>vHaIK#w*bqV)UnC^sX5FxfuN$F zTkD8iC}kHY%(@*b6|G#c)3cr}f2|#y>Imni+$SO~KaeF>U8U2Mo!uM@RmjwD zS#RZyTR1HlSRcxa&J_~@&7SC7HHf`^LL{+=9FBmMRG1?|!mBfVmDHg(9eo;9_|FL&f*^!P z;a@5IIrxQ3nEMEEe|Zgvzq^Hm_ch^%Xy@sy#J5%m-+tj8gp&-B`6?md>U6lx;a-P_ z9KPwWAjEy`L6f~khpQZRIy7hXFyHIwgAR{4Jmv7b!zBGz<+Y@{kT|7;q)(lrwb!kZ zL4D}x24_Ck(T&c0v7?)WxVPNVtAx1M?C2IpuXS{rkhS+tNB20|oDC#A=1d^=w>k4c z;VjC9qs(ej9rRq>Qhu)zl8;$o6ZtP(O8ItliZZ2qYH+A=fzlx(Bpf;`D0;D@&6&YFIcp_4 zv}@B9H`?|6ikY?^R}e<51QiI%NP?h(4FYK)WeY1o1!ccpIE}x{RLGjua|GUs+J~)# z!7HklQSrS9TW6Do)Jck^u`fQVOfbjM7#Vdi;+8bzm(=@t#Q$!53XkkW`N*b{^5M&% zL$U@<&Ll$`>0RN|NXds!V@kP46JgYG!ne%_3LWu@)YwrdccqX>n{k_^teMPPc_P+> zt?)&aH|s@{IApz<_>=}-c|IkVkE_hS2;VPzCeZT{%n6%UmarAgF1 zon5>-V$r*&p#zhv%ii0tX#Q=P(5QFcSE%!?sDIJkhHH>X7`cwyYf$I*Ht5dcPGlOo z|6g?OLtLHVou(|2T%0kk1Q%6_^q9ht|9_vFX#LRRhlEcuUo zMDi={>(;l}%$|p;53v@`eeY?WD(p($RLvfUl-ma(T5<=urLbJ!&S!#?e5;B51;~s|_?!$)dm$3dc|Kp5pLq|wlFLXAQuV}qO@~Q-PM9aNeaPGm(sUUss6N34~`?}I$GOo_joAHW!IzR{DiftI+MS;60^B(eMvI1 zD6O@y(pvOz^H>XRD;(9$$iZCLOqd9VWM-*gkad97qZQ5huS{#se?js3OV)6d_KHUp zcB^tb3e(!U3RR@7?2@kJ)q~@lb1J1D=bTsv+*?W~&LYiDBQIC{(mV=RCGI6|E|*i; zPZJKMVO97PdvLKI^6fET`oav-op5|*Mo9R`3zb2w*ZZ`k3$M}IVpa2_ zCSNKEuhxR6wROnNZ_UU&JwiCX^#bXuZ$c|f{|&hv-={SDX?)pC;YJFxXnIb?qiuPI`$V#t+`=JHyP(%-b;ZD#+; z?0~vffm?MhzvYMW#`uxqyBqlz*elXbydN5;?>I``Kbw?3wCYGQwcV_{tKMiGBazz9 z+LZH`JvG{A!nZe$mfVCV>Yw7tIwx!6tn+2^ud`?2WEgHAs~o0$Hrq@{)bf zuTUm^JX*#Rlnw1cVsDX&i{hX%U5W?pC7afl;-N6fuPaz9)Oywx;Ug(zy5t$Mdi;<- ze;SGN6}ZLTm9t6%rLVUyyD9wqRps4B=6&CMSC_m>43S1z@~6$Gqm|LhPsN2g$M@<# zKE6(I%xP^hIN1f=4b6DqN|9wzT8WM+Rqluu0`LpNwlv@H^Mi&mbORj zq;DT7bK`0Y`1Z|F-JSm)+@AxVmzQh5n3t3D4W^@VZ#r&G%TNXs&X3sd6{M)Mv;}9` zt3g^ckHh<=H=z@_N4q||E>9Sn^L%3$c|BpQZ637snD$crk;+XKZYBfmm9yzv#ab%E z0NTiMnp9&(JH;9t?h!A_rCF=^3VNk-(d_bvaHtQ|8PK|vTRWg{CXEv0JNt)JFKoIi z-SW60^lLVXqmQrrHTm3D&U4w-}02ecxzBjxsbvzBlDZGi|Ot z%QuhRO8zEs%lMOR9;1J#35N6IP1Sq29)~o?ZKYE(lOO*8>i{!IpBpF}GV}4M3qD_@ zy&N^)DQ?q#F~XZFrw7v{_WICX(GTid&9W;u<+gX%tSzyY6n9tdcy|?Fxoyk7z8RdK zd5*SUdFAcbka?N|yqk)xQD}(QAv+!2*^OM${;zWM(umro$sJc|4s~6Cha=0?9=`Q zNgDgblo9XV%4%mF^BKJA?jx&84jXbRx$^^#Q*r#?A$M+f?h7<$c_c<}i_tq{^eZv? zcVhJ682w*k^q<9OI<=Bgc>cab+3@{SjQ;6J5{kbeMlX)ht77ygV)W)1{dkOiGDbfa zqxZ*X?F;Zq;iFLxmXQB?m)!Wzpj95uJNo~M@f*3aZ8_?>zmwYsJ0{4Lr87aUEDZ@@ zg+{ch7c2ABn-Lm&Suq+$q^fJ}tZa3H+mdHakQFbxyLsh`)stk!PR^^_BxOa{)EV)z zCoUl|j<}`(M+MJLJS@>`gloNI!L3?{H4@lmrWuWjYt4;=R)Q?QJ7SVz>BWT1)(s=Y zZSC4>f?twH+e9-Cc{y+-Fr;1I6MQXU^TUzANVY9^VgXk`jN2PpUEA-ICPJEnIxhX4 z>=?mMJ>}v$20e_g0-Zr+++@z6t`j0a+9(W>T?wzZZJ%UZ2Sn3}9uhJ*JtGWlITN4O z26Z+y1jTP;#<;IFH=TXez80NX9TDDyIqg~cy~wA84anq#@56oJ&8!Uy-%q${7iF(m zI2U(>*wdZCvR6%8Db#&?Lfx+?ch(8-5a=3H1@X&$+Tf1_9Ww$`{tfH==v)xO|*gv1}_)~6$mwIg>-Tn zUsTXYko7-y8DkTEdnNy+NTLZcyc2}wOu~i-D9P~V@GhF{G)njDMU~8?Na6`H#!K<3 zT*uvOkONNn@R4*A!Z*U;dog-SFS5K8zK`%O_ZIL-?IV1ld9#0VPv&tM<6-!s{)$IW zT*i3%67lVYmo&)&Mu|^p;Fa8xBG{$06Ma?9<;fUzKcVW>d$6OtQamUgCQW=^Kn4XE z{=s_&?O!Eh+|*eTF^2DU-_62>3l@h)y}OK2cO{~JBpIVQ*UP+};BLv)RQhGsL{_dFFO&MwySjPQ5>>xmyxBr;kT6c;#Evg70dsmLZ>m;QsL& zNPEedH7~8etwfu1FROXEduJar@ta9~F>^g59}dguuX0l6MfS?KE%D#T6_rO-@cJ-R zySb~+CvQ(_A$K*GwENu(|JLVgI_*+3ZOJN===Wo!&okyIj zGyC>)`N~8tiMVX-IAzuBO|;=@(H?A*XFfdDO=UN{Khp`nFKa=rY_2@V&6&s=PO6NF zN9EkOO`X#>9u+U|wqzx789_B;gUeByy88RuAMWCVWDm0y02@C6_c-ZuN#>-!UVZ}i znc1e-r*6XZ526})H2*}_V&0cH`X;cG$J4Z5L0%7qPW&vd22JGGN>DWIQ?LVizoS=x zy0iJ1qwfW))fpLuBN3(ftjx=*D!AVf3g1-o*@^tL=n-`}`=~T7_DcO@mnT5ckH_f2 z7`-<}e<4PHIYxgyM*m@q{%(w>GL@9V^A9D;hL297q-36s(eZs(@%ioDG5$5s`aXx; zD(zEZAYisBZR(88CebjHNl;TVnQQ6;GCN_9QKy|!f_8GmW+p$E+|+4iIF~z>yk~iN z8tErPlP8UuM>)>YrXmGMHZ)%{GfOi=dzYzS#33^)baS-jrlpC_+N{px385UYW|0YJ zd4{-w!Ic?{>P~}t()v2~IcRLFI}J2W)tv^*h4e1XLI!a?LI(IbNADJ5en^PD5h3nT zQOq3&A*lO@l;=XpGQ{5|WG*-$WbTm@hHegrKLXU&K_TIKQ%GdZo$k1QUi2K=1InAilM)h+79sAm39)DHc8A~04dL7G z__U`%bIl_{%nL%?J1>M!?M&sBcI;chK)RZwsbB)2Ie_+I)Cp-2@hYfbKuOXD6)=TD zni7KgFW#S_`{up!uO!)oxk&?lZzN3>E}%3wAu5I@Iz}~l2OKS4DaM!+=1!O5Q~8pe zsC#Nxz4Fdy&>%=blQYmNx6NOC*>k6hED)l8q`A}NyC-!2 z!jM^i(%y_$Sr74hGxUvnjoCEbyVTrD^CFoGmA7X|q^a(o$Z}?5(2v>Oo)E^NVQpTBp)qwb&B?c6tW1@5O9@Zr%N6vOwAbuu@g%GYRY ztofN8kFu_Xd)9w@wkgP)`GeV)L0-=$Ox!V%AMJGO&t-ml@2bu-YOlj9jN#8L?#!1=e$5&h(mG}-{S==1 z)c1;WGT$rS6n?LmXncC~y}9odD;u90tsLCJTHTJZAbf#65INjkJzAaGQ{*1k4{EPW zLuxzoc{@+gz7(4u&060zb7h@VokrYEoJX`rfi-mI8H_!-Ghln67BlfQa8^<0YYm^{ zVGX+~NWD;18*Z{KSgd}U>@{fZ#7y(*1fs%`tVFKO+Pw5ernG@uSBd}a@g_R3@i ztE%v)B5W^cKS99$45gbtb1i=D@6h^rDQ$8#ZAxpUzPz;&N8)MXmwBO>RC;9A7oO3+ z9nyiS{UxQn&RHdg?0yPg-h_V66fKY9i<;>@aBHbiKCR!%@95ll4)M}n37whMo&v?o zr?d9A&_8kxnY2!Qw^%vy-C`pAF6YL+Yto3iaTd4CJ#+H&$`R(foO#w>r3&JkDCBkK z?KxwAb>sxE7c0WoDVOq-xgq<2w09z%dZpOt+XwQMW_9)ti~qk-eqmpE9*vLg zJ5J_aFl9yMLgw|938i;++cSk^+jdiK$g`QL%=T+Z=h*@LA#INCo(OXJgz~yNx1li2 zrAKv0eG9hRIznCtIrdKw=DmcWKq8oZUrnpWw6BHo^&R@ilZmYIz~wV(p?olT&K>~D ztvxT#{2TvDcii~>EoI*3@e9N!>Cyi9k(&jvTKEc`SD)cHjpH0$!Z2WcNwBrWO@MdzR&Eo9) zXyQw4PbKruJ;kY1v!Bm|i+tmZcaAiA-qx3wiZ$713zeL;Ud0*gz??&7e@hTNCm9BN z4UQ_DK5cwD5|&Y&Y4r50Jav<}sU4KN#_jOsVlupQ?1prH^oBQ-Cf_dJP?sOQ34Cw( z?c$t~Z_`F`?vpy|?Wz4Cjc3RG^#1R}&mi@(;n%$&O6O=gX^ zD(KD#?#3>M7a5kqTS<7eS3%)bTVcYTmyF5no4}pt!lw#}n$_b2)H}7SD!Y}zE8iEd z*>^;kzlXoIxMj}Jj+EP4+IIS*my6Z3uezT?_ec7C@M)y|LlufkhCPUcg(*vo_Ow-G z;D@fKZKw>tQ%q#OL;v+1_K^i=6B*Oyj9v+!{7vR|m^%zA3)ma6ZG^&BAHGR=br;Mx zX^XyDtjK(my8UvolW~a7;&UGh{ioWgPZy$X#TST=(%G6#PG{P7`n{JaoB46$PKr8= zTj_wia8kR9?<1{~j9V&sS{O5w_NO%2I$V(>4YRKPHka$f3}mw!N2q_L3?8k3zMFU2 zOzvxF8SkQOq-f`qZ+;($1Sp$z`#j|;rOgQ7pkx6Ir=>LFLJ&M|uESRaz>|liY zMOrFvr)PA3r5!^BBeY9A)jYL4bv$XkYuw__N6!jgFnb51<&ZPZ6ZZd*U*q2)P3R}b zgVg8QkNBJ^o9SWoRZr56a8Fm}IqgH6T^G`xy8UF@Cw2vKjfO4ix9rRA4aAvvG7b{G zW?XykF#(mT;JFGIH#U_w}y{w*_7?-3^_2>7Y<Np4Er4hBm$?D^gj8BC`z*?mV=FA*qH zcJnZgDB0HIgCev>A| zMp^$>Md**BFM2O!)$_m21k9>ZKn*Fmui{@;Rp$F5q8oUolKW2Nr?y4Z<;Z=1F~U#N zA3PkRpNP@V#OTk)=mRnO_hR%nWAw2Y{ns)2Z({U?82wI+u8t(B;`386`i2<2Fh=W} z;9kl8Ju&)$7%h2~SK{9qqj$&XUyacRV)P%x=x@g8Z$q;Yexh93v}pD1K`)19C+tK* zW5OmUXvu?t^3hocE05)6!Y-%YM}K6=wA+*PBW`etNUo!snJ{s$;7zi zh4UN8m{JELIiuva_26}(lZ#&;1WnSvfziJ3M!PO0d2&|tobowX)kVpLM}+USci+hT zjA-~(SF|Tb?WOiIHHwz|Lj27N--jGocr*I6VcG*^SG}_sgCM^n5~+zofRl$F>1LpgdJPD9)4C8FVf= zdf$Y1uR~uXD<1Y?=3va)T)rT;A_dQzsZzdp-bq0N3BFml_%}sus&$$hD zo#E}fES{OhJ&$dlE@45Bw1O>o%1AZ-H;Ba5qUm=6@#QZ-d;QBHVS-kJ`0W(vLVpW&~M zfr$IM_jD@vb>Hca z>V8Ya{Z*H6e=+*;I_>l2hhetKo)bOAc&{SISQvbR=Mc|9o_#zyo~=9@f3M=vxV(`k z=h4QqmS-i8?hev^q2oL+ z@(l6hc$V`l;hC%V6>H2ePB?Gboy#=f=Dnw6@(MC`2jI@pZycNq=ER66+_2;cv zcBioikKCHq)!8+#t7E;_TWA;}?#NBYx6m+Jdf~js``WX-cX!U~-_*USYhHWL!}Iuh z-9iH5jDowDuUIPkLLZ*)&aQUpty!^Rxkqo--__MAz17PW=rP)T9SZ`UdGi-6Hpp#U z#_YC6YfEO03~0sQn6Y|y-W3FQ-eup{Z{RAip5DhdboXzR+sl@&Y4NzovIHINW_PSH zo7b_vL*~-+@9kavcyD7&e4}KrbOj$0WKa$&jK)RFzMaH=r-P8jL=lgV1I;`-8Uk1AMYa(dMoe8BlN%H{d9yLI)HiAMZ)pU8|~sU*n}LH?A^g08n;kEfHF2u`xoQg_f+&sw$Hf+amPe zW3VGaD{b~h=nCEsMrftQ{s?^~@2^GZI^IVj^laYWjL;$Prz7-Dyq}8DN~?1bn(yfZ z7b3LMDoNjIRaI~Ybou+fRVMA~BIZAjc|(M5hSs@DZ~sB)OoUe2Hb?07&>JJP(so^h z*4gH55qbbx>p9;2PeJd9(CXh0L}^nEe9oYvO8?wI+O7`;74 ze>O({T8#d3jQ(1T{^J<^y%=4H(SIAGe-NYJ!?@5ZrQhrr{oWYe7^9cR==)>zFUIIc zVzkDmUdjK#7_D)vS2BM!Mt?a*|EC!JhcTLuZ4?SMjwvRZ^meyA@@r0`JXX5nC4Aw{k}RzUmv6A$LOUo`u-T* z9-}`Qqo0b=pNr97iP7JV(Qn1*%F@`*#z*TwUMc?bV)Tj_{fQX;$r$}ijD9&r569>? zV)S3dXss)GrSM%rzu}eWpNY{6WAsO3bbE|`JVx)1(O-zszaOK&9ivag=)ej1&DkrC zPWc<3%~xF)OuXXRT>Jb1>6yEq7aL~7c)NKuS4Gb^w?WT0R_B}Rq30WW^NpSP){=2# zzOl8yUNCL_Gqx5OTMLXk3yj?b#_j@Ri+LFVSYYffG`1ERTMLal3yrOX_F8IVYoT#r zp|QKr*j;GsGU3(z)y7t%vDIj!YwR`}TaCtrMq{hdxX@_qE;4o(8M}*&-9^UkB4d{s z9xg93E-W&(7Fk=yo!gAv+YJA0#)aD!2EEy?&Hep7t?iwiT5oYTa`bbSY{0CyBRy#C z*r02)wGJ*WcS(mxXE;B~xwu3ioQPNzFFFe^p;dOnGnF0c-LQUwqcM76YeZu!-~8oUvJTRHiuWcPGOjK5SIJcBe^v+cGV z8qM3w+2ZL5QNuivza->+IE`{tq!EpZVTeRUbTlf4KN1zu(Ofe2BT*AQA!=S@Lex|MiHfbh z{TtiMX>Z({(j;yN&WX{C*z#r_?N+Qep~O$n^a(mqvz)4v^o^f!U7NlWbbTV1HOXV& zI8D%;90V1Yse<72V?nUG@gSf(DF{m3NkMQaKG9L5IYkh>{*>IYAc%KT5KJz*@-{IQ z;+n=Queq_kV`KXQ+wSvbh}LXx&lB?(X4sw+Xu6QT$L=vnBYdkBeV-j`imnsgZ1>TK zPK&-j2tpxry>PYN^C5b!=rzbdoOz?L#qKeY`4Z6&1VNKCUoK=5$x27B5`GMMgQM39 z`D=6ZR^i9(K3w5m(Fg@!bmqg({D{Lhgr7iW?AbP!( zjfs|ACEdXql@MAov2>@s!%*~y=q}D-JM%Y$8?0ue+(Bx(VJN35kgDmmEMdj*U?!a zn|%fxt+lLl*2=!bKPdW>R@NmtFB<<2Ief!m!Qlmm7ljh?GVhnYq_Cg(I$CRK=>g*F z=vl%oJdT!pME}xic--L$ z;is%TL+%$u{}QrIA@mvHHrDtYeNM=smGh3iAVhe5(b1~dX*NV9h1i$eBb_6^9i0+B zNq#$emhdSaM~A|v?YgAwH;5jjemiq>H{5o+b}4hMWt#FJe1&%CQJE+Hweo?rSHCadJg$UjEJNkfd7wPEeVc~Adg`-~+?xCJIdPMl|sV9zpL-=Xx ziKCARho~=(J|X-J`QYgDLh|jR@K-2T$Qu;jSwi&ZI?M>4Cq10`Vj+#w5=S=)U!dJ^ z^hzO%1*;sb_2cyCs85bwE2L3d=jb-!OO!uHYu!2hdCH%ov%;4te~#WN+(&(KbWZpR z^~%vZguhBYIC{TO zpW~N&CcU3>Da2gs>givnTsk@>{0+*bqqX*){!Jc7hr$DtOGnQY{s;OSN3RqTPP3mD zY!m$@(#@G`eLwwMq?@D7or4ESH%Ds^K>D{yH%I4$Unbogy<7M@tgSoxfDnHUI~)r5p->igXqJH0^3DfunDGYFc5%V>v$%gJ})3i4fe7vZ~1MG^-I9*U(=M8&KTIWnNRG>WX6 zu-|xZNE|6g{EU6^;q|2b(1X&9DETEt(i{FtLs5<{!AH^?_m$*Q;?vl{EBPxoNh*Wl zms(8OZm_TBUp#tNIy9R6wZRuvK74D@By3r4CO(DPE6+!j5MN2{f^TDqvVMvbe7Eqr zU)KF6(Y;y6o9sTdW86=o?>xu%(M5UnJ`CUR6nuH~^Hb=1`#YM;`{8o%PPJdH2mK#q zKbiN#qrQ{N``JW}_Jst0gD1~(fM^>Rgg{SEXChUWu$v1OfZ@!q9 zW=rs2ReICQk7M1QF2N|xU$t(}kfEd$ul5pU+mCFFR(bVG{M$VNivE=t&Cs)?WWK*d zS^nRR(O-|zsxw~6{&zhAivFt@UCv8u{*N(pyN=`T(6j3}W}(5XFxUkWv)*BrCiG_( zCd^93;z`R7o#qO<^76x`&ho;8H8WxzRq07Gel%N4g1XYnrcU-C8dg0SA6In>>L=b$x~ zJuf8k7ld?_7lm#BqOq)GKN`zQ_M@?^WIr0qri6@TFIP=9CQ|+LO8Foa9}~Ss^>2dj z-Nr;KBW}qZPrjdb<*gr2T#7H_?D#Q}_|~H5mBJ@C<71*cnhl=G@rZAwd-q0fNHd~5 zDL)8X)*FdWVfM=N#m7W{hrveA1bRMUbWEf@J=$ZXF%eSL+h|ze^mb*6DoV&KVDR*s_``*$xWbc#HJ4wngaD zD=!*{s2-J7e4Ik#8c~&{*`U>|q*a>b%oPTWL*_>KlUgx#8V=6#7(z zmYn|#bTyCS^9uC22>mta3laLypw$q0{(sbag#KA7xB4M(9z<(KeS6@CHX0GQFQ1s! zEb_IM$Opiq9GzRtB?S7!cighM$02$hLYzULkLiA_wWn+I!vh;9S(j<~8{ttujlE4- zHgpVZjeI1=ezL}d+i>XX<5PLr*&E&G5qDTuCTu2BQ`wZW?fskQvzXe~zR9kY$L;H~ z;&;5s3V z#sGL7o#$3(4qTR+YRsdxGOsQ*=8@bq1Jk>Wd9=P3Ri2EGc`n5#KV-*`dBis>;^3vm zJe}}0MEK-}9;KVmtKCroO;4`nJv!zQ-{p*XbSKM3?|8&Lxl2<}QXzyN^N@{~9P?=X zWpTu!51*a3T>gEzjf*mueP8ZjJ7%6R=JDSUVfbJA?k;UQcP&0&M4F*{{c0*w<*^Ub zl@cFiq^5yyN+2B>r|8z`+md=GYBfp5I*ffvVW)Mf6jg5Lf_5M7*KJp$Xa^}uf}~1#6e+E9DDT6_gSqTX%Omu zyVaxh=qp^h-*Fl5)A7&HeADAm*-3HloY!NF*egBUOlAj*-1Ic6w3qu7jT*&Q-{82L z?c?U#mV6&GQ9E<|eb5cujixXm(w?n!)jRQ+%{1?vSJ4p$fz0)n=Tb3i-JNH%e&SYOL)?rWIu&(3&SbZ~Pn+uQP zrLlM|ckli&Zu~p+&3At@=Kj0!9Qm}=@$%izvyweNM%;WkF=;OvckOpy9~l2E?rcU+ zciRnQxRW5r8+Uf$j_xbA`IR64L)=^A_?jbp&qVmX4o|D&$y|a*`CUaE>eyA@P-ew{GM zT=hnenfthKD=Z4T%;mQ3!!~uR`TjB0t&gbuk=H7h%k>U_(v@YEE7=REE6C|AU#M?w zuO6ig%#>ZZDV|w`LGM+hk+I|QxR!cozuUZ;drjpA@d;Fq%pIj@Jvh$TmU}Sm{fV`0 zgWPp&%Vdghs2qw{<&gHn)n!`-^-bIxottUWS#h9AHDOXXqUHV@u1p+pWnyzGKYmlB z+(he6ye@ss+1(wn+Z(YWK26jX>Rs(_ZJTXte;2)#*;k8yj(z`)c#~elQFV&+ zxwe5aLOGuO7w|;umcs1omhOi_TjrbXXS?M z1|!@Z8>~|sSu=NJpLwt1y_$NoM0ElhV#eydp@yT2=M60a1=5U^tx%LHlTJGr@qu2x|!ubMeo$awXoZe~TluvuNPQv6g^H*eIom=Csjqtj3;8t+DwR zy(UJt$LLSS=%=COw#MahKfbn*N58<+z$5cv&@1_Om`CZIV=yE0|K<%rnNtZ%O7!2B zC~IC>$}3A>8>4TD(MzC}fAzQ{|2_(>eO=X#)|t;k&_j;yjoFusz$=Ak2wM3Y@-FxC z(4ElQ!zcPbf?kRLt1)87Yi92s$JGTrY0fotdjm*>XQ)rX8$7bF#8Xok4S$$?p0X~g$N%8goNAd zs{_rxI{3}LI{ZB^^M$l2)JyTHeV2b3hq{YK^m3VFuLZm=!&;nZgfM2m8t&{CO?>jg z>yc#&X|T<{Gs1njYAU%-i2q&@O{3y#S;y&|&XA|-vw%Q+Y8U4?n&dXBCE}Je#4Dw~ zMf~r^N7RiSFV~TK&FFb0f8}O;Elc~xC|)Hc9z81^dIRkTiz*+!wP+HytTz*1v_JHG zh}ueV5br<0x6xYyJ)e-GT~cjCUVDjWphGsB^h<$P@c1<0)!cunz1&`T_quchs4Uhg z-%q$`>hB;eSUBG;X1)9Vp1F#AWG(ATLaF(o#@>}}c79aNJ@1-ZQk*FQE#oZ1&OWy^ zS3J){&o-`kp5`PPgP)sk=V#*VjJUg!mIh2#_SYVJNL>*#{2m_Mf2^Jka<8x z^Ts_!mU0{8boo)O`~CU;sh>y49rA0o=%~E_dlyFb8oS96d%u0${=4yyF}FCk%zkH8 zX&mHioaEQ3rdNxnn(f}EfH+nY4(Xe4H6;s)%<{1Wb4TL(yv!&^Ca#*pTh1WNGBJ ziF=#!%)aXzGpyA-XVNFPp>PGfGSfU-ak#+ubf+~979;~qhTU{CYe%OwZ!i4c@4R!f z@=D)#Rr;qXPre)(|D0d5n)i$aZDs$G!5kx>QaF;$<#MEN4%_nZSyLXWU3pMg^vxXc z%fGbBmi(j)&-xMk4Dyk%{D1774V;x%ednM1GB6AixCs-T(1~8+#GoR%z$Btebx25p zDaJ`4FE&wTcuBwzxWXiol#988|EoI~9U?+1%+m&C8`!cUL zjO3TsCOknzJz9tdm!@a*eomM2yXNQ>FSd^DucS3;VBWI{ zNbhJ~g*a4QduEXLq%h~lWvw!zvxMpkQ*ns# zKVe0$P#mIPXx^>~NngE>qjtrGPwNA$pwpcjM7aWoebr! zsnPTJHS?RukG(;o6ZriI{vYuh$9Dri=5|JzBN$EcOYr+^cyy&l>E@4K&F>7qf8zHs zen02;Jbvk$t$D!3!^$(KRUY`hgzrk+bPY3{nYwBA<0BiBdgtfPlFGq2;v^LmOnyi- zZz*rQ;PH`7mxS}i8?c+Yc=&W@VdM-yXV<3Wmgqakm4*xC$F2OxyTg4~ZNYx>9r3I< zP2{dEPsT6bp^jGEMf$;g!)5%(TXK2>?b%KEUw#^oEb;uT^V`N`_;#gpTlM}ksz>D( zZt}KK6!xDmXX?Vv`dX91k!UWMFqw40E$RI}S8XS0r}yhkC)`vVDBS9^q%sehxRBgN z;wmwCRk=Cyz2_Q(tI7%9_IW;&z}q(tH)p>79R2XANz0G(=r2r7jlpBMH#I#5Px-fD z3?6gxQ^$?Lqt7~ZeDN#f5S`@Qjr?B-;U{rY&t+nL;!5!Q-E&m%r~J8PP?X;31=N$dLnEoqKFZya;g673k@>C##7&oJ=O$AYH$VUU6Rqeu z{-quCTXTbvT^an++%-6&H<485+=pEmDD`)kA4ntmfyVxgSK0NoUf~g{8^%b#f(>h%F;^VMZ=)*ro5<(mDDR2Po#A>QcD#u< zvtA8f>96wU%D>!I8Jj2`aiM%6y^X}pIP`iMKwa9vI1~DMDD_(KF=+L=Syy=y@s?=r zE5Glxm9>$LH-+ms)Y*hHXll&I5!-!%ON^zTBSnU&$k483*uPN-`a9yRIGHN3>|77wo# zr5~p{Qt>oCOPias^*wQj+*Gx}Zmj0)c{OE(dha3PjWN-!Ly6o&?0zA?;WzbPogD3s z)~@ky*YK1~aSHnfQjRA*>Y8UAPVCxJ-g*i77Jp2@O~sXDF7fTt8+`dk%B{r(Wfzuf z;LGiGHY_sh!qVi0h4EPAFSYl+JI)VHnXUA5!}OHfP0S*vuvd9g?+%83DzWZ{dGhTU z-i}in;o?XBplrWjoPL(_5ir(vW>lBUzv-;AziU`;12T3R9V=b*HXvibG5H^dul}z5 zL;Gs{BR3Q`<8jB27v5}~D*dL+BT?9u=HI})ixnqXwc{0Rn#r#&&Ay49 zXM!ywylolT;o{uMsh(8%J5$&)qPAA+{bQva@iFx=_+y1Z_5HWut1o(i?Qf|)qpvk3 zQD{hN%$evWANIRAzHOMkC;5hVf;;tgbNF7b{I7IK?CLA459Y$CeG2khGQ0aZt@DTB zym|Q1&3z+SV&c#2gSaFt|Ef>UuqG{fS~P&tuT=S!oYF=0gVKJJGh^};=CXYweX}cO z#CQD#<%u(_k<0vZr18e}`o48oZy~aWWOOHWNc0XQ;Z?X(g-WaqHIr@OdUeG{-oSuK52^5KltL~CLZ)2qSn$)JQNvE5~fDtO?8Kx z=lM@|p2y5V*m0rzrd$otKN>aWJ1gZ~aT^qvC&Dg`^<~#Q?%B)RChP^V`C&kKaT5HuHOsUxD9xeuQiE*ZFPY_iOwf;CDa2jr^#4Myc4y zm%(T+KiX1b=5pxd?mNp#`ho1X8GgU|fuynehH3KDKan3@d!{@)j_@d~$_J+Z7`#gF zM@~&+z8Uj>6Kg|nSD7XL)jx0Up?$aJoSiC<%xN_Rc5aXHh*?*cJJ(LGl*1oNhCCQB z)=~c`4Rv;@pY)wE{F%W`=T@zL67MC`Pg*?uRr*4WxvNcID77#QV>?v-YaqWg<3HXM z9r``$i*)DmQW~E4&hGYD->JECaHKi$_=w_2{-%DQPm2Gu)R&1ZBaGclI20a*rTP3V zBbjNHFuC@8fsGf^&h&l$3*lVAT&N3sqZg;Di;a84H}5Jpsm#iMazkn6ryuWdjygNs zd{(L}tXnkxb7LjbP8Sppi-+HeA2PGTu?yc(J3R+|7Y~Xr^48Q~)=tXf;^7%4{cjn* zcK6our_A?~;e*h$YwX-!c4mA(e9gwA_=qo z@m`ZB|A6l=W0&~v6@7vDqz`8L8j|tj+r`UO)}DC!JO02Je3w5M^HsvDJdmqhK4;7S zwoEDgF2|gif9a;}?oz*-dE>mx(>K!&-;zq$_tzP3(?*2-7p*lYzbT&7fARY+w=r+k zd_Mc~a=V{voVH`++R1%om3P8Ld$;%xY{nd0!LC|l8{`$w4* zao-wWlo(ei&mO*N%g7OaMflFV>nnWdwOh(3=hNRH51h_zE`MmUX>ZK@#w6;qqst19 zW5*{;^mUZ>&Od(pqP#+y@Sb{c=rhbHC8+Xb$*llw{ zX;kw?CF?GA;1jep)REyG5Y~UDFR8tc>hHHuPndoPZh2p z^lWCJyF8Kkjv)9*N#+)D9BrZvzwB=4y1O*7`{B}uuv_Iz@uKxwl{ux6?D-IN67$Js z?N^xZCNo|XpZ2XeyL}{?f25SmQMZsk)b2Ht_a_fD7`M%s8@E36?!M#)Ja^=_+)@1- zhADLGO~|-%pt_+s_vAJG^)1^jv(*cQ5wAtdrQ_F?fdV`+-E#-!r zALU8!-1ZB1p|A8)-KDru`Z+&+0=xHMr^9~=F3Jt-2WNi*e?9?EVOH5ZHLGug{?4fO zOR3yk@a}a(d#+MmXRaX6TtPma)V}v5agyjpf55qU>#+L4mzum!o7=@WhWs%RJLL!Y z?{xo`@`rwBOVzxA<4=I^x5)=GyGOLwJdxS`oZ98h!S>^lQT(dCb>UKZR9mSv4)Ii1 z9A&HLPD`_7#TI@dxaR>cJ>7_lrRW)zCXs zLvKFeiQ9KW4ZYiI=uMq;w%L1Y$Zf8n_gD?R%WBy7nHq9muA%q!8hYoQceek2TtjZO zhTcEa(3|i1ui2)@`M9AmmEw^6#Tnc%ovuSxef_xp_2@Ty`Yv5>sA2bw=+(0OLfoun z_pM{teR~bN-#3QcJ?Pi6`y$+|=~ z-9vvp`XvQ?1wXDn<(UyLQHPm5n2}Y^t#ln`J{>coJ)2cZ7RJ;zI_17QsTe=nr03~x ze+g!^SKN1}!L!eN*6`bJp{F3wCpEO5xc(oW8QEJ;T&uq<=bbzC#Pw%lX6lLSkJ@;1 z?$i_4AA1RAK4RnAxl>PEf6m5RmUvK{*Av&D^~_+TuDIT7<1LH4+^Hw7KOZwwPh3B0 ziZhp{ z8(Nr^_0;hidFPL<8JDK@m>INYve>OOt;dXawlLftz8r(EggbRsu9>-_r?+S3dOp^# zo5_)to;3kqMsq{&`dKr1KxX;6d+u4uyDu}>uIpVn^ST>ue)ERjp5=E3Gw0v*u9-c( zz3W#myO*;_1SzikteOsf_Poze#TxfiK*V}VcL-|FeMKcqd<*a3m&E)<_WO{<)1fPH zRQF$q&-m5cgAPF@%z3NuTmQ!!`!_}TB4OUj6kY{a<`+SafqN}xZ7sMBZ}wUIe&|uK z?v{}J1K?Fu!j8WUd;;wJ_g}%fr#S8TZy%Edp-LG440`ypFod6h%6^TP^xje{cDnFA zdR}N+;ZuC=@$jEo?82k?NHgdQRVd%=;UB^f*4ZA}e;mA!>c{u*LMA;z6`Eh<;h)10 zJ_eQfM#7n6qEmOt3+r6pz6*&%3bk-MxS3gxeO6xndm0=n8y_CN0{KDkF{sQ-zQ3(n zevgN*K~A_}}jp zN}t0X7XO%s#Xs(0@lShL{4*XFzxj3iGb)U)jEBX~dRXS$JuH5QhsB@kVeuDwSo}pE z7XJ;LjzlX)&;bHNg^04@OJuLpy9u|Ml!{Q(Iu=qzjEdB`(i+|F?;-@d= zpHX4{Z}hPEtsa(nop}sZm_9iVi{Ig4nP2E(@fUem{B946zrw@f_j*|TjUE>NQ4fpX z?_u%xcv$?WJS_gx9u|Ml!{Q(Eu=s~PEdFs110$t#>*7~bL$H~8PpX4o0{+Lq`gZsU zu-Y1jH6GsO;V**K7COG(s#V+K@H2eR_3#nC*LYaEWBey&iraSm#-t{da@aKX7;>IFqhmwTlZp ztg+Wd59UJpM7E_qn@skby#>>C6x^zbuay+7gHSJ-s^)nWB*j(J#b-L}#{aeTdX zyU4>62}{AlZQy+#elu9-+MW5ggWKr8ID9?0%fq*T`#en6h?L$&uFii5dMXv`9qO(_ zU!|DZUWWZnXsNzGurZx-so^jSZ{GSC9Fkar-Uzx;mc$Ani#%4hVO~t%`v#OZ{(${{^i6w!@QYVAa2NI15&P+Tk2n z{bz?e!RjwN+yz$u*x_!l`oj)y0IUD&a35IxU56hBtAFe8r@`vaI{YQD`mYXu1FZh4 z!`}z1f9mjYu==A8{~WCTr^77DoBpQ5EHs+_rN&o^&o_eApLF)^dT=T#^9_N=B>)r`Bf{|hYt3x_n|x!IV#7@i=3v0bprunBC1&nu!8y9}u2Rhczj@x0EHq!q&kcpfphVwqr-W%l_^69@X%JCX{3 zzV*tZ`zAX5?^!;WTLC=mXiVtw%4OUUCY$(f70>Z|7GdWBqEsLt8BfZ8gC8m5`D?k<;#5GVWWkq32QMZ|S>l6MLRny$0)K+_z-R z)2S}d5s*z0aAM{`RbMpHaN?1MjF6y_&)v5K^{oqa>@~tyFS*U!#v5jvrJBNwv$-*O z?Yiab)^6yHb5^c3bF{11-sNuaA#LUOij{^D)3xGpTWpT?JayJB%_H3$ei<-zMa?gt;)vn zJnzXj%b4}O`>ea5#aVmrJuckjJ;lZtR_GQbPgvP}Y+>)(DtlRym7f(^U#&l;v&-(i zGfGcqggNVq(<)Xx#$J;bcsDqCIjC}}wlzihkc|X!^?lAJ{}L>F)6-4!Z&#TuO&ti=~BW9I74e=~>~NwKlkXQ587L>+Oj$u)=pwbRku>*_e$k zS*u;PcZXGLs%CYjsUp0{cDhsw()D~|b*iG!>P4}!{2tztw@z7}7jml;g}jEe%k9;6 z#6o86F@adUL3fe&uI8q$`0Vojnt~D)@p6RysO4n3qF>GoqPcJm- zOi@+Ipt(GZD^va8MBW}UnTEj z$(!u#ER+YTG~|OS4QIsU__(nuO=q-9Q^v_@k&on{k7Y<$YpZ%!bgrd)Ej=Lm*>E0F z?}(lehBh|j~D#{_rO`4PJ+M4 z_(t@187Dw5+Q9o5iv9uih$3GQMeb2ilyp5LKJJ_rCA@kcRPN~=P}!^ZK8^oH z4-h}1*su3HrGJMg@@qu#Ur`kMIwnA|?>157SBZXu_!PySM@2Dz%JR>MB0sk&lv^Q+ zx!Wc}iMJJ^;Jn3~EZr&kIl^V}K}*kwVt*?ItL>ZQ7tue#-=d!(pNPWmxB5?sV*deA z>??`l?n$fP$U3w1TSd`t7e#)N=t06~@g`C1)jGAx#|}$(S-Mwz+#eMEQ}VYc^2bH- zr`D@wt{p156{5J?FZyT9A6WgvR{x~vw}OCc%Z$HTM4!RDDCX`E{Wj@i`I|)lC;7zU ze$oHMIA0Y191}&pF$2Y(>7s`yU!vb3-bC@oqoUZeOB8qZixMvfMZZh@S$t9yxz_Wc zhe%&h>{%m9__m4;V2|h*sGmf?N4$uVUzk`iv|W_=)_Qz5`F4dc=J$&df2S=?v;Hps zWJM2?Uqz8SB8uEGQS51C5<_w`EbS8gKKWCWa6BrC+)j)4Sb9(tbEhm$Ul__S62+aJ z7Vi3|B7PY8Ov|xVndnBiehih;zgoA zAe}|=cV6@e^?@k%>Rr~hACfMj-zQx}N$(aWZKR(Q#l1D6e@?hXkvl4SgnTKAy{AQS zH*-NP853@Ukg2koG7?gbcAv%irk>Zr$h-)V>Z-p7scEHQOtE) zyhHRS)F)Q|8PVs+*H(Y}w2(hn6nB=09w&c66%V_F@&D7Jq~Bpt((kCnCq%zU`dkA2 zE7}9mQS!T`J4Nxg_LFoI&x4}Gv-XdqHii2{M71A8wE1-*&05-FsrGA#uYDP!+J7Oc zeHNnHPa(S3(m_kL4?_Cd?;xsu4WgO$kZPZT@LWr^??71l3q&_ss{I1O+7}?I^?y;V z^NVUdUsUV%qFSF9%~`t8Qmv~?U+d?hS|=CPdbsG*mTG-lSnJrLR6~K*87Q7Xk~Vyy z#fwB~yAUz_g6Mga2aCz#L6WxPn8hS*kfiQ6d&#h`EdkEZzKMd(9w6%Eg2jEJxVO*Z z{i3*c+~O0WxYw2p&1Xe%PyI{Tw?q{8v?eUPRTTI3Tl};r?wzpsq$uuXQ=xpjDDEw> zSo_rEp7y@WKJ_Q%-qRKjisIf$i`Ac$d+q5^e!3{`nY~(+)jNdSNN-W$|Dfd`vHVk_v{k1?v*harD1E)@qUg^MMZeSP-y!-s{2_V?`9pLX z?pysGR$u*5=^wEA2d%#DdzSub(F@7vqOZpt+!WS*&%)}L3Tw?zc!$M1Ek0=RGZvq* zI3P_VueG@3Ov<_Fnfry0OD%v9?MBfY1QYmm8bmt$3Vx)!OfH{%7FYw5}I(xf7kJoeY5#V9eHzDCxj@J6aN-|qOw=& z1ai~EPxD_q{gzs4H2K#;n)*sIQtS8;*1Q4ylbqtfDJMsfisDYZcOds+Cj@nJq69Be zgUD$sI7K@63_ryS#nr@#i(_DL=pBp!C+aIy&c4fY*(w#iv3f-|dqr**yxB%#RxWpC zM@Ke0_pP(7{JHO?R^5hbP+BS$n^Xum7pU`05&gH_@7%j`BRiJOBEZaL8#cW3UCb{2 z6tZ*gVfIr@>6{AaUV6&6O?>6tiqf8EU+Fzhx^+e=Z);6eajb8L!!<@T!N2OBp5^AL z>zT^~Rve?b8D?BG{~xg7Kt^U`8g$?epguP^w+o#OP#ydfcZCZ?%Q@ z+-+_#Y~!P{dmgQ>?j;zX*uWhU-09KJIsQ)WA{gNQ3GTpP*!)B)AKvki=&Ia>l={FU z<)Bc(L9z0!`vel)1Ft*mb-#L&d--**9`{k0dj`fQxc9y1;WBsBY)j4hNV%Ci-cz%< z_kC7)?|W+Cqovfx|8!XH>#mqd+$oT@W&_U;L3hPX-RZ77Hzwltgsk+pbMJiRetvhS zg?slxX3d=k*ysF}#$15;h9Kl6=!@vx3&oA%DAif~cw&C>A>DJJcLh?Iy;OH0U{@kf zI1AjVUEI$7e4+VY5^g zTMCtX|CP@E9r3l&S$BJ;3*47NI_s?j7ha{A^Rr9y<8`JvL%1l-Tf4@-*I((ad-uoT z2c^5*cj@lCUlkYJ9YtCWDL*IsF_RC|E6p1tx;u_`c3Zk|r+ITCx<98_xkFI-y9u}S z-URVYUgO)|1@GRXIBDOZ(4A2)=RFm-Q(vepP+vflp;ndB{Bm5q7Y)@d&WzX1H=?!7 zyf0>^*+^FY)iQGjZ09#gs^8+PT4r8>=NVsmr=P$oo}D^(zn`M&DfQzOe-)JoTw19= zsIy~Cp#=I?e_ojS$Gp*Xz+&}Zb>5+wpZHgUHRqGJ{2QTbB4;^k2i6*5s1kwr1rLj_ zv$&xO`8zx;zSbIjzRof@?7l?R|B?L_MNMXb!lSbx%HR5Scm?09JbX9byFAQiq|V;U z?@b6GrM>^_Bk8a_d_0Cf7sKC(;lnZf*D?I_7*;wsrSf-i40pt^&K^1?`P*ao{orom zS3HgD?gcCTS}fLC8>N@S+rdg7hj)UVk{!Pj!}Krde3*gYvOCQv&+bkGMcX6AxpUc- z9d2JJn9Up>VgrOj?JI)NB12?KAKLo?aT_JPom6_b?_awY@2YE!&)udMjc7d=ynS>C zY7?6F&&GtbFHP2%V2)vtj9NLuLv)NGXJZiS6feGzjTyPEPZK*9xZN>l$C8}w*|2uj zQg)VkzE;FJ?Qoo{cK|y{W4*7pNR;{3HKKIto)U$>&+-RF;U5)+e_9m2&ROZ5x)#wa z^TeXln1>XFpBKgcO`@1DieADxf#~a)2dD0l{B%*|J4BIRBHB(~7DdkNdq8flmDBvS z}lgs&b(DZ!^!&Bm`bC^Q_ZF zXJC)zE50=UeVgUqVfmXZzaUBj_o(Qbm`4`H{D3I-D_)Z{&V!=xP5lhNUPY8sx~u0& z_7VoC()NQWFzsxo#f`YBwTFpdnU@^FFztk}v!dia(328R3a=V@#~w?r1G%_;hh%|O z&VM}fS1w)N zbI-~(YgYG!BfWFZt6n+FPOP4LjHfkCR5ZrZdw=e}RE?h!{q%eD;XUmd1GV+II~)IP z-qvgV>Wh0@FD}nLdp^!z9HA9`(7!Jnu9RoZ-%I*Tv9%T_5DI`$hCd- z<$pu2HD)Jo9GE+=b=P%*Iz;nZZa%2gW#8rOtjy17UZ%j?9BwX#)%W2n?`pbv4uxrN zmOBlz$x zb)NesP%$$y!@%*LFT4w&~C7Ag-oiaZ>>U;XCmOGj^QTR1h z5UnS!|IRZb`|FA8=WTeLJN3l%-^a|<6W2eFn~?`SRVxm(4_)!*{O0#WS-rjGMtNU)74Ye|`yO zbk~F*o_gZC>R!2M7_yvAFjrsww(NASYI{SrW9D0DZe(xAEH-(tlsrAZekHfPt?b#b z@(scKHxiPbl|9Q=2Z=174Oc9=CK#7)OiV~zkZws_n0R%nHE~g5YVtM7VCIJV@9FJX z2JKxR(pBzDx5u5e-$I(N;$ zFjS%WqKC!TUPGU+Gcyj0f55|zBdYZQ@hhq!_=*MLd{aa4XJCCh{3E_q)*L>;_bw0r zGv6vZj?eqSRd+{C1FL*G{%pS2c=&3*iyqee=V1@8&)K=p6B7M;Jk-**VP^m z>ki{19)23!O!;^AeH+~A;lBX)diZa^n%i{p3G6!R;VIw@^@rmV6_L_iN!9TkC5(}& z=dPr7>~|`|$JH_X-WdL14C`KQr)2&&WB3naSaWVpN&Y7>tTxms@uv_MP6@v`hOdd? z_r~zX7_O{+h5d)m#`p(f`1>*Z(-=Mz!z_A7O8(8p@T?fVDu! z_(8DhbBA^Jlj?7We;cg&+F|X#R{iYovtZT74*v~U^{>Ne+9uVv4qpUT{p#>cu2d30zFu?>i?117#!}I&+{hB?MQd}c zx6NF1b*|!1bGCQc@@fq&yhUcs*;*Flsx(wQ66;f!*{7M+x?au|(jhjoaz z${iW0q2W6miuevo$9LH7Pp$Yw8dVNUqsn1p#CODSb)C2O;C#bOmK z3UIX-&^+5;XrApa8L#CptADn=NXPvp*|@(N*mZa04hpkKc}(E0FDki`C~_x6akqtjP}@@a52DB~6vf`#M7x8aAd0zuQOue3 zcg!6W?y>9cm}{qhBDoGxg$d;|8ik-w5G-Y*gbE5GXe zV8P-(QQX^S@qSU$LUY7hMzVfTwTVnBTqPVC0DgL9PxTiT5;XzT{Gv^t>r-X4&`BHpyo)P!zRa$x{ zhyh+Qs)PRr@sCqjYgByS#-nKLBrI}D<|T)>&)Tk=EDvrof@4ZW3J{O8)=G3N@Mo|8KF{*FWBPgJzO;}?7QtJi9O zv4@|1_rKV~zwMQ}hkp%)S9P`O6H%IV9)Gf|TSOruBYnf3Usrty7iB+XR zEi?BZ@BAj)Rp0rlmYG-Jy3xPu9{%d|Oqe!Aad?8C)@*1>tM>5E0B1?41D5{|=rM3J zKgoB2)z8UWeh*apTtk&G`N!YGFMc7$@AI(uJ3K7^s^1=}L?FKAlpS_oqMD-@zoHs~ z6&8eji-tgXRo@Oj!1pQ-D-Z4RFrSgCXAl3!BIz)1e?Er)B!-7#_-|ua@$8h!%0)3e zBZl7*!?(on>KOiT3~MacP5jC&&C&h_*x$qd+hCD@~zRgU84Obnz{&VC7?TPOcZDWik%HH@jqEtFhiNfD!`GcbHkBY)SEebzP ze)`3pf5!I2hxYVu5@p;~5T!wURFuI+zbO0xQTU2ijU@*~;hXv#e!Z&J*s-2H|GIBQ z`vKG^P*srTr#Adji(OS-av$hRxoQKi8hOVaORmG3@#PN5BCF)Cl=7iJcI?7q1@z=U zf9yCPEI&wIY5)tSho9!Zc=}y$snO)$e}p~%r{!_0+~?&TbIl0P{X5r~@XC(xZk2k* zglk@99E-+;=bN1sHx8#uZyxE+^^Y)4Z%PK=8A+7BGZGB)Yb*{;N*9Jw;O3w(G^x2T z6a){khx9um4d|sknem=X8kr_!CZN~o$xQTQ8j+cV%z4uDWF~tu&B$DU%=zeLJeet; zOa_@(A#)*mEuPG)J((6{rXq6@daa(!FL^Sp$h-!bi_vSdGOx{iXGGyw*b{Aqp|;FJ zBLRDFU#ED=e0L-<_+2oxm2>bd4-Tb-GY<|mw>>zNMRpuA4d|sknem=XJ2FkkOhB*E zlbPtrOh;xCGUuV!Y-J{A`NloDm7MY5(2OkpVn1&lnqYr#`s95V6X{=3TUU*~-FCpiP1-&NAS zXPtr8d25~hZXU*c&VRG7`i+j4?p#}%Wcib@ZxZ&(O}Qbvk=@4W#^KlFUxlmr(Dw34 z&Z!64PnHwe;*@s~9>V>Q(qs~8a(U^|@}$x>{JOZD$P}kA#!n@Je;G++zke(-_-NV4 zXNnIcGKo(F*-J`6aN}?y`^{s2`~34$1NLL*2e*wJd;a;RPV80ud|CR$YoheAax!?| zP(Dj|vrjZ+OWUw>bFw|Vt>N?Rlg@Q+E2jxB?hSV$uP|hD=n;OS&)#e4D;~s4XCE$i zWZ>tvl*a`(B6HJ&iO%9DIdA_^lC%1$;Fehloz>^eema*bHDn*={(;-s!(C**c#0>J zFVOcCzUlEV9=?yTr*pqj&Sjq<|2;nPx>=mxA-$5BX(jD5Pfe5G9vSxfOi~a)iThJe8^;^(q z-mhsP`mN}XxB9K<)9f`ZLcb0DMyub3KIz@mg?<+O306Ogeir>D=(nTaWcAz8C-ItY zLw`E@6RrMq^yv#X-GTlL^qZ~z4D^*(y3x;}f1cIPp-+3*v;zGO^e0>W4)j+APc+QU zJl;Tj1#>eGH%ts}8k$&Q{sj4CW?Lyoy^;Fr_n%8-HkX@&EOCDOP%81w=b9-Oi5&dg z_b8X&e=eEbTn=)tD<$D4a^HN8rtFC%{AA|)&lwr<&`*%p^8?!`yJ3D$1iw-af-R*) z_qF9j*EQwK$vcVM{~-_lY=rw9hLV^|pbMouokRLOhl>JW5SWu2q_)&RoFjFvj zRNt~c!<`kTjzCWLJ?zcz7zv8xli=22bM~t{Jo~l3YsbhM>|lm-xX;k{3^SH$dMbxJ zadZh~la-}mP8kpH5Bf$fgO?#+lb%Bt!E2=c;GU3S$zBQ`%=eYYQ7&|6LPItz596Q{ z(9_)Sg4}PG8>k;nq9=b$%oWd1crWJLv9~e*1m*SCA(f*E$Rk^Jc6>$k(g5}nF4aBRd>>^a z3_~{8SC*cz?#9sBkaRBO2@eK+Ws^^+&jRE^cW)WaV@EdAH?o(X!hHG-2ZkOXK24eq z6o4BV9qaWax=g0ip=vscvsf|+3M(6PRWq$Oi{G96Sfdy{kDtmk zePmOn53b)ma&Y$Uk@5M*O5+KSU&a-e@@seS@CZxF;rSrdCzSj1XfIhNCLQeEFX+kM zZB|e1n9{s?Q0ZS9K0V>U(8(s^33=sR<-Y-b`vxgf**@xz&|aNuQoXq^+xIxKpX3bY z6C=c-(+6*B3{)?54gZLARzE=b!{jyW{(&b;ImJ7-3?Gsld7;nd$$@;I>EnD0*=EA= zZSq-C^=sw_^nrdblA24~*YVI$3Y^S6G?bY4&`>*m-N3jh@^@Pi_V>1%8T;&)^T`XBP+ars<5Ax!-1Ze6Be3W#aPl*|1O0KzN@-UU4un z|GklB{H?ec-}{jITT>@f_dfpo^Uo^0nf!Isq1($7F&mK26i1hJ(B|a7Ju)TtZNjr- zWPhG|0DmO$?^xmAMA=gusEttgUMLOckA;zMF8!PhH)+ zM;2dR93I#GSV{gK-1;He_K?Jrp_>D-@&|jDh;b&8k9N9dGtNVzvM4q@+z28N>H%Pt5uaTe5x}H}keziFWo>kqW`a%9w_`h_9elYoT zQt%_T9D$!@2gxV)6YEOwbR`>DwvHx5&to02)kR`eBuEd2%Y zX`p-xRz3|#qrjvOV=MI1p3HbpCXGxJ_Dn#p(UY0z$uuG}37PZIYxZO&dos<)T!75^ z=w&>aDV|IQnO7lmA$l#I%&R?_7G$O(a}j#2p3ET@xxdX}&1 znVnmjU$^G|S#xq%Fr6y(N;o64F1(<0tg|xy5gK0U>RA)aTyKo%5YDWb9sioe5mRh! z)V-AZjb3fdh9nW)Q+fo8wbt=Q82Z-!AYsNG!QqB*UP$;R@ELH<^6v&`qeZHOxi@u& zhiQKU;a*SvQDq3D62TVtX=sx%U-bAiRDrPObL76<+e1Sis?fcsJS_e`4?9Uwt(}Np zQ4PVTEl|GJ{YSpiJ+9UAGSmW9<9{qaaV|t>bF@X{kJw3ZjTG zx+yb*R}o0Dvh}SBG-dPI7#@n@zl-4%@#>V~U`h;M62otZ;kU%_H8H$6hSmN!CHK~W zcamQE)>_Oau+r0Et)-?*~?{UpJFudUM_q*&cmF^;dB9sviDuID7$)hu&CI2)bHGlisjahHO>IEKeVFl3lTO+@ z)^>^Ay9ixE+14FGT0@imF^ZAy7CI?`r2dd5=KODQH2+AW=K>3*pEcUbgIto2dsRga~}t2-^dgF%GkRX?SuXjKoT7{TKOvq!E~lrS1h z1~*uKkUoCKO0%~PQkSZ=Ua=oHol4semXxa21Dcss%u&wRPDzOyd%fa>XP2y!tQ1jJ zwO%onTn;&zN%E7DoXWLR&VTdJkQ~{^s58i^es#*psVyS9f=e52&jfy-R5TUr4@akJ} z;?jc8VB?e^_=K|r>^@g=Fk(Yxi`_Zz$-N@?mb&lB)w@ZkXgx)H?3m9Trl?KT99)XA zLnGsyRA)FA&{z*Yb37`<8b4|tj^2Z%C3CO+T+AjgqcMsZOEFHOZ#-0Be!sz*WqdZ| z+cVeB=jk5WcE(7le#~P>CbONs`}PsixayAHwnFv&t!)8gA!m27Vs|i5`EJ0?1b6mo z9^2eOTL|xS)g81N%ge8_qb(EOsq5}@Wlr7P;oB0s!&m;wNRNAbQ@PEh4D(RB%a<%3 z-Rqj|8v9;X-O1|woWV`q@fzeS_q@tqEkWoP-(QONc8%M9ap$d>3wCp-y8lagHPQ8N zbLXw*pOf9pqh*UjGsv?aO06GmBM&6!6d!7Zwvsp6bKA=*2Z@2=P`0?e%)LOY7d*+B z89%aiLb;e@)=D%_VDB})ocy!-0|UzcQ>O8~XW9>*OXo^M<8!I?j-m@-^o{Y3IA zPg&+uOgSrr<9+kpU-?c@{^XwSDGpNGX~MU&{t)K(J=1>l-1tnoTu`3M{dlBn+Sl+? zso)0?NnI!G*G)=SJgyKW!sRbZX}QHNCg8=*7kbWOMNJ>Vr|;8T|W0qDX8WGue`E~uk! zRKoN#bzaNi0v|g(EdT2qSEv#}fsdy=EWXZng(~Df?P2i;JzM}E^04?i4;HG>{4ozZ zj;Q923cd#TA&WJ((A<&w>-u*1alTi1_({HZdHBa4de;np@;AX zuP_coJAsAQ#?OJ9h*}oTec4Fkl5~Yf$ZZPNx8m37V{Le{+ZqWEDA&JPnEa*rAI&RG z7rm4btmx}GduwT4^fKyTQG^Dq{xhO)V4hx-d9gF1Obj%V-!(6_NEG=yM6qv`DDu6c z$nOwEz9@?PF;V1Ci6T$sZsfC~bP{HWBDYEuxs9U8>5QoCEs7#%?hZ%pknqg#jHu*J z3*&AJZABXci2b7I9}va-AyN1zM041i4*5GoWxpu=1ETP$YK?ilIVpatD139)7=E|q zZ?ydV79X@&>luVo83?K~f{3$5HD(MHZ>TDd!{T(>B4YLjJOL3D!M|BQY8!q~S% z6uALW5N#Rv${mQ)Dr52NIjB3NLzLKmIS>3dr=aTC{PG)?$ zxy};wo&S^tNrs@4pVZL|bJtM$k1S>6NX}qBKN*+2)DkqOho9!Zc=}y$snO)$CK>jW zWTbwTAAZXlz(2_;Y)(13^U-i&5bw8;d%qKcIyq5_W~5pOR1t$Dbv=Ts&Hqy5#)`qg}^a<1EueeN^2bF+BFn-83fFEz)Z`M8#h<};YPV2mFy z?lj}r`HW)=8pkd%*sIPej%@Z`{#KRnOSRHm8>*lT6m`l)HUyAppE@3>|%6PV= zQ*#T<6BY~Q#I8cw*_YxSEzRROoX&(}*~S6?`RG?aG+;zTpI8+7rwH z$Um+4D>Z9#IpyBr$~;(VC0z1vYW~-l!+Wr#`5A@hdyH?Ldzu4q--W@g<;1+L?0v<} zuFz~cOE?EZKgfNBSMj59y9=+G6U81gH^V*w&21KD6-E>m=ikO)OSxe86J_{Lv{m*N zX@2y@+L37PE6e@@^AyfM{yb|3>B{`ni2Tx)**=oZZXcmujOJrzFn5)}&zje9V|~pr z%pi;o2SsnZU+}*Bz3+j_cVfmz%8J7@ZfSl@b2*AT&BL}{8}oM{=(@PkeU6>k9M3gsk@K5Vtl@$czhz@<)fABh&nl_K&H&sa$A2 z(fGMj^LAm`>+;e@>CzsX18?{IRFy8+?fj~8nT?@{=;(hp5Znx{-^&d;$LO9R$Oa7&Xqrf)A?C(?dBsD*X-Xjac$lM z?4~}+Gap+dFB0DhW4h2!-n(sxc5>Ue+^SMj7x|Mkc5xSANAx}5ePfr?Ppo;ktn@GB zK5F){Dql3_A1V3sZjIz~y$#rqdw(g#zU-gaH`UyHpYlTjJ5^SbQ<>+)pPFk`ew078 zCiBP#iZle5>x${PCV?-+gYZIppcJ=8y@OtDBUcqVN97 zcY?a5Q2Ho!;GDfQx9%6ZHB{D>D5({Q(5-QN+I`=^7QofzcTZsnqwXy%?P9B zycL%5K^X7j6B~yU)P>p;`eN&#i@Y)r;P=Rnp8sprIcj$!*#dd78^3k2_b(sTJ#J3g zkMnrG{|oZH*7&Fgr>Z?kb&^)ZhsjGB&wlb1UBYOs&!zoj^y!2BnZvIJlleHVTO3x~ zlCk?-9j3Qq^c$_dZ|-O871iEo?LXDLtoBHn{gL=5LA)qU<*!2Q?H0OFX8$m2lSAoT zI1jIWhSKIr+s|`;BIJeVS`R1SZK zI$?a*l=A0^L#2uG9r8oT0zd3aWo>-+ca=YijI&c^^#<^(>0kT?`BwXbGr@x7b%e*s z^j)yq+_sM^CXKKXFyOT>rXd}%B$DEDJ7)3u=7kP~mKIhWAVx!v@e`v3X) zpEhN;mel^s>~CRi0+e-E_KMs6yx1q~+F0iYnTceuTV-J!vf@90y;^&fpH#O=uOGYB zcF2FuF7X@TIeUobVTFGJdN&dWN*D24&^O;um$#iiWJWxtoogqqj%bTRm;rV5%A5V>oAkWjPsl9Pt;*%hBeb_X+7cLjEC`?GgD7^-VrlX zPk5$ze&e&Q@O*-Nt9W}ce*5H0F!T2@zg>{gtUyK8O4F+S*Gy~9(U$A~0Q;?9DSNA# za`RN>-kF6YxYoQHkKM+^3<9?7(7f zNRvZGh4QT)7QfBIvTufm#m{+I{7w&xzre%dYtLnn>;Lj z!NcPBdszG(9u|L(hsA%&!{YDvu=r1VSo~)^EdC)6i_fHxRblv!d06~Y9+vsj9u~jx zJZqfv^Oe>s#jmJ_;IA!E9b9X#d$s(yKy`>zI4?RbNaBRP9nOGPd06wryF5G{e8|IB zfR$IB`2~Dye$`>ECn~Qy{64;m9u`mK!|}Dg*ht;zFiu5E>!sD?-vz5aa9Hb6D*q1a?EsZ`ho1whd^`Meu*$Q;4b;sl zzYbpjR(W+eTt8N;+TIhc*RJ4nLuGx}EHSQFIj4F(c_l(s3(V4B^|A8&vo&|tLNjt& z4E2_xF*?WG30+ImUv@^yEp8j+&;ayD-dI`oZ-*d1oc7)aJZ|(c_6^ z=R4hG9eqbj*RnlYz79R?r0_$I-%UeJq0p1@#pw8Q_e)*H z4juL`7}rX(z4ppmH@9asVyf^5#fhc0riT}g12zWqF1>S2 z&t2jE02ha2iF=oOz3|S0)f=?Opm#MVOYUE~?!J}l*YxD`TK2!{=4+R(Ux~(smBHeL z^JfM242nIi572jqvj~`~WYK^!ZbE>xjD6Rbc z04~}pn*y9pxHG_JT;HE_s(>j(;huo2!ZpLTtEr!;>qPrS7tr4jy@r3ZEz)lmMPKcx z^wsxk!~81IYwempv|zDW`-i{R;{BE$6lJofnL560AwN;%rd!%!X{RXeE)vCEvj>2Q zPVMn)yPkDgQOq9~y^8*erCN{_&WK_@D~kC=qL|k`(K5eB6!ZH;ksq}58B33dUQItD z4gD4D6UCglw;Xe;gfZ7^X~EKdQOxZZ#hlqofVoq`i>RaNN6TE+(ixVTJp~KcOCkI& z`ZuCXl%25r)0U>kh2}G&xYH(zIkT7G-Gs;T4_K-_19I=EDDrxfMe;55*V~Z4Llpih zOM5Nt6GeW9DDqE>B7a=8i|~jtiIr}I-b8weqTgm|ht*$Xsn(>$FNosaPEqV1wDcKK z+&LwB4f%}mLK_Ec7K)<3Milvi=yjyO=o0*6=}F5!V{u0l{F`Z~MQ4Cq?m(#!D&oz67-MqK%@=YqW~y!tsx2r^Oo22y5ITs_}`a#v!5_ zZ;0-jT1yQ9uQT(UsQby?Hy?qB@fLIon*(9=r0l`?z^r2CQt3P1% z_lXjwgI52T=y=jo6#LIu{Z{IWXm1Gio4p{oyU6OBF(~%05Jq41kL1;-mi;@e{ywX( zdMHWQp0WDJt^Ns7!Wty`!yeU3vL`E=LBCE_Ywt<3?6oRwX?*WVBN{oF62&WlVaZCpiJ#=pB}Y;kGX%>h*(Y;OIsdu2I%nTP%W3OVb zi;Fb)&OZ9wD^~W@zn5jsTju7nMxA>vi=88=I@{*f5zU%!KWiVItlJEP`wm_cTU&Q) z5ifM6LUZW}|4apIxmw$e=Km8P98R!zg*!CN85FJaMte`Pn@jEtiuOI|3<~l1vYn~$ z)~r6Bm|uKIcN*#5pHvs?4Y;H8CuYsNz#0talANC#x>l50yf6gBlj8-%mHVEMW8EXe z8VhR&S|d#t`Q;xeY5iU6I$C3ptk&uE-M|^5bYW|$p|dzG&7EICbnfZq=-iXe7_p94 zb%sXaF#g6LetKOJORtvLUI>N3rD0I4tZTY7)A~)i5bkr(+Mx@V%s4;0eJ022Oh1~W zDE(Slmr4hhR{YRi@q^Zlv_E7Ve$X14+;8^whdB5BxH!$*^jiDZzK>)9GyP#4r@Q-E zv%F=9YJJ=I{GFx7PV5Xqp29kgJQ?7I!ZnWlQA&$+c2z0Ky<4a3UW3yQ=?v%M;ha6U zd6ayjHDQ{7CapD@^&;$Y@hN{DJ+!@?W4%{A{q8VpRw?rT;$hZxBXi<)TAuFa<2+W= zd7fRq{pVS?M330DKi@6A<^FQ6L6L_{{jWMp?Ld;Bua5Y@e!mW?`pcQ|>rIK&GBYz~ z#;Xctq^6m6^yMeHBPBO|Rm+`M#5%$&=xh#MBTrS<3QnM_xpb#^1b@on_d*Aw3=qyOYkn(K%%$<6eb)}lKZiXm{xJ`Wf84|3pZ2i$ zx-%wJq5aKKW~$C1nwysSifRbDE$D!1ZhAFT-wyZky~@MC&Ua<5xdBvB^_-P?xFT-y z@uy?>k7M|UF+3W>{~W^^FUTqDywl#`{W7hrbV2`Z-(%J0&}Gmc}Vz<}ytO$;@Ty%b&;$u|Gv=beM#3lY|C) zlamHVvz$yJhE_1I6MmS<81t!_9P{BOU%W#nFUM@&I~QCt--Kn1*)mPmg)%05V@SD) zIwM)nB%Kjdgg6V0hODs~OPP1`XYRrYyGY8uc4(yH6KI;(isG{Zq6w}jUL#&CZsm=h z4QppDWja?fHp&&d78c4}!MQNbSnHA(#2_t9DtRQFRtB@;NIdf(O zIdf)(&gTi~BbTNu=uF65QSbuM%UF*TMb6AuO%K;+g?ptB?zeI~MKQNW^bOSAqHhfA z+!TfE7+6$wsHo~nQU1)hyj7I(3qc8zRQ^~UB#GpOmaq8LIQTZpzr*r3S$;vZ(Vi8- ze81%nSpGgy28e^A@DGS85$jYW3AIY~J8PPYbIN_j$J3{1D3qp50T}a=!+mX>J%*HU3p!TKg=yVUBSe_wTB|PhZ>LvnZKH z`t?pW-rts`&j0$ZOT7~Iw^a8_XWBahm#@3$o|S8RgPCjB^{$+G-3>Rtc|&i{^1FkX z^KW|B%%0xf^{bcNt3#b}45*w;2W3|oqV(*jnVZ0cs}-g;H7x^jVMSY=ZxURNHZoG47^sw+1d)0KZN1>$w( zSaR{YQgYIB%K0ychF@1|t;hLKsVF(+i|hEw50aPK%Wt~*3jc|xUzeq!F8x#YVW|s8 zH<&sr@7R*7r>=Y+xyTUT&OXtw3gQEmM??K})s-Z-2}cGRuPX}}QrMhw_OXJ!W<{l{ ztlWb&#<{mySG;9*y>o?Y!pM*6%8A4<^A@@v_?*92!kGJ|R$?x071uAN4pZ7yly95z z5{1}Ps-t|RyA_ldq!j(CQ(kRQ_)mGGou7D)p9@*$zxZ$Gr?TMq?>3z9pZLr8$qmO} zAF|AU@%#9RI{wEEC;TV`* zbNq>36pH^EaJ$E!8RJt2t5BFKSVM+ocWU2>89jub-VuAp&=R@X*iyYN?z7#Rx@X#K z0I*iuMRw1YaNJ|r4p`IcmzxLDjcfMXa+ZgWwpn8lvfLj0$!qUXfIRFTfj3&=JL|@J z5Bnnaaq~#TJ%P?s@>X3;W2`i|n9QR5bTJe0$~PC22ug>Gnb=i6xR`%R?~7T_P`X|W z$cj!4)9GSq)~RZ>SJOSS@{d%!y=sHeg}%z3vV-L0=SwYi{mwhUzH(V7-d>F*m&35k zh)PM$_n&zBz132PQGM>iQs?eF!G8N9xq8}{-$9P0<48ICME&-q5sgFq)UQ(9C|;Cy z`gU=`r`bC(-&q27pDUM=J6}Zma>bmv_MxkDuSFdt|DdAwWfHv&opoXjWH_t2cHOzi zd5>R~_nCLsc_Pi5XE=wVH4o~!ZJB(yMl(LkdR2zCg`Az2XI+JGPHoOTIr28<*ICPJ z+6ZONxv24CW|F_QNpr10bl`}Sy(U}*8iyS;W%-JukCpfnf zo#Fa|!;QGziQAkp9c>AAb4HspF~MUcouS#B4bKG)5UDDs`Y8^X3TVF_65i> zwvm6$dWPIivmRAI_HD#V1M;1GZ{(Z2)HI#%BHuxGaY_`Xd?kGH|9HZSy+dv-q*-wl zj+cha88&-<_y5HjV>-9BtaH)-7Hf=p+ezzGTAz}8Zha~dRPLfXt?^?w@j+ahbnU9d zi+@&8>xAR5C*X~?H0RnSD|=28Z~w2?Dbt+i{Exg&nbtd8|IX`_>0Ee@xt?{(m*Wo3 zbaq?WtXopnRL&~vma9ui&Samo>y{@U;oS<#tkx}6=2iYvVCqAf0q)bxl%}X$lh=k+ zPPJaC`qkuB@~kW43F?SKg8UhnH&H6GyvLz?3aIzKN4@r}$+xOcSjP{tg%RK06!tm3 z^0|0=55u_|pGR?L(>iM0Q}}Y-ai~6l`UYwTMX%@QtF&wUJk87ambNqVD;`guwalnr z;G0=ghnd$Sgkq<*DoIj)R^J8&KvE44$IMe<<4`xV&2A3f2^V^_a$m=PV-*MvkRhp znJ|6M_Q=5a;LXvuKE|8=oy>+RJntpE6%E;^{Cfm^!eY${AD~iLVDVj0ov}Dz@kXfj z!MZizN5FcEHE;R<8M=_n^pwT&?-^w-qr&?ZD?{HfJle17^IJSD^X(p1{7m<-_;Woh zzV6TpRcQYr4~yUBVVUptur+9i#^mBxR70@af)1$Gh<^*JZ->9Y_bLy6h3{P+{wm*x zJp5h0RhFH3V5Bq$Q0@Nsh^LRU&kL#KSCq~d(K(Hj>Z~&n3hOX76h%t>=`kE%BM#qe z3XMo!Yhq3bYi-Oa;ZMf!7h+gr5~n23#mJEoPLmg%5^jm%nKAsf820aolKG`E{(UjL zHHLp9hJPEZHzj13=45_feDY6=#hNcw{&n~;Sozgq8fcS09oBg!aD^_!`qq3wdPpwAS4qIBrE>`e7b1o)!#q2xTbCPixd_e{?@& zzvzsx&eZ*mYNvFs<7v^$gP@c8LiaJMO-xb!XqVnG)nRpCy0I6P-u+M3L*Wa^`+Y zzL4AwQRD_hk=rMl34%dU0KELo{H@uOJK zR|wTuaviW`#+RGxEJ5G-FUPm~P@VjwP7nttq4FPD#mLFM>-fnyMa-x}bX_P8k&=Dl z-(sokm1@NB^zhUCmyCW(Ej60_%gGT>Nk(cNKf;hVfPa!x9606Vlyokv;@ytihn*1A z$%#^wBXtzHE<8`xFl)#PM~0u`#J6t-0{`L}boQxv?|2dOsI#t|Q};TZ&Yz*8c~reu zlh+&+WA9Wq`xxxlUh{MfS>_IyKX7wRdB*-umifJCzAD=HjXdN0p=eHk`6-#HXWXuQ zq3|o7q+&^D&h&?z%KsidWkzPD>M`>Q9$&uHCCDfrDh^(bHAt0HsTuq<{?nSGzE%E( z+o5atg(@7cMTN=o3yxjoJLUfdV?JVoFS8)5UmAj0V0}AWk(K%CRIYWuyw)_GQhs`` z15jb*8>fVS%>k(JBmBDUxBBmo@tx<_!q4v8Pysb-hJ3ia8TyPm&vd`nS2!J}^J2Q9 z@jh6*GkDY0;ho-IH?^uW*HP7(!%f>ik`va?ZLF1K`EHvM)~CV?gbBbB(F?=$OVL&p zz@iFUlKR)Q$+S5OEnXz*wL!oaRJGc$KF>tje#hG|H43Wx@rubYl2b~@+pzuU`AX$q zO7*woUHv+iTn92T?Y5vPC{kkkQn*38A z)K?C6qlw@0jwd;V%_%1rZ<{v2hzud@2YglT-I=SETyn*7-7rATEtV7XWx$`pfm-dy9mbE^{ zJ)Z^cqAhYaYWI^PnSSn6&ObRaX|Omn3HeF1Zl$NdERYrhZmGM!<4_QG`;lX$Q{de zkLWGxN!_n6%@}-gWD)*p%&=~RTRGO;=6!89Z#lDOh?^bRCr4&*&!OH+OXBw29QQ?E z!Wv(o_oFT;%?t29@50Z({s4ceP0nHWJmg!8+;!Q{ouUQq8qM=AT=({oj?DIvx!LXJ zoSD|FB=6$w;8$_C3;PIn19tsi_TC4u?&7-h{ayXJmW4uZuxMRZPJSjL6^TQxjZK`^ z3D;nQX$)M9A*S(GSGHuVAX_)G3?}PM1UBFh6GU(llA3VSIEkCmuG6x8H0AB8#Z76J zwr(IPOWpKJvI_B%)@^t#eUG>7=R1FXcl5J_Rhsm-%$%8N<-4f_ zuCxx3UuE*C3LfK5I&}}V@}`b_Xdx`+h4MjpH49!kvL})&t{OX^cimfx-gklrs_Kgxcj*$bLQnC4zj_KuqQR@hOw zIJOwt{*T@XE#*s`4Y760MmLVqoixi%vZA+dDBMMT0C!>h1?uBvEE9>U)rv-kgH;#QoVFP}ce8S?%6 z&>4BWNZFMvFX|7K#|p2JFjO}-l*kwS`g~Tn#vME5-%p-x??^Xi9l`s5!s60Xn7i2Q z=S?ZcKR}^sT+sL-(-g%9`af;qz~e2?wEdlbp%Swn7nQu%BYSHMt{MB*m2j;AN!FHZ zT;$uDj2W}#=5dy*4DFLJB6`WbF`bL#bMOB_aBD(tC1=!RZ|lwpV@GM_q{O4Kor&yy zlk+d2dU00@zc+>NPvH-x@Ixs)l+4`=@`kh<0 zc5Uk1+P$;qJ2d9YZb(Op&;~TjTC&f@Si4JLE<|oh`$j* z+@BT1{|kc9z3lKN7Gw={y&&n@B1m{U9efa2k8qAv?R*u&`9k6U!g<&M z!uAGsjY-eLjuBUpvXUqcpii^&s`DLAb{cau2ul{CmC;YDfy3!cA~d@DTB%QTQzjP;3;n|@b0=p7cO@>Dc3S~GyRvO)MGI;G7U zPnVvDy&t-*o(Sma1jFI*2y`d0Jl#C(Q8M#}yH1l=!S6F$#ByC3P>i?eZ%E`Gs1T&8b<{FvEzH9%Z)={0Ew{tkn z&3=5B4r@N#g@oAgBfCrIhoPg|Oj*rTM|CE9NM0Xw%M|*c2LijKI;L~x@g5<6Vul=KykI9&7Squ{a={ng;o-zYoxUjl~naCQG1C_8I1<{rAf0GGSw zETQ{QfXjVPfGd3Idsw5IS2L1B%b|GgCc7b#rj;Ek&IKY0WwT>0*e@HmCPD}}!=g?FX!0dVQpC@jtEKMJn$ zYIXR1;3^-F>z*2whsTlYjPPJK{qz-Ts~J3*-dk6m-PO@MyAEKi0@XQ#2fA}CA6Q?g z%>~}=w>0OxhxEKYy-<*vz|ZJ)p0`Pby;hmUfvTB>~Ed zX-Hib8OpTYSdu9UKFpW|SLP&$l*cf6ewvFH1luTgK^lCY;G5hXFStMI+((?d4L(=ne{pZbT5erv%Sqo+#K(o1i`_yt#tJyF~DO+Yjk3SM@i7>Q@BSe+a4$PrJ8^ zAic}E4+$bTA9lF%M|ZEz)J(Pa`yf1cBY9nhButvqKSG>2@=$YnfRXDZ-;*?h`yih3 zAK1%?Rz`id=)LoFbW5O-pOEe-xHq0Z)gR3t3eMqi@<89>uaTeV6yFv66rSj14&cyX zKh0mc=~r~nSn}tHkH}ewMyA9M-pcxx5uMWJji*bmIs7eji6@9Xogh^wF(sIKg+$j~^WCnG*`P1V3ySQ0E=Jab0PM?3u`IFwxO~2#0 zT6b3tv3FIrXFdJihIzBFQrqi@4hP@E!FRFty|;Mh*iihjvG&NlS*ZI+58L-t>q>XA z&s%%bE_}1_wC~}j-tA=FDv`&-vwaci@ce5Z$A72aFBG2w&@-0S_mUCLh?UU0Z!BgP1>!Mkds!?GM$X)yzy}ze{W6rvK8R?A66?TTwS%N1L8sb*B_2Pt&l=Sk$kgD|bh2hGJ zJ*RzX!}A%+c#@<1)pY@rV$fSVc?Z4c0{PNLrWtt$T=hfu0(A>AXbcM?4?OGaj|)P7 z(&4W-DA`-|O9Y``FGx5>-eGU2?C>E$gp0inf6(Eoi^)Aivut0Wy^D6juVYU{V`QC_ z3TJ4hk}Do14sSG$$)x3q4OHz1u|J($@j?)m!trQYu9%K4Emw$6cHVgY@>qm&#Y^xP zW0#gIR$wO{L@%R#bmf^ha?|e@9Q5`&j}RKs$owL|P_7W&Oyr7w=roV?#)l^uMx}Z2 z5SEfFs3!DaQ_B?_aQI)idE>*Qh4gp#)HX8`x#C@MyfnWE`C+lyyjYaaU%UiuvLzS2 zd&c_Cu^39N%eHV2LW%K9_aJPHjqb$>@!W*{P2ld0(G&8h``t>G#+7Im3Efi= ze*gv4wy1-RGNzzx#Z{$Ym1^L*ISAo_L!Jz~Rd#>V_^OjLXn{x|BFLht1fn z_!{!N$GAJto;-e`yFZ}Fxh>IWL*Au7W zGx3x!n>db~Q3uZrN8lAd3wK+8;l13f6e*8S_ zB-4ox$y5#b&k^RPs_w2=n9QrMEf^K=tSa2UK|d@iUq427O!zm9|95oC zqS8G&8&4b`n|K*L$616e=+mTh`ZPtvCE9FhcUAsGr}`E})^Cn`L2|*pAa})97pX~g zUk!kB_>vuUx4CqS>PmVenEL>V=!_8$VWT7E^o8)-Jfik9G?vN3!^j^zpNaqA`6%8) zp4~MedC}InA+-b3UN*QkqjnOF{Mp1%)Ta0C=RLFN;R)4Qz1Q24-(6jqe|n;tzie#I zCHr9XSegH>@jDegU2d~<5;OT@$1}8xp=i!{ zeRWS&_pS4Gyz16-nf#?=^@TrszP@^Ubtq~bXNa4(=J(Jm9J#MbJFKo8IW{q8WZ(D? zq7CC5;h49CwypN8yV;c|?^XVcd}Ja6ze-O_;ZEG5c`HYrN&Nl5#COj4Mc9jv^M0=~ zx{t75EI&N)Vu@dYcZ)~%jm;|GS5<$Zw6%;3RU2r(_4FYOqbD-eYbRC?e~UbO)A-r( zo+^FEyp{2{(2u-*toeI)jMl~X@Y_4u^w*yNer$C1_$Nk(qI1SCJX9IIa1V0_=<6%4 zpQzH7=@(j}>tx^D5Yq=0OQipt@w)i#>dMNu8tbupwNja5?e40s9Qsyco$Q9Z-Ja_I zAYBnUxaw2ti|35}KdP_f>mShHG*VY&|5V1xcdLPUe#fY0{--^&s6?F_`Sfw!N5N{# zcvPXhhN*jp(P2f`l)QYdCBCbg$*twSpKHf^;TL^H>h$}iJD7PJ_zq~I+|v_7(HrGH z@2Le3Pt?WSeG}hNRUW+xPn)2dHMF~$DeN9QtolZqRee*KEU%Cbt5ZBDx`VPVjwAZa z`+NM+r!>!rWk>zw`x1C$?E7X*?iV}D`F{s32UR|uNESSwNKv?;HOmCOUs))iHL&=t`uEmrD3 z!FZrDm?}>gPmTR=Ihrc)Ng_VP&-70v+)H=R&kRpwsl!-vY~9XLqXKoOX#1*q@+;}D z@+mA~-5HCJ7IP4U{b*R8w$hWD?(@fW)` zZtCvYeAAZR58m9jbz6V=Lj&6fcieL8&f7kmU$pq5B}*@U*RprN{hbl!Rd1@47@bVo zkPdI&`|97ndWrS>b3ecQJy^?kl&Pz4Xw1%Pn%#U>%Nx%AiQF5{nbUgiPyW>0pSJ$y z{Y=~ZH@!JtaNb+m&wuOBc3kkbw=aChh3^y_#yz}a!-`p(qEqkY*fhBF9q+X#taVFA z2M3rha94F0CnU5^?d~AaoC$Mv^N@1HHj~+L;_UaL3zz&0X6)3J#JryQIvqt|>^-#f zq0VH?Jl12<@(}&p#KO|kUpQmmKv?KeBz?vhv&L+#th?q~9+!JN71`s+B4*9k;x@j8 zfxGC37znMg;nj4*YMV>|!C&n~QESZkqalX_5~DjV zC;QJPZu*$Xdc-p4LwTz8g7-OGAjj`UesWWp$bBo&8@b=cPx$~Ww}7iW);s@^n?RY>57su!v!?u66sdi5ZtUH*xNG~S-d>BE&&61pb%s?}Uv|yP zRh_!eU|Y|vULEwqyoK3s->M7?5yr-~F(IDpTRF0OfA>c!2GcjrL-8IcU!KV;@tFx{qJ&vz{~T9fE|vPWI5N z9V)y%4(@eupM%2=?sw4WheH1>%|v$H;}n;o`s zFxNVX~aAVfcElnm`z=y_s zYZ{}s`cDHJP5+^B$(lyfSJmXgM$_jiY-?=z(p&NPQa;olTEhSm7|Ctor)JXb3?zX$ z^)B)z^PYhxQD4N`Nn(VX%H(W>4{un4Z>6w&!jDxHtH?` zYJE^AH*GCP>zC%=eZxh@r?Kzc*x%omzO8EQ+Rm=-?#`Zpf&KwA+cF}NtZJ-V&KzSn znejk-Fses7PqIdk#i5cQdn|*3I6f%IIhCgb5zvo2_=+Hdy4GQ2Uvh8@PFDy#kC!VH-b(De5q}Dkb!Y=cFEicV&1&2{52BlH?`A!2@KzR$ z%s*%EW{dS={`$BCL%HHvkSdnyyQoIf$`y~1z~d$)`^Sf;CdTw*#&X5G^NVME=Xdu4 z6W1iULVD&=p*Ti;X^!&yCp3OjZJXQj514O~(|nQkW*Flc_nS+RXo_Z?PV{k3bleq= zOi;)@Jn?46M7Q7bKO3OcSkHJqio7zu&yJU7-zUdo0r)2rHG}6V|9P9r1$^)5vWp_jM9jx0INypkbQFY^3 zCRcd^o}O-rerdEmsw~JvyCvpT8%{oST(VZCjC_N&2J;{sP?dpW=M{0}~Cy4@_jfoEt-YY|fxNPMVtMjyy0SxoK9;o)d1! zS4Nk+yk*z-OQipcSFwI(?(a7H3hTzt*V=6KsR^w|a+8XYoub1=-kT?T@zFuvZz10L zsC9HL@x;VOc;EgYYp9vwE5{m!XS3ejTh*E+_3}CKC>}gN+TRFyVN9ehJjkBH?rN0Z zOB^?j)4t65U(4{FwRP2~LQ`UGva&a^W4$<8I~8xV-+7Afzfr#8YZW}ru9T|H$ewxj zW}@iMs?yd*x~0Fa`p^i>=RbK|c_kjjtIi|%yrSteHxxctZ7$taon5}0_0zo*M+hHY z#(mx$LCy>BmH!I$?^mcJUjEcM`-AwQ3{9LZ@TmINP}p5%e_vwItd6<+SHYM#9?=@2O`U&GG6HLJTKtSp@7MSR~5UCiE5Or7?3%3uFZ zyLWUs74tA{VkwZaF=NwQ;7Q)!jd*KU^)#3Nw7p~C@;PIwuM5cchVrK;V%G34V)H5k zWcX^{zAvVEpyj`n(J>hCvu0kh&#mBRd-%H-8tohcXbKX>HQ6S`+W>CVU8MG%xj zRNi~8$#3&kZ*iQhVai(jbduj)osb*(u5ju?zftA4X!Bnu-%P&yaC$DWvcH$pKT5gX zgMVLcYVV`uRr>z@miS@Q*Tm!teUbTnoctmUC!&$z3GIhvN~~4;Ha%P!?ck0K=0v0Q zLzHRxfbp+7OZ{{0`ct&)J8iqp?dNWg`zJCN&lzJFrcJ+p`~u+Ik^4;_q&nOblTWEM zvM*@bHSoVQX}+VqVbe(LO=4r3ioMf)9r4+wYxu|{;cHpTl^$9sLko8v81WWy8$Db@BWhVf&Cx!2&)er zC(IKbp48Y1T~uOh%75Op(+ur18nOE)+F!W|ziN{W)z6!{z%o>G3%JJNow#KR_HGo@ zJ{TK02{HapufF=ZmV#*3jczij6HdYnayQ#B%`F&#z@!ezP z9DAwJwTzu>Z)bdcfU@6RAN>^NUYV20*VnPPrEkXG`a2XSYsSqD`ITdDSwz{!2iVKq zJr>1x6W?{?<=laZddAL%+}(_wQS+d1?3=)8%gsB%^@eu~coX<8@J8?)xW<{YlfB1(HV}SDhVajvv$mb{2_h-o`KL%wBm9ITW|0Np6Fw+P4GJ4k4 z(Pvy8?V(+6jca`vea^VrfTus~=pPB_(|w+&-REfc2DIHl*xTXv=9oHOzGAE{-dDYu za?0fYj{JU}bY45E{o_A`<}TOIuAC;EE@&1q9xcq(#-jxn+VSWORF)&O12Wm1d6^HS zu9`L8cA$Puu1@kfPi?~grm|Q4mkgO%{=}Tj^4;~)VW7`2??PI6Z#+&9P$WNK5%$P%eNgpElanR*a*`;k4`G04SN4{SaZPC%L3265Ov?`|;;9ujB z`r3s7-R>0KccHtMyeN_AUjQx#t^&fd8LKr;FO)t`L3^jSjH?aS4cqajsWhzYY>rBw z9?O&}bDB!h>9F#+mR)4G}LqhfLFA?G)-D;LN9D|T`88RS;^;fh3HBX@& zq#MG%_xP4P?_0o=`uj%wn0A8<62>*mJzm4y?G@$gtMosk$7mB3#x9lbF5I$FW&A%< zXTBPgukJ6BK7__)rR5M~;ICj8hPw>E3R8Vk{oma;yq7-po6!6bKm45_%_mqgIDw3R zB1eA3=z=i*HXGTM_!zI~hiqDXSzYbYsXL4mFJs%h2OO``>G8aVb&)yBxa4i}e!NJ2 zcpmk3(|rGxVQOd`0RsWvhPH=T{i#AawnXui+_ZW|1cG@j>YBfY*rhX+9Fg z+%*^3y0QX$(Wu`n(r*@XwSMz}b1Pu4IkK1UA9eOBuj}wP3vExWYxdRAztW+tv4_%R1FzhyxE%zItMYsZXCTd@5|RHB^9%A=^+Zh0tFkOyMQ^Ia}xV z)7Pt?)|yLE>ooJ!k7Uj|M|m<&{a@04;A()z5E9G z-UKWHcK}m+Ia-q2gwqtdJ{!$LJg2DmY}~P#`QcRb!Mi<18OTtcszbCfO}AN(BTOBp z3CEtjc*lD;YWu%a>PGQ<-V-m1ckPN_!+qIl+!tLuMH;mIA6%%LJSWjXL>Ek{@nl{o zI%9O5&dj~7{iwb_< z!{cmmn7OURZG4Xh?)1IU(FW_Pm3HkLXgspU(pLj_(My-YnoJb)QFfS4eTttYfxGCn zCvT1AcYT1%y(mw{SobXfF86&*2&}Ph5FPL+@x6`j7RFL*T>1if`EN-w-G-kFaJj#P z6l+ZqkU_QgC-<6ZtbOuz>Ydum@&hBCtamzGWvsoom4Q2RV$&~qE8)N75uos%6utvo zVa?^I@Q_6lBl=JCJIt?xpWMF+RQ=GLMfelIR+6dv~8DqzoloOud7@(j~7XsZkrj% z1Ff~d`(V%Z!OqQnT{mq{wCvb3F7M!JBkdU{>;(#Q1Gkk2jmDdQ{m4aNwcwmqoQT30 z&7Bp21)6lHgmal8niO*W?b98kvi2yG@h<&7!@MmJ%40BEWxs33 zG}FOb(IT|9**2XVaB7HbYVx>~yGJu&#DwUwFjPEL_9S@V?sMH`O_G+$;)pUMxN0-S z6FTX2xCKnZ$rNnSWo|S z2snRX6lrW0{+QfRL^&#Z{A)~>{Sw-p-cUL$cp-fm?NM-8a1mpT;9~j&+NE&ats*!i zhmb{h9bQ_if_O+_Q;4jpg$9j3E7h?%fn#1SjZ4& z_!ES$X9e+p(&4(lQEx#F1Lp$|3WvX^1fhGy;d2R7e8xb9-{IgwK|1fe!;8TAEc&b$ zBs}R4nshq&l!LA6!wEkxNVv;@3b)|kY6sUiSQI3lbq?Efr_V%F+p&pgX@5bZ-ax~4n8CIw{i!PAe)}rfNCocp5O}lX2DBwclb$%x3frX z!WV>YwIFm43ciPOa_(HdAGKY^x+-NWI9HJTjvbzN_-et0j01x3T@hT#I46j|X9e-6 zgQarsaBz)-TLj71AqV#ZmEH#(Jm6r(!GjJSa_|vBgu}xQe^ih`?J=aV0j(Zo+4*tQ0F!PyT9C*Ow!3BMw^h~GK<@V{K} zYRXLz`(bDQxPvb`_%cx8zv5ui9E;~1BGczWwf3tyw!X_N4 ze#XD(n)sdXaGJF-Yl5(3p}1t;&QJ8Gqsv1hKa2UvC_Jq!fNqN?0(v?@y2`|CIG45y^E5-F z|EF|Nh0vg#9NrohPjWt!aP#3A{hNV-8SCF%{Li@4a-Swy!P)7v;c^*kOG^squ@vsB zGK$zW6V`*^hdtKH_%haUv=*eb6s>c7f_Dt`?cGed6q~b$>6fEoQ+7mfxH)@NFg`0= z6|6L8)o(|+v$7HWa&&TbR&UEirL(f_g88$uM(6l&b5`$SM!Dwf7Qw@_vOA4?b9SHL z$gFHdure$As9-UheMYdgVbF zvs(mN`r0X2n3WwCES{A;D0niPeN-?vD|O*-;`Y@SUxLT6dazF?G}t@XLlNR!WXP$vlYPt;R_aLXO9RTJ}ayHpretd>`Q`2 z;a?5C+LWCuc(N(mAsEfhYCMZ_v$JLnd^nrkDSRZG-79z${soJ(vIhlAv$Br~7ASWE z&&s|iSe>11QbRbJ&CWG&R#x{tdvl-bp1Of^vHWFVJMbYOLt^w{;5y&~z&_xw1NQ*= zWru-x0uKT20X_*F0KN$90lotKEKu{lF9AD%Uj`O{zX8;I?xVmma0s{;cso#fj-LQZ zF8T^k^OIi#9s}M5d>Pme%+cr{1a<)7A-fFtMWF5iy8|eBYClkG={tc#z(;_RuO0?! zUP~IXBfy)0&jNP?Uj%+0sCnkcf$AeZ2aJKA0_vO*bLVUU_!(dy@K=C)f&UpOdF&wY zS>XM^SAd@c&TTMvKV+8xE8wevUjVKL{wi<_@HXI1-~r$;@Mhp4;C}=@4%`Klyhd4M zUk2U{%r!>Qe*)%#w*U*kj{v)YUj^<0ZUycKdehajJw^bIk&}0n-FxD4+t}3|ciXv1 z#G>Tpo`HC+9{B%Cnsz#LUDX8pNlaLPdIn4S_q});}0;-%&32 z4-EEnD=f}7B{aNpYY2L`miv0P_H45xk!CJ&f4OI%%RGFpASO}hG?wwVbw}S|FJ9yR z&9PbijNR+D+|^R#$Z?@i2Xt76Z#?8wRih=<$hR-+xlZyH7PIR2Ir)47ZoN+ma#KQREw}QN`gV4 zPgr-(QO#mft&TVM(_ps1Ccag(2+Gm+Z<``}qh#444wfxq+wxRiWpTk`MqlqHTVlGR zD0Zpu>Ko|k>b@-==((wPI}MH;v-GE-8R)&GYp_Qws;zS*9Mh3!W8bkr|CE>#A0Vp zk65d@(P3%Ta4I_=kjZC-?`Tiqg9Xrh=gQTS!mxJNtq9{XcB?MyG$j%6VC*&Ur|s5G z_D|=-09fPQ;-1Z#y%xa3cuf(?XAr)(bH0-_l1YpFqH9P`i=5iajF*qMgkxV%Fu?=aGo5o91nOs90*tEEFYu8P^n>q*kJ2lLbZ@dcQdOnad zVgEY37v87y?+}x zyGfcobUHd@Q)?-DcP z9PD;b`^>T*ba0o0dmP;7;C=@WIC#*(M;v_A!N(mu;^0#bKI7mq2ah}WqJu9v_=pH>*9o*&M9tZb1xZlA84jy#y5eFZ2@Nox^IQW!<&p3F@!Q&3T=-^8Z zzT#j*gG;}Itqy9RPyDt!NHdv{nQEV6W#E(Gj7jfPtf5beacSX4l{EcP6YzY8!>%!s z@k1k8nYZ&3{pskIKqEgPUEVW=z5i5St|iq1Kbb!9hokt@$RRq#x00X2Tg*>J>ubx% zH*Z8I_v;+=V?>qxD)q(Qh(^B+4to2hod2>=G%|hsNJH5m{1Khue3C-A{bYOMLzDJb^#EUmRJnefR4$XMqEefsh%*-j&Jqx}(NATsg>q&Qj%#(xaEV&ZWFc zrGlqO`qOnI_RO+$Ycnz5gdL&#s&I{-vpd@?o!Je_j{^BoM%OsL*XZNw&imFPdbvXn z*?p*rbd_z|3Y_U1=InsZ5JZP7qYv;MIbHl_?ufk1=O<^$n~L|IJGXT2IjzI@o^w0) z3PbwBVH)$;H#z@o`_B_ilzV7mh%+8OAAVMT9Sv=`xt=gY$2rR+uioUsS6PK;6v-3z z&(@FA-anTiy~v8@tcK`XgE+7^{H6U)2Y9${soJ%S2t?>83ZwCJBIp@Rn z8m&q9WPXR^yuW`g_ivt)Is5_6cN|*d8W^s-RSI1Js}@_dUOs$ z=LF&IM0MLYLft_(HC>eJE|ow4pEk3uj1-2tw--D)bmHP*ct;BqfC)Z8_0)=Xoh zt#>4>Z>-)V!NO#bX6|iUY5P?AsO5qFt!3^Ja?@!|%(Y5*Yo~RH zaM-qq>lD=+uuK=Y$VOW!va;Sgw{n@|^;ep8C;*G8EMZA4)P;^6p>AS#Dp3*j8mu@O zrBvt5EszCVO^(U1bE#Ai*Y&@T9W?RcR5wX$r`z2KY?G4~hSV)aYnf0qD<`dM*K9)7 zQ$sRoh1>;V*!Bv!(s*SqsUHKW+Hrk@m8}I!4&NhpCI*KEAwDXI{!&$tLG1-WCK#=h zWn0Wz15p0^grk2`5qt~#@`CN?A_|_5ZkXU(`BC?zb6Idud-~G79CG-B4%ggL^hX6R zuQECBL^nhbiUcqH944baGi%a`z}Vw;mnmr^7yi!|&e8l0yG-*rnr|V8 zBO4RGWNiJ`F(+E5bAEYyew!xSOda^#O6+u=n{bl5$|a}DPI9yO(-~OBK{zL}Iy253 z4qoq}*BURA4xPcx@K5J(rJEP!uN^ZoFg(;d9!#Fanzu#wD9l{$&aq`KOy;1Y(%DO= zeN!s!Iquo93{u2%2{^S}VHnzL7`Q2R7oF|N=9E(HeHWY@=Rk_i=qxZmoX>0hakA}^iaJu7xqG^`y ztKI~XUzNT5=v|>E!c^GUpCE|n8p3F&ttjnkA5Fn`NATSeeCLAi*5G??@ZA=C$HDi) z;M?b|&%+Lv7d}sX|J~~B=Q`NtVC>*R2ep>P7;vuA;r;rsd>G=_q?0I79 zaKa>Os&dmkE27=t{962p8XnM|IuAC-oc$vP?|82{(0j@}TEpokmB*?6KNy~8PW+z{ zd#Y#f9J-0Zv*y$@!4fe#ymMsFwB`bO&0)0%T3)<-R_^<-Zi*&Z7ZS z&FLq*&k9lGMMk{9XumjixMUU0fmx?Ca*O&q;YA?hn6VSy%eUrC-hGg7m5=w2kYUy& zJbn;-S>XO(_$~zapYgpqz`xJ8;`IJoC`-xMl6e*X+rhU4?gj8Nxaa3a@Lk~h9eo+x z8-;OC3co*vKLoD&Re@IV{WjmKPa7Qm$9#LE@SX>6p?-OO>-cUBaD8iz=iM*lyFI|K z;}N zG?DiCj^bD0{dCe6Y?=Hlxaz-8-@Cyz_wx8E@O=S(1NeUM)h@h^;NFP8GPv4{_y3>3 zkAtfYDgJv?^uG+Q_OsBr{~GveaE-a5*Pf&|3jaxPwI`px7r^@hyn(oO2KWN-JpukM z@ZkX0JX-e&`|vh_9}4i>z%_^S?wCKv&9kHie zQw!FeYIll+YgE!5oZ3Zt`bL*4QH-?8jcMObtv85CVLJUhqZm_L5u5VJvDWfXk*?kE z9h`jD3gC2Z@@FHT*6TFRlb7Iv=%#cq{GpQF*?UX0;<~FBb*{UyxXP?R_HP>O8FVXy zXuxZ6GF*NOvc$Yhi%ObN^$T;*B=D5LWg7+_grv+x?V6L=U47yx{~d71!l?>hL}18r@~`=i z_5hj$@o)ARehxVu*{5wevX$U_kedYGi@YUB_>zqjzVxqj?p%8b^Ye_)!dD#7a;;l_sO{>J*K1h17hYHdh&q{}_ZADH08DnHR3fbNrq&a5r5?)H7w z;=*+|=~z8ecz7ZjV*MZeEoLwi<{n9{E0*2;wx!DG`Bb&TMc(XYeNJ!tY90P7Ze1@z zXGnS|`&nz$9j`{$YiQ5JP~D#IwUqX7f8ZYY;Vwh`_%%e<`R0%V&Efs73iE3&%>N^g zE*9&T{(j>M>z6BVOWy}6eXRBf{?SG8VKb|lc$&53@3Xe}6nS`v-#&iI&zB+6UW&Qn zv1s+J>a=c28l!Txo;sp+T+3$}J97`Vwbz=pi6f7F>D~$PJ1Z8AUEefmVSUrw>q#6j zI$Fz0(*3DqewuI(m3cE69WC9zsJl_?3-Zf7lJJp3_oihC9W&^-@6p7gdy&!q8f{^% zxlG=cb54(rd})FgmE%v7C#~d_PkSS@vGkU>7c{wll{nBvqpP@noco*4OdzfS(YufAFmT=9f=ZWeDeTa#>u~bp5Cx34lzZBStPLt9|cWiX|Od5uYW7mSub#C;JH8;Xq z0lp7?C+YV|H%hvADu--LS>$<#V&tKTz4$fvWJ1qc_8hu|c^`50Dd+C39i%?(4C<50 zw(Rmvag#RI)yw05MLlBQVq9+)e87cql(Nv8y27|E2!q~#JTBgA+5$RmqgwASLZft5 zD7!}N>hR~S_!J(xYbSO(e*E3n;^zwi zKf1Sgo1^jfUW=yUXqpPP{LEd$6wCQKZZ`T7AF19Hu{G)cu@Z!9@IyevNB=Q zzNz!A&_BxMM-$s4~e%^e6k2EjppTu*RwqJF2VcNcmozh$2 zCqt1%U*xCo3P2gz%_kt)dB3uIle5#BnvCq;?CdImUF__>5ZEnncE1wXz0KKO0F+U9 z(t%gJ-wEvg(%JpFvr`c1@{rvhJ39FXP3!k*sNE#{tFK?PMo`mm#JV%@OxHmF5A7jl z<*7HX=N)FGhQQeMe_6!*v_Jk<_ucMr#A(xh)RyIb32+@hYckQL{?ou&W`99)nl+Yw zS;Dkk|JPb==sxJ`kZO$h8wzm6SMrq>_bb3-e%8z~XPxGHG_vvQz71<^{FMM#_=f^q z;Y%mRnuIZfYQI75HPe{9->0)XQ=MO%Og}5-zajb$E-*!Ts?MQ$w3?afeB0)lvsnWi z09Ss$#82yqcc*i{s{EXIQsuP<<7vK z7{&KfDZB$*t<`v!rM=d|S@td- z>Njx=7WUzrfa8y;1ofxb!EV6l}LT$!)l|P=BSb*)GUnpuSuB zoy!IBS8%x2VuWkIQTm&E1usBS6FiT(f#BPtD5idEjc1u4Ya;6F72YmE6#R_7=R1)T z<^DF-as+97#|2r_dBx!pgmmZM20{3%IH>(D-EDYOaEV*XSxP#Hqm9koydd=J9n@GN zzO|+!xJ8f!gFeA?NRP80bZ{8hwv70M^V3)%zSUOiSW{|u5E6q+5UKll+ke&}Fb@g` z?sf2hgNGeF;^4D_2rn-R5-weffzq=TeoT;Xm9KTIScgdWAH2<3H1D zNhQ`eip13dAs`Z66F;)j;AFQk`9}BQfM{hX`bld^qVsXd-G7T8`3b|**y@d^qe>Wg zzu+8n7v&J&;!iAyPW-LlC+}1hW7?VMQ9TnQI=L4eRJby_!!D!~jecCqVIaVmLFhsw z8kt^xq@ipO{)kR_;EkuFswHWa+r!Z5J}GZJogh^|F}e%yBoQ!=iWcxwI&%CZG5EaW zGioA3t`9u=@XR1VXX6*AlDEy#eqEYh6vy%6Jb&Uv`TWI8Se3eH@x=y@$F1t>jbv)(ag=8DV#r9)@FnU~Yto0Bt5%-=Qt_H@W? z&3c!vU2g-S-$}VOYmP4(|CTA=Z=`89cQa?tGyiON^IZR4c|ZKz;^w(I=Hv=nbMcn= zAv2d2K0M8w-11Qwf1dgCLKp59=ChjfE8P2CxT5=eXx{8-RtGdI0vhrC40QfY_4a^n zIH3D0XbzFNd-$#Ar+%iDpYqqN$rW85k$==*@<{K8UN?^1-rV8xO6yF@E1yqPCDxPB zfh3-$Nb7^F@#O9|^LO#3H7n)cYL|v#$J>WU=O+W+MC zM=l;Te+b72)nSJC#0X!VV7890OX2DH;9$yK{f0LR?=v0&3jY#6@gg}x{5+a+e=3E4 zJB9xZxbllW#rV%Ad27RO1DCAl-SsAfH;P|#%{_s8Ps)84_`bmX6Djx4gYOUA^{%Hk z3SaZL1GuXWD1HAU<$eNOvS){L*WRHw^4|u2EO5U#<$g7I0|T)4za`~v=W`l({RK0; zt>7MA(8j7Hd3XPp`Ls$0%n|Z-ilY;*npK698|x1T?eyA-)T9a74CXOO5JvI9WA5TH z%Sdr8$6^)zl~-SWjp4yuuCGharXrXWkWq%|8sy%bP29LQ7_DELe|Ohl+SW%~v)_1I z=hauPJcZm@Pf1V4Ohqs2Q|Qx#HHz+@K5jVe6w96{v`RuE^@}D^)hte>;UR*~fW3s& z+fVHy$bd;cWIwf!!JSDCPx2xASaq0AaiJi>7E_U^t=0A`ZReVMZKF1nj@9nl5T2eC zq_G?oL~wXn5O=j>L9+)BRJ+w4z2*q@H12f{U+>@s2m63JPxz=HonKWD|1Sv6r{AHy z2w&ph1_#wAD}1#l!9EAe4(M7zo~y$7Ry+7c{;j0 zGz#C(dqfw5dn5kjuJuVl(aQ`$*I_@+U%BbG+CgKL1yC45bNtftp5@dL)dg>Scw14dS?ni0n%^vCw)5^K zi_RL`3v&BY|%zK(yfBsiK`!Lu;8^2JOCPx=;l)U4aaQ{bmALKy)h3-no*W0v{dZHwrzHR$fV>3i; zH>@M7b$$-Ua8A9mb1r?y4o7S-a)$C;?$V{wIAINi5g7Fqa<7@jXn{l2-cH?PQ;n{f zQ|DZ>C$&xSke*Yi{dptzqDO$jZ{)YeeQVAT*#=<*c&qH{)IxRny0%{v*g!!J>pcG^bdh+ffr20HaG!j}n0ek(Y9wQ%G(Gwvc( zh~GN0q*ajNNB--42g%v5rX`Xg`DcgUpW8tG7qH;v0GQPHVn5WNiUYtb-xXng6b zzZ3oG=#)9~6Vm0uz483XPW80l9CWTmc_IEZ8hQS%;9KGOFh=<9;OC9p^eZ~(?O*U8 z4vI#m#E+=T`j!#hO!{&ux+R|Q?l_;vUkZc2xs((3bs&*&LEb?L(yAD*i2 z(*K|I<-QD+{^?8shmv>vabNCp!oVN*<+KXhAYQ94Upj4HzBK8}m)837rD0z#5%9-- z`J`G`>)U?Zm;Vs@^3LsBx)#|E{d9BL#TU)|ZX5H)SFndCxx6g7ddgs`N+@9o~70m-Yy$>HfQo`Re=H~?k+hwe)5`kd{6TN-FwLxZ|=aUcf94Lqg|G6t(IPNHzxYe+}r4R(ES??F*?aZ zHJ-Q&rFlcNcg(wa9?+A1t^+;ni`l1=AL&`kZ5B{^*|PJr^rDtQoi2gy-$K6SUd$8y&9Me^X&aA5ZpBzv1Y_x9-&#hBxKU z2z+mVXW6BBmYt91xACvEsEl%f{bB5tKJgs#`&H~^*Nj_hKz|T>r8`HQ3R~%Eb>Eq& zGX4;Ia~baB(cCOOPaB}m(62q!cZ6sGWW-zicx?AMVW7r#R5k)ryIW#8wwi}Y9@e+| zVLvaE45~aA{ubbVeorz?3YT15+t2V4C6*Y?+d{cnQnr_S^SHmBdE2{8$o7w9ykAJ+ z;o67XyHf5qr|?@+_(xOt$5Qxk3a@}`Jz8-k^T4IH12zJLn+DoBp_vStgN$ZIXz5-< zlyH;5>sGH=6bch|wrFhq#L-C@#?H(eU*oB5q3NF4N$oj3di2;5fE<4x$hJt ze4`^qIK#pTzamKZM+Na;6~w=EK?QT*iSl4P!#o(orkupl$Ef@(KS{QP`wI=Us$DEyEv z5AKcUPj*Un!8sfwPh!5s-)qfX;9qTBvy-%y_$mF<8P%zF@A%{K(&vPM8ZWgcS2G!-TPIxorN%$H9`hYL z9HDd4x~BSz_57^ywaj7~ALU*%jnR1y$pc@{`1rP3V5Z#7Sr=!gdayd>uKwK{x&IQs zHT?9QjAt~6*P0CL`J_oF(`zf6mn}}F!+a)dn|ue0o0}H@+nWzBr!6ldk51R04?`0g zUjx$p`E+#Y{#CayX;?$>4M~QEuD$7nrbTjGCe-vw* zHyIA>AJ5-bt{>^^t1WJxwm)CIXvXhbJZ1-;N&UIzFyT2wkEiD{0jsb1>C5+DdCz!& z?WI%pjb*8A2Tiy zzV4-E*$1ijisp2E--aM8efl<;?)#>rOZR=E%Lie4{$v-*vK9E7N#C~*e_?vXpMFIL z0meM)KOFSwD1nE4pXg@N_x%-gWq#iH@C0p_VqLVSljA2@Hpfrt6->*rB|Ke>y*EC* zt(^nC<({qGzV|zA-?wDuZ~Hi1pGke+k8+QG2Z_6tU#m~#6tI9@x3~YXEbDW^K*_SI zM>S*hnuU8=mg)B-SyuMT`KivSzgz%Z&(9iP%Pgk;Qtma=nDniAEMJc-yQmhJ;bCP8 zUzfsrQurWvN|tpEVtQ%T5-hqn@4H=hVUibV*Irp%b=69_+m)9Z?u6T#MIzxQVZx94 z&3{XK`0LMbId}Nqp`3e1P|tlU+#2lpXf@(=ef>r6de>sn&1Bu;QQL7$>g)a9ORJ_-3!B#QuZZt0`!&#@tn7>+;*w>g_w)-*Km(bpY+&E8U-Z=>OD!3D+xq-bK?SE*0#D{Sld(nHm3hv_x?YUpx z?4g`49_`i0pY}__JrV8IDDH3{g#DUiALO<2@^s~p&g*{Ex z)6oy%c8s5l?qm5pzXIPgq5tvRlR+jhueB~1Lnm2Dbwl4ObKz613raSL>A>aQ&bK)S z;pjPjVD>^{hil*K5VT$vy9E3(a3B6^@Mpkdpu$@Vd?}#+MR1*4^7Na)WAGR#diKlB zdrLli$=k(%{v+Vp=ZJx#-wV{4D^EWRehA!}j9E8*B*5kVcz|o}J`&(^*WQ9P*1z=C zJTCX+0WSY91i0L5dk!Q#Fp^E>UNeo+0}japC7b>-P~RT^65pi&|Id6Y4DbFse2)Y; zpNTp3P8O6d1EV*}p9t_A-``2$V=4UmDf}N(`2R}bX9roJ@P8(SUy#DnXYMXdxoa-! zjlz>&xHrOkQ~0eZe0K^TPT@ME=Z(VqD!BSUeQT{mXZBQ|)UJg8S8&xIkN*+4>WjzK z7F0hxj!u_Rig~R)S+hsGc=3|RF2m?ct1^PtY3aq@i7(>>G)@;S^S<;YCqd)1bkSnx zOJ8ylWN}CQXqEva3jekAV)sP=?hAT-NfS6V8wodtgYDqc?gB%gC@(i!#}0Ax7l&Ob zwPk(7PmK&DAOrJcVm2WYQX>=Q$&`|WOh}DPm?2X#l{F^4HgA$ovfDWms{h2N+sD4Z z_HXmwX4iFerfV7XMfboKfWp;J&R=NvvxPq>d*~k(q|-g(aE+BZ3-+QQ^bOP}(V2a0 z=*&JgxY@@B>P(yNl^ql$TU|{-|&!xFgQ}sBqFzb@)l)7rA|I z=;?H$`AbMAP~o=;UkV=%UoMF~Y6-)+yrnS2obbG8q! zXJJr%wV?WBLG`_Y>SG1fE)$({77*tOr<)_I%zk=7umyeu&$9Vm*KF6l>Np@hD0`Gq zb_%`$nMaTX+k=8^+#V7nlB0qwOgtmlYV`~1wCOfO1FQ5Flh-(3Ar0O%xR3N2=MnLW zM_4!hMc2gde2069An!l0mr-0YR2@U_ou{LtNR6M6?xX^6#`Bj4pUtn}?3a+YLwt+B zMt+{ZwC;M0LkI5Oh(G;`4to35J|bt~(@_G4w{l3Qw0Yy{wAb#_Ah+#=mv{pAbb>+l zn|Cb4Jjsbv&BaEJpVAtJcbv@sD<24M{*!LK_a>g(oaq|pMHgQ@dq2# zM=Ntuz0Z_0_m;T(ZcEHnhbp5qsb<}|+fd-%+Cu9X=T;29+}*SB^Wd68`g=BL;?L!x zPfZl^74A|UGWTq(j_!RS%JG&S^H%OcNp$ci$LFHx{m^}i`&aKi7YIG^=oify=X}&0 z^3LklCG+DO#=pybpdH)|+LEi?sRCcm`Fm8%{I*maV}GPsyy%^1=@e=%+!VX{Z-F~7 z2;b=Lxv&*xJv4rPjIQRye{=VqhIHPY_x4O$|A6q@Nte0%)!p6k1#|#EPkQ|wAAbyu z>cZ>I@0F*?@1Y;(_tg1)#XG*28ycP{s&3~WG_kjUF|fCyJ4u3X&`P?&YHPX zd8{S2Z6$X}|7cXGjDB%3dcfS7!&=R}7VZ&NJ5ijf!-_YTueB}cpQf!mF)7YMW&C%k z)21y97snoRYe@#@UY@rRuik{`&%D{>S;&LpmmMeQ$)mmX^7CrGX^eFz-rD@E<73$H zp*)@)G2TX$4sQcAx^qdq`#fS)827xRAACagNf`ugAHz-jh>yF( z17)cDz$2A!wKBe%{9i}?IXl`g8kMLo)q5w*o!~?09-Fcqro40GwD0D6!pS;**QuUx zFE{$+rq63Ez$1CJ5V~+(&gRv+am0aX^UCC_@~e1f{j1Tr#8r9YUngbv=?T4Msn>%VSHjiz1$X%* z!`CK_G-tw|)fs$;kJd-5IrR=74b_s@ygMSMxs%1?a<3+WM?z?vwLT#Fnvq0RGpC*( z^*iR4M)Uoja^&Jc^Hb_*VkFNjPcSRrY)Iju?uzJlrQAP}!XHlIznQ{Ez{QK_=i4cF zDyPX0-Kimd)9VL65oD40S&+h)r1125!L=#(?i8+hk~a!}2)vbS&jZEJr&I2lzgt1i z%;1?mn>%te8??`#U)Ounwq*WT)SWcu7X(knRjR!_YmG}T3*lkWVi zMWP5gd+duVNgT`Z%ypLmpxBRF0vI(FZ2l+`4d_<7> z+)+X1YtIPMVZS8Ee6E%9HFvrQ(s)!qq~EPJuDe{03n!dB^;6*#1PRB?ZwaScIN|IO zWY9h+$RexOfE3O#pu*8z0=iS?Q9aHxZ`2nAV@5u~1+*7I-1i8c#~Q2P zTkLx-qHm#&%6^L={&orC?|>lw4mtN{1<#MnJ8`mKMwcOfGc{AqTlHp~H?U<)dfvK@ z31Lj$HRB2}^Qo!ktviFT6p(0T((~5o=})bTgTca*^PS?vl|RpC#%J*=XjWN=J@gdOrFH7GDk+_Mclj zZ!P<|sCHMAeb{$TeTU|vB}-?#4||Y=V(RMkX)`h6 zp^#vfr(z24O5tVjHT>jP<2d6s4PttIn_IW^4)m4#`x7-sHvoBkoA&7+QEgjb^k|8w-6CRZR|CaP^*3ssc!L#}wa&OxHdl z9j!|+qMNmaI@a&PGtT4_(im%++?mTRh`l$Mxwh#1Ic>R1S6(_SVOR<$16}0j)5Ph+ z<4kxGo@l~2|AD!91NT2`oknNJqj>*BU3A^3zO~MvHG%e=eNV}*4;070CqItAM&fP2 z-Rm%AhUmw{TMRD+(yI92+56SGbFJ}&X-d;KO+hcdeI7_Zr_Ryntbh%>YM{RTomF|q zhq=!gUUcSOyoe{!>7At})~uR}=aFXnR+QellAFJG`AOd7`eB4KG)*{4>s0(GU3&j1 z&CjkMQaDQp=S)~TdA*l!`94M6%n$SKt(Ao5We9zHTx%1x`FFiGF?AnFqS=Lzh z)d4R5`vP3!!*GDhJ=EQh`?D$cHb3wrJt{;PbMK%1ba-Qc$$eHN8D%fOb^Ih_NM7=W zzRA4*6XK%tM(&;bj`2IdPyV+7mHxcLcLTi<{bxJ^6n>DOba6cW?|?rG-T_p2e+2YK z^laKBM)-*Yv*G=daPnt0K>p84%EG!!cSHH_-P3C?@55dB@7-?%SAKguvV)Zo!n%3t zm@_4t%tI%76xLZFZ-KC^qNN6Ih;Ws#S7M?ECD(f_&ID6BB?IT5J^V z*%bfSiB>o|?fRz)!i1;SP86+Kp6R`*XZxV@rJK&(b1AH;4Ay-3H&o2JNcg4-EV9_q zOJaES#sun~m9fdJh2U@nFo~jbd;h>-k4>Lp&gGA@7CjPb;5)&*Pg}3FHgSmZ)Y`;| zAZr{)f%Cy%5RUuHg5WvIOYTOu0DPrz+>3(XCFicSJo(=zoYD25a25a_cla|7uL@_) z;ROdzI{17z+OFJZYNlGth?DkT zlQq+88CB-u$}9CBu$;)6=R4d7A(=TeqLoR@!qd^I9m|iPjOaS-r}-;4{n#@y&{*sRn}qxS^#=@2CAYo>v~v1rDIr7)8(IiT_>WU0)W$2K1bZvL~p zlqOgnOr+P-%C5`aJ>xZsJ~0ujQE1QH-m`g~xr^rj`$F*8TvtM#iXUJfZLRjanlH#B zJFp+~%wqdq#t!6~fw;CGELrh@_J_EirvZPGgLx-{3y3PC2kRc5kUWHz?eq0HzXwws z`vBoewv)`7sZ{DozkNrf0k(O9azF@Tk1`$&$r9^l2wX2o$v zB=fc>@{W-yB?Efiw6~v)C-15K06ukR&siyZ-kF8J%IMsJ-82g$h_Yu~JOH+ZeVGZ${ z9$#PLUL?{2&!fa);`eSjXcq*uO-0^}9j=Tf?z!HvOm0tAem(C`>djZZ_gZAHlki4d zS!&PG=hequITT2b>=dv6Ryh8yqD-MOemlIYE`9*G488JY$lZEFSn}-$$Q$|Zz`i4} zztPzrq0JuPC*83oe(G=Zi`_5S7xYbZ6HZar_U%0bgT4LR;>}&XeLdYj7YD-@&jxhz z+}KTnTRQBBdqKSXJ#h!aAhu&U>04h_|F8{df*J%m(;pP z&DggwnOr(kyHCklG)4^9QOUV##YAJA)=#XVCkc%9AyJ77Oxm3RF)*jf%1n8kJ41w# zB`*Z(TWh(JEmt^q0gV~gr10Jp{^1n-N^GLn4UE=c21nd*)wBPSz| zYR^#adz`)IW(vp1#Wc98aN=#E?-iUY*oKVf;Br9*L(O?5H?MQB+rgdA{Xs#5*+&Fp z_MRM6zb^bm!3DH8+M1yH1?@q$088gtxmkFtv)B6)^-a(^JQkd7+p6ehYNnE}I|$1g zwSO7)Jp>;W_{l6M?mT%TITA3fe7zwEOa4SFla{Ziqsv1pKYp)JbPp;3XT+b}FL6-x zGA}_ll^nhrH_wCUw3izi@3tOGf>3ocMszcg!>@pDi}wWd;R#a2i8&0N_NO%_NPk3Z ziLj@(Nu8FqV{8*cERcgs+|&+}#M?N1(XP|dtzRk0Dh&y= z3tgun8!z>4?u#(i&`y#t;mzMAQbADW1UCSWSbT@zGyk0ZUea?B#bACPd{CLhe z&o%R-gT?wq<~q*cjd`vX>u=$C zf-vc2)8awgKH?S2WA$bEvHDq+YONo<51NVGzD8zZUt>XgwYH#>`C7=i)!>%evf#PK zg6?YVrtEW#HqttqH0KtpU*XKv=WotG*LZ*KIh!_fM5Q5`#aYS-Ka&sqe}t&ZzaRg! zo0Dm6K*o%}IrA0s|AF&Ye9fg5t}+WhL|#*r=NZ&H>B4pO?j@Z64LT=Nx$8J5yRDvH zXmr@k=tJiMg;o(w9Dx%BJq)Y;GgS?g+bpy=^yEwPwyhVA{->o%< zrnXL=d#L{)`(0%67Sg0GXor@d$Xe%{O6&J>(DcS=x*ZK)^e{9n$XXXP`529D%WpP} zJeKZfZGBs90qIH3^^SPir*Dm9JVSi%uR0WMQubAc^0#!iPIBh)1)Y1_b}yAx#D43YnuEQtF^!SXPsvqGku5rd^)Ga zfwrUYSR-9{IQ$lIJY8F^TI2pV=WRKYt~1iEA5E2cmrM4ZdcL}^v1oi>qp#xXx61j_ z@v%mGg|#R3rS*ABUi&umnJ#Zxm4ma;69dxzaz9x4N5;XRDL2M72q=EpQNkZoywyEav!&c~5~68R~+ zwxZ6Mco>_>;vqeU_A|$V;K2d(Rp#tC?d#iOLyT5*8K<{mdSS;=`T*{VaQ58pZ+HS)a zE+|zeMO%l~-gDW_J|{XmWT7KB*5K^6c@IRBE+Gdw&gLV}=!P27xwRjpe+hUG$(t#+ z+5uhPU!wCFcXF>flWs`1s#SMq=N)aST6>Cg|BK6G6&c|@s40)i>(*F4(?#SKdgbF! zh*NWM%1*8nCoX@U_Hk(c(b4+v0E;$RS6_gx7rjz%c1qv$0_m$v1q5La@;S&)^LeeS zXj^lRq#LN8-0Auy*>#*rFT`pVostwuPKSiYWk1&gnOfA`er8)r{S467&3rz6AQrCm zg1$%R>FKA<`oZG%8??n(xaf~)VPRa#oEc*Y>s-Xx;6IJ?>=!xC%Cq!F^gWT&7^t1SmYdk0Jc7MEJ%8&U`g;qNksXobcTdX8C_1fqxlXc^w2QzY~e@KL^(t-6wcI z6wcf}a^n9F5oYA%P!G z;0yqfQ~v)~0&j({cM5+~0$-58yU6OP$%)Pid13m>%ac0p@Ey0Thy?QG0HJiOoq2*O_Q9g#a#U5QI zU+D7r@vDpuFVfnbSx={3@AY?l^eSBxkg^Pg*3g}6*G=t!Z?rq$r)_x~&Du0Q8Bwo_ zE9g$UAmDUut2VA%IJ9Z~P# zzEC?Q|IF&g(>CCfn!Vyur5Y=PC$Or%sX($C1UY`v>*WQ}#|;ZIp({H)6r|%jCCG%z z==p%?7mR+dPmqbrfFQ~%>4QYy&cZLGt^OAo)#afXb)fTS-Td^allLtd)WbIb-Ae4?1{6P#X%2L#mHn!Am%wEZ76R zgHJg4ydaBujawxKkfT85J9Lo6qQQ?l_@aX+9ehdf4akSXNqJU|CZoqp-1&!xcQn6o zNqy*kI>I9T9$7T;MMseXn$qBipK*B+#GKNSlWtM;uSKW#L2;-Wrz z6usOg=&0t%DNMfs2YtZaGvsdt1mvw8r&FH26E8Vb`7|rKjmb%P2dpibeGN%0t6zR!652W^s4oZTVS$Q&is~#7)P#i`cAcqg z4p_f2w@)#LZz|jQe=BPRihhA#-=rp(_h+pRFqmLnkw@W2ZAX%`sHMLtA-!zap{hSra| zd4_Hi`Z0@Ea;`So`r+e2m`3N?bN1U52%wi}#G-A?RZ9pguzPAoTKU z4@~v=FWqCRz{5Me>vG9HRcFO|@K=|l_gr+6{bZl|1b%Vn`-EhldM3I&krl`HsiO1k zC%$LuQ=cJB`SVUZ^c!%{`=9g=4*L8h`&7}*rcc$G&XE{T&rdMcHJUxm9G>b^8467~ zvOv8XwoBsyx1UIB?W6hk{K`Y@HvjDPscpWW^g53{r}dN7N#Ccwp8mIw(#Q22ruaYa zS0l-g?qa5XwGvVM-|JVmk>+gr)oY`?+4;n+37mdaLOyf9O32Lp>S?Pl(+yAWW$(FT zbnR*}7mKJ*?I(Tpse1R-r*0CYPpts|rG2XE#JjY6_(}WJL!Oa?zE4Q@sb`|g6Hjq` zpDMc9^r_E6H=927CFtVL=TG%Y-&XcvqMJ>h`eqo+rcd1g-E8{Q1N5mg@hcCFuD#=R z^r`Q7`|Qup_G;ix%u@sQ(J+8zte4al}7=M*ias37c>f2dK!1M$D!|)+Byy=p*x-;T|uRHpv1i^)(@?v zhr=G~LFA3jq>u_E{^u?en^}u6>jbkLZ@|4 z2D`@H)N2adu;FsR8IC@P(iTI zz1!4rEBEf0ej>BG$=`DJJcG6sq@!oajOx9!w5<_{hr5551@Car9X#tUpZ3pDHMG4N zT|4{GelJRUm9#r`jtsEBLwz@>-{V>8ocxntTfcrEO?%a<7xA!drhQkxKR&24<`?{> zt7pHa`y6$(mwNU4o05O+UuLLV*?u#1gA7S7w7yIgsx|sA@+7%lZsbz!}5*NkxUhlsbWl~z$2OB+20S^Y(fm~2z%PU%>A>u`F3xV-5cL7XRdP{F;- z-8zZQu35>P1VC-dFX99l@gwWYhFj9mV_2 znFQbVf9u-N&(HrfTb;Zl)`pT_Pb(QvT7T!_`1eF{;_r#v^pm)vip?}jJ zaR&N;woqQP#9#VLw$Jpk`6uM@4`Ss~I-d4}WJI!QZ0zUkdrY5d`}Sgy{Mj)=>8TD( zK6(G?<1{W_;Pa~f_6E{5cX#QpyWD&633&ZxB5mKl@~#Ien<)$J1!~R#sNPkMc%C-R zB2OB#lX>bPA3jgMJ~qQ^%Ng>-`9D)1v(49?Z+`8%a&w4jbv0AIwvw-h&X6zdt*M=6 zo3E}})YsoIx9JL&&znu1{R;dlXUN<7S>#RmHt#O|I%k8X#^A#EdCXH%8iOSV{+(0% zvnyfV13|)0Xx!tyNafX!@(!q7yBR+Xoc$? zRC;E9l&?;9@(!J;zwBnr?kL(hO)mRbBL|+!+OsVk;NqkEG3~j>OgYs5b<$pv@h_2) zGI?$<>}sH2t*L(vLVKo4bFf@d=Ur}{)ZDd&aLvVJ`Ojd0En325EW`gQ##m}d& z`L9o(zP!!wCVlbZY)-@rS$H8H-}Kq=o2K{C5^Xhl#*MjEqj#;}uy)hP-MRS}Z=9dI zXWhno%4KuQmjsJuiJyDlnosa-m8u3QYVUQ;rZpQjA|OB4$x{hhlh3R>T1JCdce?IK zx+d+Z`Eb4S2k2ZpuJFfWxWbQk#Ru94g&&LI3hzQtt+U~|7_RVVW4Pi!AHx-{{Zi{} z{7MX0xb{io;iqD_!nH3N49=Wv6#t&n-!dEb% z^WnY^vv^CuS|V8FLbc~1)}=g3C|%*(fqGUMh2I1$@$=!@bJ@vnF+YWG0zSj9+u`HD7y0?{13dR=407Rr z4Afb=Lk|Blpm&;M9QFuM_zx5Kj}v$bUXuTQ{FR?`z`axa1>n00=e~pqPkx8v+64V= z;Cf$lHbVR~ztH=!*x}oO-iiNSaJ?T-@GSbTB*MRz!2b$d?~CT?qSqw19r>4t3qJ|o z0Y2(*9YWRn<9`iY@1u|ZSK$5NK7CCzyi@-F2Y8wAL7tW0e+Jk4>f^tW zwg|z!JYERi!TU;*hW;|}t{DDK@NV!YUHAaFcS^66z&9oE9pLH@D$puFpG$;)Ie|Zs z!2ct-`U4;Tzkus~_xOtnZ?|U-#9wD^#=(94T>&0~54iNvz1xwtd)jSDcPNaLVQsNbhaNw5fmh=zd^RXdw8*|!jfr}E^7%>IA zr#!S_&7GdXs!i+fX6rzvQlji~bZuzUC(4xU{WskBeshd$?Z%O*aC7d|)%tc3qUV46*op=-5|TXTzBAOv_GWH#XWDnM%rRl#JZH zYW0+tNyhI`yXuHa5^b!+eHNMx?a0S4=x2+Y-_VQ<6c~}ia^cW4AH(3fYljeyz=E0C zcoLoGb9?IxhmxK)Hv>Wcz|2hg2a;KddDwRL{NwxhcdXjDX4=NS5hEv3ak(@8{(#-a zj}4XAm+j5o6<6o48Co(pc*~7TZyiL8yr~;g6ix=LqdCpAHduP&%^1!ZUgK=%aE9?J z4ED&^kli^|02j^9fKT(*WH|QLN??Xhx1$_2jH$UzqZ_qzwtjfcaCyC~_e8;_-A)U( zXLGygNS|kn>AIS6hrYIp0bh441q*`jU@QTe^LfIrvEQcYdKWrG;lOtKFhSj~71UkW zuEp%-IH*2V{(A-CdjKeYM}+6GIpg4B`Z|S=IC!t%JDFbyLbqRVA@fZau6e8Y=$xTo z=%6`QNP7J(&;v^jn)8L=+k|u2>xdxvJnq7?jKfM_^Ih@l6TXD<3oeC^An|2WS9JRw z{*=Qt4_3Ux4jz|3`Oo9m)lazuiFYqhbmPLWWi=&u1NACMxaPwOe_1#kzd1K}1LGKj zoah$`zK?meAoM$dqTeli8T?%MlY-DcD|j>WCyk@fcLPOl&J!}w^vR#_K|$z;1(!3< z3qn5u6#X;88JNvEL&9}#Q1zE)d{n*UfEV7zSS1`e8F&6VAE)pGg10l*6Z|mw5=6c< z|1PbhJ%CE5hw-uNBh;JV5cMxuvh(m}CeSOv^-ZJ$j_#nNd)CouzAd_=g7e|W_-XhF zil3nP0S!OFiy2^N=}4N9dir_C9vv2O4ly+D-|$Zr1qFkVCW{4~&!LzmzUXM0KuL=q zLB_3&@sfwaJEheLEg zHFS{NZ>(4yX}MTO4`pmC=`Nu1XVWQio-=qMo`2{r&>kUqoz%BEqyzM6T?v1st#T{h zZTV_#34Y==r(pMh^-ZLJupZR`WlWKt_|Jh>be6aMM$*&JzDVUi&+j0=NWTj&lRxT= z=3(#1rJJ?QnAa-(Zz35bILrUG$iA73$|U$HJ$=#IMDi zubc9-FObJ)b6%AFK;x8#)=qTwkyF3G&=NV}?~O3qZ!lCvPT|85X2U<8z_%svPbcs% zCGc;7D{p>n|J_75YdI%n-BXJ>&Dw6Jo6>z9Glg@PRCJ%j-o_C{zdgO`FZD!IJxzRP zS~|&8%!b6w)m#*E^WeMfYAoWDJRKX$1e4A9#TK7mdvPe1H{&5YI%e&z^IJ?c&H1gO zAcMfYf^=ki1?Sm!SNB(*6;9(G6Fi^!kRbO^bk|b!D+FmU$)4s5Wd}DosJp`&YxfJP zVQ1-P8rKiP!#h8uB**o|h;9X<*BaN4#dwLQN0a0FndtH^&Q*$x6CKqRIpt40ljHg+ zJZCem=i-B{<0a#_~5d*}iC|I66(YpO7=ml?}S)!OEQ>}a_A&G-gwIXcf!oaCz2 z3uWmUboqvQx_GT@`)LkQOCLOB#&zW(o&V!TYWxB0PFR~W zK7Km*68rAK3)ly#ac1W)G@f(E`vfgH>C3^2%zTgQCmoM}7WRSuU)h*eUoz#qq+6fU z?a-Y*cKRv0`b>?DoWF^j-Yw>okrTc&!tA@pGA(in-xy&w{5KN#o&^5;;7Z$%eSew= z_b;tEM66L`Ij``mk9pVGW5Mw;FE%V~Sha3g<5F_WoHC?#%aZr^58d&JO>3-XB^Eb! zPcs?;ljoR~zo{|KweZW)lj5&|qh#zT|eURvs7wa;^FI1boO70X>}{!%*Y~ zKqS9<4^=m+7n(K=H0kreK~BPtrsqkfC;_I`^s@Hd}jY%=+* z+B0yi(EIZ08>2q&@p8`3+wrr5^)+=g`7z3|g!=XCYuzi9TufUxnr8p`y3xN6XIeLE zU1Z(q>qZ|U_|se`-b ze~`c@68K*x@c)*;PbP4UrRr=>yO6US->EUn89QbC+cb3N=&HNyFgSzBQnRn2^=7ow z;i5*kp)l*mXuK4?x1;KUqc1ZuygLqe$F}DbWA(J}MXD5L{C3oypF^YXCQe)7+Hpi< zYCrX&v2>*%6|Z&?zC)0Kz>K|&tp|j&-h4ukiSRRmtT&GfvfgY*PPE?a7VKo*D#&`W zUl2ZJK_*m^VXZ%B>t-6GC6nH%FOf^GFY~ipUmlF{5+9Ey$LKTB{%D2c38DqC8{Hqndxj$8yolW-ONtm5~|viEn%?uYjm5XXDQl?2Kc1o(A~m z8Tgfl?B_Q9X#Sddd@pY*i zFV8e?D^JMN3p#r*8)2GzNRO;_X_S7UTKldat4WLb*R*d@e}}Q!)5gc@pkTlCoJ)+^ zqlq#5>obknu6Y@?f3EL!@~?55v8J|xHGCrq~2aV4if}L)hCce=NGfqoJ|E1%yWX?N=1>=(AavG6V8MHv3Zy2o+LBxPyS{Z7WUN!{zv-LzCtZKfWhyRY1h z_%8P&zvuTId)%1i?{SSWW<45PXX+k+w_$VgTAK&mH|eSDYb;ehxc{NCmG*Dz;f{dr z1T5yciFracr#mUPOkT+xK;NTG6}6vx?xb|q^zUu5duqn@@nW4<5?2dudFGX) zjE^>&gAdiHjt6DCv}Z!LOBt^jyIUE%wIAD4!RD@X*Vo#+B1>F(cDr@+PRjGeSb5GO zzM;pKt*0H0(f&@176~zBe~;to@5hPfXQt7G`nKeWcRIT67{6p)YCn1#@}zY_A3rtq ztF>)D*0#O0ZI*Or+qUm@`SET0F!@gA$G5G?LulnITiDm2i)#xeK4;pKJhtWCeGkcA zHvAmla{7qwja-l|p#Px$^^Hs28!5Ro`&}J8M4HLE^0K$m(fT`bqMa#!i>M>b2VSk7 z`eOB@`|`QhQBNOp`SA6$>kRo&|N2_*K;I1SK<=mb4)o399oXi|HhsPCKrz;~vI~&vo&7s7=JMm)_ER(D$G-!w z)wabM+BVhx)9c@gvuNAjb>;DGyO#2tsck*2Z(GsM)V5!AJbl}WZl<<<%+dL_72UtI zZCAwFc96DhdL3>1?_GX;+deo$erDUYD`sfhrk`Tlu9!vJKI6*c+jfNVoT+U+t#4b= z&eXQway)(8if*R1{f49SZ7aHeY1@`!ZM#zM?G>|sZ@=U6TDs%w`^#^l zuki2J1kcA@ogQ*y^Y6@1r?S)jPma#Zq3G6-zTbP$-ufhTo8hB9{!KA{zn!4_uh9L- z@hisYk}~+8p*!X1dSi5-P4N2`bO#uRHHT_r{yq#W@ay7tGA0L0)DEsq-otY#P`ejR zyEm2W+*ED-7PYTr6B%g==1robo0^xFWAoB-a$fquXkJ<}GR3EUCv>NKYJO_wnQmUR z*VWY?SGM1#PUG*k^jwCX_LCiX)vLEBFWQ;j?HiqagJm(E$$Hh8eC~UA@8H)Hqnqj7 zzLfghK|PlEF^4zny!if-U-GOb>}TP8#Lvoi0%y`yRa8gDovy1Az2w(AtJ`{(y7#!k zkH&E6vR3l4TW4)!mSVWVUyk95ukVssXZdf7;R@do!xjH99g}sIe;C6RUTT>hJ{-dp zF8jvT+4xV!aD~V1-z)t>q=K{gi{GO7pq^v!|OM;+6yGn0)1StF7{WO#8eU}~FaRq9*um!=JmR44K`XxcEzv#Y zaC2`9fAv>JPl_B1>MV=s)lUgODx7@ijF9{{Ik?xsryNwjCHm(bOy0{HT@#=>C%8W#~5r^A76XlJF6r;*C03c5st}q&zD()4ud(cz8#%8kf|6 z?__qq0vV#1>QMsGQH8<94o7^9dpyQV9-@`If}iMLi!Kk1;&}bH_;rGNr*svb)PFw( z9n}~)(dakepbvQQ4Eb9D0eLIO>6B;h#7ho+TvP_(Z(;&Fq6g&xA1lXuI&KQ)aKVFa5Us?9V;xZXa%%{=2NXy_ut1+gw^Z<*>ii zgekI%7BGNvUgpQcR7cGLRY+h+9ob@aq5O-$5l3(x&mu&44nh^C#_vAWa-4cFTe6i zD)?n%|4Fjhf?cR?-oa+R14-ZV7kVF4sYiZj?M7L9Pu-4}d4DIY4bdiKyt%}Bm-8e> zMv-f_T%&UxyqhlsCBF4nwBJs&HqE#nK)Jn4lOFa;;gPjxNA;{Qo$v5=Kjrs-$oFY$ zSaV*D0{`6B6P2L;e&+KQ3Pbi8H&SNIdt4sIrOY`okLkXhRQ{N@Di)^Psh=O(T|Y#dsBN8mpew)Fi& zH(dArYnSR%7DKBx+%>iEF&0klTC>hAeP&+ad7`Ok(^oV8bf#H?afM=vALmJ8o>TF4 z3PtNG@))fn<){4Nx8~!RkkMTXOEY8&G|Fc;f~X{foE|kw`_A=Kf#hxoYbnu{5R)Ny z3}%`+5cy3%hAJOZRN6r8ptB}bLC%)w{cA=5x@Zf1BWsZ$gOFLH5pLFKz-QzSG;1>G z&6*4-9fRVVZ{8EG_fPm?p!gjZgkKMGq4-4y^&X0@M)Ku*|fF5ndtJ+DUM$Y zh%Vl*h`qv-Yk?gE^x*HEX!IL!(EA@eL;hAkKoytcbjq`L;w6_{3;Z?wMr@Gz_jH0Z zb>#Z#4l8&t?gogPSxZUwGz}-+$UVh+Z{pt3+3L{DInLm(xn;TVSYtE$L;BXU_60O=(A-XULo!*uvyS*QyE#OV zHMZP;PxGq+^B?VdNPo^ZrR%aW%6DTY)3Lb-)<(|TtTPbIxpf{!^AL}#{;RLN@`_}~ z*zqk?Yu)hFT1LFIUosj@&1?9c{JeCba$ZoZoF^N@ypA}|)8;>YUXaJ1c~{yzZ#hq8 z?#OMa>rQBU=F`VB*i~&0cQvvTyBfXaU5$KcS7T9eS0h*5)#x7I)#$10!iHz1(N_>% zrLi~^ZH4bG?`m}9Dvkc!u106R(ios_d&?E#SBNiq(Tc9p=sH+|Uj=>@_$f}Mv5d5e zrCp6d(ppj2)mRzsYLq5+HHLG$;8kgiz;6V&tXzSv0$l~V3Un3dD$rFLx_hec8BnH_ z*^gl_M$Z}Q>ig7@>WX?b!dDztaT?=eY!vTlt4 znK^Ie&o}wKy|j~!EM?N%RAqYaTbUEHZdKVbL_E2KbuRl(Di8e#`+}b_d700%Ss#{I z%N52OIq+65uf<~ha&X!6nDWz_@777=uB~^=V-0<;AX9lb%s}&N)Td-r=gF=S-%52d z#BRR!pt2Qf+c(4hrSh1;-nz=B^=F2AP56C-F8u}7-N`LqJKj-J{%)Jpci*$_nKhu< zGc{?HiuGwYa<4VwD&8NxQ+|(eA8V6K$d}(^)V^i|I^{`g8DFknaq&vDC4Q5N7q>gE zc;AO!c@KP9c$Q5M&!a**{(B3Ve6=PXOYl>E6;C!jy6N1u(H=#9vh%OLf;nIGT@J13 z&6=j5JwI&Y(q57oWX{ST<))t6j?&hud$sjRmqy^)%Y64+Ye}T{&B}Zr__aV5%^q%u1GnU$*r&r~Gg@Cn2+{d&y@|u1?NDK1=%MLm9j8 z{8UdW^Bl^|_+{6Kl2yv=<*^o*PvjBY$_w#DBbif~y^L;-$y&T_R2Q<#@8!zNrq`3q zB%8b^5q(?^b(S$Hhlim(MZIbaSb{Vjl`pxF{H9EMrzlgePq8)<*{S#rnkK9ik z=zXoax_AINc?5a(@2lx6qA@VkcMVR=bNkL-zm$xlv!(h@z@Xz@jPd@h7;ou4jzV{{ z+wb=01H^B4f==)GwPbvp+A8sr9s2@MGM>7>KA?A{T7}_D$>cVn3U{EMpI?J z2cLbc(S&@svFAqt@3hs^-D=L=s{M^j(Jlyio6%V?pD_9g!cLL5RNnQqC3n}=^_!!v z%p^a2)jQCV!!Pgrm)P&rs4n7r`{EOCmsBa7lnwSLDZgyzYc6>c zQ1e#Pe^I_B_%{_OXUUZ(XTCx7Rp}OWSCzR=Z5UZodA&_`wTb!>@i2X#i!WY`rS?8A z?>KQ%(qXEu#mk>-Nh5FmJWbqwdjKC_uU@82DUc_^sdtS_Q!9Dl$Jm8*} z@mzGzgFLTr&ntN@x#wY?N8EEpV@-aG&427U8++D!+>sw=KDdSX;4Rqe*Yka5KBzFh z%M^v7lbaTXzAg&uNrd&r!t#l*MX|8HMA+h3SRoPC9}62uge{AO6%%2Dv9J}1u$8f} zQX*_P7B&(KJ52}ZY{n0-y^A}k2-j@g&z{b3!qU(jhVqnSRIPY-<{whK-am@ef&q|5Tvx7h^cv zoiS%^c%6)VEd9$-AuPYCg{}?X#K35s4cEHY<4W&H3|D!M#&CrXr!BSer|>CVf#pBm zGCh1x3^(OzogRKFhATX$MSyXZe_sq&_#!RJjY|dZ0;(>pv-L3$3m3hki%Y_^rVQTyT$}j|yshn~ioM9zQCm3vUbV;E8cM z*uhUa%X>_S{mTNjC-6@v@GpW(p8EJH{vRj8zX>k+(cD1ce+_I$ex7ys-vOmNQ~nj6 zie$^`=H4J2`KY+?Tq0b$U+p8! z61e2GpJ%1_@kIEqgYP7~?7|;Og#RwM7RJ=k`K{{TD-?!$i!-WkKsrVGo( z@cH09F?=z&zSr*K-v-_n!^_}>82(A{ff)Wd@L~)<1ik{?=T9Hq8;;?!$6k)%&9ue6 zFwJmFmxK4k@Q;EI#_+A+=KP6kzy07lW8q&1H+FYj_zU1q#ll|# z4`cXTWb@@1ekph-mFM&Go>-S8d6cbX?}UFSf!~$DHzn|`3H;LuTxW~C6aPO-;NMQ* zZjU9hxo`EX7`t}?GJC&t`E^TfxprXa+M9|)*S|m7e!&j^!eCX|?P=)X?)u@4!NyG( zs#>*S*cgA8N3;`SkM?3dJct<~ztiAL-#c^%Htsg89vO-UetgyFJu$oehJkivrkmKG zo&b9-dA5DxTO}r*jB6zGB17jh+TJ%Yu(h9$=carQ#`R-a-^e$A;`p@vqG*pL%AMU@ zn%Ppn+qdxs^zDH?ORBx28I0-sqjob8MV9$z-u6;j!}pYZ!IPFTT~=nXg``a-^IZTw z86bgCNtIhW-M!-z>-gZ&RE>)-gjboZC>}=FSW_s`zSYQ@%{I_iF&>I=$2~E#^5UX2 zuq(P@)uy%U6Fk^H%WFr>Zq>zQz$CBCF^Qd?DU;=yeDkK>Pb0>gW0NE@Jw$tYdKqR; z;Pen9Vv02VbY|o|gS?7bhECVfdXZQ~5l-LEjDl>9%n)b#A=ijLd6YE~;Lo(4f#K>+ zn`a2IJZBDbr(S1>b=r~EC@b!4>FM<_eXrBdtBGf*W_iz0&BlAiYF5Y@s#!rZR(P`mC%P7E9^M;M9Vx80QNF13Kv}ScI zNMHGgp{u8(!y}txfqd3sAs?5xGv>8s_2#RtzIx#`F|U!24aX@M_cY(_y28%uyLy?k z2!D&)-)4^S1bB0|wW;03L97>rGmf8PUU?yl46X5m=a|oRUCkU!kj3Fj!FO;D0;svu zW(OaaKN}rSIQXRCJK+x$Kdt%1&wNW_F?^Yabz$J6Uy$@mf?OgxAjqbS=5bw@GuIF- zkS{^_b&{s=UO^Te+Pjwj3g@r2qtY31aMZ!7!b$f@!KLsOB)yj%9ARD~zS{)ht2L(h z>~?TM{=|P?kbIvKB;S3^CzRg-LGrs&koemK;kR3m{ON47aPut*@X+Be0+r552VZi~ zd^<25}iw<@$Q5N0}RJ9L9KP0yQoJ& z`1L!uQsFmpKSJ<*?o2f8sI{)> zVS~SD_sf(`)q&`gubcRZuhN%0nBb={{cdv*VB8TgiaF89-N}!<(Zbe=PIcg&r%RrP zXhvZ}Ge^$T2~z!$yBE4DG7T_yc~p)pKg27lV;+rNnD6<<2KW3n8fBxm43f*e)_I6U zSH0t^oN=#hfAjEMr5r@(A==56_WzsEn_u?>&Nt*f9X6xWZ^?f#Y${c2;}e`&$lX$J zE>~+O2cE0l%l_gp340c^HD~Q=H0M8ETb&Bp3i)mIX7~iq z1?**57`(p50jE7|NCY(%f9)9B!GkO3;SzBmSJy{o&c!hr+*E zydZ4HPcl+le0dmTd9D&Ke_uHHY;QO>za^Yp+!Jc=r@4Y`mA8avAAB(U(VupQKm47` z!p;Ib%c9>IPQL5naBk_7;op3$JM5@XmcrJsjeH!taekPpJ`l?0>WMG+ge{d%g~uP5 z9|qu^<*~+`^8MitKQTY-&Qd?QZK2L@oE1J8-Z3W!O|`b}hZlv}Ky^6QI6J$;qEsf5Rt zT^cra_Jpz%nTX+@$!`xQuem(z49R2lp)g1KfAiMWgRcM&f(OEbJg+p*JHjV;R$Da%mGBVH z!#t1VM7J$`61+oUq@j0clxMY>_&-Hh8T`dO?*--6yR``%JG_k`w>^9odX?ue@EA18 zTb8gz(2Qp}hZ3p}p^ppqHL8^BICNcQ%l{Pg+8ci!nj;6tcvtxDO<|1pXN>np?;*S| zg6HSyS3WS-2#K$K;Ui7-l{=oRr3yiP_km9tS=2lA#r(nA9mr*>FkZh``73_D-V}T` z44Su^{y3lA*EqHGIkUHXr02O>b8strw1cTH{PQap9?YVGp(Y^}A;m%J^p1>tAw^TRpi zt(-XtYiEt$7q$i=dH4`%u1Nh5zCkXWY|Y&gYAl?S|7IxrR8541gdM(|wqo4OTuh0wSLl8JbPcFnEFpa@XiBjf9fK|S((G^lP{b1n0W_v=3tUB z*PJiN^Nl0we+4|h4UPO#)Nu>-5zr3mTiQ$X8`MoN<<^)do7Fv(&&1bRHtcbJN&E0_ z96x!{bG2=>hsKXi@~~oJUt{Y=;k>uSo#BI9tF_;I_tsiwe0wOG2WhiR{(&%?8*6Cn zZzk=}ymLW#IQ3j@8F;XebB*$+9~%TVsht*X4IkXNJuHG3@;B5q9tHW4`T#JU-&xNK zclkNBfOiEsi_bqEBENa+Oygq^@NQD(bp952>|~6)1z8@i&t0@tV+Z{a{@Ksh=k{4V z1wMy+DRXIa&OfEnx%=v*dF=1#|B46c+sI#GoW5*)UqjLGVaJ za;vsc{iX8bwLO10KjdA&ej9n4xQ_I1tT%`Eg`D*~md-xen2RluRDJL3#A= zgVH`LYxDSPE{{HcoNapWFl{ZlWIk)^b1-Di1${cd>sUI!w6Wl+YHdM=ag6#}u$Xsv zVk!Oa(ng9f)!R#?cZBviau#`Y@0w&-ZI&m$*g;8U@>@f-=NRd!T#w_QqHQ(bkc?}7 zqBD0!KEYSeuG3_+$oI60)p^C-V`g0F&#Iq)IQ((mz5^;FYl#zo4X*Pp{tVC`Q=gBM zjz5PaIT_X&8~R1n{Wi|N^s`v#XVR?oUF;lyo2IY+`8^=&MNWJ8Z0E$B-7_{GtaG%7 zuR6@RHMUkfTJui1mZ?Xcw5KfkDVGeNGZnM&5UB9A2^=**I=uGdcds9|io2!P4Ox~mDE&8%th(yzw+F@dUAz41q2ki_^aM+CuNa`;#r$=zU-yTUJXLAx zkLEs2*HLBg_}y4M&u`6Uv#Sy*J0e}j!kNEo`Sz<9&DuWsL0v{k=sI++PrnrXyrAv} z4ATF*Gnyw9A)_3)TU%t@KF7va84AI+y5RvmD%>`EHr(Dp7JoEs zle}*Bj5+7~k-M+9E@A!X(`K!JEPOR6FfOXR?!JTOGdfSIvy|^}W9T^HZw#uFzswjq zhx&?-p`KQJHCOO?I*v{DmD$G{D;cL(5?^`NIIXxT($v|?EN26Cq)vT1KNYL{>FpdEn{g+xh3oT| z2`H2D2tV)lr^xu@F8zBQFQ11*<1ZmLvkIkjzI%b>deybr9?f)^O#IP3qx8hzYX zgW%DqZMb(;*S(DYO<7e&%`tWEUuC${)weIJnTu+U$vZ9{I-8BnWm8|g&y(?RUx(7Q zFuQ1Q-~IyGSQP)<8ThkCIq@5mb%ZkhipmYt-7$X;Me78Wrb<**D@14=ZQ;v*@Bi$#V9@cdhT<4RXU^QV1>q*<`($r4o?PJ)z6P} z_FdNav)HXO{CjrDwdYLzsi*b!I%I!iXO%lQDfA{)`@Q43;~iA6JD49kmpVJ|k4*V( ze{q6vl}F#KkX)9XT&k^nu^uhN0Fi7`yOiypG*BPR$BSl5shCD5I3FQWB4$yMt1aE zoE(zdtGb0;KwQ1@~^jGR*bkY_`)7rL>= zyO2Hc*ZbVTn%w7OF8m~uN<;5~?klAVnuB0t5@_Y~cFI#twGj73Yw<{j9VA@upOi)xm9`Z`Rkq`t0wLeHcr8ATp^Uzb6q=zlJlk|XYjG6r}V>b}UzP{7?&BLjK$ zxu0zK{zY|S{Hs-S&+8QOka6;GGA0kc4|~$cgNx(hwvi`4=TRF)Jh{WBFujkqoSKs@ zH}8_o3%Dt#?oIk~?lyhmv~pG-tY?DTYjx6&%a`t&Ne+|p^-biP?*WGX>x*|b?}IuwvH>rUZme$p{@ zx@V6s0MEFe!r#KP=0qL*g!ch+{H(M0B0MJBG|UN1yZG>e!xsU4{6QPYf6CBn-EE!a z|F}n8_@NlC^mR|bIvZbSl{~I+o$dCx^3$%u8E5$)kKqbG6~h&O83TxQmj6f$S9tth zhvMrTyLFa-g$~@~{z*_eI>n!INjz=NWhh)((!CD}w4Ocw>pZJ{#7E)Vfdzg(oX5z` z#@5cKBWl~upG)9>n85!WdA-_3Ktg$JQN> zU)ivB(;8c9pY@F&8(MeI-HGV;tTQ!p-84mREQURB@A9Ejo@7IYhNfl3ofwZrJMCmV zR*Yi7;;`FdQm zCrJ4Q9KJ%3!pUxz;_r6;<~%9%p~E#+C|@rLk{_Kf75=h=>R9EUb}-{$9;o~b3c|l4 z2;aSex9Z7ScOgDV6n-%1Bd4h}oGAEdijy_JIGZ&Z+pxoq$Xf6?LHEWniS6@uhzRFHVP1zt|RH0CPb zx^pI&5hUMP2Rj_hIoR!>?tm%(+XTt~PC@doyI0EhNkP>Uyp+!oLGowrMxnIaA)N62 zg5>W>hd(6>7_D>u_# z&VG1!M^eTm_i{9$JBW-^{D4<55FJevTsfrwWV{ zKa!4|=#+kPFGsd|dm<`JBf0@c?}Iv6xWt`kNMeED$lB#%~V^tcgYR{6_8`;#$zA5x<%9T6;NHz3u9^ z=Zt&pbE|3IO_2n%vm*;4DIb?p=D%MXXJwQ#2D=QKnv~3meCtJu%O$n?>h!zv8W*TqnPr9{v@bTleY; z$y*~?TFv{REopJ0JzlR}S8Gc&7{(^f}8w>9N=J;)MI75C= z#*52g>xb7w=Sw1gu7=6q&~U-cu3)B^l<&D?bnWV))$abMxy{LBJ|DOPDsD3G)(lIQ zzklJ-&DRcIH#oF>@Rl3je}h>Gf2%f{Yju9k?@z#-9!+^O8D6z< z-9mFMnL3i(=-ax>1QG5{f)_A9ad;Kj%p^hcf7va4Mv%qC5kWTAPYV7bYh>zOe0l_# zlxRJ0A>jq*zs$jv^3Op}yry|pW(2i9X+nVVg3Mu82)>c|q#$Bh5+ss&Pck60bTiG5 zO60-2w0lU-k90qMGhxc7$VI1QFLt==>WzH}ydvjWC+A1IeSo9%=pt}E$N5Qiz4Q4~ zy=ZPxZ~>a{>sk3j%A@?`93GnPA!cWsZ)rXCi=GK|{*i9LTF(QNT1xt zau~gQ{vq={0pS^JP<8N4Sbamm*gVX#N0{duu{rG(at0ZCGY{chE^+61KC)3Y@6GFL zpFh{^MSM3EY?y4C;CZ6@#neRgk5bvaHAbj;*ePTF^iaK-c}$#-_9}IDrlVx{`kP6I z{V=l!DLPAAlufp;vdWp%w+=|ZS>@_rzd`$I?Egl4Jjfe+JUR=neU0tdZnWoO$b+#7 zsxva0V_{>9eL~VwdR^gUN73#VYM&w612kcFUKzLRsXU3l=979K{G6=`ehSmRq2`22 zqr>e(veGv7rZ^qgE^8;u?|o>Fm<}p+<;RpaXKb{!X};IV{L-h#{PDQTq4~3*aLobz z*&`E|`7342EH3Jd3+Dxj*6wKw`H`*CG;_}Pv*#mP@mF4N&RM(_obpe~4jkbp)K_SZ zJX&U+U1Z;;Z0$96Di1DBKzgi6sB`VjS{sX+-v%Yh&pe!N1N(5*$&SMIMmO!Ddehul zX?v(M7TvKt$bVQ8j%+bR7+ajG8}TH5twfzPksr>{^A?=CvO+1Tq=KS ztZXy+H9@Dke~4NcWU2lDzB zR|nnHPe*Z^*+Vw@rVPrjd1h~~L+c&RR@u56cYCx&v%lP~Fy7;w(g^Oar=xXI(R^Pd z;zK^Pjv6kh{ju>!e#KvH-bx*`$G{_3q z_}WW*7ajg?p!BZR*|mkvb7_nhz4!~aE)~3whsP7~PsPGT|8fkMTnRUGGWaRI!Dx_9 z1?#}4oL%ckpKDzz&{{$Gy+Gwh@nsL+I-9@eWB7dp2;Twp^n>)T)}?~q;z4r(>*fTX z<)O=?flWXDU5m#E6W&c3JipDF5E&O0)L>dWDSuOriABt5Z*6+`>t8$lL5yFP=RZy0 z-$~#z8;QuRuYfkQ+`0LDucfvJC_fEKMm3k+9RRX^|fp1OVk0kIfC-6T>;D4UL zzn8!n)FY?-{6hk7jbz2HBi@j}7bNg&68H@cABDGHEBel>dsSep4VeX#Ss|JyEwyA+ zB#zi^v+m(w?Yd1v_mtVYSrd!vjG@GsIg=`wjmpR9j9r!(l{YG6tV{8CRgBgcYmsJW z=tgbKu{(D9YEMf?tr2hPACk?VyX_SSFthqKk*{C74&6(PXcOi+hwdC*b=O9tM=}w$ zNoBoaglF`$#UHxU+9Psln^LLPOscoq8ah44+Tl#DY9rhmJTg0DhL3#W+l8?U8nF$; zDUQ=DA32I&Wt(#S>Z!uYbXClX)9E&ursXFx;}qq`G>nlAQ)cPikS)!fy1MONn!e%j zyzooh8v0TYFhTP3q=U~3zRT{lsUEbaX7Vej{0b_+g5+bFAo(43 zxcX}4>s|*lRGoAO8mF3Az^jjt&LAg<=VC#K3W9Xc!-7nJ)h12n^EXTPX6UHmfT+fi zHM8I6P_q`*b5e&;AP*~usQf8D*`85{@Pq|xznz)$(p=;rg6)FI>u>?Yhh(J8Π%q= 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ξYHX8%rf85q6RM&9nVCZVW`t3%ypDGiqNa@$ukYTb`g;0UtVncg!Szj_|{?cJf{$EF4dan zO1+Fk4nz+o3d`;YU*syx-`&O6;IxlUZy|SW+*@*0CHqBwQQv9?al;#Y4GVA6GJRjC zy@LnNd>D^iJa>LGh3J95mievnO|5O!3UuX%s#O{9SlqOzwVF5Is-q<@(L3`Z9!0_3Gj~sKHcI@v_X~q8sx;-uG?k;ntv?Y%k~wZy*%ESC}m8j+gZewlyyz zKZS8H?q+CN25DfZf4w{|A~bwljPWK$)M$%5HpZA!n2*P`hAofAq>|+xPfFJJm{PJ_ zV{NQoSCW31FG|0#JW4-V?(~!8PCv|tW9GbvW9EF@hdB00{P_D^%Al6TEB=F1@RU!rcj1k4$$m7sgddySl5FTh*@o+-?oFG(|H!0_YC!jTVm%$K$+Np4k+8 zZ>x*9P5SjrOQTS{>YdDJ+?y9$DQfn$Gt2b!;cv&8Syvn4Fnz{2v!>J7kPg#lj5A|K zln&F=;|$LW_q>gBi?$o)i?$Kwi_%lMv5R4}X4r`r-MjK~S~U-cD9Y6RTmYc@er|~< zqY;L<^>k}6)z_;hT7#*4e>Cm)w0%Z@?~3U+&D8jG5@z3%@XR=Ta~Q*JpOGj2?CDW_ zheLdaL;Sud4&~E6!(m>I4QbA(sk=XHi})Tp4{3VrJPF6?$j9j@oTPK}j3^!QKeMJb zNpt3`FdiSaHS?yzwrXciA7Hz*>;2QG&rmQ4N7ohnjJkp+ocNn+?oHy~R8xpUIEgcR zMiPeuSsYH{Qz;WqWk~$286j)RPk#FJnXwOHr=Oo5Wj~5TIPo{ljML0>7z^tXPU6fi z@`PhQV`gDp!pXW6bCTwax}rFBg*de}g*b$hb!Xi?Jz1A<@UEY{Xwbtm0BY&|`EI>5 zJ)-BhkLalbBYNt?h@N&}M9)a(h@QrBL_hl({PdcU<4>Rd41NaBsMaQZulRWv&1K@E zv8sjHetr38FnJ~xEzcA@jcL~k8q=cW;^${Hty+{(Gn}NmID2n*ZY_^uW-O|vc%%26 z2o!sYH}VAP8Nyw#plNP+=;ZI1w9_DWcXwrj3*Tlaj;9Ae(QgwJ;_0HOZ}Jtz(}l1! zo?L0X_`w(J7Si(ru;TQ14i_FU4U311zFt?@4{am*`duMCxzc#P@RM92o}39{81R_q2Fyw=|x%Q5sLq@%)@Sd38WH zDDfBgeICY-y^}bF=j@DybAQDdS$tO>zAmb~dVOwz6lH|(loChxx*l&$~}r7m3Jdwjf%eU z8ht;iT0d~YCwP5Zh;ZS}ve2iCe>H*5M6QF?xsQ#0Mj=CYgK-8a^+y^SqZnB=1Pxs) zc_vWZNJGNovErB^F7FHKZAJAZTeE8a+Ib*FKea1-0fP1G=koBsNRWQ~T^hZwA8xPw z=r8nz_@>BUdskO0cZTYqF(7lBJhu$0fYDpso~Ke3&#Ur8^F`0>^;An=o#zqa@Mrn` zT-5YjjVzWt;}2cBQl~Czi3?rB5*NCM$@kUtn=wV-T?+{p&nwZQ`H*1Id`OJ94_z|pu8cLd}$3bXTsDX-hPbyza9cKY<{*|pKz46&)H z=EdOYsoNK~v}TrMX4c*i;$*bVOp$c7|1GWAx+WE^rtOW8R*1$s<1b!CzD8O{+fh}H zbE$Mf-H!4UXOrhwBoKCB_;%y$hUMBoQJ!j)me#AIpAh_vy6LqyS8LY3x?T4wio@4^ z!}V}jyy#Tn-fLyG;taT8S-p5WVc(mVg!+3s(Nz9XzW5fxu>5ETGU2NU#pSDf201J) z6e8%x>{*UpOG}Vus zc2rk5SD&FQljVgn8nG-#h&N(cju3CevK%4ah-EoKyrn#qDiljmy;D6es=vf5%Hltb zSCqwJ@pL|wl-%jdM=rU47OyB?E>7FWE-sxYvq>B7 zOF&e3Jk%M;(9#wa68oG8lX2{TbSP+HSoi@BZy= zR{Dtrt-XqT9jHdea7^7v~<`wcvnlqBB#w41bCB_H-$Rlm|^^tuQP?0V2XZ;LSw7` zHcz|*3v+z&op-G$SV}9b5T}xSXNND(#a~HbEL0Ee{9Sf_OYeT3G*E7O2X}FM`w-t1 z4%b-v^>e%V&b!`8i#zEm-|&uF;btS%K34<1zAIt59t`S*?zKGE^_N=pb05X`E+tFU zFYMzW7Lw7IS+uQOFHarY`QlR1F{dXPzFt;5g506^a2Yt}JKM>Rx<$X`6MaKpX?5~N zui~HfDU?n80{S3h-u(DSN$xs&qMwPQuIf88&G#&6s=jmnovC`C5A8l5v^=^WxV@f7 zTFLW-ReaUIu&jRAvi4!ibf3U`QuO{EpL>a-w3sVOi@Bn-m@7()xze+ym^(p1Dtr}$3CR)_#tgP`xoE-CpS>V&O1;XFV2X@ zzUG(yWRC`^Vp;rSJqvHYO}Cu9-@h_U8Mkj?c)z)&B|O{WO|<6lqHDZgOIur#{aV9U z4du1r*efirpI#}x*VS)Osa=fkcjNT9rH1wj1V#`!B|sHQnFL9Y1Z|-jX_yo_ORr{IZi}Ye25q>z*pxX%vfKt|%bube zri-TR9!Ml>L}6QW%dpk@!c?W~f`+o0_ckg}o{r(k&fAZj# za2+9T376g){=~<(hClJ~E#V(KxOMu{Tf@T{@XhJ#kabJA4q3P4FRk$M@$!+w&wS>Y zBb{2O9^X9j9vC{VRmpI8oui&|8|dr`&%wPk@WSIGCx`TKNNBeQ#ZkSYSP#xebLSo7 zsQm93M|JpGaZaAm=16Bc9#HTtW!f5VYvCK~*bsM1CBA;#t(E!uako|~#Pu9_Ts3uH z)v1}ZX2E#SGN#t8FTe3JVE;kOSUrBjGM2>`w=82>eEW_0pB(MiCfH}_`bYF);pA|S zE;$Fywy|*haF5SLZN{sf(Is*}Omlx+ofb@k;`qLKAZ)AekFR?T(jdp*EJT`jv}H{T z@uRvCeME1!^1U~HU}%f>ew{Yo+5O3J*zumNaeeo5<9mDK_}*dMqN8^KXY=n_-MNsh z7tdtRrD%TCeT`?n+dcC=Zh!OKvNlZVCT{CFXm9A;4qL88gw62Qc;4vU7f%~54cW#j zy=IZ#6TCIQbZ1~|ymZH4GoC7PU-{(SS3Y^^<~W+Jy!*=Mc#Y+AyvFi5USs(juc3Ty z(8luFYb>9=#`4)~EMJJ%P`(hap?o1;L-|6yw0znx&=cmqQ!VTljh;OC@#uV*=7@YB z!}*+;mEt>&ch=J93bo8-o);j`&-9q@z`=e^$GUzTc`{Wg3+{!}f>-#sLoR@nav9U+|f^jr*8 z@P1k$1L9TvmIfW?`?TK!mX%go<0FMp zMexO|kRY5!@L7O&mACGGd(d*YnRj;P!rw&yI(5p*8m04_5^<-)n2#6+ALB zbf&6ji$Y+my}60CFA>Jt8E?@I;a-Lh51r88L7kvJGyLj-j}?8803_{~NNv?|>X`BOkVmaK`7~aqF%xA;B*kQbo-i4@h zUOJH@a*4Th*-`>3Ofidb`I*b@JhrQ{h#HUwpE>`EtQD-WUBD(j>&wC66c` z=Zw-Pr_=jEj}PhEW%}w@r8$1QtB{E(T#rKP=0(CY;TK^X3$LhAI*k_)_BGitT|Uf$ z({Ri<-m{$Z3F#40`Yd>BdR#3ldWVUg_EEX2FZmITwB+0>?)T#!eWr)%gxA_;@jmNE z*z5gJN*7_Xw=L-U_rWKgIG~GNz3uJ3#GiEO)$Ha_*!$P_fyZkgmMmk`21h1w+!_jDRRq@i#<%Qp6Mcxd+N!-qdrXnp$V za~~xq%Uk0eiipE5o%sJr5mZ3T@!^hD1QeXuCE z?LFJRy=l+3_ig*m9nIU`zwOcO-@QHAKl19!qbHshN6)4l%Epx6{%{U-|9~H|+yA^; zcmLTlsc@jj_Iu>)nf>7j`yP?k0$%|^0dMID!5;Wqc?BtfAZMp_MeDu z3sEVz4%;Hxl>FPbBbn?-;!uAlX-6C^)fB#!vuSQi{sf{$+^+PGi5}mBZWD|8mC!#R zhBg=Vm8s+h1G9g*kiWV!!?wiBto2p>od4&=HWjlK?flC1Vs8uSdm`=o<*oNd@kgWZ z_sSoO^pB&n={f)6cKr)Ontywwr{r6Ai!PtzpO3OLUv}G?U!!hHes4?qddCXxj_}3P%^Y`x zFBZo7y~#h{l!=@DZi8NL(D4e#@psmjJ@tF(_e*($iO&BYH-z7k_VSk_{9lV+-u9sX zgXraJLuGOL_o(b`?@8BJ*54srmR=_O1JYjJrd210@0ZR7*XL6Wy0bxdH|X95J{2#H_@_!!vVd-pew2wCEPe`w5eXv_$F8@=~cO#vgsei$3?}_jP*XeWB z1N{SM{7{G==#o6RRelV)cOco{eYohy5C;ePosZr~nGByc`ky*}p98c+W)_P#^$gyMn zdKE#x-b1OEi$xPqz9AFU`k?ZRgY*g#y$a@)!Fu?}>H6q!I{JKiH$ea3Sbqr0bP&q! zpc~U=^td1Kd+KPvPD%8K?{sN=Shu9T5Zq8vIj&n4s@r|*<1VLypFe$2Zwz#+>rK`5 z!djlJzM4Gs%(ML?r}dVn)1xnh$qt{cmtbUbR0RojJ#lcLKbpts{7xITe?%|UOAR+$ zY9<2*Pi;xynmMzqmM8uG+qAvXQ4)@XlIeAYBT0XFA4b|*{%o0^;&mnn#}6kD{@cG>)#;=}9khIusISKFb@qW8&m=+~`Z%jZ=t^H>tTA8%eq`+Km~?Ml<4 z6DB27^_Vbqe0B+a#Z*0Sn9rsAbe_&#{aoKQcn_|d`fZ@KYZ2l#!3$!`7xj%zQ`1?4 z{%ES}+XQo_^4M)^I(axFI{lKV^y@IEZI#pShIv!z_n1oG3@?dJf74X@rd-NBqSH6S z7E|f>no8dWJGG5#`C)yd)l@#K=8vTNnvP#k+#T&oXDUDM2)5|^$}MKU@-ZtqZZ}V8 zpWb|4-{3S)YM;OyP&%#1TLu-+d_nWYd|Lg%RQk(ipXQ7CqUvKR{)YJ_{j@D}y1l0S zA@q#do9_GWXjMMauHQZTs!zMNd9IK5bzPqUQ}wBus?VIm70>&Qj^};eP;XQ5+Dygk z6kAT|n8qAZdh;dK(;Qa+GTk4|m$mI8{GNGQ`ytxMxxUTj7t(!am$TFQN7cVg)xX#L zjP}J$O>f53^e&r*lkXj#*ZHO{FVn8|!}14f{k-rvj(!pH;r!E>_ch@QSW+ zc-a1F^&i*_TcDaY*{=2|qBR=gm+-sL-B7b6#IK;;1)RSo8T>Kyc{qtbjlKYD__OHC za2|gFeGM+*FQae5Rs1#dJ?Q-t*US5fE}!>@%x3%odM_;Ecc2f!E_|;SoxTTF@Q2XD z(8s=>?l^h^PUFv@FTz>;IkfkOJ)H&oMYPwu_LuQj(6`|l{yKUC=Cs~*dGe;x?|}vU zR&*Qez%QY_zw2~meDB{{_rW3jDtZ+9n8VYZL{GsP{2JQ(ug-4{e;)1ahy6wTCA7CA z_E+#%(RblGz7O3TuL*j4=n#yMleGhs8w(swAJOACV0R3HL`$bdnI?#t;7k(Mt1Bc)+95a=E9PRC_ z^PR?@L0^Qk_;YA)haG`uc>qu^Z=~lkD<@QN&IQ_ z1z5wMMPG*V_zUQ3a0!1IeG_^=+T~e8--AB2XFq4E-n*gC?b`SLwteq!n??K%^dVS= zJ#YvP!*MtPr%mNQgT4r7@#oN2;3B*ZmrbQ#LEnaJ`0MBmnA3j00W=i3DHrt)b5XBDx)x z@O^yae7a#Teg!=MtN3H+^KcS>8hruQ@MqCJUh;J2@fXn7;1d2a+Q(Clzly(xz6TQ> zFS))sQ}K4gX8Z!$$6pRF;&-4A!7ltVx(8P9eca~s!*C3L96bT2@qK*f_!r?U{v7%W zT)f;0Fv^d&flKaai&7x9T)!}yy^ar_HnVpTk(DF*t#8- z@Vn66uou6A9)Lc6cK&1N^U%lB_NUPo;4Hih=S{_1KwpDP_{->Q_RFQa>41%C)V49D=t(GzeQ-^cyV_adCdpF>}P z3;2s@pBHetW&9QNZMcTNj^2QIofmMrJ<#V7T+dc?8|=U@p*vw2-`D({kIy@pL-+P1MEksi$6r8SgG>0!XkS}(d#>WIq3^-uk+i-! zQ}K4gX8ZzrFD&ABpbx<={4%-+R`7?=!*C3L96bT2@n_H%;Vk|f`U+gYUqoMr%lIqk z+i(qk9lZf_d(w8un`(zWuz=r+Zi5~8C3Gh&#=zB2vj74SVq`=mA*8A48vqllar<3$TVii@pr!@fXn7;1d2a`X*e( zUqj!6$@|m#=1lj0*o1W4a2bCEeH*UfucJ3$?$NXz@}~PgEa11I+h7NN3Ec_H_`T>pID}tCkHT^MN%Rz) z!LOk&!8!bS^i{Zszl6R4SMXQSci}pI@?B|tn_%8_|3|mLR{SEm9hUIB(A}^Xzk(is zRs1pZc{qtbjlKYD__OHCa2|gFeGM+*FQae5Rs1#dJ?NX`T;H7O{tuh+3+TPDh~I%e z1iSFd=pI|L=jayLieE&x!xDZMx*PW5 zSI`5nia&-v4=3@b(HCG1e-?ci&f_njufZk!W%NzBiob@w2a^w^_05@@zq?^GegVA~ z7V$gKhhP_e8QlXb_(SMnIEFuto`BQ%Gw6$O7Jm+X1uoz(qOZec{1xTF;#6eh-`R3+TPDh~I%e1iSFd=pIo-<;`w51a7| z=)JIr-+?{^yYS2C9$3L2LJz|+{BiUIoW`F)Uxc&xbLcB@0e=yF9WLXqpl`!9{B`sO z%zY$nhrH?j4-5FM=r-7aUqW}nGJY?*4-Vm1(W7u2e-b?fXYgz2OK=W<9(@%q;xD0Z zz!m&e^j)})pL}0h-zJzh-T%=ouob_EZiglOE_65S#jl_TU=@E1eI8EYPopou8vZQ$ zGMvX>KwpDP_{->d55X?{GP(y=@Q2XDa14JO zJprfjXV4enEdCt&3S7WnL|=!?_$%n!a1DPQy#aG=X*=Xi_kUQxZ$-Dk4*U|j6PEFN z(S2|Tzlt7(ypID}tCkHT^MN%Rz)!LOk&!8!bS^i{Zszl6R4SMXQSci}pI^0BnOO)zh| z|D#)AD}E8(4omo5=x*4HUqKJRD*hPyJe*x)bdm?Rzyy^ZA3;3<*HrRn*LhG{-Azc~27u^Sk@T=%iIF3Jw zo`N&@HS{Gohd+NZeRHP!KWxS?p!dQe zeh2yx?7}ajdte2B2t5qP@W;^;a2kIGeG$&$&!Mlt1^h+yb-0Ybg1!yc@Ym5BFxQc` zL*8`%hXwprbQ|ozFQGeO8NV0Z2Z!*h=utS1KZ%}#Gx#<1B{+vakG={Q@t4py;0pdK z`Yv3@Pd=H}w+ZG=_kVN?Y{f64+hGa63*8NS@hj*7Sj8VhpNEt9)94GZhChqG4CnC| z(AVG+{xbR|T*Y5Q--F4g()#91_kY-oUqJ7LMf?u*A=rgqM)$x9{t$W?j^U4^C*U;x z4EiFR#h*i8feZMH=<9G9e+7LTuHmnvH(>4u(ssz3?*FiW-->R79rz`5CoJRlqWj-fo`w7yL+Z@T}ZTVN}G5#0_; z_+993*o$9555Ow^82UV%h8N&0ybR|}m1_Zg4KCp?qi@1h{5AAFnER7yeRsnG+zUJ4 zAy|eza0m{=aX0~I;6*qGufRok9j?IJaLrUb*U=j=_k*dQH{CyB0lyX920QRe=uTM1 z??v~)A^a+O6prIhqNm^tehqyI&f(9aufj$ACG-urg1?Hs3)k@z)z$TFf_c;Z6Wsz^ z@r&qoSiDzU{Xr! zn=|F@hRyf|^j=uR??4}dUHD~m53Jx1p@-oZ{y2I9PUFv@FTz>;IrJ5{fWL^o4wvy) z(6`|l{yKUC=AKO3A#bW3_CUYS)cv6q-3B}GOXyBm#_vV8hruQ@MqDN;XM8V`WjrqUq;`AtN3f^d(bb?bA5BB`#)^PFQE6rB7O(@5bVM) zqkCWle+WGc$MDC|6L1=T27M9E;?JS4zyf;0Fv^d&flKaai&7x9RC*c&V!Ao!+ zUWH5W23#@KZma0Ka2-GCO3U8_^QQYRx&^l47t!sogx`hkhQ0V>=<{$Ae*t|BF5xeu zZ^BjlHS|50Jd>6)XS(0PX8ZzrFD&ABpbx<={4%-+R`7?=!*C3L96bT2@n_H%;Vk|f z`U+gYUqoMr%lIqk+i(qk9lZf_Ka{pZ-gG~N1^iZY8|=U@p*vw2zZcyHhw!WDQ8zgy(|6wzJ0lgO% z@jK9mU>ANF-2;cAy>aveoW`F)Uxc&xbLcB@0e=yF9WLXqpl`!9{B`sO%zZ8` zPu_IDhXwprbQ|ozFQGeO8NV0Z2Z!*h=utS1KZ%}#Gx#<1B{+vakG={Q@t4py;0pdK z`Yv3@PmZSbZGw5z{T}Ui>bX5y@r&qoSiDzVDfBQ-<;`w51a7|=)JIr-+?{^yYS2C9$3L2LJz|+{BiUI zoW`F)Uxc&xbLcB@0e=yF9WLXqpl`!9{B`sO%$3u2$eZr}uz=r+Zi6M*3CpJXO)t6+ z4&hhPqi`I55pt|0<7WBqA$aF`~~zixP-rqz6n?H*U;cHx)NJ+Oj5 zgdT=t_~YmaIE_Dpz6j^w6}Skm!xeZNuEPzO|3X^7J+KwF!46aPEulMM8NV0Z2Z!*h z=utS1KZ%}#Gx#<1B{+vakG={Q@t4py;0pdK`Yv3@PrjJevkB%+)vFopcd>?ki(f>y z!xDZMx*PW5SI`5nia&-v4=3@b(HCG1e-?ci&f_njufZk!W%NzBiob@w2b12kzB$wD zYuJomK<|Y`{0{UX*o9w4_rMDN5PBGn;g6#y;57aW`XZdgpF>}Pi|{&Jfw$p0+<^Hn zrS;qcTVWgQFx{`wov@7Gi|&I%_*L{M9LJwTPr(`d8u}8P!=FcAg^T!0=o@eq-i65z zr}b)r&Cu^s4*l0uy^82|SiDzVDckry>h1eFKosyp!dQeeh2yx?7}ajdte2B2t5qP;RKw47vZd__MSsu zfeZMH=<9G9e+7LTuHmnvH(;(W%|CB?{{j~9ThVQ>1HXjsgk}6*bRQhTucAlcIQ}Gh z3eMoy(3jvG{yh3BT*O~O-+(LltLVFM9Y6U~X?>eu-t_t!-2z+ji|BS(!tX+N!(RLf zdH`1O$I$2DB>pt|0<7WBqA$aF`~~zixP-rqz6n?H*U z*axd{6i&h^Sc8|~oT+{^kG=|*;0?H9D&8vkE?mb?Drvc!VBU29M7O|J{35y?mhijK z-LMzGf*ycX{4w--IEg=vz5r|Zv*^ok9)AIS4KCp?qi@1h{5AAFn4C!Kn=?PH{t27$ z3ut{LC4_gtL$C~c;1C>!<8T7bz>9DWUV)47I$VLb;X2%a`RCJe?SZYZ4VGXh?1g=> z3P<52oPsrY3C_c-Fgck{zX|3|_aC&sVc>Rc#V?}UVF|wr-3@#3E9e1O#ZTVl@I8vR zO~0MQSJ9I7Z$}7CjDDB+9{oz_+(D&M;I~LSz2oKd`w)7E=%MYA%{;8L{Jvk~j-SOV zevNoV#c}@I_4D9(zJ`zuS$>CPI9`^Y*Yp0iRyJhuI%I6A$H%uNUbna&ZiB2II^7lW zJ1BZsUC_JK2g7Li=Xjo;R&RkWr-$<&-j=kcqv5~f`1c|Vrv6=0ym-jepOvXPRI@P0 zb6aIY7Vq0+WOa4eKUTb-&mxIgJTq%M2lwvVmQ)^2l0TtwT~ZA7&5Lf6IKTP*+mdo* zWclfnG5*@l{xcsfgyFyw`k>+`+Yf&7)w>rjubG0d7d&B-iN$rhNe&S7!XJKK!Oz+G!JIm6}T$nfIow+cL+RmK&O;XvJ zE1T7wIqjAt$@tFPkjd~u+Eo+H{@m`&6wjO*C=8CB8qxP}l5?kDI;~G16|!&UL?1H> zU&7%VI$_*jHuBeTj_TX-;R{HoP7e%@CBgFti}V$u`ncM=K0YEp`DXa0W&AD6Z}5jK zH+zTs<~Qa$mZkbUi*t8>e<&;m^* zfqP*abb7~kT}@q53l!ef@Sts#^U4O7$3x?`YEJ91f_#_LJ;3oiCq9JER&!bew+vZt z@%q>C-zlE!=QMG=Ug>Pe%IA3=Z-bVUpi7?1=N^`ouT$gBFWUw!X?#?_Y;Zh>ABWD@ zL#Is7vuto2|GaK9v%%kriHA%M%T$r7S(xLw4YDDN*SHP(D+)NDMG~`kX1opZw_l1f zz0J+*=X#ip+n`Pr!ez;ZEI)69hEF~JN7x2^;^4d82KhT88tU7i-Jw+FTi^ZmN4M=M zPT$#+Ai&0`rMmIDc$yXoAfblllBxZ+}WMKaOYc!KXWTdK7VUZ@n`R-@BIF9 z;q^OtZNIh`zPz%pSi2RrV@df|KKWV4f1lPbyWW#r_=DZ~pS`26+}z43o%Tm|UCO_H z=kY@A*0%hYSF$usPNOhy4;|O>#ucyF5HC?YHT5oU7k4kc_GVGrN{>6AkE;wx@wGeM z#n)B7+O5HS?bee@zoVEdS#amLNUDVIZ&>{U)pJaDo z`p)j+FWlKtJhq~8Jep6Y@8t8p;BEL@JCsgs`o_t#uU1FTd^G(M-G~`x?MWs7=GfMS z?>GOKf1o+*yROzZYP;rdMy12H`gSYT5BW1{Nk z)Uisl>R@_ad7Ie^+o0Ej_S<1ueC&Nn{4R$FZ4>*HM>eFZv-`J+B?SyAl2#&NJ?(f} zPu;gooR0ERaDAQLxJ~?8@rtC$wqcIf;*1zPT~FfE(D6N7mf4z)hX0P^Ul$Cf{@t({ z4VmE+DFQm#i{zs7CYq6*=4Vm4&?c||vN zcJPI4Blb?mQSHSJ9Zh+7=i?}U%R)na8}_YX&tm#cqIGeSoLupGH_^H|)qh$1#Z7-f ze&HAHG!-x2X-X899AC*5FFuq@{_;aRl1dWNzKb|HZI6Cxb9?lb3$&(f=1k@FJ1yF7 z?yP)yB`N;$oo(gX8=A(g?Imras;|AdJ9+Jn7N=bg>zK~lh_KDem*pqFktDyI9{+j! z7`pCrx0;H2vv=`lwZ!yjn>qbHANM82iTAZ=d$*?TU7NOBZ7PemYu?^HtUSFf{XUg# zceEY;zu$g)*IU{yO{<*inyCAzxA8R{d%CiZdZBRqw?mG*WPSW zIbG&`DsyO$V);$A&9*;$`|U@wbTcaN1qBvd{=<*|!G_A6RBLa9<7VxX)Z2Ny_Qvhh!6^h)J7)unb_nST9FVcWzXyk}Z%S)EY2U%8VV zdwc&!tFc|yP4YuI)A{tM+Ul0~6V`u5$LgZXKypCFNWC zy62rg(ER#GnqRFAVND8qQ(^y5VfWM)H}zZ8@3MYf|L@yxck1VJ3azSttJ>LZ;I{R? zR48+pzS^Wb5p>L^iD)QA6^eQeL)&0(8ASri7X+mr3e{llWiJ^!r_h^_j$A6S1%?2hy? zjaT*Cqo2dQk2|hkI&2H)jx*)GFHhh7B^}cEt@TQ63*qgNc77|7c6#@RbV$?RQ@_r% z!*|n{y*K6brAQMoz{d#jKDp0Kg#M(^bxq^`b74Ch;_pm+y3&LD|F*DH2O0kP7-DPw zjk+oM38FWJ^i9dni5|~1!2v#(77zEIdwXy4l=ynbHggDZ((_%9eK1|FcW41~UugMIy3f&~6-Kk>k>82x z<=Ef-_B`I9z13m+ig(^rJZ}RWZ^hw?w`yud)1l?p@09d+j$3p90tes_9EMdm3di7iI1VS^ zB%FfN@B*BH!n+zCbll#hd5{fFjC_~qW6BcR-=$pExDWBvMZ)~aiRwy0XIc1r(DC57 z9@KThyv%|f&*`%vo37`N)2O?I!STG_&xS0X=a=m)KYzFQVirlv;&o^|u7|%<>3td3 zV<+)kj%W3Ae%bkgyaHRKv%&c}yz#ngo8q-*k%;4XFEXA5^>|{@;5Z%{ue&;)+bSEf zcse$%*VSP^sdzu1MG~`kX4ZBN&ONMUMvdfi1s~MU^~mezHp$vfqe-(iV`sBWq_fd8 zCr7INCq_=c+w%nn4t(O{>4n#KK40K>t7@p9FUV`IH0d~WNAdNq>X_&)2R0R6*SYIR zhvTkD>sV@AKGJ`j{*T-5kNeMmwdKdlY&Lj3<3X$DFnHb5%=j-rqb>5h-f=u{pFKF9 z*JoZwdz~MKEMp08hr@v9{0Fcy6f`o1_$9bkoM1dIOMM$celE);;$_e#B<#CeJKTe# zUkzhP;%T@Zd-Pkxi*Yv=8h0M|8a&rGTM1|7^K^H!V$P=F>3Uz!!(@t(-=WC!sHf2t zd2UmCy?7d}58gNQkWJU|rtqdU?ooS}BQML(=NKA?WxO~)?`Jj+xp>2+Ku@DN^Ozq_ z(~g(r=b%!9=Xlw?bUaVa`3(@y;~w13qj+vpkGh@5@ibZ=YEe9!&SN%<7nSdNgXd}7 zZ1CJq?>2a?^1PoMhA6)QtPIYtu|K=a6GU)bv*cNJPU9g9^R%+6J6bKk$IUp9UBscd>KOPh3-=e$O;cn%wi^hz}Du$r{~LjBxd z;&h8qSg|2&JqqiM!d%Y1(pjG48qezPHtdPQmZEen%Y`V+$2nQL4uvg5Vcx&a>h3&! zZ2j!v^w0V4#ZEN7(I7(@X6s9&zwCq zI;6BZUQIofHA+ib4Gcl<7Wq7IrGw>B$~V8HtY6Wc@ov7#{EAyyg$>OZ>0{yUCC3SMaOpJz(rG;Z>d_NwbPbvQ?BJ`L@t!?;{D{J` z_Q>j)>8D;D9o*8^PkpK9$nnkiJ+D?n-dTK4hcbNrxg*DWti$~MGv@|JG!M>HUH%ip z$D{d~#ow%FhSFX|Pqa%R30kd{%4B5l?5PvO>dMc%$JhJI(?>OTkGT=Q+3qzwd*=W5lgM8G zWWzV=9J1Hz>5!ho&9(_%+kLA7TC!m2Y#WfpcX(SvcrnrrKNM-FFGbqn-H~>PI` ze{ZAHAr0R=Pn@RD_A#^kOHq8M?~b&mUyiiH`y%b|N~9e=9BGGFBkgeSQ=~&$zVS#q zd@9mTKOJd@UyQWFYms*N$5NU^B zkF>*=BJJ>-k#_h>q#b@Y(hgsXw8J+d?eO|eW;Xw`ola?o`#fMeu>42b;e|*$|F%dw zyclVRABwcYOObYXccdL&jq#ZsSX@^%M?QowPP6w9%NIQHg(oR1eX@_5o zw8LwWcKGE;JA5wE4!;^{$@<`Hm=50@9@2HRbZ8ZP4b%5#c>ECh2So3`meHRVui!cU z3mW(FmE&0dxOiSVOaF_~K90)r|69^4k^W6-A1`I$|A%xj(yP)wF3Q5aZ5fx&%9B@K z?!Q_12c>lVH-Surv zUeSEbvR~!N2750{PwLmA@o!Ukep2K1v-p3xA%0D|5QYDGL-=n=7o+gsYY4wBU5di* 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

=THx4>Dz6?^?b_tu#~)Vf~neLi??HY1e{kVao3E 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

~bB1E(JS!7I;)ovcDc!=82tm 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

^cd*uG8WiJjid6a+%|TFi${S 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

TtvWO{Pt|7Y(_;Hs$J$NzKh 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