Compare commits
160 Commits
Author | SHA1 | Date | |
---|---|---|---|
0d9fac7363 | |||
2fb91fccc0 | |||
24e1ab12ab | |||
10ea885d8d | |||
ec65faa12d | |||
53692a1ea8 | |||
ebef51b4ea | |||
a94d6f9271 | |||
3d2c88c201 | |||
bdeee7fc0e | |||
33a037e0ea | |||
2dc2d9ebf6 | |||
9748f0ed8b | |||
d6be2f7d54 | |||
63615747a7 | |||
fbb657a85c | |||
bdac0c7879 | |||
54dde76a8a | |||
2bbe22bc7a | |||
ad8532f7ac | |||
602941104e | |||
d38b41687c | |||
08125cd1e8 | |||
2ce2097a3f | |||
a5da17e1b1 | |||
2b0962f087 | |||
37173cce4c | |||
37edbd9824 | |||
a32bb02223 | |||
2ab1b84432 | |||
52ae19220c | |||
10bfa65a4e | |||
2a3b1a1e33 | |||
f74f4f6da9 | |||
12a8b7a058 | |||
400f07660f | |||
d532795b7f | |||
6064ed6a3a | |||
2c1a43df2e | |||
bf72782c9f | |||
63dcab30c3 | |||
50e48af7c4 | |||
9127a18ff0 | |||
61ff466908 | |||
1c10768aa4 | |||
992b123853 | |||
f736756b20 | |||
28d73f5b37 | |||
262b0e5e52 | |||
1e3807bcb9 | |||
2ed3295f77 | |||
8c9d687d50 | |||
b8b694864e | |||
961109635b | |||
86bc46a11e | |||
a6a6fe75ec | |||
f55f863867 | |||
4ce988d00b | |||
1548a8a852 | |||
a9551b057b | |||
88c7d91858 | |||
53cb80ebf7 | |||
1f67343d75 | |||
4bea8bb6ba | |||
8e1461b3f1 | |||
90b513d070 | |||
8a2d3d4669 | |||
1741403206 | |||
980db880cc | |||
507a62539d | |||
6b5d73ed5c | |||
1f77df7a90 | |||
fa87462405 | |||
a5f9f927e6 | |||
b35d74ce36 | |||
ac60be14a5 | |||
beda047eb0 | |||
f6742bebf3 | |||
7f334ad783 | |||
ffda896308 | |||
b2fbe9dfac | |||
6d6c41bffa | |||
e04d137af5 | |||
ec52e62908 | |||
6104af0d70 | |||
0ca05e297d | |||
e0dcec074c | |||
a8cecb5c64 | |||
582ee0e4d7 | |||
0ba54c2b7b | |||
3c288f7f68 | |||
c692b1b1f8 | |||
7091b6e6a5 | |||
48cd08e095 | |||
ef7f9db9c4 | |||
0092f24fb9 | |||
f9db1a7acf | |||
da75ad9337 | |||
7318ddd70e | |||
ab75ec07f8 | |||
0a6b842179 | |||
5d5ff121f9 | |||
adefa76dfd | |||
2420869e7f | |||
f841ca4399 | |||
433db904cd | |||
c067623740 | |||
dab7050899 | |||
77df158178 | |||
0af1bcf110 | |||
e05302ac99 | |||
ce6cc82d64 | |||
85a2bc3f0f | |||
3285d93576 | |||
0f11f497ed | |||
45a5202456 | |||
ce0b4de5a1 | |||
134b2556ad | |||
67d34bf70e | |||
73863f9418 | |||
0cbc1a650b | |||
9248dfd97e | |||
b8f54f324f | |||
3269c7ca45 | |||
8a1b4cceec | |||
7cd925feca | |||
f6ae15c4dc | |||
6ed057089b | |||
a5ba014736 | |||
4d4cc92150 | |||
3b00b31e87 | |||
3c687dc780 | |||
987b2d539a | |||
80a1e94da4 | |||
69253432b8 | |||
53e4f4341c | |||
6ff33191bb | |||
513eb88a53 | |||
3506d9dec1 | |||
c09e043812 | |||
4c01f23ee8 | |||
ff06e91ac8 | |||
8ed359327c | |||
a66a70324d | |||
67fbbd4a8d | |||
235fc9b8f9 | |||
f257cccded | |||
5342ddb2bd | |||
7cba1b21ad | |||
120ed36552 | |||
a9f6593979 | |||
ca6d042ed6 | |||
ae4c2aef69 | |||
ed1c85288c | |||
71151a511d | |||
7f35f01b88 | |||
1d13c25ded | |||
09ddfffa6b | |||
d9aee6d05f | |||
94d7d2e3e0 |
DockerfileMakefileREADME.mdconfigureconfigure.ac
apps
admin.json
admin
api.jsonapi
apps.jsonapps
appstore.jsonappstore
cory
db.jsondb
docs.jsondocs
follow.jsonfollow
ssb.jsonssb
app.jscommonmark-hashtag.jscommonmark-linkify.jscommonmark.min.jsemojis.jsemojis.jsonindex.htmllit-all.min.jslit-all.min.js.mapscript.jstf-app.jstf-compose.jstf-id-picker.jstf-message.jstf-news.jstf-profile.jstf-styles.jstf-tab-connections.jstf-tab-news.jstf-tab-search.jstf-user.jstf-utils.jstribute.csstribute.esm.js
todo.jsontodo
core
deps
base64c
libsodium
.github
AUTHORSLICENSEazure-pipelines.ymlbuild-aux
build.zigbuilds
msvc
properties
dist-build
android-aar.shandroid-armv7-a.shandroid-armv8-a.shandroid-build.shapple-xcframework.shemscripten-symbols.defemscripten.shgenerate-emscripten-symbols.shwasm32-wasi.sh
m4
packaging
src
libsodium
crypto_aead
aes256gcm
crypto_pwhash
crypto_scalarmult
curve25519
crypto_stream
salsa20
xmm6int
sodium
test
openssl
android
arm64-v8a
usr
local
bin
include
openssl
aes.hasn1.hasn1_mac.hasn1err.hasn1t.hasync.hasyncerr.hbio.hbioerr.hblowfish.hbn.hbnerr.hbuffer.hbuffererr.hcamellia.hcast.hcmac.hcms.hcmserr.hcomp.hcomperr.hconf.hconf_api.hconferr.hcrypto.hcryptoerr.hct.hcterr.hdes.hdh.hdherr.hdsa.hdsaerr.hdtls1.he_os2.hebcdic.hec.hecdh.hecdsa.hecerr.hengine.hengineerr.herr.hevp.hevperr.hhmac.hidea.hkdf.hkdferr.hlhash.hmd2.hmd4.hmd5.hmdc2.hmodes.hobj_mac.hobjects.hobjectserr.hocsp.hocsperr.hopensslconf.hopensslv.hossl_typ.hpem.hpem2.hpemerr.hpkcs12.hpkcs12err.hpkcs7.hpkcs7err.hrand.hrand_drbg.hranderr.hrc2.hrc4.hrc5.hripemd.hrsa.hrsaerr.hsafestack.hseed.hsha.hsrp.hsrtp.hssl.hssl2.hssl3.hsslerr.hstack.hstore.hstoreerr.hsymhacks.htls1.hts.htserr.htxt_db.hui.huierr.hwhrlpool.hx509.hx509_vfy.hx509err.hx509v3.hx509v3err.h
lib
pkgconfig
share
doc
openssl
html
man1
CA.pl.htmlasn1parse.htmlc_rehash.htmlca.htmlciphers.htmlcms.htmlcrl.htmlcrl2pkcs7.htmldgst.htmldhparam.htmldsa.htmldsaparam.htmlec.htmlecparam.htmlenc.htmlengine.htmlerrstr.htmlgendsa.htmlgenpkey.htmlgenrsa.htmllist.htmlnseq.htmlocsp.htmlopenssl-asn1parse.htmlopenssl-c_rehash.htmlopenssl-ca.htmlopenssl-ciphers.htmlopenssl-cms.htmlopenssl-crl.htmlopenssl-crl2pkcs7.htmlopenssl-dgst.htmlopenssl-dhparam.htmlopenssl-dsa.htmlopenssl-dsaparam.htmlopenssl-ec.htmlopenssl-ecparam.htmlopenssl-enc.htmlopenssl-engine.htmlopenssl-errstr.htmlopenssl-gendsa.htmlopenssl-genpkey.htmlopenssl-genrsa.htmlopenssl-list.htmlopenssl-nseq.htmlopenssl-ocsp.htmlopenssl-passwd.htmlopenssl-pkcs12.htmlopenssl-pkcs7.htmlopenssl-pkcs8.htmlopenssl-pkey.htmlopenssl-pkeyparam.htmlopenssl-pkeyutl.htmlopenssl-prime.htmlopenssl-rand.htmlopenssl-rehash.htmlopenssl-req.htmlopenssl-rsa.htmlopenssl-rsautl.htmlopenssl-s_client.htmlopenssl-s_server.htmlopenssl-s_time.htmlopenssl-sess_id.htmlopenssl-smime.htmlopenssl-speed.htmlopenssl-spkac.htmlopenssl-srp.htmlopenssl-storeutl.htmlopenssl-ts.htmlopenssl-tsget.htmlopenssl-verify.htmlopenssl-version.htmlopenssl-x509.htmlopenssl.htmlpasswd.htmlpkcs12.htmlpkcs7.htmlpkcs8.htmlpkey.htmlpkeyparam.htmlpkeyutl.htmlprime.htmlrand.htmlrehash.htmlreq.htmlrsa.htmlrsautl.htmls_client.htmls_server.htmls_time.htmlsess_id.htmlsmime.htmlspeed.htmlspkac.htmlsrp.htmlstoreutl.htmlts.htmltsget.htmlverify.htmlversion.htmlx509.html
man3
ACCESS_DESCRIPTION_free.htmlACCESS_DESCRIPTION_new.htmlADMISSIONS.htmlADMISSIONS_free.htmlADMISSIONS_get0_admissionAuthority.htmlADMISSIONS_get0_namingAuthority.htmlADMISSIONS_get0_professionInfos.htmlADMISSIONS_new.htmlADMISSIONS_set0_admissionAuthority.htmlADMISSIONS_set0_namingAuthority.htmlADMISSIONS_set0_professionInfos.htmlADMISSION_SYNTAX.htmlADMISSION_SYNTAX_free.htmlADMISSION_SYNTAX_get0_admissionAuthority.htmlADMISSION_SYNTAX_get0_contentsOfAdmissions.htmlADMISSION_SYNTAX_new.htmlADMISSION_SYNTAX_set0_admissionAuthority.htmlADMISSION_SYNTAX_set0_contentsOfAdmissions.htmlASIdOrRange_free.htmlASIdOrRange_new.htmlASIdentifierChoice_free.htmlASIdentifierChoice_new.htmlASIdentifiers_free.htmlASIdentifiers_new.htmlASN1_ENUMERATED_get.htmlASN1_ENUMERATED_get_int64.htmlASN1_ENUMERATED_set.htmlASN1_ENUMERATED_set_int64.htmlASN1_ENUMERATED_to_BN.htmlASN1_GENERALIZEDTIME_adj.htmlASN1_GENERALIZEDTIME_check.htmlASN1_GENERALIZEDTIME_print.htmlASN1_GENERALIZEDTIME_set.htmlASN1_GENERALIZEDTIME_set_string.htmlASN1_INTEGER_get.htmlASN1_INTEGER_get_int64.htmlASN1_INTEGER_get_uint64.htmlASN1_INTEGER_set.htmlASN1_INTEGER_set_int64.htmlASN1_INTEGER_set_uint64.htmlASN1_INTEGER_to_BN.htmlASN1_ITEM.htmlASN1_ITEM_get.htmlASN1_ITEM_lookup.htmlASN1_OBJECT_free.htmlASN1_OBJECT_new.htmlASN1_STRING_TABLE.htmlASN1_STRING_TABLE_add.htmlASN1_STRING_TABLE_cleanup.htmlASN1_STRING_TABLE_get.htmlASN1_STRING_cmp.htmlASN1_STRING_data.htmlASN1_STRING_dup.htmlASN1_STRING_free.htmlASN1_STRING_get0_data.htmlASN1_STRING_length.htmlASN1_STRING_new.htmlASN1_STRING_print.htmlASN1_STRING_print_ex.htmlASN1_STRING_print_ex_fp.htmlASN1_STRING_set.htmlASN1_STRING_to_UTF8.htmlASN1_STRING_type.htmlASN1_STRING_type_new.htmlASN1_TIME_adj.htmlASN1_TIME_check.htmlASN1_TIME_cmp_time_t.htmlASN1_TIME_compare.htmlASN1_TIME_diff.htmlASN1_TIME_normalize.htmlASN1_TIME_print.htmlASN1_TIME_set.htmlASN1_TIME_set_string.htmlASN1_TIME_set_string_X509.htmlASN1_TIME_to_generalizedtime.htmlASN1_TIME_to_tm.htmlASN1_TYPE_cmp.htmlASN1_TYPE_get.htmlASN1_TYPE_pack_sequence.htmlASN1_TYPE_set.htmlASN1_TYPE_set1.htmlASN1_TYPE_unpack_sequence.htmlASN1_UTCTIME_adj.htmlASN1_UTCTIME_check.htmlASN1_UTCTIME_cmp_time_t.htmlASN1_UTCTIME_print.htmlASN1_UTCTIME_set.htmlASN1_UTCTIME_set_string.htmlASN1_add_oid_module.htmlASN1_generate_nconf.htmlASN1_generate_v3.htmlASN1_tag2str.htmlASRange_free.htmlASRange_new.htmlASYNC_WAIT_CTX_clear_fd.htmlASYNC_WAIT_CTX_free.htmlASYNC_WAIT_CTX_get_all_fds.htmlASYNC_WAIT_CTX_get_changed_fds.htmlASYNC_WAIT_CTX_get_fd.htmlASYNC_WAIT_CTX_new.htmlASYNC_WAIT_CTX_set_wait_fd.htmlASYNC_block_pause.htmlASYNC_cleanup_thread.htmlASYNC_get_current_job.htmlASYNC_get_wait_ctx.htmlASYNC_init_thread.htmlASYNC_is_capable.htmlASYNC_pause_job.htmlASYNC_start_job.htmlASYNC_unblock_pause.htmlAUTHORITY_INFO_ACCESS_free.htmlAUTHORITY_INFO_ACCESS_new.htmlAUTHORITY_KEYID_free.htmlAUTHORITY_KEYID_new.htmlBASIC_CONSTRAINTS_free.htmlBASIC_CONSTRAINTS_new.htmlBF_cbc_encrypt.htmlBF_cfb64_encrypt.htmlBF_decrypt.htmlBF_ecb_encrypt.htmlBF_encrypt.htmlBF_ofb64_encrypt.htmlBF_options.htmlBF_set_key.htmlBIO_ADDR.htmlBIO_ADDRINFO.htmlBIO_ADDRINFO_address.htmlBIO_ADDRINFO_family.htmlBIO_ADDRINFO_free.htmlBIO_ADDRINFO_next.htmlBIO_ADDRINFO_protocol.htmlBIO_ADDRINFO_socktype.htmlBIO_ADDR_clear.htmlBIO_ADDR_family.htmlBIO_ADDR_free.htmlBIO_ADDR_hostname_string.htmlBIO_ADDR_new.htmlBIO_ADDR_path_string.htmlBIO_ADDR_rawaddress.htmlBIO_ADDR_rawmake.htmlBIO_ADDR_rawport.htmlBIO_ADDR_service_string.htmlBIO_accept_ex.htmlBIO_append_filename.htmlBIO_bind.htmlBIO_callback_ctrl.htmlBIO_callback_fn.htmlBIO_callback_fn_ex.htmlBIO_closesocket.htmlBIO_connect.htmlBIO_ctrl.htmlBIO_ctrl_get_read_request.htmlBIO_ctrl_get_write_guarantee.htmlBIO_ctrl_pending.htmlBIO_ctrl_reset_read_request.htmlBIO_ctrl_wpending.htmlBIO_debug_callback.htmlBIO_destroy_bio_pair.htmlBIO_do_accept.htmlBIO_do_connect.htmlBIO_do_handshake.htmlBIO_eof.htmlBIO_f_base64.htmlBIO_f_buffer.htmlBIO_f_cipher.htmlBIO_f_md.htmlBIO_f_null.htmlBIO_f_ssl.htmlBIO_find_type.htmlBIO_flush.htmlBIO_free.htmlBIO_free_all.htmlBIO_get_accept_ip_family.htmlBIO_get_accept_name.htmlBIO_get_accept_port.htmlBIO_get_bind_mode.htmlBIO_get_buffer_num_lines.htmlBIO_get_callback.htmlBIO_get_callback_arg.htmlBIO_get_callback_ex.htmlBIO_get_cipher_ctx.htmlBIO_get_cipher_status.htmlBIO_get_close.htmlBIO_get_conn_address.htmlBIO_get_conn_hostname.htmlBIO_get_conn_ip_family.htmlBIO_get_conn_port.htmlBIO_get_data.htmlBIO_get_ex_data.htmlBIO_get_ex_new_index.htmlBIO_get_fd.htmlBIO_get_fp.htmlBIO_get_info_callback.htmlBIO_get_init.htmlBIO_get_md.htmlBIO_get_md_ctx.htmlBIO_get_mem_data.htmlBIO_get_mem_ptr.htmlBIO_get_new_index.htmlBIO_get_num_renegotiates.htmlBIO_get_peer_name.htmlBIO_get_peer_port.htmlBIO_get_read_request.htmlBIO_get_retry_BIO.htmlBIO_get_retry_reason.htmlBIO_get_shutdown.htmlBIO_get_ssl.htmlBIO_get_write_buf_size.htmlBIO_get_write_guarantee.htmlBIO_gets.htmlBIO_hostserv_priorities.htmlBIO_info_cb.htmlBIO_int_ctrl.htmlBIO_listen.htmlBIO_lookup.htmlBIO_lookup_ex.htmlBIO_lookup_type.htmlBIO_make_bio_pair.htmlBIO_meth_free.htmlBIO_meth_get_callback_ctrl.htmlBIO_meth_get_create.htmlBIO_meth_get_ctrl.htmlBIO_meth_get_destroy.htmlBIO_meth_get_gets.htmlBIO_meth_get_puts.htmlBIO_meth_get_read.htmlBIO_meth_get_read_ex.htmlBIO_meth_get_write.htmlBIO_meth_get_write_ex.htmlBIO_meth_new.htmlBIO_meth_set_callback_ctrl.htmlBIO_meth_set_create.htmlBIO_meth_set_ctrl.htmlBIO_meth_set_destroy.htmlBIO_meth_set_gets.htmlBIO_meth_set_puts.htmlBIO_meth_set_read.htmlBIO_meth_set_read_ex.htmlBIO_meth_set_write.htmlBIO_meth_set_write_ex.htmlBIO_method_type.htmlBIO_new.htmlBIO_new_CMS.htmlBIO_new_accept.htmlBIO_new_bio_pair.htmlBIO_new_buffer_ssl_connect.htmlBIO_new_connect.htmlBIO_new_fd.htmlBIO_new_file.htmlBIO_new_fp.htmlBIO_new_mem_buf.htmlBIO_new_socket.htmlBIO_new_ssl.htmlBIO_new_ssl_connect.htmlBIO_next.htmlBIO_parse_hostserv.htmlBIO_pending.htmlBIO_pop.htmlBIO_printf.htmlBIO_ptr_ctrl.htmlBIO_push.htmlBIO_puts.htmlBIO_read.htmlBIO_read_ex.htmlBIO_read_filename.htmlBIO_reset.htmlBIO_retry_type.htmlBIO_rw_filename.htmlBIO_s_accept.htmlBIO_s_bio.htmlBIO_s_connect.htmlBIO_s_fd.htmlBIO_s_file.htmlBIO_s_mem.htmlBIO_s_null.htmlBIO_s_secmem.htmlBIO_s_socket.htmlBIO_seek.htmlBIO_set_accept_bios.htmlBIO_set_accept_ip_family.htmlBIO_set_accept_name.htmlBIO_set_accept_port.htmlBIO_set_bind_mode.htmlBIO_set_buffer_read_data.htmlBIO_set_buffer_size.htmlBIO_set_callback.htmlBIO_set_callback_arg.htmlBIO_set_callback_ex.htmlBIO_set_cipher.htmlBIO_set_close.htmlBIO_set_conn_address.htmlBIO_set_conn_hostname.htmlBIO_set_conn_ip_family.htmlBIO_set_conn_port.htmlBIO_set_data.htmlBIO_set_ex_data.htmlBIO_set_fd.htmlBIO_set_fp.htmlBIO_set_info_callback.htmlBIO_set_init.htmlBIO_set_md.htmlBIO_set_mem_buf.htmlBIO_set_mem_eof_return.htmlBIO_set_nbio.htmlBIO_set_nbio_accept.htmlBIO_set_next.htmlBIO_set_read_buffer_size.htmlBIO_set_retry_reason.htmlBIO_set_shutdown.htmlBIO_set_ssl.htmlBIO_set_ssl_mode.htmlBIO_set_ssl_renegotiate_bytes.htmlBIO_set_ssl_renegotiate_timeout.htmlBIO_set_write_buf_size.htmlBIO_set_write_buffer_size.htmlBIO_should_io_special.htmlBIO_should_read.htmlBIO_should_retry.htmlBIO_should_write.htmlBIO_shutdown_wr.htmlBIO_snprintf.htmlBIO_socket.htmlBIO_ssl_copy_session_id.htmlBIO_ssl_shutdown.htmlBIO_tell.htmlBIO_up_ref.htmlBIO_vfree.htmlBIO_vprintf.htmlBIO_vsnprintf.htmlBIO_wpending.htmlBIO_write.htmlBIO_write_ex.htmlBIO_write_filename.htmlBN_BLINDING_convert.htmlBN_BLINDING_convert_ex.htmlBN_BLINDING_create_param.htmlBN_BLINDING_free.htmlBN_BLINDING_get_flags.htmlBN_BLINDING_invert.htmlBN_BLINDING_invert_ex.htmlBN_BLINDING_is_current_thread.htmlBN_BLINDING_lock.htmlBN_BLINDING_new.htmlBN_BLINDING_set_current_thread.htmlBN_BLINDING_set_flags.htmlBN_BLINDING_unlock.htmlBN_BLINDING_update.htmlBN_CTX_end.htmlBN_CTX_free.htmlBN_CTX_get.htmlBN_CTX_new.htmlBN_CTX_secure_new.htmlBN_CTX_start.htmlBN_GENCB_call.htmlBN_GENCB_free.htmlBN_GENCB_get_arg.htmlBN_GENCB_new.htmlBN_GENCB_set.htmlBN_GENCB_set_old.htmlBN_MONT_CTX_copy.htmlBN_MONT_CTX_free.htmlBN_MONT_CTX_new.htmlBN_MONT_CTX_set.htmlBN_RECP_CTX_free.htmlBN_RECP_CTX_new.htmlBN_RECP_CTX_set.htmlBN_abs_is_word.htmlBN_add.htmlBN_add_word.htmlBN_bin2bn.htmlBN_bn2bin.htmlBN_bn2binpad.htmlBN_bn2dec.htmlBN_bn2hex.htmlBN_bn2lebinpad.htmlBN_bn2mpi.htmlBN_clear.htmlBN_clear_bit.htmlBN_clear_free.htmlBN_cmp.htmlBN_copy.htmlBN_dec2bn.htmlBN_div.htmlBN_div_recp.htmlBN_div_word.htmlBN_dup.htmlBN_exp.htmlBN_free.htmlBN_from_montgomery.htmlBN_gcd.htmlBN_generate_prime.htmlBN_generate_prime_ex.htmlBN_get0_nist_prime_192.htmlBN_get0_nist_prime_224.htmlBN_get0_nist_prime_256.htmlBN_get0_nist_prime_384.htmlBN_get0_nist_prime_521.htmlBN_get_rfc2409_prime_1024.htmlBN_get_rfc2409_prime_768.htmlBN_get_rfc3526_prime_1536.htmlBN_get_rfc3526_prime_2048.htmlBN_get_rfc3526_prime_3072.htmlBN_get_rfc3526_prime_4096.htmlBN_get_rfc3526_prime_6144.htmlBN_get_rfc3526_prime_8192.htmlBN_get_word.htmlBN_hex2bn.htmlBN_is_bit_set.htmlBN_is_odd.htmlBN_is_one.htmlBN_is_prime.htmlBN_is_prime_ex.htmlBN_is_prime_fasttest.htmlBN_is_prime_fasttest_ex.htmlBN_is_word.htmlBN_is_zero.htmlBN_lebin2bn.htmlBN_lshift.htmlBN_lshift1.htmlBN_mask_bits.htmlBN_mod.htmlBN_mod_add.htmlBN_mod_exp.htmlBN_mod_inverse.htmlBN_mod_mul.htmlBN_mod_mul_montgomery.htmlBN_mod_mul_reciprocal.htmlBN_mod_sqr.htmlBN_mod_sqrt.htmlBN_mod_sub.htmlBN_mod_word.htmlBN_mpi2bn.htmlBN_mul.htmlBN_mul_word.htmlBN_new.htmlBN_nnmod.htmlBN_num_bits.htmlBN_num_bits_word.htmlBN_num_bytes.htmlBN_one.htmlBN_print.htmlBN_print_fp.htmlBN_priv_rand.htmlBN_priv_rand_range.htmlBN_pseudo_rand.htmlBN_pseudo_rand_range.htmlBN_rand.htmlBN_rand_range.htmlBN_rshift.htmlBN_rshift1.htmlBN_secure_new.htmlBN_security_bits.htmlBN_set_bit.htmlBN_set_word.htmlBN_sqr.htmlBN_sub.htmlBN_sub_word.htmlBN_swap.htmlBN_to_ASN1_ENUMERATED.htmlBN_to_ASN1_INTEGER.htmlBN_to_montgomery.htmlBN_ucmp.htmlBN_value_one.htmlBN_with_flags.htmlBN_zero.htmlBUF_MEM_free.htmlBUF_MEM_grow.htmlBUF_MEM_grow_clean.htmlBUF_MEM_new.htmlBUF_MEM_new_ex.htmlBUF_reverse.htmlCERTIFICATEPOLICIES_free.htmlCERTIFICATEPOLICIES_new.htmlCMS_ContentInfo_free.htmlCMS_ContentInfo_new.htmlCMS_ContentInfo_print_ctx.htmlCMS_ReceiptRequest_create0.htmlCMS_ReceiptRequest_free.htmlCMS_ReceiptRequest_get0_values.htmlCMS_ReceiptRequest_new.htmlCMS_RecipientInfo_decrypt.htmlCMS_RecipientInfo_encrypt.htmlCMS_RecipientInfo_kekri_get0_id.htmlCMS_RecipientInfo_kekri_id_cmp.htmlCMS_RecipientInfo_ktri_cert_cmp.htmlCMS_RecipientInfo_ktri_get0_signer_id.htmlCMS_RecipientInfo_set0_key.htmlCMS_RecipientInfo_set0_pkey.htmlCMS_RecipientInfo_type.htmlCMS_SignerInfo_cert_cmp.htmlCMS_SignerInfo_get0_signature.htmlCMS_SignerInfo_get0_signer_id.htmlCMS_SignerInfo_set1_signer_cert.htmlCMS_SignerInfo_sign.htmlCMS_add0_cert.htmlCMS_add0_crl.htmlCMS_add0_recipient_key.htmlCMS_add1_ReceiptRequest.htmlCMS_add1_cert.htmlCMS_add1_crl.htmlCMS_add1_recipient_cert.htmlCMS_add1_signer.htmlCMS_compress.htmlCMS_decrypt.htmlCMS_encrypt.htmlCMS_final.htmlCMS_get0_RecipientInfos.htmlCMS_get0_SignerInfos.htmlCMS_get0_content.htmlCMS_get0_eContentType.htmlCMS_get0_signers.htmlCMS_get0_type.htmlCMS_get1_ReceiptRequest.htmlCMS_get1_certs.htmlCMS_get1_crls.htmlCMS_set1_eContentType.htmlCMS_sign.htmlCMS_sign_receipt.htmlCMS_uncompress.htmlCMS_verify.htmlCMS_verify_receipt.htmlCONF_modules_finish.htmlCONF_modules_free.htmlCONF_modules_load.htmlCONF_modules_load_file.htmlCONF_modules_unload.htmlCRL_DIST_POINTS_free.htmlCRL_DIST_POINTS_new.htmlCRYPTO_EX_dup.htmlCRYPTO_EX_free.htmlCRYPTO_EX_new.htmlCRYPTO_THREAD_lock_free.htmlCRYPTO_THREAD_lock_new.htmlCRYPTO_THREAD_read_lock.htmlCRYPTO_THREAD_run_once.htmlCRYPTO_THREAD_unlock.htmlCRYPTO_THREAD_write_lock.htmlCRYPTO_atomic_add.htmlCRYPTO_clear_free.htmlCRYPTO_clear_realloc.htmlCRYPTO_free.htmlCRYPTO_free_ex_data.htmlCRYPTO_free_ex_index.htmlCRYPTO_get_alloc_counts.htmlCRYPTO_get_ex_data.htmlCRYPTO_get_ex_new_index.htmlCRYPTO_get_mem_functions.htmlCRYPTO_malloc.htmlCRYPTO_mem_ctrl.htmlCRYPTO_mem_debug_pop.htmlCRYPTO_mem_debug_push.htmlCRYPTO_mem_leaks.htmlCRYPTO_mem_leaks_cb.htmlCRYPTO_mem_leaks_fp.htmlCRYPTO_memcmp.htmlCRYPTO_new_ex_data.htmlCRYPTO_realloc.htmlCRYPTO_secure_allocated.htmlCRYPTO_secure_clear_free.htmlCRYPTO_secure_free.htmlCRYPTO_secure_malloc.htmlCRYPTO_secure_malloc_done.htmlCRYPTO_secure_malloc_init.htmlCRYPTO_secure_malloc_initialized.htmlCRYPTO_secure_used.htmlCRYPTO_secure_zalloc.htmlCRYPTO_set_ex_data.htmlCRYPTO_set_mem_debug.htmlCRYPTO_set_mem_functions.htmlCRYPTO_strdup.htmlCRYPTO_strndup.htmlCRYPTO_zalloc.htmlCTLOG_STORE_free.htmlCTLOG_STORE_get0_log_by_id.htmlCTLOG_STORE_load_default_file.htmlCTLOG_STORE_load_file.htmlCTLOG_STORE_new.htmlCTLOG_free.htmlCTLOG_get0_log_id.htmlCTLOG_get0_name.htmlCTLOG_get0_public_key.htmlCTLOG_new.htmlCTLOG_new_from_base64.htmlCT_POLICY_EVAL_CTX_free.htmlCT_POLICY_EVAL_CTX_get0_cert.htmlCT_POLICY_EVAL_CTX_get0_issuer.htmlCT_POLICY_EVAL_CTX_get0_log_store.htmlCT_POLICY_EVAL_CTX_get_time.htmlCT_POLICY_EVAL_CTX_new.htmlCT_POLICY_EVAL_CTX_set1_cert.htmlCT_POLICY_EVAL_CTX_set1_issuer.htmlCT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE.htmlCT_POLICY_EVAL_CTX_set_time.htmlDECLARE_ASN1_FUNCTIONS.htmlDECLARE_LHASH_OF.htmlDECLARE_PEM_rw.htmlDEFINE_SPECIAL_STACK_OF.htmlDEFINE_SPECIAL_STACK_OF_CONST.htmlDEFINE_STACK_OF.htmlDEFINE_STACK_OF_CONST.htmlDES_cbc_cksum.htmlDES_cfb64_encrypt.htmlDES_cfb_encrypt.htmlDES_crypt.htmlDES_ecb2_encrypt.htmlDES_ecb3_encrypt.htmlDES_ecb_encrypt.htmlDES_ede2_cbc_encrypt.htmlDES_ede2_cfb64_encrypt.htmlDES_ede2_ofb64_encrypt.htmlDES_ede3_cbc_encrypt.htmlDES_ede3_cfb64_encrypt.htmlDES_ede3_ofb64_encrypt.htmlDES_fcrypt.htmlDES_is_weak_key.htmlDES_key_sched.htmlDES_ncbc_encrypt.htmlDES_ofb64_encrypt.htmlDES_ofb_encrypt.htmlDES_pcbc_encrypt.htmlDES_quad_cksum.htmlDES_random_key.htmlDES_set_key.htmlDES_set_key_checked.htmlDES_set_key_unchecked.htmlDES_set_odd_parity.htmlDES_string_to_2keys.htmlDES_string_to_key.htmlDES_xcbc_encrypt.htmlDH_OpenSSL.htmlDH_bits.htmlDH_check.htmlDH_check_ex.htmlDH_check_params.htmlDH_check_params_ex.htmlDH_check_pub_key_ex.htmlDH_clear_flags.htmlDH_compute_key.htmlDH_compute_key_padded.htmlDH_free.htmlDH_generate_key.htmlDH_generate_parameters.htmlDH_generate_parameters_ex.htmlDH_get0_engine.htmlDH_get0_g.htmlDH_get0_key.htmlDH_get0_p.htmlDH_get0_pqg.htmlDH_get0_priv_key.htmlDH_get0_pub_key.htmlDH_get0_q.htmlDH_get_1024_160.htmlDH_get_2048_224.htmlDH_get_2048_256.htmlDH_get_default_method.htmlDH_get_ex_data.htmlDH_get_ex_new_index.htmlDH_get_length.htmlDH_get_nid.htmlDH_meth_dup.htmlDH_meth_free.htmlDH_meth_get0_app_data.htmlDH_meth_get0_name.htmlDH_meth_get_bn_mod_exp.htmlDH_meth_get_compute_key.htmlDH_meth_get_finish.htmlDH_meth_get_flags.htmlDH_meth_get_generate_key.htmlDH_meth_get_generate_params.htmlDH_meth_get_init.htmlDH_meth_new.htmlDH_meth_set0_app_data.htmlDH_meth_set1_name.htmlDH_meth_set_bn_mod_exp.htmlDH_meth_set_compute_key.htmlDH_meth_set_finish.htmlDH_meth_set_flags.htmlDH_meth_set_generate_key.htmlDH_meth_set_generate_params.htmlDH_meth_set_init.htmlDH_new.htmlDH_new_by_nid.htmlDH_new_method.htmlDH_security_bits.htmlDH_set0_key.htmlDH_set0_pqg.htmlDH_set_default_method.htmlDH_set_ex_data.htmlDH_set_flags.htmlDH_set_length.htmlDH_set_method.htmlDH_size.htmlDH_test_flags.htmlDHparams_print.htmlDHparams_print_fp.htmlDIRECTORYSTRING_free.htmlDIRECTORYSTRING_new.htmlDISPLAYTEXT_free.htmlDISPLAYTEXT_new.htmlDIST_POINT_NAME_free.htmlDIST_POINT_NAME_new.htmlDIST_POINT_free.htmlDIST_POINT_new.htmlDSA_OpenSSL.htmlDSA_SIG_free.htmlDSA_SIG_get0.htmlDSA_SIG_new.htmlDSA_SIG_set0.htmlDSA_bits.htmlDSA_clear_flags.htmlDSA_do_sign.htmlDSA_do_verify.htmlDSA_dup_DH.htmlDSA_free.htmlDSA_generate_key.htmlDSA_generate_parameters.htmlDSA_generate_parameters_ex.htmlDSA_get0_engine.htmlDSA_get0_g.htmlDSA_get0_key.htmlDSA_get0_p.htmlDSA_get0_pqg.htmlDSA_get0_priv_key.htmlDSA_get0_pub_key.htmlDSA_get0_q.htmlDSA_get_default_method.htmlDSA_get_ex_data.htmlDSA_get_ex_new_index.htmlDSA_meth_dup.htmlDSA_meth_free.htmlDSA_meth_get0_app_data.htmlDSA_meth_get0_name.htmlDSA_meth_get_bn_mod_exp.htmlDSA_meth_get_finish.htmlDSA_meth_get_flags.htmlDSA_meth_get_init.htmlDSA_meth_get_keygen.htmlDSA_meth_get_mod_exp.htmlDSA_meth_get_paramgen.htmlDSA_meth_get_sign.htmlDSA_meth_get_sign_setup.htmlDSA_meth_get_verify.htmlDSA_meth_new.htmlDSA_meth_set0_app_data.htmlDSA_meth_set1_name.htmlDSA_meth_set_bn_mod_exp.htmlDSA_meth_set_finish.htmlDSA_meth_set_flags.htmlDSA_meth_set_init.htmlDSA_meth_set_keygen.htmlDSA_meth_set_mod_exp.htmlDSA_meth_set_paramgen.htmlDSA_meth_set_sign.htmlDSA_meth_set_sign_setup.htmlDSA_meth_set_verify.htmlDSA_new.htmlDSA_new_method.htmlDSA_print.htmlDSA_print_fp.htmlDSA_security_bits.htmlDSA_set0_key.htmlDSA_set0_pqg.htmlDSA_set_default_method.htmlDSA_set_ex_data.htmlDSA_set_flags.htmlDSA_set_method.htmlDSA_sign.htmlDSA_sign_setup.htmlDSA_size.htmlDSA_test_flags.htmlDSA_verify.htmlDSAparams_dup.htmlDSAparams_print.htmlDSAparams_print_fp.htmlDTLS_client_method.htmlDTLS_get_data_mtu.htmlDTLS_method.htmlDTLS_server_method.htmlDTLS_set_timer_cb.htmlDTLS_timer_cb.htmlDTLSv1_2_client_method.htmlDTLSv1_2_method.htmlDTLSv1_2_server_method.htmlDTLSv1_client_method.htmlDTLSv1_listen.htmlDTLSv1_method.htmlDTLSv1_server_method.htmlECDH_get_ex_data.htmlECDH_get_ex_new_index.htmlECDH_set_ex_data.htmlECDSA_SIG_free.htmlECDSA_SIG_get0.htmlECDSA_SIG_get0_r.htmlECDSA_SIG_get0_s.htmlECDSA_SIG_new.htmlECDSA_SIG_set0.htmlECDSA_do_sign.htmlECDSA_do_sign_ex.htmlECDSA_do_verify.htmlECDSA_sign.htmlECDSA_sign_ex.htmlECDSA_sign_setup.htmlECDSA_size.htmlECDSA_verify.htmlECPARAMETERS_free.htmlECPARAMETERS_new.htmlECPKPARAMETERS_free.htmlECPKPARAMETERS_new.htmlECPKParameters_print.htmlECPKParameters_print_fp.htmlEC_GF2m_simple_method.htmlEC_GFp_mont_method.htmlEC_GFp_nist_method.htmlEC_GFp_nistp224_method.htmlEC_GFp_nistp256_method.htmlEC_GFp_nistp521_method.htmlEC_GFp_simple_method.htmlEC_GROUP_check.htmlEC_GROUP_check_discriminant.htmlEC_GROUP_clear_free.htmlEC_GROUP_cmp.htmlEC_GROUP_copy.htmlEC_GROUP_dup.htmlEC_GROUP_free.htmlEC_GROUP_get0_cofactor.htmlEC_GROUP_get0_generator.htmlEC_GROUP_get0_order.htmlEC_GROUP_get0_seed.htmlEC_GROUP_get_asn1_flag.htmlEC_GROUP_get_basis_type.htmlEC_GROUP_get_cofactor.htmlEC_GROUP_get_curve.htmlEC_GROUP_get_curve_GF2m.htmlEC_GROUP_get_curve_GFp.htmlEC_GROUP_get_curve_name.htmlEC_GROUP_get_degree.htmlEC_GROUP_get_ecparameters.htmlEC_GROUP_get_ecpkparameters.htmlEC_GROUP_get_order.htmlEC_GROUP_get_pentanomial_basis.htmlEC_GROUP_get_point_conversion_form.htmlEC_GROUP_get_seed_len.htmlEC_GROUP_get_trinomial_basis.htmlEC_GROUP_have_precompute_mult.htmlEC_GROUP_method_of.htmlEC_GROUP_new.htmlEC_GROUP_new_by_curve_name.htmlEC_GROUP_new_curve_GF2m.htmlEC_GROUP_new_curve_GFp.htmlEC_GROUP_new_from_ecparameters.htmlEC_GROUP_new_from_ecpkparameters.htmlEC_GROUP_order_bits.htmlEC_GROUP_precompute_mult.htmlEC_GROUP_set_asn1_flag.htmlEC_GROUP_set_curve.htmlEC_GROUP_set_curve_GF2m.htmlEC_GROUP_set_curve_GFp.htmlEC_GROUP_set_curve_name.htmlEC_GROUP_set_generator.htmlEC_GROUP_set_point_conversion_form.htmlEC_GROUP_set_seed.htmlEC_KEY_check_key.htmlEC_KEY_clear_flags.htmlEC_KEY_copy.htmlEC_KEY_decoded_from_explicit_params.htmlEC_KEY_dup.htmlEC_KEY_free.htmlEC_KEY_generate_key.htmlEC_KEY_get0_engine.htmlEC_KEY_get0_group.htmlEC_KEY_get0_private_key.htmlEC_KEY_get0_public_key.htmlEC_KEY_get_conv_form.htmlEC_KEY_get_enc_flags.htmlEC_KEY_get_ex_data.htmlEC_KEY_get_ex_new_index.htmlEC_KEY_get_flags.htmlEC_KEY_get_method.htmlEC_KEY_key2buf.htmlEC_KEY_new.htmlEC_KEY_new_by_curve_name.htmlEC_KEY_oct2key.htmlEC_KEY_oct2priv.htmlEC_KEY_precompute_mult.htmlEC_KEY_priv2buf.htmlEC_KEY_priv2oct.htmlEC_KEY_set_asn1_flag.htmlEC_KEY_set_conv_form.htmlEC_KEY_set_enc_flags.htmlEC_KEY_set_ex_data.htmlEC_KEY_set_flags.htmlEC_KEY_set_group.htmlEC_KEY_set_method.htmlEC_KEY_set_private_key.htmlEC_KEY_set_public_key.htmlEC_KEY_set_public_key_affine_coordinates.htmlEC_KEY_up_ref.htmlEC_METHOD_get_field_type.htmlEC_POINT_add.htmlEC_POINT_bn2point.htmlEC_POINT_clear_free.htmlEC_POINT_cmp.htmlEC_POINT_copy.htmlEC_POINT_dbl.htmlEC_POINT_dup.htmlEC_POINT_free.htmlEC_POINT_get_Jprojective_coordinates_GFp.htmlEC_POINT_get_affine_coordinates.htmlEC_POINT_get_affine_coordinates_GF2m.htmlEC_POINT_get_affine_coordinates_GFp.htmlEC_POINT_hex2point.htmlEC_POINT_invert.htmlEC_POINT_is_at_infinity.htmlEC_POINT_is_on_curve.htmlEC_POINT_make_affine.htmlEC_POINT_method_of.htmlEC_POINT_mul.htmlEC_POINT_new.htmlEC_POINT_oct2point.htmlEC_POINT_point2bn.htmlEC_POINT_point2buf.htmlEC_POINT_point2hex.htmlEC_POINT_point2oct.htmlEC_POINT_set_Jprojective_coordinates_GFp.htmlEC_POINT_set_affine_coordinates.htmlEC_POINT_set_affine_coordinates_GF2m.htmlEC_POINT_set_affine_coordinates_GFp.htmlEC_POINT_set_compressed_coordinates.htmlEC_POINT_set_compressed_coordinates_GF2m.htmlEC_POINT_set_compressed_coordinates_GFp.htmlEC_POINT_set_to_infinity.htmlEC_POINTs_make_affine.htmlEC_POINTs_mul.htmlEC_get_builtin_curves.htmlEDIPARTYNAME_free.htmlEDIPARTYNAME_new.htmlENGINE_add.htmlENGINE_add_conf_module.htmlENGINE_by_id.htmlENGINE_cleanup.htmlENGINE_cmd_is_executable.htmlENGINE_ctrl.htmlENGINE_ctrl_cmd.htmlENGINE_ctrl_cmd_string.htmlENGINE_finish.htmlENGINE_free.htmlENGINE_get_DH.htmlENGINE_get_DSA.htmlENGINE_get_RAND.htmlENGINE_get_RSA.htmlENGINE_get_cipher.htmlENGINE_get_cipher_engine.htmlENGINE_get_ciphers.htmlENGINE_get_cmd_defns.htmlENGINE_get_ctrl_function.htmlENGINE_get_default_DH.htmlENGINE_get_default_DSA.htmlENGINE_get_default_RAND.htmlENGINE_get_default_RSA.htmlENGINE_get_destroy_function.htmlENGINE_get_digest.htmlENGINE_get_digest_engine.htmlENGINE_get_digests.htmlENGINE_get_ex_data.htmlENGINE_get_ex_new_index.htmlENGINE_get_finish_function.htmlENGINE_get_first.htmlENGINE_get_flags.htmlENGINE_get_id.htmlENGINE_get_init_function.htmlENGINE_get_last.htmlENGINE_get_load_privkey_function.htmlENGINE_get_load_pubkey_function.htmlENGINE_get_name.htmlENGINE_get_next.htmlENGINE_get_prev.htmlENGINE_get_table_flags.htmlENGINE_init.htmlENGINE_load_builtin_engines.htmlENGINE_load_private_key.htmlENGINE_load_public_key.htmlENGINE_new.htmlENGINE_register_DH.htmlENGINE_register_DSA.htmlENGINE_register_RAND.htmlENGINE_register_RSA.htmlENGINE_register_all_DH.htmlENGINE_register_all_DSA.htmlENGINE_register_all_RAND.htmlENGINE_register_all_RSA.htmlENGINE_register_all_ciphers.htmlENGINE_register_all_complete.htmlENGINE_register_all_digests.htmlENGINE_register_ciphers.htmlENGINE_register_complete.htmlENGINE_register_digests.htmlENGINE_remove.htmlENGINE_set_DH.htmlENGINE_set_DSA.htmlENGINE_set_RAND.htmlENGINE_set_RSA.htmlENGINE_set_ciphers.htmlENGINE_set_cmd_defns.htmlENGINE_set_ctrl_function.htmlENGINE_set_default.htmlENGINE_set_default_DH.htmlENGINE_set_default_DSA.htmlENGINE_set_default_RAND.htmlENGINE_set_default_RSA.htmlENGINE_set_default_ciphers.htmlENGINE_set_default_digests.htmlENGINE_set_default_string.htmlENGINE_set_destroy_function.htmlENGINE_set_digests.htmlENGINE_set_ex_data.htmlENGINE_set_finish_function.htmlENGINE_set_flags.htmlENGINE_set_id.htmlENGINE_set_init_function.htmlENGINE_set_load_privkey_function.htmlENGINE_set_load_pubkey_function.htmlENGINE_set_name.htmlENGINE_set_table_flags.htmlENGINE_unregister_DH.htmlENGINE_unregister_DSA.htmlENGINE_unregister_RAND.htmlENGINE_unregister_RSA.htmlENGINE_unregister_ciphers.htmlENGINE_unregister_digests.htmlENGINE_up_ref.htmlERR_FATAL_ERROR.htmlERR_GET_FUNC.htmlERR_GET_LIB.htmlERR_GET_REASON.htmlERR_PACK.htmlERR_add_error_data.htmlERR_add_error_vdata.htmlERR_clear_error.htmlERR_error_string.htmlERR_error_string_n.htmlERR_free_strings.htmlERR_func_error_string.htmlERR_get_error.htmlERR_get_error_line.htmlERR_get_error_line_data.htmlERR_get_next_error_library.htmlERR_lib_error_string.htmlERR_load_crypto_strings.htmlERR_load_strings.htmlERR_peek_error.htmlERR_peek_error_line.htmlERR_peek_error_line_data.htmlERR_peek_last_error.htmlERR_peek_last_error_line.htmlERR_peek_last_error_line_data.htmlERR_pop_to_mark.htmlERR_print_errors.htmlERR_print_errors_cb.htmlERR_print_errors_fp.htmlERR_put_error.htmlERR_reason_error_string.htmlERR_remove_state.htmlERR_remove_thread_state.htmlERR_set_mark.htmlESS_CERT_ID_dup.htmlESS_CERT_ID_free.htmlESS_CERT_ID_new.htmlESS_ISSUER_SERIAL_dup.htmlESS_ISSUER_SERIAL_free.htmlESS_ISSUER_SERIAL_new.htmlESS_SIGNING_CERT_dup.htmlESS_SIGNING_CERT_free.htmlESS_SIGNING_CERT_new.htmlEVP_BytesToKey.htmlEVP_CIPHER_CTX_block_size.htmlEVP_CIPHER_CTX_cipher.htmlEVP_CIPHER_CTX_ctrl.htmlEVP_CIPHER_CTX_flags.htmlEVP_CIPHER_CTX_free.htmlEVP_CIPHER_CTX_get_app_data.htmlEVP_CIPHER_CTX_get_cipher_data.htmlEVP_CIPHER_CTX_iv_length.htmlEVP_CIPHER_CTX_key_length.htmlEVP_CIPHER_CTX_mode.htmlEVP_CIPHER_CTX_new.htmlEVP_CIPHER_CTX_nid.htmlEVP_CIPHER_CTX_reset.htmlEVP_CIPHER_CTX_set_app_data.htmlEVP_CIPHER_CTX_set_cipher_data.htmlEVP_CIPHER_CTX_set_key_length.htmlEVP_CIPHER_CTX_set_padding.htmlEVP_CIPHER_CTX_type.htmlEVP_CIPHER_asn1_to_param.htmlEVP_CIPHER_block_size.htmlEVP_CIPHER_flags.htmlEVP_CIPHER_iv_length.htmlEVP_CIPHER_key_length.htmlEVP_CIPHER_meth_dup.htmlEVP_CIPHER_meth_free.htmlEVP_CIPHER_meth_get_cleanup.htmlEVP_CIPHER_meth_get_ctrl.htmlEVP_CIPHER_meth_get_do_cipher.htmlEVP_CIPHER_meth_get_get_asn1_params.htmlEVP_CIPHER_meth_get_init.htmlEVP_CIPHER_meth_get_set_asn1_params.htmlEVP_CIPHER_meth_new.htmlEVP_CIPHER_meth_set_cleanup.htmlEVP_CIPHER_meth_set_ctrl.htmlEVP_CIPHER_meth_set_do_cipher.htmlEVP_CIPHER_meth_set_flags.htmlEVP_CIPHER_meth_set_get_asn1_params.htmlEVP_CIPHER_meth_set_impl_ctx_size.htmlEVP_CIPHER_meth_set_init.htmlEVP_CIPHER_meth_set_iv_length.htmlEVP_CIPHER_meth_set_set_asn1_params.htmlEVP_CIPHER_mode.htmlEVP_CIPHER_nid.htmlEVP_CIPHER_param_to_asn1.htmlEVP_CIPHER_type.htmlEVP_CipherFinal.htmlEVP_CipherFinal_ex.htmlEVP_CipherInit.htmlEVP_CipherInit_ex.htmlEVP_CipherUpdate.htmlEVP_DecodeBlock.htmlEVP_DecodeFinal.htmlEVP_DecodeInit.htmlEVP_DecodeUpdate.htmlEVP_DecryptFinal.htmlEVP_DecryptFinal_ex.htmlEVP_DecryptInit.htmlEVP_DecryptInit_ex.htmlEVP_DecryptUpdate.htmlEVP_Digest.htmlEVP_DigestFinal.htmlEVP_DigestFinalXOF.htmlEVP_DigestFinal_ex.htmlEVP_DigestInit.htmlEVP_DigestInit_ex.htmlEVP_DigestSign.htmlEVP_DigestSignFinal.htmlEVP_DigestSignInit.htmlEVP_DigestSignUpdate.htmlEVP_DigestUpdate.htmlEVP_DigestVerify.htmlEVP_DigestVerifyFinal.htmlEVP_DigestVerifyInit.htmlEVP_DigestVerifyUpdate.htmlEVP_ENCODE_CTX_copy.htmlEVP_ENCODE_CTX_free.htmlEVP_ENCODE_CTX_new.htmlEVP_ENCODE_CTX_num.htmlEVP_EncodeBlock.htmlEVP_EncodeFinal.htmlEVP_EncodeInit.htmlEVP_EncodeUpdate.htmlEVP_EncryptFinal.htmlEVP_EncryptFinal_ex.htmlEVP_EncryptInit.htmlEVP_EncryptInit_ex.htmlEVP_EncryptUpdate.htmlEVP_MD_CTX_block_size.htmlEVP_MD_CTX_clear_flags.htmlEVP_MD_CTX_copy.htmlEVP_MD_CTX_copy_ex.htmlEVP_MD_CTX_ctrl.htmlEVP_MD_CTX_free.htmlEVP_MD_CTX_md.htmlEVP_MD_CTX_md_data.htmlEVP_MD_CTX_new.htmlEVP_MD_CTX_pkey_ctx.htmlEVP_MD_CTX_reset.htmlEVP_MD_CTX_set_flags.htmlEVP_MD_CTX_set_pkey_ctx.htmlEVP_MD_CTX_set_update_fn.htmlEVP_MD_CTX_size.htmlEVP_MD_CTX_test_flags.htmlEVP_MD_CTX_type.htmlEVP_MD_CTX_update_fn.htmlEVP_MD_block_size.htmlEVP_MD_flags.htmlEVP_MD_meth_dup.htmlEVP_MD_meth_free.htmlEVP_MD_meth_get_app_datasize.htmlEVP_MD_meth_get_cleanup.htmlEVP_MD_meth_get_copy.htmlEVP_MD_meth_get_ctrl.htmlEVP_MD_meth_get_final.htmlEVP_MD_meth_get_flags.htmlEVP_MD_meth_get_init.htmlEVP_MD_meth_get_input_blocksize.htmlEVP_MD_meth_get_result_size.htmlEVP_MD_meth_get_update.htmlEVP_MD_meth_new.htmlEVP_MD_meth_set_app_datasize.htmlEVP_MD_meth_set_cleanup.htmlEVP_MD_meth_set_copy.htmlEVP_MD_meth_set_ctrl.htmlEVP_MD_meth_set_final.htmlEVP_MD_meth_set_flags.htmlEVP_MD_meth_set_init.htmlEVP_MD_meth_set_input_blocksize.htmlEVP_MD_meth_set_result_size.htmlEVP_MD_meth_set_update.htmlEVP_MD_pkey_type.htmlEVP_MD_size.htmlEVP_MD_type.htmlEVP_OpenFinal.htmlEVP_OpenInit.htmlEVP_OpenUpdate.htmlEVP_PKEY_ASN1_METHOD.htmlEVP_PKEY_CTX_add1_hkdf_info.htmlEVP_PKEY_CTX_add1_tls1_prf_seed.htmlEVP_PKEY_CTX_ctrl.htmlEVP_PKEY_CTX_ctrl_str.htmlEVP_PKEY_CTX_ctrl_uint64.htmlEVP_PKEY_CTX_dup.htmlEVP_PKEY_CTX_free.htmlEVP_PKEY_CTX_get0_dh_kdf_oid.htmlEVP_PKEY_CTX_get0_dh_kdf_ukm.htmlEVP_PKEY_CTX_get0_ecdh_kdf_ukm.htmlEVP_PKEY_CTX_get0_rsa_oaep_label.htmlEVP_PKEY_CTX_get1_id.htmlEVP_PKEY_CTX_get1_id_len.htmlEVP_PKEY_CTX_get_app_data.htmlEVP_PKEY_CTX_get_cb.htmlEVP_PKEY_CTX_get_dh_kdf_md.htmlEVP_PKEY_CTX_get_dh_kdf_outlen.htmlEVP_PKEY_CTX_get_dh_kdf_type.htmlEVP_PKEY_CTX_get_ecdh_cofactor_mode.htmlEVP_PKEY_CTX_get_ecdh_kdf_md.htmlEVP_PKEY_CTX_get_ecdh_kdf_outlen.htmlEVP_PKEY_CTX_get_ecdh_kdf_type.htmlEVP_PKEY_CTX_get_keygen_info.htmlEVP_PKEY_CTX_get_rsa_mgf1_md.htmlEVP_PKEY_CTX_get_rsa_oaep_md.htmlEVP_PKEY_CTX_get_rsa_padding.htmlEVP_PKEY_CTX_get_rsa_pss_saltlen.htmlEVP_PKEY_CTX_get_signature_md.htmlEVP_PKEY_CTX_hkdf_mode.htmlEVP_PKEY_CTX_md.htmlEVP_PKEY_CTX_new.htmlEVP_PKEY_CTX_new_id.htmlEVP_PKEY_CTX_set0_dh_kdf_oid.htmlEVP_PKEY_CTX_set0_dh_kdf_ukm.htmlEVP_PKEY_CTX_set0_ecdh_kdf_ukm.htmlEVP_PKEY_CTX_set0_rsa_oaep_label.htmlEVP_PKEY_CTX_set1_hkdf_key.htmlEVP_PKEY_CTX_set1_hkdf_salt.htmlEVP_PKEY_CTX_set1_id.htmlEVP_PKEY_CTX_set1_pbe_pass.htmlEVP_PKEY_CTX_set1_scrypt_salt.htmlEVP_PKEY_CTX_set1_tls1_prf_secret.htmlEVP_PKEY_CTX_set_app_data.htmlEVP_PKEY_CTX_set_cb.htmlEVP_PKEY_CTX_set_dh_kdf_md.htmlEVP_PKEY_CTX_set_dh_kdf_outlen.htmlEVP_PKEY_CTX_set_dh_kdf_type.htmlEVP_PKEY_CTX_set_dh_nid.htmlEVP_PKEY_CTX_set_dh_pad.htmlEVP_PKEY_CTX_set_dh_paramgen_generator.htmlEVP_PKEY_CTX_set_dh_paramgen_prime_len.htmlEVP_PKEY_CTX_set_dh_paramgen_subprime_len.htmlEVP_PKEY_CTX_set_dh_paramgen_type.htmlEVP_PKEY_CTX_set_dh_rfc5114.htmlEVP_PKEY_CTX_set_dhx_rfc5114.htmlEVP_PKEY_CTX_set_dsa_paramgen_bits.htmlEVP_PKEY_CTX_set_dsa_paramgen_md.htmlEVP_PKEY_CTX_set_dsa_paramgen_q_bits.htmlEVP_PKEY_CTX_set_ec_param_enc.htmlEVP_PKEY_CTX_set_ec_paramgen_curve_nid.htmlEVP_PKEY_CTX_set_ecdh_cofactor_mode.htmlEVP_PKEY_CTX_set_ecdh_kdf_md.htmlEVP_PKEY_CTX_set_ecdh_kdf_outlen.htmlEVP_PKEY_CTX_set_ecdh_kdf_type.htmlEVP_PKEY_CTX_set_hkdf_md.htmlEVP_PKEY_CTX_set_mac_key.htmlEVP_PKEY_CTX_set_rsa_keygen_bits.htmlEVP_PKEY_CTX_set_rsa_keygen_primes.htmlEVP_PKEY_CTX_set_rsa_keygen_pubexp.htmlEVP_PKEY_CTX_set_rsa_mgf1_md.htmlEVP_PKEY_CTX_set_rsa_oaep_md.htmlEVP_PKEY_CTX_set_rsa_padding.htmlEVP_PKEY_CTX_set_rsa_pss_keygen_md.htmlEVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md.htmlEVP_PKEY_CTX_set_rsa_pss_keygen_saltlen.htmlEVP_PKEY_CTX_set_rsa_pss_saltlen.htmlEVP_PKEY_CTX_set_scrypt_N.htmlEVP_PKEY_CTX_set_scrypt_maxmem_bytes.htmlEVP_PKEY_CTX_set_scrypt_p.htmlEVP_PKEY_CTX_set_scrypt_r.htmlEVP_PKEY_CTX_set_signature_md.htmlEVP_PKEY_CTX_set_tls1_prf_md.htmlEVP_PKEY_METHOD.htmlEVP_PKEY_asn1_add0.htmlEVP_PKEY_asn1_add_alias.htmlEVP_PKEY_asn1_copy.htmlEVP_PKEY_asn1_find.htmlEVP_PKEY_asn1_find_str.htmlEVP_PKEY_asn1_free.htmlEVP_PKEY_asn1_get0.htmlEVP_PKEY_asn1_get0_info.htmlEVP_PKEY_asn1_get_count.htmlEVP_PKEY_asn1_new.htmlEVP_PKEY_asn1_set_check.htmlEVP_PKEY_asn1_set_ctrl.htmlEVP_PKEY_asn1_set_free.htmlEVP_PKEY_asn1_set_get_priv_key.htmlEVP_PKEY_asn1_set_get_pub_key.htmlEVP_PKEY_asn1_set_item.htmlEVP_PKEY_asn1_set_param.htmlEVP_PKEY_asn1_set_param_check.htmlEVP_PKEY_asn1_set_private.htmlEVP_PKEY_asn1_set_public.htmlEVP_PKEY_asn1_set_public_check.htmlEVP_PKEY_asn1_set_security_bits.htmlEVP_PKEY_asn1_set_set_priv_key.htmlEVP_PKEY_asn1_set_set_pub_key.htmlEVP_PKEY_asn1_set_siginf.htmlEVP_PKEY_assign_DH.htmlEVP_PKEY_assign_DSA.htmlEVP_PKEY_assign_EC_KEY.htmlEVP_PKEY_assign_POLY1305.htmlEVP_PKEY_assign_RSA.htmlEVP_PKEY_assign_SIPHASH.htmlEVP_PKEY_base_id.htmlEVP_PKEY_bits.htmlEVP_PKEY_check.htmlEVP_PKEY_cmp.htmlEVP_PKEY_cmp_parameters.htmlEVP_PKEY_copy_parameters.htmlEVP_PKEY_decrypt.htmlEVP_PKEY_decrypt_init.htmlEVP_PKEY_derive.htmlEVP_PKEY_derive_init.htmlEVP_PKEY_derive_set_peer.htmlEVP_PKEY_encrypt.htmlEVP_PKEY_encrypt_init.htmlEVP_PKEY_free.htmlEVP_PKEY_gen_cb.htmlEVP_PKEY_get0_DH.htmlEVP_PKEY_get0_DSA.htmlEVP_PKEY_get0_EC_KEY.htmlEVP_PKEY_get0_RSA.htmlEVP_PKEY_get0_asn1.htmlEVP_PKEY_get0_engine.htmlEVP_PKEY_get0_hmac.htmlEVP_PKEY_get0_poly1305.htmlEVP_PKEY_get0_siphash.htmlEVP_PKEY_get1_DH.htmlEVP_PKEY_get1_DSA.htmlEVP_PKEY_get1_EC_KEY.htmlEVP_PKEY_get1_RSA.htmlEVP_PKEY_get_default_digest_nid.htmlEVP_PKEY_get_raw_private_key.htmlEVP_PKEY_get_raw_public_key.htmlEVP_PKEY_id.htmlEVP_PKEY_keygen.htmlEVP_PKEY_keygen_init.htmlEVP_PKEY_meth_add0.htmlEVP_PKEY_meth_copy.htmlEVP_PKEY_meth_find.htmlEVP_PKEY_meth_free.htmlEVP_PKEY_meth_get0.htmlEVP_PKEY_meth_get0_info.htmlEVP_PKEY_meth_get_check.htmlEVP_PKEY_meth_get_cleanup.htmlEVP_PKEY_meth_get_copy.htmlEVP_PKEY_meth_get_count.htmlEVP_PKEY_meth_get_ctrl.htmlEVP_PKEY_meth_get_decrypt.htmlEVP_PKEY_meth_get_derive.htmlEVP_PKEY_meth_get_digest_custom.htmlEVP_PKEY_meth_get_digestsign.htmlEVP_PKEY_meth_get_digestverify.htmlEVP_PKEY_meth_get_encrypt.htmlEVP_PKEY_meth_get_init.htmlEVP_PKEY_meth_get_keygen.htmlEVP_PKEY_meth_get_param_check.htmlEVP_PKEY_meth_get_paramgen.htmlEVP_PKEY_meth_get_public_check.htmlEVP_PKEY_meth_get_sign.htmlEVP_PKEY_meth_get_signctx.htmlEVP_PKEY_meth_get_verify.htmlEVP_PKEY_meth_get_verify_recover.htmlEVP_PKEY_meth_get_verifyctx.htmlEVP_PKEY_meth_new.htmlEVP_PKEY_meth_remove.htmlEVP_PKEY_meth_set_check.htmlEVP_PKEY_meth_set_cleanup.htmlEVP_PKEY_meth_set_copy.htmlEVP_PKEY_meth_set_ctrl.htmlEVP_PKEY_meth_set_decrypt.htmlEVP_PKEY_meth_set_derive.htmlEVP_PKEY_meth_set_digest_custom.htmlEVP_PKEY_meth_set_digestsign.htmlEVP_PKEY_meth_set_digestverify.htmlEVP_PKEY_meth_set_encrypt.htmlEVP_PKEY_meth_set_init.htmlEVP_PKEY_meth_set_keygen.htmlEVP_PKEY_meth_set_param_check.htmlEVP_PKEY_meth_set_paramgen.htmlEVP_PKEY_meth_set_public_check.htmlEVP_PKEY_meth_set_sign.htmlEVP_PKEY_meth_set_signctx.htmlEVP_PKEY_meth_set_verify.htmlEVP_PKEY_meth_set_verify_recover.htmlEVP_PKEY_meth_set_verifyctx.htmlEVP_PKEY_missing_parameters.htmlEVP_PKEY_new.htmlEVP_PKEY_new_CMAC_key.htmlEVP_PKEY_new_mac_key.htmlEVP_PKEY_new_raw_private_key.htmlEVP_PKEY_new_raw_public_key.htmlEVP_PKEY_param_check.htmlEVP_PKEY_paramgen.htmlEVP_PKEY_paramgen_init.htmlEVP_PKEY_print_params.htmlEVP_PKEY_print_private.htmlEVP_PKEY_print_public.htmlEVP_PKEY_public_check.htmlEVP_PKEY_security_bits.htmlEVP_PKEY_set1_DH.htmlEVP_PKEY_set1_DSA.htmlEVP_PKEY_set1_EC_KEY.htmlEVP_PKEY_set1_RSA.htmlEVP_PKEY_set1_engine.htmlEVP_PKEY_set_alias_type.htmlEVP_PKEY_sign.htmlEVP_PKEY_sign_init.htmlEVP_PKEY_size.htmlEVP_PKEY_type.htmlEVP_PKEY_up_ref.htmlEVP_PKEY_verify.htmlEVP_PKEY_verify_init.htmlEVP_PKEY_verify_recover.htmlEVP_PKEY_verify_recover_init.htmlEVP_SealFinal.htmlEVP_SealInit.htmlEVP_SealUpdate.htmlEVP_SignFinal.htmlEVP_SignInit.htmlEVP_SignInit_ex.htmlEVP_SignUpdate.htmlEVP_VerifyFinal.htmlEVP_VerifyInit.htmlEVP_VerifyInit_ex.htmlEVP_VerifyUpdate.htmlEVP_aes.htmlEVP_aes_128_cbc.htmlEVP_aes_128_cbc_hmac_sha1.htmlEVP_aes_128_cbc_hmac_sha256.htmlEVP_aes_128_ccm.htmlEVP_aes_128_cfb.htmlEVP_aes_128_cfb1.htmlEVP_aes_128_cfb128.htmlEVP_aes_128_cfb8.htmlEVP_aes_128_ctr.htmlEVP_aes_128_ecb.htmlEVP_aes_128_gcm.htmlEVP_aes_128_ocb.htmlEVP_aes_128_ofb.htmlEVP_aes_128_wrap.htmlEVP_aes_128_wrap_pad.htmlEVP_aes_128_xts.htmlEVP_aes_192_cbc.htmlEVP_aes_192_ccm.htmlEVP_aes_192_cfb.htmlEVP_aes_192_cfb1.htmlEVP_aes_192_cfb128.htmlEVP_aes_192_cfb8.htmlEVP_aes_192_ctr.htmlEVP_aes_192_ecb.htmlEVP_aes_192_gcm.htmlEVP_aes_192_ocb.htmlEVP_aes_192_ofb.htmlEVP_aes_192_wrap.htmlEVP_aes_192_wrap_pad.htmlEVP_aes_256_cbc.htmlEVP_aes_256_cbc_hmac_sha1.htmlEVP_aes_256_cbc_hmac_sha256.htmlEVP_aes_256_ccm.htmlEVP_aes_256_cfb.htmlEVP_aes_256_cfb1.htmlEVP_aes_256_cfb128.htmlEVP_aes_256_cfb8.htmlEVP_aes_256_ctr.htmlEVP_aes_256_ecb.htmlEVP_aes_256_gcm.htmlEVP_aes_256_ocb.htmlEVP_aes_256_ofb.htmlEVP_aes_256_wrap.htmlEVP_aes_256_wrap_pad.htmlEVP_aes_256_xts.htmlEVP_aria.htmlEVP_aria_128_cbc.htmlEVP_aria_128_ccm.htmlEVP_aria_128_cfb.htmlEVP_aria_128_cfb1.htmlEVP_aria_128_cfb128.htmlEVP_aria_128_cfb8.htmlEVP_aria_128_ctr.htmlEVP_aria_128_ecb.htmlEVP_aria_128_gcm.htmlEVP_aria_128_ofb.htmlEVP_aria_192_cbc.htmlEVP_aria_192_ccm.htmlEVP_aria_192_cfb.htmlEVP_aria_192_cfb1.htmlEVP_aria_192_cfb128.htmlEVP_aria_192_cfb8.htmlEVP_aria_192_ctr.htmlEVP_aria_192_ecb.htmlEVP_aria_192_gcm.htmlEVP_aria_192_ofb.htmlEVP_aria_256_cbc.htmlEVP_aria_256_ccm.htmlEVP_aria_256_cfb.htmlEVP_aria_256_cfb1.htmlEVP_aria_256_cfb128.htmlEVP_aria_256_cfb8.htmlEVP_aria_256_ctr.htmlEVP_aria_256_ecb.htmlEVP_aria_256_gcm.htmlEVP_aria_256_ofb.htmlEVP_bf_cbc.htmlEVP_bf_cfb.htmlEVP_bf_cfb64.htmlEVP_bf_ecb.htmlEVP_bf_ofb.htmlEVP_blake2b512.htmlEVP_blake2s256.htmlEVP_camellia.htmlEVP_camellia_128_cbc.htmlEVP_camellia_128_cfb.htmlEVP_camellia_128_cfb1.htmlEVP_camellia_128_cfb128.htmlEVP_camellia_128_cfb8.htmlEVP_camellia_128_ctr.htmlEVP_camellia_128_ecb.htmlEVP_camellia_128_ofb.htmlEVP_camellia_192_cbc.htmlEVP_camellia_192_cfb.htmlEVP_camellia_192_cfb1.htmlEVP_camellia_192_cfb128.htmlEVP_camellia_192_cfb8.htmlEVP_camellia_192_ctr.htmlEVP_camellia_192_ecb.htmlEVP_camellia_192_ofb.htmlEVP_camellia_256_cbc.htmlEVP_camellia_256_cfb.htmlEVP_camellia_256_cfb1.htmlEVP_camellia_256_cfb128.htmlEVP_camellia_256_cfb8.htmlEVP_camellia_256_ctr.htmlEVP_camellia_256_ecb.htmlEVP_camellia_256_ofb.htmlEVP_cast5_cbc.htmlEVP_cast5_cfb.htmlEVP_cast5_cfb64.htmlEVP_cast5_ecb.htmlEVP_cast5_ofb.htmlEVP_chacha20.htmlEVP_chacha20_poly1305.htmlEVP_cleanup.htmlEVP_des.htmlEVP_des_cbc.htmlEVP_des_cfb.htmlEVP_des_cfb1.htmlEVP_des_cfb64.htmlEVP_des_cfb8.htmlEVP_des_ecb.htmlEVP_des_ede.htmlEVP_des_ede3.htmlEVP_des_ede3_cbc.htmlEVP_des_ede3_cfb.htmlEVP_des_ede3_cfb1.htmlEVP_des_ede3_cfb64.htmlEVP_des_ede3_cfb8.htmlEVP_des_ede3_ecb.htmlEVP_des_ede3_ofb.htmlEVP_des_ede3_wrap.htmlEVP_des_ede_cbc.htmlEVP_des_ede_cfb.htmlEVP_des_ede_cfb64.htmlEVP_des_ede_ecb.htmlEVP_des_ede_ofb.htmlEVP_des_ofb.htmlEVP_desx_cbc.htmlEVP_enc_null.htmlEVP_get_cipherbyname.htmlEVP_get_cipherbynid.htmlEVP_get_cipherbyobj.htmlEVP_get_digestbyname.htmlEVP_get_digestbynid.htmlEVP_get_digestbyobj.htmlEVP_idea_cbc.htmlEVP_idea_cfb.htmlEVP_idea_cfb64.htmlEVP_idea_ecb.htmlEVP_idea_ofb.htmlEVP_md2.htmlEVP_md4.htmlEVP_md5.htmlEVP_md5_sha1.htmlEVP_md_null.htmlEVP_mdc2.htmlEVP_rc2_40_cbc.htmlEVP_rc2_64_cbc.htmlEVP_rc2_cbc.htmlEVP_rc2_cfb.htmlEVP_rc2_cfb64.htmlEVP_rc2_ecb.htmlEVP_rc2_ofb.htmlEVP_rc4.htmlEVP_rc4_40.htmlEVP_rc4_hmac_md5.htmlEVP_rc5_32_12_16_cbc.htmlEVP_rc5_32_12_16_cfb.htmlEVP_rc5_32_12_16_cfb64.htmlEVP_rc5_32_12_16_ecb.htmlEVP_rc5_32_12_16_ofb.htmlEVP_ripemd160.htmlEVP_seed_cbc.htmlEVP_seed_cfb.htmlEVP_seed_cfb128.htmlEVP_seed_ecb.htmlEVP_seed_ofb.htmlEVP_sha1.htmlEVP_sha224.htmlEVP_sha256.htmlEVP_sha384.htmlEVP_sha3_224.htmlEVP_sha3_256.htmlEVP_sha3_384.htmlEVP_sha3_512.htmlEVP_sha512.htmlEVP_sha512_224.htmlEVP_sha512_256.htmlEVP_shake128.htmlEVP_shake256.htmlEVP_sm3.htmlEVP_sm4_cbc.htmlEVP_sm4_cfb.htmlEVP_sm4_cfb128.htmlEVP_sm4_ctr.htmlEVP_sm4_ecb.htmlEVP_sm4_ofb.htmlEVP_whirlpool.htmlEXTENDED_KEY_USAGE_free.htmlEXTENDED_KEY_USAGE_new.htmlGENERAL_NAMES_free.htmlGENERAL_NAMES_new.htmlGENERAL_NAME_dup.htmlGENERAL_NAME_free.htmlGENERAL_NAME_new.htmlGENERAL_SUBTREE_free.htmlGENERAL_SUBTREE_new.htmlGEN_SESSION_CB.htmlHMAC.htmlHMAC_CTX_copy.htmlHMAC_CTX_free.htmlHMAC_CTX_get_md.htmlHMAC_CTX_new.htmlHMAC_CTX_reset.htmlHMAC_CTX_set_flags.htmlHMAC_Final.htmlHMAC_Init.htmlHMAC_Init_ex.htmlHMAC_Update.htmlHMAC_size.htmlIMPLEMENT_ASN1_FUNCTIONS.htmlIMPLEMENT_LHASH_COMP_FN.htmlIMPLEMENT_LHASH_HASH_FN.htmlIPAddressChoice_free.htmlIPAddressChoice_new.htmlIPAddressFamily_free.htmlIPAddressFamily_new.htmlIPAddressOrRange_free.htmlIPAddressOrRange_new.htmlIPAddressRange_free.htmlIPAddressRange_new.htmlISSUING_DIST_POINT_free.htmlISSUING_DIST_POINT_new.htmlLHASH.htmlLHASH_DOALL_ARG_FN_TYPE.htmlMD2.htmlMD2_Final.htmlMD2_Init.htmlMD2_Update.htmlMD4.htmlMD4_Final.htmlMD4_Init.htmlMD4_Update.htmlMD5.htmlMD5_Final.htmlMD5_Init.htmlMD5_Update.htmlMDC2.htmlMDC2_Final.htmlMDC2_Init.htmlMDC2_Update.htmlNAME_CONSTRAINTS_free.htmlNAME_CONSTRAINTS_new.htmlNAMING_AUTHORITY.htmlNAMING_AUTHORITY_free.htmlNAMING_AUTHORITY_get0_authorityId.htmlNAMING_AUTHORITY_get0_authorityText.htmlNAMING_AUTHORITY_get0_authorityURL.htmlNAMING_AUTHORITY_new.htmlNAMING_AUTHORITY_set0_authorityId.htmlNAMING_AUTHORITY_set0_authorityText.htmlNAMING_AUTHORITY_set0_authorityURL.htmlNETSCAPE_CERT_SEQUENCE_free.htmlNETSCAPE_CERT_SEQUENCE_new.htmlNETSCAPE_SPKAC_free.htmlNETSCAPE_SPKAC_new.htmlNETSCAPE_SPKI_free.htmlNETSCAPE_SPKI_new.htmlNOTICEREF_free.htmlNOTICEREF_new.htmlOBJ_cleanup.htmlOBJ_cmp.htmlOBJ_create.htmlOBJ_dup.htmlOBJ_get0_data.htmlOBJ_length.htmlOBJ_ln2nid.htmlOBJ_nid2ln.htmlOBJ_nid2obj.htmlOBJ_nid2sn.htmlOBJ_obj2nid.htmlOBJ_obj2txt.htmlOBJ_sn2nid.htmlOBJ_txt2nid.htmlOBJ_txt2obj.htmlOCSP_BASICRESP_free.htmlOCSP_BASICRESP_new.htmlOCSP_CERTID_dup.htmlOCSP_CERTID_free.htmlOCSP_CERTID_new.htmlOCSP_CERTSTATUS_free.htmlOCSP_CERTSTATUS_new.htmlOCSP_CRLID_free.htmlOCSP_CRLID_new.htmlOCSP_ONEREQ_free.htmlOCSP_ONEREQ_new.htmlOCSP_REQINFO_free.htmlOCSP_REQINFO_new.htmlOCSP_REQUEST_free.htmlOCSP_REQUEST_new.htmlOCSP_REQ_CTX_add1_header.htmlOCSP_REQ_CTX_free.htmlOCSP_REQ_CTX_i2d.htmlOCSP_REQ_CTX_set1_req.htmlOCSP_RESPBYTES_free.htmlOCSP_RESPBYTES_new.htmlOCSP_RESPDATA_free.htmlOCSP_RESPDATA_new.htmlOCSP_RESPID_free.htmlOCSP_RESPID_match.htmlOCSP_RESPID_new.htmlOCSP_RESPID_set_by_key.htmlOCSP_RESPID_set_by_name.htmlOCSP_RESPONSE_free.htmlOCSP_RESPONSE_new.htmlOCSP_REVOKEDINFO_free.htmlOCSP_REVOKEDINFO_new.htmlOCSP_SERVICELOC_free.htmlOCSP_SERVICELOC_new.htmlOCSP_SIGNATURE_free.htmlOCSP_SIGNATURE_new.htmlOCSP_SINGLERESP_free.htmlOCSP_SINGLERESP_new.htmlOCSP_basic_add1_nonce.htmlOCSP_basic_sign.htmlOCSP_basic_sign_ctx.htmlOCSP_basic_verify.htmlOCSP_cert_id_new.htmlOCSP_cert_to_id.htmlOCSP_check_nonce.htmlOCSP_check_validity.htmlOCSP_copy_nonce.htmlOCSP_id_cmp.htmlOCSP_id_get0_info.htmlOCSP_id_issuer_cmp.htmlOCSP_request_add0_id.htmlOCSP_request_add1_cert.htmlOCSP_request_add1_nonce.htmlOCSP_request_onereq_count.htmlOCSP_request_onereq_get0.htmlOCSP_request_sign.htmlOCSP_resp_count.htmlOCSP_resp_find.htmlOCSP_resp_find_status.htmlOCSP_resp_get0.htmlOCSP_resp_get0_certs.htmlOCSP_resp_get0_id.htmlOCSP_resp_get0_produced_at.htmlOCSP_resp_get0_respdata.htmlOCSP_resp_get0_signature.htmlOCSP_resp_get0_signer.htmlOCSP_resp_get0_tbs_sigalg.htmlOCSP_resp_get1_id.htmlOCSP_response_create.htmlOCSP_response_get1_basic.htmlOCSP_response_status.htmlOCSP_sendreq_bio.htmlOCSP_sendreq_nbio.htmlOCSP_sendreq_new.htmlOCSP_set_max_response_length.htmlOCSP_single_get0_status.htmlOPENSSL_Applink.htmlOPENSSL_INIT_free.htmlOPENSSL_INIT_new.htmlOPENSSL_INIT_set_config_appname.htmlOPENSSL_INIT_set_config_file_flags.htmlOPENSSL_INIT_set_config_filename.htmlOPENSSL_LH_COMPFUNC.htmlOPENSSL_LH_DOALL_FUNC.htmlOPENSSL_LH_HASHFUNC.htmlOPENSSL_LH_node_stats.htmlOPENSSL_LH_node_stats_bio.htmlOPENSSL_LH_node_usage_stats.htmlOPENSSL_LH_node_usage_stats_bio.htmlOPENSSL_LH_stats.htmlOPENSSL_LH_stats_bio.htmlOPENSSL_MALLOC_FAILURES.htmlOPENSSL_MALLOC_FD.htmlOPENSSL_VERSION_NUMBER.htmlOPENSSL_VERSION_TEXT.htmlOPENSSL_atexit.htmlOPENSSL_buf2hexstr.htmlOPENSSL_cipher_name.htmlOPENSSL_cleanse.htmlOPENSSL_cleanup.htmlOPENSSL_clear_free.htmlOPENSSL_clear_realloc.htmlOPENSSL_config.htmlOPENSSL_fork_child.htmlOPENSSL_fork_parent.htmlOPENSSL_fork_prepare.htmlOPENSSL_free.htmlOPENSSL_hexchar2int.htmlOPENSSL_hexstr2buf.htmlOPENSSL_ia32cap.htmlOPENSSL_init_crypto.htmlOPENSSL_init_ssl.htmlOPENSSL_instrument_bus.htmlOPENSSL_instrument_bus2.htmlOPENSSL_load_builtin_modules.htmlOPENSSL_malloc.htmlOPENSSL_malloc_init.htmlOPENSSL_mem_debug_pop.htmlOPENSSL_mem_debug_push.htmlOPENSSL_memdup.htmlOPENSSL_no_config.htmlOPENSSL_realloc.htmlOPENSSL_secure_actual_size.htmlOPENSSL_secure_clear_free.htmlOPENSSL_secure_free.htmlOPENSSL_secure_malloc.htmlOPENSSL_secure_zalloc.htmlOPENSSL_strdup.htmlOPENSSL_strlcat.htmlOPENSSL_strlcpy.htmlOPENSSL_strndup.htmlOPENSSL_thread_stop.htmlOPENSSL_zalloc.htmlOSSL_STORE_CTX.htmlOSSL_STORE_INFO.htmlOSSL_STORE_INFO_free.htmlOSSL_STORE_INFO_get0_CERT.htmlOSSL_STORE_INFO_get0_CRL.htmlOSSL_STORE_INFO_get0_NAME.htmlOSSL_STORE_INFO_get0_NAME_description.htmlOSSL_STORE_INFO_get0_PARAMS.htmlOSSL_STORE_INFO_get0_PKEY.htmlOSSL_STORE_INFO_get1_CERT.htmlOSSL_STORE_INFO_get1_CRL.htmlOSSL_STORE_INFO_get1_NAME.htmlOSSL_STORE_INFO_get1_NAME_description.htmlOSSL_STORE_INFO_get1_PARAMS.htmlOSSL_STORE_INFO_get1_PKEY.htmlOSSL_STORE_INFO_get_type.htmlOSSL_STORE_INFO_new_CERT.htmlOSSL_STORE_INFO_new_CRL.htmlOSSL_STORE_INFO_new_NAME.htmlOSSL_STORE_INFO_new_PARAMS.htmlOSSL_STORE_INFO_new_PKEY.htmlOSSL_STORE_INFO_set0_NAME_description.htmlOSSL_STORE_INFO_type_string.htmlOSSL_STORE_LOADER.htmlOSSL_STORE_LOADER_CTX.htmlOSSL_STORE_LOADER_free.htmlOSSL_STORE_LOADER_get0_engine.htmlOSSL_STORE_LOADER_get0_scheme.htmlOSSL_STORE_LOADER_new.htmlOSSL_STORE_LOADER_set_close.htmlOSSL_STORE_LOADER_set_ctrl.htmlOSSL_STORE_LOADER_set_eof.htmlOSSL_STORE_LOADER_set_error.htmlOSSL_STORE_LOADER_set_expect.htmlOSSL_STORE_LOADER_set_find.htmlOSSL_STORE_LOADER_set_load.htmlOSSL_STORE_LOADER_set_open.htmlOSSL_STORE_SEARCH.htmlOSSL_STORE_SEARCH_by_alias.htmlOSSL_STORE_SEARCH_by_issuer_serial.htmlOSSL_STORE_SEARCH_by_key_fingerprint.htmlOSSL_STORE_SEARCH_by_name.htmlOSSL_STORE_SEARCH_free.htmlOSSL_STORE_SEARCH_get0_bytes.htmlOSSL_STORE_SEARCH_get0_digest.htmlOSSL_STORE_SEARCH_get0_name.htmlOSSL_STORE_SEARCH_get0_serial.htmlOSSL_STORE_SEARCH_get0_string.htmlOSSL_STORE_SEARCH_get_type.htmlOSSL_STORE_close.htmlOSSL_STORE_close_fn.htmlOSSL_STORE_ctrl.htmlOSSL_STORE_ctrl_fn.htmlOSSL_STORE_eof.htmlOSSL_STORE_eof_fn.htmlOSSL_STORE_error.htmlOSSL_STORE_error_fn.htmlOSSL_STORE_expect.htmlOSSL_STORE_expect_fn.htmlOSSL_STORE_find.htmlOSSL_STORE_find_fn.htmlOSSL_STORE_load.htmlOSSL_STORE_load_fn.htmlOSSL_STORE_open.htmlOSSL_STORE_open_fn.htmlOSSL_STORE_post_process_info_fn.htmlOSSL_STORE_register_loader.htmlOSSL_STORE_supports_search.htmlOSSL_STORE_unregister_loader.htmlOTHERNAME_free.htmlOTHERNAME_new.htmlOpenSSL_add_all_algorithms.htmlOpenSSL_add_all_ciphers.htmlOpenSSL_add_all_digests.htmlOpenSSL_add_ssl_algorithms.htmlOpenSSL_version.htmlOpenSSL_version_num.htmlPBE2PARAM_free.htmlPBE2PARAM_new.htmlPBEPARAM_free.htmlPBEPARAM_new.htmlPBKDF2PARAM_free.htmlPBKDF2PARAM_new.htmlPEM_FLAG_EAY_COMPATIBLE.htmlPEM_FLAG_ONLY_B64.htmlPEM_FLAG_SECURE.htmlPEM_bytes_read_bio.htmlPEM_bytes_read_bio_secmem.htmlPEM_do_header.htmlPEM_get_EVP_CIPHER_INFO.htmlPEM_read.htmlPEM_read_CMS.htmlPEM_read_DHparams.htmlPEM_read_DSAPrivateKey.htmlPEM_read_DSA_PUBKEY.htmlPEM_read_DSAparams.htmlPEM_read_ECPKParameters.htmlPEM_read_ECPrivateKey.htmlPEM_read_EC_PUBKEY.htmlPEM_read_NETSCAPE_CERT_SEQUENCE.htmlPEM_read_PKCS7.htmlPEM_read_PKCS8.htmlPEM_read_PKCS8_PRIV_KEY_INFO.htmlPEM_read_PUBKEY.htmlPEM_read_PrivateKey.htmlPEM_read_RSAPrivateKey.htmlPEM_read_RSAPublicKey.htmlPEM_read_RSA_PUBKEY.htmlPEM_read_SSL_SESSION.htmlPEM_read_X509.htmlPEM_read_X509_AUX.htmlPEM_read_X509_CRL.htmlPEM_read_X509_REQ.htmlPEM_read_bio.htmlPEM_read_bio_CMS.htmlPEM_read_bio_DHparams.htmlPEM_read_bio_DSAPrivateKey.htmlPEM_read_bio_DSA_PUBKEY.htmlPEM_read_bio_DSAparams.htmlPEM_read_bio_ECPKParameters.htmlPEM_read_bio_EC_PUBKEY.htmlPEM_read_bio_NETSCAPE_CERT_SEQUENCE.htmlPEM_read_bio_PKCS7.htmlPEM_read_bio_PKCS8.htmlPEM_read_bio_PKCS8_PRIV_KEY_INFO.htmlPEM_read_bio_PUBKEY.htmlPEM_read_bio_Parameters.htmlPEM_read_bio_PrivateKey.htmlPEM_read_bio_RSAPrivateKey.htmlPEM_read_bio_RSAPublicKey.htmlPEM_read_bio_RSA_PUBKEY.htmlPEM_read_bio_SSL_SESSION.htmlPEM_read_bio_X509.htmlPEM_read_bio_X509_AUX.htmlPEM_read_bio_X509_CRL.htmlPEM_read_bio_X509_REQ.htmlPEM_read_bio_ex.htmlPEM_write.htmlPEM_write_CMS.htmlPEM_write_DHparams.htmlPEM_write_DHxparams.htmlPEM_write_DSAPrivateKey.htmlPEM_write_DSA_PUBKEY.htmlPEM_write_DSAparams.htmlPEM_write_ECPKParameters.htmlPEM_write_ECPrivateKey.htmlPEM_write_EC_PUBKEY.htmlPEM_write_NETSCAPE_CERT_SEQUENCE.htmlPEM_write_PKCS7.htmlPEM_write_PKCS8.htmlPEM_write_PKCS8PrivateKey.htmlPEM_write_PKCS8PrivateKey_nid.htmlPEM_write_PKCS8_PRIV_KEY_INFO.htmlPEM_write_PUBKEY.htmlPEM_write_PrivateKey.htmlPEM_write_RSAPrivateKey.htmlPEM_write_RSAPublicKey.htmlPEM_write_RSA_PUBKEY.htmlPEM_write_SSL_SESSION.htmlPEM_write_X509.htmlPEM_write_X509_AUX.htmlPEM_write_X509_CRL.htmlPEM_write_X509_REQ.htmlPEM_write_X509_REQ_NEW.htmlPEM_write_bio.htmlPEM_write_bio_CMS.htmlPEM_write_bio_CMS_stream.htmlPEM_write_bio_DHparams.htmlPEM_write_bio_DHxparams.htmlPEM_write_bio_DSAPrivateKey.htmlPEM_write_bio_DSA_PUBKEY.htmlPEM_write_bio_DSAparams.htmlPEM_write_bio_ECPKParameters.htmlPEM_write_bio_ECPrivateKey.htmlPEM_write_bio_EC_PUBKEY.htmlPEM_write_bio_NETSCAPE_CERT_SEQUENCE.htmlPEM_write_bio_PKCS7.htmlPEM_write_bio_PKCS7_stream.htmlPEM_write_bio_PKCS8.htmlPEM_write_bio_PKCS8PrivateKey.htmlPEM_write_bio_PKCS8PrivateKey_nid.htmlPEM_write_bio_PKCS8_PRIV_KEY_INFO.htmlPEM_write_bio_PUBKEY.htmlPEM_write_bio_Parameters.htmlPEM_write_bio_PrivateKey.htmlPEM_write_bio_PrivateKey_traditional.htmlPEM_write_bio_RSAPrivateKey.htmlPEM_write_bio_RSAPublicKey.htmlPEM_write_bio_RSA_PUBKEY.htmlPEM_write_bio_SSL_SESSION.htmlPEM_write_bio_X509.htmlPEM_write_bio_X509_AUX.htmlPEM_write_bio_X509_CRL.htmlPEM_write_bio_X509_REQ.htmlPEM_write_bio_X509_REQ_NEW.htmlPKCS12_BAGS_free.htmlPKCS12_BAGS_new.htmlPKCS12_MAC_DATA_free.htmlPKCS12_MAC_DATA_new.htmlPKCS12_SAFEBAG_free.htmlPKCS12_SAFEBAG_new.htmlPKCS12_create.htmlPKCS12_free.htmlPKCS12_new.htmlPKCS12_newpass.htmlPKCS12_parse.htmlPKCS5_PBKDF2_HMAC.htmlPKCS5_PBKDF2_HMAC_SHA1.htmlPKCS7_DIGEST_free.htmlPKCS7_DIGEST_new.htmlPKCS7_ENCRYPT_free.htmlPKCS7_ENCRYPT_new.htmlPKCS7_ENC_CONTENT_free.htmlPKCS7_ENC_CONTENT_new.htmlPKCS7_ENVELOPE_free.htmlPKCS7_ENVELOPE_new.htmlPKCS7_ISSUER_AND_SERIAL_digest.htmlPKCS7_ISSUER_AND_SERIAL_free.htmlPKCS7_ISSUER_AND_SERIAL_new.htmlPKCS7_RECIP_INFO_free.htmlPKCS7_RECIP_INFO_new.htmlPKCS7_SIGNED_free.htmlPKCS7_SIGNED_new.htmlPKCS7_SIGNER_INFO_free.htmlPKCS7_SIGNER_INFO_new.htmlPKCS7_SIGN_ENVELOPE_free.htmlPKCS7_SIGN_ENVELOPE_new.htmlPKCS7_add_certificate.htmlPKCS7_add_crl.htmlPKCS7_decrypt.htmlPKCS7_dup.htmlPKCS7_encrypt.htmlPKCS7_free.htmlPKCS7_get0_signers.htmlPKCS7_new.htmlPKCS7_print_ctx.htmlPKCS7_sign.htmlPKCS7_sign_add_signer.htmlPKCS7_verify.htmlPKCS8_PRIV_KEY_INFO_free.htmlPKCS8_PRIV_KEY_INFO_new.htmlPKEY_USAGE_PERIOD_free.htmlPKEY_USAGE_PERIOD_new.htmlPOLICYINFO_free.htmlPOLICYINFO_new.htmlPOLICYQUALINFO_free.htmlPOLICYQUALINFO_new.htmlPOLICY_CONSTRAINTS_free.htmlPOLICY_CONSTRAINTS_new.htmlPOLICY_MAPPING_free.htmlPOLICY_MAPPING_new.htmlPROFESSION_INFO.htmlPROFESSION_INFOS.htmlPROFESSION_INFOS_free.htmlPROFESSION_INFOS_new.htmlPROFESSION_INFO_free.htmlPROFESSION_INFO_get0_addProfessionInfo.htmlPROFESSION_INFO_get0_namingAuthority.htmlPROFESSION_INFO_get0_professionItems.htmlPROFESSION_INFO_get0_professionOIDs.htmlPROFESSION_INFO_get0_registrationNumber.htmlPROFESSION_INFO_new.htmlPROFESSION_INFO_set0_addProfessionInfo.htmlPROFESSION_INFO_set0_namingAuthority.htmlPROFESSION_INFO_set0_professionItems.htmlPROFESSION_INFO_set0_professionOIDs.htmlPROFESSION_INFO_set0_registrationNumber.htmlPROXY_CERT_INFO_EXTENSION_free.htmlPROXY_CERT_INFO_EXTENSION_new.htmlPROXY_POLICY_free.htmlPROXY_POLICY_new.htmlRAND_DRBG_bytes.htmlRAND_DRBG_cleanup_entropy_fn.htmlRAND_DRBG_cleanup_nonce_fn.htmlRAND_DRBG_free.htmlRAND_DRBG_generate.htmlRAND_DRBG_get0_master.htmlRAND_DRBG_get0_private.htmlRAND_DRBG_get0_public.htmlRAND_DRBG_get_entropy_fn.htmlRAND_DRBG_get_ex_data.htmlRAND_DRBG_get_ex_new_index.htmlRAND_DRBG_get_nonce_fn.htmlRAND_DRBG_instantiate.htmlRAND_DRBG_new.htmlRAND_DRBG_reseed.htmlRAND_DRBG_secure_new.htmlRAND_DRBG_set.htmlRAND_DRBG_set_callbacks.htmlRAND_DRBG_set_defaults.htmlRAND_DRBG_set_ex_data.htmlRAND_DRBG_set_reseed_defaults.htmlRAND_DRBG_set_reseed_interval.htmlRAND_DRBG_set_reseed_time_interval.htmlRAND_DRBG_uninstantiate.htmlRAND_OpenSSL.htmlRAND_add.htmlRAND_bytes.htmlRAND_cleanup.htmlRAND_egd.htmlRAND_egd_bytes.htmlRAND_event.htmlRAND_file_name.htmlRAND_get_rand_method.htmlRAND_keep_random_devices_open.htmlRAND_load_file.htmlRAND_poll.htmlRAND_priv_bytes.htmlRAND_pseudo_bytes.htmlRAND_query_egd_bytes.htmlRAND_screen.htmlRAND_seed.htmlRAND_set_rand_method.htmlRAND_status.htmlRAND_write_file.htmlRC4.htmlRC4_set_key.htmlRIPEMD160.htmlRIPEMD160_Final.htmlRIPEMD160_Init.htmlRIPEMD160_Update.htmlRSAPrivateKey_dup.htmlRSAPublicKey_dup.htmlRSA_OAEP_PARAMS_free.htmlRSA_OAEP_PARAMS_new.htmlRSA_PKCS1_OpenSSL.htmlRSA_PSS_PARAMS_free.htmlRSA_PSS_PARAMS_new.htmlRSA_bits.htmlRSA_blinding_off.htmlRSA_blinding_on.htmlRSA_check_key.htmlRSA_check_key_ex.htmlRSA_clear_flags.htmlRSA_flags.htmlRSA_free.htmlRSA_generate_key.htmlRSA_generate_key_ex.htmlRSA_generate_multi_prime_key.htmlRSA_get0_crt_params.htmlRSA_get0_d.htmlRSA_get0_dmp1.htmlRSA_get0_dmq1.htmlRSA_get0_e.htmlRSA_get0_engine.htmlRSA_get0_factors.htmlRSA_get0_iqmp.htmlRSA_get0_key.htmlRSA_get0_multi_prime_crt_params.htmlRSA_get0_multi_prime_factors.htmlRSA_get0_n.htmlRSA_get0_p.htmlRSA_get0_pss_params.htmlRSA_get0_q.htmlRSA_get_default_method.htmlRSA_get_ex_data.htmlRSA_get_ex_new_index.htmlRSA_get_method.htmlRSA_get_multi_prime_extra_count.htmlRSA_get_version.htmlRSA_meth_dup.htmlRSA_meth_free.htmlRSA_meth_get0_app_data.htmlRSA_meth_get0_name.htmlRSA_meth_get_bn_mod_exp.htmlRSA_meth_get_finish.htmlRSA_meth_get_flags.htmlRSA_meth_get_init.htmlRSA_meth_get_keygen.htmlRSA_meth_get_mod_exp.htmlRSA_meth_get_multi_prime_keygen.htmlRSA_meth_get_priv_dec.htmlRSA_meth_get_priv_enc.htmlRSA_meth_get_pub_dec.htmlRSA_meth_get_pub_enc.htmlRSA_meth_get_sign.htmlRSA_meth_get_verify.htmlRSA_meth_new.htmlRSA_meth_set0_app_data.htmlRSA_meth_set1_name.htmlRSA_meth_set_bn_mod_exp.htmlRSA_meth_set_finish.htmlRSA_meth_set_flags.htmlRSA_meth_set_init.htmlRSA_meth_set_keygen.htmlRSA_meth_set_mod_exp.htmlRSA_meth_set_multi_prime_keygen.htmlRSA_meth_set_priv_dec.htmlRSA_meth_set_priv_enc.htmlRSA_meth_set_pub_dec.htmlRSA_meth_set_pub_enc.htmlRSA_meth_set_sign.htmlRSA_meth_set_verify.htmlRSA_new.htmlRSA_new_method.htmlRSA_padding_add_PKCS1_OAEP.htmlRSA_padding_add_PKCS1_OAEP_mgf1.htmlRSA_padding_add_PKCS1_type_1.htmlRSA_padding_add_PKCS1_type_2.htmlRSA_padding_add_SSLv23.htmlRSA_padding_add_none.htmlRSA_padding_check_PKCS1_OAEP.htmlRSA_padding_check_PKCS1_OAEP_mgf1.htmlRSA_padding_check_PKCS1_type_1.htmlRSA_padding_check_PKCS1_type_2.htmlRSA_padding_check_SSLv23.htmlRSA_padding_check_none.htmlRSA_print.htmlRSA_print_fp.htmlRSA_private_decrypt.htmlRSA_private_encrypt.htmlRSA_public_decrypt.htmlRSA_public_encrypt.htmlRSA_security_bits.htmlRSA_set0_crt_params.htmlRSA_set0_factors.htmlRSA_set0_key.htmlRSA_set0_multi_prime_params.htmlRSA_set_default_method.htmlRSA_set_ex_data.htmlRSA_set_flags.htmlRSA_set_method.htmlRSA_sign.htmlRSA_sign_ASN1_OCTET_STRING.htmlRSA_size.htmlRSA_test_flags.htmlRSA_verify.htmlRSA_verify_ASN1_OCTET_STRING.htmlSCRYPT_PARAMS_free.htmlSCRYPT_PARAMS_new.htmlSCT_LIST_free.htmlSCT_LIST_print.htmlSCT_LIST_validate.htmlSCT_free.htmlSCT_get0_extensions.htmlSCT_get0_log_id.htmlSCT_get0_signature.htmlSCT_get_log_entry_type.htmlSCT_get_signature_nid.htmlSCT_get_source.htmlSCT_get_timestamp.htmlSCT_get_validation_status.htmlSCT_get_version.htmlSCT_new.htmlSCT_new_from_base64.htmlSCT_print.htmlSCT_set0_extensions.htmlSCT_set0_log_id.htmlSCT_set0_signature.htmlSCT_set1_extensions.htmlSCT_set1_log_id.htmlSCT_set1_signature.htmlSCT_set_log_entry_type.htmlSCT_set_signature_nid.htmlSCT_set_source.htmlSCT_set_timestamp.htmlSCT_set_version.htmlSCT_validate.htmlSCT_validation_status_string.htmlSHA1.htmlSHA1_Final.htmlSHA1_Init.htmlSHA1_Update.htmlSHA224.htmlSHA224_Final.htmlSHA224_Init.htmlSHA224_Update.htmlSHA256.htmlSHA256_Final.htmlSHA256_Init.htmlSHA256_Update.htmlSHA384.htmlSHA384_Final.htmlSHA384_Init.htmlSHA384_Update.htmlSHA512.htmlSHA512_Final.htmlSHA512_Init.htmlSHA512_Update.htmlSMIME_read_CMS.htmlSMIME_read_PKCS7.htmlSMIME_write_CMS.htmlSMIME_write_PKCS7.htmlSSL_CIPHER_description.htmlSSL_CIPHER_find.htmlSSL_CIPHER_get_auth_nid.htmlSSL_CIPHER_get_bits.htmlSSL_CIPHER_get_cipher_nid.htmlSSL_CIPHER_get_digest_nid.htmlSSL_CIPHER_get_handshake_digest.htmlSSL_CIPHER_get_id.htmlSSL_CIPHER_get_kx_nid.htmlSSL_CIPHER_get_name.htmlSSL_CIPHER_get_protocol_id.htmlSSL_CIPHER_get_version.htmlSSL_CIPHER_is_aead.htmlSSL_CIPHER_standard_name.htmlSSL_COMP_add_compression_method.htmlSSL_COMP_free_compression_methods.htmlSSL_COMP_get0_name.htmlSSL_COMP_get_compression_methods.htmlSSL_COMP_get_id.htmlSSL_CONF_CTX_clear_flags.htmlSSL_CONF_CTX_free.htmlSSL_CONF_CTX_new.htmlSSL_CONF_CTX_set1_prefix.htmlSSL_CONF_CTX_set_flags.htmlSSL_CONF_CTX_set_ssl.htmlSSL_CONF_CTX_set_ssl_ctx.htmlSSL_CONF_cmd.htmlSSL_CONF_cmd_argv.htmlSSL_CONF_cmd_value_type.htmlSSL_CTX_add0_chain_cert.htmlSSL_CTX_add1_chain_cert.htmlSSL_CTX_add1_to_CA_list.htmlSSL_CTX_add_client_CA.htmlSSL_CTX_add_client_custom_ext.htmlSSL_CTX_add_custom_ext.htmlSSL_CTX_add_extra_chain_cert.htmlSSL_CTX_add_server_custom_ext.htmlSSL_CTX_add_session.htmlSSL_CTX_build_cert_chain.htmlSSL_CTX_callback_ctrl.htmlSSL_CTX_check_private_key.htmlSSL_CTX_clear_chain_certs.htmlSSL_CTX_clear_extra_chain_certs.htmlSSL_CTX_clear_mode.htmlSSL_CTX_clear_options.htmlSSL_CTX_config.htmlSSL_CTX_ct_is_enabled.htmlSSL_CTX_ctrl.htmlSSL_CTX_dane_clear_flags.htmlSSL_CTX_dane_enable.htmlSSL_CTX_dane_mtype_set.htmlSSL_CTX_dane_set_flags.htmlSSL_CTX_decrypt_session_ticket_fn.htmlSSL_CTX_disable_ct.htmlSSL_CTX_enable_ct.htmlSSL_CTX_flush_sessions.htmlSSL_CTX_free.htmlSSL_CTX_generate_session_ticket_fn.htmlSSL_CTX_get0_CA_list.htmlSSL_CTX_get0_chain_cert_store.htmlSSL_CTX_get0_chain_certs.htmlSSL_CTX_get0_param.htmlSSL_CTX_get0_security_ex_data.htmlSSL_CTX_get0_verify_cert_store.htmlSSL_CTX_get_cert_store.htmlSSL_CTX_get_ciphers.htmlSSL_CTX_get_client_CA_list.htmlSSL_CTX_get_client_cert_cb.htmlSSL_CTX_get_default_passwd_cb.htmlSSL_CTX_get_default_passwd_cb_userdata.htmlSSL_CTX_get_default_read_ahead.htmlSSL_CTX_get_ex_data.htmlSSL_CTX_get_info_callback.htmlSSL_CTX_get_keylog_callback.htmlSSL_CTX_get_max_cert_list.htmlSSL_CTX_get_max_early_data.htmlSSL_CTX_get_max_proto_version.htmlSSL_CTX_get_min_proto_version.htmlSSL_CTX_get_mode.htmlSSL_CTX_get_num_tickets.htmlSSL_CTX_get_options.htmlSSL_CTX_get_quiet_shutdown.htmlSSL_CTX_get_read_ahead.htmlSSL_CTX_get_record_padding_callback_arg.htmlSSL_CTX_get_recv_max_early_data.htmlSSL_CTX_get_security_callback.htmlSSL_CTX_get_security_level.htmlSSL_CTX_get_session_cache_mode.htmlSSL_CTX_get_timeout.htmlSSL_CTX_get_tlsext_status_arg.htmlSSL_CTX_get_tlsext_status_cb.htmlSSL_CTX_get_tlsext_status_type.htmlSSL_CTX_get_verify_callback.htmlSSL_CTX_get_verify_depth.htmlSSL_CTX_get_verify_mode.htmlSSL_CTX_has_client_custom_ext.htmlSSL_CTX_keylog_cb_func.htmlSSL_CTX_load_verify_locations.htmlSSL_CTX_new.htmlSSL_CTX_remove_session.htmlSSL_CTX_select_current_cert.htmlSSL_CTX_sess_accept.htmlSSL_CTX_sess_accept_good.htmlSSL_CTX_sess_accept_renegotiate.htmlSSL_CTX_sess_cache_full.htmlSSL_CTX_sess_cb_hits.htmlSSL_CTX_sess_connect.htmlSSL_CTX_sess_connect_good.htmlSSL_CTX_sess_connect_renegotiate.htmlSSL_CTX_sess_get_cache_size.htmlSSL_CTX_sess_get_get_cb.htmlSSL_CTX_sess_get_new_cb.htmlSSL_CTX_sess_get_remove_cb.htmlSSL_CTX_sess_hits.htmlSSL_CTX_sess_misses.htmlSSL_CTX_sess_number.htmlSSL_CTX_sess_set_cache_size.htmlSSL_CTX_sess_set_get_cb.htmlSSL_CTX_sess_set_new_cb.htmlSSL_CTX_sess_set_remove_cb.htmlSSL_CTX_sess_timeouts.htmlSSL_CTX_sessions.htmlSSL_CTX_set0_CA_list.htmlSSL_CTX_set0_chain.htmlSSL_CTX_set0_chain_cert_store.htmlSSL_CTX_set0_security_ex_data.htmlSSL_CTX_set0_verify_cert_store.htmlSSL_CTX_set1_cert_store.htmlSSL_CTX_set1_chain.htmlSSL_CTX_set1_chain_cert_store.htmlSSL_CTX_set1_client_sigalgs.htmlSSL_CTX_set1_client_sigalgs_list.htmlSSL_CTX_set1_curves.htmlSSL_CTX_set1_curves_list.htmlSSL_CTX_set1_groups.htmlSSL_CTX_set1_groups_list.htmlSSL_CTX_set1_param.htmlSSL_CTX_set1_sigalgs.htmlSSL_CTX_set1_sigalgs_list.htmlSSL_CTX_set1_verify_cert_store.htmlSSL_CTX_set_allow_early_data_cb.htmlSSL_CTX_set_alpn_protos.htmlSSL_CTX_set_alpn_select_cb.htmlSSL_CTX_set_block_padding.htmlSSL_CTX_set_cert_cb.htmlSSL_CTX_set_cert_store.htmlSSL_CTX_set_cert_verify_callback.htmlSSL_CTX_set_cipher_list.htmlSSL_CTX_set_ciphersuites.htmlSSL_CTX_set_client_CA_list.htmlSSL_CTX_set_client_cert_cb.htmlSSL_CTX_set_client_hello_cb.htmlSSL_CTX_set_cookie_generate_cb.htmlSSL_CTX_set_cookie_verify_cb.htmlSSL_CTX_set_ct_validation_callback.htmlSSL_CTX_set_ctlog_list_file.htmlSSL_CTX_set_current_cert.htmlSSL_CTX_set_default_ctlog_list_file.htmlSSL_CTX_set_default_passwd_cb.htmlSSL_CTX_set_default_passwd_cb_userdata.htmlSSL_CTX_set_default_read_buffer_len.htmlSSL_CTX_set_default_verify_dir.htmlSSL_CTX_set_default_verify_file.htmlSSL_CTX_set_default_verify_paths.htmlSSL_CTX_set_ex_data.htmlSSL_CTX_set_generate_session_id.htmlSSL_CTX_set_info_callback.htmlSSL_CTX_set_keylog_callback.htmlSSL_CTX_set_max_cert_list.htmlSSL_CTX_set_max_early_data.htmlSSL_CTX_set_max_pipelines.htmlSSL_CTX_set_max_proto_version.htmlSSL_CTX_set_max_send_fragment.htmlSSL_CTX_set_min_proto_version.htmlSSL_CTX_set_mode.htmlSSL_CTX_set_msg_callback.htmlSSL_CTX_set_msg_callback_arg.htmlSSL_CTX_set_next_proto_select_cb.htmlSSL_CTX_set_next_protos_advertised_cb.htmlSSL_CTX_set_num_tickets.htmlSSL_CTX_set_options.htmlSSL_CTX_set_post_handshake_auth.htmlSSL_CTX_set_psk_client_callback.htmlSSL_CTX_set_psk_find_session_callback.htmlSSL_CTX_set_psk_server_callback.htmlSSL_CTX_set_psk_use_session_callback.htmlSSL_CTX_set_quiet_shutdown.htmlSSL_CTX_set_read_ahead.htmlSSL_CTX_set_record_padding_callback.htmlSSL_CTX_set_record_padding_callback_arg.htmlSSL_CTX_set_recv_max_early_data.htmlSSL_CTX_set_security_callback.htmlSSL_CTX_set_security_level.htmlSSL_CTX_set_session_cache_mode.htmlSSL_CTX_set_session_id_context.htmlSSL_CTX_set_session_ticket_cb.htmlSSL_CTX_set_split_send_fragment.htmlSSL_CTX_set_ssl_version.htmlSSL_CTX_set_stateless_cookie_generate_cb.htmlSSL_CTX_set_stateless_cookie_verify_cb.htmlSSL_CTX_set_timeout.htmlSSL_CTX_set_tlsext_max_fragment_length.htmlSSL_CTX_set_tlsext_servername_arg.htmlSSL_CTX_set_tlsext_servername_callback.htmlSSL_CTX_set_tlsext_status_arg.htmlSSL_CTX_set_tlsext_status_cb.htmlSSL_CTX_set_tlsext_status_type.htmlSSL_CTX_set_tlsext_ticket_key_cb.htmlSSL_CTX_set_tlsext_use_srtp.htmlSSL_CTX_set_tmp_dh.htmlSSL_CTX_set_tmp_dh_callback.htmlSSL_CTX_set_verify.htmlSSL_CTX_set_verify_depth.htmlSSL_CTX_up_ref.htmlSSL_CTX_use_PrivateKey.htmlSSL_CTX_use_PrivateKey_ASN1.htmlSSL_CTX_use_PrivateKey_file.htmlSSL_CTX_use_RSAPrivateKey.htmlSSL_CTX_use_RSAPrivateKey_ASN1.htmlSSL_CTX_use_RSAPrivateKey_file.htmlSSL_CTX_use_cert_and_key.htmlSSL_CTX_use_certificate.htmlSSL_CTX_use_certificate_ASN1.htmlSSL_CTX_use_certificate_chain_file.htmlSSL_CTX_use_certificate_file.htmlSSL_CTX_use_psk_identity_hint.htmlSSL_CTX_use_serverinfo.htmlSSL_CTX_use_serverinfo_ex.htmlSSL_CTX_use_serverinfo_file.htmlSSL_SESSION_dup.htmlSSL_SESSION_free.htmlSSL_SESSION_get0_alpn_selected.htmlSSL_SESSION_get0_cipher.htmlSSL_SESSION_get0_hostname.htmlSSL_SESSION_get0_id_context.htmlSSL_SESSION_get0_peer.htmlSSL_SESSION_get0_ticket.htmlSSL_SESSION_get0_ticket_appdata.htmlSSL_SESSION_get_compress_id.htmlSSL_SESSION_get_ex_data.htmlSSL_SESSION_get_id.htmlSSL_SESSION_get_master_key.htmlSSL_SESSION_get_max_early_data.htmlSSL_SESSION_get_max_fragment_length.htmlSSL_SESSION_get_protocol_version.htmlSSL_SESSION_get_ticket_lifetime_hint.htmlSSL_SESSION_get_time.htmlSSL_SESSION_get_timeout.htmlSSL_SESSION_has_ticket.htmlSSL_SESSION_is_resumable.htmlSSL_SESSION_new.htmlSSL_SESSION_print.htmlSSL_SESSION_print_fp.htmlSSL_SESSION_print_keylog.htmlSSL_SESSION_set1_alpn_selected.htmlSSL_SESSION_set1_hostname.htmlSSL_SESSION_set1_id.htmlSSL_SESSION_set1_id_context.htmlSSL_SESSION_set1_master_key.htmlSSL_SESSION_set1_ticket_appdata.htmlSSL_SESSION_set_cipher.htmlSSL_SESSION_set_ex_data.htmlSSL_SESSION_set_max_early_data.htmlSSL_SESSION_set_protocol_version.htmlSSL_SESSION_set_time.htmlSSL_SESSION_set_timeout.htmlSSL_SESSION_up_ref.htmlSSL_accept.htmlSSL_add0_chain_cert.htmlSSL_add1_chain_cert.htmlSSL_add1_host.htmlSSL_add1_to_CA_list.htmlSSL_add_client_CA.htmlSSL_add_dir_cert_subjects_to_stack.htmlSSL_add_file_cert_subjects_to_stack.htmlSSL_alert_desc_string.htmlSSL_alert_desc_string_long.htmlSSL_alert_type_string.htmlSSL_alert_type_string_long.htmlSSL_alloc_buffers.htmlSSL_allow_early_data_cb_fn.htmlSSL_build_cert_chain.htmlSSL_bytes_to_cipher_list.htmlSSL_callback_ctrl.htmlSSL_check_chain.htmlSSL_check_private_key.htmlSSL_clear.htmlSSL_clear_chain_certs.htmlSSL_clear_mode.htmlSSL_clear_options.htmlSSL_client_hello_cb_fn.htmlSSL_client_hello_get0_ciphers.htmlSSL_client_hello_get0_compression_methods.htmlSSL_client_hello_get0_ext.htmlSSL_client_hello_get0_legacy_version.htmlSSL_client_hello_get0_random.htmlSSL_client_hello_get0_session_id.htmlSSL_client_hello_get1_extensions_present.htmlSSL_client_hello_isv2.htmlSSL_client_version.htmlSSL_config.htmlSSL_connect.htmlSSL_ct_is_enabled.htmlSSL_ctrl.htmlSSL_dane_clear_flags.htmlSSL_dane_enable.htmlSSL_dane_set_flags.htmlSSL_dane_tlsa_add.htmlSSL_disable_ct.htmlSSL_do_handshake.htmlSSL_dup.htmlSSL_enable_ct.htmlSSL_export_keying_material.htmlSSL_export_keying_material_early.htmlSSL_extension_supported.htmlSSL_free.htmlSSL_free_buffers.htmlSSL_get0_CA_list.htmlSSL_get0_alpn_selected.htmlSSL_get0_chain_cert_store.htmlSSL_get0_chain_certs.htmlSSL_get0_dane_authority.htmlSSL_get0_dane_tlsa.htmlSSL_get0_next_proto_negotiated.htmlSSL_get0_param.htmlSSL_get0_peer_CA_list.htmlSSL_get0_peer_scts.htmlSSL_get0_peername.htmlSSL_get0_security_ex_data.htmlSSL_get0_session.htmlSSL_get0_verified_chain.htmlSSL_get0_verify_cert_store.htmlSSL_get1_curves.htmlSSL_get1_groups.htmlSSL_get1_session.htmlSSL_get1_supported_ciphers.htmlSSL_get_SSL_CTX.htmlSSL_get_all_async_fds.htmlSSL_get_changed_async_fds.htmlSSL_get_cipher.htmlSSL_get_cipher_bits.htmlSSL_get_cipher_list.htmlSSL_get_cipher_name.htmlSSL_get_cipher_version.htmlSSL_get_ciphers.htmlSSL_get_client_CA_list.htmlSSL_get_client_ciphers.htmlSSL_get_client_random.htmlSSL_get_current_cipher.htmlSSL_get_default_passwd_cb.htmlSSL_get_default_passwd_cb_userdata.htmlSSL_get_default_timeout.htmlSSL_get_early_data_status.htmlSSL_get_error.htmlSSL_get_ex_data.htmlSSL_get_ex_data_X509_STORE_CTX_idx.htmlSSL_get_extms_support.htmlSSL_get_fd.htmlSSL_get_info_callback.htmlSSL_get_key_update_type.htmlSSL_get_max_cert_list.htmlSSL_get_max_early_data.htmlSSL_get_max_proto_version.htmlSSL_get_min_proto_version.htmlSSL_get_mode.htmlSSL_get_num_tickets.htmlSSL_get_options.htmlSSL_get_peer_cert_chain.htmlSSL_get_peer_certificate.htmlSSL_get_peer_signature_nid.htmlSSL_get_peer_signature_type_nid.htmlSSL_get_peer_tmp_key.htmlSSL_get_pending_cipher.htmlSSL_get_psk_identity.htmlSSL_get_psk_identity_hint.htmlSSL_get_quiet_shutdown.htmlSSL_get_rbio.htmlSSL_get_read_ahead.htmlSSL_get_record_padding_callback_arg.htmlSSL_get_recv_max_early_data.htmlSSL_get_rfd.htmlSSL_get_secure_renegotiation_support.htmlSSL_get_security_callback.htmlSSL_get_security_level.htmlSSL_get_selected_srtp_profile.htmlSSL_get_server_random.htmlSSL_get_server_tmp_key.htmlSSL_get_servername.htmlSSL_get_servername_type.htmlSSL_get_session.htmlSSL_get_shared_ciphers.htmlSSL_get_shared_curve.htmlSSL_get_shared_group.htmlSSL_get_shared_sigalgs.htmlSSL_get_shutdown.htmlSSL_get_sigalgs.htmlSSL_get_signature_nid.htmlSSL_get_signature_type_nid.htmlSSL_get_srtp_profiles.htmlSSL_get_ssl_method.htmlSSL_get_state.htmlSSL_get_time.htmlSSL_get_timeout.htmlSSL_get_tlsext_status_ocsp_resp.htmlSSL_get_tlsext_status_type.htmlSSL_get_tmp_key.htmlSSL_get_verify_callback.htmlSSL_get_verify_depth.htmlSSL_get_verify_mode.htmlSSL_get_verify_result.htmlSSL_get_version.htmlSSL_get_wbio.htmlSSL_get_wfd.htmlSSL_has_matching_session_id.htmlSSL_has_pending.htmlSSL_in_accept_init.htmlSSL_in_before.htmlSSL_in_connect_init.htmlSSL_in_init.htmlSSL_is_dtls.htmlSSL_is_init_finished.htmlSSL_is_server.htmlSSL_key_update.htmlSSL_library_init.htmlSSL_load_client_CA_file.htmlSSL_load_error_strings.htmlSSL_new.htmlSSL_peek.htmlSSL_peek_ex.htmlSSL_pending.htmlSSL_psk_client_cb_func.htmlSSL_psk_find_session_cb_func.htmlSSL_psk_server_cb_func.htmlSSL_psk_use_session_cb_func.htmlSSL_read.htmlSSL_read_early_data.htmlSSL_read_ex.htmlSSL_renegotiate.htmlSSL_renegotiate_abbreviated.htmlSSL_renegotiate_pending.htmlSSL_rstate_string.htmlSSL_rstate_string_long.htmlSSL_select_current_cert.htmlSSL_select_next_proto.htmlSSL_session_reused.htmlSSL_set0_CA_list.htmlSSL_set0_chain.htmlSSL_set0_chain_cert_store.htmlSSL_set0_rbio.htmlSSL_set0_security_ex_data.htmlSSL_set0_verify_cert_store.htmlSSL_set0_wbio.htmlSSL_set1_chain.htmlSSL_set1_chain_cert_store.htmlSSL_set1_client_sigalgs.htmlSSL_set1_client_sigalgs_list.htmlSSL_set1_curves.htmlSSL_set1_curves_list.htmlSSL_set1_groups.htmlSSL_set1_groups_list.htmlSSL_set1_host.htmlSSL_set1_param.htmlSSL_set1_sigalgs.htmlSSL_set1_sigalgs_list.htmlSSL_set1_verify_cert_store.htmlSSL_set_accept_state.htmlSSL_set_allow_early_data_cb.htmlSSL_set_alpn_protos.htmlSSL_set_bio.htmlSSL_set_block_padding.htmlSSL_set_cert_cb.htmlSSL_set_cipher_list.htmlSSL_set_ciphersuites.htmlSSL_set_client_CA_list.htmlSSL_set_connect_state.htmlSSL_set_ct_validation_callback.htmlSSL_set_current_cert.htmlSSL_set_default_passwd_cb.htmlSSL_set_default_passwd_cb_userdata.htmlSSL_set_default_read_buffer_len.htmlSSL_set_ex_data.htmlSSL_set_fd.htmlSSL_set_generate_session_id.htmlSSL_set_hostflags.htmlSSL_set_info_callback.htmlSSL_set_max_cert_list.htmlSSL_set_max_early_data.htmlSSL_set_max_pipelines.htmlSSL_set_max_proto_version.htmlSSL_set_max_send_fragment.htmlSSL_set_min_proto_version.htmlSSL_set_mode.htmlSSL_set_msg_callback.htmlSSL_set_msg_callback_arg.htmlSSL_set_num_tickets.htmlSSL_set_options.htmlSSL_set_post_handshake_auth.htmlSSL_set_psk_client_callback.htmlSSL_set_psk_find_session_callback.htmlSSL_set_psk_server_callback.htmlSSL_set_psk_use_session_callback.htmlSSL_set_quiet_shutdown.htmlSSL_set_read_ahead.htmlSSL_set_record_padding_callback.htmlSSL_set_record_padding_callback_arg.htmlSSL_set_recv_max_early_data.htmlSSL_set_rfd.htmlSSL_set_security_callback.htmlSSL_set_security_level.htmlSSL_set_session.htmlSSL_set_session_id_context.htmlSSL_set_shutdown.htmlSSL_set_split_send_fragment.htmlSSL_set_ssl_method.htmlSSL_set_time.htmlSSL_set_timeout.htmlSSL_set_tlsext_host_name.htmlSSL_set_tlsext_max_fragment_length.htmlSSL_set_tlsext_status_ocsp_resp.htmlSSL_set_tlsext_status_type.htmlSSL_set_tlsext_use_srtp.htmlSSL_set_tmp_dh.htmlSSL_set_tmp_dh_callback.htmlSSL_set_verify.htmlSSL_set_verify_depth.htmlSSL_set_verify_result.htmlSSL_set_wfd.htmlSSL_shutdown.htmlSSL_state_string.htmlSSL_state_string_long.htmlSSL_stateless.htmlSSL_up_ref.htmlSSL_use_PrivateKey.htmlSSL_use_PrivateKey_ASN1.htmlSSL_use_PrivateKey_file.htmlSSL_use_RSAPrivateKey.htmlSSL_use_RSAPrivateKey_ASN1.htmlSSL_use_RSAPrivateKey_file.htmlSSL_use_cert_and_key.htmlSSL_use_certificate.htmlSSL_use_certificate_ASN1.htmlSSL_use_certificate_chain_file.htmlSSL_use_certificate_file.htmlSSL_use_psk_identity_hint.htmlSSL_verify_cb.htmlSSL_verify_client_post_handshake.htmlSSL_version.htmlSSL_waiting_for_async.htmlSSL_want.htmlSSL_want_async.htmlSSL_want_async_job.htmlSSL_want_client_hello_cb.htmlSSL_want_nothing.htmlSSL_want_read.htmlSSL_want_write.htmlSSL_want_x509_lookup.htmlSSL_write.htmlSSL_write_early_data.htmlSSL_write_ex.htmlSSLv23_client_method.htmlSSLv23_method.htmlSSLv23_server_method.htmlSSLv3_client_method.htmlSSLv3_method.htmlSSLv3_server_method.htmlSXNETID_free.htmlSXNETID_new.htmlSXNET_free.htmlSXNET_new.htmlTLS_FEATURE_free.htmlTLS_FEATURE_new.htmlTLS_client_method.htmlTLS_method.htmlTLS_server_method.htmlTLSv1_1_client_method.htmlTLSv1_1_method.htmlTLSv1_1_server_method.htmlTLSv1_2_client_method.htmlTLSv1_2_method.htmlTLSv1_2_server_method.htmlTLSv1_client_method.htmlTLSv1_method.htmlTLSv1_server_method.htmlTS_ACCURACY_dup.htmlTS_ACCURACY_free.htmlTS_ACCURACY_new.htmlTS_MSG_IMPRINT_dup.htmlTS_MSG_IMPRINT_free.htmlTS_MSG_IMPRINT_new.htmlTS_REQ_dup.htmlTS_REQ_free.htmlTS_REQ_new.htmlTS_RESP_dup.htmlTS_RESP_free.htmlTS_RESP_new.htmlTS_STATUS_INFO_dup.htmlTS_STATUS_INFO_free.htmlTS_STATUS_INFO_new.htmlTS_TST_INFO_dup.htmlTS_TST_INFO_free.htmlTS_TST_INFO_new.htmlUI.htmlUI_METHOD.htmlUI_OpenSSL.htmlUI_STRING.htmlUI_UTIL_read_pw.htmlUI_UTIL_read_pw_string.htmlUI_UTIL_wrap_read_pem_callback.htmlUI_add_error_string.htmlUI_add_info_string.htmlUI_add_input_boolean.htmlUI_add_input_string.htmlUI_add_user_data.htmlUI_add_verify_string.htmlUI_construct_prompt.htmlUI_create_method.htmlUI_ctrl.htmlUI_destroy_method.htmlUI_dup_error_string.htmlUI_dup_info_string.htmlUI_dup_input_boolean.htmlUI_dup_input_string.htmlUI_dup_user_data.htmlUI_dup_verify_string.htmlUI_free.htmlUI_get0_action_string.htmlUI_get0_output_string.htmlUI_get0_result.htmlUI_get0_result_string.htmlUI_get0_test_string.htmlUI_get0_user_data.htmlUI_get_default_method.htmlUI_get_ex_data.htmlUI_get_ex_new_index.htmlUI_get_input_flags.htmlUI_get_method.htmlUI_get_result_length.htmlUI_get_result_maxsize.htmlUI_get_result_minsize.htmlUI_get_result_string_length.htmlUI_get_string_type.htmlUI_method_get_closer.htmlUI_method_get_data_destructor.htmlUI_method_get_data_duplicator.htmlUI_method_get_ex_data.htmlUI_method_get_flusher.htmlUI_method_get_opener.htmlUI_method_get_prompt_constructor.htmlUI_method_get_reader.htmlUI_method_get_writer.htmlUI_method_set_closer.htmlUI_method_set_data_duplicator.htmlUI_method_set_ex_data.htmlUI_method_set_flusher.htmlUI_method_set_opener.htmlUI_method_set_prompt_constructor.htmlUI_method_set_reader.htmlUI_method_set_writer.htmlUI_new.htmlUI_new_method.htmlUI_null.htmlUI_process.htmlUI_set_default_method.htmlUI_set_ex_data.htmlUI_set_method.htmlUI_set_result.htmlUI_set_result_ex.htmlUI_string_types.htmlUSERNOTICE_free.htmlUSERNOTICE_new.htmlX509V3_EXT_d2i.htmlX509V3_EXT_i2d.htmlX509V3_add1_i2d.htmlX509V3_get_d2i.htmlX509_ALGOR_cmp.htmlX509_ALGOR_copy.htmlX509_ALGOR_dup.htmlX509_ALGOR_free.htmlX509_ALGOR_get0.htmlX509_ALGOR_new.htmlX509_ALGOR_set0.htmlX509_ALGOR_set_md.htmlX509_ATTRIBUTE_dup.htmlX509_ATTRIBUTE_free.htmlX509_ATTRIBUTE_new.htmlX509_CERT_AUX_free.htmlX509_CERT_AUX_new.htmlX509_CINF_free.htmlX509_CINF_new.htmlX509_CRL_INFO_free.htmlX509_CRL_INFO_new.htmlX509_CRL_add0_revoked.htmlX509_CRL_add1_ext_i2d.htmlX509_CRL_add_ext.htmlX509_CRL_cmp.htmlX509_CRL_delete_ext.htmlX509_CRL_digest.htmlX509_CRL_dup.htmlX509_CRL_free.htmlX509_CRL_get0_by_cert.htmlX509_CRL_get0_by_serial.htmlX509_CRL_get0_extensions.htmlX509_CRL_get0_lastUpdate.htmlX509_CRL_get0_nextUpdate.htmlX509_CRL_get0_signature.htmlX509_CRL_get_REVOKED.htmlX509_CRL_get_ext.htmlX509_CRL_get_ext_by_NID.htmlX509_CRL_get_ext_by_OBJ.htmlX509_CRL_get_ext_by_critical.htmlX509_CRL_get_ext_count.htmlX509_CRL_get_ext_d2i.htmlX509_CRL_get_issuer.htmlX509_CRL_get_signature_nid.htmlX509_CRL_get_version.htmlX509_CRL_match.htmlX509_CRL_new.htmlX509_CRL_set1_lastUpdate.htmlX509_CRL_set1_nextUpdate.htmlX509_CRL_set_issuer_name.htmlX509_CRL_set_version.htmlX509_CRL_sign.htmlX509_CRL_sign_ctx.htmlX509_CRL_sort.htmlX509_CRL_verify.htmlX509_EXTENSION_create_by_NID.htmlX509_EXTENSION_create_by_OBJ.htmlX509_EXTENSION_dup.htmlX509_EXTENSION_free.htmlX509_EXTENSION_get_critical.htmlX509_EXTENSION_get_data.htmlX509_EXTENSION_get_object.htmlX509_EXTENSION_new.htmlX509_EXTENSION_set_critical.htmlX509_EXTENSION_set_data.htmlX509_EXTENSION_set_object.htmlX509_LOOKUP.htmlX509_LOOKUP_METHOD.htmlX509_LOOKUP_TYPE.htmlX509_LOOKUP_add_dir.htmlX509_LOOKUP_by_alias.htmlX509_LOOKUP_by_fingerprint.htmlX509_LOOKUP_by_issuer_serial.htmlX509_LOOKUP_by_subject.htmlX509_LOOKUP_ctrl.htmlX509_LOOKUP_ctrl_fn.htmlX509_LOOKUP_file.htmlX509_LOOKUP_free.htmlX509_LOOKUP_get_by_alias_fn.htmlX509_LOOKUP_get_by_fingerprint_fn.htmlX509_LOOKUP_get_by_issuer_serial_fn.htmlX509_LOOKUP_get_by_subject_fn.htmlX509_LOOKUP_get_method_data.htmlX509_LOOKUP_get_store.htmlX509_LOOKUP_hash_dir.htmlX509_LOOKUP_init.htmlX509_LOOKUP_load_file.htmlX509_LOOKUP_meth_free.htmlX509_LOOKUP_meth_get_ctrl.htmlX509_LOOKUP_meth_get_free.htmlX509_LOOKUP_meth_get_get_by_alias.htmlX509_LOOKUP_meth_get_get_by_fingerprint.htmlX509_LOOKUP_meth_get_get_by_issuer_serial.htmlX509_LOOKUP_meth_get_get_by_subject.htmlX509_LOOKUP_meth_get_init.htmlX509_LOOKUP_meth_get_new_item.htmlX509_LOOKUP_meth_get_shutdown.htmlX509_LOOKUP_meth_new.htmlX509_LOOKUP_meth_set_ctrl.htmlX509_LOOKUP_meth_set_free.htmlX509_LOOKUP_meth_set_get_by_alias.htmlX509_LOOKUP_meth_set_get_by_fingerprint.htmlX509_LOOKUP_meth_set_get_by_issuer_serial.htmlX509_LOOKUP_meth_set_get_by_subject.htmlX509_LOOKUP_meth_set_init.htmlX509_LOOKUP_meth_set_new_item.htmlX509_LOOKUP_meth_set_shutdown.htmlX509_LOOKUP_new.htmlX509_LOOKUP_set_method_data.htmlX509_LOOKUP_shutdown.htmlX509_NAME_ENTRY_create_by_NID.htmlX509_NAME_ENTRY_create_by_OBJ.htmlX509_NAME_ENTRY_create_by_txt.htmlX509_NAME_ENTRY_dup.htmlX509_NAME_ENTRY_free.htmlX509_NAME_ENTRY_get_data.htmlX509_NAME_ENTRY_get_object.htmlX509_NAME_ENTRY_new.htmlX509_NAME_ENTRY_set_data.htmlX509_NAME_ENTRY_set_object.htmlX509_NAME_add_entry.htmlX509_NAME_add_entry_by_NID.htmlX509_NAME_add_entry_by_OBJ.htmlX509_NAME_add_entry_by_txt.htmlX509_NAME_cmp.htmlX509_NAME_delete_entry.htmlX509_NAME_digest.htmlX509_NAME_dup.htmlX509_NAME_entry_count.htmlX509_NAME_free.htmlX509_NAME_get0_der.htmlX509_NAME_get_entry.htmlX509_NAME_get_index_by_NID.htmlX509_NAME_get_index_by_OBJ.htmlX509_NAME_get_text_by_NID.htmlX509_NAME_get_text_by_OBJ.htmlX509_NAME_new.htmlX509_NAME_oneline.htmlX509_NAME_print.htmlX509_NAME_print_ex.htmlX509_NAME_print_ex_fp.htmlX509_OBJECT_set1_X509.htmlX509_OBJECT_set1_X509_CRL.htmlX509_PUBKEY_free.htmlX509_PUBKEY_get.htmlX509_PUBKEY_get0.htmlX509_PUBKEY_get0_param.htmlX509_PUBKEY_new.htmlX509_PUBKEY_set.htmlX509_PUBKEY_set0_param.htmlX509_REQ_INFO_free.htmlX509_REQ_INFO_new.htmlX509_REQ_check_private_key.htmlX509_REQ_digest.htmlX509_REQ_dup.htmlX509_REQ_free.htmlX509_REQ_get0_pubkey.htmlX509_REQ_get0_signature.htmlX509_REQ_get_X509_PUBKEY.htmlX509_REQ_get_pubkey.htmlX509_REQ_get_signature_nid.htmlX509_REQ_get_subject_name.htmlX509_REQ_get_version.htmlX509_REQ_new.htmlX509_REQ_set0_signature.htmlX509_REQ_set1_signature_algo.htmlX509_REQ_set_pubkey.htmlX509_REQ_set_subject_name.htmlX509_REQ_set_version.htmlX509_REQ_sign.htmlX509_REQ_sign_ctx.htmlX509_REQ_verify.htmlX509_REVOKED_add1_ext_i2d.htmlX509_REVOKED_add_ext.htmlX509_REVOKED_delete_ext.htmlX509_REVOKED_dup.htmlX509_REVOKED_free.htmlX509_REVOKED_get0_extensions.htmlX509_REVOKED_get0_revocationDate.htmlX509_REVOKED_get0_serialNumber.htmlX509_REVOKED_get_ext.htmlX509_REVOKED_get_ext_by_NID.htmlX509_REVOKED_get_ext_by_OBJ.htmlX509_REVOKED_get_ext_by_critical.htmlX509_REVOKED_get_ext_count.htmlX509_REVOKED_get_ext_d2i.htmlX509_REVOKED_new.htmlX509_REVOKED_set_revocationDate.htmlX509_REVOKED_set_serialNumber.htmlX509_SIG_INFO_get.htmlX509_SIG_INFO_set.htmlX509_SIG_free.htmlX509_SIG_get0.htmlX509_SIG_getm.htmlX509_SIG_new.htmlX509_STORE.htmlX509_STORE_CTX_cert_crl_fn.htmlX509_STORE_CTX_check_crl_fn.htmlX509_STORE_CTX_check_issued_fn.htmlX509_STORE_CTX_check_policy_fn.htmlX509_STORE_CTX_check_revocation_fn.htmlX509_STORE_CTX_cleanup.htmlX509_STORE_CTX_cleanup_fn.htmlX509_STORE_CTX_free.htmlX509_STORE_CTX_get0_cert.htmlX509_STORE_CTX_get0_chain.htmlX509_STORE_CTX_get0_param.htmlX509_STORE_CTX_get0_untrusted.htmlX509_STORE_CTX_get1_chain.htmlX509_STORE_CTX_get_cert_crl.htmlX509_STORE_CTX_get_check_crl.htmlX509_STORE_CTX_get_check_issued.htmlX509_STORE_CTX_get_check_policy.htmlX509_STORE_CTX_get_check_revocation.htmlX509_STORE_CTX_get_cleanup.htmlX509_STORE_CTX_get_crl_fn.htmlX509_STORE_CTX_get_current_cert.htmlX509_STORE_CTX_get_error.htmlX509_STORE_CTX_get_error_depth.htmlX509_STORE_CTX_get_ex_data.htmlX509_STORE_CTX_get_ex_new_index.htmlX509_STORE_CTX_get_get_crl.htmlX509_STORE_CTX_get_get_issuer.htmlX509_STORE_CTX_get_issuer_fn.htmlX509_STORE_CTX_get_lookup_certs.htmlX509_STORE_CTX_get_lookup_crls.htmlX509_STORE_CTX_get_num_untrusted.htmlX509_STORE_CTX_get_verify.htmlX509_STORE_CTX_get_verify_cb.htmlX509_STORE_CTX_init.htmlX509_STORE_CTX_lookup_certs_fn.htmlX509_STORE_CTX_lookup_crls_fn.htmlX509_STORE_CTX_new.htmlX509_STORE_CTX_purpose_inherit.htmlX509_STORE_CTX_set0_crls.htmlX509_STORE_CTX_set0_param.htmlX509_STORE_CTX_set0_trusted_stack.htmlX509_STORE_CTX_set0_untrusted.htmlX509_STORE_CTX_set0_verified_chain.htmlX509_STORE_CTX_set_cert.htmlX509_STORE_CTX_set_current_cert.htmlX509_STORE_CTX_set_default.htmlX509_STORE_CTX_set_error.htmlX509_STORE_CTX_set_error_depth.htmlX509_STORE_CTX_set_ex_data.htmlX509_STORE_CTX_set_purpose.htmlX509_STORE_CTX_set_trust.htmlX509_STORE_CTX_set_verify.htmlX509_STORE_CTX_set_verify_cb.htmlX509_STORE_CTX_verify_cb.htmlX509_STORE_CTX_verify_fn.htmlX509_STORE_add_cert.htmlX509_STORE_add_crl.htmlX509_STORE_add_lookup.htmlX509_STORE_free.htmlX509_STORE_get0_objects.htmlX509_STORE_get0_param.htmlX509_STORE_get_cert_crl.htmlX509_STORE_get_check_crl.htmlX509_STORE_get_check_issued.htmlX509_STORE_get_check_policy.htmlX509_STORE_get_check_revocation.htmlX509_STORE_get_cleanup.htmlX509_STORE_get_ex_data.htmlX509_STORE_get_ex_new_index.htmlX509_STORE_get_get_crl.htmlX509_STORE_get_get_issuer.htmlX509_STORE_get_lookup_certs.htmlX509_STORE_get_lookup_crls.htmlX509_STORE_get_verify_cb.htmlX509_STORE_load_locations.htmlX509_STORE_lock.htmlX509_STORE_new.htmlX509_STORE_set1_param.htmlX509_STORE_set_cert_crl.htmlX509_STORE_set_check_crl.htmlX509_STORE_set_check_issued.htmlX509_STORE_set_check_policy.htmlX509_STORE_set_check_revocation.htmlX509_STORE_set_cleanup.htmlX509_STORE_set_default_paths.htmlX509_STORE_set_depth.htmlX509_STORE_set_ex_data.htmlX509_STORE_set_flags.htmlX509_STORE_set_get_crl.htmlX509_STORE_set_get_issuer.htmlX509_STORE_set_lookup_certs.htmlX509_STORE_set_lookup_crls.htmlX509_STORE_set_lookup_crls_cb.htmlX509_STORE_set_purpose.htmlX509_STORE_set_trust.htmlX509_STORE_set_verify.htmlX509_STORE_set_verify_cb.htmlX509_STORE_set_verify_cb_func.htmlX509_STORE_set_verify_func.htmlX509_STORE_unlock.htmlX509_STORE_up_ref.htmlX509_VAL_free.htmlX509_VAL_new.htmlX509_VERIFY_PARAM_add0_policy.htmlX509_VERIFY_PARAM_add1_host.htmlX509_VERIFY_PARAM_clear_flags.htmlX509_VERIFY_PARAM_get0_peername.htmlX509_VERIFY_PARAM_get_auth_level.htmlX509_VERIFY_PARAM_get_depth.htmlX509_VERIFY_PARAM_get_flags.htmlX509_VERIFY_PARAM_get_hostflags.htmlX509_VERIFY_PARAM_get_inh_flags.htmlX509_VERIFY_PARAM_get_time.htmlX509_VERIFY_PARAM_set1_email.htmlX509_VERIFY_PARAM_set1_host.htmlX509_VERIFY_PARAM_set1_ip.htmlX509_VERIFY_PARAM_set1_ip_asc.htmlX509_VERIFY_PARAM_set1_policies.htmlX509_VERIFY_PARAM_set_auth_level.htmlX509_VERIFY_PARAM_set_depth.htmlX509_VERIFY_PARAM_set_flags.htmlX509_VERIFY_PARAM_set_hostflags.htmlX509_VERIFY_PARAM_set_inh_flags.htmlX509_VERIFY_PARAM_set_purpose.htmlX509_VERIFY_PARAM_set_time.htmlX509_VERIFY_PARAM_set_trust.htmlX509_add1_ext_i2d.htmlX509_add_ext.htmlX509_chain_up_ref.htmlX509_check_ca.htmlX509_check_email.htmlX509_check_host.htmlX509_check_ip.htmlX509_check_ip_asc.htmlX509_check_issued.htmlX509_check_private_key.htmlX509_check_purpose.htmlX509_cmp.htmlX509_cmp_current_time.htmlX509_cmp_time.htmlX509_delete_ext.htmlX509_digest.htmlX509_dup.htmlX509_free.htmlX509_get0_authority_issuer.htmlX509_get0_authority_key_id.htmlX509_get0_authority_serial.htmlX509_get0_extensions.htmlX509_get0_notAfter.htmlX509_get0_notBefore.htmlX509_get0_pubkey.htmlX509_get0_serialNumber.htmlX509_get0_signature.htmlX509_get0_subject_key_id.htmlX509_get0_tbs_sigalg.htmlX509_get0_uids.htmlX509_get_X509_PUBKEY.htmlX509_get_ex_data.htmlX509_get_ex_new_index.htmlX509_get_ext.htmlX509_get_ext_by_NID.htmlX509_get_ext_by_OBJ.htmlX509_get_ext_by_critical.htmlX509_get_ext_count.htmlX509_get_ext_d2i.htmlX509_get_extended_key_usage.htmlX509_get_extension_flags.htmlX509_get_issuer_name.htmlX509_get_key_usage.htmlX509_get_pathlen.htmlX509_get_proxy_pathlen.htmlX509_get_pubkey.htmlX509_get_serialNumber.htmlX509_get_signature_info.htmlX509_get_signature_nid.htmlX509_get_subject_name.htmlX509_get_version.htmlX509_getm_notAfter.htmlX509_getm_notBefore.htmlX509_issuer_and_serial_cmp.htmlX509_issuer_name_cmp.htmlX509_load_cert_crl_file.htmlX509_load_cert_file.htmlX509_load_crl_file.htmlX509_new.htmlX509_pubkey_digest.htmlX509_set1_notAfter.htmlX509_set1_notBefore.htmlX509_set_ex_data.htmlX509_set_issuer_name.htmlX509_set_proxy_flag.htmlX509_set_proxy_pathlen.htmlX509_set_pubkey.htmlX509_set_serialNumber.htmlX509_set_subject_name.htmlX509_set_version.htmlX509_sign.htmlX509_sign_ctx.htmlX509_subject_name_cmp.htmlX509_time_adj.htmlX509_time_adj_ex.htmlX509_up_ref.htmlX509_verify.htmlX509_verify_cert.htmlX509_verify_cert_error_string.htmlX509v3_add_ext.htmlX509v3_delete_ext.htmlX509v3_get_ext.htmlX509v3_get_ext_by_NID.htmlX509v3_get_ext_by_OBJ.htmlX509v3_get_ext_by_critical.htmlX509v3_get_ext_count.htmlcustom_ext_add_cb.htmlcustom_ext_free_cb.htmlcustom_ext_parse_cb.htmld2i_ACCESS_DESCRIPTION.htmld2i_ADMISSIONS.htmld2i_ADMISSION_SYNTAX.htmld2i_ASIdOrRange.htmld2i_ASIdentifierChoice.htmld2i_ASIdentifiers.htmld2i_ASN1_BIT_STRING.htmld2i_ASN1_BMPSTRING.htmld2i_ASN1_ENUMERATED.htmld2i_ASN1_GENERALIZEDTIME.htmld2i_ASN1_GENERALSTRING.htmld2i_ASN1_IA5STRING.htmld2i_ASN1_INTEGER.htmld2i_ASN1_NULL.htmld2i_ASN1_OBJECT.htmld2i_ASN1_OCTET_STRING.htmld2i_ASN1_PRINTABLE.htmld2i_ASN1_PRINTABLESTRING.htmld2i_ASN1_SEQUENCE_ANY.htmld2i_ASN1_SET_ANY.htmld2i_ASN1_T61STRING.htmld2i_ASN1_TIME.htmld2i_ASN1_TYPE.htmld2i_ASN1_UINTEGER.htmld2i_ASN1_UNIVERSALSTRING.htmld2i_ASN1_UTCTIME.htmld2i_ASN1_UTF8STRING.htmld2i_ASN1_VISIBLESTRING.htmld2i_ASRange.htmld2i_AUTHORITY_INFO_ACCESS.htmld2i_AUTHORITY_KEYID.htmld2i_AutoPrivateKey.htmld2i_BASIC_CONSTRAINTS.htmld2i_CERTIFICATEPOLICIES.htmld2i_CMS_ContentInfo.htmld2i_CMS_ReceiptRequest.htmld2i_CMS_bio.htmld2i_CRL_DIST_POINTS.htmld2i_DHparams.htmld2i_DHxparams.htmld2i_DIRECTORYSTRING.htmld2i_DISPLAYTEXT.htmld2i_DIST_POINT.htmld2i_DIST_POINT_NAME.htmld2i_DSAPrivateKey.htmld2i_DSAPrivateKey_bio.htmld2i_DSAPrivateKey_fp.htmld2i_DSAPublicKey.htmld2i_DSA_PUBKEY.htmld2i_DSA_PUBKEY_bio.htmld2i_DSA_PUBKEY_fp.htmld2i_DSA_SIG.htmld2i_DSAparams.htmld2i_ECDSA_SIG.htmld2i_ECPKParameters.htmld2i_ECParameters.htmld2i_ECPrivateKey.htmld2i_ECPrivateKey_bio.htmld2i_ECPrivateKey_fp.htmld2i_EC_PUBKEY.htmld2i_EC_PUBKEY_bio.htmld2i_EC_PUBKEY_fp.htmld2i_EDIPARTYNAME.htmld2i_ESS_CERT_ID.htmld2i_ESS_ISSUER_SERIAL.htmld2i_ESS_SIGNING_CERT.htmld2i_EXTENDED_KEY_USAGE.htmld2i_GENERAL_NAME.htmld2i_GENERAL_NAMES.htmld2i_IPAddressChoice.htmld2i_IPAddressFamily.htmld2i_IPAddressOrRange.htmld2i_IPAddressRange.htmld2i_ISSUING_DIST_POINT.htmld2i_NAMING_AUTHORITY.htmld2i_NETSCAPE_CERT_SEQUENCE.htmld2i_NETSCAPE_SPKAC.htmld2i_NETSCAPE_SPKI.htmld2i_NOTICEREF.htmld2i_OCSP_BASICRESP.htmld2i_OCSP_CERTID.htmld2i_OCSP_CERTSTATUS.htmld2i_OCSP_CRLID.htmld2i_OCSP_ONEREQ.htmld2i_OCSP_REQINFO.htmld2i_OCSP_REQUEST.htmld2i_OCSP_RESPBYTES.htmld2i_OCSP_RESPDATA.htmld2i_OCSP_RESPID.htmld2i_OCSP_RESPONSE.htmld2i_OCSP_REVOKEDINFO.htmld2i_OCSP_SERVICELOC.htmld2i_OCSP_SIGNATURE.htmld2i_OCSP_SINGLERESP.htmld2i_OTHERNAME.htmld2i_PBE2PARAM.htmld2i_PBEPARAM.htmld2i_PBKDF2PARAM.htmld2i_PKCS12.htmld2i_PKCS12_BAGS.htmld2i_PKCS12_MAC_DATA.htmld2i_PKCS12_SAFEBAG.htmld2i_PKCS12_bio.htmld2i_PKCS12_fp.htmld2i_PKCS7.htmld2i_PKCS7_DIGEST.htmld2i_PKCS7_ENCRYPT.htmld2i_PKCS7_ENC_CONTENT.htmld2i_PKCS7_ENVELOPE.htmld2i_PKCS7_ISSUER_AND_SERIAL.htmld2i_PKCS7_RECIP_INFO.htmld2i_PKCS7_SIGNED.htmld2i_PKCS7_SIGNER_INFO.htmld2i_PKCS7_SIGN_ENVELOPE.htmld2i_PKCS7_bio.htmld2i_PKCS7_fp.htmld2i_PKCS8PrivateKey_bio.htmld2i_PKCS8PrivateKey_fp.htmld2i_PKCS8_PRIV_KEY_INFO.htmld2i_PKCS8_PRIV_KEY_INFO_bio.htmld2i_PKCS8_PRIV_KEY_INFO_fp.htmld2i_PKCS8_bio.htmld2i_PKCS8_fp.htmld2i_PKEY_USAGE_PERIOD.htmld2i_POLICYINFO.htmld2i_POLICYQUALINFO.htmld2i_PROFESSION_INFO.htmld2i_PROXY_CERT_INFO_EXTENSION.htmld2i_PROXY_POLICY.htmld2i_PUBKEY.htmld2i_PUBKEY_bio.htmld2i_PUBKEY_fp.htmld2i_PrivateKey.htmld2i_PrivateKey_bio.htmld2i_PrivateKey_fp.htmld2i_PublicKey.htmld2i_RSAPrivateKey.htmld2i_RSAPrivateKey_bio.htmld2i_RSAPrivateKey_fp.htmld2i_RSAPublicKey.htmld2i_RSAPublicKey_bio.htmld2i_RSAPublicKey_fp.htmld2i_RSA_OAEP_PARAMS.htmld2i_RSA_PSS_PARAMS.htmld2i_RSA_PUBKEY.htmld2i_RSA_PUBKEY_bio.htmld2i_RSA_PUBKEY_fp.htmld2i_SCRYPT_PARAMS.htmld2i_SCT_LIST.htmld2i_SSL_SESSION.htmld2i_SXNET.htmld2i_SXNETID.htmld2i_TS_ACCURACY.htmld2i_TS_MSG_IMPRINT.htmld2i_TS_MSG_IMPRINT_bio.htmld2i_TS_MSG_IMPRINT_fp.htmld2i_TS_REQ.htmld2i_TS_REQ_bio.htmld2i_TS_REQ_fp.htmld2i_TS_RESP.htmld2i_TS_RESP_bio.htmld2i_TS_RESP_fp.htmld2i_TS_STATUS_INFO.htmld2i_TS_TST_INFO.htmld2i_TS_TST_INFO_bio.htmld2i_TS_TST_INFO_fp.htmld2i_USERNOTICE.htmld2i_X509.htmld2i_X509_ALGOR.htmld2i_X509_ALGORS.htmld2i_X509_ATTRIBUTE.htmld2i_X509_AUX.htmld2i_X509_CERT_AUX.htmld2i_X509_CINF.htmld2i_X509_CRL.htmld2i_X509_CRL_INFO.htmld2i_X509_CRL_bio.htmld2i_X509_CRL_fp.htmld2i_X509_EXTENSION.htmld2i_X509_EXTENSIONS.htmld2i_X509_NAME.htmld2i_X509_NAME_ENTRY.htmld2i_X509_PUBKEY.htmld2i_X509_REQ.htmld2i_X509_REQ_INFO.htmld2i_X509_REQ_bio.htmld2i_X509_REQ_fp.htmld2i_X509_REVOKED.htmld2i_X509_SIG.htmld2i_X509_VAL.htmld2i_X509_bio.htmld2i_X509_fp.htmli2d_ACCESS_DESCRIPTION.htmli2d_ADMISSIONS.htmli2d_ADMISSION_SYNTAX.htmli2d_ASIdOrRange.htmli2d_ASIdentifierChoice.htmli2d_ASIdentifiers.htmli2d_ASN1_BIT_STRING.htmli2d_ASN1_BMPSTRING.htmli2d_ASN1_ENUMERATED.htmli2d_ASN1_GENERALIZEDTIME.htmli2d_ASN1_GENERALSTRING.htmli2d_ASN1_IA5STRING.htmli2d_ASN1_INTEGER.htmli2d_ASN1_NULL.htmli2d_ASN1_OBJECT.htmli2d_ASN1_OCTET_STRING.htmli2d_ASN1_PRINTABLE.htmli2d_ASN1_PRINTABLESTRING.htmli2d_ASN1_SEQUENCE_ANY.htmli2d_ASN1_SET_ANY.htmli2d_ASN1_T61STRING.htmli2d_ASN1_TIME.htmli2d_ASN1_TYPE.htmli2d_ASN1_UNIVERSALSTRING.htmli2d_ASN1_UTCTIME.htmli2d_ASN1_UTF8STRING.htmli2d_ASN1_VISIBLESTRING.htmli2d_ASN1_bio_stream.htmli2d_ASRange.htmli2d_AUTHORITY_INFO_ACCESS.htmli2d_AUTHORITY_KEYID.htmli2d_BASIC_CONSTRAINTS.htmli2d_CERTIFICATEPOLICIES.htmli2d_CMS_ContentInfo.htmli2d_CMS_ReceiptRequest.htmli2d_CMS_bio.htmli2d_CMS_bio_stream.htmli2d_CRL_DIST_POINTS.htmli2d_DHparams.htmli2d_DHxparams.htmli2d_DIRECTORYSTRING.htmli2d_DISPLAYTEXT.htmli2d_DIST_POINT.htmli2d_DIST_POINT_NAME.htmli2d_DSAPrivateKey.htmli2d_DSAPrivateKey_bio.htmli2d_DSAPrivateKey_fp.htmli2d_DSAPublicKey.htmli2d_DSA_PUBKEY.htmli2d_DSA_PUBKEY_bio.htmli2d_DSA_PUBKEY_fp.htmli2d_DSA_SIG.htmli2d_DSAparams.htmli2d_ECDSA_SIG.htmli2d_ECPKParameters.htmli2d_ECParameters.htmli2d_ECPrivateKey.htmli2d_ECPrivateKey_bio.htmli2d_ECPrivateKey_fp.htmli2d_EC_PUBKEY.htmli2d_EC_PUBKEY_bio.htmli2d_EC_PUBKEY_fp.htmli2d_EDIPARTYNAME.htmli2d_ESS_CERT_ID.htmli2d_ESS_ISSUER_SERIAL.htmli2d_ESS_SIGNING_CERT.htmli2d_EXTENDED_KEY_USAGE.htmli2d_GENERAL_NAME.htmli2d_GENERAL_NAMES.htmli2d_IPAddressChoice.htmli2d_IPAddressFamily.htmli2d_IPAddressOrRange.htmli2d_IPAddressRange.htmli2d_ISSUING_DIST_POINT.htmli2d_NAMING_AUTHORITY.htmli2d_NETSCAPE_CERT_SEQUENCE.htmli2d_NETSCAPE_SPKAC.htmli2d_NETSCAPE_SPKI.htmli2d_NOTICEREF.htmli2d_OCSP_BASICRESP.htmli2d_OCSP_CERTID.htmli2d_OCSP_CERTSTATUS.htmli2d_OCSP_CRLID.htmli2d_OCSP_ONEREQ.htmli2d_OCSP_REQINFO.htmli2d_OCSP_REQUEST.htmli2d_OCSP_RESPBYTES.htmli2d_OCSP_RESPDATA.htmli2d_OCSP_RESPID.htmli2d_OCSP_RESPONSE.htmli2d_OCSP_REVOKEDINFO.htmli2d_OCSP_SERVICELOC.htmli2d_OCSP_SIGNATURE.htmli2d_OCSP_SINGLERESP.htmli2d_OTHERNAME.htmli2d_PBE2PARAM.htmli2d_PBEPARAM.htmli2d_PBKDF2PARAM.htmli2d_PKCS12.htmli2d_PKCS12_BAGS.htmli2d_PKCS12_MAC_DATA.htmli2d_PKCS12_SAFEBAG.htmli2d_PKCS12_bio.htmli2d_PKCS12_fp.htmli2d_PKCS7.htmli2d_PKCS7_DIGEST.htmli2d_PKCS7_ENCRYPT.htmli2d_PKCS7_ENC_CONTENT.htmli2d_PKCS7_ENVELOPE.htmli2d_PKCS7_ISSUER_AND_SERIAL.htmli2d_PKCS7_NDEF.htmli2d_PKCS7_RECIP_INFO.htmli2d_PKCS7_SIGNED.htmli2d_PKCS7_SIGNER_INFO.htmli2d_PKCS7_SIGN_ENVELOPE.htmli2d_PKCS7_bio.htmli2d_PKCS7_bio_stream.htmli2d_PKCS7_fp.htmli2d_PKCS8PrivateKeyInfo_bio.htmli2d_PKCS8PrivateKeyInfo_fp.htmli2d_PKCS8PrivateKey_bio.htmli2d_PKCS8PrivateKey_fp.htmli2d_PKCS8PrivateKey_nid_bio.htmli2d_PKCS8PrivateKey_nid_fp.htmli2d_PKCS8_PRIV_KEY_INFO.htmli2d_PKCS8_PRIV_KEY_INFO_bio.htmli2d_PKCS8_PRIV_KEY_INFO_fp.htmli2d_PKCS8_bio.htmli2d_PKCS8_fp.htmli2d_PKEY_USAGE_PERIOD.htmli2d_POLICYINFO.htmli2d_POLICYQUALINFO.htmli2d_PROFESSION_INFO.htmli2d_PROXY_CERT_INFO_EXTENSION.htmli2d_PROXY_POLICY.htmli2d_PUBKEY.htmli2d_PUBKEY_bio.htmli2d_PUBKEY_fp.htmli2d_PrivateKey.htmli2d_PublicKey.htmli2d_RSAPrivateKey.htmli2d_RSAPrivateKey_bio.htmli2d_RSAPrivateKey_fp.htmli2d_RSAPublicKey.htmli2d_RSAPublicKey_bio.htmli2d_RSAPublicKey_fp.htmli2d_RSA_OAEP_PARAMS.htmli2d_RSA_PSS_PARAMS.htmli2d_RSA_PUBKEY.htmli2d_RSA_PUBKEY_bio.htmli2d_RSA_PUBKEY_fp.htmli2d_SCRYPT_PARAMS.htmli2d_SCT_LIST.htmli2d_SSL_SESSION.htmli2d_SXNET.htmli2d_SXNETID.htmli2d_TS_ACCURACY.htmli2d_TS_MSG_IMPRINT.htmli2d_TS_MSG_IMPRINT_bio.htmli2d_TS_MSG_IMPRINT_fp.htmli2d_TS_REQ.htmli2d_TS_REQ_bio.htmli2d_TS_REQ_fp.htmli2d_TS_RESP.htmli2d_TS_RESP_bio.htmli2d_TS_RESP_fp.htmli2d_TS_STATUS_INFO.htmli2d_TS_TST_INFO.htmli2d_TS_TST_INFO_bio.htmli2d_TS_TST_INFO_fp.htmli2d_USERNOTICE.htmli2d_X509.htmli2d_X509_ALGOR.htmli2d_X509_ALGORS.htmli2d_X509_ATTRIBUTE.htmli2d_X509_AUX.htmli2d_X509_CERT_AUX.htmli2d_X509_CINF.htmli2d_X509_CRL.htmli2d_X509_CRL_INFO.htmli2d_X509_CRL_bio.htmli2d_X509_CRL_fp.htmli2d_X509_EXTENSION.htmli2d_X509_EXTENSIONS.htmli2d_X509_NAME.htmli2d_X509_NAME_ENTRY.htmli2d_X509_PUBKEY.htmli2d_X509_REQ.htmli2d_X509_REQ_INFO.htmli2d_X509_REQ_bio.htmli2d_X509_REQ_fp.htmli2d_X509_REVOKED.htmli2d_X509_SIG.htmli2d_X509_VAL.htmli2d_X509_bio.htmli2d_X509_fp.htmli2d_re_X509_CRL_tbs.htmli2d_re_X509_REQ_tbs.htmli2d_re_X509_tbs.htmli2o_SCT.htmli2o_SCT_LIST.htmli2t_ASN1_OBJECT.htmllh_TYPE_delete.htmllh_TYPE_doall.htmllh_TYPE_doall_arg.htmllh_TYPE_error.htmllh_TYPE_free.htmllh_TYPE_insert.htmllh_TYPE_new.htmllh_TYPE_retrieve.htmlo2i_SCT.htmlo2i_SCT_LIST.htmlpem_password_cb.htmlsk_TYPE_deep_copy.htmlsk_TYPE_delete.htmlsk_TYPE_delete_ptr.htmlsk_TYPE_dup.htmlsk_TYPE_find.htmlsk_TYPE_find_ex.htmlsk_TYPE_free.htmlsk_TYPE_insert.htmlsk_TYPE_is_sorted.htmlsk_TYPE_new.htmlsk_TYPE_new_null.htmlsk_TYPE_new_reserve.htmlsk_TYPE_num.htmlsk_TYPE_pop.htmlsk_TYPE_pop_free.htmlsk_TYPE_push.htmlsk_TYPE_reserve.htmlsk_TYPE_set.htmlsk_TYPE_set_cmp_func.htmlsk_TYPE_shift.htmlsk_TYPE_sort.htmlsk_TYPE_unshift.htmlsk_TYPE_value.htmlsk_TYPE_zero.htmlssl_ct_validation_cb.html
man5
man7
man
man1
CA.pl.1asn1parse.1c_rehash.1ca.1ciphers.1cms.1crl.1crl2pkcs7.1dgst.1dhparam.1dsa.1dsaparam.1ec.1ecparam.1enc.1engine.1errstr.1gendsa.1genpkey.1genrsa.1list.1nseq.1ocsp.1openssl-asn1parse.1openssl-c_rehash.1openssl-ca.1openssl-ciphers.1openssl-cms.1openssl-crl.1openssl-crl2pkcs7.1openssl-dgst.1openssl-dhparam.1openssl-dsa.1openssl-dsaparam.1openssl-ec.1openssl-ecparam.1openssl-enc.1openssl-engine.1openssl-errstr.1openssl-gendsa.1openssl-genpkey.1openssl-genrsa.1openssl-list.1openssl-nseq.1openssl-ocsp.1openssl-passwd.1openssl-pkcs12.1openssl-pkcs7.1openssl-pkcs8.1openssl-pkey.1openssl-pkeyparam.1openssl-pkeyutl.1openssl-prime.1openssl-rand.1openssl-rehash.1openssl-req.1openssl-rsa.1openssl-rsautl.1openssl-s_client.1openssl-s_server.1openssl-s_time.1openssl-sess_id.1openssl-smime.1openssl-speed.1openssl-spkac.1openssl-srp.1openssl-storeutl.1openssl-ts.1openssl-tsget.1openssl-verify.1openssl-version.1openssl-x509.1openssl.1passwd.1pkcs12.1pkcs7.1pkcs8.1pkey.1pkeyparam.1pkeyutl.1prime.1rand.1rehash.1req.1rsa.1rsautl.1s_client.1s_server.1s_time.1sess_id.1smime.1speed.1spkac.1srp.1storeutl.1ts.1tsget.1verify.1version.1x509.1
man3
ACCESS_DESCRIPTION_free.3ACCESS_DESCRIPTION_new.3ADMISSIONS.3ADMISSIONS_free.3ADMISSIONS_get0_admissionAuthority.3ADMISSIONS_get0_namingAuthority.3ADMISSIONS_get0_professionInfos.3ADMISSIONS_new.3ADMISSIONS_set0_admissionAuthority.3ADMISSIONS_set0_namingAuthority.3ADMISSIONS_set0_professionInfos.3ADMISSION_SYNTAX.3ADMISSION_SYNTAX_free.3ADMISSION_SYNTAX_get0_admissionAuthority.3ADMISSION_SYNTAX_get0_contentsOfAdmissions.3ADMISSION_SYNTAX_new.3ADMISSION_SYNTAX_set0_admissionAuthority.3ADMISSION_SYNTAX_set0_contentsOfAdmissions.3ASIdOrRange_free.3ASIdOrRange_new.3ASIdentifierChoice_free.3ASIdentifierChoice_new.3ASIdentifiers_free.3ASIdentifiers_new.3ASN1_ENUMERATED_get.3ASN1_ENUMERATED_get_int64.3ASN1_ENUMERATED_set.3ASN1_ENUMERATED_set_int64.3ASN1_ENUMERATED_to_BN.3ASN1_GENERALIZEDTIME_adj.3ASN1_GENERALIZEDTIME_check.3ASN1_GENERALIZEDTIME_print.3ASN1_GENERALIZEDTIME_set.3ASN1_GENERALIZEDTIME_set_string.3ASN1_INTEGER_get.3ASN1_INTEGER_get_int64.3ASN1_INTEGER_get_uint64.3ASN1_INTEGER_set.3ASN1_INTEGER_set_int64.3ASN1_INTEGER_set_uint64.3ASN1_INTEGER_to_BN.3ASN1_ITEM.3ASN1_ITEM_get.3ASN1_ITEM_lookup.3ASN1_OBJECT_free.3ASN1_OBJECT_new.3ASN1_STRING_TABLE.3ASN1_STRING_TABLE_add.3ASN1_STRING_TABLE_cleanup.3ASN1_STRING_TABLE_get.3ASN1_STRING_cmp.3ASN1_STRING_data.3ASN1_STRING_dup.3ASN1_STRING_free.3ASN1_STRING_get0_data.3ASN1_STRING_length.3ASN1_STRING_new.3ASN1_STRING_print.3ASN1_STRING_print_ex.3ASN1_STRING_print_ex_fp.3ASN1_STRING_set.3ASN1_STRING_to_UTF8.3ASN1_STRING_type.3ASN1_STRING_type_new.3ASN1_TIME_adj.3ASN1_TIME_check.3ASN1_TIME_cmp_time_t.3ASN1_TIME_compare.3ASN1_TIME_diff.3ASN1_TIME_normalize.3ASN1_TIME_print.3ASN1_TIME_set.3ASN1_TIME_set_string.3ASN1_TIME_set_string_X509.3ASN1_TIME_to_generalizedtime.3ASN1_TIME_to_tm.3ASN1_TYPE_cmp.3ASN1_TYPE_get.3ASN1_TYPE_pack_sequence.3ASN1_TYPE_set.3ASN1_TYPE_set1.3ASN1_TYPE_unpack_sequence.3ASN1_UTCTIME_adj.3ASN1_UTCTIME_check.3ASN1_UTCTIME_cmp_time_t.3ASN1_UTCTIME_print.3ASN1_UTCTIME_set.3ASN1_UTCTIME_set_string.3ASN1_add_oid_module.3ASN1_generate_nconf.3ASN1_generate_v3.3ASN1_tag2str.3ASRange_free.3ASRange_new.3ASYNC_WAIT_CTX_clear_fd.3ASYNC_WAIT_CTX_free.3ASYNC_WAIT_CTX_get_all_fds.3ASYNC_WAIT_CTX_get_changed_fds.3ASYNC_WAIT_CTX_get_fd.3ASYNC_WAIT_CTX_new.3ASYNC_WAIT_CTX_set_wait_fd.3ASYNC_block_pause.3ASYNC_cleanup_thread.3ASYNC_get_current_job.3ASYNC_get_wait_ctx.3ASYNC_init_thread.3ASYNC_is_capable.3ASYNC_pause_job.3ASYNC_start_job.3ASYNC_unblock_pause.3AUTHORITY_INFO_ACCESS_free.3AUTHORITY_INFO_ACCESS_new.3AUTHORITY_KEYID_free.3AUTHORITY_KEYID_new.3BASIC_CONSTRAINTS_free.3BASIC_CONSTRAINTS_new.3BF_cbc_encrypt.3BF_cfb64_encrypt.3BF_decrypt.3BF_ecb_encrypt.3BF_encrypt.3BF_ofb64_encrypt.3BF_options.3BF_set_key.3BIO_ADDR.3BIO_ADDRINFO.3BIO_ADDRINFO_address.3BIO_ADDRINFO_family.3BIO_ADDRINFO_free.3BIO_ADDRINFO_next.3BIO_ADDRINFO_protocol.3BIO_ADDRINFO_socktype.3BIO_ADDR_clear.3BIO_ADDR_family.3BIO_ADDR_free.3BIO_ADDR_hostname_string.3BIO_ADDR_new.3BIO_ADDR_path_string.3BIO_ADDR_rawaddress.3BIO_ADDR_rawmake.3BIO_ADDR_rawport.3BIO_ADDR_service_string.3BIO_accept_ex.3BIO_append_filename.3BIO_bind.3BIO_callback_ctrl.3BIO_callback_fn.3BIO_callback_fn_ex.3BIO_closesocket.3BIO_connect.3BIO_ctrl.3BIO_ctrl_get_read_request.3BIO_ctrl_get_write_guarantee.3BIO_ctrl_pending.3BIO_ctrl_reset_read_request.3BIO_ctrl_wpending.3BIO_debug_callback.3BIO_destroy_bio_pair.3BIO_do_accept.3BIO_do_connect.3BIO_do_handshake.3BIO_eof.3BIO_f_base64.3BIO_f_buffer.3BIO_f_cipher.3BIO_f_md.3BIO_f_null.3BIO_f_ssl.3BIO_find_type.3BIO_flush.3BIO_free.3BIO_free_all.3BIO_get_accept_ip_family.3BIO_get_accept_name.3BIO_get_accept_port.3BIO_get_bind_mode.3BIO_get_buffer_num_lines.3BIO_get_callback.3BIO_get_callback_arg.3BIO_get_callback_ex.3BIO_get_cipher_ctx.3BIO_get_cipher_status.3BIO_get_close.3BIO_get_conn_address.3BIO_get_conn_hostname.3BIO_get_conn_ip_family.3BIO_get_conn_port.3BIO_get_data.3BIO_get_ex_data.3BIO_get_ex_new_index.3BIO_get_fd.3BIO_get_fp.3BIO_get_info_callback.3BIO_get_init.3BIO_get_md.3BIO_get_md_ctx.3BIO_get_mem_data.3BIO_get_mem_ptr.3BIO_get_new_index.3BIO_get_num_renegotiates.3BIO_get_peer_name.3BIO_get_peer_port.3BIO_get_read_request.3BIO_get_retry_BIO.3BIO_get_retry_reason.3BIO_get_shutdown.3BIO_get_ssl.3BIO_get_write_buf_size.3BIO_get_write_guarantee.3BIO_gets.3BIO_hostserv_priorities.3BIO_info_cb.3BIO_int_ctrl.3BIO_listen.3BIO_lookup.3BIO_lookup_ex.3BIO_lookup_type.3BIO_make_bio_pair.3BIO_meth_free.3BIO_meth_get_callback_ctrl.3BIO_meth_get_create.3BIO_meth_get_ctrl.3BIO_meth_get_destroy.3BIO_meth_get_gets.3BIO_meth_get_puts.3BIO_meth_get_read.3BIO_meth_get_read_ex.3BIO_meth_get_write.3BIO_meth_get_write_ex.3BIO_meth_new.3BIO_meth_set_callback_ctrl.3BIO_meth_set_create.3BIO_meth_set_ctrl.3BIO_meth_set_destroy.3BIO_meth_set_gets.3BIO_meth_set_puts.3BIO_meth_set_read.3BIO_meth_set_read_ex.3BIO_meth_set_write.3BIO_meth_set_write_ex.3BIO_method_type.3BIO_new.3BIO_new_CMS.3BIO_new_accept.3BIO_new_bio_pair.3BIO_new_buffer_ssl_connect.3BIO_new_connect.3BIO_new_fd.3BIO_new_file.3BIO_new_fp.3BIO_new_mem_buf.3BIO_new_socket.3BIO_new_ssl.3BIO_new_ssl_connect.3BIO_next.3BIO_parse_hostserv.3BIO_pending.3BIO_pop.3BIO_printf.3BIO_ptr_ctrl.3BIO_push.3BIO_puts.3BIO_read.3BIO_read_ex.3BIO_read_filename.3BIO_reset.3BIO_retry_type.3BIO_rw_filename.3BIO_s_accept.3BIO_s_bio.3BIO_s_connect.3BIO_s_fd.3BIO_s_file.3BIO_s_mem.3BIO_s_null.3BIO_s_secmem.3BIO_s_socket.3BIO_seek.3BIO_set_accept_bios.3BIO_set_accept_ip_family.3BIO_set_accept_name.3BIO_set_accept_port.3BIO_set_bind_mode.3BIO_set_buffer_read_data.3BIO_set_buffer_size.3BIO_set_callback.3BIO_set_callback_arg.3BIO_set_callback_ex.3BIO_set_cipher.3BIO_set_close.3BIO_set_conn_address.3BIO_set_conn_hostname.3BIO_set_conn_ip_family.3BIO_set_conn_port.3BIO_set_data.3BIO_set_ex_data.3BIO_set_fd.3BIO_set_fp.3BIO_set_info_callback.3BIO_set_init.3BIO_set_md.3BIO_set_mem_buf.3BIO_set_mem_eof_return.3BIO_set_nbio.3BIO_set_nbio_accept.3BIO_set_next.3BIO_set_read_buffer_size.3BIO_set_retry_reason.3BIO_set_shutdown.3BIO_set_ssl.3BIO_set_ssl_mode.3BIO_set_ssl_renegotiate_bytes.3BIO_set_ssl_renegotiate_timeout.3BIO_set_write_buf_size.3BIO_set_write_buffer_size.3BIO_should_io_special.3BIO_should_read.3BIO_should_retry.3BIO_should_write.3BIO_shutdown_wr.3BIO_snprintf.3BIO_socket.3BIO_ssl_copy_session_id.3BIO_ssl_shutdown.3BIO_tell.3BIO_up_ref.3BIO_vfree.3BIO_vprintf.3BIO_vsnprintf.3BIO_wpending.3BIO_write.3BIO_write_ex.3BIO_write_filename.3BN_BLINDING_convert.3BN_BLINDING_convert_ex.3BN_BLINDING_create_param.3BN_BLINDING_free.3BN_BLINDING_get_flags.3BN_BLINDING_invert.3BN_BLINDING_invert_ex.3BN_BLINDING_is_current_thread.3BN_BLINDING_lock.3BN_BLINDING_new.3BN_BLINDING_set_current_thread.3BN_BLINDING_set_flags.3BN_BLINDING_unlock.3BN_BLINDING_update.3BN_CTX_end.3BN_CTX_free.3BN_CTX_get.3BN_CTX_new.3BN_CTX_secure_new.3BN_CTX_start.3BN_GENCB_call.3BN_GENCB_free.3BN_GENCB_get_arg.3BN_GENCB_new.3BN_GENCB_set.3BN_GENCB_set_old.3BN_MONT_CTX_copy.3BN_MONT_CTX_free.3BN_MONT_CTX_new.3BN_MONT_CTX_set.3BN_RECP_CTX_free.3BN_RECP_CTX_new.3BN_RECP_CTX_set.3BN_abs_is_word.3BN_add.3BN_add_word.3BN_bin2bn.3BN_bn2bin.3BN_bn2binpad.3BN_bn2dec.3BN_bn2hex.3BN_bn2lebinpad.3BN_bn2mpi.3BN_clear.3BN_clear_bit.3BN_clear_free.3BN_cmp.3BN_copy.3BN_dec2bn.3BN_div.3BN_div_recp.3BN_div_word.3BN_dup.3BN_exp.3BN_free.3BN_from_montgomery.3BN_gcd.3BN_generate_prime.3BN_generate_prime_ex.3BN_get0_nist_prime_192.3BN_get0_nist_prime_224.3BN_get0_nist_prime_256.3BN_get0_nist_prime_384.3BN_get0_nist_prime_521.3BN_get_rfc2409_prime_1024.3BN_get_rfc2409_prime_768.3BN_get_rfc3526_prime_1536.3BN_get_rfc3526_prime_2048.3BN_get_rfc3526_prime_3072.3BN_get_rfc3526_prime_4096.3BN_get_rfc3526_prime_6144.3BN_get_rfc3526_prime_8192.3BN_get_word.3BN_hex2bn.3BN_is_bit_set.3BN_is_odd.3BN_is_one.3BN_is_prime.3BN_is_prime_ex.3BN_is_prime_fasttest.3BN_is_prime_fasttest_ex.3BN_is_word.3BN_is_zero.3BN_lebin2bn.3BN_lshift.3BN_lshift1.3BN_mask_bits.3BN_mod.3BN_mod_add.3BN_mod_exp.3BN_mod_inverse.3BN_mod_mul.3BN_mod_mul_montgomery.3BN_mod_mul_reciprocal.3BN_mod_sqr.3BN_mod_sqrt.3BN_mod_sub.3BN_mod_word.3BN_mpi2bn.3BN_mul.3BN_mul_word.3BN_new.3BN_nnmod.3BN_num_bits.3BN_num_bits_word.3BN_num_bytes.3BN_one.3BN_print.3BN_print_fp.3BN_priv_rand.3BN_priv_rand_range.3BN_pseudo_rand.3BN_pseudo_rand_range.3BN_rand.3BN_rand_range.3BN_rshift.3BN_rshift1.3BN_secure_new.3BN_security_bits.3BN_set_bit.3BN_set_word.3BN_sqr.3BN_sub.3BN_sub_word.3BN_swap.3BN_to_ASN1_ENUMERATED.3BN_to_ASN1_INTEGER.3BN_to_montgomery.3BN_ucmp.3BN_value_one.3BN_with_flags.3BN_zero.3BUF_MEM_free.3BUF_MEM_grow.3BUF_MEM_grow_clean.3BUF_MEM_new.3BUF_MEM_new_ex.3BUF_reverse.3CERTIFICATEPOLICIES_free.3CERTIFICATEPOLICIES_new.3CMS_ContentInfo_free.3CMS_ContentInfo_new.3CMS_ContentInfo_print_ctx.3CMS_ReceiptRequest_create0.3CMS_ReceiptRequest_free.3CMS_ReceiptRequest_get0_values.3CMS_ReceiptRequest_new.3CMS_RecipientInfo_decrypt.3CMS_RecipientInfo_encrypt.3CMS_RecipientInfo_kekri_get0_id.3CMS_RecipientInfo_kekri_id_cmp.3CMS_RecipientInfo_ktri_cert_cmp.3CMS_RecipientInfo_ktri_get0_signer_id.3CMS_RecipientInfo_set0_key.3CMS_RecipientInfo_set0_pkey.3CMS_RecipientInfo_type.3CMS_SignerInfo_cert_cmp.3CMS_SignerInfo_get0_signature.3CMS_SignerInfo_get0_signer_id.3CMS_SignerInfo_set1_signer_cert.3CMS_SignerInfo_sign.3CMS_add0_cert.3CMS_add0_crl.3CMS_add0_recipient_key.3CMS_add1_ReceiptRequest.3CMS_add1_cert.3CMS_add1_crl.3CMS_add1_recipient_cert.3CMS_add1_signer.3CMS_compress.3CMS_decrypt.3CMS_encrypt.3CMS_final.3CMS_get0_RecipientInfos.3CMS_get0_SignerInfos.3CMS_get0_content.3CMS_get0_eContentType.3CMS_get0_signers.3CMS_get0_type.3CMS_get1_ReceiptRequest.3CMS_get1_certs.3CMS_get1_crls.3CMS_set1_eContentType.3CMS_sign.3CMS_sign_receipt.3CMS_uncompress.3CMS_verify.3CMS_verify_receipt.3CONF_modules_finish.3CONF_modules_free.3CONF_modules_load.3CONF_modules_load_file.3CONF_modules_unload.3CRL_DIST_POINTS_free.3CRL_DIST_POINTS_new.3CRYPTO_EX_dup.3CRYPTO_EX_free.3CRYPTO_EX_new.3CRYPTO_THREAD_lock_free.3CRYPTO_THREAD_lock_new.3CRYPTO_THREAD_read_lock.3CRYPTO_THREAD_run_once.3CRYPTO_THREAD_unlock.3CRYPTO_THREAD_write_lock.3CRYPTO_atomic_add.3CRYPTO_clear_free.3CRYPTO_clear_realloc.3CRYPTO_free.3CRYPTO_free_ex_data.3CRYPTO_free_ex_index.3CRYPTO_get_alloc_counts.3CRYPTO_get_ex_data.3CRYPTO_get_ex_new_index.3CRYPTO_get_mem_functions.3CRYPTO_malloc.3CRYPTO_mem_ctrl.3CRYPTO_mem_debug_pop.3CRYPTO_mem_debug_push.3CRYPTO_mem_leaks.3CRYPTO_mem_leaks_cb.3CRYPTO_mem_leaks_fp.3CRYPTO_memcmp.3CRYPTO_new_ex_data.3CRYPTO_realloc.3CRYPTO_secure_allocated.3CRYPTO_secure_clear_free.3CRYPTO_secure_free.3CRYPTO_secure_malloc.3CRYPTO_secure_malloc_done.3CRYPTO_secure_malloc_init.3CRYPTO_secure_malloc_initialized.3CRYPTO_secure_used.3CRYPTO_secure_zalloc.3CRYPTO_set_ex_data.3CRYPTO_set_mem_debug.3CRYPTO_set_mem_functions.3CRYPTO_strdup.3CRYPTO_strndup.3CRYPTO_zalloc.3CTLOG_STORE_free.3CTLOG_STORE_get0_log_by_id.3CTLOG_STORE_load_default_file.3CTLOG_STORE_load_file.3CTLOG_STORE_new.3CTLOG_free.3CTLOG_get0_log_id.3CTLOG_get0_name.3CTLOG_get0_public_key.3CTLOG_new.3CTLOG_new_from_base64.3CT_POLICY_EVAL_CTX_free.3CT_POLICY_EVAL_CTX_get0_cert.3CT_POLICY_EVAL_CTX_get0_issuer.3CT_POLICY_EVAL_CTX_get0_log_store.3CT_POLICY_EVAL_CTX_get_time.3CT_POLICY_EVAL_CTX_new.3CT_POLICY_EVAL_CTX_set1_cert.3CT_POLICY_EVAL_CTX_set1_issuer.3CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE.3CT_POLICY_EVAL_CTX_set_time.3DECLARE_ASN1_FUNCTIONS.3DECLARE_LHASH_OF.3DECLARE_PEM_rw.3DEFINE_SPECIAL_STACK_OF.3DEFINE_SPECIAL_STACK_OF_CONST.3DEFINE_STACK_OF.3DEFINE_STACK_OF_CONST.3DES_cbc_cksum.3DES_cfb64_encrypt.3DES_cfb_encrypt.3DES_crypt.3DES_ecb2_encrypt.3DES_ecb3_encrypt.3DES_ecb_encrypt.3DES_ede2_cbc_encrypt.3DES_ede2_cfb64_encrypt.3DES_ede2_ofb64_encrypt.3DES_ede3_cbc_encrypt.3DES_ede3_cfb64_encrypt.3DES_ede3_ofb64_encrypt.3DES_fcrypt.3DES_is_weak_key.3DES_key_sched.3DES_ncbc_encrypt.3DES_ofb64_encrypt.3DES_ofb_encrypt.3DES_pcbc_encrypt.3DES_quad_cksum.3DES_random_key.3DES_set_key.3DES_set_key_checked.3DES_set_key_unchecked.3DES_set_odd_parity.3DES_string_to_2keys.3DES_string_to_key.3DES_xcbc_encrypt.3DH_OpenSSL.3DH_bits.3DH_check.3DH_check_ex.3DH_check_params.3DH_check_params_ex.3DH_check_pub_key_ex.3DH_clear_flags.3DH_compute_key.3DH_compute_key_padded.3DH_free.3DH_generate_key.3DH_generate_parameters.3DH_generate_parameters_ex.3DH_get0_engine.3DH_get0_g.3DH_get0_key.3DH_get0_p.3DH_get0_pqg.3DH_get0_priv_key.3DH_get0_pub_key.3DH_get0_q.3DH_get_1024_160.3DH_get_2048_224.3DH_get_2048_256.3DH_get_default_method.3DH_get_ex_data.3DH_get_ex_new_index.3DH_get_length.3DH_get_nid.3DH_meth_dup.3DH_meth_free.3DH_meth_get0_app_data.3DH_meth_get0_name.3DH_meth_get_bn_mod_exp.3DH_meth_get_compute_key.3DH_meth_get_finish.3DH_meth_get_flags.3DH_meth_get_generate_key.3DH_meth_get_generate_params.3DH_meth_get_init.3DH_meth_new.3DH_meth_set0_app_data.3DH_meth_set1_name.3DH_meth_set_bn_mod_exp.3DH_meth_set_compute_key.3DH_meth_set_finish.3DH_meth_set_flags.3DH_meth_set_generate_key.3DH_meth_set_generate_params.3DH_meth_set_init.3DH_new.3DH_new_by_nid.3DH_new_method.3DH_security_bits.3DH_set0_key.3DH_set0_pqg.3DH_set_default_method.3DH_set_ex_data.3DH_set_flags.3DH_set_length.3DH_set_method.3DH_size.3DH_test_flags.3DHparams_print.3DHparams_print_fp.3DIRECTORYSTRING_free.3DIRECTORYSTRING_new.3DISPLAYTEXT_free.3DISPLAYTEXT_new.3DIST_POINT_NAME_free.3DIST_POINT_NAME_new.3DIST_POINT_free.3DIST_POINT_new.3DSA_OpenSSL.3DSA_SIG_free.3DSA_SIG_get0.3DSA_SIG_new.3DSA_SIG_set0.3DSA_bits.3DSA_clear_flags.3DSA_do_sign.3DSA_do_verify.3DSA_dup_DH.3DSA_free.3DSA_generate_key.3DSA_generate_parameters.3DSA_generate_parameters_ex.3DSA_get0_engine.3DSA_get0_g.3DSA_get0_key.3DSA_get0_p.3DSA_get0_pqg.3DSA_get0_priv_key.3DSA_get0_pub_key.3DSA_get0_q.3DSA_get_default_method.3DSA_get_ex_data.3DSA_get_ex_new_index.3DSA_meth_dup.3DSA_meth_free.3DSA_meth_get0_app_data.3DSA_meth_get0_name.3DSA_meth_get_bn_mod_exp.3DSA_meth_get_finish.3DSA_meth_get_flags.3DSA_meth_get_init.3DSA_meth_get_keygen.3DSA_meth_get_mod_exp.3DSA_meth_get_paramgen.3DSA_meth_get_sign.3DSA_meth_get_sign_setup.3DSA_meth_get_verify.3DSA_meth_new.3DSA_meth_set0_app_data.3DSA_meth_set1_name.3DSA_meth_set_bn_mod_exp.3DSA_meth_set_finish.3DSA_meth_set_flags.3DSA_meth_set_init.3DSA_meth_set_keygen.3DSA_meth_set_mod_exp.3DSA_meth_set_paramgen.3DSA_meth_set_sign.3DSA_meth_set_sign_setup.3DSA_meth_set_verify.3DSA_new.3DSA_new_method.3DSA_print.3DSA_print_fp.3DSA_security_bits.3DSA_set0_key.3DSA_set0_pqg.3DSA_set_default_method.3DSA_set_ex_data.3DSA_set_flags.3DSA_set_method.3DSA_sign.3DSA_sign_setup.3DSA_size.3DSA_test_flags.3DSA_verify.3DSAparams_dup.3DSAparams_print.3DSAparams_print_fp.3DTLS_client_method.3DTLS_get_data_mtu.3DTLS_method.3DTLS_server_method.3DTLS_set_timer_cb.3DTLS_timer_cb.3DTLSv1_2_client_method.3DTLSv1_2_method.3DTLSv1_2_server_method.3DTLSv1_client_method.3DTLSv1_listen.3DTLSv1_method.3DTLSv1_server_method.3ECDH_get_ex_data.3ECDH_get_ex_new_index.3ECDH_set_ex_data.3ECDSA_SIG_free.3ECDSA_SIG_get0.3ECDSA_SIG_get0_r.3ECDSA_SIG_get0_s.3ECDSA_SIG_new.3ECDSA_SIG_set0.3ECDSA_do_sign.3ECDSA_do_sign_ex.3ECDSA_do_verify.3ECDSA_sign.3ECDSA_sign_ex.3ECDSA_sign_setup.3ECDSA_size.3ECDSA_verify.3ECPARAMETERS_free.3ECPARAMETERS_new.3ECPKPARAMETERS_free.3ECPKPARAMETERS_new.3ECPKParameters_print.3ECPKParameters_print_fp.3EC_GF2m_simple_method.3EC_GFp_mont_method.3EC_GFp_nist_method.3EC_GFp_nistp224_method.3EC_GFp_nistp256_method.3EC_GFp_nistp521_method.3EC_GFp_simple_method.3EC_GROUP_check.3EC_GROUP_check_discriminant.3EC_GROUP_clear_free.3EC_GROUP_cmp.3EC_GROUP_copy.3EC_GROUP_dup.3EC_GROUP_free.3EC_GROUP_get0_cofactor.3EC_GROUP_get0_generator.3EC_GROUP_get0_order.3EC_GROUP_get0_seed.3EC_GROUP_get_asn1_flag.3EC_GROUP_get_basis_type.3EC_GROUP_get_cofactor.3EC_GROUP_get_curve.3EC_GROUP_get_curve_GF2m.3EC_GROUP_get_curve_GFp.3EC_GROUP_get_curve_name.3EC_GROUP_get_degree.3EC_GROUP_get_ecparameters.3EC_GROUP_get_ecpkparameters.3EC_GROUP_get_order.3EC_GROUP_get_pentanomial_basis.3EC_GROUP_get_point_conversion_form.3EC_GROUP_get_seed_len.3EC_GROUP_get_trinomial_basis.3EC_GROUP_have_precompute_mult.3EC_GROUP_method_of.3EC_GROUP_new.3EC_GROUP_new_by_curve_name.3EC_GROUP_new_curve_GF2m.3EC_GROUP_new_curve_GFp.3EC_GROUP_new_from_ecparameters.3EC_GROUP_new_from_ecpkparameters.3EC_GROUP_order_bits.3EC_GROUP_precompute_mult.3EC_GROUP_set_asn1_flag.3EC_GROUP_set_curve.3EC_GROUP_set_curve_GF2m.3EC_GROUP_set_curve_GFp.3EC_GROUP_set_curve_name.3EC_GROUP_set_generator.3EC_GROUP_set_point_conversion_form.3EC_GROUP_set_seed.3EC_KEY_check_key.3EC_KEY_clear_flags.3EC_KEY_copy.3EC_KEY_decoded_from_explicit_params.3EC_KEY_dup.3EC_KEY_free.3EC_KEY_generate_key.3EC_KEY_get0_engine.3EC_KEY_get0_group.3EC_KEY_get0_private_key.3EC_KEY_get0_public_key.3EC_KEY_get_conv_form.3EC_KEY_get_enc_flags.3EC_KEY_get_ex_data.3EC_KEY_get_ex_new_index.3EC_KEY_get_flags.3EC_KEY_get_method.3EC_KEY_key2buf.3EC_KEY_new.3EC_KEY_new_by_curve_name.3EC_KEY_oct2key.3EC_KEY_oct2priv.3EC_KEY_precompute_mult.3EC_KEY_priv2buf.3EC_KEY_priv2oct.3EC_KEY_set_asn1_flag.3EC_KEY_set_conv_form.3EC_KEY_set_enc_flags.3EC_KEY_set_ex_data.3EC_KEY_set_flags.3EC_KEY_set_group.3EC_KEY_set_method.3EC_KEY_set_private_key.3EC_KEY_set_public_key.3EC_KEY_set_public_key_affine_coordinates.3EC_KEY_up_ref.3EC_METHOD_get_field_type.3EC_POINT_add.3EC_POINT_bn2point.3EC_POINT_clear_free.3EC_POINT_cmp.3EC_POINT_copy.3EC_POINT_dbl.3EC_POINT_dup.3EC_POINT_free.3EC_POINT_get_Jprojective_coordinates_GFp.3EC_POINT_get_affine_coordinates.3EC_POINT_get_affine_coordinates_GF2m.3EC_POINT_get_affine_coordinates_GFp.3EC_POINT_hex2point.3EC_POINT_invert.3EC_POINT_is_at_infinity.3EC_POINT_is_on_curve.3EC_POINT_make_affine.3EC_POINT_method_of.3EC_POINT_mul.3EC_POINT_new.3EC_POINT_oct2point.3EC_POINT_point2bn.3EC_POINT_point2buf.3EC_POINT_point2hex.3EC_POINT_point2oct.3EC_POINT_set_Jprojective_coordinates_GFp.3EC_POINT_set_affine_coordinates.3EC_POINT_set_affine_coordinates_GF2m.3EC_POINT_set_affine_coordinates_GFp.3EC_POINT_set_compressed_coordinates.3EC_POINT_set_compressed_coordinates_GF2m.3EC_POINT_set_compressed_coordinates_GFp.3EC_POINT_set_to_infinity.3EC_POINTs_make_affine.3EC_POINTs_mul.3EC_get_builtin_curves.3EDIPARTYNAME_free.3EDIPARTYNAME_new.3ENGINE_add.3ENGINE_add_conf_module.3ENGINE_by_id.3ENGINE_cleanup.3ENGINE_cmd_is_executable.3ENGINE_ctrl.3ENGINE_ctrl_cmd.3ENGINE_ctrl_cmd_string.3ENGINE_finish.3ENGINE_free.3ENGINE_get_DH.3ENGINE_get_DSA.3ENGINE_get_RAND.3ENGINE_get_RSA.3ENGINE_get_cipher.3ENGINE_get_cipher_engine.3ENGINE_get_ciphers.3ENGINE_get_cmd_defns.3ENGINE_get_ctrl_function.3ENGINE_get_default_DH.3ENGINE_get_default_DSA.3ENGINE_get_default_RAND.3ENGINE_get_default_RSA.3ENGINE_get_destroy_function.3ENGINE_get_digest.3ENGINE_get_digest_engine.3ENGINE_get_digests.3ENGINE_get_ex_data.3ENGINE_get_ex_new_index.3ENGINE_get_finish_function.3ENGINE_get_first.3ENGINE_get_flags.3ENGINE_get_id.3ENGINE_get_init_function.3ENGINE_get_last.3ENGINE_get_load_privkey_function.3ENGINE_get_load_pubkey_function.3ENGINE_get_name.3ENGINE_get_next.3ENGINE_get_prev.3ENGINE_get_table_flags.3ENGINE_init.3ENGINE_load_builtin_engines.3ENGINE_load_private_key.3ENGINE_load_public_key.3ENGINE_new.3ENGINE_register_DH.3ENGINE_register_DSA.3ENGINE_register_RAND.3ENGINE_register_RSA.3ENGINE_register_all_DH.3ENGINE_register_all_DSA.3ENGINE_register_all_RAND.3ENGINE_register_all_RSA.3ENGINE_register_all_ciphers.3ENGINE_register_all_complete.3ENGINE_register_all_digests.3ENGINE_register_ciphers.3ENGINE_register_complete.3ENGINE_register_digests.3ENGINE_remove.3ENGINE_set_DH.3ENGINE_set_DSA.3ENGINE_set_RAND.3ENGINE_set_RSA.3ENGINE_set_ciphers.3ENGINE_set_cmd_defns.3ENGINE_set_ctrl_function.3ENGINE_set_default.3ENGINE_set_default_DH.3ENGINE_set_default_DSA.3ENGINE_set_default_RAND.3ENGINE_set_default_RSA.3ENGINE_set_default_ciphers.3ENGINE_set_default_digests.3ENGINE_set_default_string.3ENGINE_set_destroy_function.3ENGINE_set_digests.3ENGINE_set_ex_data.3ENGINE_set_finish_function.3ENGINE_set_flags.3ENGINE_set_id.3ENGINE_set_init_function.3ENGINE_set_load_privkey_function.3ENGINE_set_load_pubkey_function.3ENGINE_set_name.3ENGINE_set_table_flags.3ENGINE_unregister_DH.3ENGINE_unregister_DSA.3ENGINE_unregister_RAND.3ENGINE_unregister_RSA.3ENGINE_unregister_ciphers.3ENGINE_unregister_digests.3ENGINE_up_ref.3ERR_FATAL_ERROR.3ERR_GET_FUNC.3ERR_GET_LIB.3ERR_GET_REASON.3ERR_PACK.3ERR_add_error_data.3ERR_add_error_vdata.3ERR_clear_error.3ERR_error_string.3ERR_error_string_n.3ERR_free_strings.3ERR_func_error_string.3ERR_get_error.3ERR_get_error_line.3ERR_get_error_line_data.3ERR_get_next_error_library.3ERR_lib_error_string.3ERR_load_crypto_strings.3ERR_load_strings.3ERR_peek_error.3ERR_peek_error_line.3ERR_peek_error_line_data.3ERR_peek_last_error.3ERR_peek_last_error_line.3ERR_peek_last_error_line_data.3ERR_pop_to_mark.3ERR_print_errors.3ERR_print_errors_cb.3ERR_print_errors_fp.3ERR_put_error.3ERR_reason_error_string.3ERR_remove_state.3ERR_remove_thread_state.3ERR_set_mark.3ESS_CERT_ID_dup.3ESS_CERT_ID_free.3ESS_CERT_ID_new.3ESS_ISSUER_SERIAL_dup.3ESS_ISSUER_SERIAL_free.3ESS_ISSUER_SERIAL_new.3ESS_SIGNING_CERT_dup.3ESS_SIGNING_CERT_free.3ESS_SIGNING_CERT_new.3EVP_BytesToKey.3EVP_CIPHER_CTX_block_size.3EVP_CIPHER_CTX_cipher.3EVP_CIPHER_CTX_ctrl.3EVP_CIPHER_CTX_flags.3EVP_CIPHER_CTX_free.3EVP_CIPHER_CTX_get_app_data.3EVP_CIPHER_CTX_get_cipher_data.3EVP_CIPHER_CTX_iv_length.3EVP_CIPHER_CTX_key_length.3EVP_CIPHER_CTX_mode.3EVP_CIPHER_CTX_new.3EVP_CIPHER_CTX_nid.3EVP_CIPHER_CTX_reset.3EVP_CIPHER_CTX_set_app_data.3EVP_CIPHER_CTX_set_cipher_data.3EVP_CIPHER_CTX_set_key_length.3EVP_CIPHER_CTX_set_padding.3EVP_CIPHER_CTX_type.3EVP_CIPHER_asn1_to_param.3EVP_CIPHER_block_size.3EVP_CIPHER_flags.3EVP_CIPHER_iv_length.3EVP_CIPHER_key_length.3EVP_CIPHER_meth_dup.3EVP_CIPHER_meth_free.3EVP_CIPHER_meth_get_cleanup.3EVP_CIPHER_meth_get_ctrl.3EVP_CIPHER_meth_get_do_cipher.3EVP_CIPHER_meth_get_get_asn1_params.3EVP_CIPHER_meth_get_init.3EVP_CIPHER_meth_get_set_asn1_params.3EVP_CIPHER_meth_new.3EVP_CIPHER_meth_set_cleanup.3EVP_CIPHER_meth_set_ctrl.3EVP_CIPHER_meth_set_do_cipher.3EVP_CIPHER_meth_set_flags.3EVP_CIPHER_meth_set_get_asn1_params.3EVP_CIPHER_meth_set_impl_ctx_size.3EVP_CIPHER_meth_set_init.3EVP_CIPHER_meth_set_iv_length.3EVP_CIPHER_meth_set_set_asn1_params.3EVP_CIPHER_mode.3EVP_CIPHER_nid.3EVP_CIPHER_param_to_asn1.3EVP_CIPHER_type.3EVP_CipherFinal.3EVP_CipherFinal_ex.3EVP_CipherInit.3EVP_CipherInit_ex.3EVP_CipherUpdate.3EVP_DecodeBlock.3EVP_DecodeFinal.3EVP_DecodeInit.3EVP_DecodeUpdate.3EVP_DecryptFinal.3EVP_DecryptFinal_ex.3EVP_DecryptInit.3EVP_DecryptInit_ex.3EVP_DecryptUpdate.3EVP_Digest.3EVP_DigestFinal.3EVP_DigestFinalXOF.3EVP_DigestFinal_ex.3EVP_DigestInit.3EVP_DigestInit_ex.3EVP_DigestSign.3EVP_DigestSignFinal.3EVP_DigestSignInit.3EVP_DigestSignUpdate.3EVP_DigestUpdate.3EVP_DigestVerify.3EVP_DigestVerifyFinal.3EVP_DigestVerifyInit.3EVP_DigestVerifyUpdate.3EVP_ENCODE_CTX_copy.3EVP_ENCODE_CTX_free.3EVP_ENCODE_CTX_new.3EVP_ENCODE_CTX_num.3EVP_EncodeBlock.3EVP_EncodeFinal.3EVP_EncodeInit.3EVP_EncodeUpdate.3EVP_EncryptFinal.3EVP_EncryptFinal_ex.3EVP_EncryptInit.3EVP_EncryptInit_ex.3EVP_EncryptUpdate.3EVP_MD_CTX_block_size.3EVP_MD_CTX_clear_flags.3EVP_MD_CTX_copy.3EVP_MD_CTX_copy_ex.3EVP_MD_CTX_ctrl.3EVP_MD_CTX_free.3EVP_MD_CTX_md.3EVP_MD_CTX_md_data.3EVP_MD_CTX_new.3EVP_MD_CTX_pkey_ctx.3EVP_MD_CTX_reset.3EVP_MD_CTX_set_flags.3EVP_MD_CTX_set_pkey_ctx.3EVP_MD_CTX_set_update_fn.3EVP_MD_CTX_size.3EVP_MD_CTX_test_flags.3EVP_MD_CTX_type.3EVP_MD_CTX_update_fn.3EVP_MD_block_size.3EVP_MD_flags.3EVP_MD_meth_dup.3EVP_MD_meth_free.3EVP_MD_meth_get_app_datasize.3EVP_MD_meth_get_cleanup.3EVP_MD_meth_get_copy.3EVP_MD_meth_get_ctrl.3EVP_MD_meth_get_final.3EVP_MD_meth_get_flags.3EVP_MD_meth_get_init.3EVP_MD_meth_get_input_blocksize.3EVP_MD_meth_get_result_size.3EVP_MD_meth_get_update.3EVP_MD_meth_new.3EVP_MD_meth_set_app_datasize.3EVP_MD_meth_set_cleanup.3EVP_MD_meth_set_copy.3EVP_MD_meth_set_ctrl.3EVP_MD_meth_set_final.3EVP_MD_meth_set_flags.3EVP_MD_meth_set_init.3EVP_MD_meth_set_input_blocksize.3EVP_MD_meth_set_result_size.3EVP_MD_meth_set_update.3EVP_MD_pkey_type.3EVP_MD_size.3EVP_MD_type.3EVP_OpenFinal.3EVP_OpenInit.3EVP_OpenUpdate.3EVP_PKEY_ASN1_METHOD.3EVP_PKEY_CTX_add1_hkdf_info.3EVP_PKEY_CTX_add1_tls1_prf_seed.3EVP_PKEY_CTX_ctrl.3EVP_PKEY_CTX_ctrl_str.3EVP_PKEY_CTX_ctrl_uint64.3EVP_PKEY_CTX_dup.3EVP_PKEY_CTX_free.3EVP_PKEY_CTX_get0_dh_kdf_oid.3EVP_PKEY_CTX_get0_dh_kdf_ukm.3EVP_PKEY_CTX_get0_ecdh_kdf_ukm.3EVP_PKEY_CTX_get0_rsa_oaep_label.3EVP_PKEY_CTX_get1_id.3EVP_PKEY_CTX_get1_id_len.3EVP_PKEY_CTX_get_app_data.3EVP_PKEY_CTX_get_cb.3EVP_PKEY_CTX_get_dh_kdf_md.3EVP_PKEY_CTX_get_dh_kdf_outlen.3EVP_PKEY_CTX_get_dh_kdf_type.3EVP_PKEY_CTX_get_ecdh_cofactor_mode.3EVP_PKEY_CTX_get_ecdh_kdf_md.3EVP_PKEY_CTX_get_ecdh_kdf_outlen.3EVP_PKEY_CTX_get_ecdh_kdf_type.3EVP_PKEY_CTX_get_keygen_info.3EVP_PKEY_CTX_get_rsa_mgf1_md.3EVP_PKEY_CTX_get_rsa_oaep_md.3EVP_PKEY_CTX_get_rsa_padding.3EVP_PKEY_CTX_get_rsa_pss_saltlen.3EVP_PKEY_CTX_get_signature_md.3EVP_PKEY_CTX_hkdf_mode.3EVP_PKEY_CTX_md.3EVP_PKEY_CTX_new.3EVP_PKEY_CTX_new_id.3EVP_PKEY_CTX_set0_dh_kdf_oid.3EVP_PKEY_CTX_set0_dh_kdf_ukm.3EVP_PKEY_CTX_set0_ecdh_kdf_ukm.3EVP_PKEY_CTX_set0_rsa_oaep_label.3EVP_PKEY_CTX_set1_hkdf_key.3EVP_PKEY_CTX_set1_hkdf_salt.3EVP_PKEY_CTX_set1_id.3EVP_PKEY_CTX_set1_pbe_pass.3EVP_PKEY_CTX_set1_scrypt_salt.3EVP_PKEY_CTX_set1_tls1_prf_secret.3EVP_PKEY_CTX_set_app_data.3EVP_PKEY_CTX_set_cb.3EVP_PKEY_CTX_set_dh_kdf_md.3EVP_PKEY_CTX_set_dh_kdf_outlen.3EVP_PKEY_CTX_set_dh_kdf_type.3EVP_PKEY_CTX_set_dh_nid.3EVP_PKEY_CTX_set_dh_pad.3EVP_PKEY_CTX_set_dh_paramgen_generator.3EVP_PKEY_CTX_set_dh_paramgen_prime_len.3EVP_PKEY_CTX_set_dh_paramgen_subprime_len.3EVP_PKEY_CTX_set_dh_paramgen_type.3EVP_PKEY_CTX_set_dh_rfc5114.3EVP_PKEY_CTX_set_dhx_rfc5114.3EVP_PKEY_CTX_set_dsa_paramgen_bits.3EVP_PKEY_CTX_set_dsa_paramgen_md.3EVP_PKEY_CTX_set_dsa_paramgen_q_bits.3EVP_PKEY_CTX_set_ec_param_enc.3EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3EVP_PKEY_CTX_set_ecdh_cofactor_mode.3EVP_PKEY_CTX_set_ecdh_kdf_md.3EVP_PKEY_CTX_set_ecdh_kdf_outlen.3EVP_PKEY_CTX_set_ecdh_kdf_type.3EVP_PKEY_CTX_set_hkdf_md.3EVP_PKEY_CTX_set_mac_key.3EVP_PKEY_CTX_set_rsa_keygen_bits.3EVP_PKEY_CTX_set_rsa_keygen_primes.3EVP_PKEY_CTX_set_rsa_keygen_pubexp.3EVP_PKEY_CTX_set_rsa_mgf1_md.3EVP_PKEY_CTX_set_rsa_oaep_md.3EVP_PKEY_CTX_set_rsa_padding.3EVP_PKEY_CTX_set_rsa_pss_keygen_md.3EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md.3EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen.3EVP_PKEY_CTX_set_rsa_pss_saltlen.3EVP_PKEY_CTX_set_scrypt_N.3EVP_PKEY_CTX_set_scrypt_maxmem_bytes.3EVP_PKEY_CTX_set_scrypt_p.3EVP_PKEY_CTX_set_scrypt_r.3EVP_PKEY_CTX_set_signature_md.3EVP_PKEY_CTX_set_tls1_prf_md.3EVP_PKEY_METHOD.3EVP_PKEY_asn1_add0.3EVP_PKEY_asn1_add_alias.3EVP_PKEY_asn1_copy.3EVP_PKEY_asn1_find.3EVP_PKEY_asn1_find_str.3EVP_PKEY_asn1_free.3EVP_PKEY_asn1_get0.3EVP_PKEY_asn1_get0_info.3EVP_PKEY_asn1_get_count.3EVP_PKEY_asn1_new.3EVP_PKEY_asn1_set_check.3EVP_PKEY_asn1_set_ctrl.3EVP_PKEY_asn1_set_free.3EVP_PKEY_asn1_set_get_priv_key.3EVP_PKEY_asn1_set_get_pub_key.3EVP_PKEY_asn1_set_item.3EVP_PKEY_asn1_set_param.3EVP_PKEY_asn1_set_param_check.3EVP_PKEY_asn1_set_private.3EVP_PKEY_asn1_set_public.3EVP_PKEY_asn1_set_public_check.3EVP_PKEY_asn1_set_security_bits.3EVP_PKEY_asn1_set_set_priv_key.3EVP_PKEY_asn1_set_set_pub_key.3EVP_PKEY_asn1_set_siginf.3EVP_PKEY_assign_DH.3EVP_PKEY_assign_DSA.3EVP_PKEY_assign_EC_KEY.3EVP_PKEY_assign_POLY1305.3EVP_PKEY_assign_RSA.3EVP_PKEY_assign_SIPHASH.3EVP_PKEY_base_id.3EVP_PKEY_bits.3EVP_PKEY_check.3EVP_PKEY_cmp.3EVP_PKEY_cmp_parameters.3EVP_PKEY_copy_parameters.3EVP_PKEY_decrypt.3EVP_PKEY_decrypt_init.3EVP_PKEY_derive.3EVP_PKEY_derive_init.3EVP_PKEY_derive_set_peer.3EVP_PKEY_encrypt.3EVP_PKEY_encrypt_init.3EVP_PKEY_free.3EVP_PKEY_gen_cb.3EVP_PKEY_get0_DH.3EVP_PKEY_get0_DSA.3EVP_PKEY_get0_EC_KEY.3EVP_PKEY_get0_RSA.3EVP_PKEY_get0_asn1.3EVP_PKEY_get0_engine.3EVP_PKEY_get0_hmac.3EVP_PKEY_get0_poly1305.3EVP_PKEY_get0_siphash.3EVP_PKEY_get1_DH.3EVP_PKEY_get1_DSA.3EVP_PKEY_get1_EC_KEY.3EVP_PKEY_get1_RSA.3EVP_PKEY_get_default_digest_nid.3EVP_PKEY_get_raw_private_key.3EVP_PKEY_get_raw_public_key.3EVP_PKEY_id.3EVP_PKEY_keygen.3EVP_PKEY_keygen_init.3EVP_PKEY_meth_add0.3EVP_PKEY_meth_copy.3EVP_PKEY_meth_find.3EVP_PKEY_meth_free.3EVP_PKEY_meth_get0.3EVP_PKEY_meth_get0_info.3EVP_PKEY_meth_get_check.3EVP_PKEY_meth_get_cleanup.3EVP_PKEY_meth_get_copy.3EVP_PKEY_meth_get_count.3EVP_PKEY_meth_get_ctrl.3EVP_PKEY_meth_get_decrypt.3EVP_PKEY_meth_get_derive.3EVP_PKEY_meth_get_digest_custom.3EVP_PKEY_meth_get_digestsign.3EVP_PKEY_meth_get_digestverify.3EVP_PKEY_meth_get_encrypt.3EVP_PKEY_meth_get_init.3EVP_PKEY_meth_get_keygen.3EVP_PKEY_meth_get_param_check.3EVP_PKEY_meth_get_paramgen.3EVP_PKEY_meth_get_public_check.3EVP_PKEY_meth_get_sign.3EVP_PKEY_meth_get_signctx.3EVP_PKEY_meth_get_verify.3EVP_PKEY_meth_get_verify_recover.3EVP_PKEY_meth_get_verifyctx.3EVP_PKEY_meth_new.3EVP_PKEY_meth_remove.3EVP_PKEY_meth_set_check.3EVP_PKEY_meth_set_cleanup.3EVP_PKEY_meth_set_copy.3EVP_PKEY_meth_set_ctrl.3EVP_PKEY_meth_set_decrypt.3EVP_PKEY_meth_set_derive.3EVP_PKEY_meth_set_digest_custom.3EVP_PKEY_meth_set_digestsign.3EVP_PKEY_meth_set_digestverify.3EVP_PKEY_meth_set_encrypt.3EVP_PKEY_meth_set_init.3EVP_PKEY_meth_set_keygen.3EVP_PKEY_meth_set_param_check.3EVP_PKEY_meth_set_paramgen.3EVP_PKEY_meth_set_public_check.3EVP_PKEY_meth_set_sign.3EVP_PKEY_meth_set_signctx.3EVP_PKEY_meth_set_verify.3EVP_PKEY_meth_set_verify_recover.3EVP_PKEY_meth_set_verifyctx.3EVP_PKEY_missing_parameters.3EVP_PKEY_new.3EVP_PKEY_new_CMAC_key.3EVP_PKEY_new_mac_key.3EVP_PKEY_new_raw_private_key.3EVP_PKEY_new_raw_public_key.3EVP_PKEY_param_check.3EVP_PKEY_paramgen.3EVP_PKEY_paramgen_init.3EVP_PKEY_print_params.3EVP_PKEY_print_private.3EVP_PKEY_print_public.3EVP_PKEY_public_check.3EVP_PKEY_security_bits.3EVP_PKEY_set1_DH.3EVP_PKEY_set1_DSA.3EVP_PKEY_set1_EC_KEY.3EVP_PKEY_set1_RSA.3EVP_PKEY_set1_engine.3EVP_PKEY_set_alias_type.3EVP_PKEY_sign.3EVP_PKEY_sign_init.3EVP_PKEY_size.3EVP_PKEY_type.3EVP_PKEY_up_ref.3EVP_PKEY_verify.3EVP_PKEY_verify_init.3EVP_PKEY_verify_recover.3EVP_PKEY_verify_recover_init.3EVP_SealFinal.3EVP_SealInit.3EVP_SealUpdate.3EVP_SignFinal.3EVP_SignInit.3EVP_SignInit_ex.3EVP_SignUpdate.3EVP_VerifyFinal.3EVP_VerifyInit.3EVP_VerifyInit_ex.3EVP_VerifyUpdate.3EVP_aes.3EVP_aes_128_cbc.3EVP_aes_128_cbc_hmac_sha1.3EVP_aes_128_cbc_hmac_sha256.3EVP_aes_128_ccm.3EVP_aes_128_cfb.3EVP_aes_128_cfb1.3EVP_aes_128_cfb128.3EVP_aes_128_cfb8.3EVP_aes_128_ctr.3EVP_aes_128_ecb.3EVP_aes_128_gcm.3EVP_aes_128_ocb.3EVP_aes_128_ofb.3EVP_aes_128_wrap.3EVP_aes_128_wrap_pad.3EVP_aes_128_xts.3EVP_aes_192_cbc.3EVP_aes_192_ccm.3EVP_aes_192_cfb.3EVP_aes_192_cfb1.3EVP_aes_192_cfb128.3EVP_aes_192_cfb8.3EVP_aes_192_ctr.3EVP_aes_192_ecb.3EVP_aes_192_gcm.3EVP_aes_192_ocb.3EVP_aes_192_ofb.3EVP_aes_192_wrap.3EVP_aes_192_wrap_pad.3EVP_aes_256_cbc.3EVP_aes_256_cbc_hmac_sha1.3EVP_aes_256_cbc_hmac_sha256.3EVP_aes_256_ccm.3EVP_aes_256_cfb.3EVP_aes_256_cfb1.3EVP_aes_256_cfb128.3EVP_aes_256_cfb8.3EVP_aes_256_ctr.3EVP_aes_256_ecb.3EVP_aes_256_gcm.3EVP_aes_256_ocb.3EVP_aes_256_ofb.3EVP_aes_256_wrap.3EVP_aes_256_wrap_pad.3EVP_aes_256_xts.3EVP_aria.3EVP_aria_128_cbc.3EVP_aria_128_ccm.3EVP_aria_128_cfb.3EVP_aria_128_cfb1.3EVP_aria_128_cfb128.3EVP_aria_128_cfb8.3EVP_aria_128_ctr.3EVP_aria_128_ecb.3EVP_aria_128_gcm.3EVP_aria_128_ofb.3EVP_aria_192_cbc.3EVP_aria_192_ccm.3EVP_aria_192_cfb.3EVP_aria_192_cfb1.3EVP_aria_192_cfb128.3EVP_aria_192_cfb8.3EVP_aria_192_ctr.3EVP_aria_192_ecb.3EVP_aria_192_gcm.3EVP_aria_192_ofb.3EVP_aria_256_cbc.3EVP_aria_256_ccm.3EVP_aria_256_cfb.3EVP_aria_256_cfb1.3EVP_aria_256_cfb128.3EVP_aria_256_cfb8.3EVP_aria_256_ctr.3EVP_aria_256_ecb.3EVP_aria_256_gcm.3EVP_aria_256_ofb.3EVP_bf_cbc.3EVP_bf_cfb.3EVP_bf_cfb64.3EVP_bf_ecb.3EVP_bf_ofb.3EVP_blake2b512.3EVP_blake2s256.3EVP_camellia.3EVP_camellia_128_cbc.3EVP_camellia_128_cfb.3EVP_camellia_128_cfb1.3EVP_camellia_128_cfb128.3EVP_camellia_128_cfb8.3EVP_camellia_128_ctr.3EVP_camellia_128_ecb.3EVP_camellia_128_ofb.3EVP_camellia_192_cbc.3EVP_camellia_192_cfb.3EVP_camellia_192_cfb1.3EVP_camellia_192_cfb128.3EVP_camellia_192_cfb8.3EVP_camellia_192_ctr.3EVP_camellia_192_ecb.3EVP_camellia_192_ofb.3EVP_camellia_256_cbc.3EVP_camellia_256_cfb.3EVP_camellia_256_cfb1.3EVP_camellia_256_cfb128.3EVP_camellia_256_cfb8.3EVP_camellia_256_ctr.3EVP_camellia_256_ecb.3EVP_camellia_256_ofb.3EVP_cast5_cbc.3EVP_cast5_cfb.3EVP_cast5_cfb64.3EVP_cast5_ecb.3EVP_cast5_ofb.3EVP_chacha20.3EVP_chacha20_poly1305.3EVP_cleanup.3EVP_des.3EVP_des_cbc.3EVP_des_cfb.3EVP_des_cfb1.3EVP_des_cfb64.3EVP_des_cfb8.3EVP_des_ecb.3EVP_des_ede.3EVP_des_ede3.3EVP_des_ede3_cbc.3EVP_des_ede3_cfb.3EVP_des_ede3_cfb1.3EVP_des_ede3_cfb64.3EVP_des_ede3_cfb8.3EVP_des_ede3_ecb.3EVP_des_ede3_ofb.3EVP_des_ede3_wrap.3EVP_des_ede_cbc.3EVP_des_ede_cfb.3EVP_des_ede_cfb64.3EVP_des_ede_ecb.3EVP_des_ede_ofb.3EVP_des_ofb.3EVP_desx_cbc.3EVP_enc_null.3EVP_get_cipherbyname.3EVP_get_cipherbynid.3EVP_get_cipherbyobj.3EVP_get_digestbyname.3EVP_get_digestbynid.3EVP_get_digestbyobj.3EVP_idea_cbc.3EVP_idea_cfb.3EVP_idea_cfb64.3EVP_idea_ecb.3EVP_idea_ofb.3EVP_md2.3EVP_md4.3EVP_md5.3EVP_md5_sha1.3EVP_md_null.3EVP_mdc2.3EVP_rc2_40_cbc.3EVP_rc2_64_cbc.3EVP_rc2_cbc.3EVP_rc2_cfb.3EVP_rc2_cfb64.3EVP_rc2_ecb.3EVP_rc2_ofb.3EVP_rc4.3EVP_rc4_40.3EVP_rc4_hmac_md5.3EVP_rc5_32_12_16_cbc.3EVP_rc5_32_12_16_cfb.3EVP_rc5_32_12_16_cfb64.3EVP_rc5_32_12_16_ecb.3EVP_rc5_32_12_16_ofb.3EVP_ripemd160.3EVP_seed_cbc.3EVP_seed_cfb.3EVP_seed_cfb128.3EVP_seed_ecb.3EVP_seed_ofb.3EVP_sha1.3EVP_sha224.3EVP_sha256.3EVP_sha384.3EVP_sha3_224.3EVP_sha3_256.3EVP_sha3_384.3EVP_sha3_512.3EVP_sha512.3EVP_sha512_224.3EVP_sha512_256.3EVP_shake128.3EVP_shake256.3EVP_sm3.3EVP_sm4_cbc.3EVP_sm4_cfb.3EVP_sm4_cfb128.3EVP_sm4_ctr.3EVP_sm4_ecb.3EVP_sm4_ofb.3EVP_whirlpool.3EXTENDED_KEY_USAGE_free.3EXTENDED_KEY_USAGE_new.3GENERAL_NAMES_free.3GENERAL_NAMES_new.3GENERAL_NAME_dup.3GENERAL_NAME_free.3GENERAL_NAME_new.3GENERAL_SUBTREE_free.3GENERAL_SUBTREE_new.3GEN_SESSION_CB.3HMAC.3HMAC_CTX_copy.3HMAC_CTX_free.3HMAC_CTX_get_md.3HMAC_CTX_new.3HMAC_CTX_reset.3HMAC_CTX_set_flags.3HMAC_Final.3HMAC_Init.3HMAC_Init_ex.3HMAC_Update.3HMAC_size.3IMPLEMENT_ASN1_FUNCTIONS.3IMPLEMENT_LHASH_COMP_FN.3IMPLEMENT_LHASH_HASH_FN.3IPAddressChoice_free.3IPAddressChoice_new.3IPAddressFamily_free.3IPAddressFamily_new.3IPAddressOrRange_free.3IPAddressOrRange_new.3IPAddressRange_free.3IPAddressRange_new.3ISSUING_DIST_POINT_free.3ISSUING_DIST_POINT_new.3LHASH.3LHASH_DOALL_ARG_FN_TYPE.3MD2.3MD2_Final.3MD2_Init.3MD2_Update.3MD4.3MD4_Final.3MD4_Init.3MD4_Update.3MD5.3MD5_Final.3MD5_Init.3MD5_Update.3MDC2.3MDC2_Final.3MDC2_Init.3MDC2_Update.3NAME_CONSTRAINTS_free.3NAME_CONSTRAINTS_new.3NAMING_AUTHORITY.3NAMING_AUTHORITY_free.3NAMING_AUTHORITY_get0_authorityId.3NAMING_AUTHORITY_get0_authorityText.3NAMING_AUTHORITY_get0_authorityURL.3NAMING_AUTHORITY_new.3NAMING_AUTHORITY_set0_authorityId.3NAMING_AUTHORITY_set0_authorityText.3NAMING_AUTHORITY_set0_authorityURL.3NETSCAPE_CERT_SEQUENCE_free.3NETSCAPE_CERT_SEQUENCE_new.3NETSCAPE_SPKAC_free.3NETSCAPE_SPKAC_new.3NETSCAPE_SPKI_free.3NETSCAPE_SPKI_new.3NOTICEREF_free.3NOTICEREF_new.3OBJ_cleanup.3OBJ_cmp.3OBJ_create.3OBJ_dup.3OBJ_get0_data.3OBJ_length.3OBJ_ln2nid.3OBJ_nid2ln.3OBJ_nid2obj.3OBJ_nid2sn.3OBJ_obj2nid.3OBJ_obj2txt.3OBJ_sn2nid.3OBJ_txt2nid.3OBJ_txt2obj.3OCSP_BASICRESP_free.3OCSP_BASICRESP_new.3OCSP_CERTID_dup.3OCSP_CERTID_free.3OCSP_CERTID_new.3OCSP_CERTSTATUS_free.3OCSP_CERTSTATUS_new.3OCSP_CRLID_free.3OCSP_CRLID_new.3OCSP_ONEREQ_free.3OCSP_ONEREQ_new.3OCSP_REQINFO_free.3OCSP_REQINFO_new.3OCSP_REQUEST_free.3OCSP_REQUEST_new.3OCSP_REQ_CTX_add1_header.3OCSP_REQ_CTX_free.3OCSP_REQ_CTX_i2d.3OCSP_REQ_CTX_set1_req.3OCSP_RESPBYTES_free.3OCSP_RESPBYTES_new.3OCSP_RESPDATA_free.3OCSP_RESPDATA_new.3OCSP_RESPID_free.3OCSP_RESPID_match.3OCSP_RESPID_new.3OCSP_RESPID_set_by_key.3OCSP_RESPID_set_by_name.3OCSP_RESPONSE_free.3OCSP_RESPONSE_new.3OCSP_REVOKEDINFO_free.3OCSP_REVOKEDINFO_new.3OCSP_SERVICELOC_free.3OCSP_SERVICELOC_new.3OCSP_SIGNATURE_free.3OCSP_SIGNATURE_new.3OCSP_SINGLERESP_free.3OCSP_SINGLERESP_new.3OCSP_basic_add1_nonce.3OCSP_basic_sign.3OCSP_basic_sign_ctx.3OCSP_basic_verify.3OCSP_cert_id_new.3OCSP_cert_to_id.3OCSP_check_nonce.3OCSP_check_validity.3OCSP_copy_nonce.3OCSP_id_cmp.3OCSP_id_get0_info.3OCSP_id_issuer_cmp.3OCSP_request_add0_id.3OCSP_request_add1_cert.3OCSP_request_add1_nonce.3OCSP_request_onereq_count.3OCSP_request_onereq_get0.3OCSP_request_sign.3OCSP_resp_count.3OCSP_resp_find.3OCSP_resp_find_status.3OCSP_resp_get0.3OCSP_resp_get0_certs.3OCSP_resp_get0_id.3OCSP_resp_get0_produced_at.3OCSP_resp_get0_respdata.3OCSP_resp_get0_signature.3OCSP_resp_get0_signer.3OCSP_resp_get0_tbs_sigalg.3OCSP_resp_get1_id.3OCSP_response_create.3OCSP_response_get1_basic.3OCSP_response_status.3OCSP_sendreq_bio.3OCSP_sendreq_nbio.3OCSP_sendreq_new.3OCSP_set_max_response_length.3OCSP_single_get0_status.3OPENSSL_Applink.3OPENSSL_INIT_free.3OPENSSL_INIT_new.3OPENSSL_INIT_set_config_appname.3OPENSSL_INIT_set_config_file_flags.3OPENSSL_INIT_set_config_filename.3OPENSSL_LH_COMPFUNC.3OPENSSL_LH_DOALL_FUNC.3OPENSSL_LH_HASHFUNC.3OPENSSL_LH_node_stats.3OPENSSL_LH_node_stats_bio.3OPENSSL_LH_node_usage_stats.3OPENSSL_LH_node_usage_stats_bio.3OPENSSL_LH_stats.3OPENSSL_LH_stats_bio.3OPENSSL_MALLOC_FAILURES.3OPENSSL_MALLOC_FD.3OPENSSL_VERSION_NUMBER.3OPENSSL_VERSION_TEXT.3OPENSSL_atexit.3OPENSSL_buf2hexstr.3OPENSSL_cipher_name.3OPENSSL_cleanse.3OPENSSL_cleanup.3OPENSSL_clear_free.3OPENSSL_clear_realloc.3OPENSSL_config.3OPENSSL_fork_child.3OPENSSL_fork_parent.3OPENSSL_fork_prepare.3OPENSSL_free.3OPENSSL_hexchar2int.3OPENSSL_hexstr2buf.3OPENSSL_ia32cap.3OPENSSL_init_crypto.3OPENSSL_init_ssl.3OPENSSL_instrument_bus.3OPENSSL_instrument_bus2.3OPENSSL_load_builtin_modules.3OPENSSL_malloc.3OPENSSL_malloc_init.3OPENSSL_mem_debug_pop.3OPENSSL_mem_debug_push.3OPENSSL_memdup.3OPENSSL_no_config.3OPENSSL_realloc.3OPENSSL_secure_actual_size.3OPENSSL_secure_clear_free.3OPENSSL_secure_free.3OPENSSL_secure_malloc.3OPENSSL_secure_zalloc.3OPENSSL_strdup.3OPENSSL_strlcat.3OPENSSL_strlcpy.3OPENSSL_strndup.3OPENSSL_thread_stop.3OPENSSL_zalloc.3OSSL_STORE_CTX.3OSSL_STORE_INFO.3OSSL_STORE_INFO_free.3OSSL_STORE_INFO_get0_CERT.3OSSL_STORE_INFO_get0_CRL.3OSSL_STORE_INFO_get0_NAME.3OSSL_STORE_INFO_get0_NAME_description.3OSSL_STORE_INFO_get0_PARAMS.3OSSL_STORE_INFO_get0_PKEY.3OSSL_STORE_INFO_get1_CERT.3OSSL_STORE_INFO_get1_CRL.3OSSL_STORE_INFO_get1_NAME.3OSSL_STORE_INFO_get1_NAME_description.3OSSL_STORE_INFO_get1_PARAMS.3OSSL_STORE_INFO_get1_PKEY.3OSSL_STORE_INFO_get_type.3OSSL_STORE_INFO_new_CERT.3OSSL_STORE_INFO_new_CRL.3OSSL_STORE_INFO_new_NAME.3OSSL_STORE_INFO_new_PARAMS.3OSSL_STORE_INFO_new_PKEY.3OSSL_STORE_INFO_set0_NAME_description.3OSSL_STORE_INFO_type_string.3OSSL_STORE_LOADER.3OSSL_STORE_LOADER_CTX.3OSSL_STORE_LOADER_free.3OSSL_STORE_LOADER_get0_engine.3OSSL_STORE_LOADER_get0_scheme.3OSSL_STORE_LOADER_new.3OSSL_STORE_LOADER_set_close.3OSSL_STORE_LOADER_set_ctrl.3OSSL_STORE_LOADER_set_eof.3OSSL_STORE_LOADER_set_error.3OSSL_STORE_LOADER_set_expect.3OSSL_STORE_LOADER_set_find.3OSSL_STORE_LOADER_set_load.3OSSL_STORE_LOADER_set_open.3OSSL_STORE_SEARCH.3OSSL_STORE_SEARCH_by_alias.3OSSL_STORE_SEARCH_by_issuer_serial.3OSSL_STORE_SEARCH_by_key_fingerprint.3OSSL_STORE_SEARCH_by_name.3OSSL_STORE_SEARCH_free.3OSSL_STORE_SEARCH_get0_bytes.3OSSL_STORE_SEARCH_get0_digest.3OSSL_STORE_SEARCH_get0_name.3OSSL_STORE_SEARCH_get0_serial.3OSSL_STORE_SEARCH_get0_string.3OSSL_STORE_SEARCH_get_type.3OSSL_STORE_close.3OSSL_STORE_close_fn.3OSSL_STORE_ctrl.3OSSL_STORE_ctrl_fn.3OSSL_STORE_eof.3OSSL_STORE_eof_fn.3OSSL_STORE_error.3OSSL_STORE_error_fn.3OSSL_STORE_expect.3OSSL_STORE_expect_fn.3OSSL_STORE_find.3OSSL_STORE_find_fn.3OSSL_STORE_load.3OSSL_STORE_load_fn.3OSSL_STORE_open.3OSSL_STORE_open_fn.3OSSL_STORE_post_process_info_fn.3OSSL_STORE_register_loader.3OSSL_STORE_supports_search.3OSSL_STORE_unregister_loader.3OTHERNAME_free.3OTHERNAME_new.3OpenSSL_add_all_algorithms.3OpenSSL_add_all_ciphers.3OpenSSL_add_all_digests.3OpenSSL_add_ssl_algorithms.3OpenSSL_version.3OpenSSL_version_num.3PBE2PARAM_free.3PBE2PARAM_new.3PBEPARAM_free.3PBEPARAM_new.3PBKDF2PARAM_free.3PBKDF2PARAM_new.3PEM_FLAG_EAY_COMPATIBLE.3PEM_FLAG_ONLY_B64.3PEM_FLAG_SECURE.3PEM_bytes_read_bio.3PEM_bytes_read_bio_secmem.3PEM_do_header.3PEM_get_EVP_CIPHER_INFO.3PEM_read.3PEM_read_CMS.3PEM_read_DHparams.3PEM_read_DSAPrivateKey.3PEM_read_DSA_PUBKEY.3PEM_read_DSAparams.3PEM_read_ECPKParameters.3PEM_read_ECPrivateKey.3PEM_read_EC_PUBKEY.3PEM_read_NETSCAPE_CERT_SEQUENCE.3PEM_read_PKCS7.3PEM_read_PKCS8.3PEM_read_PKCS8_PRIV_KEY_INFO.3PEM_read_PUBKEY.3PEM_read_PrivateKey.3PEM_read_RSAPrivateKey.3PEM_read_RSAPublicKey.3PEM_read_RSA_PUBKEY.3PEM_read_SSL_SESSION.3PEM_read_X509.3PEM_read_X509_AUX.3PEM_read_X509_CRL.3PEM_read_X509_REQ.3PEM_read_bio.3PEM_read_bio_CMS.3PEM_read_bio_DHparams.3PEM_read_bio_DSAPrivateKey.3PEM_read_bio_DSA_PUBKEY.3PEM_read_bio_DSAparams.3PEM_read_bio_ECPKParameters.3PEM_read_bio_EC_PUBKEY.3PEM_read_bio_NETSCAPE_CERT_SEQUENCE.3PEM_read_bio_PKCS7.3PEM_read_bio_PKCS8.3PEM_read_bio_PKCS8_PRIV_KEY_INFO.3PEM_read_bio_PUBKEY.3PEM_read_bio_Parameters.3PEM_read_bio_PrivateKey.3PEM_read_bio_RSAPrivateKey.3PEM_read_bio_RSAPublicKey.3PEM_read_bio_RSA_PUBKEY.3PEM_read_bio_SSL_SESSION.3PEM_read_bio_X509.3PEM_read_bio_X509_AUX.3PEM_read_bio_X509_CRL.3PEM_read_bio_X509_REQ.3PEM_read_bio_ex.3PEM_write.3PEM_write_CMS.3PEM_write_DHparams.3PEM_write_DHxparams.3PEM_write_DSAPrivateKey.3PEM_write_DSA_PUBKEY.3PEM_write_DSAparams.3PEM_write_ECPKParameters.3PEM_write_ECPrivateKey.3PEM_write_EC_PUBKEY.3PEM_write_NETSCAPE_CERT_SEQUENCE.3PEM_write_PKCS7.3PEM_write_PKCS8.3PEM_write_PKCS8PrivateKey.3PEM_write_PKCS8PrivateKey_nid.3PEM_write_PKCS8_PRIV_KEY_INFO.3PEM_write_PUBKEY.3PEM_write_PrivateKey.3PEM_write_RSAPrivateKey.3PEM_write_RSAPublicKey.3PEM_write_RSA_PUBKEY.3PEM_write_SSL_SESSION.3PEM_write_X509.3PEM_write_X509_AUX.3PEM_write_X509_CRL.3PEM_write_X509_REQ.3PEM_write_X509_REQ_NEW.3PEM_write_bio.3PEM_write_bio_CMS.3PEM_write_bio_CMS_stream.3PEM_write_bio_DHparams.3PEM_write_bio_DHxparams.3PEM_write_bio_DSAPrivateKey.3PEM_write_bio_DSA_PUBKEY.3PEM_write_bio_DSAparams.3PEM_write_bio_ECPKParameters.3PEM_write_bio_ECPrivateKey.3PEM_write_bio_EC_PUBKEY.3PEM_write_bio_NETSCAPE_CERT_SEQUENCE.3PEM_write_bio_PKCS7.3PEM_write_bio_PKCS7_stream.3PEM_write_bio_PKCS8.3PEM_write_bio_PKCS8PrivateKey.3PEM_write_bio_PKCS8PrivateKey_nid.3PEM_write_bio_PKCS8_PRIV_KEY_INFO.3PEM_write_bio_PUBKEY.3PEM_write_bio_Parameters.3PEM_write_bio_PrivateKey.3PEM_write_bio_PrivateKey_traditional.3PEM_write_bio_RSAPrivateKey.3PEM_write_bio_RSAPublicKey.3PEM_write_bio_RSA_PUBKEY.3PEM_write_bio_SSL_SESSION.3PEM_write_bio_X509.3PEM_write_bio_X509_AUX.3PEM_write_bio_X509_CRL.3PEM_write_bio_X509_REQ.3PEM_write_bio_X509_REQ_NEW.3PKCS12_BAGS_free.3PKCS12_BAGS_new.3PKCS12_MAC_DATA_free.3PKCS12_MAC_DATA_new.3PKCS12_SAFEBAG_free.3PKCS12_SAFEBAG_new.3PKCS12_create.3PKCS12_free.3PKCS12_new.3PKCS12_newpass.3PKCS12_parse.3PKCS5_PBKDF2_HMAC.3PKCS5_PBKDF2_HMAC_SHA1.3PKCS7_DIGEST_free.3PKCS7_DIGEST_new.3PKCS7_ENCRYPT_free.3PKCS7_ENCRYPT_new.3PKCS7_ENC_CONTENT_free.3PKCS7_ENC_CONTENT_new.3PKCS7_ENVELOPE_free.3PKCS7_ENVELOPE_new.3PKCS7_ISSUER_AND_SERIAL_digest.3PKCS7_ISSUER_AND_SERIAL_free.3PKCS7_ISSUER_AND_SERIAL_new.3PKCS7_RECIP_INFO_free.3PKCS7_RECIP_INFO_new.3PKCS7_SIGNED_free.3PKCS7_SIGNED_new.3PKCS7_SIGNER_INFO_free.3PKCS7_SIGNER_INFO_new.3PKCS7_SIGN_ENVELOPE_free.3PKCS7_SIGN_ENVELOPE_new.3PKCS7_add_certificate.3PKCS7_add_crl.3PKCS7_decrypt.3PKCS7_dup.3PKCS7_encrypt.3PKCS7_free.3PKCS7_get0_signers.3PKCS7_new.3PKCS7_print_ctx.3PKCS7_sign.3PKCS7_sign_add_signer.3PKCS7_verify.3PKCS8_PRIV_KEY_INFO_free.3PKCS8_PRIV_KEY_INFO_new.3PKEY_USAGE_PERIOD_free.3PKEY_USAGE_PERIOD_new.3POLICYINFO_free.3POLICYINFO_new.3POLICYQUALINFO_free.3POLICYQUALINFO_new.3POLICY_CONSTRAINTS_free.3POLICY_CONSTRAINTS_new.3POLICY_MAPPING_free.3POLICY_MAPPING_new.3PROFESSION_INFO.3PROFESSION_INFOS.3PROFESSION_INFOS_free.3PROFESSION_INFOS_new.3PROFESSION_INFO_free.3PROFESSION_INFO_get0_addProfessionInfo.3PROFESSION_INFO_get0_namingAuthority.3PROFESSION_INFO_get0_professionItems.3PROFESSION_INFO_get0_professionOIDs.3PROFESSION_INFO_get0_registrationNumber.3PROFESSION_INFO_new.3PROFESSION_INFO_set0_addProfessionInfo.3PROFESSION_INFO_set0_namingAuthority.3PROFESSION_INFO_set0_professionItems.3PROFESSION_INFO_set0_professionOIDs.3PROFESSION_INFO_set0_registrationNumber.3PROXY_CERT_INFO_EXTENSION_free.3PROXY_CERT_INFO_EXTENSION_new.3PROXY_POLICY_free.3PROXY_POLICY_new.3RAND_DRBG_bytes.3RAND_DRBG_cleanup_entropy_fn.3RAND_DRBG_cleanup_nonce_fn.3RAND_DRBG_free.3RAND_DRBG_generate.3RAND_DRBG_get0_master.3RAND_DRBG_get0_private.3RAND_DRBG_get0_public.3RAND_DRBG_get_entropy_fn.3RAND_DRBG_get_ex_data.3RAND_DRBG_get_ex_new_index.3RAND_DRBG_get_nonce_fn.3RAND_DRBG_instantiate.3RAND_DRBG_new.3RAND_DRBG_reseed.3RAND_DRBG_secure_new.3RAND_DRBG_set.3RAND_DRBG_set_callbacks.3RAND_DRBG_set_defaults.3RAND_DRBG_set_ex_data.3RAND_DRBG_set_reseed_defaults.3RAND_DRBG_set_reseed_interval.3RAND_DRBG_set_reseed_time_interval.3RAND_DRBG_uninstantiate.3RAND_OpenSSL.3RAND_add.3RAND_bytes.3RAND_cleanup.3RAND_egd.3RAND_egd_bytes.3RAND_event.3RAND_file_name.3RAND_get_rand_method.3RAND_keep_random_devices_open.3RAND_load_file.3RAND_poll.3RAND_priv_bytes.3RAND_pseudo_bytes.3RAND_query_egd_bytes.3RAND_screen.3RAND_seed.3RAND_set_rand_method.3RAND_status.3RAND_write_file.3RC4.3RC4_set_key.3RIPEMD160.3RIPEMD160_Final.3RIPEMD160_Init.3RIPEMD160_Update.3RSAPrivateKey_dup.3RSAPublicKey_dup.3RSA_OAEP_PARAMS_free.3RSA_OAEP_PARAMS_new.3RSA_PKCS1_OpenSSL.3RSA_PSS_PARAMS_free.3RSA_PSS_PARAMS_new.3RSA_bits.3RSA_blinding_off.3RSA_blinding_on.3RSA_check_key.3RSA_check_key_ex.3RSA_clear_flags.3RSA_flags.3RSA_free.3RSA_generate_key.3RSA_generate_key_ex.3RSA_generate_multi_prime_key.3RSA_get0_crt_params.3RSA_get0_d.3RSA_get0_dmp1.3RSA_get0_dmq1.3RSA_get0_e.3RSA_get0_engine.3RSA_get0_factors.3RSA_get0_iqmp.3RSA_get0_key.3RSA_get0_multi_prime_crt_params.3RSA_get0_multi_prime_factors.3RSA_get0_n.3RSA_get0_p.3RSA_get0_pss_params.3RSA_get0_q.3RSA_get_default_method.3RSA_get_ex_data.3RSA_get_ex_new_index.3RSA_get_method.3RSA_get_multi_prime_extra_count.3RSA_get_version.3RSA_meth_dup.3RSA_meth_free.3RSA_meth_get0_app_data.3RSA_meth_get0_name.3RSA_meth_get_bn_mod_exp.3RSA_meth_get_finish.3RSA_meth_get_flags.3RSA_meth_get_init.3RSA_meth_get_keygen.3RSA_meth_get_mod_exp.3RSA_meth_get_multi_prime_keygen.3RSA_meth_get_priv_dec.3RSA_meth_get_priv_enc.3RSA_meth_get_pub_dec.3RSA_meth_get_pub_enc.3RSA_meth_get_sign.3RSA_meth_get_verify.3RSA_meth_new.3RSA_meth_set0_app_data.3RSA_meth_set1_name.3RSA_meth_set_bn_mod_exp.3RSA_meth_set_finish.3RSA_meth_set_flags.3RSA_meth_set_init.3RSA_meth_set_keygen.3RSA_meth_set_mod_exp.3RSA_meth_set_multi_prime_keygen.3RSA_meth_set_priv_dec.3RSA_meth_set_priv_enc.3RSA_meth_set_pub_dec.3RSA_meth_set_pub_enc.3RSA_meth_set_sign.3RSA_meth_set_verify.3RSA_new.3RSA_new_method.3RSA_padding_add_PKCS1_OAEP.3RSA_padding_add_PKCS1_OAEP_mgf1.3RSA_padding_add_PKCS1_type_1.3RSA_padding_add_PKCS1_type_2.3RSA_padding_add_SSLv23.3RSA_padding_add_none.3RSA_padding_check_PKCS1_OAEP.3RSA_padding_check_PKCS1_OAEP_mgf1.3RSA_padding_check_PKCS1_type_1.3RSA_padding_check_PKCS1_type_2.3RSA_padding_check_SSLv23.3RSA_padding_check_none.3RSA_print.3RSA_print_fp.3RSA_private_decrypt.3RSA_private_encrypt.3RSA_public_decrypt.3RSA_public_encrypt.3RSA_security_bits.3RSA_set0_crt_params.3RSA_set0_factors.3RSA_set0_key.3RSA_set0_multi_prime_params.3RSA_set_default_method.3RSA_set_ex_data.3RSA_set_flags.3RSA_set_method.3RSA_sign.3RSA_sign_ASN1_OCTET_STRING.3RSA_size.3RSA_test_flags.3RSA_verify.3RSA_verify_ASN1_OCTET_STRING.3SCRYPT_PARAMS_free.3SCRYPT_PARAMS_new.3SCT_LIST_free.3SCT_LIST_print.3SCT_LIST_validate.3SCT_free.3SCT_get0_extensions.3SCT_get0_log_id.3SCT_get0_signature.3SCT_get_log_entry_type.3SCT_get_signature_nid.3SCT_get_source.3SCT_get_timestamp.3SCT_get_validation_status.3SCT_get_version.3SCT_new.3SCT_new_from_base64.3SCT_print.3SCT_set0_extensions.3SCT_set0_log_id.3SCT_set0_signature.3SCT_set1_extensions.3SCT_set1_log_id.3SCT_set1_signature.3SCT_set_log_entry_type.3SCT_set_signature_nid.3SCT_set_source.3SCT_set_timestamp.3SCT_set_version.3SCT_validate.3SCT_validation_status_string.3SHA1.3SHA1_Final.3SHA1_Init.3SHA1_Update.3SHA224.3SHA224_Final.3SHA224_Init.3SHA224_Update.3SHA256.3SHA256_Final.3SHA256_Init.3SHA256_Update.3SHA384.3SHA384_Final.3SHA384_Init.3SHA384_Update.3SHA512.3SHA512_Final.3SHA512_Init.3SHA512_Update.3SMIME_read_CMS.3SMIME_read_PKCS7.3SMIME_write_CMS.3SMIME_write_PKCS7.3SSL_CIPHER_description.3SSL_CIPHER_find.3SSL_CIPHER_get_auth_nid.3SSL_CIPHER_get_bits.3SSL_CIPHER_get_cipher_nid.3SSL_CIPHER_get_digest_nid.3SSL_CIPHER_get_handshake_digest.3SSL_CIPHER_get_id.3SSL_CIPHER_get_kx_nid.3SSL_CIPHER_get_name.3SSL_CIPHER_get_protocol_id.3SSL_CIPHER_get_version.3SSL_CIPHER_is_aead.3SSL_CIPHER_standard_name.3SSL_COMP_add_compression_method.3SSL_COMP_free_compression_methods.3SSL_COMP_get0_name.3SSL_COMP_get_compression_methods.3SSL_COMP_get_id.3SSL_CONF_CTX_clear_flags.3SSL_CONF_CTX_free.3SSL_CONF_CTX_new.3SSL_CONF_CTX_set1_prefix.3SSL_CONF_CTX_set_flags.3SSL_CONF_CTX_set_ssl.3SSL_CONF_CTX_set_ssl_ctx.3SSL_CONF_cmd.3SSL_CONF_cmd_argv.3SSL_CONF_cmd_value_type.3SSL_CTX_add0_chain_cert.3SSL_CTX_add1_chain_cert.3SSL_CTX_add1_to_CA_list.3SSL_CTX_add_client_CA.3SSL_CTX_add_client_custom_ext.3SSL_CTX_add_custom_ext.3SSL_CTX_add_extra_chain_cert.3SSL_CTX_add_server_custom_ext.3SSL_CTX_add_session.3SSL_CTX_build_cert_chain.3SSL_CTX_callback_ctrl.3SSL_CTX_check_private_key.3SSL_CTX_clear_chain_certs.3SSL_CTX_clear_extra_chain_certs.3SSL_CTX_clear_mode.3SSL_CTX_clear_options.3SSL_CTX_config.3SSL_CTX_ct_is_enabled.3SSL_CTX_ctrl.3SSL_CTX_dane_clear_flags.3SSL_CTX_dane_enable.3SSL_CTX_dane_mtype_set.3SSL_CTX_dane_set_flags.3SSL_CTX_decrypt_session_ticket_fn.3SSL_CTX_disable_ct.3SSL_CTX_enable_ct.3SSL_CTX_flush_sessions.3SSL_CTX_free.3SSL_CTX_generate_session_ticket_fn.3SSL_CTX_get0_CA_list.3SSL_CTX_get0_chain_cert_store.3SSL_CTX_get0_chain_certs.3SSL_CTX_get0_param.3SSL_CTX_get0_security_ex_data.3SSL_CTX_get0_verify_cert_store.3SSL_CTX_get_cert_store.3SSL_CTX_get_ciphers.3SSL_CTX_get_client_CA_list.3SSL_CTX_get_client_cert_cb.3SSL_CTX_get_default_passwd_cb.3SSL_CTX_get_default_passwd_cb_userdata.3SSL_CTX_get_default_read_ahead.3SSL_CTX_get_ex_data.3SSL_CTX_get_info_callback.3SSL_CTX_get_keylog_callback.3SSL_CTX_get_max_cert_list.3SSL_CTX_get_max_early_data.3SSL_CTX_get_max_proto_version.3SSL_CTX_get_min_proto_version.3SSL_CTX_get_mode.3SSL_CTX_get_num_tickets.3SSL_CTX_get_options.3SSL_CTX_get_quiet_shutdown.3SSL_CTX_get_read_ahead.3SSL_CTX_get_record_padding_callback_arg.3SSL_CTX_get_recv_max_early_data.3SSL_CTX_get_security_callback.3SSL_CTX_get_security_level.3SSL_CTX_get_session_cache_mode.3SSL_CTX_get_timeout.3SSL_CTX_get_tlsext_status_arg.3SSL_CTX_get_tlsext_status_cb.3SSL_CTX_get_tlsext_status_type.3SSL_CTX_get_verify_callback.3SSL_CTX_get_verify_depth.3SSL_CTX_get_verify_mode.3SSL_CTX_has_client_custom_ext.3SSL_CTX_keylog_cb_func.3SSL_CTX_load_verify_locations.3SSL_CTX_new.3SSL_CTX_remove_session.3SSL_CTX_select_current_cert.3SSL_CTX_sess_accept.3SSL_CTX_sess_accept_good.3SSL_CTX_sess_accept_renegotiate.3SSL_CTX_sess_cache_full.3SSL_CTX_sess_cb_hits.3SSL_CTX_sess_connect.3SSL_CTX_sess_connect_good.3SSL_CTX_sess_connect_renegotiate.3SSL_CTX_sess_get_cache_size.3SSL_CTX_sess_get_get_cb.3SSL_CTX_sess_get_new_cb.3SSL_CTX_sess_get_remove_cb.3SSL_CTX_sess_hits.3SSL_CTX_sess_misses.3SSL_CTX_sess_number.3SSL_CTX_sess_set_cache_size.3SSL_CTX_sess_set_get_cb.3SSL_CTX_sess_set_new_cb.3SSL_CTX_sess_set_remove_cb.3SSL_CTX_sess_timeouts.3SSL_CTX_sessions.3SSL_CTX_set0_CA_list.3SSL_CTX_set0_chain.3SSL_CTX_set0_chain_cert_store.3SSL_CTX_set0_security_ex_data.3SSL_CTX_set0_verify_cert_store.3SSL_CTX_set1_cert_store.3SSL_CTX_set1_chain.3SSL_CTX_set1_chain_cert_store.3SSL_CTX_set1_client_sigalgs.3SSL_CTX_set1_client_sigalgs_list.3SSL_CTX_set1_curves.3SSL_CTX_set1_curves_list.3SSL_CTX_set1_groups.3SSL_CTX_set1_groups_list.3SSL_CTX_set1_param.3SSL_CTX_set1_sigalgs.3SSL_CTX_set1_sigalgs_list.3SSL_CTX_set1_verify_cert_store.3SSL_CTX_set_allow_early_data_cb.3SSL_CTX_set_alpn_protos.3SSL_CTX_set_alpn_select_cb.3SSL_CTX_set_block_padding.3SSL_CTX_set_cert_cb.3SSL_CTX_set_cert_store.3SSL_CTX_set_cert_verify_callback.3SSL_CTX_set_cipher_list.3SSL_CTX_set_ciphersuites.3SSL_CTX_set_client_CA_list.3SSL_CTX_set_client_cert_cb.3SSL_CTX_set_client_hello_cb.3SSL_CTX_set_cookie_generate_cb.3SSL_CTX_set_cookie_verify_cb.3SSL_CTX_set_ct_validation_callback.3SSL_CTX_set_ctlog_list_file.3SSL_CTX_set_current_cert.3SSL_CTX_set_default_ctlog_list_file.3SSL_CTX_set_default_passwd_cb.3SSL_CTX_set_default_passwd_cb_userdata.3SSL_CTX_set_default_read_buffer_len.3SSL_CTX_set_default_verify_dir.3SSL_CTX_set_default_verify_file.3SSL_CTX_set_default_verify_paths.3SSL_CTX_set_ex_data.3SSL_CTX_set_generate_session_id.3SSL_CTX_set_info_callback.3SSL_CTX_set_keylog_callback.3SSL_CTX_set_max_cert_list.3SSL_CTX_set_max_early_data.3SSL_CTX_set_max_pipelines.3SSL_CTX_set_max_proto_version.3SSL_CTX_set_max_send_fragment.3SSL_CTX_set_min_proto_version.3SSL_CTX_set_mode.3SSL_CTX_set_msg_callback.3SSL_CTX_set_msg_callback_arg.3SSL_CTX_set_next_proto_select_cb.3SSL_CTX_set_next_protos_advertised_cb.3SSL_CTX_set_num_tickets.3SSL_CTX_set_options.3SSL_CTX_set_post_handshake_auth.3SSL_CTX_set_psk_client_callback.3SSL_CTX_set_psk_find_session_callback.3SSL_CTX_set_psk_server_callback.3SSL_CTX_set_psk_use_session_callback.3SSL_CTX_set_quiet_shutdown.3SSL_CTX_set_read_ahead.3SSL_CTX_set_record_padding_callback.3SSL_CTX_set_record_padding_callback_arg.3SSL_CTX_set_recv_max_early_data.3SSL_CTX_set_security_callback.3SSL_CTX_set_security_level.3SSL_CTX_set_session_cache_mode.3SSL_CTX_set_session_id_context.3SSL_CTX_set_session_ticket_cb.3SSL_CTX_set_split_send_fragment.3SSL_CTX_set_ssl_version.3SSL_CTX_set_stateless_cookie_generate_cb.3SSL_CTX_set_stateless_cookie_verify_cb.3SSL_CTX_set_timeout.3SSL_CTX_set_tlsext_max_fragment_length.3SSL_CTX_set_tlsext_servername_arg.3SSL_CTX_set_tlsext_servername_callback.3SSL_CTX_set_tlsext_status_arg.3SSL_CTX_set_tlsext_status_cb.3SSL_CTX_set_tlsext_status_type.3SSL_CTX_set_tlsext_ticket_key_cb.3SSL_CTX_set_tlsext_use_srtp.3SSL_CTX_set_tmp_dh.3SSL_CTX_set_tmp_dh_callback.3SSL_CTX_set_verify.3SSL_CTX_set_verify_depth.3SSL_CTX_up_ref.3SSL_CTX_use_PrivateKey.3SSL_CTX_use_PrivateKey_ASN1.3SSL_CTX_use_PrivateKey_file.3SSL_CTX_use_RSAPrivateKey.3SSL_CTX_use_RSAPrivateKey_ASN1.3SSL_CTX_use_RSAPrivateKey_file.3SSL_CTX_use_cert_and_key.3SSL_CTX_use_certificate.3SSL_CTX_use_certificate_ASN1.3SSL_CTX_use_certificate_chain_file.3SSL_CTX_use_certificate_file.3SSL_CTX_use_psk_identity_hint.3SSL_CTX_use_serverinfo.3SSL_CTX_use_serverinfo_ex.3SSL_CTX_use_serverinfo_file.3SSL_SESSION_dup.3SSL_SESSION_free.3SSL_SESSION_get0_alpn_selected.3SSL_SESSION_get0_cipher.3SSL_SESSION_get0_hostname.3SSL_SESSION_get0_id_context.3SSL_SESSION_get0_peer.3SSL_SESSION_get0_ticket.3SSL_SESSION_get0_ticket_appdata.3SSL_SESSION_get_compress_id.3SSL_SESSION_get_ex_data.3SSL_SESSION_get_id.3SSL_SESSION_get_master_key.3SSL_SESSION_get_max_early_data.3SSL_SESSION_get_max_fragment_length.3SSL_SESSION_get_protocol_version.3SSL_SESSION_get_ticket_lifetime_hint.3SSL_SESSION_get_time.3SSL_SESSION_get_timeout.3SSL_SESSION_has_ticket.3SSL_SESSION_is_resumable.3SSL_SESSION_new.3SSL_SESSION_print.3SSL_SESSION_print_fp.3SSL_SESSION_print_keylog.3SSL_SESSION_set1_alpn_selected.3SSL_SESSION_set1_hostname.3SSL_SESSION_set1_id.3SSL_SESSION_set1_id_context.3SSL_SESSION_set1_master_key.3SSL_SESSION_set1_ticket_appdata.3SSL_SESSION_set_cipher.3SSL_SESSION_set_ex_data.3SSL_SESSION_set_max_early_data.3SSL_SESSION_set_protocol_version.3SSL_SESSION_set_time.3SSL_SESSION_set_timeout.3SSL_SESSION_up_ref.3SSL_accept.3SSL_add0_chain_cert.3SSL_add1_chain_cert.3SSL_add1_host.3SSL_add1_to_CA_list.3SSL_add_client_CA.3SSL_add_dir_cert_subjects_to_stack.3SSL_add_file_cert_subjects_to_stack.3SSL_alert_desc_string.3SSL_alert_desc_string_long.3SSL_alert_type_string.3SSL_alert_type_string_long.3SSL_alloc_buffers.3SSL_allow_early_data_cb_fn.3SSL_build_cert_chain.3SSL_bytes_to_cipher_list.3SSL_callback_ctrl.3SSL_check_chain.3SSL_check_private_key.3SSL_clear.3SSL_clear_chain_certs.3SSL_clear_mode.3SSL_clear_options.3SSL_client_hello_cb_fn.3SSL_client_hello_get0_ciphers.3SSL_client_hello_get0_compression_methods.3SSL_client_hello_get0_ext.3SSL_client_hello_get0_legacy_version.3SSL_client_hello_get0_random.3SSL_client_hello_get0_session_id.3SSL_client_hello_get1_extensions_present.3SSL_client_hello_isv2.3SSL_client_version.3SSL_config.3SSL_connect.3SSL_ct_is_enabled.3SSL_ctrl.3SSL_dane_clear_flags.3SSL_dane_enable.3SSL_dane_set_flags.3SSL_dane_tlsa_add.3SSL_disable_ct.3SSL_do_handshake.3SSL_dup.3SSL_enable_ct.3SSL_export_keying_material.3SSL_export_keying_material_early.3SSL_extension_supported.3SSL_free.3SSL_free_buffers.3SSL_get0_CA_list.3SSL_get0_alpn_selected.3SSL_get0_chain_cert_store.3SSL_get0_chain_certs.3SSL_get0_dane_authority.3SSL_get0_dane_tlsa.3SSL_get0_next_proto_negotiated.3SSL_get0_param.3SSL_get0_peer_CA_list.3SSL_get0_peer_scts.3SSL_get0_peername.3SSL_get0_security_ex_data.3SSL_get0_session.3SSL_get0_verified_chain.3SSL_get0_verify_cert_store.3SSL_get1_curves.3SSL_get1_groups.3SSL_get1_session.3SSL_get1_supported_ciphers.3SSL_get_SSL_CTX.3SSL_get_all_async_fds.3SSL_get_changed_async_fds.3SSL_get_cipher.3SSL_get_cipher_bits.3SSL_get_cipher_list.3SSL_get_cipher_name.3SSL_get_cipher_version.3SSL_get_ciphers.3SSL_get_client_CA_list.3SSL_get_client_ciphers.3SSL_get_client_random.3SSL_get_current_cipher.3SSL_get_default_passwd_cb.3SSL_get_default_passwd_cb_userdata.3SSL_get_default_timeout.3SSL_get_early_data_status.3SSL_get_error.3SSL_get_ex_data.3SSL_get_ex_data_X509_STORE_CTX_idx.3SSL_get_extms_support.3SSL_get_fd.3SSL_get_info_callback.3SSL_get_key_update_type.3SSL_get_max_cert_list.3SSL_get_max_early_data.3SSL_get_max_proto_version.3SSL_get_min_proto_version.3SSL_get_mode.3SSL_get_num_tickets.3SSL_get_options.3SSL_get_peer_cert_chain.3SSL_get_peer_certificate.3SSL_get_peer_signature_nid.3SSL_get_peer_signature_type_nid.3SSL_get_peer_tmp_key.3SSL_get_pending_cipher.3SSL_get_psk_identity.3SSL_get_psk_identity_hint.3SSL_get_quiet_shutdown.3SSL_get_rbio.3SSL_get_read_ahead.3SSL_get_record_padding_callback_arg.3SSL_get_recv_max_early_data.3SSL_get_rfd.3SSL_get_secure_renegotiation_support.3SSL_get_security_callback.3SSL_get_security_level.3SSL_get_selected_srtp_profile.3SSL_get_server_random.3SSL_get_server_tmp_key.3SSL_get_servername.3SSL_get_servername_type.3SSL_get_session.3SSL_get_shared_ciphers.3SSL_get_shared_curve.3SSL_get_shared_group.3SSL_get_shared_sigalgs.3SSL_get_shutdown.3SSL_get_sigalgs.3SSL_get_signature_nid.3SSL_get_signature_type_nid.3SSL_get_srtp_profiles.3SSL_get_ssl_method.3SSL_get_state.3SSL_get_time.3SSL_get_timeout.3SSL_get_tlsext_status_ocsp_resp.3SSL_get_tlsext_status_type.3SSL_get_tmp_key.3SSL_get_verify_callback.3SSL_get_verify_depth.3SSL_get_verify_mode.3SSL_get_verify_result.3SSL_get_version.3SSL_get_wbio.3SSL_get_wfd.3SSL_has_matching_session_id.3SSL_has_pending.3SSL_in_accept_init.3SSL_in_before.3SSL_in_connect_init.3SSL_in_init.3SSL_is_dtls.3SSL_is_init_finished.3SSL_is_server.3SSL_key_update.3SSL_library_init.3SSL_load_client_CA_file.3SSL_load_error_strings.3SSL_new.3SSL_peek.3SSL_peek_ex.3SSL_pending.3SSL_psk_client_cb_func.3SSL_psk_find_session_cb_func.3SSL_psk_server_cb_func.3SSL_psk_use_session_cb_func.3SSL_read.3SSL_read_early_data.3SSL_read_ex.3SSL_renegotiate.3SSL_renegotiate_abbreviated.3SSL_renegotiate_pending.3SSL_rstate_string.3SSL_rstate_string_long.3SSL_select_current_cert.3SSL_select_next_proto.3SSL_session_reused.3SSL_set0_CA_list.3SSL_set0_chain.3SSL_set0_chain_cert_store.3SSL_set0_rbio.3SSL_set0_security_ex_data.3SSL_set0_verify_cert_store.3SSL_set0_wbio.3SSL_set1_chain.3SSL_set1_chain_cert_store.3SSL_set1_client_sigalgs.3SSL_set1_client_sigalgs_list.3SSL_set1_curves.3SSL_set1_curves_list.3SSL_set1_groups.3SSL_set1_groups_list.3SSL_set1_host.3SSL_set1_param.3SSL_set1_sigalgs.3SSL_set1_sigalgs_list.3SSL_set1_verify_cert_store.3SSL_set_accept_state.3SSL_set_allow_early_data_cb.3SSL_set_alpn_protos.3SSL_set_bio.3SSL_set_block_padding.3SSL_set_cert_cb.3SSL_set_cipher_list.3SSL_set_ciphersuites.3SSL_set_client_CA_list.3SSL_set_connect_state.3SSL_set_ct_validation_callback.3SSL_set_current_cert.3SSL_set_default_passwd_cb.3SSL_set_default_passwd_cb_userdata.3SSL_set_default_read_buffer_len.3SSL_set_ex_data.3SSL_set_fd.3SSL_set_generate_session_id.3SSL_set_hostflags.3SSL_set_info_callback.3SSL_set_max_cert_list.3SSL_set_max_early_data.3SSL_set_max_pipelines.3SSL_set_max_proto_version.3SSL_set_max_send_fragment.3SSL_set_min_proto_version.3SSL_set_mode.3SSL_set_msg_callback.3SSL_set_msg_callback_arg.3SSL_set_num_tickets.3SSL_set_options.3SSL_set_post_handshake_auth.3SSL_set_psk_client_callback.3SSL_set_psk_find_session_callback.3SSL_set_psk_server_callback.3SSL_set_psk_use_session_callback.3SSL_set_quiet_shutdown.3SSL_set_read_ahead.3SSL_set_record_padding_callback.3SSL_set_record_padding_callback_arg.3SSL_set_recv_max_early_data.3SSL_set_rfd.3SSL_set_security_callback.3SSL_set_security_level.3SSL_set_session.3SSL_set_session_id_context.3SSL_set_shutdown.3SSL_set_split_send_fragment.3SSL_set_ssl_method.3SSL_set_time.3SSL_set_timeout.3SSL_set_tlsext_host_name.3SSL_set_tlsext_max_fragment_length.3SSL_set_tlsext_status_ocsp_resp.3SSL_set_tlsext_status_type.3SSL_set_tlsext_use_srtp.3SSL_set_tmp_dh.3SSL_set_tmp_dh_callback.3SSL_set_verify.3SSL_set_verify_depth.3SSL_set_verify_result.3SSL_set_wfd.3SSL_shutdown.3SSL_state_string.3SSL_state_string_long.3SSL_stateless.3SSL_up_ref.3SSL_use_PrivateKey.3SSL_use_PrivateKey_ASN1.3SSL_use_PrivateKey_file.3SSL_use_RSAPrivateKey.3SSL_use_RSAPrivateKey_ASN1.3SSL_use_RSAPrivateKey_file.3SSL_use_cert_and_key.3SSL_use_certificate.3SSL_use_certificate_ASN1.3SSL_use_certificate_chain_file.3SSL_use_certificate_file.3SSL_use_psk_identity_hint.3SSL_verify_cb.3SSL_verify_client_post_handshake.3SSL_version.3SSL_waiting_for_async.3SSL_want.3SSL_want_async.3SSL_want_async_job.3SSL_want_client_hello_cb.3SSL_want_nothing.3SSL_want_read.3SSL_want_write.3SSL_want_x509_lookup.3SSL_write.3SSL_write_early_data.3SSL_write_ex.3SSLv23_client_method.3SSLv23_method.3SSLv23_server_method.3SSLv3_client_method.3SSLv3_method.3SSLv3_server_method.3SXNETID_free.3SXNETID_new.3SXNET_free.3SXNET_new.3TLS_FEATURE_free.3TLS_FEATURE_new.3TLS_client_method.3TLS_method.3TLS_server_method.3TLSv1_1_client_method.3TLSv1_1_method.3TLSv1_1_server_method.3TLSv1_2_client_method.3TLSv1_2_method.3TLSv1_2_server_method.3TLSv1_client_method.3TLSv1_method.3TLSv1_server_method.3TS_ACCURACY_dup.3TS_ACCURACY_free.3TS_ACCURACY_new.3TS_MSG_IMPRINT_dup.3TS_MSG_IMPRINT_free.3TS_MSG_IMPRINT_new.3TS_REQ_dup.3TS_REQ_free.3TS_REQ_new.3TS_RESP_dup.3TS_RESP_free.3TS_RESP_new.3TS_STATUS_INFO_dup.3TS_STATUS_INFO_free.3TS_STATUS_INFO_new.3TS_TST_INFO_dup.3TS_TST_INFO_free.3TS_TST_INFO_new.3UI.3UI_METHOD.3UI_OpenSSL.3UI_STRING.3UI_UTIL_read_pw.3UI_UTIL_read_pw_string.3UI_UTIL_wrap_read_pem_callback.3UI_add_error_string.3UI_add_info_string.3UI_add_input_boolean.3UI_add_input_string.3UI_add_user_data.3UI_add_verify_string.3UI_construct_prompt.3UI_create_method.3UI_ctrl.3UI_destroy_method.3UI_dup_error_string.3UI_dup_info_string.3UI_dup_input_boolean.3UI_dup_input_string.3UI_dup_user_data.3UI_dup_verify_string.3UI_free.3UI_get0_action_string.3UI_get0_output_string.3UI_get0_result.3UI_get0_result_string.3UI_get0_test_string.3UI_get0_user_data.3UI_get_default_method.3UI_get_ex_data.3UI_get_ex_new_index.3UI_get_input_flags.3UI_get_method.3UI_get_result_length.3UI_get_result_maxsize.3UI_get_result_minsize.3UI_get_result_string_length.3UI_get_string_type.3UI_method_get_closer.3UI_method_get_data_destructor.3UI_method_get_data_duplicator.3UI_method_get_ex_data.3UI_method_get_flusher.3UI_method_get_opener.3UI_method_get_prompt_constructor.3UI_method_get_reader.3UI_method_get_writer.3UI_method_set_closer.3UI_method_set_data_duplicator.3UI_method_set_ex_data.3UI_method_set_flusher.3UI_method_set_opener.3UI_method_set_prompt_constructor.3UI_method_set_reader.3UI_method_set_writer.3UI_new.3UI_new_method.3UI_null.3UI_process.3UI_set_default_method.3UI_set_ex_data.3UI_set_method.3UI_set_result.3UI_set_result_ex.3UI_string_types.3USERNOTICE_free.3USERNOTICE_new.3X509V3_EXT_d2i.3X509V3_EXT_i2d.3X509V3_add1_i2d.3X509V3_get_d2i.3X509_ALGOR_cmp.3X509_ALGOR_copy.3X509_ALGOR_dup.3X509_ALGOR_free.3X509_ALGOR_get0.3X509_ALGOR_new.3X509_ALGOR_set0.3X509_ALGOR_set_md.3X509_ATTRIBUTE_dup.3X509_ATTRIBUTE_free.3X509_ATTRIBUTE_new.3X509_CERT_AUX_free.3X509_CERT_AUX_new.3X509_CINF_free.3X509_CINF_new.3X509_CRL_INFO_free.3X509_CRL_INFO_new.3X509_CRL_add0_revoked.3X509_CRL_add1_ext_i2d.3X509_CRL_add_ext.3X509_CRL_cmp.3X509_CRL_delete_ext.3X509_CRL_digest.3X509_CRL_dup.3X509_CRL_free.3X509_CRL_get0_by_cert.3X509_CRL_get0_by_serial.3X509_CRL_get0_extensions.3X509_CRL_get0_lastUpdate.3X509_CRL_get0_nextUpdate.3X509_CRL_get0_signature.3X509_CRL_get_REVOKED.3X509_CRL_get_ext.3X509_CRL_get_ext_by_NID.3X509_CRL_get_ext_by_OBJ.3X509_CRL_get_ext_by_critical.3X509_CRL_get_ext_count.3X509_CRL_get_ext_d2i.3X509_CRL_get_issuer.3X509_CRL_get_signature_nid.3X509_CRL_get_version.3X509_CRL_match.3X509_CRL_new.3X509_CRL_set1_lastUpdate.3X509_CRL_set1_nextUpdate.3X509_CRL_set_issuer_name.3X509_CRL_set_version.3X509_CRL_sign.3X509_CRL_sign_ctx.3X509_CRL_sort.3X509_CRL_verify.3X509_EXTENSION_create_by_NID.3X509_EXTENSION_create_by_OBJ.3X509_EXTENSION_dup.3X509_EXTENSION_free.3X509_EXTENSION_get_critical.3X509_EXTENSION_get_data.3X509_EXTENSION_get_object.3X509_EXTENSION_new.3X509_EXTENSION_set_critical.3X509_EXTENSION_set_data.3X509_EXTENSION_set_object.3X509_LOOKUP.3X509_LOOKUP_METHOD.3X509_LOOKUP_TYPE.3X509_LOOKUP_add_dir.3X509_LOOKUP_by_alias.3X509_LOOKUP_by_fingerprint.3X509_LOOKUP_by_issuer_serial.3X509_LOOKUP_by_subject.3X509_LOOKUP_ctrl.3X509_LOOKUP_ctrl_fn.3X509_LOOKUP_file.3X509_LOOKUP_free.3X509_LOOKUP_get_by_alias_fn.3X509_LOOKUP_get_by_fingerprint_fn.3X509_LOOKUP_get_by_issuer_serial_fn.3X509_LOOKUP_get_by_subject_fn.3X509_LOOKUP_get_method_data.3X509_LOOKUP_get_store.3X509_LOOKUP_hash_dir.3X509_LOOKUP_init.3X509_LOOKUP_load_file.3X509_LOOKUP_meth_free.3X509_LOOKUP_meth_get_ctrl.3X509_LOOKUP_meth_get_free.3X509_LOOKUP_meth_get_get_by_alias.3X509_LOOKUP_meth_get_get_by_fingerprint.3X509_LOOKUP_meth_get_get_by_issuer_serial.3X509_LOOKUP_meth_get_get_by_subject.3X509_LOOKUP_meth_get_init.3X509_LOOKUP_meth_get_new_item.3X509_LOOKUP_meth_get_shutdown.3X509_LOOKUP_meth_new.3X509_LOOKUP_meth_set_ctrl.3X509_LOOKUP_meth_set_free.3X509_LOOKUP_meth_set_get_by_alias.3X509_LOOKUP_meth_set_get_by_fingerprint.3X509_LOOKUP_meth_set_get_by_issuer_serial.3X509_LOOKUP_meth_set_get_by_subject.3X509_LOOKUP_meth_set_init.3X509_LOOKUP_meth_set_new_item.3X509_LOOKUP_meth_set_shutdown.3X509_LOOKUP_new.3X509_LOOKUP_set_method_data.3X509_LOOKUP_shutdown.3X509_NAME_ENTRY_create_by_NID.3X509_NAME_ENTRY_create_by_OBJ.3X509_NAME_ENTRY_create_by_txt.3X509_NAME_ENTRY_dup.3X509_NAME_ENTRY_free.3X509_NAME_ENTRY_get_data.3X509_NAME_ENTRY_get_object.3X509_NAME_ENTRY_new.3X509_NAME_ENTRY_set_data.3X509_NAME_ENTRY_set_object.3X509_NAME_add_entry.3X509_NAME_add_entry_by_NID.3X509_NAME_add_entry_by_OBJ.3X509_NAME_add_entry_by_txt.3X509_NAME_cmp.3X509_NAME_delete_entry.3X509_NAME_digest.3X509_NAME_dup.3X509_NAME_entry_count.3X509_NAME_free.3X509_NAME_get0_der.3X509_NAME_get_entry.3X509_NAME_get_index_by_NID.3X509_NAME_get_index_by_OBJ.3X509_NAME_get_text_by_NID.3X509_NAME_get_text_by_OBJ.3X509_NAME_new.3X509_NAME_oneline.3X509_NAME_print.3X509_NAME_print_ex.3X509_NAME_print_ex_fp.3X509_OBJECT_set1_X509.3X509_OBJECT_set1_X509_CRL.3X509_PUBKEY_free.3X509_PUBKEY_get.3X509_PUBKEY_get0.3X509_PUBKEY_get0_param.3X509_PUBKEY_new.3X509_PUBKEY_set.3X509_PUBKEY_set0_param.3X509_REQ_INFO_free.3X509_REQ_INFO_new.3X509_REQ_check_private_key.3X509_REQ_digest.3X509_REQ_dup.3X509_REQ_free.3X509_REQ_get0_pubkey.3X509_REQ_get0_signature.3X509_REQ_get_X509_PUBKEY.3X509_REQ_get_pubkey.3X509_REQ_get_signature_nid.3X509_REQ_get_subject_name.3X509_REQ_get_version.3X509_REQ_new.3X509_REQ_set0_signature.3X509_REQ_set1_signature_algo.3X509_REQ_set_pubkey.3X509_REQ_set_subject_name.3X509_REQ_set_version.3X509_REQ_sign.3X509_REQ_sign_ctx.3X509_REQ_verify.3X509_REVOKED_add1_ext_i2d.3X509_REVOKED_add_ext.3X509_REVOKED_delete_ext.3X509_REVOKED_dup.3X509_REVOKED_free.3X509_REVOKED_get0_extensions.3X509_REVOKED_get0_revocationDate.3X509_REVOKED_get0_serialNumber.3X509_REVOKED_get_ext.3X509_REVOKED_get_ext_by_NID.3X509_REVOKED_get_ext_by_OBJ.3X509_REVOKED_get_ext_by_critical.3X509_REVOKED_get_ext_count.3X509_REVOKED_get_ext_d2i.3X509_REVOKED_new.3X509_REVOKED_set_revocationDate.3X509_REVOKED_set_serialNumber.3X509_SIG_INFO_get.3X509_SIG_INFO_set.3X509_SIG_free.3X509_SIG_get0.3X509_SIG_getm.3X509_SIG_new.3X509_STORE.3X509_STORE_CTX_cert_crl_fn.3X509_STORE_CTX_check_crl_fn.3X509_STORE_CTX_check_issued_fn.3X509_STORE_CTX_check_policy_fn.3X509_STORE_CTX_check_revocation_fn.3X509_STORE_CTX_cleanup.3X509_STORE_CTX_cleanup_fn.3X509_STORE_CTX_free.3X509_STORE_CTX_get0_cert.3X509_STORE_CTX_get0_chain.3X509_STORE_CTX_get0_param.3X509_STORE_CTX_get0_untrusted.3X509_STORE_CTX_get1_chain.3X509_STORE_CTX_get_cert_crl.3X509_STORE_CTX_get_check_crl.3X509_STORE_CTX_get_check_issued.3X509_STORE_CTX_get_check_policy.3X509_STORE_CTX_get_check_revocation.3X509_STORE_CTX_get_cleanup.3X509_STORE_CTX_get_crl_fn.3X509_STORE_CTX_get_current_cert.3X509_STORE_CTX_get_error.3X509_STORE_CTX_get_error_depth.3X509_STORE_CTX_get_ex_data.3X509_STORE_CTX_get_ex_new_index.3X509_STORE_CTX_get_get_crl.3X509_STORE_CTX_get_get_issuer.3X509_STORE_CTX_get_issuer_fn.3X509_STORE_CTX_get_lookup_certs.3X509_STORE_CTX_get_lookup_crls.3X509_STORE_CTX_get_num_untrusted.3X509_STORE_CTX_get_verify.3X509_STORE_CTX_get_verify_cb.3X509_STORE_CTX_init.3X509_STORE_CTX_lookup_certs_fn.3X509_STORE_CTX_lookup_crls_fn.3X509_STORE_CTX_new.3X509_STORE_CTX_purpose_inherit.3X509_STORE_CTX_set0_crls.3X509_STORE_CTX_set0_param.3X509_STORE_CTX_set0_trusted_stack.3X509_STORE_CTX_set0_untrusted.3X509_STORE_CTX_set0_verified_chain.3X509_STORE_CTX_set_cert.3X509_STORE_CTX_set_current_cert.3X509_STORE_CTX_set_default.3X509_STORE_CTX_set_error.3X509_STORE_CTX_set_error_depth.3X509_STORE_CTX_set_ex_data.3X509_STORE_CTX_set_purpose.3X509_STORE_CTX_set_trust.3X509_STORE_CTX_set_verify.3X509_STORE_CTX_set_verify_cb.3X509_STORE_CTX_verify_cb.3X509_STORE_CTX_verify_fn.3X509_STORE_add_cert.3X509_STORE_add_crl.3X509_STORE_add_lookup.3X509_STORE_free.3X509_STORE_get0_objects.3X509_STORE_get0_param.3X509_STORE_get_cert_crl.3X509_STORE_get_check_crl.3X509_STORE_get_check_issued.3X509_STORE_get_check_policy.3X509_STORE_get_check_revocation.3X509_STORE_get_cleanup.3X509_STORE_get_ex_data.3X509_STORE_get_ex_new_index.3X509_STORE_get_get_crl.3X509_STORE_get_get_issuer.3X509_STORE_get_lookup_certs.3X509_STORE_get_lookup_crls.3X509_STORE_get_verify_cb.3X509_STORE_load_locations.3X509_STORE_lock.3X509_STORE_new.3X509_STORE_set1_param.3X509_STORE_set_cert_crl.3X509_STORE_set_check_crl.3X509_STORE_set_check_issued.3X509_STORE_set_check_policy.3X509_STORE_set_check_revocation.3X509_STORE_set_cleanup.3X509_STORE_set_default_paths.3X509_STORE_set_depth.3X509_STORE_set_ex_data.3X509_STORE_set_flags.3X509_STORE_set_get_crl.3X509_STORE_set_get_issuer.3X509_STORE_set_lookup_certs.3X509_STORE_set_lookup_crls.3X509_STORE_set_lookup_crls_cb.3X509_STORE_set_purpose.3X509_STORE_set_trust.3X509_STORE_set_verify.3X509_STORE_set_verify_cb.3X509_STORE_set_verify_cb_func.3X509_STORE_set_verify_func.3X509_STORE_unlock.3X509_STORE_up_ref.3X509_VAL_free.3X509_VAL_new.3X509_VERIFY_PARAM_add0_policy.3X509_VERIFY_PARAM_add1_host.3X509_VERIFY_PARAM_clear_flags.3X509_VERIFY_PARAM_get0_peername.3X509_VERIFY_PARAM_get_auth_level.3X509_VERIFY_PARAM_get_depth.3X509_VERIFY_PARAM_get_flags.3X509_VERIFY_PARAM_get_hostflags.3X509_VERIFY_PARAM_get_inh_flags.3X509_VERIFY_PARAM_get_time.3X509_VERIFY_PARAM_set1_email.3X509_VERIFY_PARAM_set1_host.3X509_VERIFY_PARAM_set1_ip.3X509_VERIFY_PARAM_set1_ip_asc.3X509_VERIFY_PARAM_set1_policies.3X509_VERIFY_PARAM_set_auth_level.3X509_VERIFY_PARAM_set_depth.3X509_VERIFY_PARAM_set_flags.3X509_VERIFY_PARAM_set_hostflags.3X509_VERIFY_PARAM_set_inh_flags.3X509_VERIFY_PARAM_set_purpose.3X509_VERIFY_PARAM_set_time.3X509_VERIFY_PARAM_set_trust.3X509_add1_ext_i2d.3X509_add_ext.3X509_chain_up_ref.3X509_check_ca.3X509_check_email.3X509_check_host.3X509_check_ip.3X509_check_ip_asc.3X509_check_issued.3X509_check_private_key.3X509_check_purpose.3X509_cmp.3X509_cmp_current_time.3X509_cmp_time.3X509_delete_ext.3X509_digest.3X509_dup.3X509_free.3X509_get0_authority_issuer.3X509_get0_authority_key_id.3X509_get0_authority_serial.3X509_get0_extensions.3X509_get0_notAfter.3X509_get0_notBefore.3X509_get0_pubkey.3X509_get0_serialNumber.3X509_get0_signature.3X509_get0_subject_key_id.3X509_get0_tbs_sigalg.3X509_get0_uids.3X509_get_X509_PUBKEY.3X509_get_ex_data.3X509_get_ex_new_index.3X509_get_ext.3X509_get_ext_by_NID.3X509_get_ext_by_OBJ.3X509_get_ext_by_critical.3X509_get_ext_count.3X509_get_ext_d2i.3X509_get_extended_key_usage.3X509_get_extension_flags.3X509_get_issuer_name.3X509_get_key_usage.3X509_get_pathlen.3X509_get_proxy_pathlen.3X509_get_pubkey.3X509_get_serialNumber.3X509_get_signature_info.3X509_get_signature_nid.3X509_get_subject_name.3X509_get_version.3X509_getm_notAfter.3X509_getm_notBefore.3X509_issuer_and_serial_cmp.3X509_issuer_name_cmp.3X509_load_cert_crl_file.3X509_load_cert_file.3X509_load_crl_file.3X509_new.3X509_pubkey_digest.3X509_set1_notAfter.3X509_set1_notBefore.3X509_set_ex_data.3X509_set_issuer_name.3X509_set_proxy_flag.3X509_set_proxy_pathlen.3X509_set_pubkey.3X509_set_serialNumber.3X509_set_subject_name.3X509_set_version.3X509_sign.3X509_sign_ctx.3X509_subject_name_cmp.3X509_time_adj.3X509_time_adj_ex.3X509_up_ref.3X509_verify.3X509_verify_cert.3X509_verify_cert_error_string.3X509v3_add_ext.3X509v3_delete_ext.3X509v3_get_ext.3X509v3_get_ext_by_NID.3X509v3_get_ext_by_OBJ.3X509v3_get_ext_by_critical.3X509v3_get_ext_count.3custom_ext_add_cb.3custom_ext_free_cb.3custom_ext_parse_cb.3d2i_ACCESS_DESCRIPTION.3d2i_ADMISSIONS.3d2i_ADMISSION_SYNTAX.3d2i_ASIdOrRange.3d2i_ASIdentifierChoice.3d2i_ASIdentifiers.3d2i_ASN1_BIT_STRING.3d2i_ASN1_BMPSTRING.3d2i_ASN1_ENUMERATED.3d2i_ASN1_GENERALIZEDTIME.3d2i_ASN1_GENERALSTRING.3d2i_ASN1_IA5STRING.3d2i_ASN1_INTEGER.3d2i_ASN1_NULL.3d2i_ASN1_OBJECT.3d2i_ASN1_OCTET_STRING.3d2i_ASN1_PRINTABLE.3d2i_ASN1_PRINTABLESTRING.3d2i_ASN1_SEQUENCE_ANY.3d2i_ASN1_SET_ANY.3d2i_ASN1_T61STRING.3d2i_ASN1_TIME.3d2i_ASN1_TYPE.3d2i_ASN1_UINTEGER.3d2i_ASN1_UNIVERSALSTRING.3d2i_ASN1_UTCTIME.3d2i_ASN1_UTF8STRING.3d2i_ASN1_VISIBLESTRING.3d2i_ASRange.3d2i_AUTHORITY_INFO_ACCESS.3d2i_AUTHORITY_KEYID.3d2i_AutoPrivateKey.3d2i_BASIC_CONSTRAINTS.3d2i_CERTIFICATEPOLICIES.3d2i_CMS_ContentInfo.3d2i_CMS_ReceiptRequest.3d2i_CMS_bio.3d2i_CRL_DIST_POINTS.3d2i_DHparams.3d2i_DHxparams.3d2i_DIRECTORYSTRING.3d2i_DISPLAYTEXT.3d2i_DIST_POINT.3d2i_DIST_POINT_NAME.3d2i_DSAPrivateKey.3d2i_DSAPrivateKey_bio.3d2i_DSAPrivateKey_fp.3d2i_DSAPublicKey.3d2i_DSA_PUBKEY.3d2i_DSA_PUBKEY_bio.3d2i_DSA_PUBKEY_fp.3d2i_DSA_SIG.3d2i_DSAparams.3d2i_ECDSA_SIG.3d2i_ECPKParameters.3d2i_ECParameters.3d2i_ECPrivateKey.3d2i_ECPrivateKey_bio.3d2i_ECPrivateKey_fp.3d2i_EC_PUBKEY.3d2i_EC_PUBKEY_bio.3d2i_EC_PUBKEY_fp.3d2i_EDIPARTYNAME.3d2i_ESS_CERT_ID.3d2i_ESS_ISSUER_SERIAL.3d2i_ESS_SIGNING_CERT.3d2i_EXTENDED_KEY_USAGE.3d2i_GENERAL_NAME.3d2i_GENERAL_NAMES.3d2i_IPAddressChoice.3d2i_IPAddressFamily.3d2i_IPAddressOrRange.3d2i_IPAddressRange.3d2i_ISSUING_DIST_POINT.3d2i_NAMING_AUTHORITY.3d2i_NETSCAPE_CERT_SEQUENCE.3d2i_NETSCAPE_SPKAC.3d2i_NETSCAPE_SPKI.3d2i_NOTICEREF.3d2i_OCSP_BASICRESP.3d2i_OCSP_CERTID.3d2i_OCSP_CERTSTATUS.3d2i_OCSP_CRLID.3d2i_OCSP_ONEREQ.3d2i_OCSP_REQINFO.3d2i_OCSP_REQUEST.3d2i_OCSP_RESPBYTES.3d2i_OCSP_RESPDATA.3d2i_OCSP_RESPID.3d2i_OCSP_RESPONSE.3d2i_OCSP_REVOKEDINFO.3d2i_OCSP_SERVICELOC.3d2i_OCSP_SIGNATURE.3d2i_OCSP_SINGLERESP.3d2i_OTHERNAME.3d2i_PBE2PARAM.3d2i_PBEPARAM.3d2i_PBKDF2PARAM.3d2i_PKCS12.3d2i_PKCS12_BAGS.3d2i_PKCS12_MAC_DATA.3d2i_PKCS12_SAFEBAG.3d2i_PKCS12_bio.3d2i_PKCS12_fp.3d2i_PKCS7.3d2i_PKCS7_DIGEST.3d2i_PKCS7_ENCRYPT.3d2i_PKCS7_ENC_CONTENT.3d2i_PKCS7_ENVELOPE.3d2i_PKCS7_ISSUER_AND_SERIAL.3d2i_PKCS7_RECIP_INFO.3d2i_PKCS7_SIGNED.3d2i_PKCS7_SIGNER_INFO.3d2i_PKCS7_SIGN_ENVELOPE.3d2i_PKCS7_bio.3d2i_PKCS7_fp.3d2i_PKCS8PrivateKey_bio.3d2i_PKCS8PrivateKey_fp.3d2i_PKCS8_PRIV_KEY_INFO.3d2i_PKCS8_PRIV_KEY_INFO_bio.3d2i_PKCS8_PRIV_KEY_INFO_fp.3d2i_PKCS8_bio.3d2i_PKCS8_fp.3d2i_PKEY_USAGE_PERIOD.3d2i_POLICYINFO.3d2i_POLICYQUALINFO.3d2i_PROFESSION_INFO.3d2i_PROXY_CERT_INFO_EXTENSION.3d2i_PROXY_POLICY.3d2i_PUBKEY.3d2i_PUBKEY_bio.3d2i_PUBKEY_fp.3d2i_PrivateKey.3d2i_PrivateKey_bio.3d2i_PrivateKey_fp.3d2i_PublicKey.3d2i_RSAPrivateKey.3d2i_RSAPrivateKey_bio.3d2i_RSAPrivateKey_fp.3d2i_RSAPublicKey.3d2i_RSAPublicKey_bio.3d2i_RSAPublicKey_fp.3d2i_RSA_OAEP_PARAMS.3d2i_RSA_PSS_PARAMS.3d2i_RSA_PUBKEY.3d2i_RSA_PUBKEY_bio.3d2i_RSA_PUBKEY_fp.3d2i_SCRYPT_PARAMS.3d2i_SCT_LIST.3d2i_SSL_SESSION.3d2i_SXNET.3d2i_SXNETID.3d2i_TS_ACCURACY.3d2i_TS_MSG_IMPRINT.3d2i_TS_MSG_IMPRINT_bio.3d2i_TS_MSG_IMPRINT_fp.3d2i_TS_REQ.3d2i_TS_REQ_bio.3d2i_TS_REQ_fp.3d2i_TS_RESP.3d2i_TS_RESP_bio.3d2i_TS_RESP_fp.3d2i_TS_STATUS_INFO.3d2i_TS_TST_INFO.3d2i_TS_TST_INFO_bio.3d2i_TS_TST_INFO_fp.3d2i_USERNOTICE.3d2i_X509.3d2i_X509_ALGOR.3d2i_X509_ALGORS.3d2i_X509_ATTRIBUTE.3d2i_X509_AUX.3d2i_X509_CERT_AUX.3d2i_X509_CINF.3d2i_X509_CRL.3d2i_X509_CRL_INFO.3d2i_X509_CRL_bio.3d2i_X509_CRL_fp.3d2i_X509_EXTENSION.3d2i_X509_EXTENSIONS.3d2i_X509_NAME.3d2i_X509_NAME_ENTRY.3d2i_X509_PUBKEY.3d2i_X509_REQ.3d2i_X509_REQ_INFO.3d2i_X509_REQ_bio.3d2i_X509_REQ_fp.3d2i_X509_REVOKED.3d2i_X509_SIG.3d2i_X509_VAL.3d2i_X509_bio.3d2i_X509_fp.3i2d_ACCESS_DESCRIPTION.3i2d_ADMISSIONS.3i2d_ADMISSION_SYNTAX.3i2d_ASIdOrRange.3i2d_ASIdentifierChoice.3i2d_ASIdentifiers.3i2d_ASN1_BIT_STRING.3i2d_ASN1_BMPSTRING.3i2d_ASN1_ENUMERATED.3i2d_ASN1_GENERALIZEDTIME.3i2d_ASN1_GENERALSTRING.3i2d_ASN1_IA5STRING.3i2d_ASN1_INTEGER.3i2d_ASN1_NULL.3i2d_ASN1_OBJECT.3i2d_ASN1_OCTET_STRING.3i2d_ASN1_PRINTABLE.3i2d_ASN1_PRINTABLESTRING.3i2d_ASN1_SEQUENCE_ANY.3i2d_ASN1_SET_ANY.3i2d_ASN1_T61STRING.3i2d_ASN1_TIME.3i2d_ASN1_TYPE.3i2d_ASN1_UNIVERSALSTRING.3i2d_ASN1_UTCTIME.3i2d_ASN1_UTF8STRING.3i2d_ASN1_VISIBLESTRING.3i2d_ASN1_bio_stream.3i2d_ASRange.3i2d_AUTHORITY_INFO_ACCESS.3i2d_AUTHORITY_KEYID.3i2d_BASIC_CONSTRAINTS.3i2d_CERTIFICATEPOLICIES.3i2d_CMS_ContentInfo.3i2d_CMS_ReceiptRequest.3i2d_CMS_bio.3i2d_CMS_bio_stream.3i2d_CRL_DIST_POINTS.3i2d_DHparams.3i2d_DHxparams.3i2d_DIRECTORYSTRING.3i2d_DISPLAYTEXT.3i2d_DIST_POINT.3i2d_DIST_POINT_NAME.3i2d_DSAPrivateKey.3i2d_DSAPrivateKey_bio.3i2d_DSAPrivateKey_fp.3i2d_DSAPublicKey.3i2d_DSA_PUBKEY.3i2d_DSA_PUBKEY_bio.3i2d_DSA_PUBKEY_fp.3i2d_DSA_SIG.3i2d_DSAparams.3i2d_ECDSA_SIG.3i2d_ECPKParameters.3i2d_ECParameters.3i2d_ECPrivateKey.3i2d_ECPrivateKey_bio.3i2d_ECPrivateKey_fp.3i2d_EC_PUBKEY.3i2d_EC_PUBKEY_bio.3i2d_EC_PUBKEY_fp.3i2d_EDIPARTYNAME.3i2d_ESS_CERT_ID.3i2d_ESS_ISSUER_SERIAL.3i2d_ESS_SIGNING_CERT.3i2d_EXTENDED_KEY_USAGE.3i2d_GENERAL_NAME.3i2d_GENERAL_NAMES.3i2d_IPAddressChoice.3i2d_IPAddressFamily.3i2d_IPAddressOrRange.3i2d_IPAddressRange.3i2d_ISSUING_DIST_POINT.3i2d_NAMING_AUTHORITY.3i2d_NETSCAPE_CERT_SEQUENCE.3i2d_NETSCAPE_SPKAC.3i2d_NETSCAPE_SPKI.3i2d_NOTICEREF.3i2d_OCSP_BASICRESP.3i2d_OCSP_CERTID.3i2d_OCSP_CERTSTATUS.3i2d_OCSP_CRLID.3i2d_OCSP_ONEREQ.3i2d_OCSP_REQINFO.3i2d_OCSP_REQUEST.3i2d_OCSP_RESPBYTES.3i2d_OCSP_RESPDATA.3i2d_OCSP_RESPID.3i2d_OCSP_RESPONSE.3i2d_OCSP_REVOKEDINFO.3i2d_OCSP_SERVICELOC.3i2d_OCSP_SIGNATURE.3i2d_OCSP_SINGLERESP.3i2d_OTHERNAME.3i2d_PBE2PARAM.3i2d_PBEPARAM.3i2d_PBKDF2PARAM.3i2d_PKCS12.3i2d_PKCS12_BAGS.3i2d_PKCS12_MAC_DATA.3i2d_PKCS12_SAFEBAG.3i2d_PKCS12_bio.3i2d_PKCS12_fp.3i2d_PKCS7.3i2d_PKCS7_DIGEST.3i2d_PKCS7_ENCRYPT.3i2d_PKCS7_ENC_CONTENT.3i2d_PKCS7_ENVELOPE.3i2d_PKCS7_ISSUER_AND_SERIAL.3i2d_PKCS7_NDEF.3i2d_PKCS7_RECIP_INFO.3i2d_PKCS7_SIGNED.3i2d_PKCS7_SIGNER_INFO.3i2d_PKCS7_SIGN_ENVELOPE.3i2d_PKCS7_bio.3i2d_PKCS7_bio_stream.3i2d_PKCS7_fp.3i2d_PKCS8PrivateKeyInfo_bio.3i2d_PKCS8PrivateKeyInfo_fp.3i2d_PKCS8PrivateKey_bio.3i2d_PKCS8PrivateKey_fp.3i2d_PKCS8PrivateKey_nid_bio.3i2d_PKCS8PrivateKey_nid_fp.3i2d_PKCS8_PRIV_KEY_INFO.3i2d_PKCS8_PRIV_KEY_INFO_bio.3i2d_PKCS8_PRIV_KEY_INFO_fp.3i2d_PKCS8_bio.3i2d_PKCS8_fp.3i2d_PKEY_USAGE_PERIOD.3i2d_POLICYINFO.3i2d_POLICYQUALINFO.3i2d_PROFESSION_INFO.3i2d_PROXY_CERT_INFO_EXTENSION.3i2d_PROXY_POLICY.3i2d_PUBKEY.3i2d_PUBKEY_bio.3i2d_PUBKEY_fp.3i2d_PrivateKey.3i2d_PublicKey.3i2d_RSAPrivateKey.3i2d_RSAPrivateKey_bio.3i2d_RSAPrivateKey_fp.3i2d_RSAPublicKey.3i2d_RSAPublicKey_bio.3i2d_RSAPublicKey_fp.3i2d_RSA_OAEP_PARAMS.3i2d_RSA_PSS_PARAMS.3i2d_RSA_PUBKEY.3i2d_RSA_PUBKEY_bio.3i2d_RSA_PUBKEY_fp.3i2d_SCRYPT_PARAMS.3i2d_SCT_LIST.3i2d_SSL_SESSION.3i2d_SXNET.3i2d_SXNETID.3i2d_TS_ACCURACY.3i2d_TS_MSG_IMPRINT.3i2d_TS_MSG_IMPRINT_bio.3i2d_TS_MSG_IMPRINT_fp.3i2d_TS_REQ.3i2d_TS_REQ_bio.3i2d_TS_REQ_fp.3i2d_TS_RESP.3i2d_TS_RESP_bio.3i2d_TS_RESP_fp.3i2d_TS_STATUS_INFO.3i2d_TS_TST_INFO.3i2d_TS_TST_INFO_bio.3i2d_TS_TST_INFO_fp.3i2d_USERNOTICE.3i2d_X509.3i2d_X509_ALGOR.3i2d_X509_ALGORS.3i2d_X509_ATTRIBUTE.3i2d_X509_AUX.3i2d_X509_CERT_AUX.3i2d_X509_CINF.3i2d_X509_CRL.3i2d_X509_CRL_INFO.3i2d_X509_CRL_bio.3i2d_X509_CRL_fp.3i2d_X509_EXTENSION.3i2d_X509_EXTENSIONS.3i2d_X509_NAME.3i2d_X509_NAME_ENTRY.3i2d_X509_PUBKEY.3i2d_X509_REQ.3i2d_X509_REQ_INFO.3i2d_X509_REQ_bio.3i2d_X509_REQ_fp.3i2d_X509_REVOKED.3i2d_X509_SIG.3i2d_X509_VAL.3i2d_X509_bio.3i2d_X509_fp.3i2d_re_X509_CRL_tbs.3i2d_re_X509_REQ_tbs.3i2d_re_X509_tbs.3i2o_SCT.3i2o_SCT_LIST.3i2t_ASN1_OBJECT.3lh_TYPE_delete.3lh_TYPE_doall.3lh_TYPE_doall_arg.3lh_TYPE_error.3lh_TYPE_free.3lh_TYPE_insert.3lh_TYPE_new.3lh_TYPE_retrieve.3o2i_SCT.3o2i_SCT_LIST.3pem_password_cb.3sk_TYPE_deep_copy.3sk_TYPE_delete.3sk_TYPE_delete_ptr.3sk_TYPE_dup.3sk_TYPE_find.3sk_TYPE_find_ex.3sk_TYPE_free.3sk_TYPE_insert.3sk_TYPE_is_sorted.3sk_TYPE_new.3sk_TYPE_new_null.3sk_TYPE_new_reserve.3sk_TYPE_num.3sk_TYPE_pop.3sk_TYPE_pop_free.3sk_TYPE_push.3sk_TYPE_reserve.3sk_TYPE_set.3sk_TYPE_set_cmp_func.3sk_TYPE_shift.3sk_TYPE_sort.3sk_TYPE_unshift.3sk_TYPE_value.3sk_TYPE_zero.3ssl_ct_validation_cb.3
man5
man7
ssl
x86_64
usr
local
bin
include
openssl
aes.hasn1.hasn1_mac.hasn1err.hasn1t.hasync.hasyncerr.hbio.hbioerr.hblowfish.hbn.hbnerr.hbuffer.hbuffererr.hcamellia.hcast.hcmac.hcms.hcmserr.hcomp.hcomperr.hconf.hconf_api.hconferr.hcrypto.hcryptoerr.hct.hcterr.hdes.hdh.hdherr.hdsa.hdsaerr.hdtls1.he_os2.hebcdic.hec.hecdh.hecdsa.hecerr.hengine.hengineerr.herr.hevp.hevperr.hhmac.hidea.hkdf.hkdferr.hlhash.hmd2.hmd4.hmd5.hmdc2.hmodes.hobj_mac.hobjects.hobjectserr.hocsp.hocsperr.hopensslconf.hopensslv.hossl_typ.hpem.hpem2.hpemerr.hpkcs12.hpkcs12err.hpkcs7.hpkcs7err.hrand.hrand_drbg.hranderr.hrc2.hrc4.hrc5.hripemd.hrsa.hrsaerr.hsafestack.hseed.hsha.hsrp.hsrtp.hssl.hssl2.hssl3.hsslerr.hstack.hstore.hstoreerr.hsymhacks.htls1.hts.htserr.htxt_db.hui.huierr.hwhrlpool.hx509.hx509_vfy.hx509err.hx509v3.hx509v3err.h
lib
pkgconfig
share
doc
openssl
html
man1
CA.pl.htmlasn1parse.htmlc_rehash.htmlca.htmlciphers.htmlcms.htmlcrl.htmlcrl2pkcs7.htmldgst.htmldhparam.htmldsa.htmldsaparam.htmlec.htmlecparam.htmlenc.htmlengine.htmlerrstr.htmlgendsa.htmlgenpkey.htmlgenrsa.htmllist.htmlnseq.htmlocsp.htmlopenssl-asn1parse.htmlopenssl-c_rehash.htmlopenssl-ca.htmlopenssl-ciphers.htmlopenssl-cms.htmlopenssl-crl.htmlopenssl-crl2pkcs7.htmlopenssl-dgst.htmlopenssl-dhparam.htmlopenssl-dsa.htmlopenssl-dsaparam.htmlopenssl-ec.htmlopenssl-ecparam.htmlopenssl-enc.htmlopenssl-engine.htmlopenssl-errstr.htmlopenssl-gendsa.htmlopenssl-genpkey.htmlopenssl-genrsa.htmlopenssl-list.htmlopenssl-nseq.htmlopenssl-ocsp.htmlopenssl-passwd.htmlopenssl-pkcs12.htmlopenssl-pkcs7.htmlopenssl-pkcs8.htmlopenssl-pkey.htmlopenssl-pkeyparam.htmlopenssl-pkeyutl.htmlopenssl-prime.htmlopenssl-rand.htmlopenssl-rehash.htmlopenssl-req.htmlopenssl-rsa.htmlopenssl-rsautl.htmlopenssl-s_client.htmlopenssl-s_server.htmlopenssl-s_time.htmlopenssl-sess_id.htmlopenssl-smime.htmlopenssl-speed.htmlopenssl-spkac.htmlopenssl-srp.htmlopenssl-storeutl.htmlopenssl-ts.htmlopenssl-tsget.htmlopenssl-verify.htmlopenssl-version.htmlopenssl-x509.htmlopenssl.htmlpasswd.htmlpkcs12.htmlpkcs7.htmlpkcs8.htmlpkey.htmlpkeyparam.htmlpkeyutl.htmlprime.htmlrand.htmlrehash.htmlreq.htmlrsa.htmlrsautl.htmls_client.htmls_server.htmls_time.htmlsess_id.htmlsmime.htmlspeed.htmlspkac.htmlsrp.htmlstoreutl.htmlts.htmltsget.htmlverify.htmlversion.htmlx509.html
man3
ACCESS_DESCRIPTION_free.htmlACCESS_DESCRIPTION_new.htmlADMISSIONS.htmlADMISSIONS_free.htmlADMISSIONS_get0_admissionAuthority.htmlADMISSIONS_get0_namingAuthority.htmlADMISSIONS_get0_professionInfos.htmlADMISSIONS_new.htmlADMISSIONS_set0_admissionAuthority.htmlADMISSIONS_set0_namingAuthority.htmlADMISSIONS_set0_professionInfos.htmlADMISSION_SYNTAX.htmlADMISSION_SYNTAX_free.htmlADMISSION_SYNTAX_get0_admissionAuthority.htmlADMISSION_SYNTAX_get0_contentsOfAdmissions.htmlADMISSION_SYNTAX_new.htmlADMISSION_SYNTAX_set0_admissionAuthority.htmlADMISSION_SYNTAX_set0_contentsOfAdmissions.htmlASIdOrRange_free.htmlASIdOrRange_new.htmlASIdentifierChoice_free.htmlASIdentifierChoice_new.htmlASIdentifiers_free.htmlASIdentifiers_new.htmlASN1_ENUMERATED_get.htmlASN1_ENUMERATED_get_int64.htmlASN1_ENUMERATED_set.htmlASN1_ENUMERATED_set_int64.htmlASN1_ENUMERATED_to_BN.htmlASN1_GENERALIZEDTIME_adj.htmlASN1_GENERALIZEDTIME_check.htmlASN1_GENERALIZEDTIME_print.htmlASN1_GENERALIZEDTIME_set.htmlASN1_GENERALIZEDTIME_set_string.htmlASN1_INTEGER_get.htmlASN1_INTEGER_get_int64.htmlASN1_INTEGER_get_uint64.htmlASN1_INTEGER_set.htmlASN1_INTEGER_set_int64.htmlASN1_INTEGER_set_uint64.htmlASN1_INTEGER_to_BN.htmlASN1_ITEM.htmlASN1_ITEM_get.htmlASN1_ITEM_lookup.htmlASN1_OBJECT_free.htmlASN1_OBJECT_new.htmlASN1_STRING_TABLE.htmlASN1_STRING_TABLE_add.htmlASN1_STRING_TABLE_cleanup.htmlASN1_STRING_TABLE_get.htmlASN1_STRING_cmp.htmlASN1_STRING_data.htmlASN1_STRING_dup.htmlASN1_STRING_free.htmlASN1_STRING_get0_data.htmlASN1_STRING_length.htmlASN1_STRING_new.htmlASN1_STRING_print.htmlASN1_STRING_print_ex.htmlASN1_STRING_print_ex_fp.htmlASN1_STRING_set.htmlASN1_STRING_to_UTF8.htmlASN1_STRING_type.htmlASN1_STRING_type_new.htmlASN1_TIME_adj.htmlASN1_TIME_check.htmlASN1_TIME_cmp_time_t.htmlASN1_TIME_compare.htmlASN1_TIME_diff.htmlASN1_TIME_normalize.htmlASN1_TIME_print.htmlASN1_TIME_set.htmlASN1_TIME_set_string.htmlASN1_TIME_set_string_X509.htmlASN1_TIME_to_generalizedtime.htmlASN1_TIME_to_tm.htmlASN1_TYPE_cmp.htmlASN1_TYPE_get.htmlASN1_TYPE_pack_sequence.htmlASN1_TYPE_set.htmlASN1_TYPE_set1.htmlASN1_TYPE_unpack_sequence.htmlASN1_UTCTIME_adj.htmlASN1_UTCTIME_check.htmlASN1_UTCTIME_cmp_time_t.htmlASN1_UTCTIME_print.htmlASN1_UTCTIME_set.htmlASN1_UTCTIME_set_string.htmlASN1_add_oid_module.htmlASN1_generate_nconf.htmlASN1_generate_v3.htmlASN1_tag2str.htmlASRange_free.htmlASRange_new.htmlASYNC_WAIT_CTX_clear_fd.htmlASYNC_WAIT_CTX_free.htmlASYNC_WAIT_CTX_get_all_fds.htmlASYNC_WAIT_CTX_get_changed_fds.htmlASYNC_WAIT_CTX_get_fd.htmlASYNC_WAIT_CTX_new.htmlASYNC_WAIT_CTX_set_wait_fd.htmlASYNC_block_pause.htmlASYNC_cleanup_thread.htmlASYNC_get_current_job.htmlASYNC_get_wait_ctx.htmlASYNC_init_thread.htmlASYNC_is_capable.htmlASYNC_pause_job.htmlASYNC_start_job.htmlASYNC_unblock_pause.htmlAUTHORITY_INFO_ACCESS_free.htmlAUTHORITY_INFO_ACCESS_new.htmlAUTHORITY_KEYID_free.htmlAUTHORITY_KEYID_new.htmlBASIC_CONSTRAINTS_free.htmlBASIC_CONSTRAINTS_new.htmlBF_cbc_encrypt.htmlBF_cfb64_encrypt.htmlBF_decrypt.htmlBF_ecb_encrypt.htmlBF_encrypt.htmlBF_ofb64_encrypt.htmlBF_options.htmlBF_set_key.htmlBIO_ADDR.htmlBIO_ADDRINFO.htmlBIO_ADDRINFO_address.htmlBIO_ADDRINFO_family.htmlBIO_ADDRINFO_free.htmlBIO_ADDRINFO_next.htmlBIO_ADDRINFO_protocol.htmlBIO_ADDRINFO_socktype.htmlBIO_ADDR_clear.htmlBIO_ADDR_family.htmlBIO_ADDR_free.htmlBIO_ADDR_hostname_string.htmlBIO_ADDR_new.htmlBIO_ADDR_path_string.htmlBIO_ADDR_rawaddress.htmlBIO_ADDR_rawmake.htmlBIO_ADDR_rawport.htmlBIO_ADDR_service_string.htmlBIO_accept_ex.htmlBIO_append_filename.htmlBIO_bind.htmlBIO_callback_ctrl.htmlBIO_callback_fn.htmlBIO_callback_fn_ex.htmlBIO_closesocket.htmlBIO_connect.htmlBIO_ctrl.htmlBIO_ctrl_get_read_request.htmlBIO_ctrl_get_write_guarantee.htmlBIO_ctrl_pending.htmlBIO_ctrl_reset_read_request.htmlBIO_ctrl_wpending.htmlBIO_debug_callback.htmlBIO_destroy_bio_pair.htmlBIO_do_accept.htmlBIO_do_connect.htmlBIO_do_handshake.htmlBIO_eof.htmlBIO_f_base64.htmlBIO_f_buffer.htmlBIO_f_cipher.htmlBIO_f_md.htmlBIO_f_null.htmlBIO_f_ssl.htmlBIO_find_type.htmlBIO_flush.htmlBIO_free.htmlBIO_free_all.htmlBIO_get_accept_ip_family.htmlBIO_get_accept_name.htmlBIO_get_accept_port.htmlBIO_get_bind_mode.htmlBIO_get_buffer_num_lines.htmlBIO_get_callback.htmlBIO_get_callback_arg.htmlBIO_get_callback_ex.htmlBIO_get_cipher_ctx.htmlBIO_get_cipher_status.htmlBIO_get_close.htmlBIO_get_conn_address.htmlBIO_get_conn_hostname.htmlBIO_get_conn_ip_family.htmlBIO_get_conn_port.htmlBIO_get_data.htmlBIO_get_ex_data.htmlBIO_get_ex_new_index.htmlBIO_get_fd.htmlBIO_get_fp.htmlBIO_get_info_callback.htmlBIO_get_init.htmlBIO_get_md.htmlBIO_get_md_ctx.htmlBIO_get_mem_data.htmlBIO_get_mem_ptr.htmlBIO_get_new_index.htmlBIO_get_num_renegotiates.htmlBIO_get_peer_name.htmlBIO_get_peer_port.htmlBIO_get_read_request.htmlBIO_get_retry_BIO.htmlBIO_get_retry_reason.htmlBIO_get_shutdown.htmlBIO_get_ssl.htmlBIO_get_write_buf_size.htmlBIO_get_write_guarantee.htmlBIO_gets.htmlBIO_hostserv_priorities.htmlBIO_info_cb.htmlBIO_int_ctrl.htmlBIO_listen.htmlBIO_lookup.htmlBIO_lookup_ex.htmlBIO_lookup_type.htmlBIO_make_bio_pair.htmlBIO_meth_free.htmlBIO_meth_get_callback_ctrl.htmlBIO_meth_get_create.htmlBIO_meth_get_ctrl.htmlBIO_meth_get_destroy.htmlBIO_meth_get_gets.htmlBIO_meth_get_puts.htmlBIO_meth_get_read.htmlBIO_meth_get_read_ex.htmlBIO_meth_get_write.htmlBIO_meth_get_write_ex.htmlBIO_meth_new.htmlBIO_meth_set_callback_ctrl.htmlBIO_meth_set_create.htmlBIO_meth_set_ctrl.htmlBIO_meth_set_destroy.htmlBIO_meth_set_gets.htmlBIO_meth_set_puts.htmlBIO_meth_set_read.htmlBIO_meth_set_read_ex.htmlBIO_meth_set_write.htmlBIO_meth_set_write_ex.htmlBIO_method_type.htmlBIO_new.htmlBIO_new_CMS.htmlBIO_new_accept.htmlBIO_new_bio_pair.htmlBIO_new_buffer_ssl_connect.htmlBIO_new_connect.htmlBIO_new_fd.htmlBIO_new_file.htmlBIO_new_fp.htmlBIO_new_mem_buf.htmlBIO_new_socket.htmlBIO_new_ssl.htmlBIO_new_ssl_connect.htmlBIO_next.htmlBIO_parse_hostserv.htmlBIO_pending.htmlBIO_pop.htmlBIO_printf.htmlBIO_ptr_ctrl.htmlBIO_push.htmlBIO_puts.htmlBIO_read.htmlBIO_read_ex.htmlBIO_read_filename.htmlBIO_reset.htmlBIO_retry_type.htmlBIO_rw_filename.htmlBIO_s_accept.htmlBIO_s_bio.htmlBIO_s_connect.htmlBIO_s_fd.htmlBIO_s_file.htmlBIO_s_mem.htmlBIO_s_null.htmlBIO_s_secmem.htmlBIO_s_socket.htmlBIO_seek.htmlBIO_set_accept_bios.htmlBIO_set_accept_ip_family.htmlBIO_set_accept_name.htmlBIO_set_accept_port.htmlBIO_set_bind_mode.htmlBIO_set_buffer_read_data.htmlBIO_set_buffer_size.htmlBIO_set_callback.htmlBIO_set_callback_arg.htmlBIO_set_callback_ex.htmlBIO_set_cipher.htmlBIO_set_close.htmlBIO_set_conn_address.htmlBIO_set_conn_hostname.htmlBIO_set_conn_ip_family.htmlBIO_set_conn_port.htmlBIO_set_data.htmlBIO_set_ex_data.htmlBIO_set_fd.htmlBIO_set_fp.htmlBIO_set_info_callback.htmlBIO_set_init.htmlBIO_set_md.htmlBIO_set_mem_buf.htmlBIO_set_mem_eof_return.htmlBIO_set_nbio.htmlBIO_set_nbio_accept.htmlBIO_set_next.htmlBIO_set_read_buffer_size.htmlBIO_set_retry_reason.htmlBIO_set_shutdown.htmlBIO_set_ssl.htmlBIO_set_ssl_mode.htmlBIO_set_ssl_renegotiate_bytes.htmlBIO_set_ssl_renegotiate_timeout.htmlBIO_set_write_buf_size.htmlBIO_set_write_buffer_size.htmlBIO_should_io_special.htmlBIO_should_read.htmlBIO_should_retry.htmlBIO_should_write.htmlBIO_shutdown_wr.htmlBIO_snprintf.htmlBIO_socket.htmlBIO_ssl_copy_session_id.htmlBIO_ssl_shutdown.htmlBIO_tell.htmlBIO_up_ref.htmlBIO_vfree.htmlBIO_vprintf.htmlBIO_vsnprintf.htmlBIO_wpending.htmlBIO_write.htmlBIO_write_ex.htmlBIO_write_filename.htmlBN_BLINDING_convert.htmlBN_BLINDING_convert_ex.htmlBN_BLINDING_create_param.htmlBN_BLINDING_free.htmlBN_BLINDING_get_flags.htmlBN_BLINDING_invert.htmlBN_BLINDING_invert_ex.htmlBN_BLINDING_is_current_thread.htmlBN_BLINDING_lock.htmlBN_BLINDING_new.htmlBN_BLINDING_set_current_thread.htmlBN_BLINDING_set_flags.htmlBN_BLINDING_unlock.htmlBN_BLINDING_update.htmlBN_CTX_end.htmlBN_CTX_free.htmlBN_CTX_get.htmlBN_CTX_new.htmlBN_CTX_secure_new.htmlBN_CTX_start.htmlBN_GENCB_call.htmlBN_GENCB_free.htmlBN_GENCB_get_arg.htmlBN_GENCB_new.htmlBN_GENCB_set.htmlBN_GENCB_set_old.htmlBN_MONT_CTX_copy.htmlBN_MONT_CTX_free.htmlBN_MONT_CTX_new.htmlBN_MONT_CTX_set.htmlBN_RECP_CTX_free.htmlBN_RECP_CTX_new.htmlBN_RECP_CTX_set.htmlBN_abs_is_word.htmlBN_add.htmlBN_add_word.htmlBN_bin2bn.htmlBN_bn2bin.htmlBN_bn2binpad.htmlBN_bn2dec.htmlBN_bn2hex.htmlBN_bn2lebinpad.htmlBN_bn2mpi.htmlBN_clear.htmlBN_clear_bit.htmlBN_clear_free.htmlBN_cmp.htmlBN_copy.htmlBN_dec2bn.htmlBN_div.htmlBN_div_recp.htmlBN_div_word.htmlBN_dup.htmlBN_exp.htmlBN_free.htmlBN_from_montgomery.htmlBN_gcd.htmlBN_generate_prime.htmlBN_generate_prime_ex.htmlBN_get0_nist_prime_192.htmlBN_get0_nist_prime_224.htmlBN_get0_nist_prime_256.htmlBN_get0_nist_prime_384.htmlBN_get0_nist_prime_521.htmlBN_get_rfc2409_prime_1024.htmlBN_get_rfc2409_prime_768.htmlBN_get_rfc3526_prime_1536.htmlBN_get_rfc3526_prime_2048.htmlBN_get_rfc3526_prime_3072.htmlBN_get_rfc3526_prime_4096.htmlBN_get_rfc3526_prime_6144.htmlBN_get_rfc3526_prime_8192.htmlBN_get_word.htmlBN_hex2bn.htmlBN_is_bit_set.htmlBN_is_odd.htmlBN_is_one.htmlBN_is_prime.htmlBN_is_prime_ex.htmlBN_is_prime_fasttest.htmlBN_is_prime_fasttest_ex.htmlBN_is_word.htmlBN_is_zero.htmlBN_lebin2bn.htmlBN_lshift.htmlBN_lshift1.htmlBN_mask_bits.htmlBN_mod.htmlBN_mod_add.htmlBN_mod_exp.htmlBN_mod_inverse.htmlBN_mod_mul.htmlBN_mod_mul_montgomery.htmlBN_mod_mul_reciprocal.htmlBN_mod_sqr.htmlBN_mod_sqrt.htmlBN_mod_sub.htmlBN_mod_word.htmlBN_mpi2bn.htmlBN_mul.htmlBN_mul_word.htmlBN_new.htmlBN_nnmod.htmlBN_num_bits.htmlBN_num_bits_word.htmlBN_num_bytes.htmlBN_one.htmlBN_print.htmlBN_print_fp.htmlBN_priv_rand.htmlBN_priv_rand_range.htmlBN_pseudo_rand.htmlBN_pseudo_rand_range.htmlBN_rand.htmlBN_rand_range.htmlBN_rshift.htmlBN_rshift1.htmlBN_secure_new.htmlBN_security_bits.htmlBN_set_bit.htmlBN_set_word.htmlBN_sqr.htmlBN_sub.htmlBN_sub_word.htmlBN_swap.htmlBN_to_ASN1_ENUMERATED.htmlBN_to_ASN1_INTEGER.htmlBN_to_montgomery.htmlBN_ucmp.htmlBN_value_one.htmlBN_with_flags.htmlBN_zero.htmlBUF_MEM_free.htmlBUF_MEM_grow.htmlBUF_MEM_grow_clean.htmlBUF_MEM_new.htmlBUF_MEM_new_ex.htmlBUF_reverse.htmlCERTIFICATEPOLICIES_free.htmlCERTIFICATEPOLICIES_new.htmlCMS_ContentInfo_free.htmlCMS_ContentInfo_new.htmlCMS_ContentInfo_print_ctx.htmlCMS_ReceiptRequest_create0.htmlCMS_ReceiptRequest_free.htmlCMS_ReceiptRequest_get0_values.htmlCMS_ReceiptRequest_new.htmlCMS_RecipientInfo_decrypt.htmlCMS_RecipientInfo_encrypt.htmlCMS_RecipientInfo_kekri_get0_id.htmlCMS_RecipientInfo_kekri_id_cmp.htmlCMS_RecipientInfo_ktri_cert_cmp.htmlCMS_RecipientInfo_ktri_get0_signer_id.htmlCMS_RecipientInfo_set0_key.htmlCMS_RecipientInfo_set0_pkey.htmlCMS_RecipientInfo_type.htmlCMS_SignerInfo_cert_cmp.htmlCMS_SignerInfo_get0_signature.htmlCMS_SignerInfo_get0_signer_id.htmlCMS_SignerInfo_set1_signer_cert.htmlCMS_SignerInfo_sign.htmlCMS_add0_cert.htmlCMS_add0_crl.htmlCMS_add0_recipient_key.htmlCMS_add1_ReceiptRequest.htmlCMS_add1_cert.htmlCMS_add1_crl.htmlCMS_add1_recipient_cert.htmlCMS_add1_signer.htmlCMS_compress.htmlCMS_decrypt.htmlCMS_encrypt.htmlCMS_final.htmlCMS_get0_RecipientInfos.htmlCMS_get0_SignerInfos.htmlCMS_get0_content.htmlCMS_get0_eContentType.htmlCMS_get0_signers.htmlCMS_get0_type.htmlCMS_get1_ReceiptRequest.htmlCMS_get1_certs.htmlCMS_get1_crls.htmlCMS_set1_eContentType.htmlCMS_sign.htmlCMS_sign_receipt.htmlCMS_uncompress.htmlCMS_verify.htmlCMS_verify_receipt.htmlCONF_modules_finish.htmlCONF_modules_free.htmlCONF_modules_load.htmlCONF_modules_load_file.htmlCONF_modules_unload.htmlCRL_DIST_POINTS_free.htmlCRL_DIST_POINTS_new.htmlCRYPTO_EX_dup.htmlCRYPTO_EX_free.htmlCRYPTO_EX_new.htmlCRYPTO_THREAD_lock_free.htmlCRYPTO_THREAD_lock_new.htmlCRYPTO_THREAD_read_lock.htmlCRYPTO_THREAD_run_once.htmlCRYPTO_THREAD_unlock.htmlCRYPTO_THREAD_write_lock.htmlCRYPTO_atomic_add.htmlCRYPTO_clear_free.htmlCRYPTO_clear_realloc.htmlCRYPTO_free.htmlCRYPTO_free_ex_data.htmlCRYPTO_free_ex_index.htmlCRYPTO_get_alloc_counts.htmlCRYPTO_get_ex_data.htmlCRYPTO_get_ex_new_index.htmlCRYPTO_get_mem_functions.htmlCRYPTO_malloc.htmlCRYPTO_mem_ctrl.htmlCRYPTO_mem_debug_pop.htmlCRYPTO_mem_debug_push.htmlCRYPTO_mem_leaks.htmlCRYPTO_mem_leaks_cb.htmlCRYPTO_mem_leaks_fp.htmlCRYPTO_memcmp.htmlCRYPTO_new_ex_data.htmlCRYPTO_realloc.htmlCRYPTO_secure_allocated.htmlCRYPTO_secure_clear_free.htmlCRYPTO_secure_free.htmlCRYPTO_secure_malloc.htmlCRYPTO_secure_malloc_done.htmlCRYPTO_secure_malloc_init.htmlCRYPTO_secure_malloc_initialized.htmlCRYPTO_secure_used.htmlCRYPTO_secure_zalloc.htmlCRYPTO_set_ex_data.htmlCRYPTO_set_mem_debug.htmlCRYPTO_set_mem_functions.htmlCRYPTO_strdup.htmlCRYPTO_strndup.htmlCRYPTO_zalloc.htmlCTLOG_STORE_free.htmlCTLOG_STORE_get0_log_by_id.htmlCTLOG_STORE_load_default_file.htmlCTLOG_STORE_load_file.htmlCTLOG_STORE_new.htmlCTLOG_free.htmlCTLOG_get0_log_id.htmlCTLOG_get0_name.htmlCTLOG_get0_public_key.htmlCTLOG_new.htmlCTLOG_new_from_base64.htmlCT_POLICY_EVAL_CTX_free.htmlCT_POLICY_EVAL_CTX_get0_cert.htmlCT_POLICY_EVAL_CTX_get0_issuer.htmlCT_POLICY_EVAL_CTX_get0_log_store.htmlCT_POLICY_EVAL_CTX_get_time.htmlCT_POLICY_EVAL_CTX_new.htmlCT_POLICY_EVAL_CTX_set1_cert.htmlCT_POLICY_EVAL_CTX_set1_issuer.htmlCT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE.htmlCT_POLICY_EVAL_CTX_set_time.htmlDECLARE_ASN1_FUNCTIONS.htmlDECLARE_LHASH_OF.htmlDECLARE_PEM_rw.htmlDEFINE_SPECIAL_STACK_OF.htmlDEFINE_SPECIAL_STACK_OF_CONST.htmlDEFINE_STACK_OF.htmlDEFINE_STACK_OF_CONST.htmlDES_cbc_cksum.htmlDES_cfb64_encrypt.htmlDES_cfb_encrypt.htmlDES_crypt.htmlDES_ecb2_encrypt.htmlDES_ecb3_encrypt.htmlDES_ecb_encrypt.htmlDES_ede2_cbc_encrypt.htmlDES_ede2_cfb64_encrypt.htmlDES_ede2_ofb64_encrypt.htmlDES_ede3_cbc_encrypt.htmlDES_ede3_cfb64_encrypt.htmlDES_ede3_ofb64_encrypt.htmlDES_fcrypt.htmlDES_is_weak_key.htmlDES_key_sched.htmlDES_ncbc_encrypt.htmlDES_ofb64_encrypt.htmlDES_ofb_encrypt.htmlDES_pcbc_encrypt.htmlDES_quad_cksum.htmlDES_random_key.htmlDES_set_key.htmlDES_set_key_checked.htmlDES_set_key_unchecked.htmlDES_set_odd_parity.htmlDES_string_to_2keys.htmlDES_string_to_key.htmlDES_xcbc_encrypt.htmlDH_OpenSSL.htmlDH_bits.htmlDH_check.htmlDH_check_ex.htmlDH_check_params.htmlDH_check_params_ex.htmlDH_check_pub_key_ex.htmlDH_clear_flags.htmlDH_compute_key.htmlDH_compute_key_padded.htmlDH_free.htmlDH_generate_key.htmlDH_generate_parameters.htmlDH_generate_parameters_ex.htmlDH_get0_engine.htmlDH_get0_g.htmlDH_get0_key.htmlDH_get0_p.htmlDH_get0_pqg.htmlDH_get0_priv_key.htmlDH_get0_pub_key.htmlDH_get0_q.htmlDH_get_1024_160.htmlDH_get_2048_224.htmlDH_get_2048_256.htmlDH_get_default_method.htmlDH_get_ex_data.htmlDH_get_ex_new_index.htmlDH_get_length.htmlDH_get_nid.htmlDH_meth_dup.htmlDH_meth_free.htmlDH_meth_get0_app_data.htmlDH_meth_get0_name.htmlDH_meth_get_bn_mod_exp.htmlDH_meth_get_compute_key.htmlDH_meth_get_finish.htmlDH_meth_get_flags.htmlDH_meth_get_generate_key.htmlDH_meth_get_generate_params.htmlDH_meth_get_init.htmlDH_meth_new.htmlDH_meth_set0_app_data.htmlDH_meth_set1_name.htmlDH_meth_set_bn_mod_exp.htmlDH_meth_set_compute_key.htmlDH_meth_set_finish.htmlDH_meth_set_flags.htmlDH_meth_set_generate_key.htmlDH_meth_set_generate_params.htmlDH_meth_set_init.htmlDH_new.htmlDH_new_by_nid.htmlDH_new_method.htmlDH_security_bits.htmlDH_set0_key.htmlDH_set0_pqg.htmlDH_set_default_method.htmlDH_set_ex_data.htmlDH_set_flags.htmlDH_set_length.htmlDH_set_method.htmlDH_size.htmlDH_test_flags.htmlDHparams_print.htmlDHparams_print_fp.htmlDIRECTORYSTRING_free.htmlDIRECTORYSTRING_new.htmlDISPLAYTEXT_free.htmlDISPLAYTEXT_new.htmlDIST_POINT_NAME_free.htmlDIST_POINT_NAME_new.htmlDIST_POINT_free.htmlDIST_POINT_new.htmlDSA_OpenSSL.htmlDSA_SIG_free.htmlDSA_SIG_get0.htmlDSA_SIG_new.htmlDSA_SIG_set0.htmlDSA_bits.htmlDSA_clear_flags.htmlDSA_do_sign.htmlDSA_do_verify.htmlDSA_dup_DH.htmlDSA_free.htmlDSA_generate_key.htmlDSA_generate_parameters.htmlDSA_generate_parameters_ex.htmlDSA_get0_engine.htmlDSA_get0_g.htmlDSA_get0_key.htmlDSA_get0_p.htmlDSA_get0_pqg.htmlDSA_get0_priv_key.htmlDSA_get0_pub_key.htmlDSA_get0_q.htmlDSA_get_default_method.htmlDSA_get_ex_data.htmlDSA_get_ex_new_index.htmlDSA_meth_dup.htmlDSA_meth_free.htmlDSA_meth_get0_app_data.htmlDSA_meth_get0_name.htmlDSA_meth_get_bn_mod_exp.htmlDSA_meth_get_finish.htmlDSA_meth_get_flags.htmlDSA_meth_get_init.htmlDSA_meth_get_keygen.htmlDSA_meth_get_mod_exp.htmlDSA_meth_get_paramgen.htmlDSA_meth_get_sign.htmlDSA_meth_get_sign_setup.htmlDSA_meth_get_verify.htmlDSA_meth_new.htmlDSA_meth_set0_app_data.htmlDSA_meth_set1_name.htmlDSA_meth_set_bn_mod_exp.htmlDSA_meth_set_finish.htmlDSA_meth_set_flags.htmlDSA_meth_set_init.htmlDSA_meth_set_keygen.htmlDSA_meth_set_mod_exp.htmlDSA_meth_set_paramgen.htmlDSA_meth_set_sign.htmlDSA_meth_set_sign_setup.htmlDSA_meth_set_verify.htmlDSA_new.htmlDSA_new_method.htmlDSA_print.htmlDSA_print_fp.htmlDSA_security_bits.htmlDSA_set0_key.htmlDSA_set0_pqg.htmlDSA_set_default_method.htmlDSA_set_ex_data.htmlDSA_set_flags.htmlDSA_set_method.htmlDSA_sign.htmlDSA_sign_setup.htmlDSA_size.htmlDSA_test_flags.htmlDSA_verify.htmlDSAparams_dup.htmlDSAparams_print.htmlDSAparams_print_fp.htmlDTLS_client_method.htmlDTLS_get_data_mtu.htmlDTLS_method.htmlDTLS_server_method.htmlDTLS_set_timer_cb.htmlDTLS_timer_cb.htmlDTLSv1_2_client_method.htmlDTLSv1_2_method.htmlDTLSv1_2_server_method.htmlDTLSv1_client_method.htmlDTLSv1_listen.htmlDTLSv1_method.htmlDTLSv1_server_method.htmlECDH_get_ex_data.htmlECDH_get_ex_new_index.htmlECDH_set_ex_data.htmlECDSA_SIG_free.htmlECDSA_SIG_get0.htmlECDSA_SIG_get0_r.htmlECDSA_SIG_get0_s.htmlECDSA_SIG_new.htmlECDSA_SIG_set0.htmlECDSA_do_sign.htmlECDSA_do_sign_ex.htmlECDSA_do_verify.htmlECDSA_sign.htmlECDSA_sign_ex.htmlECDSA_sign_setup.htmlECDSA_size.htmlECDSA_verify.htmlECPARAMETERS_free.htmlECPARAMETERS_new.htmlECPKPARAMETERS_free.htmlECPKPARAMETERS_new.htmlECPKParameters_print.htmlECPKParameters_print_fp.htmlEC_GF2m_simple_method.htmlEC_GFp_mont_method.htmlEC_GFp_nist_method.htmlEC_GFp_nistp224_method.htmlEC_GFp_nistp256_method.htmlEC_GFp_nistp521_method.htmlEC_GFp_simple_method.htmlEC_GROUP_check.htmlEC_GROUP_check_discriminant.htmlEC_GROUP_clear_free.htmlEC_GROUP_cmp.htmlEC_GROUP_copy.htmlEC_GROUP_dup.htmlEC_GROUP_free.htmlEC_GROUP_get0_cofactor.htmlEC_GROUP_get0_generator.htmlEC_GROUP_get0_order.htmlEC_GROUP_get0_seed.htmlEC_GROUP_get_asn1_flag.htmlEC_GROUP_get_basis_type.htmlEC_GROUP_get_cofactor.htmlEC_GROUP_get_curve.htmlEC_GROUP_get_curve_GF2m.htmlEC_GROUP_get_curve_GFp.htmlEC_GROUP_get_curve_name.htmlEC_GROUP_get_degree.htmlEC_GROUP_get_ecparameters.htmlEC_GROUP_get_ecpkparameters.htmlEC_GROUP_get_order.htmlEC_GROUP_get_pentanomial_basis.htmlEC_GROUP_get_point_conversion_form.htmlEC_GROUP_get_seed_len.htmlEC_GROUP_get_trinomial_basis.htmlEC_GROUP_have_precompute_mult.htmlEC_GROUP_method_of.htmlEC_GROUP_new.htmlEC_GROUP_new_by_curve_name.htmlEC_GROUP_new_curve_GF2m.htmlEC_GROUP_new_curve_GFp.htmlEC_GROUP_new_from_ecparameters.htmlEC_GROUP_new_from_ecpkparameters.htmlEC_GROUP_order_bits.htmlEC_GROUP_precompute_mult.htmlEC_GROUP_set_asn1_flag.htmlEC_GROUP_set_curve.htmlEC_GROUP_set_curve_GF2m.htmlEC_GROUP_set_curve_GFp.htmlEC_GROUP_set_curve_name.htmlEC_GROUP_set_generator.htmlEC_GROUP_set_point_conversion_form.htmlEC_GROUP_set_seed.htmlEC_KEY_check_key.htmlEC_KEY_clear_flags.htmlEC_KEY_copy.htmlEC_KEY_decoded_from_explicit_params.htmlEC_KEY_dup.htmlEC_KEY_free.htmlEC_KEY_generate_key.htmlEC_KEY_get0_engine.htmlEC_KEY_get0_group.htmlEC_KEY_get0_private_key.htmlEC_KEY_get0_public_key.htmlEC_KEY_get_conv_form.htmlEC_KEY_get_enc_flags.htmlEC_KEY_get_ex_data.htmlEC_KEY_get_ex_new_index.htmlEC_KEY_get_flags.htmlEC_KEY_get_method.htmlEC_KEY_key2buf.htmlEC_KEY_new.htmlEC_KEY_new_by_curve_name.htmlEC_KEY_oct2key.htmlEC_KEY_oct2priv.htmlEC_KEY_precompute_mult.htmlEC_KEY_priv2buf.htmlEC_KEY_priv2oct.htmlEC_KEY_set_asn1_flag.htmlEC_KEY_set_conv_form.htmlEC_KEY_set_enc_flags.htmlEC_KEY_set_ex_data.htmlEC_KEY_set_flags.htmlEC_KEY_set_group.htmlEC_KEY_set_method.htmlEC_KEY_set_private_key.htmlEC_KEY_set_public_key.htmlEC_KEY_set_public_key_affine_coordinates.htmlEC_KEY_up_ref.htmlEC_METHOD_get_field_type.htmlEC_POINT_add.htmlEC_POINT_bn2point.htmlEC_POINT_clear_free.htmlEC_POINT_cmp.htmlEC_POINT_copy.htmlEC_POINT_dbl.htmlEC_POINT_dup.htmlEC_POINT_free.htmlEC_POINT_get_Jprojective_coordinates_GFp.htmlEC_POINT_get_affine_coordinates.htmlEC_POINT_get_affine_coordinates_GF2m.htmlEC_POINT_get_affine_coordinates_GFp.htmlEC_POINT_hex2point.htmlEC_POINT_invert.htmlEC_POINT_is_at_infinity.htmlEC_POINT_is_on_curve.htmlEC_POINT_make_affine.htmlEC_POINT_method_of.htmlEC_POINT_mul.htmlEC_POINT_new.htmlEC_POINT_oct2point.htmlEC_POINT_point2bn.htmlEC_POINT_point2buf.htmlEC_POINT_point2hex.htmlEC_POINT_point2oct.htmlEC_POINT_set_Jprojective_coordinates_GFp.htmlEC_POINT_set_affine_coordinates.htmlEC_POINT_set_affine_coordinates_GF2m.htmlEC_POINT_set_affine_coordinates_GFp.htmlEC_POINT_set_compressed_coordinates.htmlEC_POINT_set_compressed_coordinates_GF2m.htmlEC_POINT_set_compressed_coordinates_GFp.htmlEC_POINT_set_to_infinity.htmlEC_POINTs_make_affine.htmlEC_POINTs_mul.htmlEC_get_builtin_curves.htmlEDIPARTYNAME_free.htmlEDIPARTYNAME_new.htmlENGINE_add.htmlENGINE_add_conf_module.htmlENGINE_by_id.htmlENGINE_cleanup.htmlENGINE_cmd_is_executable.htmlENGINE_ctrl.htmlENGINE_ctrl_cmd.htmlENGINE_ctrl_cmd_string.htmlENGINE_finish.htmlENGINE_free.htmlENGINE_get_DH.htmlENGINE_get_DSA.htmlENGINE_get_RAND.htmlENGINE_get_RSA.htmlENGINE_get_cipher.htmlENGINE_get_cipher_engine.htmlENGINE_get_ciphers.htmlENGINE_get_cmd_defns.htmlENGINE_get_ctrl_function.htmlENGINE_get_default_DH.htmlENGINE_get_default_DSA.htmlENGINE_get_default_RAND.htmlENGINE_get_default_RSA.htmlENGINE_get_destroy_function.htmlENGINE_get_digest.htmlENGINE_get_digest_engine.htmlENGINE_get_digests.htmlENGINE_get_ex_data.htmlENGINE_get_ex_new_index.htmlENGINE_get_finish_function.htmlENGINE_get_first.htmlENGINE_get_flags.htmlENGINE_get_id.htmlENGINE_get_init_function.htmlENGINE_get_last.htmlENGINE_get_load_privkey_function.htmlENGINE_get_load_pubkey_function.htmlENGINE_get_name.htmlENGINE_get_next.htmlENGINE_get_prev.htmlENGINE_get_table_flags.htmlENGINE_init.htmlENGINE_load_builtin_engines.htmlENGINE_load_private_key.htmlENGINE_load_public_key.htmlENGINE_new.htmlENGINE_register_DH.htmlENGINE_register_DSA.htmlENGINE_register_RAND.htmlENGINE_register_RSA.htmlENGINE_register_all_DH.htmlENGINE_register_all_DSA.htmlENGINE_register_all_RAND.htmlENGINE_register_all_RSA.htmlENGINE_register_all_ciphers.htmlENGINE_register_all_complete.htmlENGINE_register_all_digests.htmlENGINE_register_ciphers.htmlENGINE_register_complete.htmlENGINE_register_digests.htmlENGINE_remove.htmlENGINE_set_DH.htmlENGINE_set_DSA.htmlENGINE_set_RAND.htmlENGINE_set_RSA.htmlENGINE_set_ciphers.htmlENGINE_set_cmd_defns.htmlENGINE_set_ctrl_function.htmlENGINE_set_default.htmlENGINE_set_default_DH.htmlENGINE_set_default_DSA.htmlENGINE_set_default_RAND.htmlENGINE_set_default_RSA.htmlENGINE_set_default_ciphers.htmlENGINE_set_default_digests.htmlENGINE_set_default_string.htmlENGINE_set_destroy_function.htmlENGINE_set_digests.htmlENGINE_set_ex_data.htmlENGINE_set_finish_function.htmlENGINE_set_flags.htmlENGINE_set_id.htmlENGINE_set_init_function.htmlENGINE_set_load_privkey_function.htmlENGINE_set_load_pubkey_function.htmlENGINE_set_name.htmlENGINE_set_table_flags.htmlENGINE_unregister_DH.htmlENGINE_unregister_DSA.htmlENGINE_unregister_RAND.htmlENGINE_unregister_RSA.htmlENGINE_unregister_ciphers.htmlENGINE_unregister_digests.htmlENGINE_up_ref.htmlERR_FATAL_ERROR.htmlERR_GET_FUNC.htmlERR_GET_LIB.htmlERR_GET_REASON.htmlERR_PACK.htmlERR_add_error_data.htmlERR_add_error_vdata.htmlERR_clear_error.htmlERR_error_string.htmlERR_error_string_n.htmlERR_free_strings.htmlERR_func_error_string.htmlERR_get_error.htmlERR_get_error_line.htmlERR_get_error_line_data.htmlERR_get_next_error_library.htmlERR_lib_error_string.htmlERR_load_crypto_strings.htmlERR_load_strings.htmlERR_peek_error.htmlERR_peek_error_line.htmlERR_peek_error_line_data.htmlERR_peek_last_error.htmlERR_peek_last_error_line.htmlERR_peek_last_error_line_data.htmlERR_pop_to_mark.htmlERR_print_errors.htmlERR_print_errors_cb.htmlERR_print_errors_fp.htmlERR_put_error.htmlERR_reason_error_string.htmlERR_remove_state.htmlERR_remove_thread_state.htmlERR_set_mark.htmlESS_CERT_ID_dup.htmlESS_CERT_ID_free.htmlESS_CERT_ID_new.htmlESS_ISSUER_SERIAL_dup.htmlESS_ISSUER_SERIAL_free.htmlESS_ISSUER_SERIAL_new.htmlESS_SIGNING_CERT_dup.htmlESS_SIGNING_CERT_free.htmlESS_SIGNING_CERT_new.htmlEVP_BytesToKey.htmlEVP_CIPHER_CTX_block_size.htmlEVP_CIPHER_CTX_cipher.htmlEVP_CIPHER_CTX_ctrl.htmlEVP_CIPHER_CTX_flags.htmlEVP_CIPHER_CTX_free.htmlEVP_CIPHER_CTX_get_app_data.htmlEVP_CIPHER_CTX_get_cipher_data.htmlEVP_CIPHER_CTX_iv_length.htmlEVP_CIPHER_CTX_key_length.htmlEVP_CIPHER_CTX_mode.htmlEVP_CIPHER_CTX_new.htmlEVP_CIPHER_CTX_nid.htmlEVP_CIPHER_CTX_reset.htmlEVP_CIPHER_CTX_set_app_data.htmlEVP_CIPHER_CTX_set_cipher_data.htmlEVP_CIPHER_CTX_set_key_length.htmlEVP_CIPHER_CTX_set_padding.htmlEVP_CIPHER_CTX_type.htmlEVP_CIPHER_asn1_to_param.htmlEVP_CIPHER_block_size.htmlEVP_CIPHER_flags.htmlEVP_CIPHER_iv_length.htmlEVP_CIPHER_key_length.htmlEVP_CIPHER_meth_dup.htmlEVP_CIPHER_meth_free.htmlEVP_CIPHER_meth_get_cleanup.htmlEVP_CIPHER_meth_get_ctrl.htmlEVP_CIPHER_meth_get_do_cipher.htmlEVP_CIPHER_meth_get_get_asn1_params.htmlEVP_CIPHER_meth_get_init.htmlEVP_CIPHER_meth_get_set_asn1_params.htmlEVP_CIPHER_meth_new.htmlEVP_CIPHER_meth_set_cleanup.htmlEVP_CIPHER_meth_set_ctrl.htmlEVP_CIPHER_meth_set_do_cipher.htmlEVP_CIPHER_meth_set_flags.htmlEVP_CIPHER_meth_set_get_asn1_params.htmlEVP_CIPHER_meth_set_impl_ctx_size.htmlEVP_CIPHER_meth_set_init.htmlEVP_CIPHER_meth_set_iv_length.htmlEVP_CIPHER_meth_set_set_asn1_params.htmlEVP_CIPHER_mode.htmlEVP_CIPHER_nid.htmlEVP_CIPHER_param_to_asn1.htmlEVP_CIPHER_type.htmlEVP_CipherFinal.htmlEVP_CipherFinal_ex.htmlEVP_CipherInit.htmlEVP_CipherInit_ex.htmlEVP_CipherUpdate.htmlEVP_DecodeBlock.htmlEVP_DecodeFinal.htmlEVP_DecodeInit.htmlEVP_DecodeUpdate.htmlEVP_DecryptFinal.htmlEVP_DecryptFinal_ex.htmlEVP_DecryptInit.htmlEVP_DecryptInit_ex.htmlEVP_DecryptUpdate.htmlEVP_Digest.htmlEVP_DigestFinal.htmlEVP_DigestFinalXOF.htmlEVP_DigestFinal_ex.htmlEVP_DigestInit.htmlEVP_DigestInit_ex.htmlEVP_DigestSign.htmlEVP_DigestSignFinal.htmlEVP_DigestSignInit.htmlEVP_DigestSignUpdate.htmlEVP_DigestUpdate.htmlEVP_DigestVerify.htmlEVP_DigestVerifyFinal.htmlEVP_DigestVerifyInit.htmlEVP_DigestVerifyUpdate.htmlEVP_ENCODE_CTX_copy.htmlEVP_ENCODE_CTX_free.htmlEVP_ENCODE_CTX_new.htmlEVP_ENCODE_CTX_num.htmlEVP_EncodeBlock.htmlEVP_EncodeFinal.htmlEVP_EncodeInit.htmlEVP_EncodeUpdate.htmlEVP_EncryptFinal.htmlEVP_EncryptFinal_ex.htmlEVP_EncryptInit.htmlEVP_EncryptInit_ex.htmlEVP_EncryptUpdate.htmlEVP_MD_CTX_block_size.htmlEVP_MD_CTX_clear_flags.htmlEVP_MD_CTX_copy.htmlEVP_MD_CTX_copy_ex.htmlEVP_MD_CTX_ctrl.htmlEVP_MD_CTX_free.htmlEVP_MD_CTX_md.htmlEVP_MD_CTX_md_data.htmlEVP_MD_CTX_new.htmlEVP_MD_CTX_pkey_ctx.htmlEVP_MD_CTX_reset.htmlEVP_MD_CTX_set_flags.htmlEVP_MD_CTX_set_pkey_ctx.htmlEVP_MD_CTX_set_update_fn.htmlEVP_MD_CTX_size.htmlEVP_MD_CTX_test_flags.htmlEVP_MD_CTX_type.htmlEVP_MD_CTX_update_fn.htmlEVP_MD_block_size.htmlEVP_MD_flags.htmlEVP_MD_meth_dup.htmlEVP_MD_meth_free.htmlEVP_MD_meth_get_app_datasize.htmlEVP_MD_meth_get_cleanup.htmlEVP_MD_meth_get_copy.htmlEVP_MD_meth_get_ctrl.htmlEVP_MD_meth_get_final.htmlEVP_MD_meth_get_flags.htmlEVP_MD_meth_get_init.htmlEVP_MD_meth_get_input_blocksize.htmlEVP_MD_meth_get_result_size.htmlEVP_MD_meth_get_update.htmlEVP_MD_meth_new.htmlEVP_MD_meth_set_app_datasize.htmlEVP_MD_meth_set_cleanup.htmlEVP_MD_meth_set_copy.htmlEVP_MD_meth_set_ctrl.htmlEVP_MD_meth_set_final.htmlEVP_MD_meth_set_flags.htmlEVP_MD_meth_set_init.htmlEVP_MD_meth_set_input_blocksize.htmlEVP_MD_meth_set_result_size.htmlEVP_MD_meth_set_update.htmlEVP_MD_pkey_type.htmlEVP_MD_size.htmlEVP_MD_type.htmlEVP_OpenFinal.htmlEVP_OpenInit.htmlEVP_OpenUpdate.htmlEVP_PKEY_ASN1_METHOD.htmlEVP_PKEY_CTX_add1_hkdf_info.htmlEVP_PKEY_CTX_add1_tls1_prf_seed.htmlEVP_PKEY_CTX_ctrl.htmlEVP_PKEY_CTX_ctrl_str.htmlEVP_PKEY_CTX_ctrl_uint64.htmlEVP_PKEY_CTX_dup.htmlEVP_PKEY_CTX_free.htmlEVP_PKEY_CTX_get0_dh_kdf_oid.htmlEVP_PKEY_CTX_get0_dh_kdf_ukm.htmlEVP_PKEY_CTX_get0_ecdh_kdf_ukm.htmlEVP_PKEY_CTX_get0_rsa_oaep_label.htmlEVP_PKEY_CTX_get1_id.htmlEVP_PKEY_CTX_get1_id_len.htmlEVP_PKEY_CTX_get_app_data.htmlEVP_PKEY_CTX_get_cb.htmlEVP_PKEY_CTX_get_dh_kdf_md.htmlEVP_PKEY_CTX_get_dh_kdf_outlen.htmlEVP_PKEY_CTX_get_dh_kdf_type.htmlEVP_PKEY_CTX_get_ecdh_cofactor_mode.htmlEVP_PKEY_CTX_get_ecdh_kdf_md.htmlEVP_PKEY_CTX_get_ecdh_kdf_outlen.htmlEVP_PKEY_CTX_get_ecdh_kdf_type.htmlEVP_PKEY_CTX_get_keygen_info.htmlEVP_PKEY_CTX_get_rsa_mgf1_md.htmlEVP_PKEY_CTX_get_rsa_oaep_md.htmlEVP_PKEY_CTX_get_rsa_padding.htmlEVP_PKEY_CTX_get_rsa_pss_saltlen.htmlEVP_PKEY_CTX_get_signature_md.htmlEVP_PKEY_CTX_hkdf_mode.htmlEVP_PKEY_CTX_md.htmlEVP_PKEY_CTX_new.htmlEVP_PKEY_CTX_new_id.htmlEVP_PKEY_CTX_set0_dh_kdf_oid.htmlEVP_PKEY_CTX_set0_dh_kdf_ukm.htmlEVP_PKEY_CTX_set0_ecdh_kdf_ukm.htmlEVP_PKEY_CTX_set0_rsa_oaep_label.htmlEVP_PKEY_CTX_set1_hkdf_key.htmlEVP_PKEY_CTX_set1_hkdf_salt.htmlEVP_PKEY_CTX_set1_id.htmlEVP_PKEY_CTX_set1_pbe_pass.htmlEVP_PKEY_CTX_set1_scrypt_salt.htmlEVP_PKEY_CTX_set1_tls1_prf_secret.htmlEVP_PKEY_CTX_set_app_data.htmlEVP_PKEY_CTX_set_cb.htmlEVP_PKEY_CTX_set_dh_kdf_md.htmlEVP_PKEY_CTX_set_dh_kdf_outlen.htmlEVP_PKEY_CTX_set_dh_kdf_type.htmlEVP_PKEY_CTX_set_dh_nid.htmlEVP_PKEY_CTX_set_dh_pad.htmlEVP_PKEY_CTX_set_dh_paramgen_generator.htmlEVP_PKEY_CTX_set_dh_paramgen_prime_len.htmlEVP_PKEY_CTX_set_dh_paramgen_subprime_len.htmlEVP_PKEY_CTX_set_dh_paramgen_type.htmlEVP_PKEY_CTX_set_dh_rfc5114.htmlEVP_PKEY_CTX_set_dhx_rfc5114.htmlEVP_PKEY_CTX_set_dsa_paramgen_bits.htmlEVP_PKEY_CTX_set_dsa_paramgen_md.htmlEVP_PKEY_CTX_set_dsa_paramgen_q_bits.htmlEVP_PKEY_CTX_set_ec_param_enc.htmlEVP_PKEY_CTX_set_ec_paramgen_curve_nid.htmlEVP_PKEY_CTX_set_ecdh_cofactor_mode.htmlEVP_PKEY_CTX_set_ecdh_kdf_md.htmlEVP_PKEY_CTX_set_ecdh_kdf_outlen.htmlEVP_PKEY_CTX_set_ecdh_kdf_type.htmlEVP_PKEY_CTX_set_hkdf_md.htmlEVP_PKEY_CTX_set_mac_key.htmlEVP_PKEY_CTX_set_rsa_keygen_bits.htmlEVP_PKEY_CTX_set_rsa_keygen_primes.htmlEVP_PKEY_CTX_set_rsa_keygen_pubexp.htmlEVP_PKEY_CTX_set_rsa_mgf1_md.htmlEVP_PKEY_CTX_set_rsa_oaep_md.htmlEVP_PKEY_CTX_set_rsa_padding.htmlEVP_PKEY_CTX_set_rsa_pss_keygen_md.htmlEVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md.htmlEVP_PKEY_CTX_set_rsa_pss_keygen_saltlen.htmlEVP_PKEY_CTX_set_rsa_pss_saltlen.htmlEVP_PKEY_CTX_set_scrypt_N.htmlEVP_PKEY_CTX_set_scrypt_maxmem_bytes.htmlEVP_PKEY_CTX_set_scrypt_p.htmlEVP_PKEY_CTX_set_scrypt_r.htmlEVP_PKEY_CTX_set_signature_md.htmlEVP_PKEY_CTX_set_tls1_prf_md.htmlEVP_PKEY_METHOD.htmlEVP_PKEY_asn1_add0.htmlEVP_PKEY_asn1_add_alias.htmlEVP_PKEY_asn1_copy.htmlEVP_PKEY_asn1_find.htmlEVP_PKEY_asn1_find_str.htmlEVP_PKEY_asn1_free.htmlEVP_PKEY_asn1_get0.htmlEVP_PKEY_asn1_get0_info.htmlEVP_PKEY_asn1_get_count.htmlEVP_PKEY_asn1_new.htmlEVP_PKEY_asn1_set_check.htmlEVP_PKEY_asn1_set_ctrl.htmlEVP_PKEY_asn1_set_free.htmlEVP_PKEY_asn1_set_get_priv_key.htmlEVP_PKEY_asn1_set_get_pub_key.htmlEVP_PKEY_asn1_set_item.htmlEVP_PKEY_asn1_set_param.htmlEVP_PKEY_asn1_set_param_check.htmlEVP_PKEY_asn1_set_private.htmlEVP_PKEY_asn1_set_public.htmlEVP_PKEY_asn1_set_public_check.htmlEVP_PKEY_asn1_set_security_bits.htmlEVP_PKEY_asn1_set_set_priv_key.htmlEVP_PKEY_asn1_set_set_pub_key.htmlEVP_PKEY_asn1_set_siginf.htmlEVP_PKEY_assign_DH.htmlEVP_PKEY_assign_DSA.htmlEVP_PKEY_assign_EC_KEY.htmlEVP_PKEY_assign_POLY1305.htmlEVP_PKEY_assign_RSA.htmlEVP_PKEY_assign_SIPHASH.htmlEVP_PKEY_base_id.htmlEVP_PKEY_bits.htmlEVP_PKEY_check.htmlEVP_PKEY_cmp.htmlEVP_PKEY_cmp_parameters.htmlEVP_PKEY_copy_parameters.htmlEVP_PKEY_decrypt.htmlEVP_PKEY_decrypt_init.htmlEVP_PKEY_derive.htmlEVP_PKEY_derive_init.htmlEVP_PKEY_derive_set_peer.htmlEVP_PKEY_encrypt.htmlEVP_PKEY_encrypt_init.htmlEVP_PKEY_free.htmlEVP_PKEY_gen_cb.htmlEVP_PKEY_get0_DH.htmlEVP_PKEY_get0_DSA.htmlEVP_PKEY_get0_EC_KEY.htmlEVP_PKEY_get0_RSA.htmlEVP_PKEY_get0_asn1.htmlEVP_PKEY_get0_engine.htmlEVP_PKEY_get0_hmac.htmlEVP_PKEY_get0_poly1305.htmlEVP_PKEY_get0_siphash.htmlEVP_PKEY_get1_DH.htmlEVP_PKEY_get1_DSA.htmlEVP_PKEY_get1_EC_KEY.htmlEVP_PKEY_get1_RSA.htmlEVP_PKEY_get_default_digest_nid.htmlEVP_PKEY_get_raw_private_key.htmlEVP_PKEY_get_raw_public_key.htmlEVP_PKEY_id.htmlEVP_PKEY_keygen.htmlEVP_PKEY_keygen_init.htmlEVP_PKEY_meth_add0.htmlEVP_PKEY_meth_copy.htmlEVP_PKEY_meth_find.htmlEVP_PKEY_meth_free.htmlEVP_PKEY_meth_get0.htmlEVP_PKEY_meth_get0_info.htmlEVP_PKEY_meth_get_check.htmlEVP_PKEY_meth_get_cleanup.htmlEVP_PKEY_meth_get_copy.htmlEVP_PKEY_meth_get_count.htmlEVP_PKEY_meth_get_ctrl.htmlEVP_PKEY_meth_get_decrypt.htmlEVP_PKEY_meth_get_derive.htmlEVP_PKEY_meth_get_digest_custom.htmlEVP_PKEY_meth_get_digestsign.htmlEVP_PKEY_meth_get_digestverify.htmlEVP_PKEY_meth_get_encrypt.htmlEVP_PKEY_meth_get_init.htmlEVP_PKEY_meth_get_keygen.htmlEVP_PKEY_meth_get_param_check.htmlEVP_PKEY_meth_get_paramgen.htmlEVP_PKEY_meth_get_public_check.htmlEVP_PKEY_meth_get_sign.htmlEVP_PKEY_meth_get_signctx.htmlEVP_PKEY_meth_get_verify.htmlEVP_PKEY_meth_get_verify_recover.htmlEVP_PKEY_meth_get_verifyctx.htmlEVP_PKEY_meth_new.htmlEVP_PKEY_meth_remove.htmlEVP_PKEY_meth_set_check.htmlEVP_PKEY_meth_set_cleanup.htmlEVP_PKEY_meth_set_copy.htmlEVP_PKEY_meth_set_ctrl.htmlEVP_PKEY_meth_set_decrypt.htmlEVP_PKEY_meth_set_derive.htmlEVP_PKEY_meth_set_digest_custom.htmlEVP_PKEY_meth_set_digestsign.htmlEVP_PKEY_meth_set_digestverify.htmlEVP_PKEY_meth_set_encrypt.htmlEVP_PKEY_meth_set_init.htmlEVP_PKEY_meth_set_keygen.htmlEVP_PKEY_meth_set_param_check.htmlEVP_PKEY_meth_set_paramgen.htmlEVP_PKEY_meth_set_public_check.htmlEVP_PKEY_meth_set_sign.htmlEVP_PKEY_meth_set_signctx.htmlEVP_PKEY_meth_set_verify.htmlEVP_PKEY_meth_set_verify_recover.htmlEVP_PKEY_meth_set_verifyctx.htmlEVP_PKEY_missing_parameters.htmlEVP_PKEY_new.htmlEVP_PKEY_new_CMAC_key.htmlEVP_PKEY_new_mac_key.htmlEVP_PKEY_new_raw_private_key.htmlEVP_PKEY_new_raw_public_key.htmlEVP_PKEY_param_check.htmlEVP_PKEY_paramgen.htmlEVP_PKEY_paramgen_init.htmlEVP_PKEY_print_params.htmlEVP_PKEY_print_private.htmlEVP_PKEY_print_public.htmlEVP_PKEY_public_check.htmlEVP_PKEY_security_bits.htmlEVP_PKEY_set1_DH.htmlEVP_PKEY_set1_DSA.htmlEVP_PKEY_set1_EC_KEY.htmlEVP_PKEY_set1_RSA.htmlEVP_PKEY_set1_engine.htmlEVP_PKEY_set_alias_type.htmlEVP_PKEY_sign.htmlEVP_PKEY_sign_init.htmlEVP_PKEY_size.htmlEVP_PKEY_type.htmlEVP_PKEY_up_ref.htmlEVP_PKEY_verify.htmlEVP_PKEY_verify_init.htmlEVP_PKEY_verify_recover.htmlEVP_PKEY_verify_recover_init.htmlEVP_SealFinal.htmlEVP_SealInit.htmlEVP_SealUpdate.htmlEVP_SignFinal.htmlEVP_SignInit.htmlEVP_SignInit_ex.htmlEVP_SignUpdate.htmlEVP_VerifyFinal.htmlEVP_VerifyInit.htmlEVP_VerifyInit_ex.htmlEVP_VerifyUpdate.htmlEVP_aes.htmlEVP_aes_128_cbc.htmlEVP_aes_128_cbc_hmac_sha1.htmlEVP_aes_128_cbc_hmac_sha256.htmlEVP_aes_128_ccm.htmlEVP_aes_128_cfb.htmlEVP_aes_128_cfb1.htmlEVP_aes_128_cfb128.htmlEVP_aes_128_cfb8.htmlEVP_aes_128_ctr.htmlEVP_aes_128_ecb.htmlEVP_aes_128_gcm.htmlEVP_aes_128_ocb.htmlEVP_aes_128_ofb.htmlEVP_aes_128_wrap.htmlEVP_aes_128_wrap_pad.htmlEVP_aes_128_xts.htmlEVP_aes_192_cbc.htmlEVP_aes_192_ccm.htmlEVP_aes_192_cfb.htmlEVP_aes_192_cfb1.htmlEVP_aes_192_cfb128.htmlEVP_aes_192_cfb8.htmlEVP_aes_192_ctr.htmlEVP_aes_192_ecb.htmlEVP_aes_192_gcm.htmlEVP_aes_192_ocb.htmlEVP_aes_192_ofb.htmlEVP_aes_192_wrap.htmlEVP_aes_192_wrap_pad.htmlEVP_aes_256_cbc.htmlEVP_aes_256_cbc_hmac_sha1.htmlEVP_aes_256_cbc_hmac_sha256.htmlEVP_aes_256_ccm.htmlEVP_aes_256_cfb.htmlEVP_aes_256_cfb1.htmlEVP_aes_256_cfb128.htmlEVP_aes_256_cfb8.htmlEVP_aes_256_ctr.htmlEVP_aes_256_ecb.htmlEVP_aes_256_gcm.htmlEVP_aes_256_ocb.htmlEVP_aes_256_ofb.htmlEVP_aes_256_wrap.htmlEVP_aes_256_wrap_pad.htmlEVP_aes_256_xts.htmlEVP_aria.htmlEVP_aria_128_cbc.htmlEVP_aria_128_ccm.htmlEVP_aria_128_cfb.htmlEVP_aria_128_cfb1.htmlEVP_aria_128_cfb128.htmlEVP_aria_128_cfb8.htmlEVP_aria_128_ctr.htmlEVP_aria_128_ecb.htmlEVP_aria_128_gcm.htmlEVP_aria_128_ofb.htmlEVP_aria_192_cbc.htmlEVP_aria_192_ccm.htmlEVP_aria_192_cfb.htmlEVP_aria_192_cfb1.htmlEVP_aria_192_cfb128.htmlEVP_aria_192_cfb8.htmlEVP_aria_192_ctr.htmlEVP_aria_192_ecb.htmlEVP_aria_192_gcm.htmlEVP_aria_192_ofb.htmlEVP_aria_256_cbc.htmlEVP_aria_256_ccm.htmlEVP_aria_256_cfb.htmlEVP_aria_256_cfb1.htmlEVP_aria_256_cfb128.htmlEVP_aria_256_cfb8.htmlEVP_aria_256_ctr.htmlEVP_aria_256_ecb.htmlEVP_aria_256_gcm.htmlEVP_aria_256_ofb.htmlEVP_bf_cbc.htmlEVP_bf_cfb.htmlEVP_bf_cfb64.htmlEVP_bf_ecb.htmlEVP_bf_ofb.htmlEVP_blake2b512.htmlEVP_blake2s256.htmlEVP_camellia.htmlEVP_camellia_128_cbc.htmlEVP_camellia_128_cfb.htmlEVP_camellia_128_cfb1.htmlEVP_camellia_128_cfb128.htmlEVP_camellia_128_cfb8.htmlEVP_camellia_128_ctr.htmlEVP_camellia_128_ecb.htmlEVP_camellia_128_ofb.htmlEVP_camellia_192_cbc.htmlEVP_camellia_192_cfb.htmlEVP_camellia_192_cfb1.htmlEVP_camellia_192_cfb128.htmlEVP_camellia_192_cfb8.htmlEVP_camellia_192_ctr.htmlEVP_camellia_192_ecb.htmlEVP_camellia_192_ofb.htmlEVP_camellia_256_cbc.htmlEVP_camellia_256_cfb.htmlEVP_camellia_256_cfb1.htmlEVP_camellia_256_cfb128.htmlEVP_camellia_256_cfb8.htmlEVP_camellia_256_ctr.htmlEVP_camellia_256_ecb.htmlEVP_camellia_256_ofb.htmlEVP_cast5_cbc.htmlEVP_cast5_cfb.htmlEVP_cast5_cfb64.htmlEVP_cast5_ecb.htmlEVP_cast5_ofb.htmlEVP_chacha20.htmlEVP_chacha20_poly1305.htmlEVP_cleanup.htmlEVP_des.htmlEVP_des_cbc.htmlEVP_des_cfb.htmlEVP_des_cfb1.htmlEVP_des_cfb64.htmlEVP_des_cfb8.htmlEVP_des_ecb.htmlEVP_des_ede.htmlEVP_des_ede3.htmlEVP_des_ede3_cbc.htmlEVP_des_ede3_cfb.htmlEVP_des_ede3_cfb1.htmlEVP_des_ede3_cfb64.htmlEVP_des_ede3_cfb8.htmlEVP_des_ede3_ecb.htmlEVP_des_ede3_ofb.htmlEVP_des_ede3_wrap.htmlEVP_des_ede_cbc.htmlEVP_des_ede_cfb.htmlEVP_des_ede_cfb64.htmlEVP_des_ede_ecb.htmlEVP_des_ede_ofb.htmlEVP_des_ofb.htmlEVP_desx_cbc.htmlEVP_enc_null.htmlEVP_get_cipherbyname.htmlEVP_get_cipherbynid.htmlEVP_get_cipherbyobj.htmlEVP_get_digestbyname.htmlEVP_get_digestbynid.htmlEVP_get_digestbyobj.htmlEVP_idea_cbc.htmlEVP_idea_cfb.htmlEVP_idea_cfb64.htmlEVP_idea_ecb.htmlEVP_idea_ofb.htmlEVP_md2.htmlEVP_md4.htmlEVP_md5.htmlEVP_md5_sha1.htmlEVP_md_null.htmlEVP_mdc2.htmlEVP_rc2_40_cbc.htmlEVP_rc2_64_cbc.htmlEVP_rc2_cbc.htmlEVP_rc2_cfb.htmlEVP_rc2_cfb64.htmlEVP_rc2_ecb.htmlEVP_rc2_ofb.htmlEVP_rc4.htmlEVP_rc4_40.htmlEVP_rc4_hmac_md5.htmlEVP_rc5_32_12_16_cbc.htmlEVP_rc5_32_12_16_cfb.htmlEVP_rc5_32_12_16_cfb64.htmlEVP_rc5_32_12_16_ecb.htmlEVP_rc5_32_12_16_ofb.htmlEVP_ripemd160.htmlEVP_seed_cbc.htmlEVP_seed_cfb.htmlEVP_seed_cfb128.htmlEVP_seed_ecb.htmlEVP_seed_ofb.htmlEVP_sha1.htmlEVP_sha224.htmlEVP_sha256.htmlEVP_sha384.htmlEVP_sha3_224.htmlEVP_sha3_256.htmlEVP_sha3_384.htmlEVP_sha3_512.htmlEVP_sha512.htmlEVP_sha512_224.htmlEVP_sha512_256.htmlEVP_shake128.htmlEVP_shake256.htmlEVP_sm3.htmlEVP_sm4_cbc.htmlEVP_sm4_cfb.htmlEVP_sm4_cfb128.htmlEVP_sm4_ctr.htmlEVP_sm4_ecb.htmlEVP_sm4_ofb.htmlEVP_whirlpool.htmlEXTENDED_KEY_USAGE_free.htmlEXTENDED_KEY_USAGE_new.htmlGENERAL_NAMES_free.htmlGENERAL_NAMES_new.htmlGENERAL_NAME_dup.htmlGENERAL_NAME_free.htmlGENERAL_NAME_new.htmlGENERAL_SUBTREE_free.htmlGENERAL_SUBTREE_new.htmlGEN_SESSION_CB.htmlHMAC.htmlHMAC_CTX_copy.htmlHMAC_CTX_free.htmlHMAC_CTX_get_md.htmlHMAC_CTX_new.htmlHMAC_CTX_reset.htmlHMAC_CTX_set_flags.htmlHMAC_Final.htmlHMAC_Init.htmlHMAC_Init_ex.htmlHMAC_Update.htmlHMAC_size.htmlIMPLEMENT_ASN1_FUNCTIONS.htmlIMPLEMENT_LHASH_COMP_FN.htmlIMPLEMENT_LHASH_HASH_FN.htmlIPAddressChoice_free.htmlIPAddressChoice_new.htmlIPAddressFamily_free.htmlIPAddressFamily_new.htmlIPAddressOrRange_free.htmlIPAddressOrRange_new.htmlIPAddressRange_free.htmlIPAddressRange_new.htmlISSUING_DIST_POINT_free.htmlISSUING_DIST_POINT_new.htmlLHASH.htmlLHASH_DOALL_ARG_FN_TYPE.htmlMD2.htmlMD2_Final.htmlMD2_Init.htmlMD2_Update.htmlMD4.htmlMD4_Final.htmlMD4_Init.htmlMD4_Update.htmlMD5.htmlMD5_Final.htmlMD5_Init.htmlMD5_Update.htmlMDC2.htmlMDC2_Final.htmlMDC2_Init.htmlMDC2_Update.htmlNAME_CONSTRAINTS_free.htmlNAME_CONSTRAINTS_new.htmlNAMING_AUTHORITY.htmlNAMING_AUTHORITY_free.htmlNAMING_AUTHORITY_get0_authorityId.htmlNAMING_AUTHORITY_get0_authorityText.htmlNAMING_AUTHORITY_get0_authorityURL.htmlNAMING_AUTHORITY_new.htmlNAMING_AUTHORITY_set0_authorityId.htmlNAMING_AUTHORITY_set0_authorityText.htmlNAMING_AUTHORITY_set0_authorityURL.htmlNETSCAPE_CERT_SEQUENCE_free.htmlNETSCAPE_CERT_SEQUENCE_new.htmlNETSCAPE_SPKAC_free.htmlNETSCAPE_SPKAC_new.htmlNETSCAPE_SPKI_free.htmlNETSCAPE_SPKI_new.htmlNOTICEREF_free.htmlNOTICEREF_new.htmlOBJ_cleanup.htmlOBJ_cmp.htmlOBJ_create.htmlOBJ_dup.htmlOBJ_get0_data.htmlOBJ_length.htmlOBJ_ln2nid.htmlOBJ_nid2ln.htmlOBJ_nid2obj.htmlOBJ_nid2sn.htmlOBJ_obj2nid.htmlOBJ_obj2txt.htmlOBJ_sn2nid.htmlOBJ_txt2nid.htmlOBJ_txt2obj.htmlOCSP_BASICRESP_free.htmlOCSP_BASICRESP_new.htmlOCSP_CERTID_dup.htmlOCSP_CERTID_free.htmlOCSP_CERTID_new.htmlOCSP_CERTSTATUS_free.htmlOCSP_CERTSTATUS_new.htmlOCSP_CRLID_free.htmlOCSP_CRLID_new.htmlOCSP_ONEREQ_free.htmlOCSP_ONEREQ_new.htmlOCSP_REQINFO_free.htmlOCSP_REQINFO_new.htmlOCSP_REQUEST_free.htmlOCSP_REQUEST_new.htmlOCSP_REQ_CTX_add1_header.htmlOCSP_REQ_CTX_free.htmlOCSP_REQ_CTX_i2d.htmlOCSP_REQ_CTX_set1_req.htmlOCSP_RESPBYTES_free.htmlOCSP_RESPBYTES_new.htmlOCSP_RESPDATA_free.htmlOCSP_RESPDATA_new.htmlOCSP_RESPID_free.htmlOCSP_RESPID_match.htmlOCSP_RESPID_new.htmlOCSP_RESPID_set_by_key.htmlOCSP_RESPID_set_by_name.htmlOCSP_RESPONSE_free.htmlOCSP_RESPONSE_new.htmlOCSP_REVOKEDINFO_free.htmlOCSP_REVOKEDINFO_new.htmlOCSP_SERVICELOC_free.htmlOCSP_SERVICELOC_new.htmlOCSP_SIGNATURE_free.htmlOCSP_SIGNATURE_new.htmlOCSP_SINGLERESP_free.htmlOCSP_SINGLERESP_new.htmlOCSP_basic_add1_nonce.htmlOCSP_basic_sign.htmlOCSP_basic_sign_ctx.htmlOCSP_basic_verify.htmlOCSP_cert_id_new.htmlOCSP_cert_to_id.htmlOCSP_check_nonce.htmlOCSP_check_validity.htmlOCSP_copy_nonce.htmlOCSP_id_cmp.htmlOCSP_id_get0_info.htmlOCSP_id_issuer_cmp.htmlOCSP_request_add0_id.htmlOCSP_request_add1_cert.htmlOCSP_request_add1_nonce.htmlOCSP_request_onereq_count.htmlOCSP_request_onereq_get0.htmlOCSP_request_sign.htmlOCSP_resp_count.htmlOCSP_resp_find.htmlOCSP_resp_find_status.htmlOCSP_resp_get0.htmlOCSP_resp_get0_certs.htmlOCSP_resp_get0_id.htmlOCSP_resp_get0_produced_at.htmlOCSP_resp_get0_respdata.htmlOCSP_resp_get0_signature.htmlOCSP_resp_get0_signer.htmlOCSP_resp_get0_tbs_sigalg.htmlOCSP_resp_get1_id.htmlOCSP_response_create.htmlOCSP_response_get1_basic.htmlOCSP_response_status.htmlOCSP_sendreq_bio.htmlOCSP_sendreq_nbio.htmlOCSP_sendreq_new.htmlOCSP_set_max_response_length.htmlOCSP_single_get0_status.htmlOPENSSL_Applink.htmlOPENSSL_INIT_free.htmlOPENSSL_INIT_new.htmlOPENSSL_INIT_set_config_appname.htmlOPENSSL_INIT_set_config_file_flags.htmlOPENSSL_INIT_set_config_filename.htmlOPENSSL_LH_COMPFUNC.htmlOPENSSL_LH_DOALL_FUNC.htmlOPENSSL_LH_HASHFUNC.htmlOPENSSL_LH_node_stats.htmlOPENSSL_LH_node_stats_bio.htmlOPENSSL_LH_node_usage_stats.htmlOPENSSL_LH_node_usage_stats_bio.htmlOPENSSL_LH_stats.htmlOPENSSL_LH_stats_bio.htmlOPENSSL_MALLOC_FAILURES.htmlOPENSSL_MALLOC_FD.htmlOPENSSL_VERSION_NUMBER.htmlOPENSSL_VERSION_TEXT.htmlOPENSSL_atexit.htmlOPENSSL_buf2hexstr.htmlOPENSSL_cipher_name.htmlOPENSSL_cleanse.htmlOPENSSL_cleanup.htmlOPENSSL_clear_free.htmlOPENSSL_clear_realloc.htmlOPENSSL_config.htmlOPENSSL_fork_child.htmlOPENSSL_fork_parent.htmlOPENSSL_fork_prepare.htmlOPENSSL_free.htmlOPENSSL_hexchar2int.htmlOPENSSL_hexstr2buf.htmlOPENSSL_ia32cap.htmlOPENSSL_init_crypto.htmlOPENSSL_init_ssl.htmlOPENSSL_instrument_bus.htmlOPENSSL_instrument_bus2.htmlOPENSSL_load_builtin_modules.htmlOPENSSL_malloc.htmlOPENSSL_malloc_init.htmlOPENSSL_mem_debug_pop.htmlOPENSSL_mem_debug_push.htmlOPENSSL_memdup.htmlOPENSSL_no_config.htmlOPENSSL_realloc.htmlOPENSSL_secure_actual_size.htmlOPENSSL_secure_clear_free.htmlOPENSSL_secure_free.htmlOPENSSL_secure_malloc.htmlOPENSSL_secure_zalloc.htmlOPENSSL_strdup.htmlOPENSSL_strlcat.htmlOPENSSL_strlcpy.htmlOPENSSL_strndup.htmlOPENSSL_thread_stop.htmlOPENSSL_zalloc.htmlOSSL_STORE_CTX.htmlOSSL_STORE_INFO.htmlOSSL_STORE_INFO_free.htmlOSSL_STORE_INFO_get0_CERT.htmlOSSL_STORE_INFO_get0_CRL.htmlOSSL_STORE_INFO_get0_NAME.htmlOSSL_STORE_INFO_get0_NAME_description.htmlOSSL_STORE_INFO_get0_PARAMS.htmlOSSL_STORE_INFO_get0_PKEY.htmlOSSL_STORE_INFO_get1_CERT.htmlOSSL_STORE_INFO_get1_CRL.htmlOSSL_STORE_INFO_get1_NAME.htmlOSSL_STORE_INFO_get1_NAME_description.htmlOSSL_STORE_INFO_get1_PARAMS.htmlOSSL_STORE_INFO_get1_PKEY.htmlOSSL_STORE_INFO_get_type.htmlOSSL_STORE_INFO_new_CERT.htmlOSSL_STORE_INFO_new_CRL.htmlOSSL_STORE_INFO_new_NAME.htmlOSSL_STORE_INFO_new_PARAMS.htmlOSSL_STORE_INFO_new_PKEY.htmlOSSL_STORE_INFO_set0_NAME_description.htmlOSSL_STORE_INFO_type_string.htmlOSSL_STORE_LOADER.htmlOSSL_STORE_LOADER_CTX.htmlOSSL_STORE_LOADER_free.htmlOSSL_STORE_LOADER_get0_engine.htmlOSSL_STORE_LOADER_get0_scheme.htmlOSSL_STORE_LOADER_new.htmlOSSL_STORE_LOADER_set_close.htmlOSSL_STORE_LOADER_set_ctrl.htmlOSSL_STORE_LOADER_set_eof.htmlOSSL_STORE_LOADER_set_error.htmlOSSL_STORE_LOADER_set_expect.htmlOSSL_STORE_LOADER_set_find.htmlOSSL_STORE_LOADER_set_load.htmlOSSL_STORE_LOADER_set_open.htmlOSSL_STORE_SEARCH.htmlOSSL_STORE_SEARCH_by_alias.htmlOSSL_STORE_SEARCH_by_issuer_serial.htmlOSSL_STORE_SEARCH_by_key_fingerprint.htmlOSSL_STORE_SEARCH_by_name.htmlOSSL_STORE_SEARCH_free.htmlOSSL_STORE_SEARCH_get0_bytes.htmlOSSL_STORE_SEARCH_get0_digest.htmlOSSL_STORE_SEARCH_get0_name.htmlOSSL_STORE_SEARCH_get0_serial.htmlOSSL_STORE_SEARCH_get0_string.htmlOSSL_STORE_SEARCH_get_type.htmlOSSL_STORE_close.htmlOSSL_STORE_close_fn.htmlOSSL_STORE_ctrl.htmlOSSL_STORE_ctrl_fn.htmlOSSL_STORE_eof.htmlOSSL_STORE_eof_fn.htmlOSSL_STORE_error.htmlOSSL_STORE_error_fn.htmlOSSL_STORE_expect.htmlOSSL_STORE_expect_fn.htmlOSSL_STORE_find.htmlOSSL_STORE_find_fn.htmlOSSL_STORE_load.htmlOSSL_STORE_load_fn.htmlOSSL_STORE_open.htmlOSSL_STORE_open_fn.htmlOSSL_STORE_post_process_info_fn.htmlOSSL_STORE_register_loader.htmlOSSL_STORE_supports_search.htmlOSSL_STORE_unregister_loader.htmlOTHERNAME_free.htmlOTHERNAME_new.htmlOpenSSL_add_all_algorithms.htmlOpenSSL_add_all_ciphers.htmlOpenSSL_add_all_digests.htmlOpenSSL_add_ssl_algorithms.htmlOpenSSL_version.htmlOpenSSL_version_num.htmlPBE2PARAM_free.htmlPBE2PARAM_new.htmlPBEPARAM_free.htmlPBEPARAM_new.htmlPBKDF2PARAM_free.htmlPBKDF2PARAM_new.htmlPEM_FLAG_EAY_COMPATIBLE.htmlPEM_FLAG_ONLY_B64.htmlPEM_FLAG_SECURE.htmlPEM_bytes_read_bio.htmlPEM_bytes_read_bio_secmem.htmlPEM_do_header.htmlPEM_get_EVP_CIPHER_INFO.htmlPEM_read.htmlPEM_read_CMS.htmlPEM_read_DHparams.htmlPEM_read_DSAPrivateKey.htmlPEM_read_DSA_PUBKEY.htmlPEM_read_DSAparams.htmlPEM_read_ECPKParameters.htmlPEM_read_ECPrivateKey.htmlPEM_read_EC_PUBKEY.htmlPEM_read_NETSCAPE_CERT_SEQUENCE.htmlPEM_read_PKCS7.htmlPEM_read_PKCS8.htmlPEM_read_PKCS8_PRIV_KEY_INFO.htmlPEM_read_PUBKEY.htmlPEM_read_PrivateKey.htmlPEM_read_RSAPrivateKey.htmlPEM_read_RSAPublicKey.htmlPEM_read_RSA_PUBKEY.htmlPEM_read_SSL_SESSION.htmlPEM_read_X509.htmlPEM_read_X509_AUX.htmlPEM_read_X509_CRL.htmlPEM_read_X509_REQ.htmlPEM_read_bio.htmlPEM_read_bio_CMS.htmlPEM_read_bio_DHparams.htmlPEM_read_bio_DSAPrivateKey.htmlPEM_read_bio_DSA_PUBKEY.htmlPEM_read_bio_DSAparams.htmlPEM_read_bio_ECPKParameters.htmlPEM_read_bio_EC_PUBKEY.htmlPEM_read_bio_NETSCAPE_CERT_SEQUENCE.htmlPEM_read_bio_PKCS7.htmlPEM_read_bio_PKCS8.htmlPEM_read_bio_PKCS8_PRIV_KEY_INFO.htmlPEM_read_bio_PUBKEY.htmlPEM_read_bio_Parameters.htmlPEM_read_bio_PrivateKey.htmlPEM_read_bio_RSAPrivateKey.htmlPEM_read_bio_RSAPublicKey.htmlPEM_read_bio_RSA_PUBKEY.htmlPEM_read_bio_SSL_SESSION.htmlPEM_read_bio_X509.htmlPEM_read_bio_X509_AUX.htmlPEM_read_bio_X509_CRL.htmlPEM_read_bio_X509_REQ.htmlPEM_read_bio_ex.htmlPEM_write.htmlPEM_write_CMS.htmlPEM_write_DHparams.htmlPEM_write_DHxparams.htmlPEM_write_DSAPrivateKey.htmlPEM_write_DSA_PUBKEY.htmlPEM_write_DSAparams.htmlPEM_write_ECPKParameters.htmlPEM_write_ECPrivateKey.htmlPEM_write_EC_PUBKEY.htmlPEM_write_NETSCAPE_CERT_SEQUENCE.htmlPEM_write_PKCS7.htmlPEM_write_PKCS8.htmlPEM_write_PKCS8PrivateKey.htmlPEM_write_PKCS8PrivateKey_nid.htmlPEM_write_PKCS8_PRIV_KEY_INFO.htmlPEM_write_PUBKEY.htmlPEM_write_PrivateKey.htmlPEM_write_RSAPrivateKey.htmlPEM_write_RSAPublicKey.htmlPEM_write_RSA_PUBKEY.htmlPEM_write_SSL_SESSION.htmlPEM_write_X509.htmlPEM_write_X509_AUX.htmlPEM_write_X509_CRL.htmlPEM_write_X509_REQ.htmlPEM_write_X509_REQ_NEW.htmlPEM_write_bio.htmlPEM_write_bio_CMS.htmlPEM_write_bio_CMS_stream.htmlPEM_write_bio_DHparams.htmlPEM_write_bio_DHxparams.htmlPEM_write_bio_DSAPrivateKey.htmlPEM_write_bio_DSA_PUBKEY.htmlPEM_write_bio_DSAparams.htmlPEM_write_bio_ECPKParameters.htmlPEM_write_bio_ECPrivateKey.htmlPEM_write_bio_EC_PUBKEY.htmlPEM_write_bio_NETSCAPE_CERT_SEQUENCE.htmlPEM_write_bio_PKCS7.htmlPEM_write_bio_PKCS7_stream.htmlPEM_write_bio_PKCS8.htmlPEM_write_bio_PKCS8PrivateKey.htmlPEM_write_bio_PKCS8PrivateKey_nid.htmlPEM_write_bio_PKCS8_PRIV_KEY_INFO.htmlPEM_write_bio_PUBKEY.htmlPEM_write_bio_Parameters.htmlPEM_write_bio_PrivateKey.htmlPEM_write_bio_PrivateKey_traditional.htmlPEM_write_bio_RSAPrivateKey.htmlPEM_write_bio_RSAPublicKey.htmlPEM_write_bio_RSA_PUBKEY.htmlPEM_write_bio_SSL_SESSION.htmlPEM_write_bio_X509.htmlPEM_write_bio_X509_AUX.htmlPEM_write_bio_X509_CRL.htmlPEM_write_bio_X509_REQ.htmlPEM_write_bio_X509_REQ_NEW.htmlPKCS12_BAGS_free.htmlPKCS12_BAGS_new.htmlPKCS12_MAC_DATA_free.htmlPKCS12_MAC_DATA_new.htmlPKCS12_SAFEBAG_free.htmlPKCS12_SAFEBAG_new.htmlPKCS12_create.htmlPKCS12_free.htmlPKCS12_new.htmlPKCS12_newpass.htmlPKCS12_parse.htmlPKCS5_PBKDF2_HMAC.htmlPKCS5_PBKDF2_HMAC_SHA1.htmlPKCS7_DIGEST_free.htmlPKCS7_DIGEST_new.htmlPKCS7_ENCRYPT_free.htmlPKCS7_ENCRYPT_new.htmlPKCS7_ENC_CONTENT_free.htmlPKCS7_ENC_CONTENT_new.htmlPKCS7_ENVELOPE_free.htmlPKCS7_ENVELOPE_new.htmlPKCS7_ISSUER_AND_SERIAL_digest.htmlPKCS7_ISSUER_AND_SERIAL_free.htmlPKCS7_ISSUER_AND_SERIAL_new.htmlPKCS7_RECIP_INFO_free.htmlPKCS7_RECIP_INFO_new.htmlPKCS7_SIGNED_free.htmlPKCS7_SIGNED_new.htmlPKCS7_SIGNER_INFO_free.htmlPKCS7_SIGNER_INFO_new.htmlPKCS7_SIGN_ENVELOPE_free.htmlPKCS7_SIGN_ENVELOPE_new.htmlPKCS7_add_certificate.htmlPKCS7_add_crl.htmlPKCS7_decrypt.htmlPKCS7_dup.htmlPKCS7_encrypt.htmlPKCS7_free.htmlPKCS7_get0_signers.htmlPKCS7_new.htmlPKCS7_print_ctx.htmlPKCS7_sign.htmlPKCS7_sign_add_signer.htmlPKCS7_verify.htmlPKCS8_PRIV_KEY_INFO_free.htmlPKCS8_PRIV_KEY_INFO_new.htmlPKEY_USAGE_PERIOD_free.htmlPKEY_USAGE_PERIOD_new.htmlPOLICYINFO_free.htmlPOLICYINFO_new.htmlPOLICYQUALINFO_free.htmlPOLICYQUALINFO_new.htmlPOLICY_CONSTRAINTS_free.htmlPOLICY_CONSTRAINTS_new.htmlPOLICY_MAPPING_free.htmlPOLICY_MAPPING_new.htmlPROFESSION_INFO.htmlPROFESSION_INFOS.htmlPROFESSION_INFOS_free.htmlPROFESSION_INFOS_new.htmlPROFESSION_INFO_free.htmlPROFESSION_INFO_get0_addProfessionInfo.htmlPROFESSION_INFO_get0_namingAuthority.htmlPROFESSION_INFO_get0_professionItems.htmlPROFESSION_INFO_get0_professionOIDs.htmlPROFESSION_INFO_get0_registrationNumber.htmlPROFESSION_INFO_new.htmlPROFESSION_INFO_set0_addProfessionInfo.htmlPROFESSION_INFO_set0_namingAuthority.htmlPROFESSION_INFO_set0_professionItems.htmlPROFESSION_INFO_set0_professionOIDs.htmlPROFESSION_INFO_set0_registrationNumber.htmlPROXY_CERT_INFO_EXTENSION_free.htmlPROXY_CERT_INFO_EXTENSION_new.htmlPROXY_POLICY_free.htmlPROXY_POLICY_new.htmlRAND_DRBG_bytes.htmlRAND_DRBG_cleanup_entropy_fn.htmlRAND_DRBG_cleanup_nonce_fn.htmlRAND_DRBG_free.htmlRAND_DRBG_generate.htmlRAND_DRBG_get0_master.htmlRAND_DRBG_get0_private.htmlRAND_DRBG_get0_public.htmlRAND_DRBG_get_entropy_fn.htmlRAND_DRBG_get_ex_data.htmlRAND_DRBG_get_ex_new_index.htmlRAND_DRBG_get_nonce_fn.htmlRAND_DRBG_instantiate.htmlRAND_DRBG_new.htmlRAND_DRBG_reseed.htmlRAND_DRBG_secure_new.htmlRAND_DRBG_set.htmlRAND_DRBG_set_callbacks.htmlRAND_DRBG_set_defaults.htmlRAND_DRBG_set_ex_data.htmlRAND_DRBG_set_reseed_defaults.htmlRAND_DRBG_set_reseed_interval.htmlRAND_DRBG_set_reseed_time_interval.htmlRAND_DRBG_uninstantiate.htmlRAND_OpenSSL.htmlRAND_add.htmlRAND_bytes.htmlRAND_cleanup.htmlRAND_egd.htmlRAND_egd_bytes.htmlRAND_event.htmlRAND_file_name.htmlRAND_get_rand_method.htmlRAND_keep_random_devices_open.htmlRAND_load_file.htmlRAND_poll.htmlRAND_priv_bytes.htmlRAND_pseudo_bytes.htmlRAND_query_egd_bytes.htmlRAND_screen.htmlRAND_seed.htmlRAND_set_rand_method.htmlRAND_status.htmlRAND_write_file.htmlRC4.htmlRC4_set_key.htmlRIPEMD160.htmlRIPEMD160_Final.htmlRIPEMD160_Init.htmlRIPEMD160_Update.htmlRSAPrivateKey_dup.htmlRSAPublicKey_dup.htmlRSA_OAEP_PARAMS_free.htmlRSA_OAEP_PARAMS_new.htmlRSA_PKCS1_OpenSSL.htmlRSA_PSS_PARAMS_free.htmlRSA_PSS_PARAMS_new.htmlRSA_bits.htmlRSA_blinding_off.htmlRSA_blinding_on.htmlRSA_check_key.htmlRSA_check_key_ex.htmlRSA_clear_flags.htmlRSA_flags.htmlRSA_free.htmlRSA_generate_key.htmlRSA_generate_key_ex.htmlRSA_generate_multi_prime_key.htmlRSA_get0_crt_params.htmlRSA_get0_d.htmlRSA_get0_dmp1.htmlRSA_get0_dmq1.htmlRSA_get0_e.htmlRSA_get0_engine.htmlRSA_get0_factors.htmlRSA_get0_iqmp.htmlRSA_get0_key.htmlRSA_get0_multi_prime_crt_params.htmlRSA_get0_multi_prime_factors.htmlRSA_get0_n.htmlRSA_get0_p.htmlRSA_get0_pss_params.htmlRSA_get0_q.htmlRSA_get_default_method.htmlRSA_get_ex_data.htmlRSA_get_ex_new_index.htmlRSA_get_method.htmlRSA_get_multi_prime_extra_count.htmlRSA_get_version.htmlRSA_meth_dup.htmlRSA_meth_free.htmlRSA_meth_get0_app_data.htmlRSA_meth_get0_name.htmlRSA_meth_get_bn_mod_exp.htmlRSA_meth_get_finish.htmlRSA_meth_get_flags.htmlRSA_meth_get_init.htmlRSA_meth_get_keygen.htmlRSA_meth_get_mod_exp.htmlRSA_meth_get_multi_prime_keygen.htmlRSA_meth_get_priv_dec.htmlRSA_meth_get_priv_enc.htmlRSA_meth_get_pub_dec.htmlRSA_meth_get_pub_enc.htmlRSA_meth_get_sign.htmlRSA_meth_get_verify.htmlRSA_meth_new.htmlRSA_meth_set0_app_data.htmlRSA_meth_set1_name.htmlRSA_meth_set_bn_mod_exp.htmlRSA_meth_set_finish.htmlRSA_meth_set_flags.htmlRSA_meth_set_init.htmlRSA_meth_set_keygen.htmlRSA_meth_set_mod_exp.htmlRSA_meth_set_multi_prime_keygen.htmlRSA_meth_set_priv_dec.htmlRSA_meth_set_priv_enc.htmlRSA_meth_set_pub_dec.htmlRSA_meth_set_pub_enc.htmlRSA_meth_set_sign.htmlRSA_meth_set_verify.htmlRSA_new.htmlRSA_new_method.htmlRSA_padding_add_PKCS1_OAEP.htmlRSA_padding_add_PKCS1_OAEP_mgf1.htmlRSA_padding_add_PKCS1_type_1.htmlRSA_padding_add_PKCS1_type_2.htmlRSA_padding_add_SSLv23.htmlRSA_padding_add_none.htmlRSA_padding_check_PKCS1_OAEP.htmlRSA_padding_check_PKCS1_OAEP_mgf1.htmlRSA_padding_check_PKCS1_type_1.htmlRSA_padding_check_PKCS1_type_2.htmlRSA_padding_check_SSLv23.htmlRSA_padding_check_none.htmlRSA_print.htmlRSA_print_fp.htmlRSA_private_decrypt.htmlRSA_private_encrypt.htmlRSA_public_decrypt.htmlRSA_public_encrypt.htmlRSA_security_bits.htmlRSA_set0_crt_params.htmlRSA_set0_factors.htmlRSA_set0_key.htmlRSA_set0_multi_prime_params.htmlRSA_set_default_method.htmlRSA_set_ex_data.htmlRSA_set_flags.htmlRSA_set_method.htmlRSA_sign.htmlRSA_sign_ASN1_OCTET_STRING.htmlRSA_size.htmlRSA_test_flags.htmlRSA_verify.htmlRSA_verify_ASN1_OCTET_STRING.htmlSCRYPT_PARAMS_free.htmlSCRYPT_PARAMS_new.htmlSCT_LIST_free.htmlSCT_LIST_print.htmlSCT_LIST_validate.htmlSCT_free.htmlSCT_get0_extensions.htmlSCT_get0_log_id.htmlSCT_get0_signature.htmlSCT_get_log_entry_type.htmlSCT_get_signature_nid.htmlSCT_get_source.htmlSCT_get_timestamp.htmlSCT_get_validation_status.htmlSCT_get_version.htmlSCT_new.htmlSCT_new_from_base64.htmlSCT_print.htmlSCT_set0_extensions.htmlSCT_set0_log_id.htmlSCT_set0_signature.htmlSCT_set1_extensions.htmlSCT_set1_log_id.htmlSCT_set1_signature.htmlSCT_set_log_entry_type.htmlSCT_set_signature_nid.htmlSCT_set_source.htmlSCT_set_timestamp.htmlSCT_set_version.htmlSCT_validate.htmlSCT_validation_status_string.htmlSHA1.htmlSHA1_Final.htmlSHA1_Init.htmlSHA1_Update.htmlSHA224.htmlSHA224_Final.htmlSHA224_Init.htmlSHA224_Update.htmlSHA256.htmlSHA256_Final.htmlSHA256_Init.htmlSHA256_Update.htmlSHA384.htmlSHA384_Final.htmlSHA384_Init.htmlSHA384_Update.htmlSHA512.htmlSHA512_Final.htmlSHA512_Init.htmlSHA512_Update.htmlSMIME_read_CMS.htmlSMIME_read_PKCS7.htmlSMIME_write_CMS.htmlSMIME_write_PKCS7.htmlSSL_CIPHER_description.htmlSSL_CIPHER_find.htmlSSL_CIPHER_get_auth_nid.htmlSSL_CIPHER_get_bits.htmlSSL_CIPHER_get_cipher_nid.htmlSSL_CIPHER_get_digest_nid.htmlSSL_CIPHER_get_handshake_digest.htmlSSL_CIPHER_get_id.htmlSSL_CIPHER_get_kx_nid.htmlSSL_CIPHER_get_name.htmlSSL_CIPHER_get_protocol_id.htmlSSL_CIPHER_get_version.htmlSSL_CIPHER_is_aead.htmlSSL_CIPHER_standard_name.htmlSSL_COMP_add_compression_method.htmlSSL_COMP_free_compression_methods.htmlSSL_COMP_get0_name.htmlSSL_COMP_get_compression_methods.htmlSSL_COMP_get_id.htmlSSL_CONF_CTX_clear_flags.htmlSSL_CONF_CTX_free.htmlSSL_CONF_CTX_new.htmlSSL_CONF_CTX_set1_prefix.htmlSSL_CONF_CTX_set_flags.htmlSSL_CONF_CTX_set_ssl.htmlSSL_CONF_CTX_set_ssl_ctx.htmlSSL_CONF_cmd.htmlSSL_CONF_cmd_argv.htmlSSL_CONF_cmd_value_type.htmlSSL_CTX_add0_chain_cert.htmlSSL_CTX_add1_chain_cert.htmlSSL_CTX_add1_to_CA_list.htmlSSL_CTX_add_client_CA.htmlSSL_CTX_add_client_custom_ext.htmlSSL_CTX_add_custom_ext.htmlSSL_CTX_add_extra_chain_cert.htmlSSL_CTX_add_server_custom_ext.htmlSSL_CTX_add_session.htmlSSL_CTX_build_cert_chain.htmlSSL_CTX_callback_ctrl.htmlSSL_CTX_check_private_key.htmlSSL_CTX_clear_chain_certs.htmlSSL_CTX_clear_extra_chain_certs.htmlSSL_CTX_clear_mode.htmlSSL_CTX_clear_options.htmlSSL_CTX_config.htmlSSL_CTX_ct_is_enabled.htmlSSL_CTX_ctrl.htmlSSL_CTX_dane_clear_flags.htmlSSL_CTX_dane_enable.htmlSSL_CTX_dane_mtype_set.htmlSSL_CTX_dane_set_flags.htmlSSL_CTX_decrypt_session_ticket_fn.htmlSSL_CTX_disable_ct.htmlSSL_CTX_enable_ct.htmlSSL_CTX_flush_sessions.htmlSSL_CTX_free.htmlSSL_CTX_generate_session_ticket_fn.htmlSSL_CTX_get0_CA_list.htmlSSL_CTX_get0_chain_cert_store.htmlSSL_CTX_get0_chain_certs.htmlSSL_CTX_get0_param.htmlSSL_CTX_get0_security_ex_data.htmlSSL_CTX_get0_verify_cert_store.htmlSSL_CTX_get_cert_store.htmlSSL_CTX_get_ciphers.htmlSSL_CTX_get_client_CA_list.htmlSSL_CTX_get_client_cert_cb.htmlSSL_CTX_get_default_passwd_cb.htmlSSL_CTX_get_default_passwd_cb_userdata.htmlSSL_CTX_get_default_read_ahead.htmlSSL_CTX_get_ex_data.htmlSSL_CTX_get_info_callback.htmlSSL_CTX_get_keylog_callback.htmlSSL_CTX_get_max_cert_list.htmlSSL_CTX_get_max_early_data.htmlSSL_CTX_get_max_proto_version.htmlSSL_CTX_get_min_proto_version.htmlSSL_CTX_get_mode.htmlSSL_CTX_get_num_tickets.htmlSSL_CTX_get_options.htmlSSL_CTX_get_quiet_shutdown.htmlSSL_CTX_get_read_ahead.htmlSSL_CTX_get_record_padding_callback_arg.htmlSSL_CTX_get_recv_max_early_data.htmlSSL_CTX_get_security_callback.htmlSSL_CTX_get_security_level.htmlSSL_CTX_get_session_cache_mode.htmlSSL_CTX_get_timeout.htmlSSL_CTX_get_tlsext_status_arg.htmlSSL_CTX_get_tlsext_status_cb.htmlSSL_CTX_get_tlsext_status_type.htmlSSL_CTX_get_verify_callback.htmlSSL_CTX_get_verify_depth.htmlSSL_CTX_get_verify_mode.htmlSSL_CTX_has_client_custom_ext.htmlSSL_CTX_keylog_cb_func.htmlSSL_CTX_load_verify_locations.htmlSSL_CTX_new.htmlSSL_CTX_remove_session.htmlSSL_CTX_select_current_cert.htmlSSL_CTX_sess_accept.htmlSSL_CTX_sess_accept_good.htmlSSL_CTX_sess_accept_renegotiate.htmlSSL_CTX_sess_cache_full.htmlSSL_CTX_sess_cb_hits.htmlSSL_CTX_sess_connect.htmlSSL_CTX_sess_connect_good.htmlSSL_CTX_sess_connect_renegotiate.htmlSSL_CTX_sess_get_cache_size.htmlSSL_CTX_sess_get_get_cb.htmlSSL_CTX_sess_get_new_cb.htmlSSL_CTX_sess_get_remove_cb.htmlSSL_CTX_sess_hits.htmlSSL_CTX_sess_misses.htmlSSL_CTX_sess_number.htmlSSL_CTX_sess_set_cache_size.htmlSSL_CTX_sess_set_get_cb.htmlSSL_CTX_sess_set_new_cb.htmlSSL_CTX_sess_set_remove_cb.htmlSSL_CTX_sess_timeouts.htmlSSL_CTX_sessions.htmlSSL_CTX_set0_CA_list.htmlSSL_CTX_set0_chain.htmlSSL_CTX_set0_chain_cert_store.htmlSSL_CTX_set0_security_ex_data.htmlSSL_CTX_set0_verify_cert_store.htmlSSL_CTX_set1_cert_store.htmlSSL_CTX_set1_chain.htmlSSL_CTX_set1_chain_cert_store.htmlSSL_CTX_set1_client_sigalgs.htmlSSL_CTX_set1_client_sigalgs_list.htmlSSL_CTX_set1_curves.htmlSSL_CTX_set1_curves_list.htmlSSL_CTX_set1_groups.htmlSSL_CTX_set1_groups_list.htmlSSL_CTX_set1_param.htmlSSL_CTX_set1_sigalgs.htmlSSL_CTX_set1_sigalgs_list.htmlSSL_CTX_set1_verify_cert_store.htmlSSL_CTX_set_allow_early_data_cb.htmlSSL_CTX_set_alpn_protos.htmlSSL_CTX_set_alpn_select_cb.htmlSSL_CTX_set_block_padding.htmlSSL_CTX_set_cert_cb.htmlSSL_CTX_set_cert_store.htmlSSL_CTX_set_cert_verify_callback.htmlSSL_CTX_set_cipher_list.htmlSSL_CTX_set_ciphersuites.htmlSSL_CTX_set_client_CA_list.htmlSSL_CTX_set_client_cert_cb.htmlSSL_CTX_set_client_hello_cb.htmlSSL_CTX_set_cookie_generate_cb.htmlSSL_CTX_set_cookie_verify_cb.htmlSSL_CTX_set_ct_validation_callback.htmlSSL_CTX_set_ctlog_list_file.htmlSSL_CTX_set_current_cert.htmlSSL_CTX_set_default_ctlog_list_file.htmlSSL_CTX_set_default_passwd_cb.htmlSSL_CTX_set_default_passwd_cb_userdata.htmlSSL_CTX_set_default_read_buffer_len.htmlSSL_CTX_set_default_verify_dir.htmlSSL_CTX_set_default_verify_file.htmlSSL_CTX_set_default_verify_paths.htmlSSL_CTX_set_ex_data.htmlSSL_CTX_set_generate_session_id.htmlSSL_CTX_set_info_callback.htmlSSL_CTX_set_keylog_callback.htmlSSL_CTX_set_max_cert_list.htmlSSL_CTX_set_max_early_data.htmlSSL_CTX_set_max_pipelines.htmlSSL_CTX_set_max_proto_version.htmlSSL_CTX_set_max_send_fragment.htmlSSL_CTX_set_min_proto_version.htmlSSL_CTX_set_mode.htmlSSL_CTX_set_msg_callback.htmlSSL_CTX_set_msg_callback_arg.htmlSSL_CTX_set_next_proto_select_cb.htmlSSL_CTX_set_next_protos_advertised_cb.htmlSSL_CTX_set_num_tickets.htmlSSL_CTX_set_options.htmlSSL_CTX_set_post_handshake_auth.htmlSSL_CTX_set_psk_client_callback.htmlSSL_CTX_set_psk_find_session_callback.htmlSSL_CTX_set_psk_server_callback.htmlSSL_CTX_set_psk_use_session_callback.htmlSSL_CTX_set_quiet_shutdown.htmlSSL_CTX_set_read_ahead.htmlSSL_CTX_set_record_padding_callback.htmlSSL_CTX_set_record_padding_callback_arg.htmlSSL_CTX_set_recv_max_early_data.htmlSSL_CTX_set_security_callback.htmlSSL_CTX_set_security_level.htmlSSL_CTX_set_session_cache_mode.htmlSSL_CTX_set_session_id_context.htmlSSL_CTX_set_session_ticket_cb.htmlSSL_CTX_set_split_send_fragment.htmlSSL_CTX_set_ssl_version.htmlSSL_CTX_set_stateless_cookie_generate_cb.htmlSSL_CTX_set_stateless_cookie_verify_cb.htmlSSL_CTX_set_timeout.htmlSSL_CTX_set_tlsext_max_fragment_length.htmlSSL_CTX_set_tlsext_servername_arg.htmlSSL_CTX_set_tlsext_servername_callback.htmlSSL_CTX_set_tlsext_status_arg.htmlSSL_CTX_set_tlsext_status_cb.htmlSSL_CTX_set_tlsext_status_type.htmlSSL_CTX_set_tlsext_ticket_key_cb.htmlSSL_CTX_set_tlsext_use_srtp.htmlSSL_CTX_set_tmp_dh.htmlSSL_CTX_set_tmp_dh_callback.htmlSSL_CTX_set_verify.htmlSSL_CTX_set_verify_depth.htmlSSL_CTX_up_ref.htmlSSL_CTX_use_PrivateKey.htmlSSL_CTX_use_PrivateKey_ASN1.htmlSSL_CTX_use_PrivateKey_file.htmlSSL_CTX_use_RSAPrivateKey.htmlSSL_CTX_use_RSAPrivateKey_ASN1.htmlSSL_CTX_use_RSAPrivateKey_file.htmlSSL_CTX_use_cert_and_key.htmlSSL_CTX_use_certificate.htmlSSL_CTX_use_certificate_ASN1.htmlSSL_CTX_use_certificate_chain_file.htmlSSL_CTX_use_certificate_file.htmlSSL_CTX_use_psk_identity_hint.htmlSSL_CTX_use_serverinfo.htmlSSL_CTX_use_serverinfo_ex.htmlSSL_CTX_use_serverinfo_file.htmlSSL_SESSION_dup.htmlSSL_SESSION_free.htmlSSL_SESSION_get0_alpn_selected.htmlSSL_SESSION_get0_cipher.htmlSSL_SESSION_get0_hostname.htmlSSL_SESSION_get0_id_context.htmlSSL_SESSION_get0_peer.htmlSSL_SESSION_get0_ticket.htmlSSL_SESSION_get0_ticket_appdata.htmlSSL_SESSION_get_compress_id.htmlSSL_SESSION_get_ex_data.htmlSSL_SESSION_get_id.htmlSSL_SESSION_get_master_key.htmlSSL_SESSION_get_max_early_data.htmlSSL_SESSION_get_max_fragment_length.htmlSSL_SESSION_get_protocol_version.htmlSSL_SESSION_get_ticket_lifetime_hint.htmlSSL_SESSION_get_time.htmlSSL_SESSION_get_timeout.htmlSSL_SESSION_has_ticket.htmlSSL_SESSION_is_resumable.htmlSSL_SESSION_new.htmlSSL_SESSION_print.htmlSSL_SESSION_print_fp.htmlSSL_SESSION_print_keylog.htmlSSL_SESSION_set1_alpn_selected.htmlSSL_SESSION_set1_hostname.htmlSSL_SESSION_set1_id.htmlSSL_SESSION_set1_id_context.htmlSSL_SESSION_set1_master_key.htmlSSL_SESSION_set1_ticket_appdata.htmlSSL_SESSION_set_cipher.htmlSSL_SESSION_set_ex_data.htmlSSL_SESSION_set_max_early_data.htmlSSL_SESSION_set_protocol_version.htmlSSL_SESSION_set_time.htmlSSL_SESSION_set_timeout.htmlSSL_SESSION_up_ref.htmlSSL_accept.htmlSSL_add0_chain_cert.htmlSSL_add1_chain_cert.htmlSSL_add1_host.htmlSSL_add1_to_CA_list.htmlSSL_add_client_CA.htmlSSL_add_dir_cert_subjects_to_stack.htmlSSL_add_file_cert_subjects_to_stack.htmlSSL_alert_desc_string.htmlSSL_alert_desc_string_long.htmlSSL_alert_type_string.htmlSSL_alert_type_string_long.htmlSSL_alloc_buffers.htmlSSL_allow_early_data_cb_fn.htmlSSL_build_cert_chain.htmlSSL_bytes_to_cipher_list.htmlSSL_callback_ctrl.htmlSSL_check_chain.htmlSSL_check_private_key.htmlSSL_clear.htmlSSL_clear_chain_certs.htmlSSL_clear_mode.htmlSSL_clear_options.htmlSSL_client_hello_cb_fn.htmlSSL_client_hello_get0_ciphers.htmlSSL_client_hello_get0_compression_methods.htmlSSL_client_hello_get0_ext.htmlSSL_client_hello_get0_legacy_version.htmlSSL_client_hello_get0_random.htmlSSL_client_hello_get0_session_id.htmlSSL_client_hello_get1_extensions_present.htmlSSL_client_hello_isv2.htmlSSL_client_version.htmlSSL_config.htmlSSL_connect.htmlSSL_ct_is_enabled.htmlSSL_ctrl.htmlSSL_dane_clear_flags.htmlSSL_dane_enable.htmlSSL_dane_set_flags.htmlSSL_dane_tlsa_add.htmlSSL_disable_ct.htmlSSL_do_handshake.htmlSSL_dup.htmlSSL_enable_ct.htmlSSL_export_keying_material.htmlSSL_export_keying_material_early.htmlSSL_extension_supported.htmlSSL_free.htmlSSL_free_buffers.htmlSSL_get0_CA_list.htmlSSL_get0_alpn_selected.htmlSSL_get0_chain_cert_store.htmlSSL_get0_chain_certs.htmlSSL_get0_dane_authority.htmlSSL_get0_dane_tlsa.htmlSSL_get0_next_proto_negotiated.htmlSSL_get0_param.htmlSSL_get0_peer_CA_list.htmlSSL_get0_peer_scts.htmlSSL_get0_peername.htmlSSL_get0_security_ex_data.htmlSSL_get0_session.htmlSSL_get0_verified_chain.htmlSSL_get0_verify_cert_store.htmlSSL_get1_curves.htmlSSL_get1_groups.htmlSSL_get1_session.htmlSSL_get1_supported_ciphers.htmlSSL_get_SSL_CTX.htmlSSL_get_all_async_fds.htmlSSL_get_changed_async_fds.htmlSSL_get_cipher.htmlSSL_get_cipher_bits.htmlSSL_get_cipher_list.htmlSSL_get_cipher_name.htmlSSL_get_cipher_version.htmlSSL_get_ciphers.htmlSSL_get_client_CA_list.htmlSSL_get_client_ciphers.htmlSSL_get_client_random.htmlSSL_get_current_cipher.htmlSSL_get_default_passwd_cb.htmlSSL_get_default_passwd_cb_userdata.htmlSSL_get_default_timeout.htmlSSL_get_early_data_status.htmlSSL_get_error.htmlSSL_get_ex_data.htmlSSL_get_ex_data_X509_STORE_CTX_idx.htmlSSL_get_extms_support.htmlSSL_get_fd.htmlSSL_get_info_callback.htmlSSL_get_key_update_type.htmlSSL_get_max_cert_list.htmlSSL_get_max_early_data.htmlSSL_get_max_proto_version.htmlSSL_get_min_proto_version.htmlSSL_get_mode.htmlSSL_get_num_tickets.htmlSSL_get_options.htmlSSL_get_peer_cert_chain.htmlSSL_get_peer_certificate.htmlSSL_get_peer_signature_nid.htmlSSL_get_peer_signature_type_nid.htmlSSL_get_peer_tmp_key.htmlSSL_get_pending_cipher.htmlSSL_get_psk_identity.htmlSSL_get_psk_identity_hint.htmlSSL_get_quiet_shutdown.htmlSSL_get_rbio.htmlSSL_get_read_ahead.htmlSSL_get_record_padding_callback_arg.htmlSSL_get_recv_max_early_data.htmlSSL_get_rfd.htmlSSL_get_secure_renegotiation_support.htmlSSL_get_security_callback.htmlSSL_get_security_level.htmlSSL_get_selected_srtp_profile.htmlSSL_get_server_random.htmlSSL_get_server_tmp_key.htmlSSL_get_servername.htmlSSL_get_servername_type.htmlSSL_get_session.htmlSSL_get_shared_ciphers.htmlSSL_get_shared_curve.htmlSSL_get_shared_group.htmlSSL_get_shared_sigalgs.htmlSSL_get_shutdown.htmlSSL_get_sigalgs.htmlSSL_get_signature_nid.htmlSSL_get_signature_type_nid.htmlSSL_get_srtp_profiles.htmlSSL_get_ssl_method.htmlSSL_get_state.htmlSSL_get_time.htmlSSL_get_timeout.htmlSSL_get_tlsext_status_ocsp_resp.htmlSSL_get_tlsext_status_type.htmlSSL_get_tmp_key.htmlSSL_get_verify_callback.htmlSSL_get_verify_depth.htmlSSL_get_verify_mode.htmlSSL_get_verify_result.htmlSSL_get_version.htmlSSL_get_wbio.htmlSSL_get_wfd.htmlSSL_has_matching_session_id.htmlSSL_has_pending.htmlSSL_in_accept_init.htmlSSL_in_before.htmlSSL_in_connect_init.htmlSSL_in_init.htmlSSL_is_dtls.htmlSSL_is_init_finished.htmlSSL_is_server.htmlSSL_key_update.htmlSSL_library_init.htmlSSL_load_client_CA_file.htmlSSL_load_error_strings.htmlSSL_new.htmlSSL_peek.htmlSSL_peek_ex.htmlSSL_pending.htmlSSL_psk_client_cb_func.htmlSSL_psk_find_session_cb_func.htmlSSL_psk_server_cb_func.htmlSSL_psk_use_session_cb_func.htmlSSL_read.htmlSSL_read_early_data.htmlSSL_read_ex.htmlSSL_renegotiate.htmlSSL_renegotiate_abbreviated.htmlSSL_renegotiate_pending.htmlSSL_rstate_string.htmlSSL_rstate_string_long.htmlSSL_select_current_cert.htmlSSL_select_next_proto.htmlSSL_session_reused.htmlSSL_set0_CA_list.htmlSSL_set0_chain.htmlSSL_set0_chain_cert_store.htmlSSL_set0_rbio.htmlSSL_set0_security_ex_data.htmlSSL_set0_verify_cert_store.htmlSSL_set0_wbio.htmlSSL_set1_chain.htmlSSL_set1_chain_cert_store.htmlSSL_set1_client_sigalgs.htmlSSL_set1_client_sigalgs_list.htmlSSL_set1_curves.htmlSSL_set1_curves_list.htmlSSL_set1_groups.htmlSSL_set1_groups_list.htmlSSL_set1_host.htmlSSL_set1_param.htmlSSL_set1_sigalgs.htmlSSL_set1_sigalgs_list.htmlSSL_set1_verify_cert_store.htmlSSL_set_accept_state.htmlSSL_set_allow_early_data_cb.htmlSSL_set_alpn_protos.htmlSSL_set_bio.htmlSSL_set_block_padding.htmlSSL_set_cert_cb.htmlSSL_set_cipher_list.htmlSSL_set_ciphersuites.htmlSSL_set_client_CA_list.htmlSSL_set_connect_state.htmlSSL_set_ct_validation_callback.htmlSSL_set_current_cert.htmlSSL_set_default_passwd_cb.htmlSSL_set_default_passwd_cb_userdata.htmlSSL_set_default_read_buffer_len.htmlSSL_set_ex_data.htmlSSL_set_fd.htmlSSL_set_generate_session_id.htmlSSL_set_hostflags.htmlSSL_set_info_callback.htmlSSL_set_max_cert_list.htmlSSL_set_max_early_data.htmlSSL_set_max_pipelines.htmlSSL_set_max_proto_version.htmlSSL_set_max_send_fragment.htmlSSL_set_min_proto_version.htmlSSL_set_mode.htmlSSL_set_msg_callback.htmlSSL_set_msg_callback_arg.htmlSSL_set_num_tickets.htmlSSL_set_options.htmlSSL_set_post_handshake_auth.htmlSSL_set_psk_client_callback.htmlSSL_set_psk_find_session_callback.htmlSSL_set_psk_server_callback.htmlSSL_set_psk_use_session_callback.htmlSSL_set_quiet_shutdown.htmlSSL_set_read_ahead.htmlSSL_set_record_padding_callback.htmlSSL_set_record_padding_callback_arg.htmlSSL_set_recv_max_early_data.htmlSSL_set_rfd.htmlSSL_set_security_callback.htmlSSL_set_security_level.htmlSSL_set_session.htmlSSL_set_session_id_context.htmlSSL_set_shutdown.htmlSSL_set_split_send_fragment.htmlSSL_set_ssl_method.htmlSSL_set_time.htmlSSL_set_timeout.htmlSSL_set_tlsext_host_name.htmlSSL_set_tlsext_max_fragment_length.htmlSSL_set_tlsext_status_ocsp_resp.htmlSSL_set_tlsext_status_type.htmlSSL_set_tlsext_use_srtp.htmlSSL_set_tmp_dh.htmlSSL_set_tmp_dh_callback.htmlSSL_set_verify.htmlSSL_set_verify_depth.htmlSSL_set_verify_result.htmlSSL_set_wfd.htmlSSL_shutdown.htmlSSL_state_string.htmlSSL_state_string_long.htmlSSL_stateless.htmlSSL_up_ref.htmlSSL_use_PrivateKey.htmlSSL_use_PrivateKey_ASN1.htmlSSL_use_PrivateKey_file.htmlSSL_use_RSAPrivateKey.htmlSSL_use_RSAPrivateKey_ASN1.htmlSSL_use_RSAPrivateKey_file.htmlSSL_use_cert_and_key.htmlSSL_use_certificate.htmlSSL_use_certificate_ASN1.htmlSSL_use_certificate_chain_file.htmlSSL_use_certificate_file.htmlSSL_use_psk_identity_hint.htmlSSL_verify_cb.htmlSSL_verify_client_post_handshake.htmlSSL_version.htmlSSL_waiting_for_async.htmlSSL_want.htmlSSL_want_async.htmlSSL_want_async_job.htmlSSL_want_client_hello_cb.htmlSSL_want_nothing.htmlSSL_want_read.htmlSSL_want_write.htmlSSL_want_x509_lookup.htmlSSL_write.htmlSSL_write_early_data.htmlSSL_write_ex.htmlSSLv23_client_method.htmlSSLv23_method.htmlSSLv23_server_method.htmlSSLv3_client_method.htmlSSLv3_method.htmlSSLv3_server_method.htmlSXNETID_free.htmlSXNETID_new.htmlSXNET_free.htmlSXNET_new.htmlTLS_FEATURE_free.htmlTLS_FEATURE_new.htmlTLS_client_method.htmlTLS_method.htmlTLS_server_method.htmlTLSv1_1_client_method.htmlTLSv1_1_method.htmlTLSv1_1_server_method.htmlTLSv1_2_client_method.htmlTLSv1_2_method.htmlTLSv1_2_server_method.htmlTLSv1_client_method.htmlTLSv1_method.htmlTLSv1_server_method.htmlTS_ACCURACY_dup.htmlTS_ACCURACY_free.htmlTS_ACCURACY_new.htmlTS_MSG_IMPRINT_dup.htmlTS_MSG_IMPRINT_free.htmlTS_MSG_IMPRINT_new.htmlTS_REQ_dup.htmlTS_REQ_free.htmlTS_REQ_new.htmlTS_RESP_dup.htmlTS_RESP_free.htmlTS_RESP_new.htmlTS_STATUS_INFO_dup.htmlTS_STATUS_INFO_free.htmlTS_STATUS_INFO_new.htmlTS_TST_INFO_dup.htmlTS_TST_INFO_free.htmlTS_TST_INFO_new.htmlUI.htmlUI_METHOD.htmlUI_OpenSSL.htmlUI_STRING.htmlUI_UTIL_read_pw.htmlUI_UTIL_read_pw_string.htmlUI_UTIL_wrap_read_pem_callback.htmlUI_add_error_string.htmlUI_add_info_string.htmlUI_add_input_boolean.htmlUI_add_input_string.htmlUI_add_user_data.htmlUI_add_verify_string.htmlUI_construct_prompt.htmlUI_create_method.htmlUI_ctrl.htmlUI_destroy_method.htmlUI_dup_error_string.htmlUI_dup_info_string.htmlUI_dup_input_boolean.htmlUI_dup_input_string.htmlUI_dup_user_data.htmlUI_dup_verify_string.htmlUI_free.htmlUI_get0_action_string.htmlUI_get0_output_string.htmlUI_get0_result.htmlUI_get0_result_string.htmlUI_get0_test_string.htmlUI_get0_user_data.htmlUI_get_default_method.htmlUI_get_ex_data.htmlUI_get_ex_new_index.htmlUI_get_input_flags.htmlUI_get_method.htmlUI_get_result_length.htmlUI_get_result_maxsize.htmlUI_get_result_minsize.htmlUI_get_result_string_length.htmlUI_get_string_type.htmlUI_method_get_closer.htmlUI_method_get_data_destructor.htmlUI_method_get_data_duplicator.htmlUI_method_get_ex_data.htmlUI_method_get_flusher.htmlUI_method_get_opener.htmlUI_method_get_prompt_constructor.htmlUI_method_get_reader.htmlUI_method_get_writer.htmlUI_method_set_closer.htmlUI_method_set_data_duplicator.htmlUI_method_set_ex_data.htmlUI_method_set_flusher.htmlUI_method_set_opener.htmlUI_method_set_prompt_constructor.htmlUI_method_set_reader.htmlUI_method_set_writer.htmlUI_new.htmlUI_new_method.htmlUI_null.htmlUI_process.htmlUI_set_default_method.htmlUI_set_ex_data.htmlUI_set_method.htmlUI_set_result.htmlUI_set_result_ex.htmlUI_string_types.htmlUSERNOTICE_free.htmlUSERNOTICE_new.htmlX509V3_EXT_d2i.htmlX509V3_EXT_i2d.htmlX509V3_add1_i2d.htmlX509V3_get_d2i.htmlX509_ALGOR_cmp.htmlX509_ALGOR_copy.htmlX509_ALGOR_dup.htmlX509_ALGOR_free.htmlX509_ALGOR_get0.htmlX509_ALGOR_new.htmlX509_ALGOR_set0.htmlX509_ALGOR_set_md.htmlX509_ATTRIBUTE_dup.htmlX509_ATTRIBUTE_free.htmlX509_ATTRIBUTE_new.htmlX509_CERT_AUX_free.htmlX509_CERT_AUX_new.htmlX509_CINF_free.htmlX509_CINF_new.htmlX509_CRL_INFO_free.htmlX509_CRL_INFO_new.htmlX509_CRL_add0_revoked.htmlX509_CRL_add1_ext_i2d.htmlX509_CRL_add_ext.htmlX509_CRL_cmp.htmlX509_CRL_delete_ext.htmlX509_CRL_digest.htmlX509_CRL_dup.htmlX509_CRL_free.htmlX509_CRL_get0_by_cert.htmlX509_CRL_get0_by_serial.htmlX509_CRL_get0_extensions.htmlX509_CRL_get0_lastUpdate.htmlX509_CRL_get0_nextUpdate.htmlX509_CRL_get0_signature.htmlX509_CRL_get_REVOKED.htmlX509_CRL_get_ext.htmlX509_CRL_get_ext_by_NID.htmlX509_CRL_get_ext_by_OBJ.htmlX509_CRL_get_ext_by_critical.htmlX509_CRL_get_ext_count.htmlX509_CRL_get_ext_d2i.htmlX509_CRL_get_issuer.htmlX509_CRL_get_signature_nid.htmlX509_CRL_get_version.htmlX509_CRL_match.htmlX509_CRL_new.htmlX509_CRL_set1_lastUpdate.htmlX509_CRL_set1_nextUpdate.htmlX509_CRL_set_issuer_name.htmlX509_CRL_set_version.htmlX509_CRL_sign.htmlX509_CRL_sign_ctx.htmlX509_CRL_sort.htmlX509_CRL_verify.htmlX509_EXTENSION_create_by_NID.htmlX509_EXTENSION_create_by_OBJ.htmlX509_EXTENSION_dup.htmlX509_EXTENSION_free.htmlX509_EXTENSION_get_critical.htmlX509_EXTENSION_get_data.htmlX509_EXTENSION_get_object.htmlX509_EXTENSION_new.htmlX509_EXTENSION_set_critical.htmlX509_EXTENSION_set_data.htmlX509_EXTENSION_set_object.htmlX509_LOOKUP.htmlX509_LOOKUP_METHOD.htmlX509_LOOKUP_TYPE.htmlX509_LOOKUP_add_dir.htmlX509_LOOKUP_by_alias.htmlX509_LOOKUP_by_fingerprint.htmlX509_LOOKUP_by_issuer_serial.htmlX509_LOOKUP_by_subject.htmlX509_LOOKUP_ctrl.htmlX509_LOOKUP_ctrl_fn.htmlX509_LOOKUP_file.htmlX509_LOOKUP_free.htmlX509_LOOKUP_get_by_alias_fn.htmlX509_LOOKUP_get_by_fingerprint_fn.htmlX509_LOOKUP_get_by_issuer_serial_fn.htmlX509_LOOKUP_get_by_subject_fn.htmlX509_LOOKUP_get_method_data.htmlX509_LOOKUP_get_store.htmlX509_LOOKUP_hash_dir.htmlX509_LOOKUP_init.htmlX509_LOOKUP_load_file.htmlX509_LOOKUP_meth_free.htmlX509_LOOKUP_meth_get_ctrl.htmlX509_LOOKUP_meth_get_free.htmlX509_LOOKUP_meth_get_get_by_alias.htmlX509_LOOKUP_meth_get_get_by_fingerprint.htmlX509_LOOKUP_meth_get_get_by_issuer_serial.htmlX509_LOOKUP_meth_get_get_by_subject.htmlX509_LOOKUP_meth_get_init.htmlX509_LOOKUP_meth_get_new_item.htmlX509_LOOKUP_meth_get_shutdown.htmlX509_LOOKUP_meth_new.htmlX509_LOOKUP_meth_set_ctrl.htmlX509_LOOKUP_meth_set_free.htmlX509_LOOKUP_meth_set_get_by_alias.htmlX509_LOOKUP_meth_set_get_by_fingerprint.htmlX509_LOOKUP_meth_set_get_by_issuer_serial.htmlX509_LOOKUP_meth_set_get_by_subject.htmlX509_LOOKUP_meth_set_init.htmlX509_LOOKUP_meth_set_new_item.htmlX509_LOOKUP_meth_set_shutdown.htmlX509_LOOKUP_new.htmlX509_LOOKUP_set_method_data.htmlX509_LOOKUP_shutdown.htmlX509_NAME_ENTRY_create_by_NID.htmlX509_NAME_ENTRY_create_by_OBJ.htmlX509_NAME_ENTRY_create_by_txt.htmlX509_NAME_ENTRY_dup.htmlX509_NAME_ENTRY_free.htmlX509_NAME_ENTRY_get_data.htmlX509_NAME_ENTRY_get_object.htmlX509_NAME_ENTRY_new.htmlX509_NAME_ENTRY_set_data.htmlX509_NAME_ENTRY_set_object.htmlX509_NAME_add_entry.htmlX509_NAME_add_entry_by_NID.htmlX509_NAME_add_entry_by_OBJ.htmlX509_NAME_add_entry_by_txt.htmlX509_NAME_cmp.htmlX509_NAME_delete_entry.htmlX509_NAME_digest.htmlX509_NAME_dup.htmlX509_NAME_entry_count.htmlX509_NAME_free.htmlX509_NAME_get0_der.htmlX509_NAME_get_entry.htmlX509_NAME_get_index_by_NID.htmlX509_NAME_get_index_by_OBJ.htmlX509_NAME_get_text_by_NID.htmlX509_NAME_get_text_by_OBJ.htmlX509_NAME_new.htmlX509_NAME_oneline.htmlX509_NAME_print.htmlX509_NAME_print_ex.htmlX509_NAME_print_ex_fp.htmlX509_OBJECT_set1_X509.htmlX509_OBJECT_set1_X509_CRL.htmlX509_PUBKEY_free.htmlX509_PUBKEY_get.htmlX509_PUBKEY_get0.htmlX509_PUBKEY_get0_param.htmlX509_PUBKEY_new.htmlX509_PUBKEY_set.htmlX509_PUBKEY_set0_param.htmlX509_REQ_INFO_free.htmlX509_REQ_INFO_new.htmlX509_REQ_check_private_key.htmlX509_REQ_digest.htmlX509_REQ_dup.htmlX509_REQ_free.htmlX509_REQ_get0_pubkey.htmlX509_REQ_get0_signature.htmlX509_REQ_get_X509_PUBKEY.htmlX509_REQ_get_pubkey.htmlX509_REQ_get_signature_nid.htmlX509_REQ_get_subject_name.htmlX509_REQ_get_version.htmlX509_REQ_new.htmlX509_REQ_set0_signature.htmlX509_REQ_set1_signature_algo.htmlX509_REQ_set_pubkey.htmlX509_REQ_set_subject_name.htmlX509_REQ_set_version.htmlX509_REQ_sign.htmlX509_REQ_sign_ctx.htmlX509_REQ_verify.htmlX509_REVOKED_add1_ext_i2d.htmlX509_REVOKED_add_ext.htmlX509_REVOKED_delete_ext.htmlX509_REVOKED_dup.htmlX509_REVOKED_free.htmlX509_REVOKED_get0_extensions.htmlX509_REVOKED_get0_revocationDate.htmlX509_REVOKED_get0_serialNumber.htmlX509_REVOKED_get_ext.htmlX509_REVOKED_get_ext_by_NID.htmlX509_REVOKED_get_ext_by_OBJ.htmlX509_REVOKED_get_ext_by_critical.htmlX509_REVOKED_get_ext_count.htmlX509_REVOKED_get_ext_d2i.htmlX509_REVOKED_new.htmlX509_REVOKED_set_revocationDate.htmlX509_REVOKED_set_serialNumber.htmlX509_SIG_INFO_get.htmlX509_SIG_INFO_set.htmlX509_SIG_free.htmlX509_SIG_get0.htmlX509_SIG_getm.htmlX509_SIG_new.htmlX509_STORE.htmlX509_STORE_CTX_cert_crl_fn.htmlX509_STORE_CTX_check_crl_fn.htmlX509_STORE_CTX_check_issued_fn.htmlX509_STORE_CTX_check_policy_fn.htmlX509_STORE_CTX_check_revocation_fn.htmlX509_STORE_CTX_cleanup.htmlX509_STORE_CTX_cleanup_fn.htmlX509_STORE_CTX_free.htmlX509_STORE_CTX_get0_cert.htmlX509_STORE_CTX_get0_chain.htmlX509_STORE_CTX_get0_param.htmlX509_STORE_CTX_get0_untrusted.htmlX509_STORE_CTX_get1_chain.htmlX509_STORE_CTX_get_cert_crl.htmlX509_STORE_CTX_get_check_crl.htmlX509_STORE_CTX_get_check_issued.htmlX509_STORE_CTX_get_check_policy.htmlX509_STORE_CTX_get_check_revocation.htmlX509_STORE_CTX_get_cleanup.htmlX509_STORE_CTX_get_crl_fn.htmlX509_STORE_CTX_get_current_cert.htmlX509_STORE_CTX_get_error.htmlX509_STORE_CTX_get_error_depth.htmlX509_STORE_CTX_get_ex_data.htmlX509_STORE_CTX_get_ex_new_index.htmlX509_STORE_CTX_get_get_crl.htmlX509_STORE_CTX_get_get_issuer.htmlX509_STORE_CTX_get_issuer_fn.htmlX509_STORE_CTX_get_lookup_certs.htmlX509_STORE_CTX_get_lookup_crls.htmlX509_STORE_CTX_get_num_untrusted.htmlX509_STORE_CTX_get_verify.htmlX509_STORE_CTX_get_verify_cb.htmlX509_STORE_CTX_init.htmlX509_STORE_CTX_lookup_certs_fn.htmlX509_STORE_CTX_lookup_crls_fn.htmlX509_STORE_CTX_new.htmlX509_STORE_CTX_purpose_inherit.htmlX509_STORE_CTX_set0_crls.htmlX509_STORE_CTX_set0_param.htmlX509_STORE_CTX_set0_trusted_stack.htmlX509_STORE_CTX_set0_untrusted.htmlX509_STORE_CTX_set0_verified_chain.htmlX509_STORE_CTX_set_cert.htmlX509_STORE_CTX_set_current_cert.htmlX509_STORE_CTX_set_default.htmlX509_STORE_CTX_set_error.htmlX509_STORE_CTX_set_error_depth.htmlX509_STORE_CTX_set_ex_data.htmlX509_STORE_CTX_set_purpose.htmlX509_STORE_CTX_set_trust.htmlX509_STORE_CTX_set_verify.htmlX509_STORE_CTX_set_verify_cb.htmlX509_STORE_CTX_verify_cb.htmlX509_STORE_CTX_verify_fn.htmlX509_STORE_add_cert.htmlX509_STORE_add_crl.htmlX509_STORE_add_lookup.htmlX509_STORE_free.htmlX509_STORE_get0_objects.htmlX509_STORE_get0_param.htmlX509_STORE_get_cert_crl.htmlX509_STORE_get_check_crl.htmlX509_STORE_get_check_issued.htmlX509_STORE_get_check_policy.htmlX509_STORE_get_check_revocation.htmlX509_STORE_get_cleanup.htmlX509_STORE_get_ex_data.htmlX509_STORE_get_ex_new_index.htmlX509_STORE_get_get_crl.htmlX509_STORE_get_get_issuer.htmlX509_STORE_get_lookup_certs.htmlX509_STORE_get_lookup_crls.htmlX509_STORE_get_verify_cb.htmlX509_STORE_load_locations.htmlX509_STORE_lock.htmlX509_STORE_new.htmlX509_STORE_set1_param.htmlX509_STORE_set_cert_crl.htmlX509_STORE_set_check_crl.htmlX509_STORE_set_check_issued.htmlX509_STORE_set_check_policy.htmlX509_STORE_set_check_revocation.htmlX509_STORE_set_cleanup.htmlX509_STORE_set_default_paths.htmlX509_STORE_set_depth.htmlX509_STORE_set_ex_data.htmlX509_STORE_set_flags.htmlX509_STORE_set_get_crl.htmlX509_STORE_set_get_issuer.htmlX509_STORE_set_lookup_certs.htmlX509_STORE_set_lookup_crls.htmlX509_STORE_set_lookup_crls_cb.htmlX509_STORE_set_purpose.htmlX509_STORE_set_trust.htmlX509_STORE_set_verify.htmlX509_STORE_set_verify_cb.htmlX509_STORE_set_verify_cb_func.htmlX509_STORE_set_verify_func.htmlX509_STORE_unlock.htmlX509_STORE_up_ref.htmlX509_VAL_free.htmlX509_VAL_new.htmlX509_VERIFY_PARAM_add0_policy.htmlX509_VERIFY_PARAM_add1_host.htmlX509_VERIFY_PARAM_clear_flags.htmlX509_VERIFY_PARAM_get0_peername.htmlX509_VERIFY_PARAM_get_auth_level.htmlX509_VERIFY_PARAM_get_depth.htmlX509_VERIFY_PARAM_get_flags.htmlX509_VERIFY_PARAM_get_hostflags.htmlX509_VERIFY_PARAM_get_inh_flags.htmlX509_VERIFY_PARAM_get_time.htmlX509_VERIFY_PARAM_set1_email.htmlX509_VERIFY_PARAM_set1_host.htmlX509_VERIFY_PARAM_set1_ip.htmlX509_VERIFY_PARAM_set1_ip_asc.htmlX509_VERIFY_PARAM_set1_policies.htmlX509_VERIFY_PARAM_set_auth_level.htmlX509_VERIFY_PARAM_set_depth.htmlX509_VERIFY_PARAM_set_flags.htmlX509_VERIFY_PARAM_set_hostflags.htmlX509_VERIFY_PARAM_set_inh_flags.htmlX509_VERIFY_PARAM_set_purpose.htmlX509_VERIFY_PARAM_set_time.htmlX509_VERIFY_PARAM_set_trust.htmlX509_add1_ext_i2d.htmlX509_add_ext.htmlX509_chain_up_ref.htmlX509_check_ca.htmlX509_check_email.htmlX509_check_host.htmlX509_check_ip.htmlX509_check_ip_asc.htmlX509_check_issued.htmlX509_check_private_key.htmlX509_check_purpose.htmlX509_cmp.htmlX509_cmp_current_time.htmlX509_cmp_time.htmlX509_delete_ext.htmlX509_digest.htmlX509_dup.htmlX509_free.htmlX509_get0_authority_issuer.htmlX509_get0_authority_key_id.htmlX509_get0_authority_serial.htmlX509_get0_extensions.htmlX509_get0_notAfter.htmlX509_get0_notBefore.htmlX509_get0_pubkey.htmlX509_get0_serialNumber.htmlX509_get0_signature.htmlX509_get0_subject_key_id.htmlX509_get0_tbs_sigalg.htmlX509_get0_uids.htmlX509_get_X509_PUBKEY.htmlX509_get_ex_data.htmlX509_get_ex_new_index.htmlX509_get_ext.htmlX509_get_ext_by_NID.htmlX509_get_ext_by_OBJ.htmlX509_get_ext_by_critical.htmlX509_get_ext_count.htmlX509_get_ext_d2i.htmlX509_get_extended_key_usage.htmlX509_get_extension_flags.htmlX509_get_issuer_name.htmlX509_get_key_usage.htmlX509_get_pathlen.htmlX509_get_proxy_pathlen.htmlX509_get_pubkey.htmlX509_get_serialNumber.htmlX509_get_signature_info.htmlX509_get_signature_nid.htmlX509_get_subject_name.htmlX509_get_version.htmlX509_getm_notAfter.htmlX509_getm_notBefore.htmlX509_issuer_and_serial_cmp.htmlX509_issuer_name_cmp.htmlX509_load_cert_crl_file.htmlX509_load_cert_file.htmlX509_load_crl_file.htmlX509_new.htmlX509_pubkey_digest.htmlX509_set1_notAfter.htmlX509_set1_notBefore.htmlX509_set_ex_data.htmlX509_set_issuer_name.htmlX509_set_proxy_flag.htmlX509_set_proxy_pathlen.htmlX509_set_pubkey.htmlX509_set_serialNumber.htmlX509_set_subject_name.htmlX509_set_version.htmlX509_sign.htmlX509_sign_ctx.htmlX509_subject_name_cmp.htmlX509_time_adj.htmlX509_time_adj_ex.htmlX509_up_ref.htmlX509_verify.htmlX509_verify_cert.htmlX509_verify_cert_error_string.htmlX509v3_add_ext.htmlX509v3_delete_ext.htmlX509v3_get_ext.htmlX509v3_get_ext_by_NID.htmlX509v3_get_ext_by_OBJ.htmlX509v3_get_ext_by_critical.htmlX509v3_get_ext_count.htmlcustom_ext_add_cb.htmlcustom_ext_free_cb.htmlcustom_ext_parse_cb.htmld2i_ACCESS_DESCRIPTION.htmld2i_ADMISSIONS.htmld2i_ADMISSION_SYNTAX.htmld2i_ASIdOrRange.htmld2i_ASIdentifierChoice.htmld2i_ASIdentifiers.htmld2i_ASN1_BIT_STRING.htmld2i_ASN1_BMPSTRING.htmld2i_ASN1_ENUMERATED.htmld2i_ASN1_GENERALIZEDTIME.htmld2i_ASN1_GENERALSTRING.htmld2i_ASN1_IA5STRING.htmld2i_ASN1_INTEGER.htmld2i_ASN1_NULL.htmld2i_ASN1_OBJECT.htmld2i_ASN1_OCTET_STRING.htmld2i_ASN1_PRINTABLE.htmld2i_ASN1_PRINTABLESTRING.htmld2i_ASN1_SEQUENCE_ANY.htmld2i_ASN1_SET_ANY.htmld2i_ASN1_T61STRING.htmld2i_ASN1_TIME.htmld2i_ASN1_TYPE.htmld2i_ASN1_UINTEGER.htmld2i_ASN1_UNIVERSALSTRING.htmld2i_ASN1_UTCTIME.htmld2i_ASN1_UTF8STRING.htmld2i_ASN1_VISIBLESTRING.htmld2i_ASRange.htmld2i_AUTHORITY_INFO_ACCESS.htmld2i_AUTHORITY_KEYID.htmld2i_AutoPrivateKey.htmld2i_BASIC_CONSTRAINTS.htmld2i_CERTIFICATEPOLICIES.htmld2i_CMS_ContentInfo.htmld2i_CMS_ReceiptRequest.htmld2i_CMS_bio.htmld2i_CRL_DIST_POINTS.htmld2i_DHparams.htmld2i_DHxparams.htmld2i_DIRECTORYSTRING.htmld2i_DISPLAYTEXT.htmld2i_DIST_POINT.htmld2i_DIST_POINT_NAME.htmld2i_DSAPrivateKey.htmld2i_DSAPrivateKey_bio.htmld2i_DSAPrivateKey_fp.htmld2i_DSAPublicKey.htmld2i_DSA_PUBKEY.htmld2i_DSA_PUBKEY_bio.htmld2i_DSA_PUBKEY_fp.htmld2i_DSA_SIG.htmld2i_DSAparams.htmld2i_ECDSA_SIG.htmld2i_ECPKParameters.htmld2i_ECParameters.htmld2i_ECPrivateKey.htmld2i_ECPrivateKey_bio.htmld2i_ECPrivateKey_fp.htmld2i_EC_PUBKEY.htmld2i_EC_PUBKEY_bio.htmld2i_EC_PUBKEY_fp.htmld2i_EDIPARTYNAME.htmld2i_ESS_CERT_ID.htmld2i_ESS_ISSUER_SERIAL.htmld2i_ESS_SIGNING_CERT.htmld2i_EXTENDED_KEY_USAGE.htmld2i_GENERAL_NAME.htmld2i_GENERAL_NAMES.htmld2i_IPAddressChoice.htmld2i_IPAddressFamily.htmld2i_IPAddressOrRange.htmld2i_IPAddressRange.htmld2i_ISSUING_DIST_POINT.htmld2i_NAMING_AUTHORITY.htmld2i_NETSCAPE_CERT_SEQUENCE.htmld2i_NETSCAPE_SPKAC.htmld2i_NETSCAPE_SPKI.htmld2i_NOTICEREF.htmld2i_OCSP_BASICRESP.htmld2i_OCSP_CERTID.htmld2i_OCSP_CERTSTATUS.htmld2i_OCSP_CRLID.htmld2i_OCSP_ONEREQ.htmld2i_OCSP_REQINFO.htmld2i_OCSP_REQUEST.htmld2i_OCSP_RESPBYTES.htmld2i_OCSP_RESPDATA.htmld2i_OCSP_RESPID.htmld2i_OCSP_RESPONSE.htmld2i_OCSP_REVOKEDINFO.htmld2i_OCSP_SERVICELOC.htmld2i_OCSP_SIGNATURE.htmld2i_OCSP_SINGLERESP.htmld2i_OTHERNAME.htmld2i_PBE2PARAM.htmld2i_PBEPARAM.htmld2i_PBKDF2PARAM.htmld2i_PKCS12.htmld2i_PKCS12_BAGS.htmld2i_PKCS12_MAC_DATA.htmld2i_PKCS12_SAFEBAG.htmld2i_PKCS12_bio.htmld2i_PKCS12_fp.htmld2i_PKCS7.htmld2i_PKCS7_DIGEST.htmld2i_PKCS7_ENCRYPT.htmld2i_PKCS7_ENC_CONTENT.htmld2i_PKCS7_ENVELOPE.htmld2i_PKCS7_ISSUER_AND_SERIAL.htmld2i_PKCS7_RECIP_INFO.htmld2i_PKCS7_SIGNED.htmld2i_PKCS7_SIGNER_INFO.htmld2i_PKCS7_SIGN_ENVELOPE.htmld2i_PKCS7_bio.htmld2i_PKCS7_fp.htmld2i_PKCS8PrivateKey_bio.htmld2i_PKCS8PrivateKey_fp.htmld2i_PKCS8_PRIV_KEY_INFO.htmld2i_PKCS8_PRIV_KEY_INFO_bio.htmld2i_PKCS8_PRIV_KEY_INFO_fp.htmld2i_PKCS8_bio.htmld2i_PKCS8_fp.htmld2i_PKEY_USAGE_PERIOD.htmld2i_POLICYINFO.htmld2i_POLICYQUALINFO.htmld2i_PROFESSION_INFO.htmld2i_PROXY_CERT_INFO_EXTENSION.htmld2i_PROXY_POLICY.htmld2i_PUBKEY.htmld2i_PUBKEY_bio.htmld2i_PUBKEY_fp.htmld2i_PrivateKey.htmld2i_PrivateKey_bio.htmld2i_PrivateKey_fp.htmld2i_PublicKey.htmld2i_RSAPrivateKey.htmld2i_RSAPrivateKey_bio.htmld2i_RSAPrivateKey_fp.htmld2i_RSAPublicKey.htmld2i_RSAPublicKey_bio.htmld2i_RSAPublicKey_fp.htmld2i_RSA_OAEP_PARAMS.htmld2i_RSA_PSS_PARAMS.htmld2i_RSA_PUBKEY.htmld2i_RSA_PUBKEY_bio.htmld2i_RSA_PUBKEY_fp.htmld2i_SCRYPT_PARAMS.htmld2i_SCT_LIST.htmld2i_SSL_SESSION.htmld2i_SXNET.htmld2i_SXNETID.htmld2i_TS_ACCURACY.htmld2i_TS_MSG_IMPRINT.htmld2i_TS_MSG_IMPRINT_bio.htmld2i_TS_MSG_IMPRINT_fp.htmld2i_TS_REQ.htmld2i_TS_REQ_bio.htmld2i_TS_REQ_fp.htmld2i_TS_RESP.htmld2i_TS_RESP_bio.htmld2i_TS_RESP_fp.htmld2i_TS_STATUS_INFO.htmld2i_TS_TST_INFO.htmld2i_TS_TST_INFO_bio.htmld2i_TS_TST_INFO_fp.htmld2i_USERNOTICE.htmld2i_X509.htmld2i_X509_ALGOR.htmld2i_X509_ALGORS.htmld2i_X509_ATTRIBUTE.htmld2i_X509_AUX.htmld2i_X509_CERT_AUX.htmld2i_X509_CINF.htmld2i_X509_CRL.htmld2i_X509_CRL_INFO.htmld2i_X509_CRL_bio.htmld2i_X509_CRL_fp.htmld2i_X509_EXTENSION.htmld2i_X509_EXTENSIONS.htmld2i_X509_NAME.htmld2i_X509_NAME_ENTRY.htmld2i_X509_PUBKEY.htmld2i_X509_REQ.htmld2i_X509_REQ_INFO.htmld2i_X509_REQ_bio.htmld2i_X509_REQ_fp.htmld2i_X509_REVOKED.htmld2i_X509_SIG.htmld2i_X509_VAL.htmld2i_X509_bio.htmld2i_X509_fp.htmli2d_ACCESS_DESCRIPTION.htmli2d_ADMISSIONS.htmli2d_ADMISSION_SYNTAX.htmli2d_ASIdOrRange.htmli2d_ASIdentifierChoice.htmli2d_ASIdentifiers.htmli2d_ASN1_BIT_STRING.htmli2d_ASN1_BMPSTRING.htmli2d_ASN1_ENUMERATED.htmli2d_ASN1_GENERALIZEDTIME.htmli2d_ASN1_GENERALSTRING.htmli2d_ASN1_IA5STRING.htmli2d_ASN1_INTEGER.htmli2d_ASN1_NULL.htmli2d_ASN1_OBJECT.htmli2d_ASN1_OCTET_STRING.htmli2d_ASN1_PRINTABLE.htmli2d_ASN1_PRINTABLESTRING.htmli2d_ASN1_SEQUENCE_ANY.htmli2d_ASN1_SET_ANY.htmli2d_ASN1_T61STRING.htmli2d_ASN1_TIME.htmli2d_ASN1_TYPE.htmli2d_ASN1_UNIVERSALSTRING.htmli2d_ASN1_UTCTIME.htmli2d_ASN1_UTF8STRING.htmli2d_ASN1_VISIBLESTRING.htmli2d_ASN1_bio_stream.htmli2d_ASRange.htmli2d_AUTHORITY_INFO_ACCESS.htmli2d_AUTHORITY_KEYID.htmli2d_BASIC_CONSTRAINTS.htmli2d_CERTIFICATEPOLICIES.htmli2d_CMS_ContentInfo.htmli2d_CMS_ReceiptRequest.htmli2d_CMS_bio.htmli2d_CMS_bio_stream.htmli2d_CRL_DIST_POINTS.htmli2d_DHparams.htmli2d_DHxparams.htmli2d_DIRECTORYSTRING.htmli2d_DISPLAYTEXT.htmli2d_DIST_POINT.htmli2d_DIST_POINT_NAME.htmli2d_DSAPrivateKey.htmli2d_DSAPrivateKey_bio.htmli2d_DSAPrivateKey_fp.htmli2d_DSAPublicKey.htmli2d_DSA_PUBKEY.htmli2d_DSA_PUBKEY_bio.htmli2d_DSA_PUBKEY_fp.htmli2d_DSA_SIG.htmli2d_DSAparams.htmli2d_ECDSA_SIG.htmli2d_ECPKParameters.htmli2d_ECParameters.htmli2d_ECPrivateKey.htmli2d_ECPrivateKey_bio.htmli2d_ECPrivateKey_fp.htmli2d_EC_PUBKEY.htmli2d_EC_PUBKEY_bio.htmli2d_EC_PUBKEY_fp.htmli2d_EDIPARTYNAME.htmli2d_ESS_CERT_ID.htmli2d_ESS_ISSUER_SERIAL.htmli2d_ESS_SIGNING_CERT.htmli2d_EXTENDED_KEY_USAGE.htmli2d_GENERAL_NAME.htmli2d_GENERAL_NAMES.htmli2d_IPAddressChoice.htmli2d_IPAddressFamily.htmli2d_IPAddressOrRange.htmli2d_IPAddressRange.htmli2d_ISSUING_DIST_POINT.htmli2d_NAMING_AUTHORITY.htmli2d_NETSCAPE_CERT_SEQUENCE.htmli2d_NETSCAPE_SPKAC.htmli2d_NETSCAPE_SPKI.htmli2d_NOTICEREF.htmli2d_OCSP_BASICRESP.htmli2d_OCSP_CERTID.htmli2d_OCSP_CERTSTATUS.htmli2d_OCSP_CRLID.htmli2d_OCSP_ONEREQ.htmli2d_OCSP_REQINFO.htmli2d_OCSP_REQUEST.htmli2d_OCSP_RESPBYTES.htmli2d_OCSP_RESPDATA.htmli2d_OCSP_RESPID.htmli2d_OCSP_RESPONSE.htmli2d_OCSP_REVOKEDINFO.htmli2d_OCSP_SERVICELOC.htmli2d_OCSP_SIGNATURE.htmli2d_OCSP_SINGLERESP.htmli2d_OTHERNAME.htmli2d_PBE2PARAM.htmli2d_PBEPARAM.htmli2d_PBKDF2PARAM.htmli2d_PKCS12.htmli2d_PKCS12_BAGS.htmli2d_PKCS12_MAC_DATA.htmli2d_PKCS12_SAFEBAG.htmli2d_PKCS12_bio.htmli2d_PKCS12_fp.htmli2d_PKCS7.htmli2d_PKCS7_DIGEST.htmli2d_PKCS7_ENCRYPT.htmli2d_PKCS7_ENC_CONTENT.htmli2d_PKCS7_ENVELOPE.htmli2d_PKCS7_ISSUER_AND_SERIAL.htmli2d_PKCS7_NDEF.htmli2d_PKCS7_RECIP_INFO.htmli2d_PKCS7_SIGNED.htmli2d_PKCS7_SIGNER_INFO.htmli2d_PKCS7_SIGN_ENVELOPE.htmli2d_PKCS7_bio.htmli2d_PKCS7_bio_stream.htmli2d_PKCS7_fp.htmli2d_PKCS8PrivateKeyInfo_bio.htmli2d_PKCS8PrivateKeyInfo_fp.htmli2d_PKCS8PrivateKey_bio.htmli2d_PKCS8PrivateKey_fp.htmli2d_PKCS8PrivateKey_nid_bio.htmli2d_PKCS8PrivateKey_nid_fp.htmli2d_PKCS8_PRIV_KEY_INFO.htmli2d_PKCS8_PRIV_KEY_INFO_bio.htmli2d_PKCS8_PRIV_KEY_INFO_fp.htmli2d_PKCS8_bio.htmli2d_PKCS8_fp.htmli2d_PKEY_USAGE_PERIOD.htmli2d_POLICYINFO.htmli2d_POLICYQUALINFO.htmli2d_PROFESSION_INFO.htmli2d_PROXY_CERT_INFO_EXTENSION.htmli2d_PROXY_POLICY.htmli2d_PUBKEY.htmli2d_PUBKEY_bio.htmli2d_PUBKEY_fp.htmli2d_PrivateKey.htmli2d_PublicKey.htmli2d_RSAPrivateKey.htmli2d_RSAPrivateKey_bio.htmli2d_RSAPrivateKey_fp.htmli2d_RSAPublicKey.htmli2d_RSAPublicKey_bio.htmli2d_RSAPublicKey_fp.htmli2d_RSA_OAEP_PARAMS.htmli2d_RSA_PSS_PARAMS.htmli2d_RSA_PUBKEY.htmli2d_RSA_PUBKEY_bio.htmli2d_RSA_PUBKEY_fp.htmli2d_SCRYPT_PARAMS.htmli2d_SCT_LIST.htmli2d_SSL_SESSION.htmli2d_SXNET.htmli2d_SXNETID.htmli2d_TS_ACCURACY.htmli2d_TS_MSG_IMPRINT.htmli2d_TS_MSG_IMPRINT_bio.htmli2d_TS_MSG_IMPRINT_fp.htmli2d_TS_REQ.htmli2d_TS_REQ_bio.htmli2d_TS_REQ_fp.htmli2d_TS_RESP.htmli2d_TS_RESP_bio.htmli2d_TS_RESP_fp.htmli2d_TS_STATUS_INFO.htmli2d_TS_TST_INFO.htmli2d_TS_TST_INFO_bio.htmli2d_TS_TST_INFO_fp.htmli2d_USERNOTICE.htmli2d_X509.htmli2d_X509_ALGOR.htmli2d_X509_ALGORS.htmli2d_X509_ATTRIBUTE.htmli2d_X509_AUX.htmli2d_X509_CERT_AUX.htmli2d_X509_CINF.htmli2d_X509_CRL.htmli2d_X509_CRL_INFO.htmli2d_X509_CRL_bio.htmli2d_X509_CRL_fp.htmli2d_X509_EXTENSION.htmli2d_X509_EXTENSIONS.htmli2d_X509_NAME.htmli2d_X509_NAME_ENTRY.htmli2d_X509_PUBKEY.htmli2d_X509_REQ.htmli2d_X509_REQ_INFO.htmli2d_X509_REQ_bio.htmli2d_X509_REQ_fp.htmli2d_X509_REVOKED.htmli2d_X509_SIG.htmli2d_X509_VAL.htmli2d_X509_bio.htmli2d_X509_fp.htmli2d_re_X509_CRL_tbs.htmli2d_re_X509_REQ_tbs.htmli2d_re_X509_tbs.htmli2o_SCT.htmli2o_SCT_LIST.htmli2t_ASN1_OBJECT.htmllh_TYPE_delete.htmllh_TYPE_doall.htmllh_TYPE_doall_arg.htmllh_TYPE_error.htmllh_TYPE_free.htmllh_TYPE_insert.htmllh_TYPE_new.htmllh_TYPE_retrieve.htmlo2i_SCT.htmlo2i_SCT_LIST.htmlpem_password_cb.htmlsk_TYPE_deep_copy.htmlsk_TYPE_delete.htmlsk_TYPE_delete_ptr.htmlsk_TYPE_dup.htmlsk_TYPE_find.htmlsk_TYPE_find_ex.htmlsk_TYPE_free.htmlsk_TYPE_insert.htmlsk_TYPE_is_sorted.htmlsk_TYPE_new.htmlsk_TYPE_new_null.htmlsk_TYPE_new_reserve.htmlsk_TYPE_num.htmlsk_TYPE_pop.htmlsk_TYPE_pop_free.htmlsk_TYPE_push.htmlsk_TYPE_reserve.htmlsk_TYPE_set.htmlsk_TYPE_set_cmp_func.htmlsk_TYPE_shift.htmlsk_TYPE_sort.htmlsk_TYPE_unshift.htmlsk_TYPE_value.htmlsk_TYPE_zero.htmlssl_ct_validation_cb.html
man5
man7
man
man1
CA.pl.1asn1parse.1c_rehash.1ca.1ciphers.1cms.1crl.1crl2pkcs7.1dgst.1dhparam.1dsa.1dsaparam.1ec.1ecparam.1enc.1engine.1errstr.1gendsa.1genpkey.1genrsa.1list.1nseq.1ocsp.1openssl-asn1parse.1openssl-c_rehash.1openssl-ca.1openssl-ciphers.1openssl-cms.1openssl-crl.1openssl-crl2pkcs7.1openssl-dgst.1openssl-dhparam.1openssl-dsa.1openssl-dsaparam.1openssl-ec.1openssl-ecparam.1openssl-enc.1openssl-engine.1openssl-errstr.1openssl-gendsa.1openssl-genpkey.1openssl-genrsa.1openssl-list.1openssl-nseq.1openssl-ocsp.1openssl-passwd.1openssl-pkcs12.1openssl-pkcs7.1openssl-pkcs8.1openssl-pkey.1openssl-pkeyparam.1openssl-pkeyutl.1openssl-prime.1openssl-rand.1openssl-rehash.1openssl-req.1openssl-rsa.1openssl-rsautl.1openssl-s_client.1openssl-s_server.1openssl-s_time.1openssl-sess_id.1openssl-smime.1openssl-speed.1openssl-spkac.1openssl-srp.1openssl-storeutl.1openssl-ts.1openssl-tsget.1openssl-verify.1openssl-version.1openssl-x509.1openssl.1passwd.1pkcs12.1pkcs7.1pkcs8.1pkey.1pkeyparam.1pkeyutl.1prime.1rand.1rehash.1req.1rsa.1rsautl.1s_client.1s_server.1s_time.1sess_id.1smime.1speed.1spkac.1srp.1storeutl.1ts.1tsget.1verify.1version.1x509.1
man3
ACCESS_DESCRIPTION_free.3ACCESS_DESCRIPTION_new.3ADMISSIONS.3ADMISSIONS_free.3ADMISSIONS_get0_admissionAuthority.3ADMISSIONS_get0_namingAuthority.3ADMISSIONS_get0_professionInfos.3ADMISSIONS_new.3ADMISSIONS_set0_admissionAuthority.3ADMISSIONS_set0_namingAuthority.3ADMISSIONS_set0_professionInfos.3ADMISSION_SYNTAX.3ADMISSION_SYNTAX_free.3ADMISSION_SYNTAX_get0_admissionAuthority.3ADMISSION_SYNTAX_get0_contentsOfAdmissions.3ADMISSION_SYNTAX_new.3ADMISSION_SYNTAX_set0_admissionAuthority.3ADMISSION_SYNTAX_set0_contentsOfAdmissions.3ASIdOrRange_free.3ASIdOrRange_new.3ASIdentifierChoice_free.3ASIdentifierChoice_new.3ASIdentifiers_free.3ASIdentifiers_new.3ASN1_ENUMERATED_get.3ASN1_ENUMERATED_get_int64.3ASN1_ENUMERATED_set.3ASN1_ENUMERATED_set_int64.3ASN1_ENUMERATED_to_BN.3ASN1_GENERALIZEDTIME_adj.3ASN1_GENERALIZEDTIME_check.3ASN1_GENERALIZEDTIME_print.3ASN1_GENERALIZEDTIME_set.3ASN1_GENERALIZEDTIME_set_string.3ASN1_INTEGER_get.3ASN1_INTEGER_get_int64.3ASN1_INTEGER_get_uint64.3ASN1_INTEGER_set.3ASN1_INTEGER_set_int64.3ASN1_INTEGER_set_uint64.3ASN1_INTEGER_to_BN.3ASN1_ITEM.3ASN1_ITEM_get.3ASN1_ITEM_lookup.3ASN1_OBJECT_free.3ASN1_OBJECT_new.3ASN1_STRING_TABLE.3ASN1_STRING_TABLE_add.3ASN1_STRING_TABLE_cleanup.3ASN1_STRING_TABLE_get.3ASN1_STRING_cmp.3ASN1_STRING_data.3ASN1_STRING_dup.3ASN1_STRING_free.3ASN1_STRING_get0_data.3ASN1_STRING_length.3ASN1_STRING_new.3ASN1_STRING_print.3ASN1_STRING_print_ex.3ASN1_STRING_print_ex_fp.3ASN1_STRING_set.3ASN1_STRING_to_UTF8.3ASN1_STRING_type.3ASN1_STRING_type_new.3ASN1_TIME_adj.3ASN1_TIME_check.3ASN1_TIME_cmp_time_t.3ASN1_TIME_compare.3ASN1_TIME_diff.3ASN1_TIME_normalize.3ASN1_TIME_print.3ASN1_TIME_set.3ASN1_TIME_set_string.3ASN1_TIME_set_string_X509.3ASN1_TIME_to_generalizedtime.3ASN1_TIME_to_tm.3ASN1_TYPE_cmp.3ASN1_TYPE_get.3ASN1_TYPE_pack_sequence.3ASN1_TYPE_set.3ASN1_TYPE_set1.3ASN1_TYPE_unpack_sequence.3ASN1_UTCTIME_adj.3ASN1_UTCTIME_check.3ASN1_UTCTIME_cmp_time_t.3ASN1_UTCTIME_print.3ASN1_UTCTIME_set.3ASN1_UTCTIME_set_string.3ASN1_add_oid_module.3ASN1_generate_nconf.3ASN1_generate_v3.3ASN1_tag2str.3ASRange_free.3ASRange_new.3ASYNC_WAIT_CTX_clear_fd.3ASYNC_WAIT_CTX_free.3ASYNC_WAIT_CTX_get_all_fds.3ASYNC_WAIT_CTX_get_changed_fds.3ASYNC_WAIT_CTX_get_fd.3ASYNC_WAIT_CTX_new.3ASYNC_WAIT_CTX_set_wait_fd.3ASYNC_block_pause.3ASYNC_cleanup_thread.3ASYNC_get_current_job.3ASYNC_get_wait_ctx.3ASYNC_init_thread.3ASYNC_is_capable.3ASYNC_pause_job.3ASYNC_start_job.3ASYNC_unblock_pause.3AUTHORITY_INFO_ACCESS_free.3AUTHORITY_INFO_ACCESS_new.3AUTHORITY_KEYID_free.3AUTHORITY_KEYID_new.3BASIC_CONSTRAINTS_free.3BASIC_CONSTRAINTS_new.3BF_cbc_encrypt.3BF_cfb64_encrypt.3BF_decrypt.3BF_ecb_encrypt.3BF_encrypt.3BF_ofb64_encrypt.3BF_options.3BF_set_key.3BIO_ADDR.3BIO_ADDRINFO.3BIO_ADDRINFO_address.3BIO_ADDRINFO_family.3BIO_ADDRINFO_free.3BIO_ADDRINFO_next.3BIO_ADDRINFO_protocol.3BIO_ADDRINFO_socktype.3BIO_ADDR_clear.3BIO_ADDR_family.3BIO_ADDR_free.3BIO_ADDR_hostname_string.3BIO_ADDR_new.3BIO_ADDR_path_string.3BIO_ADDR_rawaddress.3BIO_ADDR_rawmake.3BIO_ADDR_rawport.3BIO_ADDR_service_string.3BIO_accept_ex.3BIO_append_filename.3BIO_bind.3BIO_callback_ctrl.3BIO_callback_fn.3BIO_callback_fn_ex.3BIO_closesocket.3BIO_connect.3BIO_ctrl.3BIO_ctrl_get_read_request.3BIO_ctrl_get_write_guarantee.3BIO_ctrl_pending.3BIO_ctrl_reset_read_request.3BIO_ctrl_wpending.3BIO_debug_callback.3BIO_destroy_bio_pair.3BIO_do_accept.3BIO_do_connect.3BIO_do_handshake.3BIO_eof.3BIO_f_base64.3BIO_f_buffer.3BIO_f_cipher.3BIO_f_md.3BIO_f_null.3BIO_f_ssl.3BIO_find_type.3BIO_flush.3BIO_free.3BIO_free_all.3BIO_get_accept_ip_family.3BIO_get_accept_name.3BIO_get_accept_port.3BIO_get_bind_mode.3BIO_get_buffer_num_lines.3BIO_get_callback.3BIO_get_callback_arg.3BIO_get_callback_ex.3BIO_get_cipher_ctx.3BIO_get_cipher_status.3BIO_get_close.3BIO_get_conn_address.3BIO_get_conn_hostname.3BIO_get_conn_ip_family.3BIO_get_conn_port.3BIO_get_data.3BIO_get_ex_data.3BIO_get_ex_new_index.3BIO_get_fd.3BIO_get_fp.3BIO_get_info_callback.3BIO_get_init.3BIO_get_md.3BIO_get_md_ctx.3BIO_get_mem_data.3BIO_get_mem_ptr.3BIO_get_new_index.3BIO_get_num_renegotiates.3BIO_get_peer_name.3BIO_get_peer_port.3BIO_get_read_request.3BIO_get_retry_BIO.3BIO_get_retry_reason.3BIO_get_shutdown.3BIO_get_ssl.3BIO_get_write_buf_size.3BIO_get_write_guarantee.3BIO_gets.3BIO_hostserv_priorities.3BIO_info_cb.3BIO_int_ctrl.3BIO_listen.3BIO_lookup.3BIO_lookup_ex.3BIO_lookup_type.3BIO_make_bio_pair.3BIO_meth_free.3BIO_meth_get_callback_ctrl.3BIO_meth_get_create.3BIO_meth_get_ctrl.3BIO_meth_get_destroy.3BIO_meth_get_gets.3BIO_meth_get_puts.3BIO_meth_get_read.3BIO_meth_get_read_ex.3BIO_meth_get_write.3BIO_meth_get_write_ex.3BIO_meth_new.3BIO_meth_set_callback_ctrl.3BIO_meth_set_create.3BIO_meth_set_ctrl.3BIO_meth_set_destroy.3BIO_meth_set_gets.3BIO_meth_set_puts.3BIO_meth_set_read.3BIO_meth_set_read_ex.3BIO_meth_set_write.3BIO_meth_set_write_ex.3BIO_method_type.3BIO_new.3BIO_new_CMS.3BIO_new_accept.3BIO_new_bio_pair.3BIO_new_buffer_ssl_connect.3BIO_new_connect.3BIO_new_fd.3BIO_new_file.3BIO_new_fp.3BIO_new_mem_buf.3BIO_new_socket.3BIO_new_ssl.3BIO_new_ssl_connect.3BIO_next.3BIO_parse_hostserv.3BIO_pending.3BIO_pop.3BIO_printf.3BIO_ptr_ctrl.3BIO_push.3BIO_puts.3BIO_read.3BIO_read_ex.3BIO_read_filename.3BIO_reset.3BIO_retry_type.3BIO_rw_filename.3BIO_s_accept.3BIO_s_bio.3BIO_s_connect.3BIO_s_fd.3BIO_s_file.3BIO_s_mem.3BIO_s_null.3BIO_s_secmem.3BIO_s_socket.3BIO_seek.3BIO_set_accept_bios.3BIO_set_accept_ip_family.3BIO_set_accept_name.3BIO_set_accept_port.3BIO_set_bind_mode.3BIO_set_buffer_read_data.3BIO_set_buffer_size.3BIO_set_callback.3BIO_set_callback_arg.3BIO_set_callback_ex.3BIO_set_cipher.3BIO_set_close.3BIO_set_conn_address.3BIO_set_conn_hostname.3BIO_set_conn_ip_family.3BIO_set_conn_port.3BIO_set_data.3BIO_set_ex_data.3BIO_set_fd.3BIO_set_fp.3BIO_set_info_callback.3BIO_set_init.3BIO_set_md.3BIO_set_mem_buf.3BIO_set_mem_eof_return.3BIO_set_nbio.3BIO_set_nbio_accept.3BIO_set_next.3BIO_set_read_buffer_size.3BIO_set_retry_reason.3BIO_set_shutdown.3BIO_set_ssl.3BIO_set_ssl_mode.3BIO_set_ssl_renegotiate_bytes.3BIO_set_ssl_renegotiate_timeout.3BIO_set_write_buf_size.3BIO_set_write_buffer_size.3BIO_should_io_special.3BIO_should_read.3BIO_should_retry.3BIO_should_write.3BIO_shutdown_wr.3BIO_snprintf.3BIO_socket.3BIO_ssl_copy_session_id.3BIO_ssl_shutdown.3BIO_tell.3BIO_up_ref.3BIO_vfree.3BIO_vprintf.3BIO_vsnprintf.3BIO_wpending.3BIO_write.3BIO_write_ex.3BIO_write_filename.3BN_BLINDING_convert.3BN_BLINDING_convert_ex.3BN_BLINDING_create_param.3BN_BLINDING_free.3BN_BLINDING_get_flags.3BN_BLINDING_invert.3BN_BLINDING_invert_ex.3BN_BLINDING_is_current_thread.3BN_BLINDING_lock.3BN_BLINDING_new.3BN_BLINDING_set_current_thread.3BN_BLINDING_set_flags.3BN_BLINDING_unlock.3BN_BLINDING_update.3BN_CTX_end.3BN_CTX_free.3BN_CTX_get.3BN_CTX_new.3BN_CTX_secure_new.3BN_CTX_start.3BN_GENCB_call.3BN_GENCB_free.3BN_GENCB_get_arg.3BN_GENCB_new.3BN_GENCB_set.3BN_GENCB_set_old.3BN_MONT_CTX_copy.3BN_MONT_CTX_free.3BN_MONT_CTX_new.3BN_MONT_CTX_set.3BN_RECP_CTX_free.3BN_RECP_CTX_new.3BN_RECP_CTX_set.3BN_abs_is_word.3BN_add.3BN_add_word.3BN_bin2bn.3BN_bn2bin.3BN_bn2binpad.3BN_bn2dec.3BN_bn2hex.3BN_bn2lebinpad.3BN_bn2mpi.3BN_clear.3BN_clear_bit.3BN_clear_free.3BN_cmp.3BN_copy.3BN_dec2bn.3BN_div.3BN_div_recp.3BN_div_word.3BN_dup.3BN_exp.3BN_free.3BN_from_montgomery.3BN_gcd.3BN_generate_prime.3BN_generate_prime_ex.3BN_get0_nist_prime_192.3BN_get0_nist_prime_224.3BN_get0_nist_prime_256.3BN_get0_nist_prime_384.3BN_get0_nist_prime_521.3BN_get_rfc2409_prime_1024.3BN_get_rfc2409_prime_768.3BN_get_rfc3526_prime_1536.3BN_get_rfc3526_prime_2048.3BN_get_rfc3526_prime_3072.3BN_get_rfc3526_prime_4096.3BN_get_rfc3526_prime_6144.3BN_get_rfc3526_prime_8192.3BN_get_word.3BN_hex2bn.3BN_is_bit_set.3BN_is_odd.3BN_is_one.3BN_is_prime.3BN_is_prime_ex.3BN_is_prime_fasttest.3BN_is_prime_fasttest_ex.3BN_is_word.3BN_is_zero.3BN_lebin2bn.3BN_lshift.3BN_lshift1.3BN_mask_bits.3BN_mod.3BN_mod_add.3BN_mod_exp.3BN_mod_inverse.3BN_mod_mul.3BN_mod_mul_montgomery.3BN_mod_mul_reciprocal.3BN_mod_sqr.3BN_mod_sqrt.3BN_mod_sub.3BN_mod_word.3BN_mpi2bn.3BN_mul.3BN_mul_word.3BN_new.3BN_nnmod.3BN_num_bits.3BN_num_bits_word.3BN_num_bytes.3BN_one.3BN_print.3BN_print_fp.3BN_priv_rand.3BN_priv_rand_range.3BN_pseudo_rand.3BN_pseudo_rand_range.3BN_rand.3BN_rand_range.3BN_rshift.3BN_rshift1.3BN_secure_new.3BN_security_bits.3BN_set_bit.3BN_set_word.3BN_sqr.3BN_sub.3BN_sub_word.3BN_swap.3BN_to_ASN1_ENUMERATED.3BN_to_ASN1_INTEGER.3BN_to_montgomery.3BN_ucmp.3BN_value_one.3BN_with_flags.3BN_zero.3BUF_MEM_free.3BUF_MEM_grow.3BUF_MEM_grow_clean.3BUF_MEM_new.3BUF_MEM_new_ex.3BUF_reverse.3CERTIFICATEPOLICIES_free.3CERTIFICATEPOLICIES_new.3CMS_ContentInfo_free.3CMS_ContentInfo_new.3CMS_ContentInfo_print_ctx.3CMS_ReceiptRequest_create0.3CMS_ReceiptRequest_free.3CMS_ReceiptRequest_get0_values.3CMS_ReceiptRequest_new.3CMS_RecipientInfo_decrypt.3CMS_RecipientInfo_encrypt.3CMS_RecipientInfo_kekri_get0_id.3CMS_RecipientInfo_kekri_id_cmp.3CMS_RecipientInfo_ktri_cert_cmp.3CMS_RecipientInfo_ktri_get0_signer_id.3CMS_RecipientInfo_set0_key.3CMS_RecipientInfo_set0_pkey.3CMS_RecipientInfo_type.3CMS_SignerInfo_cert_cmp.3CMS_SignerInfo_get0_signature.3CMS_SignerInfo_get0_signer_id.3CMS_SignerInfo_set1_signer_cert.3CMS_SignerInfo_sign.3CMS_add0_cert.3CMS_add0_crl.3CMS_add0_recipient_key.3CMS_add1_ReceiptRequest.3CMS_add1_cert.3CMS_add1_crl.3CMS_add1_recipient_cert.3CMS_add1_signer.3CMS_compress.3CMS_decrypt.3CMS_encrypt.3CMS_final.3CMS_get0_RecipientInfos.3CMS_get0_SignerInfos.3CMS_get0_content.3CMS_get0_eContentType.3CMS_get0_signers.3CMS_get0_type.3CMS_get1_ReceiptRequest.3CMS_get1_certs.3CMS_get1_crls.3CMS_set1_eContentType.3CMS_sign.3CMS_sign_receipt.3CMS_uncompress.3CMS_verify.3CMS_verify_receipt.3CONF_modules_finish.3CONF_modules_free.3CONF_modules_load.3CONF_modules_load_file.3CONF_modules_unload.3CRL_DIST_POINTS_free.3CRL_DIST_POINTS_new.3CRYPTO_EX_dup.3CRYPTO_EX_free.3CRYPTO_EX_new.3CRYPTO_THREAD_lock_free.3CRYPTO_THREAD_lock_new.3CRYPTO_THREAD_read_lock.3CRYPTO_THREAD_run_once.3CRYPTO_THREAD_unlock.3CRYPTO_THREAD_write_lock.3CRYPTO_atomic_add.3CRYPTO_clear_free.3CRYPTO_clear_realloc.3CRYPTO_free.3CRYPTO_free_ex_data.3CRYPTO_free_ex_index.3CRYPTO_get_alloc_counts.3CRYPTO_get_ex_data.3CRYPTO_get_ex_new_index.3CRYPTO_get_mem_functions.3CRYPTO_malloc.3CRYPTO_mem_ctrl.3CRYPTO_mem_debug_pop.3CRYPTO_mem_debug_push.3CRYPTO_mem_leaks.3CRYPTO_mem_leaks_cb.3CRYPTO_mem_leaks_fp.3CRYPTO_memcmp.3CRYPTO_new_ex_data.3CRYPTO_realloc.3CRYPTO_secure_allocated.3CRYPTO_secure_clear_free.3CRYPTO_secure_free.3CRYPTO_secure_malloc.3CRYPTO_secure_malloc_done.3CRYPTO_secure_malloc_init.3CRYPTO_secure_malloc_initialized.3CRYPTO_secure_used.3CRYPTO_secure_zalloc.3CRYPTO_set_ex_data.3CRYPTO_set_mem_debug.3CRYPTO_set_mem_functions.3CRYPTO_strdup.3CRYPTO_strndup.3CRYPTO_zalloc.3CTLOG_STORE_free.3CTLOG_STORE_get0_log_by_id.3CTLOG_STORE_load_default_file.3CTLOG_STORE_load_file.3CTLOG_STORE_new.3CTLOG_free.3CTLOG_get0_log_id.3CTLOG_get0_name.3CTLOG_get0_public_key.3CTLOG_new.3CTLOG_new_from_base64.3CT_POLICY_EVAL_CTX_free.3CT_POLICY_EVAL_CTX_get0_cert.3CT_POLICY_EVAL_CTX_get0_issuer.3CT_POLICY_EVAL_CTX_get0_log_store.3CT_POLICY_EVAL_CTX_get_time.3CT_POLICY_EVAL_CTX_new.3CT_POLICY_EVAL_CTX_set1_cert.3CT_POLICY_EVAL_CTX_set1_issuer.3CT_POLICY_EVAL_CTX_set_shared_CTLOG_STORE.3CT_POLICY_EVAL_CTX_set_time.3DECLARE_ASN1_FUNCTIONS.3DECLARE_LHASH_OF.3DECLARE_PEM_rw.3DEFINE_SPECIAL_STACK_OF.3DEFINE_SPECIAL_STACK_OF_CONST.3DEFINE_STACK_OF.3DEFINE_STACK_OF_CONST.3DES_cbc_cksum.3DES_cfb64_encrypt.3DES_cfb_encrypt.3DES_crypt.3DES_ecb2_encrypt.3DES_ecb3_encrypt.3DES_ecb_encrypt.3DES_ede2_cbc_encrypt.3DES_ede2_cfb64_encrypt.3DES_ede2_ofb64_encrypt.3DES_ede3_cbc_encrypt.3DES_ede3_cfb64_encrypt.3DES_ede3_ofb64_encrypt.3DES_fcrypt.3DES_is_weak_key.3DES_key_sched.3DES_ncbc_encrypt.3DES_ofb64_encrypt.3DES_ofb_encrypt.3DES_pcbc_encrypt.3DES_quad_cksum.3DES_random_key.3DES_set_key.3DES_set_key_checked.3DES_set_key_unchecked.3DES_set_odd_parity.3DES_string_to_2keys.3DES_string_to_key.3DES_xcbc_encrypt.3DH_OpenSSL.3DH_bits.3DH_check.3DH_check_ex.3DH_check_params.3DH_check_params_ex.3DH_check_pub_key_ex.3DH_clear_flags.3DH_compute_key.3DH_compute_key_padded.3DH_free.3DH_generate_key.3DH_generate_parameters.3DH_generate_parameters_ex.3DH_get0_engine.3DH_get0_g.3DH_get0_key.3DH_get0_p.3DH_get0_pqg.3DH_get0_priv_key.3DH_get0_pub_key.3DH_get0_q.3DH_get_1024_160.3DH_get_2048_224.3DH_get_2048_256.3DH_get_default_method.3DH_get_ex_data.3DH_get_ex_new_index.3DH_get_length.3DH_get_nid.3DH_meth_dup.3DH_meth_free.3DH_meth_get0_app_data.3DH_meth_get0_name.3DH_meth_get_bn_mod_exp.3DH_meth_get_compute_key.3DH_meth_get_finish.3DH_meth_get_flags.3DH_meth_get_generate_key.3DH_meth_get_generate_params.3DH_meth_get_init.3DH_meth_new.3DH_meth_set0_app_data.3DH_meth_set1_name.3DH_meth_set_bn_mod_exp.3DH_meth_set_compute_key.3DH_meth_set_finish.3DH_meth_set_flags.3DH_meth_set_generate_key.3DH_meth_set_generate_params.3DH_meth_set_init.3DH_new.3DH_new_by_nid.3DH_new_method.3DH_security_bits.3DH_set0_key.3DH_set0_pqg.3DH_set_default_method.3DH_set_ex_data.3DH_set_flags.3DH_set_length.3DH_set_method.3DH_size.3DH_test_flags.3DHparams_print.3DHparams_print_fp.3DIRECTORYSTRING_free.3DIRECTORYSTRING_new.3DISPLAYTEXT_free.3DISPLAYTEXT_new.3DIST_POINT_NAME_free.3DIST_POINT_NAME_new.3DIST_POINT_free.3DIST_POINT_new.3DSA_OpenSSL.3DSA_SIG_free.3DSA_SIG_get0.3DSA_SIG_new.3DSA_SIG_set0.3DSA_bits.3DSA_clear_flags.3DSA_do_sign.3DSA_do_verify.3DSA_dup_DH.3DSA_free.3DSA_generate_key.3DSA_generate_parameters.3DSA_generate_parameters_ex.3DSA_get0_engine.3DSA_get0_g.3DSA_get0_key.3DSA_get0_p.3DSA_get0_pqg.3DSA_get0_priv_key.3DSA_get0_pub_key.3DSA_get0_q.3DSA_get_default_method.3DSA_get_ex_data.3DSA_get_ex_new_index.3DSA_meth_dup.3DSA_meth_free.3DSA_meth_get0_app_data.3DSA_meth_get0_name.3DSA_meth_get_bn_mod_exp.3DSA_meth_get_finish.3DSA_meth_get_flags.3DSA_meth_get_init.3DSA_meth_get_keygen.3DSA_meth_get_mod_exp.3DSA_meth_get_paramgen.3DSA_meth_get_sign.3DSA_meth_get_sign_setup.3DSA_meth_get_verify.3DSA_meth_new.3DSA_meth_set0_app_data.3DSA_meth_set1_name.3DSA_meth_set_bn_mod_exp.3DSA_meth_set_finish.3DSA_meth_set_flags.3DSA_meth_set_init.3DSA_meth_set_keygen.3DSA_meth_set_mod_exp.3DSA_meth_set_paramgen.3DSA_meth_set_sign.3DSA_meth_set_sign_setup.3DSA_meth_set_verify.3DSA_new.3DSA_new_method.3DSA_print.3DSA_print_fp.3DSA_security_bits.3DSA_set0_key.3DSA_set0_pqg.3DSA_set_default_method.3DSA_set_ex_data.3DSA_set_flags.3DSA_set_method.3DSA_sign.3DSA_sign_setup.3DSA_size.3DSA_test_flags.3DSA_verify.3DSAparams_dup.3DSAparams_print.3DSAparams_print_fp.3DTLS_client_method.3DTLS_get_data_mtu.3DTLS_method.3DTLS_server_method.3DTLS_set_timer_cb.3DTLS_timer_cb.3DTLSv1_2_client_method.3DTLSv1_2_method.3DTLSv1_2_server_method.3DTLSv1_client_method.3DTLSv1_listen.3DTLSv1_method.3DTLSv1_server_method.3ECDH_get_ex_data.3ECDH_get_ex_new_index.3ECDH_set_ex_data.3ECDSA_SIG_free.3ECDSA_SIG_get0.3ECDSA_SIG_get0_r.3ECDSA_SIG_get0_s.3ECDSA_SIG_new.3ECDSA_SIG_set0.3ECDSA_do_sign.3ECDSA_do_sign_ex.3ECDSA_do_verify.3ECDSA_sign.3ECDSA_sign_ex.3ECDSA_sign_setup.3ECDSA_size.3ECDSA_verify.3ECPARAMETERS_free.3ECPARAMETERS_new.3ECPKPARAMETERS_free.3ECPKPARAMETERS_new.3ECPKParameters_print.3ECPKParameters_print_fp.3EC_GF2m_simple_method.3EC_GFp_mont_method.3EC_GFp_nist_method.3EC_GFp_nistp224_method.3EC_GFp_nistp256_method.3EC_GFp_nistp521_method.3EC_GFp_simple_method.3EC_GROUP_check.3EC_GROUP_check_discriminant.3EC_GROUP_clear_free.3EC_GROUP_cmp.3EC_GROUP_copy.3EC_GROUP_dup.3EC_GROUP_free.3EC_GROUP_get0_cofactor.3EC_GROUP_get0_generator.3EC_GROUP_get0_order.3EC_GROUP_get0_seed.3EC_GROUP_get_asn1_flag.3EC_GROUP_get_basis_type.3EC_GROUP_get_cofactor.3EC_GROUP_get_curve.3EC_GROUP_get_curve_GF2m.3EC_GROUP_get_curve_GFp.3EC_GROUP_get_curve_name.3EC_GROUP_get_degree.3EC_GROUP_get_ecparameters.3EC_GROUP_get_ecpkparameters.3EC_GROUP_get_order.3EC_GROUP_get_pentanomial_basis.3EC_GROUP_get_point_conversion_form.3EC_GROUP_get_seed_len.3EC_GROUP_get_trinomial_basis.3EC_GROUP_have_precompute_mult.3EC_GROUP_method_of.3EC_GROUP_new.3EC_GROUP_new_by_curve_name.3EC_GROUP_new_curve_GF2m.3EC_GROUP_new_curve_GFp.3EC_GROUP_new_from_ecparameters.3EC_GROUP_new_from_ecpkparameters.3EC_GROUP_order_bits.3EC_GROUP_precompute_mult.3EC_GROUP_set_asn1_flag.3EC_GROUP_set_curve.3EC_GROUP_set_curve_GF2m.3EC_GROUP_set_curve_GFp.3EC_GROUP_set_curve_name.3EC_GROUP_set_generator.3EC_GROUP_set_point_conversion_form.3EC_GROUP_set_seed.3EC_KEY_check_key.3EC_KEY_clear_flags.3EC_KEY_copy.3EC_KEY_decoded_from_explicit_params.3EC_KEY_dup.3EC_KEY_free.3EC_KEY_generate_key.3EC_KEY_get0_engine.3EC_KEY_get0_group.3EC_KEY_get0_private_key.3EC_KEY_get0_public_key.3EC_KEY_get_conv_form.3EC_KEY_get_enc_flags.3EC_KEY_get_ex_data.3EC_KEY_get_ex_new_index.3EC_KEY_get_flags.3EC_KEY_get_method.3EC_KEY_key2buf.3EC_KEY_new.3EC_KEY_new_by_curve_name.3EC_KEY_oct2key.3EC_KEY_oct2priv.3EC_KEY_precompute_mult.3EC_KEY_priv2buf.3EC_KEY_priv2oct.3EC_KEY_set_asn1_flag.3EC_KEY_set_conv_form.3EC_KEY_set_enc_flags.3EC_KEY_set_ex_data.3EC_KEY_set_flags.3EC_KEY_set_group.3EC_KEY_set_method.3EC_KEY_set_private_key.3EC_KEY_set_public_key.3EC_KEY_set_public_key_affine_coordinates.3EC_KEY_up_ref.3EC_METHOD_get_field_type.3EC_POINT_add.3EC_POINT_bn2point.3EC_POINT_clear_free.3EC_POINT_cmp.3EC_POINT_copy.3EC_POINT_dbl.3EC_POINT_dup.3EC_POINT_free.3EC_POINT_get_Jprojective_coordinates_GFp.3EC_POINT_get_affine_coordinates.3EC_POINT_get_affine_coordinates_GF2m.3EC_POINT_get_affine_coordinates_GFp.3EC_POINT_hex2point.3EC_POINT_invert.3EC_POINT_is_at_infinity.3EC_POINT_is_on_curve.3EC_POINT_make_affine.3EC_POINT_method_of.3EC_POINT_mul.3EC_POINT_new.3EC_POINT_oct2point.3EC_POINT_point2bn.3EC_POINT_point2buf.3EC_POINT_point2hex.3EC_POINT_point2oct.3EC_POINT_set_Jprojective_coordinates_GFp.3EC_POINT_set_affine_coordinates.3EC_POINT_set_affine_coordinates_GF2m.3EC_POINT_set_affine_coordinates_GFp.3EC_POINT_set_compressed_coordinates.3EC_POINT_set_compressed_coordinates_GF2m.3EC_POINT_set_compressed_coordinates_GFp.3EC_POINT_set_to_infinity.3EC_POINTs_make_affine.3EC_POINTs_mul.3EC_get_builtin_curves.3EDIPARTYNAME_free.3EDIPARTYNAME_new.3ENGINE_add.3ENGINE_add_conf_module.3ENGINE_by_id.3ENGINE_cleanup.3ENGINE_cmd_is_executable.3ENGINE_ctrl.3ENGINE_ctrl_cmd.3ENGINE_ctrl_cmd_string.3ENGINE_finish.3ENGINE_free.3ENGINE_get_DH.3ENGINE_get_DSA.3ENGINE_get_RAND.3ENGINE_get_RSA.3ENGINE_get_cipher.3ENGINE_get_cipher_engine.3ENGINE_get_ciphers.3ENGINE_get_cmd_defns.3ENGINE_get_ctrl_function.3ENGINE_get_default_DH.3ENGINE_get_default_DSA.3ENGINE_get_default_RAND.3ENGINE_get_default_RSA.3ENGINE_get_destroy_function.3ENGINE_get_digest.3ENGINE_get_digest_engine.3ENGINE_get_digests.3ENGINE_get_ex_data.3ENGINE_get_ex_new_index.3ENGINE_get_finish_function.3ENGINE_get_first.3ENGINE_get_flags.3ENGINE_get_id.3ENGINE_get_init_function.3ENGINE_get_last.3ENGINE_get_load_privkey_function.3ENGINE_get_load_pubkey_function.3ENGINE_get_name.3ENGINE_get_next.3ENGINE_get_prev.3ENGINE_get_table_flags.3ENGINE_init.3ENGINE_load_builtin_engines.3ENGINE_load_private_key.3ENGINE_load_public_key.3ENGINE_new.3ENGINE_register_DH.3ENGINE_register_DSA.3ENGINE_register_RAND.3ENGINE_register_RSA.3ENGINE_register_all_DH.3ENGINE_register_all_DSA.3ENGINE_register_all_RAND.3ENGINE_register_all_RSA.3ENGINE_register_all_ciphers.3ENGINE_register_all_complete.3ENGINE_register_all_digests.3ENGINE_register_ciphers.3ENGINE_register_complete.3ENGINE_register_digests.3ENGINE_remove.3ENGINE_set_DH.3ENGINE_set_DSA.3ENGINE_set_RAND.3ENGINE_set_RSA.3ENGINE_set_ciphers.3ENGINE_set_cmd_defns.3ENGINE_set_ctrl_function.3ENGINE_set_default.3ENGINE_set_default_DH.3ENGINE_set_default_DSA.3ENGINE_set_default_RAND.3ENGINE_set_default_RSA.3ENGINE_set_default_ciphers.3ENGINE_set_default_digests.3ENGINE_set_default_string.3ENGINE_set_destroy_function.3ENGINE_set_digests.3ENGINE_set_ex_data.3ENGINE_set_finish_function.3ENGINE_set_flags.3ENGINE_set_id.3ENGINE_set_init_function.3ENGINE_set_load_privkey_function.3ENGINE_set_load_pubkey_function.3ENGINE_set_name.3ENGINE_set_table_flags.3ENGINE_unregister_DH.3ENGINE_unregister_DSA.3ENGINE_unregister_RAND.3ENGINE_unregister_RSA.3ENGINE_unregister_ciphers.3ENGINE_unregister_digests.3ENGINE_up_ref.3ERR_FATAL_ERROR.3ERR_GET_FUNC.3ERR_GET_LIB.3ERR_GET_REASON.3ERR_PACK.3ERR_add_error_data.3ERR_add_error_vdata.3ERR_clear_error.3ERR_error_string.3ERR_error_string_n.3ERR_free_strings.3ERR_func_error_string.3ERR_get_error.3ERR_get_error_line.3ERR_get_error_line_data.3ERR_get_next_error_library.3ERR_lib_error_string.3ERR_load_crypto_strings.3ERR_load_strings.3ERR_peek_error.3ERR_peek_error_line.3ERR_peek_error_line_data.3ERR_peek_last_error.3ERR_peek_last_error_line.3ERR_peek_last_error_line_data.3ERR_pop_to_mark.3ERR_print_errors.3ERR_print_errors_cb.3ERR_print_errors_fp.3ERR_put_error.3ERR_reason_error_string.3ERR_remove_state.3ERR_remove_thread_state.3ERR_set_mark.3ESS_CERT_ID_dup.3ESS_CERT_ID_free.3ESS_CERT_ID_new.3ESS_ISSUER_SERIAL_dup.3ESS_ISSUER_SERIAL_free.3ESS_ISSUER_SERIAL_new.3ESS_SIGNING_CERT_dup.3ESS_SIGNING_CERT_free.3ESS_SIGNING_CERT_new.3EVP_BytesToKey.3EVP_CIPHER_CTX_block_size.3EVP_CIPHER_CTX_cipher.3EVP_CIPHER_CTX_ctrl.3EVP_CIPHER_CTX_flags.3EVP_CIPHER_CTX_free.3EVP_CIPHER_CTX_get_app_data.3EVP_CIPHER_CTX_get_cipher_data.3EVP_CIPHER_CTX_iv_length.3EVP_CIPHER_CTX_key_length.3EVP_CIPHER_CTX_mode.3EVP_CIPHER_CTX_new.3EVP_CIPHER_CTX_nid.3EVP_CIPHER_CTX_reset.3EVP_CIPHER_CTX_set_app_data.3EVP_CIPHER_CTX_set_cipher_data.3EVP_CIPHER_CTX_set_key_length.3EVP_CIPHER_CTX_set_padding.3EVP_CIPHER_CTX_type.3EVP_CIPHER_asn1_to_param.3EVP_CIPHER_block_size.3EVP_CIPHER_flags.3EVP_CIPHER_iv_length.3EVP_CIPHER_key_length.3EVP_CIPHER_meth_dup.3EVP_CIPHER_meth_free.3EVP_CIPHER_meth_get_cleanup.3EVP_CIPHER_meth_get_ctrl.3EVP_CIPHER_meth_get_do_cipher.3EVP_CIPHER_meth_get_get_asn1_params.3EVP_CIPHER_meth_get_init.3EVP_CIPHER_meth_get_set_asn1_params.3EVP_CIPHER_meth_new.3EVP_CIPHER_meth_set_cleanup.3EVP_CIPHER_meth_set_ctrl.3EVP_CIPHER_meth_set_do_cipher.3EVP_CIPHER_meth_set_flags.3EVP_CIPHER_meth_set_get_asn1_params.3EVP_CIPHER_meth_set_impl_ctx_size.3EVP_CIPHER_meth_set_init.3EVP_CIPHER_meth_set_iv_length.3EVP_CIPHER_meth_set_set_asn1_params.3EVP_CIPHER_mode.3EVP_CIPHER_nid.3EVP_CIPHER_param_to_asn1.3EVP_CIPHER_type.3EVP_CipherFinal.3EVP_CipherFinal_ex.3EVP_CipherInit.3EVP_CipherInit_ex.3EVP_CipherUpdate.3EVP_DecodeBlock.3EVP_DecodeFinal.3EVP_DecodeInit.3EVP_DecodeUpdate.3EVP_DecryptFinal.3EVP_DecryptFinal_ex.3EVP_DecryptInit.3EVP_DecryptInit_ex.3EVP_DecryptUpdate.3EVP_Digest.3EVP_DigestFinal.3EVP_DigestFinalXOF.3EVP_DigestFinal_ex.3EVP_DigestInit.3EVP_DigestInit_ex.3EVP_DigestSign.3EVP_DigestSignFinal.3EVP_DigestSignInit.3EVP_DigestSignUpdate.3EVP_DigestUpdate.3EVP_DigestVerify.3EVP_DigestVerifyFinal.3EVP_DigestVerifyInit.3EVP_DigestVerifyUpdate.3EVP_ENCODE_CTX_copy.3EVP_ENCODE_CTX_free.3EVP_ENCODE_CTX_new.3EVP_ENCODE_CTX_num.3EVP_EncodeBlock.3EVP_EncodeFinal.3EVP_EncodeInit.3EVP_EncodeUpdate.3EVP_EncryptFinal.3EVP_EncryptFinal_ex.3EVP_EncryptInit.3EVP_EncryptInit_ex.3EVP_EncryptUpdate.3EVP_MD_CTX_block_size.3EVP_MD_CTX_clear_flags.3EVP_MD_CTX_copy.3EVP_MD_CTX_copy_ex.3EVP_MD_CTX_ctrl.3EVP_MD_CTX_free.3EVP_MD_CTX_md.3EVP_MD_CTX_md_data.3EVP_MD_CTX_new.3EVP_MD_CTX_pkey_ctx.3EVP_MD_CTX_reset.3EVP_MD_CTX_set_flags.3EVP_MD_CTX_set_pkey_ctx.3EVP_MD_CTX_set_update_fn.3EVP_MD_CTX_size.3EVP_MD_CTX_test_flags.3EVP_MD_CTX_type.3EVP_MD_CTX_update_fn.3EVP_MD_block_size.3EVP_MD_flags.3EVP_MD_meth_dup.3EVP_MD_meth_free.3EVP_MD_meth_get_app_datasize.3EVP_MD_meth_get_cleanup.3EVP_MD_meth_get_copy.3EVP_MD_meth_get_ctrl.3EVP_MD_meth_get_final.3EVP_MD_meth_get_flags.3EVP_MD_meth_get_init.3EVP_MD_meth_get_input_blocksize.3EVP_MD_meth_get_result_size.3EVP_MD_meth_get_update.3EVP_MD_meth_new.3EVP_MD_meth_set_app_datasize.3EVP_MD_meth_set_cleanup.3EVP_MD_meth_set_copy.3EVP_MD_meth_set_ctrl.3EVP_MD_meth_set_final.3EVP_MD_meth_set_flags.3EVP_MD_meth_set_init.3EVP_MD_meth_set_input_blocksize.3EVP_MD_meth_set_result_size.3EVP_MD_meth_set_update.3EVP_MD_pkey_type.3EVP_MD_size.3EVP_MD_type.3EVP_OpenFinal.3EVP_OpenInit.3EVP_OpenUpdate.3EVP_PKEY_ASN1_METHOD.3EVP_PKEY_CTX_add1_hkdf_info.3EVP_PKEY_CTX_add1_tls1_prf_seed.3EVP_PKEY_CTX_ctrl.3EVP_PKEY_CTX_ctrl_str.3EVP_PKEY_CTX_ctrl_uint64.3EVP_PKEY_CTX_dup.3EVP_PKEY_CTX_free.3EVP_PKEY_CTX_get0_dh_kdf_oid.3EVP_PKEY_CTX_get0_dh_kdf_ukm.3EVP_PKEY_CTX_get0_ecdh_kdf_ukm.3EVP_PKEY_CTX_get0_rsa_oaep_label.3EVP_PKEY_CTX_get1_id.3EVP_PKEY_CTX_get1_id_len.3EVP_PKEY_CTX_get_app_data.3EVP_PKEY_CTX_get_cb.3EVP_PKEY_CTX_get_dh_kdf_md.3EVP_PKEY_CTX_get_dh_kdf_outlen.3EVP_PKEY_CTX_get_dh_kdf_type.3EVP_PKEY_CTX_get_ecdh_cofactor_mode.3EVP_PKEY_CTX_get_ecdh_kdf_md.3EVP_PKEY_CTX_get_ecdh_kdf_outlen.3EVP_PKEY_CTX_get_ecdh_kdf_type.3EVP_PKEY_CTX_get_keygen_info.3EVP_PKEY_CTX_get_rsa_mgf1_md.3EVP_PKEY_CTX_get_rsa_oaep_md.3EVP_PKEY_CTX_get_rsa_padding.3EVP_PKEY_CTX_get_rsa_pss_saltlen.3EVP_PKEY_CTX_get_signature_md.3EVP_PKEY_CTX_hkdf_mode.3EVP_PKEY_CTX_md.3EVP_PKEY_CTX_new.3EVP_PKEY_CTX_new_id.3EVP_PKEY_CTX_set0_dh_kdf_oid.3EVP_PKEY_CTX_set0_dh_kdf_ukm.3EVP_PKEY_CTX_set0_ecdh_kdf_ukm.3EVP_PKEY_CTX_set0_rsa_oaep_label.3EVP_PKEY_CTX_set1_hkdf_key.3EVP_PKEY_CTX_set1_hkdf_salt.3EVP_PKEY_CTX_set1_id.3EVP_PKEY_CTX_set1_pbe_pass.3EVP_PKEY_CTX_set1_scrypt_salt.3EVP_PKEY_CTX_set1_tls1_prf_secret.3EVP_PKEY_CTX_set_app_data.3EVP_PKEY_CTX_set_cb.3EVP_PKEY_CTX_set_dh_kdf_md.3EVP_PKEY_CTX_set_dh_kdf_outlen.3EVP_PKEY_CTX_set_dh_kdf_type.3EVP_PKEY_CTX_set_dh_nid.3EVP_PKEY_CTX_set_dh_pad.3EVP_PKEY_CTX_set_dh_paramgen_generator.3EVP_PKEY_CTX_set_dh_paramgen_prime_len.3EVP_PKEY_CTX_set_dh_paramgen_subprime_len.3EVP_PKEY_CTX_set_dh_paramgen_type.3EVP_PKEY_CTX_set_dh_rfc5114.3EVP_PKEY_CTX_set_dhx_rfc5114.3EVP_PKEY_CTX_set_dsa_paramgen_bits.3EVP_PKEY_CTX_set_dsa_paramgen_md.3EVP_PKEY_CTX_set_dsa_paramgen_q_bits.3EVP_PKEY_CTX_set_ec_param_enc.3EVP_PKEY_CTX_set_ec_paramgen_curve_nid.3EVP_PKEY_CTX_set_ecdh_cofactor_mode.3EVP_PKEY_CTX_set_ecdh_kdf_md.3EVP_PKEY_CTX_set_ecdh_kdf_outlen.3EVP_PKEY_CTX_set_ecdh_kdf_type.3EVP_PKEY_CTX_set_hkdf_md.3EVP_PKEY_CTX_set_mac_key.3EVP_PKEY_CTX_set_rsa_keygen_bits.3EVP_PKEY_CTX_set_rsa_keygen_primes.3EVP_PKEY_CTX_set_rsa_keygen_pubexp.3EVP_PKEY_CTX_set_rsa_mgf1_md.3EVP_PKEY_CTX_set_rsa_oaep_md.3EVP_PKEY_CTX_set_rsa_padding.3EVP_PKEY_CTX_set_rsa_pss_keygen_md.3EVP_PKEY_CTX_set_rsa_pss_keygen_mgf1_md.3EVP_PKEY_CTX_set_rsa_pss_keygen_saltlen.3EVP_PKEY_CTX_set_rsa_pss_saltlen.3EVP_PKEY_CTX_set_scrypt_N.3EVP_PKEY_CTX_set_scrypt_maxmem_bytes.3EVP_PKEY_CTX_set_scrypt_p.3EVP_PKEY_CTX_set_scrypt_r.3EVP_PKEY_CTX_set_signature_md.3EVP_PKEY_CTX_set_tls1_prf_md.3EVP_PKEY_METHOD.3EVP_PKEY_asn1_add0.3EVP_PKEY_asn1_add_alias.3EVP_PKEY_asn1_copy.3EVP_PKEY_asn1_find.3EVP_PKEY_asn1_find_str.3EVP_PKEY_asn1_free.3EVP_PKEY_asn1_get0.3EVP_PKEY_asn1_get0_info.3EVP_PKEY_asn1_get_count.3EVP_PKEY_asn1_new.3EVP_PKEY_asn1_set_check.3EVP_PKEY_asn1_set_ctrl.3EVP_PKEY_asn1_set_free.3EVP_PKEY_asn1_set_get_priv_key.3EVP_PKEY_asn1_set_get_pub_key.3EVP_PKEY_asn1_set_item.3EVP_PKEY_asn1_set_param.3EVP_PKEY_asn1_set_param_check.3EVP_PKEY_asn1_set_private.3EVP_PKEY_asn1_set_public.3EVP_PKEY_asn1_set_public_check.3EVP_PKEY_asn1_set_security_bits.3EVP_PKEY_asn1_set_set_priv_key.3EVP_PKEY_asn1_set_set_pub_key.3EVP_PKEY_asn1_set_siginf.3EVP_PKEY_assign_DH.3EVP_PKEY_assign_DSA.3EVP_PKEY_assign_EC_KEY.3EVP_PKEY_assign_POLY1305.3EVP_PKEY_assign_RSA.3EVP_PKEY_assign_SIPHASH.3EVP_PKEY_base_id.3EVP_PKEY_bits.3EVP_PKEY_check.3EVP_PKEY_cmp.3EVP_PKEY_cmp_parameters.3EVP_PKEY_copy_parameters.3EVP_PKEY_decrypt.3EVP_PKEY_decrypt_init.3EVP_PKEY_derive.3EVP_PKEY_derive_init.3EVP_PKEY_derive_set_peer.3EVP_PKEY_encrypt.3EVP_PKEY_encrypt_init.3EVP_PKEY_free.3EVP_PKEY_gen_cb.3EVP_PKEY_get0_DH.3EVP_PKEY_get0_DSA.3EVP_PKEY_get0_EC_KEY.3EVP_PKEY_get0_RSA.3EVP_PKEY_get0_asn1.3EVP_PKEY_get0_engine.3EVP_PKEY_get0_hmac.3EVP_PKEY_get0_poly1305.3EVP_PKEY_get0_siphash.3EVP_PKEY_get1_DH.3EVP_PKEY_get1_DSA.3EVP_PKEY_get1_EC_KEY.3EVP_PKEY_get1_RSA.3EVP_PKEY_get_default_digest_nid.3EVP_PKEY_get_raw_private_key.3EVP_PKEY_get_raw_public_key.3EVP_PKEY_id.3EVP_PKEY_keygen.3EVP_PKEY_keygen_init.3EVP_PKEY_meth_add0.3EVP_PKEY_meth_copy.3EVP_PKEY_meth_find.3EVP_PKEY_meth_free.3EVP_PKEY_meth_get0.3EVP_PKEY_meth_get0_info.3EVP_PKEY_meth_get_check.3EVP_PKEY_meth_get_cleanup.3EVP_PKEY_meth_get_copy.3EVP_PKEY_meth_get_count.3EVP_PKEY_meth_get_ctrl.3EVP_PKEY_meth_get_decrypt.3EVP_PKEY_meth_get_derive.3EVP_PKEY_meth_get_digest_custom.3EVP_PKEY_meth_get_digestsign.3EVP_PKEY_meth_get_digestverify.3EVP_PKEY_meth_get_encrypt.3EVP_PKEY_meth_get_init.3EVP_PKEY_meth_get_keygen.3EVP_PKEY_meth_get_param_check.3EVP_PKEY_meth_get_paramgen.3EVP_PKEY_meth_get_public_check.3EVP_PKEY_meth_get_sign.3EVP_PKEY_meth_get_signctx.3EVP_PKEY_meth_get_verify.3EVP_PKEY_meth_get_verify_recover.3EVP_PKEY_meth_get_verifyctx.3EVP_PKEY_meth_new.3EVP_PKEY_meth_remove.3EVP_PKEY_meth_set_check.3EVP_PKEY_meth_set_cleanup.3EVP_PKEY_meth_set_copy.3EVP_PKEY_meth_set_ctrl.3EVP_PKEY_meth_set_decrypt.3EVP_PKEY_meth_set_derive.3EVP_PKEY_meth_set_digest_custom.3EVP_PKEY_meth_set_digestsign.3EVP_PKEY_meth_set_digestverify.3EVP_PKEY_meth_set_encrypt.3EVP_PKEY_meth_set_init.3EVP_PKEY_meth_set_keygen.3EVP_PKEY_meth_set_param_check.3EVP_PKEY_meth_set_paramgen.3EVP_PKEY_meth_set_public_check.3EVP_PKEY_meth_set_sign.3EVP_PKEY_meth_set_signctx.3EVP_PKEY_meth_set_verify.3EVP_PKEY_meth_set_verify_recover.3EVP_PKEY_meth_set_verifyctx.3EVP_PKEY_missing_parameters.3EVP_PKEY_new.3EVP_PKEY_new_CMAC_key.3EVP_PKEY_new_mac_key.3EVP_PKEY_new_raw_private_key.3EVP_PKEY_new_raw_public_key.3EVP_PKEY_param_check.3EVP_PKEY_paramgen.3EVP_PKEY_paramgen_init.3EVP_PKEY_print_params.3EVP_PKEY_print_private.3EVP_PKEY_print_public.3EVP_PKEY_public_check.3EVP_PKEY_security_bits.3EVP_PKEY_set1_DH.3EVP_PKEY_set1_DSA.3EVP_PKEY_set1_EC_KEY.3EVP_PKEY_set1_RSA.3EVP_PKEY_set1_engine.3EVP_PKEY_set_alias_type.3EVP_PKEY_sign.3EVP_PKEY_sign_init.3EVP_PKEY_size.3EVP_PKEY_type.3EVP_PKEY_up_ref.3EVP_PKEY_verify.3EVP_PKEY_verify_init.3EVP_PKEY_verify_recover.3EVP_PKEY_verify_recover_init.3EVP_SealFinal.3EVP_SealInit.3EVP_SealUpdate.3EVP_SignFinal.3EVP_SignInit.3EVP_SignInit_ex.3EVP_SignUpdate.3EVP_VerifyFinal.3EVP_VerifyInit.3EVP_VerifyInit_ex.3EVP_VerifyUpdate.3EVP_aes.3EVP_aes_128_cbc.3EVP_aes_128_cbc_hmac_sha1.3EVP_aes_128_cbc_hmac_sha256.3EVP_aes_128_ccm.3EVP_aes_128_cfb.3EVP_aes_128_cfb1.3EVP_aes_128_cfb128.3EVP_aes_128_cfb8.3EVP_aes_128_ctr.3EVP_aes_128_ecb.3EVP_aes_128_gcm.3EVP_aes_128_ocb.3EVP_aes_128_ofb.3EVP_aes_128_wrap.3EVP_aes_128_wrap_pad.3EVP_aes_128_xts.3EVP_aes_192_cbc.3EVP_aes_192_ccm.3EVP_aes_192_cfb.3EVP_aes_192_cfb1.3EVP_aes_192_cfb128.3EVP_aes_192_cfb8.3EVP_aes_192_ctr.3EVP_aes_192_ecb.3EVP_aes_192_gcm.3EVP_aes_192_ocb.3EVP_aes_192_ofb.3EVP_aes_192_wrap.3EVP_aes_192_wrap_pad.3EVP_aes_256_cbc.3EVP_aes_256_cbc_hmac_sha1.3EVP_aes_256_cbc_hmac_sha256.3EVP_aes_256_ccm.3EVP_aes_256_cfb.3EVP_aes_256_cfb1.3EVP_aes_256_cfb128.3EVP_aes_256_cfb8.3EVP_aes_256_ctr.3EVP_aes_256_ecb.3EVP_aes_256_gcm.3EVP_aes_256_ocb.3EVP_aes_256_ofb.3EVP_aes_256_wrap.3EVP_aes_256_wrap_pad.3EVP_aes_256_xts.3EVP_aria.3EVP_aria_128_cbc.3EVP_aria_128_ccm.3EVP_aria_128_cfb.3EVP_aria_128_cfb1.3EVP_aria_128_cfb128.3EVP_aria_128_cfb8.3EVP_aria_128_ctr.3EVP_aria_128_ecb.3EVP_aria_128_gcm.3EVP_aria_128_ofb.3EVP_aria_192_cbc.3EVP_aria_192_ccm.3EVP_aria_192_cfb.3EVP_aria_192_cfb1.3EVP_aria_192_cfb128.3EVP_aria_192_cfb8.3EVP_aria_192_ctr.3EVP_aria_192_ecb.3EVP_aria_192_gcm.3EVP_aria_192_ofb.3EVP_aria_256_cbc.3EVP_aria_256_ccm.3EVP_aria_256_cfb.3EVP_aria_256_cfb1.3EVP_aria_256_cfb128.3EVP_aria_256_cfb8.3EVP_aria_256_ctr.3EVP_aria_256_ecb.3EVP_aria_256_gcm.3EVP_aria_256_ofb.3EVP_bf_cbc.3EVP_bf_cfb.3EVP_bf_cfb64.3EVP_bf_ecb.3EVP_bf_ofb.3EVP_blake2b512.3EVP_blake2s256.3EVP_camellia.3EVP_camellia_128_cbc.3EVP_camellia_128_cfb.3EVP_camellia_128_cfb1.3EVP_camellia_128_cfb128.3EVP_camellia_128_cfb8.3EVP_camellia_128_ctr.3EVP_camellia_128_ecb.3EVP_camellia_128_ofb.3EVP_camellia_192_cbc.3EVP_camellia_192_cfb.3EVP_camellia_192_cfb1.3EVP_camellia_192_cfb128.3EVP_camellia_192_cfb8.3EVP_camellia_192_ctr.3EVP_camellia_192_ecb.3EVP_camellia_192_ofb.3EVP_camellia_256_cbc.3EVP_camellia_256_cfb.3EVP_camellia_256_cfb1.3EVP_camellia_256_cfb128.3EVP_camellia_256_cfb8.3EVP_camellia_256_ctr.3EVP_camellia_256_ecb.3EVP_camellia_256_ofb.3EVP_cast5_cbc.3EVP_cast5_cfb.3EVP_cast5_cfb64.3EVP_cast5_ecb.3EVP_cast5_ofb.3EVP_chacha20.3EVP_chacha20_poly1305.3EVP_cleanup.3EVP_des.3EVP_des_cbc.3EVP_des_cfb.3EVP_des_cfb1.3EVP_des_cfb64.3EVP_des_cfb8.3EVP_des_ecb.3EVP_des_ede.3EVP_des_ede3.3EVP_des_ede3_cbc.3EVP_des_ede3_cfb.3EVP_des_ede3_cfb1.3EVP_des_ede3_cfb64.3EVP_des_ede3_cfb8.3EVP_des_ede3_ecb.3EVP_des_ede3_ofb.3EVP_des_ede3_wrap.3EVP_des_ede_cbc.3EVP_des_ede_cfb.3EVP_des_ede_cfb64.3EVP_des_ede_ecb.3EVP_des_ede_ofb.3EVP_des_ofb.3EVP_desx_cbc.3EVP_enc_null.3EVP_get_cipherbyname.3EVP_get_cipherbynid.3EVP_get_cipherbyobj.3EVP_get_digestbyname.3EVP_get_digestbynid.3EVP_get_digestbyobj.3EVP_idea_cbc.3EVP_idea_cfb.3EVP_idea_cfb64.3EVP_idea_ecb.3EVP_idea_ofb.3EVP_md2.3EVP_md4.3EVP_md5.3EVP_md5_sha1.3EVP_md_null.3EVP_mdc2.3EVP_rc2_40_cbc.3EVP_rc2_64_cbc.3EVP_rc2_cbc.3EVP_rc2_cfb.3EVP_rc2_cfb64.3EVP_rc2_ecb.3EVP_rc2_ofb.3EVP_rc4.3EVP_rc4_40.3EVP_rc4_hmac_md5.3EVP_rc5_32_12_16_cbc.3EVP_rc5_32_12_16_cfb.3EVP_rc5_32_12_16_cfb64.3EVP_rc5_32_12_16_ecb.3EVP_rc5_32_12_16_ofb.3EVP_ripemd160.3EVP_seed_cbc.3EVP_seed_cfb.3EVP_seed_cfb128.3EVP_seed_ecb.3EVP_seed_ofb.3EVP_sha1.3EVP_sha224.3EVP_sha256.3EVP_sha384.3EVP_sha3_224.3EVP_sha3_256.3EVP_sha3_384.3EVP_sha3_512.3EVP_sha512.3EVP_sha512_224.3EVP_sha512_256.3EVP_shake128.3EVP_shake256.3EVP_sm3.3EVP_sm4_cbc.3EVP_sm4_cfb.3EVP_sm4_cfb128.3EVP_sm4_ctr.3EVP_sm4_ecb.3EVP_sm4_ofb.3EVP_whirlpool.3EXTENDED_KEY_USAGE_free.3EXTENDED_KEY_USAGE_new.3GENERAL_NAMES_free.3GENERAL_NAMES_new.3GENERAL_NAME_dup.3GENERAL_NAME_free.3GENERAL_NAME_new.3GENERAL_SUBTREE_free.3GENERAL_SUBTREE_new.3GEN_SESSION_CB.3HMAC.3HMAC_CTX_copy.3HMAC_CTX_free.3HMAC_CTX_get_md.3HMAC_CTX_new.3HMAC_CTX_reset.3HMAC_CTX_set_flags.3HMAC_Final.3HMAC_Init.3HMAC_Init_ex.3HMAC_Update.3HMAC_size.3IMPLEMENT_ASN1_FUNCTIONS.3IMPLEMENT_LHASH_COMP_FN.3IMPLEMENT_LHASH_HASH_FN.3IPAddressChoice_free.3IPAddressChoice_new.3IPAddressFamily_free.3IPAddressFamily_new.3IPAddressOrRange_free.3IPAddressOrRange_new.3IPAddressRange_free.3IPAddressRange_new.3ISSUING_DIST_POINT_free.3ISSUING_DIST_POINT_new.3LHASH.3LHASH_DOALL_ARG_FN_TYPE.3MD2.3MD2_Final.3MD2_Init.3MD2_Update.3MD4.3MD4_Final.3MD4_Init.3MD4_Update.3MD5.3MD5_Final.3MD5_Init.3MD5_Update.3MDC2.3MDC2_Final.3MDC2_Init.3MDC2_Update.3NAME_CONSTRAINTS_free.3NAME_CONSTRAINTS_new.3NAMING_AUTHORITY.3NAMING_AUTHORITY_free.3NAMING_AUTHORITY_get0_authorityId.3NAMING_AUTHORITY_get0_authorityText.3NAMING_AUTHORITY_get0_authorityURL.3NAMING_AUTHORITY_new.3NAMING_AUTHORITY_set0_authorityId.3NAMING_AUTHORITY_set0_authorityText.3NAMING_AUTHORITY_set0_authorityURL.3NETSCAPE_CERT_SEQUENCE_free.3NETSCAPE_CERT_SEQUENCE_new.3NETSCAPE_SPKAC_free.3NETSCAPE_SPKAC_new.3NETSCAPE_SPKI_free.3NETSCAPE_SPKI_new.3NOTICEREF_free.3NOTICEREF_new.3OBJ_cleanup.3OBJ_cmp.3OBJ_create.3OBJ_dup.3OBJ_get0_data.3OBJ_length.3OBJ_ln2nid.3OBJ_nid2ln.3OBJ_nid2obj.3OBJ_nid2sn.3OBJ_obj2nid.3OBJ_obj2txt.3OBJ_sn2nid.3OBJ_txt2nid.3OBJ_txt2obj.3OCSP_BASICRESP_free.3OCSP_BASICRESP_new.3OCSP_CERTID_dup.3OCSP_CERTID_free.3OCSP_CERTID_new.3OCSP_CERTSTATUS_free.3OCSP_CERTSTATUS_new.3OCSP_CRLID_free.3OCSP_CRLID_new.3OCSP_ONEREQ_free.3OCSP_ONEREQ_new.3OCSP_REQINFO_free.3OCSP_REQINFO_new.3OCSP_REQUEST_free.3OCSP_REQUEST_new.3OCSP_REQ_CTX_add1_header.3OCSP_REQ_CTX_free.3OCSP_REQ_CTX_i2d.3OCSP_REQ_CTX_set1_req.3OCSP_RESPBYTES_free.3OCSP_RESPBYTES_new.3OCSP_RESPDATA_free.3OCSP_RESPDATA_new.3OCSP_RESPID_free.3OCSP_RESPID_match.3OCSP_RESPID_new.3OCSP_RESPID_set_by_key.3OCSP_RESPID_set_by_name.3OCSP_RESPONSE_free.3OCSP_RESPONSE_new.3OCSP_REVOKEDINFO_free.3OCSP_REVOKEDINFO_new.3OCSP_SERVICELOC_free.3OCSP_SERVICELOC_new.3OCSP_SIGNATURE_free.3OCSP_SIGNATURE_new.3OCSP_SINGLERESP_free.3OCSP_SINGLERESP_new.3OCSP_basic_add1_nonce.3OCSP_basic_sign.3OCSP_basic_sign_ctx.3OCSP_basic_verify.3OCSP_cert_id_new.3OCSP_cert_to_id.3OCSP_check_nonce.3OCSP_check_validity.3OCSP_copy_nonce.3OCSP_id_cmp.3OCSP_id_get0_info.3OCSP_id_issuer_cmp.3OCSP_request_add0_id.3OCSP_request_add1_cert.3OCSP_request_add1_nonce.3OCSP_request_onereq_count.3OCSP_request_onereq_get0.3OCSP_request_sign.3OCSP_resp_count.3OCSP_resp_find.3OCSP_resp_find_status.3OCSP_resp_get0.3OCSP_resp_get0_certs.3OCSP_resp_get0_id.3OCSP_resp_get0_produced_at.3OCSP_resp_get0_respdata.3OCSP_resp_get0_signature.3OCSP_resp_get0_signer.3OCSP_resp_get0_tbs_sigalg.3OCSP_resp_get1_id.3OCSP_response_create.3OCSP_response_get1_basic.3OCSP_response_status.3OCSP_sendreq_bio.3OCSP_sendreq_nbio.3OCSP_sendreq_new.3OCSP_set_max_response_length.3OCSP_single_get0_status.3OPENSSL_Applink.3OPENSSL_INIT_free.3OPENSSL_INIT_new.3OPENSSL_INIT_set_config_appname.3OPENSSL_INIT_set_config_file_flags.3OPENSSL_INIT_set_config_filename.3OPENSSL_LH_COMPFUNC.3OPENSSL_LH_DOALL_FUNC.3OPENSSL_LH_HASHFUNC.3OPENSSL_LH_node_stats.3OPENSSL_LH_node_stats_bio.3OPENSSL_LH_node_usage_stats.3OPENSSL_LH_node_usage_stats_bio.3OPENSSL_LH_stats.3OPENSSL_LH_stats_bio.3OPENSSL_MALLOC_FAILURES.3OPENSSL_MALLOC_FD.3OPENSSL_VERSION_NUMBER.3OPENSSL_VERSION_TEXT.3OPENSSL_atexit.3OPENSSL_buf2hexstr.3OPENSSL_cipher_name.3OPENSSL_cleanse.3OPENSSL_cleanup.3OPENSSL_clear_free.3OPENSSL_clear_realloc.3OPENSSL_config.3OPENSSL_fork_child.3OPENSSL_fork_parent.3OPENSSL_fork_prepare.3OPENSSL_free.3OPENSSL_hexchar2int.3OPENSSL_hexstr2buf.3OPENSSL_ia32cap.3OPENSSL_init_crypto.3OPENSSL_init_ssl.3OPENSSL_instrument_bus.3OPENSSL_instrument_bus2.3OPENSSL_load_builtin_modules.3OPENSSL_malloc.3OPENSSL_malloc_init.3OPENSSL_mem_debug_pop.3OPENSSL_mem_debug_push.3OPENSSL_memdup.3OPENSSL_no_config.3OPENSSL_realloc.3OPENSSL_secure_actual_size.3OPENSSL_secure_clear_free.3OPENSSL_secure_free.3OPENSSL_secure_malloc.3OPENSSL_secure_zalloc.3OPENSSL_strdup.3OPENSSL_strlcat.3OPENSSL_strlcpy.3OPENSSL_strndup.3OPENSSL_thread_stop.3OPENSSL_zalloc.3OSSL_STORE_CTX.3OSSL_STORE_INFO.3OSSL_STORE_INFO_free.3OSSL_STORE_INFO_get0_CERT.3OSSL_STORE_INFO_get0_CRL.3OSSL_STORE_INFO_get0_NAME.3OSSL_STORE_INFO_get0_NAME_description.3OSSL_STORE_INFO_get0_PARAMS.3OSSL_STORE_INFO_get0_PKEY.3OSSL_STORE_INFO_get1_CERT.3OSSL_STORE_INFO_get1_CRL.3OSSL_STORE_INFO_get1_NAME.3OSSL_STORE_INFO_get1_NAME_description.3OSSL_STORE_INFO_get1_PARAMS.3OSSL_STORE_INFO_get1_PKEY.3OSSL_STORE_INFO_get_type.3OSSL_STORE_INFO_new_CERT.3OSSL_STORE_INFO_new_CRL.3OSSL_STORE_INFO_new_NAME.3OSSL_STORE_INFO_new_PARAMS.3OSSL_STORE_INFO_new_PKEY.3OSSL_STORE_INFO_set0_NAME_description.3OSSL_STORE_INFO_type_string.3OSSL_STORE_LOADER.3OSSL_STORE_LOADER_CTX.3OSSL_STORE_LOADER_free.3OSSL_STORE_LOADER_get0_engine.3OSSL_STORE_LOADER_get0_scheme.3OSSL_STORE_LOADER_new.3OSSL_STORE_LOADER_set_close.3OSSL_STORE_LOADER_set_ctrl.3OSSL_STORE_LOADER_set_eof.3OSSL_STORE_LOADER_set_error.3OSSL_STORE_LOADER_set_expect.3OSSL_STORE_LOADER_set_find.3OSSL_STORE_LOADER_set_load.3OSSL_STORE_LOADER_set_open.3OSSL_STORE_SEARCH.3OSSL_STORE_SEARCH_by_alias.3OSSL_STORE_SEARCH_by_issuer_serial.3OSSL_STORE_SEARCH_by_key_fingerprint.3OSSL_STORE_SEARCH_by_name.3OSSL_STORE_SEARCH_free.3OSSL_STORE_SEARCH_get0_bytes.3OSSL_STORE_SEARCH_get0_digest.3OSSL_STORE_SEARCH_get0_name.3OSSL_STORE_SEARCH_get0_serial.3OSSL_STORE_SEARCH_get0_string.3OSSL_STORE_SEARCH_get_type.3OSSL_STORE_close.3OSSL_STORE_close_fn.3OSSL_STORE_ctrl.3OSSL_STORE_ctrl_fn.3OSSL_STORE_eof.3OSSL_STORE_eof_fn.3OSSL_STORE_error.3OSSL_STORE_error_fn.3OSSL_STORE_expect.3OSSL_STORE_expect_fn.3OSSL_STORE_find.3OSSL_STORE_find_fn.3OSSL_STORE_load.3OSSL_STORE_load_fn.3OSSL_STORE_open.3OSSL_STORE_open_fn.3OSSL_STORE_post_process_info_fn.3OSSL_STORE_register_loader.3OSSL_STORE_supports_search.3OSSL_STORE_unregister_loader.3OTHERNAME_free.3OTHERNAME_new.3OpenSSL_add_all_algorithms.3OpenSSL_add_all_ciphers.3OpenSSL_add_all_digests.3OpenSSL_add_ssl_algorithms.3OpenSSL_version.3OpenSSL_version_num.3PBE2PARAM_free.3PBE2PARAM_new.3PBEPARAM_free.3PBEPARAM_new.3PBKDF2PARAM_free.3PBKDF2PARAM_new.3PEM_FLAG_EAY_COMPATIBLE.3PEM_FLAG_ONLY_B64.3PEM_FLAG_SECURE.3PEM_bytes_read_bio.3PEM_bytes_read_bio_secmem.3PEM_do_header.3PEM_get_EVP_CIPHER_INFO.3PEM_read.3PEM_read_CMS.3PEM_read_DHparams.3PEM_read_DSAPrivateKey.3PEM_read_DSA_PUBKEY.3PEM_read_DSAparams.3PEM_read_ECPKParameters.3PEM_read_ECPrivateKey.3PEM_read_EC_PUBKEY.3PEM_read_NETSCAPE_CERT_SEQUENCE.3PEM_read_PKCS7.3PEM_read_PKCS8.3PEM_read_PKCS8_PRIV_KEY_INFO.3PEM_read_PUBKEY.3PEM_read_PrivateKey.3PEM_read_RSAPrivateKey.3PEM_read_RSAPublicKey.3PEM_read_RSA_PUBKEY.3PEM_read_SSL_SESSION.3PEM_read_X509.3PEM_read_X509_AUX.3PEM_read_X509_CRL.3PEM_read_X509_REQ.3PEM_read_bio.3PEM_read_bio_CMS.3PEM_read_bio_DHparams.3PEM_read_bio_DSAPrivateKey.3PEM_read_bio_DSA_PUBKEY.3PEM_read_bio_DSAparams.3PEM_read_bio_ECPKParameters.3PEM_read_bio_EC_PUBKEY.3PEM_read_bio_NETSCAPE_CERT_SEQUENCE.3PEM_read_bio_PKCS7.3PEM_read_bio_PKCS8.3PEM_read_bio_PKCS8_PRIV_KEY_INFO.3PEM_read_bio_PUBKEY.3PEM_read_bio_Parameters.3PEM_read_bio_PrivateKey.3PEM_read_bio_RSAPrivateKey.3PEM_read_bio_RSAPublicKey.3PEM_read_bio_RSA_PUBKEY.3PEM_read_bio_SSL_SESSION.3PEM_read_bio_X509.3PEM_read_bio_X509_AUX.3PEM_read_bio_X509_CRL.3PEM_read_bio_X509_REQ.3PEM_read_bio_ex.3PEM_write.3PEM_write_CMS.3PEM_write_DHparams.3PEM_write_DHxparams.3PEM_write_DSAPrivateKey.3PEM_write_DSA_PUBKEY.3PEM_write_DSAparams.3PEM_write_ECPKParameters.3PEM_write_ECPrivateKey.3PEM_write_EC_PUBKEY.3PEM_write_NETSCAPE_CERT_SEQUENCE.3PEM_write_PKCS7.3PEM_write_PKCS8.3PEM_write_PKCS8PrivateKey.3PEM_write_PKCS8PrivateKey_nid.3PEM_write_PKCS8_PRIV_KEY_INFO.3PEM_write_PUBKEY.3PEM_write_PrivateKey.3PEM_write_RSAPrivateKey.3PEM_write_RSAPublicKey.3PEM_write_RSA_PUBKEY.3PEM_write_SSL_SESSION.3PEM_write_X509.3PEM_write_X509_AUX.3PEM_write_X509_CRL.3PEM_write_X509_REQ.3PEM_write_X509_REQ_NEW.3PEM_write_bio.3PEM_write_bio_CMS.3PEM_write_bio_CMS_stream.3PEM_write_bio_DHparams.3PEM_write_bio_DHxparams.3PEM_write_bio_DSAPrivateKey.3PEM_write_bio_DSA_PUBKEY.3PEM_write_bio_DSAparams.3PEM_write_bio_ECPKParameters.3PEM_write_bio_ECPrivateKey.3PEM_write_bio_EC_PUBKEY.3PEM_write_bio_NETSCAPE_CERT_SEQUENCE.3PEM_write_bio_PKCS7.3PEM_write_bio_PKCS7_stream.3PEM_write_bio_PKCS8.3PEM_write_bio_PKCS8PrivateKey.3PEM_write_bio_PKCS8PrivateKey_nid.3PEM_write_bio_PKCS8_PRIV_KEY_INFO.3PEM_write_bio_PUBKEY.3PEM_write_bio_Parameters.3PEM_write_bio_PrivateKey.3PEM_write_bio_PrivateKey_traditional.3PEM_write_bio_RSAPrivateKey.3PEM_write_bio_RSAPublicKey.3PEM_write_bio_RSA_PUBKEY.3PEM_write_bio_SSL_SESSION.3PEM_write_bio_X509.3PEM_write_bio_X509_AUX.3PEM_write_bio_X509_CRL.3PEM_write_bio_X509_REQ.3PEM_write_bio_X509_REQ_NEW.3PKCS12_BAGS_free.3PKCS12_BAGS_new.3PKCS12_MAC_DATA_free.3PKCS12_MAC_DATA_new.3PKCS12_SAFEBAG_free.3PKCS12_SAFEBAG_new.3PKCS12_create.3PKCS12_free.3PKCS12_new.3PKCS12_newpass.3PKCS12_parse.3PKCS5_PBKDF2_HMAC.3PKCS5_PBKDF2_HMAC_SHA1.3PKCS7_DIGEST_free.3PKCS7_DIGEST_new.3PKCS7_ENCRYPT_free.3PKCS7_ENCRYPT_new.3PKCS7_ENC_CONTENT_free.3PKCS7_ENC_CONTENT_new.3PKCS7_ENVELOPE_free.3PKCS7_ENVELOPE_new.3PKCS7_ISSUER_AND_SERIAL_digest.3PKCS7_ISSUER_AND_SERIAL_free.3PKCS7_ISSUER_AND_SERIAL_new.3PKCS7_RECIP_INFO_free.3PKCS7_RECIP_INFO_new.3PKCS7_SIGNED_free.3PKCS7_SIGNED_new.3PKCS7_SIGNER_INFO_free.3PKCS7_SIGNER_INFO_new.3PKCS7_SIGN_ENVELOPE_free.3PKCS7_SIGN_ENVELOPE_new.3PKCS7_add_certificate.3PKCS7_add_crl.3PKCS7_decrypt.3PKCS7_dup.3PKCS7_encrypt.3PKCS7_free.3PKCS7_get0_signers.3PKCS7_new.3PKCS7_print_ctx.3PKCS7_sign.3PKCS7_sign_add_signer.3PKCS7_verify.3PKCS8_PRIV_KEY_INFO_free.3PKCS8_PRIV_KEY_INFO_new.3PKEY_USAGE_PERIOD_free.3PKEY_USAGE_PERIOD_new.3POLICYINFO_free.3POLICYINFO_new.3POLICYQUALINFO_free.3POLICYQUALINFO_new.3POLICY_CONSTRAINTS_free.3POLICY_CONSTRAINTS_new.3POLICY_MAPPING_free.3POLICY_MAPPING_new.3PROFESSION_INFO.3PROFESSION_INFOS.3PROFESSION_INFOS_free.3PROFESSION_INFOS_new.3PROFESSION_INFO_free.3PROFESSION_INFO_get0_addProfessionInfo.3PROFESSION_INFO_get0_namingAuthority.3PROFESSION_INFO_get0_professionItems.3PROFESSION_INFO_get0_professionOIDs.3PROFESSION_INFO_get0_registrationNumber.3PROFESSION_INFO_new.3PROFESSION_INFO_set0_addProfessionInfo.3PROFESSION_INFO_set0_namingAuthority.3PROFESSION_INFO_set0_professionItems.3PROFESSION_INFO_set0_professionOIDs.3PROFESSION_INFO_set0_registrationNumber.3PROXY_CERT_INFO_EXTENSION_free.3PROXY_CERT_INFO_EXTENSION_new.3PROXY_POLICY_free.3PROXY_POLICY_new.3RAND_DRBG_bytes.3RAND_DRBG_cleanup_entropy_fn.3RAND_DRBG_cleanup_nonce_fn.3RAND_DRBG_free.3RAND_DRBG_generate.3RAND_DRBG_get0_master.3RAND_DRBG_get0_private.3RAND_DRBG_get0_public.3RAND_DRBG_get_entropy_fn.3RAND_DRBG_get_ex_data.3RAND_DRBG_get_ex_new_index.3RAND_DRBG_get_nonce_fn.3RAND_DRBG_instantiate.3RAND_DRBG_new.3RAND_DRBG_reseed.3RAND_DRBG_secure_new.3RAND_DRBG_set.3RAND_DRBG_set_callbacks.3RAND_DRBG_set_defaults.3RAND_DRBG_set_ex_data.3RAND_DRBG_set_reseed_defaults.3RAND_DRBG_set_reseed_interval.3RAND_DRBG_set_reseed_time_interval.3RAND_DRBG_uninstantiate.3RAND_OpenSSL.3RAND_add.3RAND_bytes.3RAND_cleanup.3RAND_egd.3RAND_egd_bytes.3RAND_event.3RAND_file_name.3RAND_get_rand_method.3RAND_keep_random_devices_open.3RAND_load_file.3RAND_poll.3RAND_priv_bytes.3RAND_pseudo_bytes.3RAND_query_egd_bytes.3RAND_screen.3RAND_seed.3RAND_set_rand_method.3RAND_status.3RAND_write_file.3RC4.3RC4_set_key.3RIPEMD160.3RIPEMD160_Final.3RIPEMD160_Init.3RIPEMD160_Update.3RSAPrivateKey_dup.3RSAPublicKey_dup.3RSA_OAEP_PARAMS_free.3RSA_OAEP_PARAMS_new.3RSA_PKCS1_OpenSSL.3RSA_PSS_PARAMS_free.3RSA_PSS_PARAMS_new.3RSA_bits.3RSA_blinding_off.3RSA_blinding_on.3RSA_check_key.3RSA_check_key_ex.3RSA_clear_flags.3RSA_flags.3RSA_free.3RSA_generate_key.3RSA_generate_key_ex.3RSA_generate_multi_prime_key.3RSA_get0_crt_params.3RSA_get0_d.3RSA_get0_dmp1.3RSA_get0_dmq1.3RSA_get0_e.3RSA_get0_engine.3RSA_get0_factors.3RSA_get0_iqmp.3RSA_get0_key.3RSA_get0_multi_prime_crt_params.3RSA_get0_multi_prime_factors.3RSA_get0_n.3RSA_get0_p.3RSA_get0_pss_params.3RSA_get0_q.3RSA_get_default_method.3RSA_get_ex_data.3RSA_get_ex_new_index.3RSA_get_method.3RSA_get_multi_prime_extra_count.3RSA_get_version.3RSA_meth_dup.3RSA_meth_free.3RSA_meth_get0_app_data.3RSA_meth_get0_name.3RSA_meth_get_bn_mod_exp.3RSA_meth_get_finish.3RSA_meth_get_flags.3RSA_meth_get_init.3RSA_meth_get_keygen.3RSA_meth_get_mod_exp.3RSA_meth_get_multi_prime_keygen.3RSA_meth_get_priv_dec.3RSA_meth_get_priv_enc.3RSA_meth_get_pub_dec.3RSA_meth_get_pub_enc.3RSA_meth_get_sign.3RSA_meth_get_verify.3RSA_meth_new.3RSA_meth_set0_app_data.3RSA_meth_set1_name.3RSA_meth_set_bn_mod_exp.3RSA_meth_set_finish.3RSA_meth_set_flags.3RSA_meth_set_init.3RSA_meth_set_keygen.3RSA_meth_set_mod_exp.3RSA_meth_set_multi_prime_keygen.3RSA_meth_set_priv_dec.3RSA_meth_set_priv_enc.3RSA_meth_set_pub_dec.3RSA_meth_set_pub_enc.3RSA_meth_set_sign.3RSA_meth_set_verify.3RSA_new.3RSA_new_method.3RSA_padding_add_PKCS1_OAEP.3RSA_padding_add_PKCS1_OAEP_mgf1.3RSA_padding_add_PKCS1_type_1.3RSA_padding_add_PKCS1_type_2.3RSA_padding_add_SSLv23.3RSA_padding_add_none.3RSA_padding_check_PKCS1_OAEP.3RSA_padding_check_PKCS1_OAEP_mgf1.3RSA_padding_check_PKCS1_type_1.3RSA_padding_check_PKCS1_type_2.3RSA_padding_check_SSLv23.3RSA_padding_check_none.3RSA_print.3RSA_print_fp.3RSA_private_decrypt.3RSA_private_encrypt.3RSA_public_decrypt.3RSA_public_encrypt.3RSA_security_bits.3RSA_set0_crt_params.3RSA_set0_factors.3RSA_set0_key.3RSA_set0_multi_prime_params.3RSA_set_default_method.3RSA_set_ex_data.3RSA_set_flags.3RSA_set_method.3RSA_sign.3RSA_sign_ASN1_OCTET_STRING.3RSA_size.3RSA_test_flags.3RSA_verify.3RSA_verify_ASN1_OCTET_STRING.3SCRYPT_PARAMS_free.3SCRYPT_PARAMS_new.3SCT_LIST_free.3SCT_LIST_print.3SCT_LIST_validate.3SCT_free.3SCT_get0_extensions.3SCT_get0_log_id.3SCT_get0_signature.3SCT_get_log_entry_type.3SCT_get_signature_nid.3SCT_get_source.3SCT_get_timestamp.3SCT_get_validation_status.3SCT_get_version.3SCT_new.3SCT_new_from_base64.3SCT_print.3SCT_set0_extensions.3SCT_set0_log_id.3SCT_set0_signature.3SCT_set1_extensions.3SCT_set1_log_id.3SCT_set1_signature.3SCT_set_log_entry_type.3SCT_set_signature_nid.3SCT_set_source.3SCT_set_timestamp.3SCT_set_version.3SCT_validate.3SCT_validation_status_string.3SHA1.3SHA1_Final.3SHA1_Init.3SHA1_Update.3SHA224.3SHA224_Final.3SHA224_Init.3SHA224_Update.3SHA256.3SHA256_Final.3SHA256_Init.3SHA256_Update.3SHA384.3SHA384_Final.3SHA384_Init.3SHA384_Update.3SHA512.3SHA512_Final.3SHA512_Init.3SHA512_Update.3SMIME_read_CMS.3SMIME_read_PKCS7.3SMIME_write_CMS.3SMIME_write_PKCS7.3SSL_CIPHER_description.3SSL_CIPHER_find.3SSL_CIPHER_get_auth_nid.3SSL_CIPHER_get_bits.3SSL_CIPHER_get_cipher_nid.3SSL_CIPHER_get_digest_nid.3SSL_CIPHER_get_handshake_digest.3SSL_CIPHER_get_id.3SSL_CIPHER_get_kx_nid.3SSL_CIPHER_get_name.3SSL_CIPHER_get_protocol_id.3SSL_CIPHER_get_version.3SSL_CIPHER_is_aead.3SSL_CIPHER_standard_name.3SSL_COMP_add_compression_method.3SSL_COMP_free_compression_methods.3SSL_COMP_get0_name.3SSL_COMP_get_compression_methods.3SSL_COMP_get_id.3SSL_CONF_CTX_clear_flags.3SSL_CONF_CTX_free.3SSL_CONF_CTX_new.3SSL_CONF_CTX_set1_prefix.3SSL_CONF_CTX_set_flags.3SSL_CONF_CTX_set_ssl.3SSL_CONF_CTX_set_ssl_ctx.3SSL_CONF_cmd.3SSL_CONF_cmd_argv.3SSL_CONF_cmd_value_type.3SSL_CTX_add0_chain_cert.3SSL_CTX_add1_chain_cert.3SSL_CTX_add1_to_CA_list.3SSL_CTX_add_client_CA.3SSL_CTX_add_client_custom_ext.3SSL_CTX_add_custom_ext.3SSL_CTX_add_extra_chain_cert.3SSL_CTX_add_server_custom_ext.3SSL_CTX_add_session.3SSL_CTX_build_cert_chain.3SSL_CTX_callback_ctrl.3SSL_CTX_check_private_key.3SSL_CTX_clear_chain_certs.3SSL_CTX_clear_extra_chain_certs.3SSL_CTX_clear_mode.3SSL_CTX_clear_options.3SSL_CTX_config.3SSL_CTX_ct_is_enabled.3SSL_CTX_ctrl.3SSL_CTX_dane_clear_flags.3SSL_CTX_dane_enable.3SSL_CTX_dane_mtype_set.3SSL_CTX_dane_set_flags.3SSL_CTX_decrypt_session_ticket_fn.3SSL_CTX_disable_ct.3SSL_CTX_enable_ct.3SSL_CTX_flush_sessions.3SSL_CTX_free.3SSL_CTX_generate_session_ticket_fn.3SSL_CTX_get0_CA_list.3SSL_CTX_get0_chain_cert_store.3SSL_CTX_get0_chain_certs.3SSL_CTX_get0_param.3SSL_CTX_get0_security_ex_data.3SSL_CTX_get0_verify_cert_store.3SSL_CTX_get_cert_store.3SSL_CTX_get_ciphers.3SSL_CTX_get_client_CA_list.3SSL_CTX_get_client_cert_cb.3SSL_CTX_get_default_passwd_cb.3SSL_CTX_get_default_passwd_cb_userdata.3SSL_CTX_get_default_read_ahead.3SSL_CTX_get_ex_data.3SSL_CTX_get_info_callback.3SSL_CTX_get_keylog_callback.3SSL_CTX_get_max_cert_list.3SSL_CTX_get_max_early_data.3SSL_CTX_get_max_proto_version.3SSL_CTX_get_min_proto_version.3SSL_CTX_get_mode.3SSL_CTX_get_num_tickets.3SSL_CTX_get_options.3SSL_CTX_get_quiet_shutdown.3SSL_CTX_get_read_ahead.3SSL_CTX_get_record_padding_callback_arg.3SSL_CTX_get_recv_max_early_data.3SSL_CTX_get_security_callback.3SSL_CTX_get_security_level.3SSL_CTX_get_session_cache_mode.3SSL_CTX_get_timeout.3SSL_CTX_get_tlsext_status_arg.3SSL_CTX_get_tlsext_status_cb.3SSL_CTX_get_tlsext_status_type.3SSL_CTX_get_verify_callback.3SSL_CTX_get_verify_depth.3SSL_CTX_get_verify_mode.3SSL_CTX_has_client_custom_ext.3SSL_CTX_keylog_cb_func.3SSL_CTX_load_verify_locations.3SSL_CTX_new.3SSL_CTX_remove_session.3SSL_CTX_select_current_cert.3SSL_CTX_sess_accept.3SSL_CTX_sess_accept_good.3SSL_CTX_sess_accept_renegotiate.3SSL_CTX_sess_cache_full.3SSL_CTX_sess_cb_hits.3SSL_CTX_sess_connect.3SSL_CTX_sess_connect_good.3SSL_CTX_sess_connect_renegotiate.3SSL_CTX_sess_get_cache_size.3SSL_CTX_sess_get_get_cb.3SSL_CTX_sess_get_new_cb.3SSL_CTX_sess_get_remove_cb.3SSL_CTX_sess_hits.3SSL_CTX_sess_misses.3SSL_CTX_sess_number.3SSL_CTX_sess_set_cache_size.3SSL_CTX_sess_set_get_cb.3SSL_CTX_sess_set_new_cb.3SSL_CTX_sess_set_remove_cb.3SSL_CTX_sess_timeouts.3SSL_CTX_sessions.3SSL_CTX_set0_CA_list.3SSL_CTX_set0_chain.3SSL_CTX_set0_chain_cert_store.3SSL_CTX_set0_security_ex_data.3SSL_CTX_set0_verify_cert_store.3SSL_CTX_set1_cert_store.3SSL_CTX_set1_chain.3SSL_CTX_set1_chain_cert_store.3SSL_CTX_set1_client_sigalgs.3SSL_CTX_set1_client_sigalgs_list.3SSL_CTX_set1_curves.3SSL_CTX_set1_curves_list.3SSL_CTX_set1_groups.3SSL_CTX_set1_groups_list.3SSL_CTX_set1_param.3SSL_CTX_set1_sigalgs.3SSL_CTX_set1_sigalgs_list.3SSL_CTX_set1_verify_cert_store.3SSL_CTX_set_allow_early_data_cb.3SSL_CTX_set_alpn_protos.3SSL_CTX_set_alpn_select_cb.3SSL_CTX_set_block_padding.3SSL_CTX_set_cert_cb.3SSL_CTX_set_cert_store.3SSL_CTX_set_cert_verify_callback.3SSL_CTX_set_cipher_list.3SSL_CTX_set_ciphersuites.3SSL_CTX_set_client_CA_list.3SSL_CTX_set_client_cert_cb.3SSL_CTX_set_client_hello_cb.3SSL_CTX_set_cookie_generate_cb.3SSL_CTX_set_cookie_verify_cb.3SSL_CTX_set_ct_validation_callback.3SSL_CTX_set_ctlog_list_file.3SSL_CTX_set_current_cert.3SSL_CTX_set_default_ctlog_list_file.3SSL_CTX_set_default_passwd_cb.3SSL_CTX_set_default_passwd_cb_userdata.3SSL_CTX_set_default_read_buffer_len.3SSL_CTX_set_default_verify_dir.3SSL_CTX_set_default_verify_file.3SSL_CTX_set_default_verify_paths.3SSL_CTX_set_ex_data.3SSL_CTX_set_generate_session_id.3SSL_CTX_set_info_callback.3SSL_CTX_set_keylog_callback.3SSL_CTX_set_max_cert_list.3SSL_CTX_set_max_early_data.3SSL_CTX_set_max_pipelines.3SSL_CTX_set_max_proto_version.3SSL_CTX_set_max_send_fragment.3SSL_CTX_set_min_proto_version.3SSL_CTX_set_mode.3SSL_CTX_set_msg_callback.3SSL_CTX_set_msg_callback_arg.3SSL_CTX_set_next_proto_select_cb.3SSL_CTX_set_next_protos_advertised_cb.3SSL_CTX_set_num_tickets.3SSL_CTX_set_options.3SSL_CTX_set_post_handshake_auth.3SSL_CTX_set_psk_client_callback.3SSL_CTX_set_psk_find_session_callback.3SSL_CTX_set_psk_server_callback.3SSL_CTX_set_psk_use_session_callback.3SSL_CTX_set_quiet_shutdown.3SSL_CTX_set_read_ahead.3SSL_CTX_set_record_padding_callback.3SSL_CTX_set_record_padding_callback_arg.3SSL_CTX_set_recv_max_early_data.3SSL_CTX_set_security_callback.3SSL_CTX_set_security_level.3SSL_CTX_set_session_cache_mode.3SSL_CTX_set_session_id_context.3SSL_CTX_set_session_ticket_cb.3SSL_CTX_set_split_send_fragment.3SSL_CTX_set_ssl_version.3SSL_CTX_set_stateless_cookie_generate_cb.3SSL_CTX_set_stateless_cookie_verify_cb.3SSL_CTX_set_timeout.3SSL_CTX_set_tlsext_max_fragment_length.3SSL_CTX_set_tlsext_servername_arg.3SSL_CTX_set_tlsext_servername_callback.3SSL_CTX_set_tlsext_status_arg.3SSL_CTX_set_tlsext_status_cb.3SSL_CTX_set_tlsext_status_type.3SSL_CTX_set_tlsext_ticket_key_cb.3SSL_CTX_set_tlsext_use_srtp.3SSL_CTX_set_tmp_dh.3SSL_CTX_set_tmp_dh_callback.3SSL_CTX_set_verify.3SSL_CTX_set_verify_depth.3SSL_CTX_up_ref.3SSL_CTX_use_PrivateKey.3SSL_CTX_use_PrivateKey_ASN1.3SSL_CTX_use_PrivateKey_file.3SSL_CTX_use_RSAPrivateKey.3SSL_CTX_use_RSAPrivateKey_ASN1.3SSL_CTX_use_RSAPrivateKey_file.3SSL_CTX_use_cert_and_key.3SSL_CTX_use_certificate.3SSL_CTX_use_certificate_ASN1.3SSL_CTX_use_certificate_chain_file.3SSL_CTX_use_certificate_file.3SSL_CTX_use_psk_identity_hint.3SSL_CTX_use_serverinfo.3SSL_CTX_use_serverinfo_ex.3SSL_CTX_use_serverinfo_file.3SSL_SESSION_dup.3SSL_SESSION_free.3SSL_SESSION_get0_alpn_selected.3SSL_SESSION_get0_cipher.3SSL_SESSION_get0_hostname.3SSL_SESSION_get0_id_context.3SSL_SESSION_get0_peer.3SSL_SESSION_get0_ticket.3SSL_SESSION_get0_ticket_appdata.3SSL_SESSION_get_compress_id.3SSL_SESSION_get_ex_data.3SSL_SESSION_get_id.3SSL_SESSION_get_master_key.3SSL_SESSION_get_max_early_data.3SSL_SESSION_get_max_fragment_length.3SSL_SESSION_get_protocol_version.3SSL_SESSION_get_ticket_lifetime_hint.3SSL_SESSION_get_time.3SSL_SESSION_get_timeout.3SSL_SESSION_has_ticket.3SSL_SESSION_is_resumable.3SSL_SESSION_new.3SSL_SESSION_print.3SSL_SESSION_print_fp.3SSL_SESSION_print_keylog.3SSL_SESSION_set1_alpn_selected.3SSL_SESSION_set1_hostname.3SSL_SESSION_set1_id.3SSL_SESSION_set1_id_context.3SSL_SESSION_set1_master_key.3SSL_SESSION_set1_ticket_appdata.3SSL_SESSION_set_cipher.3SSL_SESSION_set_ex_data.3SSL_SESSION_set_max_early_data.3SSL_SESSION_set_protocol_version.3SSL_SESSION_set_time.3SSL_SESSION_set_timeout.3SSL_SESSION_up_ref.3SSL_accept.3SSL_add0_chain_cert.3SSL_add1_chain_cert.3SSL_add1_host.3SSL_add1_to_CA_list.3SSL_add_client_CA.3SSL_add_dir_cert_subjects_to_stack.3SSL_add_file_cert_subjects_to_stack.3SSL_alert_desc_string.3SSL_alert_desc_string_long.3SSL_alert_type_string.3SSL_alert_type_string_long.3SSL_alloc_buffers.3SSL_allow_early_data_cb_fn.3SSL_build_cert_chain.3SSL_bytes_to_cipher_list.3SSL_callback_ctrl.3SSL_check_chain.3SSL_check_private_key.3SSL_clear.3SSL_clear_chain_certs.3SSL_clear_mode.3SSL_clear_options.3SSL_client_hello_cb_fn.3SSL_client_hello_get0_ciphers.3SSL_client_hello_get0_compression_methods.3SSL_client_hello_get0_ext.3SSL_client_hello_get0_legacy_version.3SSL_client_hello_get0_random.3SSL_client_hello_get0_session_id.3SSL_client_hello_get1_extensions_present.3SSL_client_hello_isv2.3SSL_client_version.3SSL_config.3SSL_connect.3SSL_ct_is_enabled.3SSL_ctrl.3SSL_dane_clear_flags.3SSL_dane_enable.3SSL_dane_set_flags.3SSL_dane_tlsa_add.3SSL_disable_ct.3SSL_do_handshake.3SSL_dup.3SSL_enable_ct.3SSL_export_keying_material.3SSL_export_keying_material_early.3SSL_extension_supported.3SSL_free.3SSL_free_buffers.3SSL_get0_CA_list.3SSL_get0_alpn_selected.3SSL_get0_chain_cert_store.3SSL_get0_chain_certs.3SSL_get0_dane_authority.3SSL_get0_dane_tlsa.3SSL_get0_next_proto_negotiated.3SSL_get0_param.3SSL_get0_peer_CA_list.3SSL_get0_peer_scts.3SSL_get0_peername.3SSL_get0_security_ex_data.3SSL_get0_session.3SSL_get0_verified_chain.3SSL_get0_verify_cert_store.3SSL_get1_curves.3SSL_get1_groups.3SSL_get1_session.3SSL_get1_supported_ciphers.3SSL_get_SSL_CTX.3SSL_get_all_async_fds.3SSL_get_changed_async_fds.3SSL_get_cipher.3SSL_get_cipher_bits.3SSL_get_cipher_list.3SSL_get_cipher_name.3SSL_get_cipher_version.3SSL_get_ciphers.3SSL_get_client_CA_list.3SSL_get_client_ciphers.3SSL_get_client_random.3SSL_get_current_cipher.3SSL_get_default_passwd_cb.3SSL_get_default_passwd_cb_userdata.3SSL_get_default_timeout.3SSL_get_early_data_status.3SSL_get_error.3SSL_get_ex_data.3SSL_get_ex_data_X509_STORE_CTX_idx.3SSL_get_extms_support.3SSL_get_fd.3SSL_get_info_callback.3SSL_get_key_update_type.3SSL_get_max_cert_list.3SSL_get_max_early_data.3SSL_get_max_proto_version.3SSL_get_min_proto_version.3SSL_get_mode.3SSL_get_num_tickets.3SSL_get_options.3SSL_get_peer_cert_chain.3SSL_get_peer_certificate.3SSL_get_peer_signature_nid.3SSL_get_peer_signature_type_nid.3SSL_get_peer_tmp_key.3SSL_get_pending_cipher.3SSL_get_psk_identity.3SSL_get_psk_identity_hint.3SSL_get_quiet_shutdown.3SSL_get_rbio.3SSL_get_read_ahead.3SSL_get_record_padding_callback_arg.3SSL_get_recv_max_early_data.3SSL_get_rfd.3SSL_get_secure_renegotiation_support.3SSL_get_security_callback.3SSL_get_security_level.3SSL_get_selected_srtp_profile.3SSL_get_server_random.3SSL_get_server_tmp_key.3SSL_get_servername.3SSL_get_servername_type.3SSL_get_session.3SSL_get_shared_ciphers.3SSL_get_shared_curve.3SSL_get_shared_group.3SSL_get_shared_sigalgs.3SSL_get_shutdown.3SSL_get_sigalgs.3SSL_get_signature_nid.3SSL_get_signature_type_nid.3SSL_get_srtp_profiles.3SSL_get_ssl_method.3SSL_get_state.3SSL_get_time.3SSL_get_timeout.3SSL_get_tlsext_status_ocsp_resp.3SSL_get_tlsext_status_type.3SSL_get_tmp_key.3SSL_get_verify_callback.3SSL_get_verify_depth.3SSL_get_verify_mode.3SSL_get_verify_result.3SSL_get_version.3SSL_get_wbio.3SSL_get_wfd.3SSL_has_matching_session_id.3SSL_has_pending.3SSL_in_accept_init.3SSL_in_before.3SSL_in_connect_init.3SSL_in_init.3SSL_is_dtls.3SSL_is_init_finished.3SSL_is_server.3SSL_key_update.3SSL_library_init.3SSL_load_client_CA_file.3SSL_load_error_strings.3SSL_new.3SSL_peek.3SSL_peek_ex.3SSL_pending.3SSL_psk_client_cb_func.3SSL_psk_find_session_cb_func.3SSL_psk_server_cb_func.3SSL_psk_use_session_cb_func.3SSL_read.3SSL_read_early_data.3SSL_read_ex.3SSL_renegotiate.3SSL_renegotiate_abbreviated.3SSL_renegotiate_pending.3SSL_rstate_string.3SSL_rstate_string_long.3SSL_select_current_cert.3SSL_select_next_proto.3SSL_session_reused.3SSL_set0_CA_list.3SSL_set0_chain.3SSL_set0_chain_cert_store.3SSL_set0_rbio.3SSL_set0_security_ex_data.3SSL_set0_verify_cert_store.3SSL_set0_wbio.3SSL_set1_chain.3SSL_set1_chain_cert_store.3SSL_set1_client_sigalgs.3SSL_set1_client_sigalgs_list.3SSL_set1_curves.3SSL_set1_curves_list.3SSL_set1_groups.3SSL_set1_groups_list.3SSL_set1_host.3SSL_set1_param.3SSL_set1_sigalgs.3SSL_set1_sigalgs_list.3SSL_set1_verify_cert_store.3SSL_set_accept_state.3SSL_set_allow_early_data_cb.3SSL_set_alpn_protos.3SSL_set_bio.3SSL_set_block_padding.3SSL_set_cert_cb.3SSL_set_cipher_list.3SSL_set_ciphersuites.3SSL_set_client_CA_list.3SSL_set_connect_state.3SSL_set_ct_validation_callback.3SSL_set_current_cert.3SSL_set_default_passwd_cb.3SSL_set_default_passwd_cb_userdata.3SSL_set_default_read_buffer_len.3SSL_set_ex_data.3SSL_set_fd.3SSL_set_generate_session_id.3SSL_set_hostflags.3SSL_set_info_callback.3SSL_set_max_cert_list.3SSL_set_max_early_data.3SSL_set_max_pipelines.3SSL_set_max_proto_version.3SSL_set_max_send_fragment.3SSL_set_min_proto_version.3SSL_set_mode.3SSL_set_msg_callback.3SSL_set_msg_callback_arg.3SSL_set_num_tickets.3SSL_set_options.3SSL_set_post_handshake_auth.3SSL_set_psk_client_callback.3SSL_set_psk_find_session_callback.3SSL_set_psk_server_callback.3SSL_set_psk_use_session_callback.3SSL_set_quiet_shutdown.3SSL_set_read_ahead.3SSL_set_record_padding_callback.3SSL_set_record_padding_callback_arg.3SSL_set_recv_max_early_data.3SSL_set_rfd.3SSL_set_security_callback.3SSL_set_security_level.3SSL_set_session.3SSL_set_session_id_context.3SSL_set_shutdown.3SSL_set_split_send_fragment.3SSL_set_ssl_method.3SSL_set_time.3SSL_set_timeout.3SSL_set_tlsext_host_name.3SSL_set_tlsext_max_fragment_length.3SSL_set_tlsext_status_ocsp_resp.3SSL_set_tlsext_status_type.3SSL_set_tlsext_use_srtp.3SSL_set_tmp_dh.3SSL_set_tmp_dh_callback.3SSL_set_verify.3SSL_set_verify_depth.3SSL_set_verify_result.3SSL_set_wfd.3SSL_shutdown.3SSL_state_string.3SSL_state_string_long.3SSL_stateless.3SSL_up_ref.3SSL_use_PrivateKey.3SSL_use_PrivateKey_ASN1.3SSL_use_PrivateKey_file.3SSL_use_RSAPrivateKey.3SSL_use_RSAPrivateKey_ASN1.3SSL_use_RSAPrivateKey_file.3SSL_use_cert_and_key.3SSL_use_certificate.3SSL_use_certificate_ASN1.3SSL_use_certificate_chain_file.3SSL_use_certificate_file.3SSL_use_psk_identity_hint.3SSL_verify_cb.3SSL_verify_client_post_handshake.3SSL_version.3SSL_waiting_for_async.3SSL_want.3SSL_want_async.3SSL_want_async_job.3SSL_want_client_hello_cb.3SSL_want_nothing.3SSL_want_read.3SSL_want_write.3SSL_want_x509_lookup.3SSL_write.3SSL_write_early_data.3SSL_write_ex.3SSLv23_client_method.3SSLv23_method.3SSLv23_server_method.3SSLv3_client_method.3SSLv3_method.3SSLv3_server_method.3SXNETID_free.3SXNETID_new.3SXNET_free.3SXNET_new.3TLS_FEATURE_free.3TLS_FEATURE_new.3TLS_client_method.3TLS_method.3TLS_server_method.3TLSv1_1_client_method.3TLSv1_1_method.3TLSv1_1_server_method.3TLSv1_2_client_method.3TLSv1_2_method.3TLSv1_2_server_method.3TLSv1_client_method.3TLSv1_method.3TLSv1_server_method.3TS_ACCURACY_dup.3TS_ACCURACY_free.3TS_ACCURACY_new.3TS_MSG_IMPRINT_dup.3TS_MSG_IMPRINT_free.3TS_MSG_IMPRINT_new.3TS_REQ_dup.3TS_REQ_free.3TS_REQ_new.3TS_RESP_dup.3TS_RESP_free.3TS_RESP_new.3TS_STATUS_INFO_dup.3TS_STATUS_INFO_free.3TS_STATUS_INFO_new.3TS_TST_INFO_dup.3TS_TST_INFO_free.3TS_TST_INFO_new.3UI.3UI_METHOD.3UI_OpenSSL.3UI_STRING.3UI_UTIL_read_pw.3UI_UTIL_read_pw_string.3UI_UTIL_wrap_read_pem_callback.3UI_add_error_string.3UI_add_info_string.3UI_add_input_boolean.3UI_add_input_string.3UI_add_user_data.3UI_add_verify_string.3UI_construct_prompt.3UI_create_method.3UI_ctrl.3UI_destroy_method.3UI_dup_error_string.3UI_dup_info_string.3UI_dup_input_boolean.3UI_dup_input_string.3UI_dup_user_data.3UI_dup_verify_string.3UI_free.3UI_get0_action_string.3UI_get0_output_string.3UI_get0_result.3UI_get0_result_string.3UI_get0_test_string.3UI_get0_user_data.3UI_get_default_method.3UI_get_ex_data.3UI_get_ex_new_index.3UI_get_input_flags.3UI_get_method.3UI_get_result_length.3UI_get_result_maxsize.3UI_get_result_minsize.3UI_get_result_string_length.3UI_get_string_type.3UI_method_get_closer.3UI_method_get_data_destructor.3UI_method_get_data_duplicator.3UI_method_get_ex_data.3UI_method_get_flusher.3UI_method_get_opener.3UI_method_get_prompt_constructor.3UI_method_get_reader.3UI_method_get_writer.3UI_method_set_closer.3UI_method_set_data_duplicator.3UI_method_set_ex_data.3UI_method_set_flusher.3UI_method_set_opener.3UI_method_set_prompt_constructor.3UI_method_set_reader.3UI_method_set_writer.3UI_new.3UI_new_method.3UI_null.3UI_process.3UI_set_default_method.3UI_set_ex_data.3UI_set_method.3UI_set_result.3UI_set_result_ex.3UI_string_types.3USERNOTICE_free.3USERNOTICE_new.3X509V3_EXT_d2i.3X509V3_EXT_i2d.3X509V3_add1_i2d.3X509V3_get_d2i.3X509_ALGOR_cmp.3X509_ALGOR_copy.3X509_ALGOR_dup.3X509_ALGOR_free.3X509_ALGOR_get0.3X509_ALGOR_new.3X509_ALGOR_set0.3X509_ALGOR_set_md.3X509_ATTRIBUTE_dup.3X509_ATTRIBUTE_free.3X509_ATTRIBUTE_new.3X509_CERT_AUX_free.3X509_CERT_AUX_new.3X509_CINF_free.3X509_CINF_new.3X509_CRL_INFO_free.3X509_CRL_INFO_new.3X509_CRL_add0_revoked.3X509_CRL_add1_ext_i2d.3X509_CRL_add_ext.3X509_CRL_cmp.3X509_CRL_delete_ext.3X509_CRL_digest.3X509_CRL_dup.3X509_CRL_free.3X509_CRL_get0_by_cert.3X509_CRL_get0_by_serial.3X509_CRL_get0_extensions.3X509_CRL_get0_lastUpdate.3X509_CRL_get0_nextUpdate.3X509_CRL_get0_signature.3X509_CRL_get_REVOKED.3X509_CRL_get_ext.3X509_CRL_get_ext_by_NID.3X509_CRL_get_ext_by_OBJ.3X509_CRL_get_ext_by_critical.3X509_CRL_get_ext_count.3X509_CRL_get_ext_d2i.3X509_CRL_get_issuer.3X509_CRL_get_signature_nid.3X509_CRL_get_version.3X509_CRL_match.3X509_CRL_new.3X509_CRL_set1_lastUpdate.3X509_CRL_set1_nextUpdate.3X509_CRL_set_issuer_name.3X509_CRL_set_version.3X509_CRL_sign.3X509_CRL_sign_ctx.3X509_CRL_sort.3X509_CRL_verify.3X509_EXTENSION_create_by_NID.3X509_EXTENSION_create_by_OBJ.3X509_EXTENSION_dup.3X509_EXTENSION_free.3X509_EXTENSION_get_critical.3X509_EXTENSION_get_data.3X509_EXTENSION_get_object.3X509_EXTENSION_new.3X509_EXTENSION_set_critical.3X509_EXTENSION_set_data.3X509_EXTENSION_set_object.3X509_LOOKUP.3X509_LOOKUP_METHOD.3X509_LOOKUP_TYPE.3X509_LOOKUP_add_dir.3X509_LOOKUP_by_alias.3X509_LOOKUP_by_fingerprint.3X509_LOOKUP_by_issuer_serial.3X509_LOOKUP_by_subject.3X509_LOOKUP_ctrl.3X509_LOOKUP_ctrl_fn.3X509_LOOKUP_file.3X509_LOOKUP_free.3X509_LOOKUP_get_by_alias_fn.3X509_LOOKUP_get_by_fingerprint_fn.3X509_LOOKUP_get_by_issuer_serial_fn.3X509_LOOKUP_get_by_subject_fn.3X509_LOOKUP_get_method_data.3X509_LOOKUP_get_store.3X509_LOOKUP_hash_dir.3X509_LOOKUP_init.3X509_LOOKUP_load_file.3X509_LOOKUP_meth_free.3X509_LOOKUP_meth_get_ctrl.3X509_LOOKUP_meth_get_free.3X509_LOOKUP_meth_get_get_by_alias.3X509_LOOKUP_meth_get_get_by_fingerprint.3X509_LOOKUP_meth_get_get_by_issuer_serial.3X509_LOOKUP_meth_get_get_by_subject.3X509_LOOKUP_meth_get_init.3X509_LOOKUP_meth_get_new_item.3X509_LOOKUP_meth_get_shutdown.3X509_LOOKUP_meth_new.3X509_LOOKUP_meth_set_ctrl.3X509_LOOKUP_meth_set_free.3X509_LOOKUP_meth_set_get_by_alias.3X509_LOOKUP_meth_set_get_by_fingerprint.3X509_LOOKUP_meth_set_get_by_issuer_serial.3X509_LOOKUP_meth_set_get_by_subject.3X509_LOOKUP_meth_set_init.3X509_LOOKUP_meth_set_new_item.3X509_LOOKUP_meth_set_shutdown.3X509_LOOKUP_new.3X509_LOOKUP_set_method_data.3X509_LOOKUP_shutdown.3X509_NAME_ENTRY_create_by_NID.3X509_NAME_ENTRY_create_by_OBJ.3X509_NAME_ENTRY_create_by_txt.3X509_NAME_ENTRY_dup.3X509_NAME_ENTRY_free.3X509_NAME_ENTRY_get_data.3X509_NAME_ENTRY_get_object.3X509_NAME_ENTRY_new.3X509_NAME_ENTRY_set_data.3X509_NAME_ENTRY_set_object.3X509_NAME_add_entry.3X509_NAME_add_entry_by_NID.3X509_NAME_add_entry_by_OBJ.3X509_NAME_add_entry_by_txt.3X509_NAME_cmp.3X509_NAME_delete_entry.3X509_NAME_digest.3X509_NAME_dup.3X509_NAME_entry_count.3X509_NAME_free.3X509_NAME_get0_der.3X509_NAME_get_entry.3X509_NAME_get_index_by_NID.3X509_NAME_get_index_by_OBJ.3X509_NAME_get_text_by_NID.3X509_NAME_get_text_by_OBJ.3X509_NAME_new.3X509_NAME_oneline.3X509_NAME_print.3X509_NAME_print_ex.3X509_NAME_print_ex_fp.3X509_OBJECT_set1_X509.3X509_OBJECT_set1_X509_CRL.3X509_PUBKEY_free.3X509_PUBKEY_get.3X509_PUBKEY_get0.3X509_PUBKEY_get0_param.3X509_PUBKEY_new.3X509_PUBKEY_set.3X509_PUBKEY_set0_param.3X509_REQ_INFO_free.3X509_REQ_INFO_new.3X509_REQ_check_private_key.3X509_REQ_digest.3X509_REQ_dup.3X509_REQ_free.3X509_REQ_get0_pubkey.3X509_REQ_get0_signature.3X509_REQ_get_X509_PUBKEY.3X509_REQ_get_pubkey.3X509_REQ_get_signature_nid.3X509_REQ_get_subject_name.3X509_REQ_get_version.3X509_REQ_new.3X509_REQ_set0_signature.3X509_REQ_set1_signature_algo.3X509_REQ_set_pubkey.3X509_REQ_set_subject_name.3X509_REQ_set_version.3X509_REQ_sign.3X509_REQ_sign_ctx.3X509_REQ_verify.3X509_REVOKED_add1_ext_i2d.3X509_REVOKED_add_ext.3X509_REVOKED_delete_ext.3X509_REVOKED_dup.3X509_REVOKED_free.3X509_REVOKED_get0_extensions.3X509_REVOKED_get0_revocationDate.3X509_REVOKED_get0_serialNumber.3X509_REVOKED_get_ext.3X509_REVOKED_get_ext_by_NID.3X509_REVOKED_get_ext_by_OBJ.3X509_REVOKED_get_ext_by_critical.3X509_REVOKED_get_ext_count.3X509_REVOKED_get_ext_d2i.3X509_REVOKED_new.3X509_REVOKED_set_revocationDate.3X509_REVOKED_set_serialNumber.3X509_SIG_INFO_get.3X509_SIG_INFO_set.3X509_SIG_free.3X509_SIG_get0.3X509_SIG_getm.3X509_SIG_new.3X509_STORE.3X509_STORE_CTX_cert_crl_fn.3X509_STORE_CTX_check_crl_fn.3X509_STORE_CTX_check_issued_fn.3X509_STORE_CTX_check_policy_fn.3X509_STORE_CTX_check_revocation_fn.3X509_STORE_CTX_cleanup.3X509_STORE_CTX_cleanup_fn.3X509_STORE_CTX_free.3X509_STORE_CTX_get0_cert.3X509_STORE_CTX_get0_chain.3X509_STORE_CTX_get0_param.3X509_STORE_CTX_get0_untrusted.3X509_STORE_CTX_get1_chain.3X509_STORE_CTX_get_cert_crl.3X509_STORE_CTX_get_check_crl.3X509_STORE_CTX_get_check_issued.3X509_STORE_CTX_get_check_policy.3X509_STORE_CTX_get_check_revocation.3X509_STORE_CTX_get_cleanup.3X509_STORE_CTX_get_crl_fn.3X509_STORE_CTX_get_current_cert.3X509_STORE_CTX_get_error.3X509_STORE_CTX_get_error_depth.3X509_STORE_CTX_get_ex_data.3X509_STORE_CTX_get_ex_new_index.3X509_STORE_CTX_get_get_crl.3X509_STORE_CTX_get_get_issuer.3X509_STORE_CTX_get_issuer_fn.3X509_STORE_CTX_get_lookup_certs.3X509_STORE_CTX_get_lookup_crls.3X509_STORE_CTX_get_num_untrusted.3X509_STORE_CTX_get_verify.3X509_STORE_CTX_get_verify_cb.3X509_STORE_CTX_init.3X509_STORE_CTX_lookup_certs_fn.3X509_STORE_CTX_lookup_crls_fn.3X509_STORE_CTX_new.3X509_STORE_CTX_purpose_inherit.3X509_STORE_CTX_set0_crls.3X509_STORE_CTX_set0_param.3X509_STORE_CTX_set0_trusted_stack.3X509_STORE_CTX_set0_untrusted.3X509_STORE_CTX_set0_verified_chain.3X509_STORE_CTX_set_cert.3X509_STORE_CTX_set_current_cert.3X509_STORE_CTX_set_default.3X509_STORE_CTX_set_error.3X509_STORE_CTX_set_error_depth.3X509_STORE_CTX_set_ex_data.3X509_STORE_CTX_set_purpose.3X509_STORE_CTX_set_trust.3X509_STORE_CTX_set_verify.3X509_STORE_CTX_set_verify_cb.3X509_STORE_CTX_verify_cb.3X509_STORE_CTX_verify_fn.3X509_STORE_add_cert.3X509_STORE_add_crl.3X509_STORE_add_lookup.3X509_STORE_free.3X509_STORE_get0_objects.3X509_STORE_get0_param.3X509_STORE_get_cert_crl.3X509_STORE_get_check_crl.3X509_STORE_get_check_issued.3X509_STORE_get_check_policy.3X509_STORE_get_check_revocation.3X509_STORE_get_cleanup.3X509_STORE_get_ex_data.3X509_STORE_get_ex_new_index.3X509_STORE_get_get_crl.3X509_STORE_get_get_issuer.3X509_STORE_get_lookup_certs.3X509_STORE_get_lookup_crls.3X509_STORE_get_verify_cb.3X509_STORE_load_locations.3X509_STORE_lock.3X509_STORE_new.3X509_STORE_set1_param.3X509_STORE_set_cert_crl.3X509_STORE_set_check_crl.3X509_STORE_set_check_issued.3X509_STORE_set_check_policy.3X509_STORE_set_check_revocation.3X509_STORE_set_cleanup.3X509_STORE_set_default_paths.3X509_STORE_set_depth.3X509_STORE_set_ex_data.3X509_STORE_set_flags.3X509_STORE_set_get_crl.3X509_STORE_set_get_issuer.3X509_STORE_set_lookup_certs.3X509_STORE_set_lookup_crls.3X509_STORE_set_lookup_crls_cb.3X509_STORE_set_purpose.3X509_STORE_set_trust.3X509_STORE_set_verify.3X509_STORE_set_verify_cb.3X509_STORE_set_verify_cb_func.3X509_STORE_set_verify_func.3X509_STORE_unlock.3X509_STORE_up_ref.3X509_VAL_free.3X509_VAL_new.3X509_VERIFY_PARAM_add0_policy.3X509_VERIFY_PARAM_add1_host.3X509_VERIFY_PARAM_clear_flags.3X509_VERIFY_PARAM_get0_peername.3X509_VERIFY_PARAM_get_auth_level.3X509_VERIFY_PARAM_get_depth.3X509_VERIFY_PARAM_get_flags.3X509_VERIFY_PARAM_get_hostflags.3X509_VERIFY_PARAM_get_inh_flags.3X509_VERIFY_PARAM_get_time.3X509_VERIFY_PARAM_set1_email.3X509_VERIFY_PARAM_set1_host.3X509_VERIFY_PARAM_set1_ip.3X509_VERIFY_PARAM_set1_ip_asc.3X509_VERIFY_PARAM_set1_policies.3X509_VERIFY_PARAM_set_auth_level.3X509_VERIFY_PARAM_set_depth.3X509_VERIFY_PARAM_set_flags.3X509_VERIFY_PARAM_set_hostflags.3X509_VERIFY_PARAM_set_inh_flags.3X509_VERIFY_PARAM_set_purpose.3X509_VERIFY_PARAM_set_time.3X509_VERIFY_PARAM_set_trust.3X509_add1_ext_i2d.3X509_add_ext.3X509_chain_up_ref.3X509_check_ca.3X509_check_email.3X509_check_host.3X509_check_ip.3X509_check_ip_asc.3X509_check_issued.3X509_check_private_key.3X509_check_purpose.3X509_cmp.3X509_cmp_current_time.3X509_cmp_time.3X509_delete_ext.3X509_digest.3X509_dup.3X509_free.3X509_get0_authority_issuer.3X509_get0_authority_key_id.3X509_get0_authority_serial.3X509_get0_extensions.3X509_get0_notAfter.3X509_get0_notBefore.3X509_get0_pubkey.3X509_get0_serialNumber.3X509_get0_signature.3X509_get0_subject_key_id.3X509_get0_tbs_sigalg.3X509_get0_uids.3X509_get_X509_PUBKEY.3X509_get_ex_data.3X509_get_ex_new_index.3X509_get_ext.3X509_get_ext_by_NID.3X509_get_ext_by_OBJ.3X509_get_ext_by_critical.3X509_get_ext_count.3X509_get_ext_d2i.3X509_get_extended_key_usage.3X509_get_extension_flags.3X509_get_issuer_name.3X509_get_key_usage.3X509_get_pathlen.3X509_get_proxy_pathlen.3X509_get_pubkey.3X509_get_serialNumber.3X509_get_signature_info.3X509_get_signature_nid.3X509_get_subject_name.3X509_get_version.3X509_getm_notAfter.3X509_getm_notBefore.3X509_issuer_and_serial_cmp.3X509_issuer_name_cmp.3X509_load_cert_crl_file.3X509_load_cert_file.3X509_load_crl_file.3X509_new.3X509_pubkey_digest.3X509_set1_notAfter.3X509_set1_notBefore.3X509_set_ex_data.3X509_set_issuer_name.3X509_set_proxy_flag.3X509_set_proxy_pathlen.3X509_set_pubkey.3X509_set_serialNumber.3X509_set_subject_name.3X509_set_version.3X509_sign.3X509_sign_ctx.3X509_subject_name_cmp.3X509_time_adj.3X509_time_adj_ex.3X509_up_ref.3X509_verify.3X509_verify_cert.3X509_verify_cert_error_string.3X509v3_add_ext.3X509v3_delete_ext.3X509v3_get_ext.3X509v3_get_ext_by_NID.3X509v3_get_ext_by_OBJ.3X509v3_get_ext_by_critical.3X509v3_get_ext_count.3custom_ext_add_cb.3custom_ext_free_cb.3custom_ext_parse_cb.3d2i_ACCESS_DESCRIPTION.3d2i_ADMISSIONS.3d2i_ADMISSION_SYNTAX.3d2i_ASIdOrRange.3d2i_ASIdentifierChoice.3d2i_ASIdentifiers.3d2i_ASN1_BIT_STRING.3d2i_ASN1_BMPSTRING.3d2i_ASN1_ENUMERATED.3d2i_ASN1_GENERALIZEDTIME.3d2i_ASN1_GENERALSTRING.3d2i_ASN1_IA5STRING.3d2i_ASN1_INTEGER.3d2i_ASN1_NULL.3d2i_ASN1_OBJECT.3d2i_ASN1_OCTET_STRING.3d2i_ASN1_PRINTABLE.3d2i_ASN1_PRINTABLESTRING.3d2i_ASN1_SEQUENCE_ANY.3d2i_ASN1_SET_ANY.3d2i_ASN1_T61STRING.3d2i_ASN1_TIME.3d2i_ASN1_TYPE.3d2i_ASN1_UINTEGER.3d2i_ASN1_UNIVERSALSTRING.3d2i_ASN1_UTCTIME.3d2i_ASN1_UTF8STRING.3d2i_ASN1_VISIBLESTRING.3d2i_ASRange.3d2i_AUTHORITY_INFO_ACCESS.3d2i_AUTHORITY_KEYID.3d2i_AutoPrivateKey.3d2i_BASIC_CONSTRAINTS.3d2i_CERTIFICATEPOLICIES.3d2i_CMS_ContentInfo.3d2i_CMS_ReceiptRequest.3d2i_CMS_bio.3d2i_CRL_DIST_POINTS.3d2i_DHparams.3d2i_DHxparams.3d2i_DIRECTORYSTRING.3d2i_DISPLAYTEXT.3d2i_DIST_POINT.3d2i_DIST_POINT_NAME.3d2i_DSAPrivateKey.3d2i_DSAPrivateKey_bio.3d2i_DSAPrivateKey_fp.3d2i_DSAPublicKey.3d2i_DSA_PUBKEY.3d2i_DSA_PUBKEY_bio.3d2i_DSA_PUBKEY_fp.3d2i_DSA_SIG.3d2i_DSAparams.3d2i_ECDSA_SIG.3d2i_ECPKParameters.3d2i_ECParameters.3d2i_ECPrivateKey.3d2i_ECPrivateKey_bio.3d2i_ECPrivateKey_fp.3d2i_EC_PUBKEY.3d2i_EC_PUBKEY_bio.3d2i_EC_PUBKEY_fp.3d2i_EDIPARTYNAME.3d2i_ESS_CERT_ID.3d2i_ESS_ISSUER_SERIAL.3d2i_ESS_SIGNING_CERT.3d2i_EXTENDED_KEY_USAGE.3d2i_GENERAL_NAME.3d2i_GENERAL_NAMES.3d2i_IPAddressChoice.3d2i_IPAddressFamily.3d2i_IPAddressOrRange.3d2i_IPAddressRange.3d2i_ISSUING_DIST_POINT.3d2i_NAMING_AUTHORITY.3d2i_NETSCAPE_CERT_SEQUENCE.3d2i_NETSCAPE_SPKAC.3d2i_NETSCAPE_SPKI.3d2i_NOTICEREF.3d2i_OCSP_BASICRESP.3d2i_OCSP_CERTID.3d2i_OCSP_CERTSTATUS.3d2i_OCSP_CRLID.3d2i_OCSP_ONEREQ.3d2i_OCSP_REQINFO.3d2i_OCSP_REQUEST.3d2i_OCSP_RESPBYTES.3d2i_OCSP_RESPDATA.3d2i_OCSP_RESPID.3d2i_OCSP_RESPONSE.3d2i_OCSP_REVOKEDINFO.3d2i_OCSP_SERVICELOC.3d2i_OCSP_SIGNATURE.3d2i_OCSP_SINGLERESP.3d2i_OTHERNAME.3d2i_PBE2PARAM.3d2i_PBEPARAM.3d2i_PBKDF2PARAM.3d2i_PKCS12.3d2i_PKCS12_BAGS.3d2i_PKCS12_MAC_DATA.3d2i_PKCS12_SAFEBAG.3d2i_PKCS12_bio.3d2i_PKCS12_fp.3d2i_PKCS7.3d2i_PKCS7_DIGEST.3d2i_PKCS7_ENCRYPT.3d2i_PKCS7_ENC_CONTENT.3d2i_PKCS7_ENVELOPE.3d2i_PKCS7_ISSUER_AND_SERIAL.3d2i_PKCS7_RECIP_INFO.3d2i_PKCS7_SIGNED.3d2i_PKCS7_SIGNER_INFO.3d2i_PKCS7_SIGN_ENVELOPE.3d2i_PKCS7_bio.3d2i_PKCS7_fp.3d2i_PKCS8PrivateKey_bio.3d2i_PKCS8PrivateKey_fp.3d2i_PKCS8_PRIV_KEY_INFO.3d2i_PKCS8_PRIV_KEY_INFO_bio.3d2i_PKCS8_PRIV_KEY_INFO_fp.3d2i_PKCS8_bio.3d2i_PKCS8_fp.3d2i_PKEY_USAGE_PERIOD.3d2i_POLICYINFO.3d2i_POLICYQUALINFO.3d2i_PROFESSION_INFO.3d2i_PROXY_CERT_INFO_EXTENSION.3d2i_PROXY_POLICY.3d2i_PUBKEY.3d2i_PUBKEY_bio.3d2i_PUBKEY_fp.3d2i_PrivateKey.3d2i_PrivateKey_bio.3d2i_PrivateKey_fp.3d2i_PublicKey.3d2i_RSAPrivateKey.3d2i_RSAPrivateKey_bio.3d2i_RSAPrivateKey_fp.3d2i_RSAPublicKey.3d2i_RSAPublicKey_bio.3d2i_RSAPublicKey_fp.3d2i_RSA_OAEP_PARAMS.3d2i_RSA_PSS_PARAMS.3d2i_RSA_PUBKEY.3d2i_RSA_PUBKEY_bio.3d2i_RSA_PUBKEY_fp.3d2i_SCRYPT_PARAMS.3d2i_SCT_LIST.3d2i_SSL_SESSION.3d2i_SXNET.3d2i_SXNETID.3d2i_TS_ACCURACY.3d2i_TS_MSG_IMPRINT.3d2i_TS_MSG_IMPRINT_bio.3d2i_TS_MSG_IMPRINT_fp.3d2i_TS_REQ.3d2i_TS_REQ_bio.3d2i_TS_REQ_fp.3d2i_TS_RESP.3d2i_TS_RESP_bio.3d2i_TS_RESP_fp.3d2i_TS_STATUS_INFO.3d2i_TS_TST_INFO.3d2i_TS_TST_INFO_bio.3d2i_TS_TST_INFO_fp.3d2i_USERNOTICE.3d2i_X509.3d2i_X509_ALGOR.3d2i_X509_ALGORS.3d2i_X509_ATTRIBUTE.3d2i_X509_AUX.3d2i_X509_CERT_AUX.3d2i_X509_CINF.3d2i_X509_CRL.3d2i_X509_CRL_INFO.3d2i_X509_CRL_bio.3d2i_X509_CRL_fp.3d2i_X509_EXTENSION.3d2i_X509_EXTENSIONS.3d2i_X509_NAME.3d2i_X509_NAME_ENTRY.3d2i_X509_PUBKEY.3d2i_X509_REQ.3d2i_X509_REQ_INFO.3d2i_X509_REQ_bio.3d2i_X509_REQ_fp.3d2i_X509_REVOKED.3d2i_X509_SIG.3d2i_X509_VAL.3d2i_X509_bio.3d2i_X509_fp.3i2d_ACCESS_DESCRIPTION.3i2d_ADMISSIONS.3i2d_ADMISSION_SYNTAX.3i2d_ASIdOrRange.3i2d_ASIdentifierChoice.3i2d_ASIdentifiers.3i2d_ASN1_BIT_STRING.3i2d_ASN1_BMPSTRING.3i2d_ASN1_ENUMERATED.3i2d_ASN1_GENERALIZEDTIME.3i2d_ASN1_GENERALSTRING.3i2d_ASN1_IA5STRING.3i2d_ASN1_INTEGER.3i2d_ASN1_NULL.3i2d_ASN1_OBJECT.3i2d_ASN1_OCTET_STRING.3i2d_ASN1_PRINTABLE.3i2d_ASN1_PRINTABLESTRING.3i2d_ASN1_SEQUENCE_ANY.3i2d_ASN1_SET_ANY.3i2d_ASN1_T61STRING.3i2d_ASN1_TIME.3i2d_ASN1_TYPE.3i2d_ASN1_UNIVERSALSTRING.3i2d_ASN1_UTCTIME.3i2d_ASN1_UTF8STRING.3i2d_ASN1_VISIBLESTRING.3i2d_ASN1_bio_stream.3i2d_ASRange.3i2d_AUTHORITY_INFO_ACCESS.3i2d_AUTHORITY_KEYID.3i2d_BASIC_CONSTRAINTS.3i2d_CERTIFICATEPOLICIES.3i2d_CMS_ContentInfo.3i2d_CMS_ReceiptRequest.3i2d_CMS_bio.3i2d_CMS_bio_stream.3i2d_CRL_DIST_POINTS.3i2d_DHparams.3i2d_DHxparams.3i2d_DIRECTORYSTRING.3i2d_DISPLAYTEXT.3i2d_DIST_POINT.3i2d_DIST_POINT_NAME.3i2d_DSAPrivateKey.3i2d_DSAPrivateKey_bio.3i2d_DSAPrivateKey_fp.3i2d_DSAPublicKey.3i2d_DSA_PUBKEY.3i2d_DSA_PUBKEY_bio.3i2d_DSA_PUBKEY_fp.3i2d_DSA_SIG.3i2d_DSAparams.3i2d_ECDSA_SIG.3i2d_ECPKParameters.3i2d_ECParameters.3i2d_ECPrivateKey.3i2d_ECPrivateKey_bio.3i2d_ECPrivateKey_fp.3i2d_EC_PUBKEY.3i2d_EC_PUBKEY_bio.3i2d_EC_PUBKEY_fp.3i2d_EDIPARTYNAME.3i2d_ESS_CERT_ID.3i2d_ESS_ISSUER_SERIAL.3i2d_ESS_SIGNING_CERT.3i2d_EXTENDED_KEY_USAGE.3i2d_GENERAL_NAME.3i2d_GENERAL_NAMES.3i2d_IPAddressChoice.3i2d_IPAddressFamily.3i2d_IPAddressOrRange.3i2d_IPAddressRange.3i2d_ISSUING_DIST_POINT.3i2d_NAMING_AUTHORITY.3i2d_NETSCAPE_CERT_SEQUENCE.3i2d_NETSCAPE_SPKAC.3i2d_NETSCAPE_SPKI.3i2d_NOTICEREF.3i2d_OCSP_BASICRESP.3i2d_OCSP_CERTID.3i2d_OCSP_CERTSTATUS.3i2d_OCSP_CRLID.3i2d_OCSP_ONEREQ.3i2d_OCSP_REQINFO.3i2d_OCSP_REQUEST.3i2d_OCSP_RESPBYTES.3i2d_OCSP_RESPDATA.3i2d_OCSP_RESPID.3i2d_OCSP_RESPONSE.3i2d_OCSP_REVOKEDINFO.3i2d_OCSP_SERVICELOC.3i2d_OCSP_SIGNATURE.3i2d_OCSP_SINGLERESP.3i2d_OTHERNAME.3i2d_PBE2PARAM.3i2d_PBEPARAM.3i2d_PBKDF2PARAM.3i2d_PKCS12.3i2d_PKCS12_BAGS.3i2d_PKCS12_MAC_DATA.3i2d_PKCS12_SAFEBAG.3i2d_PKCS12_bio.3i2d_PKCS12_fp.3i2d_PKCS7.3i2d_PKCS7_DIGEST.3i2d_PKCS7_ENCRYPT.3i2d_PKCS7_ENC_CONTENT.3i2d_PKCS7_ENVELOPE.3i2d_PKCS7_ISSUER_AND_SERIAL.3i2d_PKCS7_NDEF.3i2d_PKCS7_RECIP_INFO.3i2d_PKCS7_SIGNED.3i2d_PKCS7_SIGNER_INFO.3i2d_PKCS7_SIGN_ENVELOPE.3i2d_PKCS7_bio.3i2d_PKCS7_bio_stream.3i2d_PKCS7_fp.3i2d_PKCS8PrivateKeyInfo_bio.3i2d_PKCS8PrivateKeyInfo_fp.3i2d_PKCS8PrivateKey_bio.3i2d_PKCS8PrivateKey_fp.3i2d_PKCS8PrivateKey_nid_bio.3i2d_PKCS8PrivateKey_nid_fp.3i2d_PKCS8_PRIV_KEY_INFO.3i2d_PKCS8_PRIV_KEY_INFO_bio.3i2d_PKCS8_PRIV_KEY_INFO_fp.3i2d_PKCS8_bio.3i2d_PKCS8_fp.3i2d_PKEY_USAGE_PERIOD.3i2d_POLICYINFO.3i2d_POLICYQUALINFO.3i2d_PROFESSION_INFO.3i2d_PROXY_CERT_INFO_EXTENSION.3i2d_PROXY_POLICY.3i2d_PUBKEY.3i2d_PUBKEY_bio.3i2d_PUBKEY_fp.3i2d_PrivateKey.3i2d_PublicKey.3i2d_RSAPrivateKey.3i2d_RSAPrivateKey_bio.3i2d_RSAPrivateKey_fp.3i2d_RSAPublicKey.3i2d_RSAPublicKey_bio.3i2d_RSAPublicKey_fp.3i2d_RSA_OAEP_PARAMS.3i2d_RSA_PSS_PARAMS.3i2d_RSA_PUBKEY.3i2d_RSA_PUBKEY_bio.3i2d_RSA_PUBKEY_fp.3i2d_SCRYPT_PARAMS.3i2d_SCT_LIST.3i2d_SSL_SESSION.3i2d_SXNET.3i2d_SXNETID.3i2d_TS_ACCURACY.3i2d_TS_MSG_IMPRINT.3i2d_TS_MSG_IMPRINT_bio.3i2d_TS_MSG_IMPRINT_fp.3i2d_TS_REQ.3i2d_TS_REQ_bio.3i2d_TS_REQ_fp.3i2d_TS_RESP.3i2d_TS_RESP_bio.3i2d_TS_RESP_fp.3i2d_TS_STATUS_INFO.3i2d_TS_TST_INFO.3i2d_TS_TST_INFO_bio.3i2d_TS_TST_INFO_fp.3i2d_USERNOTICE.3i2d_X509.3i2d_X509_ALGOR.3i2d_X509_ALGORS.3i2d_X509_ATTRIBUTE.3i2d_X509_AUX.3i2d_X509_CERT_AUX.3i2d_X509_CINF.3i2d_X509_CRL.3i2d_X509_CRL_INFO.3i2d_X509_CRL_bio.3i2d_X509_CRL_fp.3i2d_X509_EXTENSION.3i2d_X509_EXTENSIONS.3i2d_X509_NAME.3i2d_X509_NAME_ENTRY.3i2d_X509_PUBKEY.3i2d_X509_REQ.3i2d_X509_REQ_INFO.3i2d_X509_REQ_bio.3i2d_X509_REQ_fp.3i2d_X509_REVOKED.3i2d_X509_SIG.3i2d_X509_VAL.3i2d_X509_bio.3i2d_X509_fp.3i2d_re_X509_CRL_tbs.3i2d_re_X509_REQ_tbs.3i2d_re_X509_tbs.3i2o_SCT.3i2o_SCT_LIST.3i2t_ASN1_OBJECT.3lh_TYPE_delete.3lh_TYPE_doall.3lh_TYPE_doall_arg.3lh_TYPE_error.3lh_TYPE_free.3lh_TYPE_insert.3lh_TYPE_new.3lh_TYPE_retrieve.3o2i_SCT.3o2i_SCT_LIST.3pem_password_cb.3sk_TYPE_deep_copy.3sk_TYPE_delete.3sk_TYPE_delete_ptr.3sk_TYPE_dup.3sk_TYPE_find.3sk_TYPE_find_ex.3sk_TYPE_free.3sk_TYPE_insert.3sk_TYPE_is_sorted.3sk_TYPE_new.3sk_TYPE_new_null.3sk_TYPE_new_reserve.3sk_TYPE_num.3sk_TYPE_pop.3sk_TYPE_pop_free.3sk_TYPE_push.3sk_TYPE_reserve.3sk_TYPE_set.3sk_TYPE_set_cmp_func.3sk_TYPE_shift.3sk_TYPE_sort.3sk_TYPE_unshift.3sk_TYPE_value.3sk_TYPE_zero.3ssl_ct_validation_cb.3
man5
man7
ssl
mingw64
bin
include
openssl
aes.hasn1.hasn1_mac.hasn1err.hasn1t.hasync.hasyncerr.hbio.hbioerr.hblowfish.hbn.hbnerr.hbuffer.hbuffererr.hcamellia.hcast.hcmac.hcms.hcmserr.hcomp.hcomperr.hconf.hconf_api.hconferr.hcrypto.hcryptoerr.hct.hcterr.hdes.hdh.hdherr.hdsa.hdsaerr.hdtls1.he_os2.hebcdic.hec.hecdh.hecdsa.hecerr.hengine.hengineerr.herr.hevp.hevperr.hhmac.hidea.hkdf.hkdferr.hlhash.hmd2.hmd4.hmd5.hmdc2.hmodes.hobj_mac.hobjects.hobjectserr.hocsp.hocsperr.hopensslconf.hopensslv.hossl_typ.hpem.hpem2.hpemerr.hpkcs12.hpkcs12err.hpkcs7.hpkcs7err.hrand.hrand_drbg.hranderr.hrc2.hrc4.hrc5.hripemd.hrsa.hrsaerr.hsafestack.hseed.hsha.hsrp.hsrtp.hssl.hssl2.hssl3.hsslerr.hstack.hstore.hstoreerr.hsymhacks.htls1.hts.htserr.htxt_db.hui.huierr.hwhrlpool.hx509.hx509_vfy.hx509err.hx509v3.hx509v3err.h
lib
pkgconfig
share
doc
openssl
html
man1
CA.pl.htmlasn1parse.htmlca.htmlciphers.htmlcms.htmlcrl.htmlcrl2pkcs7.htmldgst.htmldhparam.htmldsa.htmldsaparam.htmlec.htmlecparam.htmlenc.htmlengine.htmlerrstr.htmlgendsa.htmlgenpkey.htmlgenrsa.htmllist.htmlnseq.htmlocsp.htmlopenssl.htmlpasswd.htmlpkcs12.htmlpkcs7.htmlpkcs8.htmlpkey.htmlpkeyparam.htmlpkeyutl.htmlprime.htmlrand.htmlrehash.htmlreq.htmlrsa.htmlrsautl.htmls_client.htmls_server.htmls_time.htmlsess_id.htmlsmime.htmlspeed.htmlspkac.htmlsrp.htmlstoreutl.htmlts.htmltsget.htmlverify.htmlversion.htmlx509.html
man3
ADMISSIONS.htmlASN1_INTEGER_get_int64.htmlASN1_ITEM_lookup.htmlASN1_OBJECT_new.htmlASN1_STRING_TABLE_add.htmlASN1_STRING_length.htmlASN1_STRING_new.htmlASN1_STRING_print_ex.htmlASN1_TIME_set.htmlASN1_TYPE_get.htmlASN1_generate_nconf.htmlASYNC_WAIT_CTX_new.htmlASYNC_start_job.htmlBF_encrypt.htmlBIO_ADDR.htmlBIO_ADDRINFO.htmlBIO_connect.htmlBIO_ctrl.htmlBIO_f_base64.htmlBIO_f_buffer.htmlBIO_f_cipher.htmlBIO_f_md.htmlBIO_f_null.htmlBIO_f_ssl.htmlBIO_find_type.htmlBIO_get_data.htmlBIO_get_ex_new_index.htmlBIO_meth_new.htmlBIO_new.htmlBIO_new_CMS.htmlBIO_parse_hostserv.htmlBIO_printf.htmlBIO_push.htmlBIO_read.htmlBIO_s_accept.htmlBIO_s_bio.htmlBIO_s_connect.htmlBIO_s_fd.htmlBIO_s_file.htmlBIO_s_mem.htmlBIO_s_null.htmlBIO_s_socket.htmlBIO_set_callback.htmlBIO_should_retry.htmlBN_BLINDING_new.htmlBN_CTX_new.htmlBN_CTX_start.htmlBN_add.htmlBN_add_word.htmlBN_bn2bin.htmlBN_cmp.htmlBN_copy.htmlBN_generate_prime.htmlBN_mod_inverse.htmlBN_mod_mul_montgomery.htmlBN_mod_mul_reciprocal.htmlBN_new.htmlBN_num_bytes.htmlBN_rand.htmlBN_security_bits.htmlBN_set_bit.htmlBN_swap.htmlBN_zero.htmlBUF_MEM_new.htmlCMS_add0_cert.htmlCMS_add1_recipient_cert.htmlCMS_add1_signer.htmlCMS_compress.htmlCMS_decrypt.htmlCMS_encrypt.htmlCMS_final.htmlCMS_get0_RecipientInfos.htmlCMS_get0_SignerInfos.htmlCMS_get0_type.htmlCMS_get1_ReceiptRequest.htmlCMS_sign.htmlCMS_sign_receipt.htmlCMS_uncompress.htmlCMS_verify.htmlCMS_verify_receipt.htmlCONF_modules_free.htmlCONF_modules_load_file.htmlCRYPTO_THREAD_run_once.htmlCRYPTO_get_ex_new_index.htmlCRYPTO_memcmp.htmlCTLOG_STORE_get0_log_by_id.htmlCTLOG_STORE_new.htmlCTLOG_new.htmlCT_POLICY_EVAL_CTX_new.htmlDEFINE_STACK_OF.htmlDES_random_key.htmlDH_generate_key.htmlDH_generate_parameters.htmlDH_get0_pqg.htmlDH_get_1024_160.htmlDH_meth_new.htmlDH_new.htmlDH_new_by_nid.htmlDH_set_method.htmlDH_size.htmlDSA_SIG_new.htmlDSA_do_sign.htmlDSA_dup_DH.htmlDSA_generate_key.htmlDSA_generate_parameters.htmlDSA_get0_pqg.htmlDSA_meth_new.htmlDSA_new.htmlDSA_set_method.htmlDSA_sign.htmlDSA_size.htmlDTLS_get_data_mtu.htmlDTLS_set_timer_cb.htmlDTLSv1_listen.htmlECDSA_SIG_new.htmlECPKParameters_print.htmlEC_GFp_simple_method.htmlEC_GROUP_copy.htmlEC_GROUP_new.htmlEC_KEY_get_enc_flags.htmlEC_KEY_new.htmlEC_POINT_add.htmlEC_POINT_new.htmlENGINE_add.htmlERR_GET_LIB.htmlERR_clear_error.htmlERR_error_string.htmlERR_get_error.htmlERR_load_crypto_strings.htmlERR_load_strings.htmlERR_print_errors.htmlERR_put_error.htmlERR_remove_state.htmlERR_set_mark.htmlEVP_BytesToKey.htmlEVP_CIPHER_CTX_get_cipher_data.htmlEVP_CIPHER_meth_new.htmlEVP_DigestInit.htmlEVP_DigestSignInit.htmlEVP_DigestVerifyInit.htmlEVP_EncodeInit.htmlEVP_EncryptInit.htmlEVP_MD_meth_new.htmlEVP_OpenInit.htmlEVP_PKEY_ASN1_METHOD.htmlEVP_PKEY_CTX_ctrl.htmlEVP_PKEY_CTX_new.htmlEVP_PKEY_CTX_set1_pbe_pass.htmlEVP_PKEY_CTX_set_hkdf_md.htmlEVP_PKEY_CTX_set_rsa_pss_keygen_md.htmlEVP_PKEY_CTX_set_scrypt_N.htmlEVP_PKEY_CTX_set_tls1_prf_md.htmlEVP_PKEY_asn1_get_count.htmlEVP_PKEY_cmp.htmlEVP_PKEY_decrypt.htmlEVP_PKEY_derive.htmlEVP_PKEY_encrypt.htmlEVP_PKEY_get_default_digest_nid.htmlEVP_PKEY_keygen.htmlEVP_PKEY_meth_get_count.htmlEVP_PKEY_meth_new.htmlEVP_PKEY_new.htmlEVP_PKEY_print_private.htmlEVP_PKEY_set1_RSA.htmlEVP_PKEY_sign.htmlEVP_PKEY_size.htmlEVP_PKEY_verify.htmlEVP_PKEY_verify_recover.htmlEVP_SealInit.htmlEVP_SignInit.htmlEVP_VerifyInit.htmlEVP_aes.htmlEVP_aria.htmlEVP_bf_cbc.htmlEVP_blake2b512.htmlEVP_camellia.htmlEVP_cast5_cbc.htmlEVP_chacha20.htmlEVP_des.htmlEVP_desx_cbc.htmlEVP_idea_cbc.htmlEVP_md2.htmlEVP_md4.htmlEVP_md5.htmlEVP_mdc2.htmlEVP_rc2_cbc.htmlEVP_rc4.htmlEVP_rc5_32_12_16_cbc.htmlEVP_ripemd160.htmlEVP_seed_cbc.htmlEVP_sha1.htmlEVP_sha224.htmlEVP_sha3_224.htmlEVP_sm3.htmlEVP_sm4_cbc.htmlEVP_whirlpool.htmlHMAC.htmlMD5.htmlMDC2_Init.htmlOBJ_nid2obj.htmlOCSP_REQUEST_new.htmlOCSP_cert_to_id.htmlOCSP_request_add1_nonce.htmlOCSP_resp_find_status.htmlOCSP_response_status.htmlOCSP_sendreq_new.htmlOPENSSL_Applink.htmlOPENSSL_LH_COMPFUNC.htmlOPENSSL_LH_stats.htmlOPENSSL_VERSION_NUMBER.htmlOPENSSL_config.htmlOPENSSL_fork_prepare.htmlOPENSSL_ia32cap.htmlOPENSSL_init_crypto.htmlOPENSSL_init_ssl.htmlOPENSSL_instrument_bus.htmlOPENSSL_load_builtin_modules.htmlOPENSSL_malloc.htmlOPENSSL_secure_malloc.htmlOSSL_STORE_INFO.htmlOSSL_STORE_LOADER.htmlOSSL_STORE_SEARCH.htmlOSSL_STORE_expect.htmlOSSL_STORE_open.htmlOpenSSL_add_all_algorithms.htmlPEM_bytes_read_bio.htmlPEM_read.htmlPEM_read_CMS.htmlPEM_read_bio_PrivateKey.htmlPEM_read_bio_ex.htmlPEM_write_bio_CMS_stream.htmlPEM_write_bio_PKCS7_stream.htmlPKCS12_create.htmlPKCS12_newpass.htmlPKCS12_parse.htmlPKCS5_PBKDF2_HMAC.htmlPKCS7_decrypt.htmlPKCS7_encrypt.htmlPKCS7_sign.htmlPKCS7_sign_add_signer.htmlPKCS7_verify.htmlRAND_DRBG_generate.htmlRAND_DRBG_get0_master.htmlRAND_DRBG_new.htmlRAND_DRBG_reseed.htmlRAND_DRBG_set_callbacks.htmlRAND_DRBG_set_ex_data.htmlRAND_add.htmlRAND_bytes.htmlRAND_cleanup.htmlRAND_egd.htmlRAND_load_file.htmlRAND_set_rand_method.htmlRC4_set_key.htmlRIPEMD160_Init.htmlRSA_blinding_on.htmlRSA_check_key.htmlRSA_generate_key.htmlRSA_get0_key.htmlRSA_meth_new.htmlRSA_new.htmlRSA_padding_add_PKCS1_type_1.htmlRSA_print.htmlRSA_private_encrypt.htmlRSA_public_encrypt.htmlRSA_set_method.htmlRSA_sign.htmlRSA_sign_ASN1_OCTET_STRING.htmlRSA_size.htmlSCT_new.htmlSCT_print.htmlSCT_validate.htmlSHA256_Init.htmlSMIME_read_CMS.htmlSMIME_read_PKCS7.htmlSMIME_write_CMS.htmlSMIME_write_PKCS7.htmlSSL_CIPHER_get_name.htmlSSL_COMP_add_compression_method.htmlSSL_CONF_CTX_new.htmlSSL_CONF_CTX_set1_prefix.htmlSSL_CONF_CTX_set_flags.htmlSSL_CONF_CTX_set_ssl_ctx.htmlSSL_CONF_cmd.htmlSSL_CONF_cmd_argv.htmlSSL_CTX_add1_chain_cert.htmlSSL_CTX_add_extra_chain_cert.htmlSSL_CTX_add_session.htmlSSL_CTX_config.htmlSSL_CTX_ctrl.htmlSSL_CTX_dane_enable.htmlSSL_CTX_flush_sessions.htmlSSL_CTX_free.htmlSSL_CTX_get0_param.htmlSSL_CTX_get_verify_mode.htmlSSL_CTX_has_client_custom_ext.htmlSSL_CTX_load_verify_locations.htmlSSL_CTX_new.htmlSSL_CTX_sess_number.htmlSSL_CTX_sess_set_cache_size.htmlSSL_CTX_sess_set_get_cb.htmlSSL_CTX_sessions.htmlSSL_CTX_set0_CA_list.htmlSSL_CTX_set1_curves.htmlSSL_CTX_set1_sigalgs.htmlSSL_CTX_set1_verify_cert_store.htmlSSL_CTX_set_alpn_select_cb.htmlSSL_CTX_set_cert_cb.htmlSSL_CTX_set_cert_store.htmlSSL_CTX_set_cert_verify_callback.htmlSSL_CTX_set_cipher_list.htmlSSL_CTX_set_client_cert_cb.htmlSSL_CTX_set_client_hello_cb.htmlSSL_CTX_set_ct_validation_callback.htmlSSL_CTX_set_ctlog_list_file.htmlSSL_CTX_set_default_passwd_cb.htmlSSL_CTX_set_ex_data.htmlSSL_CTX_set_generate_session_id.htmlSSL_CTX_set_info_callback.htmlSSL_CTX_set_keylog_callback.htmlSSL_CTX_set_max_cert_list.htmlSSL_CTX_set_min_proto_version.htmlSSL_CTX_set_mode.htmlSSL_CTX_set_msg_callback.htmlSSL_CTX_set_num_tickets.htmlSSL_CTX_set_options.htmlSSL_CTX_set_psk_client_callback.htmlSSL_CTX_set_quiet_shutdown.htmlSSL_CTX_set_read_ahead.htmlSSL_CTX_set_record_padding_callback.htmlSSL_CTX_set_security_level.htmlSSL_CTX_set_session_cache_mode.htmlSSL_CTX_set_session_id_context.htmlSSL_CTX_set_session_ticket_cb.htmlSSL_CTX_set_split_send_fragment.htmlSSL_CTX_set_ssl_version.htmlSSL_CTX_set_stateless_cookie_generate_cb.htmlSSL_CTX_set_timeout.htmlSSL_CTX_set_tlsext_servername_callback.htmlSSL_CTX_set_tlsext_status_cb.htmlSSL_CTX_set_tlsext_ticket_key_cb.htmlSSL_CTX_set_tlsext_use_srtp.htmlSSL_CTX_set_tmp_dh_callback.htmlSSL_CTX_set_verify.htmlSSL_CTX_use_certificate.htmlSSL_CTX_use_psk_identity_hint.htmlSSL_CTX_use_serverinfo.htmlSSL_SESSION_free.htmlSSL_SESSION_get0_cipher.htmlSSL_SESSION_get0_hostname.htmlSSL_SESSION_get0_id_context.htmlSSL_SESSION_get0_peer.htmlSSL_SESSION_get_compress_id.htmlSSL_SESSION_get_ex_data.htmlSSL_SESSION_get_protocol_version.htmlSSL_SESSION_get_time.htmlSSL_SESSION_has_ticket.htmlSSL_SESSION_is_resumable.htmlSSL_SESSION_print.htmlSSL_SESSION_set1_id.htmlSSL_accept.htmlSSL_alert_type_string.htmlSSL_alloc_buffers.htmlSSL_check_chain.htmlSSL_clear.htmlSSL_connect.htmlSSL_do_handshake.htmlSSL_export_keying_material.htmlSSL_extension_supported.htmlSSL_free.htmlSSL_get0_peer_scts.htmlSSL_get_SSL_CTX.htmlSSL_get_all_async_fds.htmlSSL_get_ciphers.htmlSSL_get_client_random.htmlSSL_get_current_cipher.htmlSSL_get_default_timeout.htmlSSL_get_error.htmlSSL_get_extms_support.htmlSSL_get_fd.htmlSSL_get_peer_cert_chain.htmlSSL_get_peer_certificate.htmlSSL_get_peer_signature_nid.htmlSSL_get_peer_tmp_key.htmlSSL_get_psk_identity.htmlSSL_get_rbio.htmlSSL_get_session.htmlSSL_get_shared_sigalgs.htmlSSL_get_verify_result.htmlSSL_get_version.htmlSSL_in_init.htmlSSL_key_update.htmlSSL_library_init.htmlSSL_load_client_CA_file.htmlSSL_new.htmlSSL_pending.htmlSSL_read.htmlSSL_read_early_data.htmlSSL_rstate_string.htmlSSL_session_reused.htmlSSL_set1_host.htmlSSL_set_bio.htmlSSL_set_connect_state.htmlSSL_set_fd.htmlSSL_set_session.htmlSSL_set_shutdown.htmlSSL_set_verify_result.htmlSSL_shutdown.htmlSSL_state_string.htmlSSL_want.htmlSSL_write.htmlUI_STRING.htmlUI_UTIL_read_pw.htmlUI_create_method.htmlUI_new.htmlX509V3_get_d2i.htmlX509_ALGOR_dup.htmlX509_CRL_get0_by_serial.htmlX509_EXTENSION_set_object.htmlX509_LOOKUP.htmlX509_LOOKUP_hash_dir.htmlX509_LOOKUP_meth_new.htmlX509_NAME_ENTRY_get_object.htmlX509_NAME_add_entry_by_txt.htmlX509_NAME_get0_der.htmlX509_NAME_get_index_by_NID.htmlX509_NAME_print_ex.htmlX509_PUBKEY_new.htmlX509_SIG_get0.htmlX509_STORE_CTX_get_error.htmlX509_STORE_CTX_new.htmlX509_STORE_CTX_set_verify_cb.htmlX509_STORE_add_cert.htmlX509_STORE_get0_param.htmlX509_STORE_new.htmlX509_STORE_set_verify_cb_func.htmlX509_VERIFY_PARAM_set_flags.htmlX509_check_ca.htmlX509_check_host.htmlX509_check_issued.htmlX509_check_private_key.htmlX509_check_purpose.htmlX509_cmp.htmlX509_cmp_time.htmlX509_digest.htmlX509_dup.htmlX509_get0_notBefore.htmlX509_get0_signature.htmlX509_get0_uids.htmlX509_get_extension_flags.htmlX509_get_pubkey.htmlX509_get_serialNumber.htmlX509_get_subject_name.htmlX509_get_version.htmlX509_new.htmlX509_sign.htmlX509_verify_cert.htmlX509v3_get_ext_by_NID.htmld2i_DHparams.htmld2i_PKCS8PrivateKey_bio.htmld2i_PrivateKey.htmld2i_SSL_SESSION.htmld2i_X509.htmli2d_CMS_bio_stream.htmli2d_PKCS7_bio_stream.htmli2d_re_X509_tbs.htmlo2i_SCT_LIST.html
man5
man7
man
man1
CA.pl.1asn1parse.1ca.1ciphers.1cms.1crl.1crl2pkcs7.1dgst.1dhparam.1dsa.1dsaparam.1ec.1ecparam.1enc.1engine.1errstr.1gendsa.1genpkey.1genrsa.1list.1nseq.1ocsp.1openssl.1passwd.1pkcs12.1pkcs7.1pkcs8.1pkey.1pkeyparam.1pkeyutl.1prime.1rand.1rehash.1req.1rsa.1rsautl.1s_client.1s_server.1s_time.1sess_id.1smime.1speed.1spkac.1srp.1storeutl.1ts.1tsget.1verify.1version.1x509.1
man3
ADMISSIONS.3ASN1_INTEGER_get_int64.3ASN1_ITEM_lookup.3ASN1_OBJECT_new.3ASN1_STRING_TABLE_add.3ASN1_STRING_length.3ASN1_STRING_new.3ASN1_STRING_print_ex.3ASN1_TIME_set.3ASN1_TYPE_get.3ASN1_generate_nconf.3ASYNC_WAIT_CTX_new.3ASYNC_start_job.3BF_encrypt.3BIO_ADDR.3BIO_ADDRINFO.3BIO_connect.3BIO_ctrl.3BIO_f_base64.3BIO_f_buffer.3BIO_f_cipher.3BIO_f_md.3BIO_f_null.3BIO_f_ssl.3BIO_find_type.3BIO_get_data.3BIO_get_ex_new_index.3BIO_meth_new.3BIO_new.3BIO_new_CMS.3BIO_parse_hostserv.3BIO_printf.3BIO_push.3BIO_read.3BIO_s_accept.3BIO_s_bio.3BIO_s_connect.3BIO_s_fd.3BIO_s_file.3BIO_s_mem.3BIO_s_null.3BIO_s_socket.3BIO_set_callback.3BIO_should_retry.3BN_BLINDING_new.3BN_CTX_new.3BN_CTX_start.3BN_add.3BN_add_word.3BN_bn2bin.3BN_cmp.3BN_copy.3BN_generate_prime.3BN_mod_inverse.3BN_mod_mul_montgomery.3BN_mod_mul_reciprocal.3BN_new.3BN_num_bytes.3BN_rand.3BN_security_bits.3BN_set_bit.3BN_swap.3BN_zero.3BUF_MEM_new.3CMS_add0_cert.3CMS_add1_recipient_cert.3CMS_add1_signer.3CMS_compress.3CMS_decrypt.3CMS_encrypt.3CMS_final.3CMS_get0_RecipientInfos.3CMS_get0_SignerInfos.3CMS_get0_type.3CMS_get1_ReceiptRequest.3CMS_sign.3CMS_sign_receipt.3CMS_uncompress.3CMS_verify.3CMS_verify_receipt.3CONF_modules_free.3CONF_modules_load_file.3CRYPTO_THREAD_run_once.3CRYPTO_get_ex_new_index.3CRYPTO_memcmp.3CTLOG_STORE_get0_log_by_id.3CTLOG_STORE_new.3CTLOG_new.3CT_POLICY_EVAL_CTX_new.3DEFINE_STACK_OF.3DES_random_key.3DH_generate_key.3DH_generate_parameters.3DH_get0_pqg.3DH_get_1024_160.3DH_meth_new.3DH_new.3DH_new_by_nid.3DH_set_method.3DH_size.3DSA_SIG_new.3DSA_do_sign.3DSA_dup_DH.3DSA_generate_key.3DSA_generate_parameters.3DSA_get0_pqg.3DSA_meth_new.3DSA_new.3DSA_set_method.3DSA_sign.3DSA_size.3DTLS_get_data_mtu.3DTLS_set_timer_cb.3DTLSv1_listen.3ECDSA_SIG_new.3ECPKParameters_print.3EC_GFp_simple_method.3EC_GROUP_copy.3EC_GROUP_new.3EC_KEY_get_enc_flags.3EC_KEY_new.3EC_POINT_add.3EC_POINT_new.3ENGINE_add.3ERR_GET_LIB.3ERR_clear_error.3ERR_error_string.3ERR_get_error.3ERR_load_crypto_strings.3ERR_load_strings.3ERR_print_errors.3ERR_put_error.3ERR_remove_state.3ERR_set_mark.3EVP_BytesToKey.3EVP_CIPHER_CTX_get_cipher_data.3EVP_CIPHER_meth_new.3EVP_DigestInit.3EVP_DigestSignInit.3EVP_DigestVerifyInit.3EVP_EncodeInit.3EVP_EncryptInit.3EVP_MD_meth_new.3EVP_OpenInit.3EVP_PKEY_ASN1_METHOD.3EVP_PKEY_CTX_ctrl.3EVP_PKEY_CTX_new.3EVP_PKEY_CTX_set1_pbe_pass.3EVP_PKEY_CTX_set_hkdf_md.3EVP_PKEY_CTX_set_rsa_pss_keygen_md.3EVP_PKEY_CTX_set_scrypt_N.3EVP_PKEY_CTX_set_tls1_prf_md.3EVP_PKEY_asn1_get_count.3EVP_PKEY_cmp.3EVP_PKEY_decrypt.3EVP_PKEY_derive.3EVP_PKEY_encrypt.3EVP_PKEY_get_default_digest_nid.3EVP_PKEY_keygen.3EVP_PKEY_meth_get_count.3EVP_PKEY_meth_new.3EVP_PKEY_new.3EVP_PKEY_print_private.3EVP_PKEY_set1_RSA.3EVP_PKEY_sign.3EVP_PKEY_size.3EVP_PKEY_verify.3EVP_PKEY_verify_recover.3EVP_SealInit.3EVP_SignInit.3EVP_VerifyInit.3EVP_aes.3EVP_aria.3EVP_bf_cbc.3EVP_blake2b512.3EVP_camellia.3EVP_cast5_cbc.3EVP_chacha20.3EVP_des.3EVP_desx_cbc.3EVP_idea_cbc.3EVP_md2.3EVP_md4.3EVP_md5.3EVP_mdc2.3EVP_rc2_cbc.3EVP_rc4.3EVP_rc5_32_12_16_cbc.3EVP_ripemd160.3EVP_seed_cbc.3EVP_sha1.3EVP_sha224.3EVP_sha3_224.3EVP_sm3.3EVP_sm4_cbc.3EVP_whirlpool.3HMAC.3MD5.3MDC2_Init.3OBJ_nid2obj.3OCSP_REQUEST_new.3OCSP_cert_to_id.3OCSP_request_add1_nonce.3OCSP_resp_find_status.3OCSP_response_status.3OCSP_sendreq_new.3OPENSSL_Applink.3OPENSSL_LH_COMPFUNC.3OPENSSL_LH_stats.3OPENSSL_VERSION_NUMBER.3OPENSSL_config.3OPENSSL_fork_prepare.3OPENSSL_ia32cap.3OPENSSL_init_crypto.3OPENSSL_init_ssl.3OPENSSL_instrument_bus.3OPENSSL_load_builtin_modules.3OPENSSL_malloc.3OPENSSL_secure_malloc.3OSSL_STORE_INFO.3OSSL_STORE_LOADER.3OSSL_STORE_SEARCH.3OSSL_STORE_expect.3OSSL_STORE_open.3OpenSSL_add_all_algorithms.3PEM_bytes_read_bio.3PEM_read.3PEM_read_CMS.3PEM_read_bio_PrivateKey.3PEM_read_bio_ex.3PEM_write_bio_CMS_stream.3PEM_write_bio_PKCS7_stream.3PKCS12_create.3PKCS12_newpass.3PKCS12_parse.3PKCS5_PBKDF2_HMAC.3PKCS7_decrypt.3PKCS7_encrypt.3PKCS7_sign.3PKCS7_sign_add_signer.3PKCS7_verify.3RAND_DRBG_generate.3RAND_DRBG_get0_master.3RAND_DRBG_new.3RAND_DRBG_reseed.3RAND_DRBG_set_callbacks.3RAND_DRBG_set_ex_data.3RAND_add.3RAND_bytes.3RAND_cleanup.3RAND_egd.3RAND_load_file.3RAND_set_rand_method.3RC4_set_key.3RIPEMD160_Init.3RSA_blinding_on.3RSA_check_key.3RSA_generate_key.3RSA_get0_key.3RSA_meth_new.3RSA_new.3RSA_padding_add_PKCS1_type_1.3RSA_print.3RSA_private_encrypt.3RSA_public_encrypt.3RSA_set_method.3RSA_sign.3RSA_sign_ASN1_OCTET_STRING.3RSA_size.3SCT_new.3SCT_print.3SCT_validate.3SHA256_Init.3SMIME_read_CMS.3SMIME_read_PKCS7.3SMIME_write_CMS.3SMIME_write_PKCS7.3SSL_CIPHER_get_name.3SSL_COMP_add_compression_method.3SSL_CONF_CTX_new.3SSL_CONF_CTX_set1_prefix.3SSL_CONF_CTX_set_flags.3SSL_CONF_CTX_set_ssl_ctx.3SSL_CONF_cmd.3SSL_CONF_cmd_argv.3SSL_CTX_add1_chain_cert.3SSL_CTX_add_extra_chain_cert.3SSL_CTX_add_session.3SSL_CTX_config.3SSL_CTX_ctrl.3SSL_CTX_dane_enable.3SSL_CTX_flush_sessions.3SSL_CTX_free.3SSL_CTX_get0_param.3SSL_CTX_get_verify_mode.3SSL_CTX_has_client_custom_ext.3SSL_CTX_load_verify_locations.3SSL_CTX_new.3SSL_CTX_sess_number.3SSL_CTX_sess_set_cache_size.3SSL_CTX_sess_set_get_cb.3SSL_CTX_sessions.3SSL_CTX_set0_CA_list.3SSL_CTX_set1_curves.3SSL_CTX_set1_sigalgs.3SSL_CTX_set1_verify_cert_store.3SSL_CTX_set_alpn_select_cb.3SSL_CTX_set_cert_cb.3SSL_CTX_set_cert_store.3SSL_CTX_set_cert_verify_callback.3SSL_CTX_set_cipher_list.3SSL_CTX_set_client_cert_cb.3SSL_CTX_set_client_hello_cb.3SSL_CTX_set_ct_validation_callback.3SSL_CTX_set_ctlog_list_file.3SSL_CTX_set_default_passwd_cb.3SSL_CTX_set_ex_data.3SSL_CTX_set_generate_session_id.3SSL_CTX_set_info_callback.3SSL_CTX_set_keylog_callback.3SSL_CTX_set_max_cert_list.3SSL_CTX_set_min_proto_version.3SSL_CTX_set_mode.3SSL_CTX_set_msg_callback.3SSL_CTX_set_num_tickets.3SSL_CTX_set_options.3SSL_CTX_set_psk_client_callback.3SSL_CTX_set_quiet_shutdown.3SSL_CTX_set_read_ahead.3SSL_CTX_set_record_padding_callback.3SSL_CTX_set_security_level.3SSL_CTX_set_session_cache_mode.3SSL_CTX_set_session_id_context.3SSL_CTX_set_session_ticket_cb.3SSL_CTX_set_split_send_fragment.3SSL_CTX_set_ssl_version.3SSL_CTX_set_stateless_cookie_generate_cb.3SSL_CTX_set_timeout.3SSL_CTX_set_tlsext_servername_callback.3SSL_CTX_set_tlsext_status_cb.3SSL_CTX_set_tlsext_ticket_key_cb.3SSL_CTX_set_tlsext_use_srtp.3SSL_CTX_set_tmp_dh_callback.3SSL_CTX_set_verify.3SSL_CTX_use_certificate.3SSL_CTX_use_psk_identity_hint.3SSL_CTX_use_serverinfo.3SSL_SESSION_free.3SSL_SESSION_get0_cipher.3SSL_SESSION_get0_hostname.3SSL_SESSION_get0_id_context.3SSL_SESSION_get0_peer.3SSL_SESSION_get_compress_id.3SSL_SESSION_get_ex_data.3SSL_SESSION_get_protocol_version.3SSL_SESSION_get_time.3SSL_SESSION_has_ticket.3SSL_SESSION_is_resumable.3SSL_SESSION_print.3SSL_SESSION_set1_id.3SSL_accept.3SSL_alert_type_string.3SSL_alloc_buffers.3SSL_check_chain.3SSL_clear.3SSL_connect.3SSL_do_handshake.3SSL_export_keying_material.3SSL_extension_supported.3SSL_free.3SSL_get0_peer_scts.3SSL_get_SSL_CTX.3SSL_get_all_async_fds.3SSL_get_ciphers.3SSL_get_client_random.3SSL_get_current_cipher.3SSL_get_default_timeout.3SSL_get_error.3SSL_get_extms_support.3SSL_get_fd.3SSL_get_peer_cert_chain.3SSL_get_peer_certificate.3SSL_get_peer_signature_nid.3SSL_get_peer_tmp_key.3SSL_get_psk_identity.3SSL_get_rbio.3SSL_get_session.3SSL_get_shared_sigalgs.3SSL_get_verify_result.3SSL_get_version.3SSL_in_init.3SSL_key_update.3SSL_library_init.3SSL_load_client_CA_file.3SSL_new.3SSL_pending.3SSL_read.3SSL_read_early_data.3SSL_rstate_string.3SSL_session_reused.3SSL_set1_host.3SSL_set_bio.3SSL_set_connect_state.3SSL_set_fd.3SSL_set_session.3SSL_set_shutdown.3SSL_set_verify_result.3SSL_shutdown.3SSL_state_string.3SSL_want.3SSL_write.3UI_STRING.3UI_UTIL_read_pw.3UI_create_method.3UI_new.3X509V3_get_d2i.3X509_ALGOR_dup.3X509_CRL_get0_by_serial.3X509_EXTENSION_set_object.3X509_LOOKUP.3X509_LOOKUP_hash_dir.3X509_LOOKUP_meth_new.3X509_NAME_ENTRY_get_object.3X509_NAME_add_entry_by_txt.3X509_NAME_get0_der.3X509_NAME_get_index_by_NID.3X509_NAME_print_ex.3X509_PUBKEY_new.3X509_SIG_get0.3X509_STORE_CTX_get_error.3X509_STORE_CTX_new.3X509_STORE_CTX_set_verify_cb.3X509_STORE_add_cert.3X509_STORE_get0_param.3X509_STORE_new.3X509_STORE_set_verify_cb_func.3X509_VERIFY_PARAM_set_flags.3X509_check_ca.3X509_check_host.3X509_check_issued.3X509_check_private_key.3X509_check_purpose.3X509_cmp.3X509_cmp_time.3X509_digest.3X509_dup.3X509_get0_notBefore.3X509_get0_signature.3X509_get0_uids.3X509_get_extension_flags.3X509_get_pubkey.3X509_get_serialNumber.3X509_get_subject_name.3X509_get_version.3X509_new.3X509_sign.3X509_verify_cert.3X509v3_get_ext_by_NID.3d2i_DHparams.3d2i_PKCS8PrivateKey_bio.3d2i_PrivateKey.3d2i_SSL_SESSION.3d2i_X509.3i2d_CMS_bio_stream.3i2d_PKCS7_bio_stream.3i2d_re_X509_tbs.3o2i_SCT_LIST.3
man5
man7
picohttpparser
.clang-format.gitignore.gitmodules.travis.ymlJamfileMakefileREADME.mdbench.cpicohttpparser.cpicohttpparser.h
picohttpparser.xcodeproj
test.csqlite
zlib
CMakeLists.txtChangeLogFAQINDEXLICENSEMakefileMakefile.inREADMEadler32.c
amiga
compress.cconfigurecontrib
README.contrib
crc32.ccrc32.hdeflate.cdeflate.hada
buffer_demo.adbmtest.adbread.adbreadme.txttest.adbzlib-streams.adbzlib-streams.adszlib-thin.adbzlib-thin.adszlib.adbzlib.adszlib.gpr
blast
delphi
dotzlib
DotZLib.buildDotZLib.chmDotZLib.sln
DotZLib
AssemblyInfo.csChecksumImpl.csCircularBuffer.csCodecBase.csDeflater.csDotZLib.csDotZLib.csprojGZipStream.csInflater.csUnitTests.cs
LICENSE_1_0.txtreadme.txtgcc_gvmat64
infback9
iostream
iostream2
iostream3
minizip
MakefileMakefile.amMiniZip64_Changes.txtMiniZip64_info.txtconfigure.accrypt.hioapi.cioapi.hiowin32.ciowin32.hmake_vms.comminiunz.cminiunzip.1minizip.1minizip.cminizip.pc.inmztools.cmztools.hunzip.cunzip.hzip.czip.h
pascal
puff
testzlib
untgz
vstudio
readme.txt
vc10
miniunz.vcxprojminiunz.vcxproj.filtersminizip.vcxprojminizip.vcxproj.filterstestzlib.vcxprojtestzlib.vcxproj.filterstestzlibdll.vcxprojtestzlibdll.vcxproj.filterszlib.rczlibstat.vcxprojzlibstat.vcxproj.filterszlibvc.defzlibvc.slnzlibvc.vcxprojzlibvc.vcxproj.filters
vc11
miniunz.vcxprojminizip.vcxprojtestzlib.vcxprojtestzlibdll.vcxprojzlib.rczlibstat.vcxprojzlibvc.defzlibvc.slnzlibvc.vcxproj
vc12
miniunz.vcxprojminizip.vcxprojtestzlib.vcxprojtestzlibdll.vcxprojzlib.rczlibstat.vcxprojzlibvc.defzlibvc.slnzlibvc.vcxproj
vc14
miniunz.vcxprojminizip.vcxprojtestzlib.vcxprojtestzlibdll.vcxprojzlib.rczlibstat.vcxprojzlibvc.defzlibvc.slnzlibvc.vcxproj
vc9
doc
examples
README.examplesenough.cfitblk.cgun.cgzappend.cgzjoin.cgzlog.cgzlog.hgznorm.czlib_how.htmlzpipe.czran.czran.h
gzclose.cgzguts.hgzlib.cgzread.cgzwrite.cinfback.cinffast.cinffast.hinffixed.hinflate.cinflate.hinftrees.cinftrees.hmake_vms.commsdos
nintendods
old
os400
qnx
test
treebuild.xmltrees.ctrees.huncompr.cwatcom
win32
zconf.hzconf.h.cmakeinzconf.h.inzlib.3zlib.3.pdfzlib.hzlib.mapzlib.pc.cmakeinzlib.pc.inzlib2ansizutil.czutil.hsrc
android
bcrypt.js.cdatabase.js.cdatabase.js.hfile.js.clog.hmain.cmem.cmem.hserialize.csocket.js.cssb.cssb.connections.cssb.db.cssb.db.hssb.export.cssb.hssb.import.cssb.import.hssb.js.cssb.rpc.cssb.tests.ctask.ctask.htaskstub.js.ctests.ctls.ctrace.ctrace.hutil.js.cutil.js.htools
@ -2,8 +2,10 @@ FROM bitnami/minideb:bullseye AS build
|
||||
|
||||
RUN apt-get update && \
|
||||
apt-get install -y --no-install-recommends \
|
||||
build-essential \
|
||||
libssl-dev
|
||||
gcc \
|
||||
libc6-dev \
|
||||
libssl-dev \
|
||||
make
|
||||
|
||||
COPY . /app
|
||||
RUN make -C /app -j $(nproc) release
|
||||
|
235
Makefile
235
Makefile
@ -5,7 +5,7 @@ MAKEFLAGS += --no-builtin-rules
|
||||
|
||||
PROJECT = tildefriends
|
||||
BUILD_DIR ?= out
|
||||
BUILD_TYPES := debug release windebug winrelease
|
||||
BUILD_TYPES := debug release windebug winrelease androiddebug androidrelease androiddebug-x86_64 androidrelease-x86_64
|
||||
UNAME_M := $(shell uname -m)
|
||||
|
||||
CFLAGS += \
|
||||
@ -16,17 +16,75 @@ CFLAGS += \
|
||||
-MMD \
|
||||
-ffunction-sections \
|
||||
-fdata-sections \
|
||||
-fno-omit-frame-pointer \
|
||||
-fno-exceptions \
|
||||
-g
|
||||
LDFLAGS += -Wl,-gc-sections
|
||||
LDFLAGS += -Wl,--gc-sections
|
||||
|
||||
debug windebug: CFLAGS += -Og
|
||||
debug release: LDFLAGS += -rdynamic
|
||||
release winrelease: CFLAGS += -DNDEBUG -O3
|
||||
windebug winrelease: CC = i686-w64-mingw32-gcc-win32
|
||||
ANDROID_SDK ?= ~/Android/Sdk
|
||||
ANDROID_BUILD_TOOLS := $(ANDROID_SDK)/build-tools/33.0.1
|
||||
ANDROID_PLATFORM := $(ANDROID_SDK)/platforms/android-33
|
||||
ANDROID_NDK ?= $(ANDROID_SDK)/ndk/23.1.7779620
|
||||
ANDROID_NDK_API_VERSION := 31
|
||||
ANDROID_MIN_SDK_VERSION := 26
|
||||
|
||||
ANDROID_ARM64_TARGETS := \
|
||||
out/androiddebug/tildefriends \
|
||||
out/androidrelease/tildefriends
|
||||
ANDROID_X86_64_TARGETS := \
|
||||
out/androiddebug-x86_64/tildefriends \
|
||||
out/androidrelease-x86_64/tildefriends
|
||||
ANDROID_TARGETS := \
|
||||
$(ANDROID_X86_64_TARGETS) \
|
||||
$(ANDROID_ARM64_TARGETS)
|
||||
|
||||
DEBUG_TARGETS := \
|
||||
out/debug/tildefriends \
|
||||
out/windebug/tildefriends \
|
||||
out/androiddebug/tildefriends \
|
||||
out/androiddebug-x86_64/tildefriends
|
||||
RELEASE_TARGETS := \
|
||||
out/release/tildefriends \
|
||||
out/winrelease/tildefriends \
|
||||
out/androidrelease/tildefriends \
|
||||
out/androidrelease-x86_64/tildefriends
|
||||
ANDROID_RELEASE_TARGETS := $(filter-out $(DEBUG_TARGETS),$(ANDROID_TARGETS))
|
||||
NONANDROID_RELEASE_TARGETS := $(filter-out $(ANDROID_ARM64_TARGETS),$(RELEASE_TARGETS))
|
||||
NONANDROID_TARGETS := $(filter-out $(ANDROID_TARGETS),$(DEBUG_TARGETS) $(RELEASE_TARGETS))
|
||||
|
||||
$(NONANDROID_TARGETS): CFLAGS += -fno-omit-frame-pointer
|
||||
$(NONANDROID_TARGETS): LDFLAGS += -rdynamic
|
||||
$(ANDROID_TARGETS): CFLAGS += \
|
||||
--sysroot $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/sysroot \
|
||||
-fPIC \
|
||||
-fomit-frame-pointer \
|
||||
-fno-asynchronous-unwind-tables
|
||||
$(ANDROID_TARGETS): LDFLAGS += --sysroot $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC
|
||||
$(DEBUG_TARGETS): CFLAGS += -DDEBUG -Og
|
||||
$(RELEASE_TARGETS): CFLAGS += -DNDEBUG
|
||||
$(NONANDROID_RELEASE_TARGETS): CFLAGS += -O3
|
||||
$(ANDROID_RELEASE_TARGETS): CFLAGS += -Os
|
||||
windebug winrelease: CC = x86_64-w64-mingw32-gcc-win32
|
||||
windebug winrelease: AS = $(CC)
|
||||
windebug winrelease: CFLAGS += -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNTDDI_VERSION=NTDDI_WIN10
|
||||
windebug winrelease: LDFLAGS += -static
|
||||
windebug winrelease: CFLAGS += \
|
||||
-D_WIN32_WINNT=0x0A00 \
|
||||
-DWINVER=0x0A00 \
|
||||
-DNTDDI_VERSION=NTDDI_WIN10 \
|
||||
-Ideps/openssl/mingw64/include
|
||||
windebug winrelease: LDFLAGS += \
|
||||
-static \
|
||||
-lm \
|
||||
-Ldeps/openssl/mingw64/lib
|
||||
$(ANDROID_X86_64_TARGETS): ANDROID_NDK_TARGET_TRIPLE := x86_64-linux-android
|
||||
$(ANDROID_ARM64_TARGETS): ANDROID_NDK_TARGET_TRIPLE := aarch64-linux-android
|
||||
$(ANDROID_TARGETS): CC = $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
|
||||
$(ANDROID_TARGETS): AS = $(CC)
|
||||
$(ANDROID_TARGETS): CFLAGS += \
|
||||
-target $(ANDROID_NDK_TARGET_TRIPLE)$(ANDROID_NDK_API_VERSION) \
|
||||
-Wno-unknown-warning-option
|
||||
$(ANDROID_ARM64_TARGETS): CFLAGS += -Ideps/openssl/android/arm64-v8a/usr/local/include
|
||||
$(ANDROID_ARM64_TARGETS): LDFLAGS += -Ldeps/openssl/android/arm64-v8a/usr/local/lib
|
||||
$(ANDROID_X86_64_TARGETS): CFLAGS += -Ideps/openssl/android/x86_64/usr/local/include
|
||||
$(ANDROID_X86_64_TARGETS): LDFLAGS += -Ldeps/openssl/android/x86_64/usr/local/lib
|
||||
|
||||
ifeq ($(UNAME_M),x86_64)
|
||||
debug: CFLAGS += -fsanitize=address -fsanitize=undefined -fno-common
|
||||
@ -36,7 +94,9 @@ endif
|
||||
get_objs = \
|
||||
$(foreach build_type,$(BUILD_TYPES),$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)))))) \
|
||||
$(foreach build_type,debug release,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_unix))))) \
|
||||
$(foreach build_type,windebug winrelease,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_win)))))
|
||||
$(foreach build_type,windebug winrelease,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_win))))) \
|
||||
$(foreach build_type,androiddebug androidrelease androiddebug-x86_64 androidrelease-x86_64,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_android))))) \
|
||||
$(foreach build_type,androiddebug androidrelease androiddebug-x86_64 androidrelease-x86_64,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_unix)))))
|
||||
|
||||
APP_SOURCES := $(wildcard src/*.c)
|
||||
APP_OBJS := $(call get_objs,APP_SOURCES)
|
||||
@ -47,17 +107,15 @@ $(APP_OBJS): CFLAGS += \
|
||||
-Ideps/libsodium \
|
||||
-Ideps/libsodium/src/libsodium/include \
|
||||
-Ideps/libuv/include \
|
||||
-Ideps/zlib \
|
||||
-Ideps/zlib/contrib/minizip \
|
||||
-Ideps/picohttpparser \
|
||||
-Ideps/quickjs \
|
||||
-Ideps/sqlite \
|
||||
-Ideps/valgrind \
|
||||
-Ideps/xopt \
|
||||
-Werror
|
||||
|
||||
BASE64C_SOURCES := deps/base64c/src/base64c.c
|
||||
BASE64C_OBJS := $(call get_objs,BASE64C_SOURCES)
|
||||
$(BASE64C_OBJS): CFLAGS += \
|
||||
-Wno-sign-compare
|
||||
|
||||
BLOWFISH_SOURCES := \
|
||||
deps/crypt_blowfish/crypt_blowfish.c \
|
||||
deps/crypt_blowfish/crypt_gensalt.c \
|
||||
@ -105,6 +163,9 @@ UV_SOURCES_unix := \
|
||||
deps/libuv/src/unix/thread.c \
|
||||
deps/libuv/src/unix/tty.c \
|
||||
deps/libuv/src/unix/udp.c
|
||||
UV_SOURCES_android := \
|
||||
deps/libuv/src/unix/pthread-fixes.c \
|
||||
deps/libuv/src/unix/random-getentropy.c
|
||||
UV_SOURCES_win := \
|
||||
deps/libuv/src/win/async.c \
|
||||
deps/libuv/src/win/core.c \
|
||||
@ -181,6 +242,7 @@ SODIUM_SOURCES := \
|
||||
deps/libsodium/src/libsodium/randombytes/randombytes.c \
|
||||
deps/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c \
|
||||
deps/libsodium/src/libsodium/sodium/core.c \
|
||||
deps/libsodium/src/libsodium/sodium/codecs.c \
|
||||
deps/libsodium/src/libsodium/sodium/runtime.c \
|
||||
deps/libsodium/src/libsodium/sodium/utils.c
|
||||
SODIUM_OBJS := $(call get_objs,SODIUM_SOURCES)
|
||||
@ -197,22 +259,37 @@ SQLITE_SOURCES := deps/sqlite/sqlite3.c
|
||||
SQLITE_OBJS := $(call get_objs,SQLITE_SOURCES)
|
||||
$(SQLITE_OBJS): CFLAGS += \
|
||||
-DSQLITE_DBCONFIG_DEFAULT_DEFENSIVE \
|
||||
-DSQLITE_DEFAULT_MEMSTATUS=0 \
|
||||
-DSQLITE_DQS=0 \
|
||||
-DSQLITE_ENABLE_MEMSYS5 \
|
||||
-DSQLITE_ENABLE_FTS5 \
|
||||
-DSQLITE_ENABLE_JSON1 \
|
||||
-DSQLITE_MAX_LENGTH=5242880 \
|
||||
-DSQLITE_MAX_SQL_LENGTH=100000 \
|
||||
-DSQLITE_MAX_COLUMN=100 \
|
||||
-DSQLITE_MAX_EXPR_DEPTH=40 \
|
||||
-DSQLITE_MAX_COMPOUND_SELECT=300 \
|
||||
-DSQLITE_MAX_VDBE_OP=25000 \
|
||||
-DSQLITE_MAX_FUNCTION_ARG=8 \
|
||||
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
|
||||
-DSQLITE_MAX_ATTACHED=0 \
|
||||
-DSQLITE_MAX_COLUMN=100 \
|
||||
-DSQLITE_MAX_COMPOUND_SELECT=300 \
|
||||
-DSQLITE_MAX_EXPR_DEPTH=40 \
|
||||
-DSQLITE_MAX_FUNCTION_ARG=8 \
|
||||
-DSQLITE_MAX_LENGTH=5242880 \
|
||||
-DSQLITE_MAX_LIKE_PATTERN_LENGTH=50 \
|
||||
-DSQLITE_MAX_VARIABLE_NUMBER=100 \
|
||||
-DSQLITE_MAX_SQL_LENGTH=100000 \
|
||||
-DSQLITE_MAX_TRIGGER_DEPTH=10 \
|
||||
-DSQLITE_MAX_VARIABLE_NUMBER=100 \
|
||||
-DSQLITE_MAX_VDBE_OP=25000 \
|
||||
-DSQLITE_OMIT_DEPRECATED \
|
||||
-DSQLITE_OMIT_DESERIALIZE \
|
||||
-DSQLITE_OMIT_LOAD_EXTENSION \
|
||||
-DSQLITE_OMIT_TCL_VARIABLE \
|
||||
-DSQLITE_PRAGMA_DEFAULT_WAL_SYNCHRONOUS=1 \
|
||||
-DSQLITE_SECURE_DELETE \
|
||||
-DSQLITE_THREADSAFE=0 \
|
||||
-DSQLITE_UNTESTABLE \
|
||||
-DSQLITE_USE_ALLOCA \
|
||||
-DHAVE_ISNAN \
|
||||
-Wno-implicit-fallthrough \
|
||||
-Wno-unused-but-set-variable
|
||||
-Wno-unused-but-set-variable \
|
||||
-Wno-unused-function \
|
||||
-Wno-unused-variable
|
||||
|
||||
XOPT_SOURCES := deps/xopt/xopt.c
|
||||
XOPT_OBJS := $(call get_objs,XOPT_SOURCES)
|
||||
@ -222,25 +299,27 @@ $(filter $(BUILD_DIR)/win%,$(XOPT_OBJS)): CFLAGS += \
|
||||
-DHAVE_VASNPRINTF \
|
||||
-DHAVE_VASPRINTF \
|
||||
-Dvsnprintf=rpl_vsnprintf
|
||||
$(XOPT_OBJS): CFLAGS += \
|
||||
-Wno-implicit-const-int-float-conversion
|
||||
|
||||
QUICKJS_SOURCES := \
|
||||
deps/quickjs/cutils.c \
|
||||
deps/quickjs/libbf.c \
|
||||
deps/quickjs/libregexp.c \
|
||||
deps/quickjs/libunicode.c \
|
||||
deps/quickjs/quickjs-libc.c \
|
||||
deps/quickjs/quickjs.c
|
||||
QUICKJS_OBJS := $(call get_objs,QUICKJS_SOURCES)
|
||||
$(QUICKJS_OBJS): CFLAGS += \
|
||||
-DCONFIG_VERSION=\"$(shell cat deps/quickjs/VERSION)\" \
|
||||
-DCONFIG_BIGNUM \
|
||||
-DDUMP_LEAKS \
|
||||
-D_GNU_SOURCE \
|
||||
-Wno-sign-compare \
|
||||
-Wno-enum-conversion \
|
||||
-Wno-implicit-const-int-float-conversion \
|
||||
-Wno-implicit-fallthrough \
|
||||
-Wno-unused-variable \
|
||||
-Wno-sign-compare \
|
||||
-Wno-unused-but-set-variable \
|
||||
-Wno-enum-conversion
|
||||
-Wno-unused-variable
|
||||
$(NONANDROID_TARGETS): CFLAGS += -DDUMP_LEAKS
|
||||
|
||||
LIBBACKTRACE_SOURCES := \
|
||||
deps/libbacktrace/atomic.c \
|
||||
@ -269,6 +348,24 @@ $(LIBBACKTRACE_OBJS): CFLAGS += \
|
||||
-Wno-unused-function \
|
||||
-DBACKTRACE_ELF_SIZE=64
|
||||
|
||||
PICOHTTPPARSER_SOURCES := \
|
||||
deps/picohttpparser/picohttpparser.c
|
||||
PICOHTTPPARSER_OBJS := $(call get_objs,PICOHTTPPARSER_SOURCES)
|
||||
|
||||
MINIUNZIP_SOURCES := \
|
||||
deps/zlib/contrib/minizip/unzip.c \
|
||||
deps/zlib/contrib/minizip/ioapi.c \
|
||||
deps/zlib/adler32.c \
|
||||
deps/zlib/crc32.c \
|
||||
deps/zlib/inffast.c \
|
||||
deps/zlib/inflate.c \
|
||||
deps/zlib/inftrees.c \
|
||||
deps/zlib/zutil.c
|
||||
MINIUNZIP_OBJS := $(call get_objs,MINIUNZIP_SOURCES)
|
||||
$(MINIUNZIP_OBJS): CFLAGS += \
|
||||
-Ideps/zlib \
|
||||
-Wno-maybe-uninitialized
|
||||
|
||||
LDFLAGS += \
|
||||
-pthread \
|
||||
-lm
|
||||
@ -281,18 +378,29 @@ windebug winrelease: LDFLAGS += \
|
||||
-lws2_32 \
|
||||
-lkernel32 \
|
||||
-liphlpapi \
|
||||
-luserenv
|
||||
-luserenv \
|
||||
-lssl \
|
||||
-lcrypto \
|
||||
-lws2_32 \
|
||||
-lcrypt32
|
||||
$(ANDROID_TARGETS): LDFLAGS += \
|
||||
-target $(ANDROID_NDK_TARGET_TRIPLE)$(ANDROID_NDK_API_VERSION) \
|
||||
-ldl \
|
||||
-llog \
|
||||
-lssl \
|
||||
-lcrypto
|
||||
|
||||
unix: debug release
|
||||
win: windebug winrelease
|
||||
all: $(BUILD_TYPES)
|
||||
all: $(BUILD_TYPES) out/TildeFriends-debug.apk out/TildeFriends-release.apk
|
||||
.PHONY: all win unix
|
||||
|
||||
ALL_APP_OBJS := \
|
||||
$(APP_OBJS) \
|
||||
$(BASE64C_OBJS) \
|
||||
$(BLOWFISH_OBJS) \
|
||||
$(LIBBACKTRACE_OBJS) \
|
||||
$(MINIUNZIP_OBJS) \
|
||||
$(PICOHTTPPARSER_OBJS) \
|
||||
$(QUICKJS_OBJS) \
|
||||
$(SODIUM_OBJS) \
|
||||
$(SQLITE_OBJS) \
|
||||
@ -308,7 +416,7 @@ $(1): $(BUILD_DIR)/$(1)/$(PROJECT)$(if $(filter win%,$(1)),.exe)
|
||||
|
||||
$(BUILD_DIR)/$(1)/$(PROJECT)$(if $(filter win%,$(1)),.exe): $(filter $(BUILD_DIR)/$(1)/%,$(ALL_APP_OBJS))
|
||||
@echo [link] $$@
|
||||
@$$(CC) -o $$@ $$^ $$(LDFLAGS)
|
||||
@$$(CC) -o $$@ -Wl,-Map,$$@.map $$^ $$(LDFLAGS)
|
||||
|
||||
$(BUILD_DIR)/$(1)/%.o: %.c
|
||||
@mkdir -p $$(dir $$@)
|
||||
@ -323,6 +431,67 @@ endef
|
||||
|
||||
$(foreach build_type,$(BUILD_TYPES),$(eval $(call build_rules,$(build_type))))
|
||||
|
||||
# Android support.
|
||||
out/res/layout_activity_main.xml.flat: src/android/res/layout/activity_main.xml
|
||||
@mkdir -p $(dir $@)
|
||||
@echo [aapt2] $@
|
||||
@$(ANDROID_BUILD_TOOLS)/aapt2 compile -o out/res/ src/android/res/layout/activity_main.xml
|
||||
|
||||
out/apk/res.apk out/gen/com/unprompted/tildefriends/R.java: out/res/layout_activity_main.xml.flat src/android/AndroidManifest.xml
|
||||
@mkdir -p $(dir $@)
|
||||
@$(ANDROID_BUILD_TOOLS)/aapt2 link -I $(ANDROID_PLATFORM)/android.jar out/res/layout_activity_main.xml.flat --manifest src/android/AndroidManifest.xml -o out/apk/res.apk --java out/gen/
|
||||
|
||||
JAVA_FILES := out/gen/com/unprompted/tildefriends/R.java $(wildcard src/android/com/unprompted/tildefriends/*.java)
|
||||
CLASS_FILES := $(foreach src,$(JAVA_FILES),out/classes/com/unprompted/tildefriends/$(notdir $(src:.java=.class)))
|
||||
|
||||
$(CLASS_FILES) &: $(JAVA_FILES)
|
||||
@echo [javac] $(CLASS_FILES)
|
||||
@javac --release 8 -Xlint:deprecation -classpath $(ANDROID_PLATFORM)/android.jar -d out/classes $(JAVA_FILES)
|
||||
|
||||
out/apk/classes.dex: $(CLASS_FILES)
|
||||
@mkdir -p $(dir $@)
|
||||
@echo [d8] $@
|
||||
@$(ANDROID_BUILD_TOOLS)/d8 --$(BUILD_TYPE) --lib $(ANDROID_PLATFORM)/android.jar --output $(dir $@) out/classes/com/unprompted/tildefriends/*.class
|
||||
|
||||
PACKAGE_DIRS := \
|
||||
apps/ \
|
||||
core/ \
|
||||
deps/codemirror/ \
|
||||
deps/split/ \
|
||||
deps/smoothie/
|
||||
|
||||
RAW_FILES := $(shell find $(PACKAGE_DIRS) -type f)
|
||||
|
||||
out/apk/TildeFriends-debug.unsigned.apk: BUILD_TYPE := debug
|
||||
out/apk/TildeFriends-release.unsigned.apk: BUILD_TYPE := release
|
||||
|
||||
out/apk/TildeFriends-debug.unsigned.apk: out/apk/classes.dex out/androiddebug/tildefriends out/androiddebug-x86_64/tildefriends $(RAW_FILES) out/apk/res.apk
|
||||
out/apk/TildeFriends-release.unsigned.apk: out/apk/classes.dex out/androidrelease/tildefriends out/androidrelease-x86_64/tildefriends $(RAW_FILES) out/apk/res.apk
|
||||
|
||||
out/%.unsigned.apk:
|
||||
@mkdir -p $(dir $@) out/apk$(BUILD_TYPE)/bin/aarch64/ out/apk$(BUILD_TYPE)/bin/x86_64/
|
||||
@echo [aapt] $@
|
||||
@cp out/android$(BUILD_TYPE)/tildefriends out/apk$(BUILD_TYPE)/bin/aarch64/
|
||||
@cp out/android$(BUILD_TYPE)-x86_64/tildefriends out/apk$(BUILD_TYPE)/bin/x86_64/
|
||||
@$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk$(BUILD_TYPE)/bin/aarch64/tildefriends
|
||||
@$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk$(BUILD_TYPE)/bin/x86_64/tildefriends
|
||||
@cp out/apk/res.apk $@
|
||||
@cp out/apk/classes.dex out/apk$(BUILD_TYPE)/
|
||||
@cd out/apk$(BUILD_TYPE) && zip -u ../../$@ -q -9 -r . && cd ../../
|
||||
@zip -u $@ -q -9 -r $(PACKAGE_DIRS) $(RAW_FILES)
|
||||
|
||||
out/%.apk: out/apk/%.unsigned.apk
|
||||
@echo [apksigner] $(notdir $@)
|
||||
@$(ANDROID_BUILD_TOOLS)/apksigner sign --ks keystore.jks --ks-key-alias androidKey --ks-pass pass:android --key-pass pass:android --out $@ $<
|
||||
|
||||
apk: out/TildeFriends-debug.apk
|
||||
.PHONY: apk
|
||||
|
||||
apkgo: out/TildeFriends-debug.apk
|
||||
@adb install $<
|
||||
@adb shell am start com.unprompted.tildefriends/.MainActivity
|
||||
.PHONY: apkgo
|
||||
|
||||
clean:
|
||||
rm -rf $(BUILD_DIR)
|
||||
.PHONY: clean
|
||||
|
@ -28,7 +28,7 @@ privileges. Further administration can be done at
|
||||
<http://localhost:12345/~core/admin/`>.
|
||||
|
||||
## Documentation
|
||||
There are the very beginnings of developer documentation in `apps/cory/docs/`
|
||||
There are the very beginnings of developer documentation in `apps/docs/`
|
||||
that can be read in-place or at <http://localhost:12345/~core/docs/>.
|
||||
|
||||
## License
|
||||
|
4
apps/admin.json
Normal file
4
apps/admin.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"type": "tildefriends-app",
|
||||
"emoji": "🎛"
|
||||
}
|
4
apps/api.json
Normal file
4
apps/api.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"type": "tildefriends-app",
|
||||
"emoji": "📜"
|
||||
}
|
4
apps/apps.json
Normal file
4
apps/apps.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"type": "tildefriends-app",
|
||||
"emoji": "💻"
|
||||
}
|
77
apps/apps/app.js
Normal file
77
apps/apps/app.js
Normal file
@ -0,0 +1,77 @@
|
||||
async function fetch_info(apps) {
|
||||
let result = {};
|
||||
for (let [key, value] of Object.entries(apps)) {
|
||||
let blob = await ssb.blobGet(value);
|
||||
blob = blob ? utf8Decode(blob) : '{}';
|
||||
result[key] = JSON.parse(blob);
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
async function main() {
|
||||
var apps = await fetch_info(await core.apps());
|
||||
var core_apps = await fetch_info(await core.apps('core'));
|
||||
var doc = `<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<style>
|
||||
.container {
|
||||
display: grid;
|
||||
grid-template-columns: repeat(auto-fill, 64px);
|
||||
justify-content: space-around;
|
||||
}
|
||||
.app {
|
||||
height: 96px;
|
||||
width: 64px;
|
||||
display: flex;
|
||||
flex-direction: column;
|
||||
align-items: center;
|
||||
justify-content: center;
|
||||
white-space: nowrap;
|
||||
}
|
||||
.app > a {
|
||||
text-decoration: none;
|
||||
max-width: 64px;
|
||||
text-overflow: ellipsis ellipsis;
|
||||
overflow: hidden;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body style="background: #888">
|
||||
<h1 id="apps_title">Apps</h1>
|
||||
<div id="apps" class="container"></div>
|
||||
<h1>Core Apps</h1>
|
||||
<div id="core_apps" class="container"></div>
|
||||
</body>
|
||||
<script>
|
||||
function populate_apps(id, name, apps) {
|
||||
var list = document.getElementById(id);
|
||||
for (let app of Object.keys(apps).sort()) {
|
||||
let div = list.appendChild(document.createElement('div'));
|
||||
div.classList.add('app');
|
||||
|
||||
let icon_a = document.createElement('a');
|
||||
let icon = document.createElement('div');
|
||||
icon.appendChild(document.createTextNode(apps[app].emoji || '📦'));
|
||||
icon.style.fontSize = 'xxx-large';
|
||||
icon_a.appendChild(icon);
|
||||
icon_a.href = '/~' + name + '/' + app + '/';
|
||||
icon_a.target = '_top';
|
||||
div.appendChild(icon_a);
|
||||
|
||||
let a = document.createElement('a');
|
||||
a.appendChild(document.createTextNode(app));
|
||||
a.href = '/~' + name + '/' + app + '/';
|
||||
a.target = '_top';
|
||||
div.appendChild(a);
|
||||
}
|
||||
}
|
||||
document.getElementById('apps_title').innerText = "~${escape(core.user.credentials?.session?.name || 'guest')}'s Apps";
|
||||
populate_apps('apps', '${core.user.credentials?.session?.name}', ${JSON.stringify(apps)});
|
||||
populate_apps('core_apps', 'core', ${JSON.stringify(core_apps)});
|
||||
</script>
|
||||
</html>`
|
||||
app.setDocument(doc);
|
||||
}
|
||||
|
||||
main();
|
3
apps/appstore.json
Normal file
3
apps/appstore.json
Normal file
@ -0,0 +1,3 @@
|
||||
{
|
||||
"type": "tildefriends-app"
|
||||
}
|
55
apps/appstore/app.js
Normal file
55
apps/appstore/app.js
Normal file
@ -0,0 +1,55 @@
|
||||
async function get_apps() {
|
||||
let results = {};
|
||||
await ssb.sqlStream(`
|
||||
SELECT messages.*
|
||||
FROM messages_fts('"application/tildefriends"')
|
||||
JOIN messages ON messages.rowid = messages_fts.rowid
|
||||
ORDER BY timestamp
|
||||
`,
|
||||
[],
|
||||
function(row) {
|
||||
let content = JSON.parse(row.content);
|
||||
for (let mention of content.mentions) {
|
||||
if (mention?.type === 'application/tildefriends') {
|
||||
results[JSON.stringify([row.author, mention.name])] = {
|
||||
message: row,
|
||||
blob: mention.link,
|
||||
name: mention.name,
|
||||
};
|
||||
}
|
||||
}
|
||||
});
|
||||
return Object.values(results).sort((x, y) => y.message.timestamp - x.message.timestamp);
|
||||
}
|
||||
|
||||
function render_app(app) {
|
||||
return `
|
||||
<div style="border: 2px solid white; display: inline-block; margin: 8px; padding: 8px">
|
||||
<a href="/~cory/ssb/#${app.message.author}">@</a>
|
||||
<a href="/~cory/ssb/#${app.message.id}">%</a>
|
||||
<a href="/${app.blob}/">${app.name}</a>
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
async function main() {
|
||||
let apps = await get_apps();
|
||||
app.setDocument(`
|
||||
<html>
|
||||
<head>
|
||||
<base target="_top">
|
||||
<style>
|
||||
a:link { color: #bbf; }
|
||||
a:visited { color: #ddd; }
|
||||
a:hover { color: #ddf; }
|
||||
</style>
|
||||
</head>
|
||||
<body style="color: #fff">
|
||||
<h1>${apps.length} apps</h1>
|
||||
${apps.map(render_app).join('\n')}
|
||||
</body>
|
||||
</html>
|
||||
`);
|
||||
}
|
||||
|
||||
main();
|
@ -1 +0,0 @@
|
||||
{"type":"tildefriends-app","files":{"app.js":"&uhGJsy5+qBgOgEgMqCTDasK+C+GWGptHKfPiAsD5eGA=.sha256","index.html":"&D3JwdPXy/QsLXkmwNDrBFXdzxfqO1/JGxfqEArnS5v4=.sha256","lit.min.js":"&3FfrVflmGr0n4lvN0GriN1Qz1lEw31SbZxRSJrcXR28=.sha256","script.js":"&TZ2ymD6cFVUjQleGcDslt8apjp7k3xLlfv2F8rQVM4I=.sha256"}}
|
@ -1 +0,0 @@
|
||||
{"type":"tildefriends-app","files":{"app.js":"&p35JmopfHf8hFh3Y9x6LrIxiUwaJZ5Nabzi2sVXpKoo=.sha256"}}
|
@ -1 +0,0 @@
|
||||
{"type":"tildefriends-app","files":{"app.js":"&qEJDfZ43KazIxiZl8OCKb2uaDOsPkxnIohEzQ1LLFpg=.sha256"}}
|
@ -1,31 +0,0 @@
|
||||
async function main() {
|
||||
var apps = await core.apps();
|
||||
var core_apps = await core.apps('core');
|
||||
var doc = `<!DOCTYPE html>
|
||||
<html>
|
||||
<body style="background: #888">
|
||||
<h1>Apps</h1>
|
||||
<ul id="apps"></ul>
|
||||
<h1>Core Apps</h1>
|
||||
<ul id="core_apps"></ul>
|
||||
</body>
|
||||
<script>
|
||||
function populate_apps(id, name, apps) {
|
||||
var list = document.getElementById(id);
|
||||
for (let app of Object.keys(apps).sort()) {
|
||||
var li = list.appendChild(document.createElement('li'));
|
||||
var a = document.createElement('a');
|
||||
a.innerText = app;
|
||||
a.href = '/~' + name + '/' + app + '/';
|
||||
a.target = '_top';
|
||||
li.appendChild(a);
|
||||
}
|
||||
}
|
||||
populate_apps('apps', '${core.user.credentials?.session?.name}', ${JSON.stringify(apps)});
|
||||
populate_apps('core_apps', 'core', ${JSON.stringify(core_apps)});
|
||||
</script>
|
||||
</html>`
|
||||
app.setDocument(doc);
|
||||
}
|
||||
|
||||
main();
|
@ -1 +0,0 @@
|
||||
{"type":"tildefriends-app","files":{"app.js":"&V5o5IM9/OUyIsVkjkMW/X0i/tflQOSVJuJBmHdMT9aM=.sha256"}}
|
@ -1 +0,0 @@
|
||||
{"type":"tildefriends-app","files":{"app.js":"&WEvJYebSMi5d2eXgUwJJmvR/Q4slFg3zHYB8Q2mXJII=.sha256","index.md":"&Pi0NTJn9/w76yIUKqRRuSvUPSpqkxdYynmjeOBbF3K8=.sha256","todo.md":"&d8Kq8yuOn8SL3tJVy9BiDXHAe/jverpBj5AMLWLtmFM=.sha256","structure.md":"&T+CBfT9XP6ooKFvD1ZCI9hsutqsNIamfBxtAho0HtlU=.sha256","guide.md":"&SgnGL0+rjetY2o9A2+lVRbNvHIkqKwMnZr9gXWneIlc=.sha256","ssb.md":"&ouqT3XzTGfBNpOP/uEdOw7K1F9BeLZgQCx24XTvhyXU=.sha256"}}
|
@ -1,17 +0,0 @@
|
||||
# ID Refactor
|
||||
[Back to index](#index)
|
||||
|
||||
## Goals
|
||||
- no way to get private key in javascript
|
||||
- ssb.c syncs/broadcasts/... efficiently for everybody
|
||||
|
||||
## Schema
|
||||
- separate table to discourage leakage
|
||||
- `CREATE TABLE identities (user TEXT, public TEXT, secret TEXT);`
|
||||
|
||||
## API
|
||||
- `ssb.createIdentity()` -> `id`
|
||||
- `ssb.getIdentities()` => `[id, ...]`
|
||||
- `ssb.deleteIdentity(id)`
|
||||
- `ssb.post(id, ...)`
|
||||
- `ssb.appendMessage(id, ...)`
|
@ -1 +0,0 @@
|
||||
{"type":"tildefriends-app","files":{"app.js":"&3d9ABFgRwQvWsYbFv/rzimtnLDnVrWlGtdw7serFIGw=.sha256"}}
|
@ -1 +0,0 @@
|
||||
{"type":"tildefriends-app","files":{"app.js":"&gxOJaVf/HdjVJVC9NvZ9n3/825OD1xMMHdF/dFQwe24=.sha256","lit-all.min.js":"&XKgdRySJuiZeZvchNFGjVWn0XOVhQFmG7/HTWYQ8s68=.sha256","index.html":"&TxhFekB9ov7tf/fmkAg7x5797i27oLidhgxEfDKC0T0=.sha256","script.js":"&G8puK9Q4MngHy3D4ppcKyT49WKbHD2OCeUcAw2ghTDE=.sha256","lit-all.min.js.map":"&lA9iFp1YbqSndxXZuwtgmrj7NDMkN71nJITbtjWL3VA=.sha256","tf-id-picker.js":"&maN8DUFrmRxW5nsVyOAMk5k1ekcz/pfzvSS99ac3jo8=.sha256","tf-app.js":"&7hclNu41CIoNk1JlXHiYmDPDyDIICZfMickJYtnF5eQ=.sha256","tf-message.js":"&oXFucwmn16nvKslQoGKTppO+71EoDZJE54z3WrlNUPI=.sha256","tf-user.js":"&bXTedgBudTQLXEBPY9R8OLfQ/ZLpo8YRU9Oq/wuGG3Y=.sha256","tf-utils.js":"&6RQUuxB3PkOhYEJr9+89Ptx7uijczjn0r035yCcQOQQ=.sha256","commonmark.min.js":"&bfBaMLU19d1p/vPBF9hlARqDX002KXG/UOfxOahZhe4=.sha256","tf-compose.js":"&y+Q47tdm60Od1UzuRu7OOLwineyQCL1LIb3KP5IwHTY=.sha256","emojis.json":"&h3P4pez+AI4aYdsN0dJ3pbUEFR0276t9AM20caj/W/s=.sha256","emojis.js":"&pqYLDE/13PyEt2ceeFqvnwZ8NqWfPfpDBt4vP8SeHbs=.sha256","tf-styles.js":"&LFeL/vWgrv4N8q/mBrQAnhbaOI+dXNJYvH9bn1bXSqQ=.sha256","tf-profile.js":"&vRKjsnYvOiHCQahzEfznCvP5YDwUPtltlpWf+pxwZ1Y=.sha256","commonmark-linkify.js":"&X+hNNkmSRvKY86khyAun+cXksquXbMakZdINbGbx30g=.sha256","tf-tab-search.js":"&ESt2vMG19sH5j6ungKua/ZuvIGslyuWyb3juXdOCecg=.sha256","tf-tab-news.js":"&F7T3LVS867x7vsKhYRR7eLNdCFZmrZ3JzEMfJEEKRm0=.sha256","tf-tab-connections.js":"&Ftt5RnkrhndV2lwC7XXUZX8JiUODqPjqEVgSTJQD6JU=.sha256","tf-news.js":"&gfG5LwXpugDkwDCOCOxQnNn0jLURZexSmvDu4SpQohA=.sha256","tribute.css":"&9FogMzZHKXCfGb7mlh7z+/wiNZzBsOB/tKoh6MfYJno=.sha256","tribute.esm.js":"&P1wKqCfYULpR/ahSB98JP8xaxfikuZwwtT6I/SAo7/Y=.sha256","commonmark-hashtag.js":"&H+V1OLA9GDdzycKclz276zAtSZLpT3rlNVa4+qQmp4o=.sha256"}}
|
File diff suppressed because one or more lines are too long
@ -1,57 +0,0 @@
|
||||
import {LitElement, html} from './lit-all.min.js';
|
||||
import * as tfrpc from '/static/tfrpc.js';
|
||||
|
||||
class TfConnectionsElement extends LitElement {
|
||||
static get properties() {
|
||||
return {
|
||||
broadcasts: {type: Array},
|
||||
identities: {type: Array},
|
||||
connections: {type: Array},
|
||||
users: {type: Object},
|
||||
}
|
||||
}
|
||||
|
||||
constructor() {
|
||||
super();
|
||||
let self = this;
|
||||
this.broadcasts = [];
|
||||
this.identities = [];
|
||||
this.connections = [];
|
||||
this.users = {};
|
||||
tfrpc.rpc.getAllIdentities().then(function(identities) {
|
||||
self.identities = identities || [];
|
||||
});
|
||||
}
|
||||
|
||||
_emit_change() {
|
||||
let changed_event = new Event('change', {
|
||||
srcElement: this,
|
||||
});
|
||||
this.dispatchEvent(changed_event);
|
||||
}
|
||||
|
||||
changed(event) {
|
||||
this.selected = event.srcElement.value;
|
||||
tfrpc.rpc.localStorageSet('whoami', this.selected);
|
||||
this._emit_change();
|
||||
}
|
||||
|
||||
render() {
|
||||
return html`
|
||||
<h2>Broadcasts</h2>
|
||||
<ul>
|
||||
${this.broadcasts.map(x => html`<li><tf-user id=${x.pubkey} .users=${this.users}></tf-user></li>`)}
|
||||
</ul>
|
||||
<h2>Connections</h2>
|
||||
<ul>
|
||||
${this.connections.map(x => html`<li><tf-user id=${x} .users=${this.users}></tf-user></li>`)}
|
||||
</ul>
|
||||
<h2>Local Accounts</h2>
|
||||
<ul>
|
||||
${this.identities.map(x => html`<li><tf-user id=${x} .users=${this.users}></tf-user></li>`)}
|
||||
</ul>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
customElements.define('tf-connections', TfConnectionsElement);
|
@ -1 +0,0 @@
|
||||
{"type":"tildefriends-app","files":{"app.js":"&QUR1tKa15B5Or8AfPX/8Zs87teSeX0Mh/HF7PEPBom0=.sha256","index.html":"&QXhwvxhHc9fa8iL6088hGDu9FgWdY7wkXgvU2BMNv0A=.sha256","lit-core.min.js":"&tP9KhbgwF1chFqPtkNZ12Yx9AfkpnSjFiPcX5Pw5J9g=.sha256","script.js":"&KgOaUVjBM4MzSy7PpUVQHETuvgXAx2JGPJABksBg+QY=.sha256"}}
|
4
apps/db.json
Normal file
4
apps/db.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"type": "tildefriends-app",
|
||||
"emoji": "💽"
|
||||
}
|
4
apps/docs.json
Normal file
4
apps/docs.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"type": "tildefriends-app",
|
||||
"emoji": "📚"
|
||||
}
|
@ -2,9 +2,10 @@
|
||||
|
||||
Tilde Friends is a participating member of a greater social
|
||||
network, [Secure Scuttlebutt](https://scuttlebutt.nz/),
|
||||
augmenting it with a way to safely and securely write, share,
|
||||
and run code.
|
||||
adding a way to safely and securely write, share,
|
||||
and run code in the form of server-side web applications.
|
||||
|
||||
- [Tilde Friends Vision](#vision)
|
||||
- [Secure Scuttlebutt from Scratch](#ssb)
|
||||
- [Structure](#structure)
|
||||
- [Guide](#guide)
|
@ -16,6 +16,8 @@ IPv4 addresses.
|
||||
|
||||
So be prepared to accept variations.
|
||||
|
||||
There also an undocumented "new" style of discovery message.
|
||||
|
||||
## Secret Handshake, Box Stream, and RPC Protocol
|
||||
Now that two clients are aware of eachother, they need to complete a secret handshake.
|
||||
The [programming guide](https://ssbc.github.io/scuttlebutt-protocol-guide/#handshake)
|
||||
@ -26,12 +28,14 @@ The box stream and RPC protocol can both be implemented from the
|
||||
without surprises.
|
||||
|
||||
## Synchronizing Data
|
||||
So now you're discovering other clients on the local network, connecting, performing
|
||||
a secret handshake, and making remote procedure calls over box streams. The next step
|
||||
is to start synchronizing feeds over the network. The goal, after all, is to author
|
||||
messages in your local append-only log and have them show up in distant clients, or
|
||||
vice versa.
|
||||
|
||||
... `ebt.replicate` or `createHistoryStream` ...
|
||||
|
||||
## Rooms
|
||||
|
||||
TODO
|
||||
|
||||
## References
|
||||
* [https://ssbc.github.io/scuttlebutt-protocol-guide/](https://ssbc.github.io/scuttlebutt-protocol-guide/)
|
||||
* [https://dev.planetary.social/](https://dev.planetary.social/)
|
||||
* [https://dev.scuttlebutt.nz/#/golang/?id=muxrpc-endpoints](https://dev.scuttlebutt.nz/#/golang/?id=muxrpc-endpoints)
|
@ -21,7 +21,7 @@ In combines the following key components:
|
||||
are mediated through the core process.
|
||||
|
||||
When run with no arguments, it starts a web server on
|
||||
[http://localhost:12345/](http://localhost:12345/) and an SSB server.
|
||||
[http://localhost:12345/](http://localhost:12345/) and an SSB node.
|
||||
|
||||
## Web Interface
|
||||
The Tilde Friends web server provides access to Tilde Friends applications,
|
@ -5,8 +5,6 @@
|
||||
- Sync status (problem feeds, messages/seconds stats, ...)
|
||||
- app: wiki
|
||||
- app: public blog
|
||||
- app: build archive
|
||||
- app: todo
|
||||
- Content-Disposition: download
|
||||
- remove SSB credentials
|
||||
- export SSB credentials
|
||||
@ -22,20 +20,21 @@
|
||||
- fix weird HTTP warnings
|
||||
- ssb from child process?
|
||||
- channels
|
||||
- image downsample
|
||||
- placeholder/missing images
|
||||
- no denial of service
|
||||
- package standalone executable
|
||||
- blob_wants 2.0
|
||||
- editor without app iframe
|
||||
- sequence_before_author -> flags
|
||||
- linkify ssb: links
|
||||
|
||||
## MVP2
|
||||
- perfect rooms support
|
||||
- connections 2.0
|
||||
- make a better connections API
|
||||
|
||||
## Maybe Done
|
||||
- blob_wants 2.0
|
||||
- image downsample
|
||||
- app: todo
|
||||
- app: build archive
|
||||
- update README
|
||||
- administrators config
|
||||
- apps name characters
|
62
apps/docs/vision.md
Normal file
62
apps/docs/vision.md
Normal file
@ -0,0 +1,62 @@
|
||||
# Tilde Friends Vision
|
||||
[Back to index](#index)
|
||||
|
||||
Tilde Friends is a tool for making and sharing.
|
||||
|
||||
It is both a peer-to-peer social network client, participating in Secure
|
||||
Scuttlebutt, and an environment for creating and running web applications.
|
||||
|
||||
## Why
|
||||
|
||||
This is a thing that I wanted to exist and wanted to work on. No other reason.
|
||||
There is not a business model. I believe it is interesting and unique.
|
||||
|
||||
## Goals
|
||||
1. Make it **easy and fun** to run all sorts of web applications.
|
||||
|
||||
2. Provide **security** that is easy to understand and protects your data.
|
||||
|
||||
3. Make **creating and sharing** web applications accessible to anyone with a
|
||||
browser.
|
||||
|
||||
## Ways to Use Tilde Friends
|
||||
1. **Social Network User**: This is a social network first. You are just here,
|
||||
because your friends are. Or you like how we limit your message length or
|
||||
short videos or whatever the trend is. If you are ambitious, you click links
|
||||
and see interactive experiences (apps) that you wouldn't see elsewhere.
|
||||
|
||||
2. **Web Visitor**: You get links from a friend to meeting invites, polls, games,
|
||||
lists, wiki pages, ..., and you interact with them as though they were
|
||||
cloud-hosted by a megacorporation. They just work, and you don't think twice.
|
||||
|
||||
3. **Group leader**: You host or use a small public instance, installing apps for
|
||||
a group of friends to use as web visitors.
|
||||
|
||||
4. **Developer**: You like to write code and make or improve apps for fun or to
|
||||
solve problems. When you encounter a Tilde Friends app on a strange server,
|
||||
you know you can trivially modify it or download it to your own instance.
|
||||
|
||||
## Future Goals / Endgame
|
||||
1. Mobile apps. This can run on your old phone. Maybe you won't be hosting
|
||||
the web interface publicly, but you can sync, install and edit apps, and
|
||||
otherwise get the full experience from a tiny touch screen.
|
||||
|
||||
2. The universal application runtime. The web browser is the universal
|
||||
platform, but even for the simplest application that you might want to host
|
||||
for your friends, cloud hosting, containers, and complicated dependencies might
|
||||
all enter the mix. Tilde Friends, though it is yet another thing to host,
|
||||
includes everything you need out of the box to run a vast variety of interesting
|
||||
apps.
|
||||
|
||||
Tilde Friends will be built out, gradually providing safe access to host
|
||||
resources and client resources the same way web browsers extended access to
|
||||
resources like GPU, persistent storage, cameras, ... over the years.
|
||||
|
||||
Not much effort has been put forward yet to having a robust, long-lasting API,
|
||||
but since the client side longevity is already handled by web browsers, it
|
||||
seems possible that the server-side API can be managed in a similar way.
|
||||
|
||||
3. An awesome development environment. Right now it runs JavaScript from the
|
||||
first embeddable text editor I could poorly configure enough to edit code,
|
||||
but it could incorporate a debugger, source control integration a la ssb-git,
|
||||
merge tools, and transpiling from all sorts of different languages.
|
4
apps/follow.json
Normal file
4
apps/follow.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"type": "tildefriends-app",
|
||||
"emoji": "➡️"
|
||||
}
|
@ -15,7 +15,7 @@ async function following(db, id) {
|
||||
f = {users: [], sequence: 0, version: k_version};
|
||||
}
|
||||
f.users = new Set(f.users);
|
||||
await ssb.sqlStream(
|
||||
await ssb.sqlAsync(
|
||||
"SELECT "+
|
||||
" sequence, "+
|
||||
" json_extract(content, '$.contact') AS contact, "+
|
||||
@ -73,7 +73,7 @@ async function getAbout(db, id) {
|
||||
if (!f || f.version != k_version) {
|
||||
f = {about: {}, sequence: 0, version: k_version};
|
||||
}
|
||||
await ssb.sqlStream(
|
||||
await ssb.sqlAsync(
|
||||
"SELECT "+
|
||||
" sequence, "+
|
||||
" content "+
|
||||
@ -109,7 +109,7 @@ async function getAbout(db, id) {
|
||||
|
||||
async function getSize(db, id) {
|
||||
let size = 0;
|
||||
await ssb.sqlStream(
|
||||
await ssb.sqlAsync(
|
||||
"SELECT (SUM(LENGTH(content)) + SUM(LENGTH(author)) + SUM(LENGTH(id))) AS size FROM messages WHERE author = ?1",
|
||||
[id],
|
||||
function (row) {
|
4
apps/ssb.json
Normal file
4
apps/ssb.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"type": "tildefriends-app",
|
||||
"emoji": "🐌"
|
||||
}
|
@ -30,12 +30,14 @@ tfrpc.register(async function getBroadcasts() {
|
||||
tfrpc.register(async function getConnections() {
|
||||
return ssb.connections();
|
||||
});
|
||||
tfrpc.register(async function connectionSendJson(id, message) {
|
||||
return ssb.connectionSendJson(id, message);
|
||||
tfrpc.register(async function getStoredConnections() {
|
||||
return ssb.storedConnections();
|
||||
});
|
||||
tfrpc.register(async function createTunnel(portal, request_number, target) {
|
||||
let t = ssb.createTunnel(portal, request_number, target);
|
||||
return t;
|
||||
tfrpc.register(async function forgetStoredConnection(connection) {
|
||||
return ssb.forgetStoredConnection(connection);
|
||||
});
|
||||
tfrpc.register(async function createTunnel(portal, target) {
|
||||
return ssb.createTunnel(portal, target);
|
||||
});
|
||||
tfrpc.register(async function connect(token) {
|
||||
await ssb.connect(token);
|
||||
@ -45,7 +47,7 @@ tfrpc.register(async function closeConnection(id) {
|
||||
});
|
||||
tfrpc.register(async function query(sql, args) {
|
||||
let result = [];
|
||||
await ssb.sqlStream(sql, args, function callback(row) {
|
||||
await ssb.sqlAsync(sql, args, function callback(row) {
|
||||
result.push(row);
|
||||
});
|
||||
return result;
|
@ -39,7 +39,7 @@ function splitMatches(text, regexp) {
|
||||
return result;
|
||||
}
|
||||
|
||||
const regex = new RegExp("#[\\w-]+");
|
||||
const regex = new RegExp("(?<!\w)#[\\w-]+");
|
||||
|
||||
function split(textNodes) {
|
||||
const text = textNodes.map(n => n.literal).join("");
|
@ -12,11 +12,6 @@ function get_emojis() {
|
||||
|
||||
export function picker(callback, anchor) {
|
||||
get_emojis().then(function(json) {
|
||||
let existing = document.getElementById('emoji_picker');
|
||||
if (existing) {
|
||||
existing.parentElement.removeChild(existing);
|
||||
return;
|
||||
}
|
||||
let div = document.createElement('div');
|
||||
div.id = 'emoji_picker';
|
||||
div.style.color = '#000';
|
||||
@ -24,20 +19,47 @@ export function picker(callback, anchor) {
|
||||
div.style.border = '1px solid #000';
|
||||
div.style.display = 'block';
|
||||
div.style.position = 'absolute';
|
||||
div.style.maxWidth = '16em';
|
||||
div.style.minWidth = 'min(16em, 90vw)';
|
||||
div.style.width = 'min(16em, 90vw)';
|
||||
div.style.maxWidth = 'min(16em, 90vw)';
|
||||
div.style.maxHeight = '16em';
|
||||
div.style.overflow = 'scroll';
|
||||
div.style.fontWeight = 'bold';
|
||||
div.style.fontSize = 'xx-large';
|
||||
let input = document.createElement('input');
|
||||
input.type = 'text';
|
||||
input.style.display = 'block';
|
||||
input.style.boxSizing = 'border-box';
|
||||
input.style.width = '100%';
|
||||
input.style.margin = '0';
|
||||
input.style.position = 'relative';
|
||||
div.appendChild(input);
|
||||
let list = document.createElement('div');
|
||||
div.appendChild(list);
|
||||
div.addEventListener('mousedown', function(event) {
|
||||
event.stopPropagation();
|
||||
});
|
||||
|
||||
function cleanup() {
|
||||
console.log('emoji cleanup');
|
||||
div.parentElement.removeChild(div);
|
||||
window.removeEventListener('keydown', key_down);
|
||||
console.log('removing click');
|
||||
document.body.removeEventListener('mousedown', cleanup);
|
||||
}
|
||||
|
||||
function key_down(event) {
|
||||
if (event.key == 'Escape') {
|
||||
cleanup();
|
||||
}
|
||||
}
|
||||
|
||||
function refresh() {
|
||||
while (list.firstChild) {
|
||||
list.removeChild(list.firstChild);
|
||||
}
|
||||
let search = input.value;
|
||||
let any_at_all = false;
|
||||
Object.entries(json).forEach(function(row) {
|
||||
let header = document.createElement('div');
|
||||
header.appendChild(document.createTextNode(row[0]));
|
||||
@ -51,28 +73,26 @@ export function picker(callback, anchor) {
|
||||
}
|
||||
let emoji = document.createElement('span');
|
||||
const k_size = '1.25em';
|
||||
emoji.style.width = k_size;
|
||||
emoji.style.maxWidth = k_size;
|
||||
emoji.style.minWidth = k_size;
|
||||
emoji.style.height = k_size;
|
||||
emoji.style.maxHeight = k_size;
|
||||
emoji.style.minHeight = k_size;
|
||||
emoji.style.display = 'inline-block';
|
||||
emoji.style.overflow = 'hidden';
|
||||
emoji.style.cursor = 'pointer';
|
||||
emoji.onclick = function() {
|
||||
callback(entry);
|
||||
div.parentElement.removeChild(div);
|
||||
cleanup();
|
||||
}
|
||||
emoji.title = entry.name;
|
||||
emoji.appendChild(document.createTextNode(entry.emoji));
|
||||
list.appendChild(emoji);
|
||||
any = true;
|
||||
any_at_all = true;
|
||||
}
|
||||
if (!any) {
|
||||
list.removeChild(header);
|
||||
}
|
||||
});
|
||||
if (!any_at_all) {
|
||||
list.appendChild(document.createTextNode('No matches found.'));
|
||||
}
|
||||
}
|
||||
refresh();
|
||||
input.oninput = refresh;
|
||||
@ -81,5 +101,9 @@ export function picker(callback, anchor) {
|
||||
div.style.top = '50%';
|
||||
div.style.left = '50%';
|
||||
div.style.transform = 'translate(-50%, -50%)';
|
||||
input.focus();
|
||||
console.log('adding click');
|
||||
document.body.addEventListener('mousedown', cleanup);
|
||||
window.addEventListener('keydown', key_down);
|
||||
});
|
||||
}
|
File diff suppressed because one or more lines are too long
1
apps/ssb/lit-all.min.js.map
Normal file
1
apps/ssb/lit-all.min.js.map
Normal file
File diff suppressed because one or more lines are too long
@ -79,7 +79,7 @@ class TfElement extends LitElement {
|
||||
WHERE author = ? AND
|
||||
rowid > ? AND
|
||||
rowid <= ? AND
|
||||
json_extract(content, "$.type") = "contact"
|
||||
json_extract(content, '$.type') = 'contact'
|
||||
ORDER BY sequence
|
||||
`,
|
||||
[id, last_row_id, max_row_id]);
|
||||
@ -109,8 +109,9 @@ class TfElement extends LitElement {
|
||||
for (let i = 0; i < ids.length; i++) {
|
||||
let id = ids[i];
|
||||
let contact = contacts[i];
|
||||
let found = Object.keys(contact.following).filter(y => !contact.blocking[y]);
|
||||
let deeper = depth > 1 ? await this.following_deep_internal(found, depth - 1, Object.assign({}, contact.blocking, blocking), last_row_id, following, max_row_id) : [];
|
||||
let all_blocking = Object.assign({}, contact.blocking, blocking);
|
||||
let found = Object.keys(contact.following).filter(y => !all_blocking[y]);
|
||||
let deeper = depth > 1 ? await this.following_deep_internal(found, depth - 1, all_blocking, last_row_id, following, max_row_id) : [];
|
||||
result[id] = [id, ...found, ...deeper];
|
||||
}
|
||||
return [...new Set(Object.values(result).flat())];
|
||||
@ -132,7 +133,11 @@ class TfElement extends LitElement {
|
||||
`, []))[0].max_row_id;
|
||||
let result = await this.following_deep_internal(ids, depth, blocking, cache.last_row_id, cache.following, max_row_id);
|
||||
cache.last_row_id = max_row_id;
|
||||
await tfrpc.rpc.databaseSet('following', JSON.stringify(cache));
|
||||
let store = JSON.stringify(cache);
|
||||
/* 2023-02-20: Exceeding message size. */
|
||||
//if (store.length < 512 * 1024) {
|
||||
await tfrpc.rpc.databaseSet('following', store);
|
||||
//}
|
||||
return [result, cache.following];
|
||||
}
|
||||
|
||||
@ -275,16 +280,6 @@ class TfElement extends LitElement {
|
||||
}
|
||||
}
|
||||
|
||||
add_fake_news() {
|
||||
this.unread = [{
|
||||
author: this.whoami,
|
||||
placeholder: true,
|
||||
id: '%fake_id',
|
||||
text: 'text',
|
||||
content: 'hello',
|
||||
}, ...this.unread];
|
||||
}
|
||||
|
||||
async set_tab(tab) {
|
||||
this.tab = tab;
|
||||
if (tab === 'news') {
|
||||
@ -321,7 +316,6 @@ class TfElement extends LitElement {
|
||||
return html`
|
||||
${this.render_id_picker()}
|
||||
${tabs}
|
||||
<!-- <input type="button" value="Fake News" @click=${this.add_fake_news}></input> -->
|
||||
${contents}
|
||||
`;
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
import {LitElement, html} from './lit-all.min.js';
|
||||
import {LitElement, html, unsafeHTML} from './lit-all.min.js';
|
||||
import * as tfutils from './tf-utils.js';
|
||||
import * as tfrpc from '/static/tfrpc.js';
|
||||
import {styles} from './tf-styles.js';
|
||||
@ -11,8 +11,8 @@ class TfComposeElement extends LitElement {
|
||||
users: {type: Object},
|
||||
root: {type: String},
|
||||
branch: {type: String},
|
||||
mentions: {type: Object},
|
||||
apps: {type: Object},
|
||||
drafts: {type: Object},
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,16 +23,17 @@ class TfComposeElement extends LitElement {
|
||||
this.users = {};
|
||||
this.root = undefined;
|
||||
this.branch = undefined;
|
||||
this.mentions = {};
|
||||
this.apps = undefined;
|
||||
this.drafts = {};
|
||||
}
|
||||
|
||||
changed(event) {
|
||||
let edit = this.renderRoot.getElementById('edit');
|
||||
let preview = this.renderRoot.getElementById('preview');
|
||||
let text = edit.value;
|
||||
|
||||
process_text(text) {
|
||||
if (!text) {
|
||||
return '';
|
||||
}
|
||||
/* Update mentions. */
|
||||
let draft = this.get_draft();
|
||||
let updated = false;
|
||||
for (let match of text.matchAll(/\[([^\[]+)]\(([@&%][^\)]+)/g)) {
|
||||
let name = match[1];
|
||||
let link = match[2];
|
||||
@ -49,19 +50,53 @@ class TfComposeElement extends LitElement {
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!this.mentions[link]) {
|
||||
this.mentions[link] = {
|
||||
if (!draft.mentions) {
|
||||
draft.mentions = {};
|
||||
}
|
||||
if (!draft.mentions[link]) {
|
||||
draft.mentions[link] = {
|
||||
link: link,
|
||||
}
|
||||
}
|
||||
this.mentions[link].name = name.startsWith('@') ? name.substring(1) : name;
|
||||
this.mentions = Object.assign({}, this.mentions);
|
||||
draft.mentions[link].name = name.startsWith('@') ? name.substring(1) : name;
|
||||
updated = true;
|
||||
}
|
||||
if (updated) {
|
||||
this.requestUpdate();
|
||||
}
|
||||
return tfutils.markdown(text);
|
||||
}
|
||||
|
||||
preview.innerHTML = tfutils.markdown(text);
|
||||
input(event) {
|
||||
let edit = this.renderRoot.getElementById('edit');
|
||||
let preview = this.renderRoot.getElementById('preview');
|
||||
preview.innerHTML = this.process_text(edit.value);
|
||||
let content_warning = this.renderRoot.getElementById('content_warning');
|
||||
let content_warning_preview = this.renderRoot.getElementById('content_warning_preview');
|
||||
if (content_warning && content_warning_preview) {
|
||||
content_warning_preview.innerText = content_warning.value;
|
||||
}
|
||||
}
|
||||
|
||||
convert_to_webp(buffer, type) {
|
||||
notify(draft) {
|
||||
this.dispatchEvent(new CustomEvent('tf-draft', {
|
||||
bubbles: true,
|
||||
composed: true,
|
||||
detail: {
|
||||
id: this.branch,
|
||||
draft: draft
|
||||
},
|
||||
}));
|
||||
}
|
||||
|
||||
change() {
|
||||
let draft = this.get_draft();
|
||||
draft.text = this.renderRoot.getElementById('edit')?.value;
|
||||
draft.content_warning = this.renderRoot.getElementById('content_warning')?.value;
|
||||
this.notify(draft);
|
||||
}
|
||||
|
||||
convert_to_format(buffer, type, mime_type) {
|
||||
return new Promise(function(resolve, reject) {
|
||||
let img = new Image();
|
||||
img.onload = function() {
|
||||
@ -73,7 +108,7 @@ class TfComposeElement extends LitElement {
|
||||
canvas.height = img.height * scale;
|
||||
let context = canvas.getContext('2d');
|
||||
context.drawImage(img, 0, 0, canvas.width, canvas.height);
|
||||
let data_url = canvas.toDataURL('image/webp');
|
||||
let data_url = canvas.toDataURL(mime_type);
|
||||
let result = atob(data_url.split(',')[1]).split('').map(x => x.charCodeAt(0));
|
||||
resolve(result);
|
||||
}
|
||||
@ -88,27 +123,40 @@ class TfComposeElement extends LitElement {
|
||||
|
||||
async add_file(file) {
|
||||
try {
|
||||
let draft = this.get_draft();
|
||||
let self = this;
|
||||
let buffer = await file.arrayBuffer();
|
||||
let type = file.type;
|
||||
if (type.startsWith('image/')) {
|
||||
buffer = await self.convert_to_webp(buffer, file.type);
|
||||
type = 'image/webp';
|
||||
let best_buffer;
|
||||
let best_type;
|
||||
for (let format of ['image/png', 'image/jpeg', 'image/webp']) {
|
||||
let test_buffer = await self.convert_to_format(buffer, file.type, format);
|
||||
if (!best_buffer || test_buffer.length < best_buffer.length) {
|
||||
best_buffer = test_buffer;
|
||||
best_type = format;
|
||||
}
|
||||
}
|
||||
buffer = best_buffer;
|
||||
type = best_type;
|
||||
} else {
|
||||
buffer = Array.from(new Uint8Array(buffer));
|
||||
}
|
||||
let id = await tfrpc.rpc.store_blob(buffer);
|
||||
let name = type.split('/')[0] + ':' + file.name;
|
||||
self.mentions[id] = {
|
||||
if (!draft.mentions) {
|
||||
draft.mentions = {};
|
||||
}
|
||||
draft.mentions[id] = {
|
||||
link: id,
|
||||
name: name,
|
||||
type: type,
|
||||
size: buffer.length ?? buffer.byteLength,
|
||||
};
|
||||
self.mentions = Object.assign({}, self.mentions);
|
||||
let edit = self.renderRoot.getElementById('edit');
|
||||
edit.value += `\n`;
|
||||
self.changed();
|
||||
self.change();
|
||||
self.input();
|
||||
} catch(e) {
|
||||
alert(e?.message);
|
||||
}
|
||||
@ -130,6 +178,7 @@ class TfComposeElement extends LitElement {
|
||||
|
||||
submit() {
|
||||
let self = this;
|
||||
let draft = this.get_draft();
|
||||
let edit = this.renderRoot.getElementById('edit');
|
||||
let message = {
|
||||
type: 'post',
|
||||
@ -139,14 +188,18 @@ class TfComposeElement extends LitElement {
|
||||
message.root = this.root;
|
||||
message.branch = this.branch;
|
||||
}
|
||||
if (Object.values(this.mentions).length) {
|
||||
message.mentions = Object.values(this.mentions);
|
||||
if (Object.values(draft.mentions || {}).length) {
|
||||
message.mentions = Object.values(draft.mentions);
|
||||
}
|
||||
if (draft.content_warning !== undefined) {
|
||||
message.contentWarning = draft.content_warning;
|
||||
}
|
||||
console.log('Would post:', message);
|
||||
tfrpc.rpc.appendMessage(this.whoami, message).then(function() {
|
||||
edit.value = '';
|
||||
self.mentions = {};
|
||||
self.changed();
|
||||
self.change();
|
||||
self.notify(undefined);
|
||||
self.requestUpdate();
|
||||
}).catch(function(error) {
|
||||
alert(error.message);
|
||||
});
|
||||
@ -155,8 +208,10 @@ class TfComposeElement extends LitElement {
|
||||
discard() {
|
||||
let edit = this.renderRoot.getElementById('edit');
|
||||
edit.value = '';
|
||||
this.changed();
|
||||
this.dispatchEvent(new CustomEvent('tf-discard'));
|
||||
this.change();
|
||||
let preview = this.renderRoot.getElementById('preview');
|
||||
preview.innerHTML = '';
|
||||
this.notify(undefined);
|
||||
}
|
||||
|
||||
attach() {
|
||||
@ -181,9 +236,21 @@ class TfComposeElement extends LitElement {
|
||||
tribute.attach(this.renderRoot.getElementById('edit'));
|
||||
}
|
||||
|
||||
updated() {
|
||||
super.updated();
|
||||
let edit = this.renderRoot.getElementById('edit');
|
||||
if (this.last_updated_text !== edit.value) {
|
||||
let preview = this.renderRoot.getElementById('preview');
|
||||
preview.innerHTML = this.process_text(edit.value);
|
||||
this.last_updated_text = edit.value;
|
||||
}
|
||||
}
|
||||
|
||||
remove_mention(id) {
|
||||
delete this.mentions[id];
|
||||
this.mentions = Object.assign({}, this.mentions);
|
||||
let draft = this.get_draft();
|
||||
delete draft.mentions[id];
|
||||
this.notify(draft);
|
||||
this.requestUpdate();
|
||||
}
|
||||
|
||||
render_mention(mention) {
|
||||
@ -216,7 +283,10 @@ class TfComposeElement extends LitElement {
|
||||
};
|
||||
}
|
||||
}
|
||||
this.mentions = Object.assign(this.mentions || {}, mentions);
|
||||
let draft = this.get_draft();
|
||||
draft.mentions = Object.assign(draft.mentions || {}, mentions);
|
||||
this.requestUpdate();
|
||||
this.notify(draft);
|
||||
this.apps = null;
|
||||
}
|
||||
|
||||
@ -244,14 +314,53 @@ class TfComposeElement extends LitElement {
|
||||
}
|
||||
}
|
||||
|
||||
set_content_warning(value) {
|
||||
let draft = this.get_draft();
|
||||
draft.content_warning = value;
|
||||
this.notify(draft);
|
||||
this.requestUpdate();
|
||||
}
|
||||
|
||||
render_content_warning() {
|
||||
let self = this;
|
||||
let draft = this.get_draft();
|
||||
if (draft.content_warning !== undefined) {
|
||||
return html`
|
||||
<div>
|
||||
<input type="checkbox" id="cw" @change=${() => self.set_content_warning(undefined)} checked></input>
|
||||
<label for="cw">CW</label>
|
||||
<input type="text" id="content_warning" @input=${this.input} @change=${this.change} value=${draft.content_warning}></input>
|
||||
</div>
|
||||
`;
|
||||
} else {
|
||||
return html`
|
||||
<input type="checkbox" id="cw" @change=${() => self.set_content_warning('')}></input>
|
||||
<label for="cw">CW</label>
|
||||
`;
|
||||
}
|
||||
}
|
||||
|
||||
get_draft() {
|
||||
return this.drafts[this.branch || ''] || {};
|
||||
}
|
||||
|
||||
render() {
|
||||
let self = this;
|
||||
let draft = self.get_draft();
|
||||
let content_warning =
|
||||
draft.content_warning !== undefined ?
|
||||
html`<div id="content_warning_preview" class="content_warning">${draft.content_warning}</div>` :
|
||||
undefined;
|
||||
let result = html`
|
||||
<div style="display: flex; flex-direction: row; width: 100%">
|
||||
<textarea id="edit" @input=${this.changed} @paste=${this.paste} style="flex: 1 0 50%"></textarea>
|
||||
<div id="preview" style="flex: 1 0 50%"></div>
|
||||
<textarea id="edit" @input=${this.input} @change=${this.change} @paste=${this.paste} style="flex: 1 0 50%">${draft.text}</textarea>
|
||||
<div style="flex: 1 0 50%">
|
||||
${content_warning}
|
||||
<div id="preview"></div>
|
||||
</div>
|
||||
${Object.values(this.mentions).map(x => self.render_mention(x))}
|
||||
</div>
|
||||
${Object.values(draft.mentions || {}).map(x => self.render_mention(x))}
|
||||
${this.render_content_warning()}
|
||||
${this.render_attach_app()}
|
||||
<input type="button" value="Submit" @click=${this.submit}></input>
|
||||
<input type="button" value="Attach" @click=${this.attach}></input>
|
@ -10,12 +10,10 @@ class TfMessageElement extends LitElement {
|
||||
whoami: {type: String},
|
||||
message: {type: Object},
|
||||
users: {type: Object},
|
||||
reply: {type: Boolean},
|
||||
drafts: {type: Object},
|
||||
raw: {type: Boolean},
|
||||
collapsed: {type: Boolean},
|
||||
content_warning_expanded: {type: Boolean},
|
||||
blog_data: {type: String},
|
||||
blog_expanded: {type: Boolean},
|
||||
expanded: {type: Object},
|
||||
}
|
||||
}
|
||||
|
||||
@ -27,13 +25,18 @@ class TfMessageElement extends LitElement {
|
||||
this.whoami = null;
|
||||
this.message = {};
|
||||
this.users = {};
|
||||
this.reply = false;
|
||||
this.drafts = {};
|
||||
this.raw = false;
|
||||
this.collapsed = false;
|
||||
this.expanded = {};
|
||||
}
|
||||
|
||||
show_reply() {
|
||||
this.reply = true;
|
||||
let event = new CustomEvent('tf-draft', {bubbles: true, composed: true, detail: {id: this.message?.id, draft: ''}});
|
||||
this.dispatchEvent(event);
|
||||
}
|
||||
|
||||
discard_reply() {
|
||||
this.dispatchEvent(new CustomEvent('tf-draft', {bubbles: true, composed: true, detail: {id: this.id, draft: undefined}}));
|
||||
}
|
||||
|
||||
render_votes() {
|
||||
@ -145,7 +148,7 @@ class TfMessageElement extends LitElement {
|
||||
} else if (mention.link?.startsWith('&') &&
|
||||
mention.name?.startsWith('video:')) {
|
||||
return html`
|
||||
<video controls style="max-height: 240px">
|
||||
<video controls style="max-height: 240px; max-width: 128px">
|
||||
<source src=${'/' + mention.link + '/view'}></source>
|
||||
</video>
|
||||
`;
|
||||
@ -180,13 +183,33 @@ class TfMessageElement extends LitElement {
|
||||
}
|
||||
}
|
||||
|
||||
total_child_messages(message) {
|
||||
if (!message.child_messages) {
|
||||
return 0;
|
||||
}
|
||||
let total = message.child_messages.length;
|
||||
for (let m of message.child_messages)
|
||||
{
|
||||
total += this.total_child_messages(m);
|
||||
}
|
||||
return total;
|
||||
}
|
||||
|
||||
set_expanded(expanded, tag) {
|
||||
this.dispatchEvent(new CustomEvent('tf-expand', {bubbles: true, composed: true, detail: {id: (this.message.id || '') + (tag || ''), expanded: expanded}}));
|
||||
}
|
||||
|
||||
toggle_expanded(tag) {
|
||||
this.set_expanded(!this.expanded[(this.message.id || '') + (tag || '')], tag);
|
||||
}
|
||||
|
||||
render_children() {
|
||||
let self = this;
|
||||
if (this.message.child_messages?.length) {
|
||||
if (this.collapsed) {
|
||||
return html`<input type="button" value=${this.message.child_messages?.length + ' More'} @click=${() => self.collapsed = false}></input>`;
|
||||
if (!this.expanded[this.message.id]) {
|
||||
return html`<input type="button" value=${this.total_child_messages(this.message) + ' More'} @click=${() => self.set_expanded(true)}></input>`;
|
||||
} else {
|
||||
return html`<input type="button" value="Collapse" @click=${() => self.collapsed = true}></input>${(this.message.child_messages || []).map(x => html`<tf-message .message=${x} whoami=${this.whoami} .users=${this.users}></tf-message>`)}`;
|
||||
return html`<input type="button" value="Collapse" @click=${() => self.set_expanded(false)}></input>${(this.message.child_messages || []).map(x => html`<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} .drafts=${this.drafts} .expanded=${this.expanded}></tf-message>`)}`;
|
||||
}
|
||||
}
|
||||
}
|
||||
@ -199,7 +222,7 @@ class TfMessageElement extends LitElement {
|
||||
html`<input type="button" value="Raw" @click=${() => self.raw = true}></input>`;
|
||||
function small_frame(inner) {
|
||||
return html`
|
||||
<div style="border: 1px solid black; background-color: rgba(255, 255, 255, 0.1); margin-top: 8px; padding: 16px; display: inline-block">
|
||||
<div style="border: 1px solid black; background-color: rgba(255, 255, 255, 0.1); margin-top: 8px; padding: 16px; display: inline-block; overflow-wrap: anywhere">
|
||||
<tf-user id=${self.message.author} .users=${self.users}></tf-user>
|
||||
<span style="padding-right: 8px"><a tfarget="_top" href=${'#' + self.message.id}>%</a> ${new Date(self.message.timestamp).toLocaleString()}</span>
|
||||
${raw_button}
|
||||
@ -208,13 +231,20 @@ class TfMessageElement extends LitElement {
|
||||
</div>
|
||||
`
|
||||
}
|
||||
if (this.message.placeholder) {
|
||||
if (this.message?.type === 'contact_group') {
|
||||
return html`
|
||||
<div style="border: 1px solid black; background-color: rgba(255, 255, 255, 0.1); margin-top: 8px; padding: 16px; overflow-wrap: anywhere">
|
||||
${this.message.messages.map(x =>
|
||||
html`<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} .drafts=${this.drafts} .expanded=${this.expanded}></tf-message>`
|
||||
)}
|
||||
</div>`;
|
||||
} else if (this.message.placeholder) {
|
||||
return html`
|
||||
<div style="border: 1px solid black; background-color: rgba(255, 255, 255, 0.1); margin-top: 8px; padding: 16px; overflow-wrap: anywhere">
|
||||
<a target="_top" href=${'#' + this.message.id}>${this.message.id}</a> (placeholder)
|
||||
<div>${this.render_votes()}</div>
|
||||
${(this.message.child_messages || []).map(x => html`
|
||||
<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} collapsed=true></tf-message>
|
||||
<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} .drafts=${this.drafts} .expanded=${this.expanded}></tf-message>
|
||||
`)}
|
||||
</div>`;
|
||||
} else if (typeof(content?.type === 'string')) {
|
||||
@ -227,25 +257,29 @@ class TfMessageElement extends LitElement {
|
||||
}
|
||||
if (content.image !== undefined) {
|
||||
image = html`
|
||||
<div><img src=${'/' + content.image + '/view'} style="width: 256px; height: auto"></img></div>
|
||||
<div><img src=${'/' + (typeof(content.image?.link) == 'string' ? content.image.link : content.image) + '/view'} style="width: 256px; height: auto"></img></div>
|
||||
`;
|
||||
}
|
||||
if (content.description !== undefined) {
|
||||
description = html`
|
||||
<div style="flex: 1 0 50%">
|
||||
<div style="flex: 1 0 50%; overflow-wrap: anywhere">
|
||||
<div>${unsafeHTML(tfutils.markdown(content.description))}</div>
|
||||
</div>
|
||||
`
|
||||
}
|
||||
let update = content.about == this.message.author ?
|
||||
html`<div style="font-weight: bold">Updated profile.</div>` :
|
||||
html`<div style="font-weight: bold">Updated profile for <tf-user id=${content.about} .users=${this.users}></tf-user>.</div>`;
|
||||
return small_frame(html`
|
||||
<div style="font-weight: bold">Updated profile.</div>
|
||||
${update}
|
||||
${name}
|
||||
${image}
|
||||
${description}
|
||||
`);
|
||||
} else if (content.type == 'contact') {
|
||||
return small_frame(html`
|
||||
return html`
|
||||
<div>
|
||||
<tf-user id=${this.message.author} .users=${this.users}></tf-user>
|
||||
is
|
||||
${
|
||||
content.blocking === true ? 'blocking' :
|
||||
@ -256,16 +290,16 @@ class TfMessageElement extends LitElement {
|
||||
}
|
||||
<tf-user id=${this.message.content.contact} .users=${this.users}></tf-user>
|
||||
</div>
|
||||
`);
|
||||
`;
|
||||
} else if (content.type == 'post') {
|
||||
let reply = this.reply ? html`
|
||||
let reply = (this.drafts[this.message?.id] !== undefined) ? html`
|
||||
<tf-compose
|
||||
?enabled=${this.reply}
|
||||
whoami=${this.whoami}
|
||||
.users=${this.users}
|
||||
root=${this.message.content.root || this.message.id}
|
||||
branch=${this.message.id}
|
||||
@tf-discard=${() => this.reply = false}></tf-compose>
|
||||
.drafts=${this.drafts}
|
||||
@tf-discard=${this.discard_reply}></tf-compose>
|
||||
` : html`
|
||||
<input type="button" value="Reply" @click=${this.show_reply}></input>
|
||||
`;
|
||||
@ -274,7 +308,7 @@ class TfMessageElement extends LitElement {
|
||||
this.render_raw() :
|
||||
unsafeHTML(tfutils.markdown(content.text));
|
||||
let content_warning = html`
|
||||
<div style="border: 1px solid #fff; border-radius: 1em; padding: 8px; margin: 4px" @click=${x => self.content_warning_expanded = !self.content_warning_expanded}>${content.contentWarning}</div>
|
||||
<div class="content_warning" @click=${x => this.toggle_expanded(':cw')}>${content.contentWarning}</div>
|
||||
`;
|
||||
let content_html =
|
||||
html`
|
||||
@ -283,7 +317,7 @@ class TfMessageElement extends LitElement {
|
||||
`;
|
||||
let payload =
|
||||
content.contentWarning ?
|
||||
self.content_warning_expanded ?
|
||||
self.expanded[(this.message.id || '') + ':cw'] ?
|
||||
html`
|
||||
${content_warning}
|
||||
${content_html}
|
||||
@ -323,12 +357,11 @@ class TfMessageElement extends LitElement {
|
||||
`;
|
||||
} else if (content.type === 'blog') {
|
||||
let self = this;
|
||||
console.log('requesting data');
|
||||
tfrpc.rpc.get_blob(content.blog).then(function(data) {
|
||||
self.blog_data = data;
|
||||
});
|
||||
let payload =
|
||||
this.blog_expanded ?
|
||||
this.expanded[(this.message.id || '') + ':blog'] ?
|
||||
html`<div>${this.blog_data ? unsafeHTML(tfutils.markdown(this.blog_data)) : 'Loading...'}</div>` :
|
||||
undefined;
|
||||
let body = this.raw ?
|
||||
@ -336,7 +369,7 @@ class TfMessageElement extends LitElement {
|
||||
html`
|
||||
<div
|
||||
style="border: 1px solid #fff; border-radius: 1em; padding: 8px; margin: 4px; cursor: pointer"
|
||||
@click=${x => self.blog_expanded = !self.blog_expanded}>
|
||||
@click=${x => self.toggle_expanded(':blog')}>
|
||||
<h2>${content.title}</h2>
|
||||
<div style="display: flex; flex-direction: row">
|
||||
<img src=/${content.thumbnail}/view></img>
|
||||
@ -375,6 +408,11 @@ class TfMessageElement extends LitElement {
|
||||
`;
|
||||
} else if (content.type === 'pub') {
|
||||
return small_frame(html`
|
||||
<style>
|
||||
span {
|
||||
overflow-wrap: anywhere;
|
||||
}
|
||||
</style>
|
||||
<span>
|
||||
<div>
|
||||
🍻 <tf-user .users=${this.users} id=${content.address.key}></tf-user>
|
@ -9,6 +9,8 @@ class TfNewsElement extends LitElement {
|
||||
users: {type: Object},
|
||||
messages: {type: Array},
|
||||
following: {type: Array},
|
||||
drafts: {type: Object},
|
||||
expanded: {type: Object},
|
||||
}
|
||||
}
|
||||
|
||||
@ -21,6 +23,8 @@ class TfNewsElement extends LitElement {
|
||||
this.users = {};
|
||||
this.messages = [];
|
||||
this.following = [];
|
||||
this.drafts = {};
|
||||
this.expanded = {};
|
||||
}
|
||||
|
||||
process_messages(messages) {
|
||||
@ -77,6 +81,7 @@ class TfNewsElement extends LitElement {
|
||||
}
|
||||
|
||||
for (let message of messages) {
|
||||
message.votes = [];
|
||||
message.parent_message = undefined;
|
||||
message.child_messages = undefined;
|
||||
}
|
||||
@ -140,19 +145,38 @@ class TfNewsElement extends LitElement {
|
||||
return recursive_sort(roots, true);
|
||||
}
|
||||
|
||||
async load_and_render(messages) {
|
||||
group_following(messages) {
|
||||
let result = [];
|
||||
let group = [];
|
||||
for (let message of messages) {
|
||||
if (message?.content?.type === 'contact') {
|
||||
group.push(message);
|
||||
} else {
|
||||
if (group.length > 0) {
|
||||
result.push({
|
||||
type: 'contact_group',
|
||||
messages: group,
|
||||
});
|
||||
group = [];
|
||||
}
|
||||
result.push(message);
|
||||
}
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
load_and_render(messages) {
|
||||
let messages_by_id = this.process_messages(messages);
|
||||
let final_messages = this.finalize_messages(messages_by_id);
|
||||
let final_messages = this.group_following(this.finalize_messages(messages_by_id));
|
||||
return html`
|
||||
<div style="display: flex; flex-direction: column">
|
||||
${final_messages.map(x => html`<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} collapsed=true></tf-message>`)}
|
||||
${final_messages.map(x => html`<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} .drafts=${this.drafts} .expanded=${this.expanded} collapsed=true></tf-message>`)}
|
||||
</div>
|
||||
`;
|
||||
}
|
||||
|
||||
render() {
|
||||
let messages = this.load_and_render(this.messages || []);
|
||||
return html`${until(messages, html`<div>Loading placeholders...</div>`)}`;
|
||||
return this.load_and_render(this.messages || []);
|
||||
}
|
||||
}
|
||||
|
@ -29,4 +29,11 @@ img {
|
||||
color: #088;
|
||||
background-color: #fff;
|
||||
}
|
||||
|
||||
.content_warning {
|
||||
border: 1px solid #fff;
|
||||
border-radius: 1em;
|
||||
padding: 8px;
|
||||
margin: 4px;
|
||||
}
|
||||
`;
|
@ -7,6 +7,7 @@ class TfTabConnectionsElement extends LitElement {
|
||||
broadcasts: {type: Array},
|
||||
identities: {type: Array},
|
||||
connections: {type: Array},
|
||||
stored_connections: {type: Array},
|
||||
users: {type: Object},
|
||||
}
|
||||
}
|
||||
@ -17,10 +18,14 @@ class TfTabConnectionsElement extends LitElement {
|
||||
this.broadcasts = [];
|
||||
this.identities = [];
|
||||
this.connections = [];
|
||||
this.stored_connections = [];
|
||||
this.users = {};
|
||||
tfrpc.rpc.getAllIdentities().then(function(identities) {
|
||||
self.identities = identities || [];
|
||||
});
|
||||
tfrpc.rpc.getStoredConnections().then(function(connections) {
|
||||
self.stored_connections = connections || [];
|
||||
});
|
||||
}
|
||||
|
||||
render_connection_summary(connection) {
|
||||
@ -46,8 +51,7 @@ class TfTabConnectionsElement extends LitElement {
|
||||
}
|
||||
|
||||
async _tunnel(portal, target) {
|
||||
let request_number = await tfrpc.rpc.connectionSendJson(portal, {name: ['tunnel', 'connect'], args: [{portal: portal, target: target}], type: 'duplex'});
|
||||
return tfrpc.rpc.createTunnel(portal, request_number, target);
|
||||
return tfrpc.rpc.createTunnel(portal, target);
|
||||
}
|
||||
|
||||
render_room_peer(connection) {
|
||||
@ -70,6 +74,11 @@ class TfTabConnectionsElement extends LitElement {
|
||||
`
|
||||
}
|
||||
|
||||
async forget_stored_connection(connection) {
|
||||
await tfrpc.rpc.forgetStoredConnection(connection);
|
||||
this.stored_connections = (await tfrpc.rpc.getStoredConnections()) || [];
|
||||
}
|
||||
|
||||
render() {
|
||||
let self = this;
|
||||
return html`
|
||||
@ -92,6 +101,16 @@ class TfTabConnectionsElement extends LitElement {
|
||||
</li>
|
||||
`)}
|
||||
</ul>
|
||||
<h2>Stored Connections (WIP)</h2>
|
||||
<ul>
|
||||
${this.stored_connections.map(x => html`
|
||||
<li>
|
||||
<input type="button" @click=${() => self.forget_stored_connection(x)} value="Forget"></input>
|
||||
<input type="button" @click=${() => tfrpc.rpc.connect(x)} value="Connect"></input>
|
||||
${x.address}:${x.port} <tf-user id=${x.pubkey} .users=${self.users}></tf-user>
|
||||
</li>
|
||||
`)}
|
||||
</ul>
|
||||
<h2>Local Accounts</h2>
|
||||
<ul>
|
||||
${this.identities.map(x => html`<li><tf-user id=${x} .users=${this.users}></tf-user></li>`)}
|
@ -10,6 +10,8 @@ class TfTabNewsFeedElement extends LitElement {
|
||||
hash: {type: String},
|
||||
following: {type: Array},
|
||||
messages: {type: Array},
|
||||
drafts: {type: Object},
|
||||
expanded: {type: Object},
|
||||
}
|
||||
}
|
||||
|
||||
@ -22,6 +24,8 @@ class TfTabNewsFeedElement extends LitElement {
|
||||
this.users = {};
|
||||
this.hash = '#';
|
||||
this.following = [];
|
||||
this.drafts = {};
|
||||
this.expanded = {};
|
||||
}
|
||||
|
||||
async fetch_messages() {
|
||||
@ -102,7 +106,7 @@ class TfTabNewsFeedElement extends LitElement {
|
||||
alert(JSON.stringify(error, null, 2));
|
||||
});
|
||||
}
|
||||
return html`<tf-news id="news" whoami=${this.whoami} .users=${this.users} .messages=${this.messages} .following=${this.following}></tf-news>`;
|
||||
return html`<tf-news id="news" whoami=${this.whoami} .users=${this.users} .messages=${this.messages} .following=${this.following} .drafts=${this.drafts} .expanded=${this.expanded}></tf-news>`;
|
||||
}
|
||||
}
|
||||
|
||||
@ -114,6 +118,8 @@ class TfTabNewsElement extends LitElement {
|
||||
hash: {type: String},
|
||||
unread: {type: Array},
|
||||
following: {type: Array},
|
||||
drafts: {type: Object},
|
||||
expanded: {type: Object},
|
||||
}
|
||||
}
|
||||
|
||||
@ -128,6 +134,11 @@ class TfTabNewsElement extends LitElement {
|
||||
this.unread = [];
|
||||
this.following = [];
|
||||
this.cache = {};
|
||||
this.drafts = {};
|
||||
this.expanded = {};
|
||||
tfrpc.rpc.localStorageGet('drafts').then(function(d) {
|
||||
self.drafts = JSON.parse(d || '{}');
|
||||
});
|
||||
}
|
||||
|
||||
show_more() {
|
||||
@ -156,6 +167,32 @@ class TfTabNewsElement extends LitElement {
|
||||
return 'Show New: ' + Object.keys(counts).sort().map(x => (counts[x].toString() + ' ' + x + 's')).join(', ');
|
||||
}
|
||||
|
||||
draft(event) {
|
||||
let id = event.detail.id || '';
|
||||
let previous = this.drafts[id];
|
||||
if (event.detail.draft !== undefined) {
|
||||
this.drafts[id] = event.detail.draft;
|
||||
} else {
|
||||
delete this.drafts[id];
|
||||
}
|
||||
/* Only trigger a re-render if we're creating a new draft or discarding an old one. */
|
||||
if ((previous !== undefined) != (event.detail.draft !== undefined)) {
|
||||
this.drafts = Object.assign({}, this.drafts);
|
||||
}
|
||||
tfrpc.rpc.localStorageSet('drafts', JSON.stringify(this.drafts));
|
||||
}
|
||||
|
||||
on_expand(event) {
|
||||
if (event.detail.expanded) {
|
||||
let expand = {};
|
||||
expand[event.detail.id] = true;
|
||||
this.expanded = Object.assign({}, this.expanded, expand);
|
||||
} else {
|
||||
delete this.expanded[event.detail.id];
|
||||
this.expanded = Object.assign({}, this.expanded);
|
||||
}
|
||||
}
|
||||
|
||||
render() {
|
||||
let profile = this.hash.startsWith('#@') ?
|
||||
html`<tf-profile id=${this.hash.substring(1)} whoami=${this.whoami} .users=${this.users}></tf-profile>` : undefined;
|
||||
@ -163,9 +200,9 @@ class TfTabNewsElement extends LitElement {
|
||||
<div><input type="button" value=${this.new_messages_text()} @click=${this.show_more}></input></div>
|
||||
<a target="_top" href="#" ?hidden=${this.hash.length <= 1}>🏠Home</a>
|
||||
<div>Welcome, <tf-user id=${this.whoami} .users=${this.users}></tf-user>!</div>
|
||||
<div><tf-compose whoami=${this.whoami} .users=${this.users}></tf-compose></div>
|
||||
<div><tf-compose whoami=${this.whoami} .users=${this.users} .drafts=${this.drafts} @tf-draft=${this.draft}></tf-compose></div>
|
||||
${profile}
|
||||
<tf-tab-news-feed id="news" whoami=${this.whoami} .users=${this.users} .following=${this.following} hash=${this.hash}></tf-tab-news-feed>
|
||||
<tf-tab-news-feed id="news" whoami=${this.whoami} .users=${this.users} .following=${this.following} hash=${this.hash} .drafts=${this.drafts} .expanded=${this.expanded} @tf-draft=${this.draft} @tf-expand=${this.on_expand}></tf-tab-news-feed>
|
||||
`;
|
||||
}
|
||||
}
|
@ -19,18 +19,23 @@ class TfUserElement extends LitElement {
|
||||
}
|
||||
|
||||
render() {
|
||||
let name = this.users?.[this.id]?.name;
|
||||
name = name !== undefined ?
|
||||
html`<a target="_top" href=${'#' + this.id}>${name}</a>` :
|
||||
html`<a target="_top" href=${'#' + this.id}>${this.id}</a>`;
|
||||
|
||||
if (this.users[this.id]) {
|
||||
let image = this.users[this.id].image;
|
||||
image = typeof(image) == 'string' ? image : image?.link;
|
||||
return html`
|
||||
<div style="display: inline-block; font-weight: bold">
|
||||
<img style="width: 2em; height: 2em; vertical-align: middle; border-radius: 50%" ?hidden=${image === undefined} src="${image ? '/' + image + '/view' : undefined}">
|
||||
<a target="_top" href=${'#' + this.id}>${this.users[this.id].name ?? this.id}</a>
|
||||
${name}
|
||||
</div>`;
|
||||
} else {
|
||||
return html`
|
||||
<div style="display: inline-block; font-weight: bold; word-wrap: anywhere">
|
||||
<a target="_top" href=${'#' + this.id}>${this.id}</a>
|
||||
<div style="display: inline-block; font-weight: bold">
|
||||
${name}
|
||||
</div>`;
|
||||
}
|
||||
}
|
@ -5,8 +5,8 @@ export function markdown(md) {
|
||||
var reader = new commonmark.Parser({safe: true});
|
||||
var writer = new commonmark.HtmlRenderer();
|
||||
var parsed = reader.parse(md || '');
|
||||
parsed = hashtagify.transform(parsed);
|
||||
parsed = linkify.transform(parsed);
|
||||
parsed = hashtagify.transform(parsed);
|
||||
var walker = parsed.walker();
|
||||
var event, node;
|
||||
while ((event = walker.next())) {
|
4
apps/todo.json
Normal file
4
apps/todo.json
Normal file
@ -0,0 +1,4 @@
|
||||
{
|
||||
"type": "tildefriends-app",
|
||||
"emoji": "☑️"
|
||||
}
|
@ -22,6 +22,7 @@ App.prototype.readOutput = function(callback) {
|
||||
|
||||
App.prototype.makeFunction = function(api) {
|
||||
let self = this;
|
||||
let result = function() {
|
||||
let id = g_next_id++;
|
||||
while (!id || g_calls[id]) {
|
||||
id = g_next_id++;
|
||||
@ -29,7 +30,6 @@ App.prototype.makeFunction = function(api) {
|
||||
let promise = new Promise(function(resolve, reject) {
|
||||
g_calls[id] = {resolve: resolve, reject: reject};
|
||||
});
|
||||
let result = function() {
|
||||
let message = {
|
||||
message: 'tfrpc',
|
||||
method: api[0],
|
||||
|
54
core/auth.js
54
core/auth.js
@ -1,9 +1,7 @@
|
||||
import * as core from './core.js';
|
||||
import * as http from './http.js';
|
||||
import * as form from './form.js';
|
||||
|
||||
var gTokens = {};
|
||||
var gDatabase = new Database("auth");
|
||||
let gDatabase = new Database("auth");
|
||||
|
||||
const kRefreshInterval = 1 * 7 * 24 * 60 * 60 * 1000;
|
||||
|
||||
@ -76,7 +74,7 @@ function verifyPassword(password, hash) {
|
||||
}
|
||||
|
||||
function hashPassword(password) {
|
||||
var salt = bCrypt.gensalt(12);
|
||||
let salt = bCrypt.gensalt(12);
|
||||
return bCrypt.hashpw(password, salt);
|
||||
}
|
||||
|
||||
@ -100,14 +98,14 @@ function makeAdministrator(name) {
|
||||
}
|
||||
|
||||
function getCookies(headers) {
|
||||
var cookies = {};
|
||||
let cookies = {};
|
||||
|
||||
if (headers.cookie) {
|
||||
var parts = headers.cookie.split(/,|;/);
|
||||
for (var i in parts) {
|
||||
var equals = parts[i].indexOf("=");
|
||||
var name = parts[i].substring(0, equals).trim();
|
||||
var value = parts[i].substring(equals + 1).trim();
|
||||
let parts = headers.cookie.split(/,|;/);
|
||||
for (let i in parts) {
|
||||
let equals = parts[i].indexOf("=");
|
||||
let name = parts[i].substring(0, equals).trim();
|
||||
let value = parts[i].substring(equals + 1).trim();
|
||||
cookies[name] = value;
|
||||
}
|
||||
}
|
||||
@ -116,18 +114,18 @@ function getCookies(headers) {
|
||||
}
|
||||
|
||||
function handler(request, response) {
|
||||
var session = getCookies(request.headers).session;
|
||||
let session = getCookies(request.headers).session;
|
||||
if (request.uri == "/login") {
|
||||
var sessionIsNew = false;
|
||||
var loginError;
|
||||
let sessionIsNew = false;
|
||||
let loginError;
|
||||
|
||||
var formData = form.decodeForm(request.query);
|
||||
let formData = form.decodeForm(request.query);
|
||||
|
||||
if (request.method == "POST" || formData.submit) {
|
||||
sessionIsNew = true;
|
||||
formData = form.decodeForm(utf8Decode(request.body), formData);
|
||||
if (formData.submit == "Login") {
|
||||
var account = gDatabase.get("user:" + formData.name);
|
||||
let account = gDatabase.get("user:" + formData.name);
|
||||
account = account ? JSON.parse(account) : account;
|
||||
if (formData.register == "1") {
|
||||
if (!account &&
|
||||
@ -172,15 +170,15 @@ function handler(request, response) {
|
||||
}
|
||||
}
|
||||
|
||||
var cookie = `session=${session}; path=/; Max-Age=${kRefreshInterval}; Secure; SameSite=Strict`;
|
||||
var entry = readSession(session);
|
||||
let cookie = `session=${session}; path=/; Max-Age=${kRefreshInterval}; ${request.client.tls ? 'Secure; ' : ''}SameSite=Strict`;
|
||||
let entry = readSession(session);
|
||||
if (entry && formData.return) {
|
||||
response.writeHead(303, {"Location": formData.return, "Set-Cookie": cookie});
|
||||
response.end();
|
||||
} else {
|
||||
File.readFile("core/auth.html").then(function(data) {
|
||||
var html = utf8Decode(data);
|
||||
var contents = "";
|
||||
let html = utf8Decode(data);
|
||||
let contents = "";
|
||||
|
||||
if (entry) {
|
||||
if (sessionIsNew) {
|
||||
@ -217,7 +215,7 @@ function handler(request, response) {
|
||||
contents += '</div>\n';
|
||||
contents += '</form>';
|
||||
}
|
||||
var text = html.replace("<!--SESSION-->", contents);
|
||||
let text = html.replace("<!--SESSION-->", contents);
|
||||
response.writeHead(200, {"Content-Type": "text/html; charset=utf-8", "Set-Cookie": cookie, "Content-Length": text.length});
|
||||
response.end(text);
|
||||
}).catch(function(error) {
|
||||
@ -226,7 +224,7 @@ function handler(request, response) {
|
||||
});
|
||||
}
|
||||
} else if (request.uri == "/login/logout") {
|
||||
response.writeHead(303, {"Set-Cookie": "session=; path=/; Secure; SameSite=Strict; expires=Thu, 01 Jan 1970 00:00:00 GMT", "Location": "/login" + (request.query ? "?" + request.query : "")});
|
||||
response.writeHead(303, {"Set-Cookie": `session=; path=/; ${request.client.tls ? 'Secure; ' : ''}SameSite=Strict; expires=Thu, 01 Jan 1970 00:00:00 GMT`, "Location": "/login" + (request.query ? "?" + request.query : "")});
|
||||
response.end();
|
||||
} else {
|
||||
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8", "Connection": "close"});
|
||||
@ -235,8 +233,8 @@ function handler(request, response) {
|
||||
}
|
||||
|
||||
function getPermissions(session) {
|
||||
var permissions;
|
||||
var entry = readSession(session);
|
||||
let permissions;
|
||||
let entry = readSession(session);
|
||||
if (entry) {
|
||||
permissions = getPermissionsForUser(entry.name);
|
||||
permissions.authenticated = entry.name !== "guest";
|
||||
@ -245,9 +243,9 @@ function getPermissions(session) {
|
||||
}
|
||||
|
||||
function getPermissionsForUser(userName) {
|
||||
var permissions = {};
|
||||
let permissions = {};
|
||||
if (core.globalSettings && core.globalSettings.permissions && core.globalSettings.permissions[userName]) {
|
||||
for (var i in core.globalSettings.permissions[userName]) {
|
||||
for (let i in core.globalSettings.permissions[userName]) {
|
||||
permissions[core.globalSettings.permissions[userName][i]] = true;
|
||||
}
|
||||
}
|
||||
@ -255,9 +253,9 @@ function getPermissionsForUser(userName) {
|
||||
}
|
||||
|
||||
function query(headers) {
|
||||
var session = getCookies(headers).session;
|
||||
var entry;
|
||||
var autologin = tildefriends.args.autologin;
|
||||
let session = getCookies(headers).session;
|
||||
let entry;
|
||||
let autologin = tildefriends.args.autologin;
|
||||
if (entry = autologin ? {name: autologin} : readSession(session)) {
|
||||
return {
|
||||
session: entry,
|
||||
|
@ -1,17 +1,14 @@
|
||||
"use strict";
|
||||
|
||||
let gSocket;
|
||||
let gCredentials;
|
||||
let gPermissions;
|
||||
|
||||
let gCurrentFile;
|
||||
let gFiles = {};
|
||||
let gApp = {files: {}};
|
||||
let gApp = {files: {}, emoji: '📦'};
|
||||
let gEditor;
|
||||
let gSplit;
|
||||
let gGraphs = {};
|
||||
let gTimeSeries = {};
|
||||
let gParentApp;
|
||||
let gOriginalInput;
|
||||
|
||||
let kErrorColor = "#dc322f";
|
||||
@ -140,7 +137,7 @@ function showFiles() {
|
||||
}
|
||||
|
||||
function trace() {
|
||||
window.open(`/speedscope/#profileURL=${encodeURIComponent('/trace')}&title=Tilde%20Friends`);
|
||||
window.open(`/speedscope/#profileURL=${encodeURIComponent('/trace')}`);
|
||||
}
|
||||
|
||||
function stats() {
|
||||
@ -222,6 +219,8 @@ function load(path) {
|
||||
document.getElementById("editPane").style.display = 'flex';
|
||||
}
|
||||
gApp = json;
|
||||
gApp.emoji = gApp.emoji || '📦';
|
||||
document.getElementById('icon').value = gApp.emoji;
|
||||
}
|
||||
if (!isApp) {
|
||||
document.getElementById("editPane").style.display = 'flex';
|
||||
@ -251,8 +250,6 @@ function explodePath() {
|
||||
|
||||
function save(save_to) {
|
||||
document.getElementById("save").disabled = true;
|
||||
document.getElementById("push_to_parent").disabled = true;
|
||||
document.getElementById("pull_from_parent").disabled = true;
|
||||
if (gCurrentFile) {
|
||||
gFiles[gCurrentFile].doc = gEditor.getDoc();
|
||||
}
|
||||
@ -298,6 +295,7 @@ function save(save_to) {
|
||||
let app = {
|
||||
type: "tildefriends-app",
|
||||
files: Object.fromEntries(Object.keys(gFiles).map(x => [x, gFiles[x].id || gApp.files[x]])),
|
||||
emoji: gApp.emoji || '📦',
|
||||
};
|
||||
Object.values(gFiles).forEach(function(file) { delete file.id; });
|
||||
gApp = JSON.parse(JSON.stringify(app));
|
||||
@ -323,8 +321,6 @@ function save(save_to) {
|
||||
alert(error);
|
||||
}).finally(function() {
|
||||
document.getElementById("save").disabled = false;
|
||||
document.getElementById("push_to_parent").disabled = false;
|
||||
document.getElementById("pull_from_parent").disabled = false;
|
||||
Object.values(gFiles).forEach(function(file) {
|
||||
file.generation = file.doc.changeGeneration();
|
||||
});
|
||||
@ -332,6 +328,14 @@ function save(save_to) {
|
||||
});
|
||||
}
|
||||
|
||||
function changeIcon() {
|
||||
let value = prompt('Enter a new app icon emoji:');
|
||||
if (value !== undefined) {
|
||||
gApp.emoji = value || '📦';
|
||||
document.getElementById('icon').value = gApp.emoji;
|
||||
}
|
||||
}
|
||||
|
||||
function deleteApp() {
|
||||
let name = document.getElementById("name");
|
||||
let path = name && name.value ? name.value : url();
|
||||
@ -348,16 +352,6 @@ function deleteApp() {
|
||||
}
|
||||
}
|
||||
|
||||
function pullFromParent() {
|
||||
load(gParentApp ? gParentApp.path : null).then(x => save()).catch(function(error) {
|
||||
alert(error)
|
||||
});
|
||||
}
|
||||
|
||||
function pushToParent() {
|
||||
save(gParentApp ? gParentApp.path : null);
|
||||
}
|
||||
|
||||
function url() {
|
||||
let hash = window.location.href.indexOf('#');
|
||||
let question = window.location.href.indexOf('?');
|
||||
@ -402,7 +396,7 @@ function api_localStorageSet(key, value) {
|
||||
window.localStorage.setItem('app:' + key, value);
|
||||
}
|
||||
|
||||
function api_localStorageGet(key, value) {
|
||||
function api_localStorageGet(key) {
|
||||
return window.localStorage.getItem('app:' + key);
|
||||
}
|
||||
|
||||
@ -535,11 +529,7 @@ function _receive_websocket_message(message) {
|
||||
if (message && message.action == "session") {
|
||||
setStatusMessage("🟢 Executing...", kStatusColor);
|
||||
gCredentials = message.credentials;
|
||||
gParentApp = message.parentApp;
|
||||
updateLogin();
|
||||
let parent_enabled = message.parentApp;
|
||||
document.getElementById('push_to_parent').style.display = parent_enabled ? 'inline-block' : 'none';
|
||||
document.getElementById('pull_from_parent').style.display = parent_enabled ? 'inline-block' : 'none';
|
||||
} else if (message && message.action == 'permissions') {
|
||||
gPermissions = message.permissions;
|
||||
let permissions = document.getElementById('permissions_settings');
|
||||
@ -565,6 +555,9 @@ function _receive_websocket_message(message) {
|
||||
rpc_in: {group: 'rpc', name: 'in'},
|
||||
rpc_out: {group: 'rpc', name: 'out'},
|
||||
|
||||
cpu_percent: {group: 'cpu', name: 'main'},
|
||||
thread_percent: {group: 'cpu', name: 'work'},
|
||||
|
||||
arena_percent: {group: 'memory', name: 'm'},
|
||||
js_malloc_percent: {group: 'memory', name: 'js'},
|
||||
memory_percent: {group: 'memory', name: 'tot'},
|
||||
@ -573,6 +566,9 @@ function _receive_websocket_message(message) {
|
||||
tls_malloc_percent: {group: 'memory', name: 'tls'},
|
||||
uv_malloc_percent: {group: 'memory', name: 'uv'},
|
||||
|
||||
messages_stored: {group: 'stored', name: 'messages'},
|
||||
blobs_stored: {group: 'stored', name: 'blobs'},
|
||||
|
||||
socket_count: {group: 'socket', name: 'total'},
|
||||
socket_open_count: {group: 'socket', name: 'open'},
|
||||
|
||||
@ -636,17 +632,19 @@ function _receive_websocket_message(message) {
|
||||
message.message === 'tfrpc' &&
|
||||
message.method) {
|
||||
let api = k_api[message.method];
|
||||
let id = message.id;
|
||||
let params = message.params;
|
||||
if (api) {
|
||||
Promise.resolve(api.func(...message.params)).then(function(result) {
|
||||
Promise.resolve(api.func(...params)).then(function(result) {
|
||||
send({
|
||||
message: 'tfrpc',
|
||||
id: message.id,
|
||||
id: id,
|
||||
result: result,
|
||||
});
|
||||
}).catch(function(error) {
|
||||
send({
|
||||
message: 'tfrpc',
|
||||
id: message.id,
|
||||
id: id,
|
||||
error: error,
|
||||
});
|
||||
});
|
||||
@ -844,10 +842,12 @@ function message(event) {
|
||||
function reconnect(path) {
|
||||
let oldSocket = gSocket;
|
||||
gSocket = null
|
||||
if (oldSocket) {
|
||||
oldSocket.onopen = null;
|
||||
oldSocket.onclose = null;
|
||||
oldSocket.onmessage = null;
|
||||
oldSocket.close();
|
||||
}
|
||||
connectSocket(path);
|
||||
}
|
||||
|
||||
@ -966,6 +966,28 @@ window.addEventListener("load", function() {
|
||||
window.addEventListener("message", message, false);
|
||||
window.addEventListener("online", connectSocket);
|
||||
document.getElementById("name").value = window.location.pathname;
|
||||
document.getElementById('edit_link').addEventListener('click', function(event) {
|
||||
event.preventDefault();
|
||||
toggleEdit();
|
||||
});
|
||||
document.getElementById('show_permissions_link').addEventListener('click', () => showPermissions());
|
||||
document.getElementById('files_hide').addEventListener('click', () => hideFiles());
|
||||
document.getElementById('files_show').addEventListener('click', () => showFiles());
|
||||
document.getElementById('closeStats').addEventListener('click', () => closeStats());
|
||||
document.getElementById('closeEditor').addEventListener('click', () => closeEditor());
|
||||
document.getElementById('save').addEventListener('click', () => save());
|
||||
document.getElementById('icon').addEventListener('click', () => changeIcon());
|
||||
document.getElementById('delete').addEventListener('click', () => deleteApp());
|
||||
document.getElementById('trace_button').addEventListener('click', function(event) {
|
||||
event.preventDefault();
|
||||
trace();
|
||||
});
|
||||
document.getElementById('stats_button').addEventListener('click', function(event) {
|
||||
event.preventDefault();
|
||||
toggleStats();
|
||||
});
|
||||
document.getElementById('new_file_button').addEventListener('click', () => newFile());
|
||||
document.getElementById('remove_file_button').addEventListener('click', () => removeFile());
|
||||
for (let tag of document.getElementsByTagName('a')) {
|
||||
if (tag.accessKey) {
|
||||
tag.classList.add('tooltip_parent');
|
||||
|
244
core/core.js
244
core/core.js
@ -1,10 +1,11 @@
|
||||
import * as auth from './auth.js';
|
||||
import * as app from './app.js';
|
||||
import * as auth from './auth.js';
|
||||
import * as form from './form.js';
|
||||
import * as httpd from './httpd.js';
|
||||
|
||||
var gProcessIndex = 0;
|
||||
var gProcesses = {};
|
||||
var gStatsTimer = false;
|
||||
let gProcessIndex = 0;
|
||||
let gProcesses = {};
|
||||
let gStatsTimer = false;
|
||||
|
||||
const k_global_settings = {
|
||||
index: {
|
||||
@ -17,27 +18,35 @@ const k_global_settings = {
|
||||
default_value: true,
|
||||
description: 'Whether this instance should behave as a room.',
|
||||
},
|
||||
room_name: {
|
||||
type: 'string',
|
||||
default_value: 'tilde friends tunnel',
|
||||
description: 'Name of the room.',
|
||||
},
|
||||
code_of_conduct: {
|
||||
type: 'textarea',
|
||||
default_value: undefined,
|
||||
description: 'Code of conduct presented at sign-in.',
|
||||
},
|
||||
http_redirect: {
|
||||
type: 'string',
|
||||
default_value: undefined,
|
||||
description: 'If connecting by HTTP and HTTPS is configured, Location header prefix (ie, "https://example.com")',
|
||||
},
|
||||
};
|
||||
|
||||
var gGlobalSettings = {
|
||||
let gGlobalSettings = {
|
||||
index: "/~core/apps/",
|
||||
};
|
||||
|
||||
var kGlobalSettingsFile = "data/global/settings.json";
|
||||
|
||||
var kPingInterval = 60 * 1000;
|
||||
let kPingInterval = 60 * 1000;
|
||||
|
||||
function printError(out, error) {
|
||||
if (error.stackTrace) {
|
||||
out.print(error.fileName + ":" + error.lineNumber + ": " + error.message);
|
||||
out.print(error.stackTrace);
|
||||
} else {
|
||||
for (var i in error) {
|
||||
for (let i in error) {
|
||||
out.print(i);
|
||||
}
|
||||
out.print(error.toString());
|
||||
@ -45,9 +54,9 @@ function printError(out, error) {
|
||||
}
|
||||
|
||||
function invoke(handlers, argv) {
|
||||
var promises = [];
|
||||
let promises = [];
|
||||
if (handlers) {
|
||||
for (var i = 0; i < handlers.length; ++i) {
|
||||
for (let i = 0; i < handlers.length; ++i) {
|
||||
try {
|
||||
promises.push(handlers[i](...argv));
|
||||
} catch (error) {
|
||||
@ -61,9 +70,9 @@ function invoke(handlers, argv) {
|
||||
}
|
||||
|
||||
function broadcastEvent(eventName, argv) {
|
||||
var promises = [];
|
||||
for (var i in gProcesses) {
|
||||
var process = gProcesses[i];
|
||||
let promises = [];
|
||||
for (let i in gProcesses) {
|
||||
let process = gProcesses[i];
|
||||
if (process.eventHandlers[eventName]) {
|
||||
promises.push(invoke(process.eventHandlers[eventName], argv));
|
||||
}
|
||||
@ -72,14 +81,14 @@ function broadcastEvent(eventName, argv) {
|
||||
}
|
||||
|
||||
function broadcast(message) {
|
||||
var sender = this;
|
||||
var promises = [];
|
||||
for (var i in gProcesses) {
|
||||
var process = gProcesses[i];
|
||||
let sender = this;
|
||||
let promises = [];
|
||||
for (let i in gProcesses) {
|
||||
let process = gProcesses[i];
|
||||
if (process != sender
|
||||
&& process.packageOwner == sender.packageOwner
|
||||
&& process.packageName == sender.packageName) {
|
||||
var from = getUser(process, sender);
|
||||
let from = getUser(process, sender);
|
||||
promises.push(postMessageInternal(from, process, message));
|
||||
}
|
||||
}
|
||||
@ -109,9 +118,9 @@ function getApps(user, process) {
|
||||
}
|
||||
}
|
||||
if (user) {
|
||||
var db = new Database(user);
|
||||
let db = new Database(user);
|
||||
try {
|
||||
var names = JSON.parse(db.get('apps'));
|
||||
let names = JSON.parse(db.get('apps'));
|
||||
return Object.fromEntries(names.map(name => [name, db.get('path:' + name)]));
|
||||
} catch {
|
||||
}
|
||||
@ -126,21 +135,21 @@ function postMessageInternal(from, to, message) {
|
||||
}
|
||||
|
||||
async function getSessionProcessBlob(blobId, session, options) {
|
||||
var actualOptions = {timeout: kPingInterval};
|
||||
let actualOptions = {timeout: kPingInterval};
|
||||
if (options) {
|
||||
for (var i in options) {
|
||||
for (let i in options) {
|
||||
actualOptions[i] = options[i];
|
||||
}
|
||||
}
|
||||
return getProcessBlob(blobId, 'session_' + session, actualOptions);
|
||||
}
|
||||
|
||||
let gManifestCache = {};
|
||||
|
||||
async function getProcessBlob(blobId, key, options) {
|
||||
var process = gProcesses[key];
|
||||
let process = gProcesses[key];
|
||||
if (!process
|
||||
&& !(options && "create" in options && !options.create)) {
|
||||
let resolveReady;
|
||||
let rejectReady;
|
||||
try {
|
||||
print("Creating task for " + blobId + " " + key);
|
||||
process = {};
|
||||
@ -155,8 +164,6 @@ async function getProcessBlob(blobId, key, options) {
|
||||
process.lastPing = null;
|
||||
process.timeout = options.timeout;
|
||||
process.stats = false;
|
||||
var resolveReady;
|
||||
var rejectReady;
|
||||
process.ready = new Promise(function(resolve, reject) {
|
||||
resolveReady = resolve;
|
||||
rejectReady = reject;
|
||||
@ -167,7 +174,7 @@ async function getProcessBlob(blobId, key, options) {
|
||||
process.task = null;
|
||||
delete gProcesses[key];
|
||||
};
|
||||
var imports = {
|
||||
let imports = {
|
||||
'core': {
|
||||
'broadcast': broadcast.bind(process),
|
||||
'register': function(eventName, handler) {
|
||||
@ -337,17 +344,30 @@ async function getProcessBlob(blobId, key, options) {
|
||||
});
|
||||
}
|
||||
};
|
||||
delete imports.ssb.addRpc;
|
||||
imports.ssb.privateMessageEncrypt = function(id, recipients, message) {
|
||||
if (process.credentials &&
|
||||
process.credentials.session &&
|
||||
process.credentials.session.name) {
|
||||
return ssb.privateMessageEncrypt(process.credentials.session.name, id, recipients, message);
|
||||
}
|
||||
};
|
||||
imports.ssb.privateMessageDecrypt = function(id, message) {
|
||||
if (process.credentials &&
|
||||
process.credentials.session &&
|
||||
process.credentials.session.name) {
|
||||
return ssb.privateMessageDecrypt(process.credentials.session.name, id, message);
|
||||
}
|
||||
};
|
||||
|
||||
if (process.credentials &&
|
||||
process.credentials.session &&
|
||||
process.credentials.session.name) {
|
||||
imports.database = function(key) {
|
||||
var db = new Database(process.credentials.session.name + ':' + key);
|
||||
let db = new Database(process.credentials.session.name + ':' + key);
|
||||
return Object.fromEntries(Object.keys(db).map(x => [x, db[x].bind(db)]));
|
||||
};
|
||||
imports.my_shared_database = function(packageName, key) {
|
||||
var db = new Database(':shared:' + process.credentials.session.name + ':' + packageName + ':' + key);
|
||||
let db = new Database(':shared:' + process.credentials.session.name + ':' + packageName + ':' + key);
|
||||
return Object.fromEntries(Object.keys(db).map(x => [x, db[x].bind(db)]));
|
||||
};
|
||||
imports.databases = function() {
|
||||
@ -356,7 +376,7 @@ async function getProcessBlob(blobId, key, options) {
|
||||
}
|
||||
if (options.packageOwner && options.packageName) {
|
||||
imports.shared_database = function(key) {
|
||||
var db = new Database(':shared:' + options.packageOwner + ':' + options.packageName + ':' + key);
|
||||
let db = new Database(':shared:' + options.packageOwner + ':' + options.packageName + ':' + key);
|
||||
return Object.fromEntries(Object.keys(db).map(x => [x, db[x].bind(db)]));
|
||||
}
|
||||
}
|
||||
@ -371,14 +391,14 @@ async function getProcessBlob(blobId, key, options) {
|
||||
process.task.setImports(imports);
|
||||
process.task.activate();
|
||||
let source = await getBlobOrContent(blobId);
|
||||
var appSourceName = blobId;
|
||||
var appSource = utf8Decode(source);
|
||||
let appSourceName = blobId;
|
||||
let appSource = utf8Decode(source);
|
||||
try {
|
||||
var appObject = JSON.parse(appSource);
|
||||
let appObject = JSON.parse(appSource);
|
||||
if (appObject.type == "tildefriends-app") {
|
||||
appSourceName = 'app.js';
|
||||
var id = appObject.files[appSourceName];
|
||||
var blob = await getBlobOrContent(id);
|
||||
let id = appObject.files[appSourceName];
|
||||
let blob = await getBlobOrContent(id);
|
||||
appSource = utf8Decode(blob);
|
||||
await process.task.loadFile(['/tfrpc.js', await File.readFile('core/tfrpc.js')]);
|
||||
await Promise.all(Object.keys(appObject.files).map(async function(f) {
|
||||
@ -416,7 +436,7 @@ function setGlobalSettings(settings) {
|
||||
}
|
||||
}
|
||||
|
||||
var kStaticFiles = [
|
||||
let kStaticFiles = [
|
||||
{uri: '/', path: 'index.html', type: 'text/html; charset=UTF-8'},
|
||||
{uri: '/style.css', type: 'text/css; charset=UTF-8'},
|
||||
{uri: '/favicon.png', type: 'image/png'},
|
||||
@ -427,8 +447,8 @@ var kStaticFiles = [
|
||||
|
||||
function startsWithBytes(data, bytes) {
|
||||
if (data.byteLength >= bytes.length) {
|
||||
var dataBytes = new Uint8Array(data.slice(0, bytes.length));
|
||||
for (var i = 0; i < bytes.length; i++) {
|
||||
let dataBytes = new Uint8Array(data.slice(0, bytes.length));
|
||||
for (let i = 0; i < bytes.length; i++) {
|
||||
if (dataBytes[i] != bytes[i] && bytes[i] !== null) {
|
||||
return;
|
||||
}
|
||||
@ -438,10 +458,10 @@ function startsWithBytes(data, bytes) {
|
||||
}
|
||||
|
||||
async function staticFileHandler(request, response, blobId, uri) {
|
||||
for (var i in kStaticFiles) {
|
||||
for (let i in kStaticFiles) {
|
||||
if (uri === kStaticFiles[i].uri) {
|
||||
var path = kStaticFiles[i].path || uri.substring(1);
|
||||
var type = kStaticFiles[i].type || guessType(path);
|
||||
let path = kStaticFiles[i].path || uri.substring(1);
|
||||
let type = kStaticFiles[i].type || guessType(path);
|
||||
|
||||
let stat = await File.stat('core/' + path);
|
||||
let id = `${stat.mtime}_${stat.size}`;
|
||||
@ -450,7 +470,7 @@ async function staticFileHandler(request, response, blobId, uri) {
|
||||
response.writeHead(304, {});
|
||||
response.end();
|
||||
} else {
|
||||
var data = await File.readFile('core/' + path);
|
||||
let data = await File.readFile('core/' + path);
|
||||
response.writeHead(200, Object.assign(
|
||||
{
|
||||
'Content-Type': type,
|
||||
@ -477,7 +497,7 @@ const k_mime_types = {
|
||||
};
|
||||
|
||||
async function staticDirectoryHandler(request, response, directory, uri) {
|
||||
var filename = uri || 'index.html';
|
||||
let filename = uri || 'index.html';
|
||||
if (filename.indexOf('..') != -1) {
|
||||
response.writeHead(404, {"Content-Type": "text/plain; charset=utf-8", "Content-Length": "File not found".length});
|
||||
response.end("File not found");
|
||||
@ -492,7 +512,7 @@ async function staticDirectoryHandler(request, response, directory, uri) {
|
||||
response.writeHead(304, {});
|
||||
response.end();
|
||||
} else {
|
||||
var data = await File.readFile(directory + filename);
|
||||
let data = await File.readFile(directory + filename);
|
||||
response.writeHead(200, {
|
||||
'Content-Type': k_mime_types[filename.split('.').pop()] || 'text/plain',
|
||||
'Content-Length': data.byteLength,
|
||||
@ -507,7 +527,7 @@ async function staticDirectoryHandler(request, response, directory, uri) {
|
||||
}
|
||||
|
||||
async function wellKnownHandler(request, response, path) {
|
||||
var data = await File.readFile("data/global/.well-known/" + path);
|
||||
let data = await File.readFile("data/global/.well-known/" + path);
|
||||
if (data) {
|
||||
response.writeHead(200, {"Content-Type": "text/plain", "Content-Length": data.length});
|
||||
response.end(data);
|
||||
@ -532,6 +552,12 @@ function sendData(response, data, type, headers) {
|
||||
startsWithBytes(data, [0x47, 0x49, 0x46, 0x38, 0x39, 0x61])) {
|
||||
response.writeHead(200, Object.assign({"Content-Type": "image/gif", "Content-Length": data.byteLength}, headers || {}));
|
||||
response.end(data);
|
||||
} else if (startsWithBytes(data, [0x52, 0x49, 0x46, 0x46, null, null, null, null, 0x57, 0x45, 0x42, 0x50])) {
|
||||
response.writeHead(200, Object.assign({"Content-Type": "image/webp", "Content-Length": data.byteLength}, headers || {}));
|
||||
response.end(data);
|
||||
} else if (startsWithBytes(data, [0x3c, 0x73, 0x76, 0x67])) {
|
||||
response.writeHead(200, Object.assign({"Content-Type": "image/svg+xml", "Content-Length": data.byteLength}, headers || {}));
|
||||
response.end(data);
|
||||
} else if (startsWithBytes(data, [null, null, null, null, 0x66, 0x74, 0x79, 0x70, 0x6d, 0x70, 0x34, 0x32])) {
|
||||
response.writeHead(200, Object.assign({"Content-Type": "audio/mpeg", "Content-Length": data.byteLength}, headers || {}));
|
||||
response.end(data);
|
||||
@ -566,12 +592,12 @@ function guessType(path) {
|
||||
'js': 'text/javascript',
|
||||
'svg': 'image/svg+xml',
|
||||
};
|
||||
var extension = path.split('.').pop();
|
||||
let extension = path.split('.').pop();
|
||||
return k_extension_to_type[extension];
|
||||
}
|
||||
|
||||
async function blobHandler(request, response, blobId, uri) {
|
||||
for (var i in kStaticFiles) {
|
||||
for (let i in kStaticFiles) {
|
||||
if (uri === kStaticFiles[i].uri && kStaticFiles[i].path) {
|
||||
let stat = await File.stat('core/' + kStaticFiles[i].path);
|
||||
let id = `${stat.mtime}_${stat.size}`;
|
||||
@ -580,7 +606,7 @@ async function blobHandler(request, response, blobId, uri) {
|
||||
response.writeHead(304, {});
|
||||
response.end();
|
||||
} else {
|
||||
var data = await File.readFile('core/' + kStaticFiles[i].path);
|
||||
let data = await File.readFile('core/' + kStaticFiles[i].path);
|
||||
response.writeHead(200, Object.assign(
|
||||
{
|
||||
'Content-Type': kStaticFiles[i].type,
|
||||
@ -600,52 +626,58 @@ async function blobHandler(request, response, blobId, uri) {
|
||||
return;
|
||||
}
|
||||
|
||||
var process;
|
||||
let process;
|
||||
if (uri == "/view") {
|
||||
var data;
|
||||
let data;
|
||||
let match;
|
||||
let query = form.decodeForm(request.query);
|
||||
let headers = {};
|
||||
if (query.filename && query.filename.match(/^[A-Za-z0-9\.-]*$/)) {
|
||||
headers['Content-Disposition'] = `attachment; filename=${query.filename}`;
|
||||
}
|
||||
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
|
||||
var id = await new Database(match[1]).get('path:' + match[2]);
|
||||
let id = await new Database(match[1]).get('path:' + match[2]);
|
||||
if (id) {
|
||||
if (request.headers['if-none-match'] === '"' + id + '"') {
|
||||
response.writeHead(304, {});
|
||||
response.writeHead(304, headers);
|
||||
response.end();
|
||||
} else {
|
||||
data = await getBlobOrContent(id);
|
||||
if (match[3]) {
|
||||
var appObject = JSON.parse(data);
|
||||
let appObject = JSON.parse(data);
|
||||
data = appObject.files[match[3]];
|
||||
}
|
||||
sendData(response, data, undefined, {etag: '"' + id + '"'});
|
||||
sendData(response, data, undefined, Object.assign({etag: '"' + id + '"'}, headers));
|
||||
}
|
||||
} else {
|
||||
if (request.headers['if-none-match'] === '"' + blobId + '"') {
|
||||
response.writeHead(304, {});
|
||||
response.writeHead(304, headers);
|
||||
response.end();
|
||||
} else {
|
||||
sendData(response, data, undefined, {etag: '"' + blobId + '"'});
|
||||
sendData(response, data, undefined, Object.assign({etag: '"' + blobId + '"'}, headers));
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (request.headers['if-none-match'] === '"' + blobId + '"') {
|
||||
response.writeHead(304, {});
|
||||
response.writeHead(304, headers);
|
||||
response.end();
|
||||
} else {
|
||||
data = await getBlobOrContent(blobId);
|
||||
sendData(response, data, undefined, {etag: '"' + blobId + '"'});
|
||||
sendData(response, data, undefined, Object.assign({etag: '"' + blobId + '"'}, headers));
|
||||
}
|
||||
}
|
||||
} else if (uri == "/save") {
|
||||
var match;
|
||||
let match;
|
||||
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
|
||||
let newBlobId = await ssb.blobStore(request.body);
|
||||
var user = match[1];
|
||||
var appName = match[2];
|
||||
var credentials = auth.query(request.headers);
|
||||
let user = match[1];
|
||||
let appName = match[2];
|
||||
let credentials = auth.query(request.headers);
|
||||
if (credentials && credentials.session &&
|
||||
(credentials.session.name == user ||
|
||||
(credentials.permissions.administration && user == 'core'))) {
|
||||
var database = new Database(user);
|
||||
var apps = new Set();
|
||||
let database = new Database(user);
|
||||
let apps = new Set();
|
||||
let apps_original = database.get('apps');
|
||||
try {
|
||||
apps = new Set(JSON.parse(apps_original));
|
||||
@ -679,20 +711,20 @@ async function blobHandler(request, response, blobId, uri) {
|
||||
} else if (uri == "/delete") {
|
||||
let match;
|
||||
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
|
||||
var user = match[1];
|
||||
var appName = match[2];
|
||||
var credentials = auth.query(request.headers);
|
||||
let user = match[1];
|
||||
let appName = match[2];
|
||||
let credentials = auth.query(request.headers);
|
||||
if (credentials && credentials.session &&
|
||||
(credentials.session.name == user ||
|
||||
(credentials.permissions.administration && user == 'core'))) {
|
||||
var database = new Database(user);
|
||||
var apps = new Set();
|
||||
let database = new Database(user);
|
||||
let apps = new Set();
|
||||
try {
|
||||
apps = new Set(JSON.parse(database.get('apps')));
|
||||
} catch {
|
||||
}
|
||||
if (apps.delete(appName)) {
|
||||
database.set('apps', JSON.stringify([...apps]));
|
||||
database.set('apps', JSON.stringify([...apps].sort()));
|
||||
}
|
||||
database.remove('path:' + appName);
|
||||
} else {
|
||||
@ -705,12 +737,13 @@ async function blobHandler(request, response, blobId, uri) {
|
||||
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});
|
||||
response.end('OK');
|
||||
} else {
|
||||
var data;
|
||||
var type;
|
||||
var headers;
|
||||
let data;
|
||||
let type;
|
||||
let headers;
|
||||
let match;
|
||||
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
|
||||
var db = new Database(match[1]);
|
||||
var id = await db.get('path:' + match[2]);
|
||||
let db = new Database(match[1]);
|
||||
let id = await db.get('path:' + match[2]);
|
||||
if (id) {
|
||||
if (request.headers['if-none-match'] && request.headers['if-none-match'] == '"' + id + '"') {
|
||||
headers = {
|
||||
@ -720,7 +753,7 @@ async function blobHandler(request, response, blobId, uri) {
|
||||
response.end();
|
||||
} else {
|
||||
data = utf8Decode(await getBlobOrContent(id));
|
||||
var appObject = JSON.parse(data);
|
||||
let appObject = JSON.parse(data);
|
||||
data = appObject.files[uri.substring(1)];
|
||||
data = await getBlobOrContent(data);
|
||||
type = guessType(uri);
|
||||
@ -735,7 +768,7 @@ async function blobHandler(request, response, blobId, uri) {
|
||||
}
|
||||
} else {
|
||||
data = utf8Decode(await getBlobOrContent(blobId));
|
||||
var appObject = JSON.parse(data);
|
||||
let appObject = JSON.parse(data);
|
||||
data = appObject.files[uri.substring(1)];
|
||||
data = await getBlobOrContent(data);
|
||||
headers = {
|
||||
@ -755,41 +788,30 @@ ssb.addEventListener('connections', function() {
|
||||
});
|
||||
|
||||
async function loadSettings() {
|
||||
var data;
|
||||
|
||||
let data = {};
|
||||
try {
|
||||
var settings = new Database('core').get('settings');
|
||||
let settings = new Database('core').get('settings');
|
||||
if (settings) {
|
||||
data = JSON.parse(settings);
|
||||
}
|
||||
} catch (error) {
|
||||
print("Settings not found in database:", error);
|
||||
}
|
||||
|
||||
if (!data) {
|
||||
try {
|
||||
data = JSON.parse(utf8Decode(await File.readFile(kGlobalSettingsFile)));
|
||||
new Database('core').set('settings', JSON.stringify(data));
|
||||
} catch (error) {
|
||||
print("Unable to load settings from " + kGlobalSettingsFile + ":", error);
|
||||
for (let [key, value] of Object.entries(k_global_settings)) {
|
||||
if (data[key] === undefined) {
|
||||
data[key] = value.default_value;
|
||||
}
|
||||
}
|
||||
|
||||
if (data) {
|
||||
gGlobalSettings = data;
|
||||
}
|
||||
}
|
||||
|
||||
function sendStats() {
|
||||
var any = false;
|
||||
for (var process of Object.values(gProcesses)) {
|
||||
if (process.app && process.stats) {
|
||||
process.app.send({action: 'stats', stats: getStats()});
|
||||
any = true;
|
||||
let apps = Object.values(gProcesses).filter(process => process.app && process.stats).map(process => process.app);
|
||||
if (apps.length) {
|
||||
let stats = getStats();
|
||||
for (let app of apps) {
|
||||
app.send({action: 'stats', stats: stats});
|
||||
}
|
||||
}
|
||||
|
||||
if (any) {
|
||||
setTimeout(sendStats, 1000);
|
||||
} else {
|
||||
gStatsTimer = false;
|
||||
@ -807,7 +829,7 @@ function enableStats(process, enabled) {
|
||||
loadSettings().then(function() {
|
||||
httpd.all("/login", auth.handler);
|
||||
httpd.all("", function(request, response) {
|
||||
var match;
|
||||
let match;
|
||||
if (request.uri === "/" || request.uri === "") {
|
||||
response.writeHead(303, {"Location": (request.client.tls ? 'https://' : 'http://') + request.headers.host + gGlobalSettings.index, "Content-Length": "0"});
|
||||
return response.end();
|
||||
@ -828,19 +850,31 @@ loadSettings().then(function() {
|
||||
} else if (match = /^(.*)(\/(?:save|delete)?)$/.exec(request.uri)) {
|
||||
return blobHandler(request, response, match[1], match[2]);
|
||||
} else if (match = /^\/trace$/.exec(request.uri)) {
|
||||
var data = trace();
|
||||
let data = trace();
|
||||
response.writeHead(200, {"Content-Type": "application/json; charset=utf-8", "Content-Length": data.length.toString()});
|
||||
return response.end(data);
|
||||
} else if (match = /^\/disconnections$/.exec(request.uri)) {
|
||||
let data = utf8Encode(JSON.stringify(disconnectionsDebug(), null, 2));
|
||||
response.writeHead(200, {"Content-Type": "application/json; charset=utf-8", "Content-Length": data.byteLength.toString()});
|
||||
return response.end(data);
|
||||
} else if (match = /^\/debug$/.exec(request.uri)) {
|
||||
var data = JSON.stringify(getDebug(), null, 2);
|
||||
let data = JSON.stringify(getDebug(), null, 2);
|
||||
response.writeHead(200, {"Content-Type": "application/json; charset=utf-8", "Content-Length": data.length.toString()});
|
||||
return response.end(data);
|
||||
} else if (match = /^\/mem$/.exec(request.uri)) {
|
||||
let data = JSON.stringify(getAllocations(), null, 2);
|
||||
response.writeHead(200, {
|
||||
"Content-Type": "application/json; charset=utf-8",
|
||||
"Content-Length": data.length.toString(),
|
||||
"Access-Control-Allow-Origin": "*",
|
||||
});
|
||||
return response.end(data);
|
||||
} else if (request.uri == "/robots.txt") {
|
||||
return blobHandler(request, response, null, request.uri);
|
||||
} else if ((match = /^\/.well-known\/(.*)/.exec(request.uri)) && request.uri.indexOf("..") == -1) {
|
||||
return wellKnownHandler(request, response, match[1]);
|
||||
} else {
|
||||
var data = "File not found.";
|
||||
let data = "File not found.";
|
||||
response.writeHead(404, {"Content-Type": "text/plain; charset=utf-8", "Content-Length": data.length.toString()});
|
||||
return response.end(data);
|
||||
}
|
||||
|
20
core/form.js
20
core/form.js
@ -1,7 +1,7 @@
|
||||
function decode(encoded) {
|
||||
var result = "";
|
||||
for (var i = 0; i < encoded.length; i++) {
|
||||
var c = encoded[i];
|
||||
let result = "";
|
||||
for (let i = 0; i < encoded.length; i++) {
|
||||
let c = encoded[i];
|
||||
if (c == "+") {
|
||||
result += " ";
|
||||
} else if (c == "%") {
|
||||
@ -15,15 +15,15 @@ function decode(encoded) {
|
||||
}
|
||||
|
||||
function decodeForm(encoded, initial) {
|
||||
var result = initial || {};
|
||||
let result = initial || {};
|
||||
if (encoded) {
|
||||
encoded = encoded.trim();
|
||||
var items = encoded.split('&');
|
||||
for (var i = 0; i < items.length; i++) {
|
||||
var item = items[i];
|
||||
var equals = item.indexOf('=');
|
||||
var key = decode(item.slice(0, equals));
|
||||
var value = decode(item.slice(equals + 1));
|
||||
let items = encoded.split('&');
|
||||
for (let i = 0; i < items.length; i++) {
|
||||
let item = items[i];
|
||||
let equals = item.indexOf('=');
|
||||
let key = decode(item.slice(0, equals));
|
||||
let value = decode(item.slice(equals + 1));
|
||||
result[key] = value;
|
||||
}
|
||||
}
|
||||
|
59
core/http.js
59
core/http.js
@ -1,59 +0,0 @@
|
||||
"use strict";
|
||||
|
||||
function parseUrl(url) {
|
||||
// XXX: Hack.
|
||||
var match = url.match(new RegExp("(\\w+)://([^/]+)?(.*)"));
|
||||
return {
|
||||
protocol: match[1],
|
||||
host: match[2],
|
||||
path: match[3],
|
||||
port: match[1] == "http" ? 80 : 443,
|
||||
};
|
||||
}
|
||||
|
||||
function parseResponse(data) {
|
||||
var firstLine;
|
||||
var headers = {};
|
||||
|
||||
while (true) {
|
||||
var endLine = data.indexOf("\r\n");
|
||||
var line = data.substring(0, endLine);
|
||||
if (!firstLine) {
|
||||
firstLine = line;
|
||||
} else if (!line.length) {
|
||||
break;
|
||||
} else {
|
||||
var colon = line.indexOf(":");
|
||||
headers[line.substring(colon)] = line.substring(colon + 1);
|
||||
}
|
||||
data = data.substring(endLine + 2);
|
||||
}
|
||||
return {body: data};
|
||||
}
|
||||
|
||||
export function get(url) {
|
||||
var parsed = parseUrl(url);
|
||||
return new Promise(function(resolve, reject) {
|
||||
var socket = new Socket();
|
||||
var buffer = "";
|
||||
|
||||
return socket.connect(parsed.host, parsed.port).then(function() {
|
||||
socket.read(function(data) {
|
||||
if (data) {
|
||||
buffer += data;
|
||||
} else {
|
||||
resolve(parseResponse(buffer));
|
||||
}
|
||||
});
|
||||
|
||||
if (parsed.port == 443) {
|
||||
return socket.startTls();
|
||||
}
|
||||
}).then(function() {
|
||||
socket.write(`GET ${parsed.path} HTTP/1.0\r\nHost: ${parsed.host}\r\nConnection: close\r\n\r\n`);
|
||||
socket.shutdown();
|
||||
}).catch(function(error) {
|
||||
reject(error);
|
||||
});
|
||||
});
|
||||
}
|
378
core/httpd.js
378
core/httpd.js
@ -1,10 +1,8 @@
|
||||
import * as sha1 from './sha1.js';
|
||||
import * as core from './core.js';
|
||||
|
||||
"use strict";
|
||||
|
||||
var gHandlers = [];
|
||||
var gSocketHandlers = [];
|
||||
var gBadRequests = {};
|
||||
let gHandlers = [];
|
||||
let gSocketHandlers = [];
|
||||
let gBadRequests = {};
|
||||
|
||||
const kRequestTimeout = 15000;
|
||||
const kStallTimeout = 60000;
|
||||
@ -17,8 +15,8 @@ function logError(error) {
|
||||
}
|
||||
|
||||
function addHandler(handler) {
|
||||
var added = false;
|
||||
for (var i in gHandlers) {
|
||||
let added = false;
|
||||
for (let i in gHandlers) {
|
||||
if (gHandlers[i].path == handler.path) {
|
||||
gHandlers[i] = handler;
|
||||
added = true;
|
||||
@ -49,7 +47,7 @@ function registerSocketHandler(prefix, handler) {
|
||||
|
||||
function Request(method, uri, version, headers, body, client) {
|
||||
this.method = method;
|
||||
var index = uri.indexOf("?");
|
||||
let index = uri.indexOf("?");
|
||||
if (index != -1) {
|
||||
this.uri = uri.slice(0, index);
|
||||
this.query = uri.slice(index + 1);
|
||||
@ -65,9 +63,9 @@ function Request(method, uri, version, headers, body, client) {
|
||||
}
|
||||
|
||||
function findHandler(request) {
|
||||
var matchedHandler = null;
|
||||
for (var name in gHandlers) {
|
||||
var handler = gHandlers[name];
|
||||
let matchedHandler = null;
|
||||
for (let name in gHandlers) {
|
||||
let handler = gHandlers[name];
|
||||
if (request.uri == handler.path || request.uri.slice(0, handler.path.length + 1) == handler.path + '/') {
|
||||
matchedHandler = handler;
|
||||
break;
|
||||
@ -77,9 +75,9 @@ function findHandler(request) {
|
||||
}
|
||||
|
||||
function findSocketHandler(request) {
|
||||
var matchedHandler = null;
|
||||
for (var name in gSocketHandlers) {
|
||||
var handler = gSocketHandlers[name];
|
||||
let matchedHandler = null;
|
||||
for (let name in gSocketHandlers) {
|
||||
let handler = gSocketHandlers[name];
|
||||
if (request.uri == handler.path || request.uri.slice(0, handler.path.length + 1) == handler.path + '/') {
|
||||
matchedHandler = handler;
|
||||
break;
|
||||
@ -89,27 +87,28 @@ function findSocketHandler(request) {
|
||||
}
|
||||
|
||||
function Response(request, client) {
|
||||
var kStatusText = {
|
||||
let kStatusText = {
|
||||
101: "Switching Protocols",
|
||||
200: 'OK',
|
||||
303: 'See other',
|
||||
304: 'Not Modified',
|
||||
400: 'Bad Request',
|
||||
401: 'Unauthorized',
|
||||
403: 'Forbidden',
|
||||
404: 'File not found',
|
||||
500: 'Internal server error',
|
||||
};
|
||||
var _started = false;
|
||||
var _finished = false;
|
||||
var _keepAlive = false;
|
||||
var _chunked = false;
|
||||
let _started = false;
|
||||
let _finished = false;
|
||||
let _keepAlive = false;
|
||||
let _chunked = false;
|
||||
return {
|
||||
writeHead: function(status) {
|
||||
if (_started) {
|
||||
throw new Error("Response.writeHead called multiple times.");
|
||||
}
|
||||
var reason;
|
||||
var headers;
|
||||
let reason;
|
||||
let headers;
|
||||
if (arguments.length == 3) {
|
||||
reason = arguments[1];
|
||||
headers = arguments[2];
|
||||
@ -117,11 +116,11 @@ function Response(request, client) {
|
||||
reason = kStatusText[status];
|
||||
headers = arguments[1];
|
||||
}
|
||||
var lowerHeaders = {};
|
||||
var requestVersion = request.version.split("/")[1].split(".");
|
||||
var responseVersion = (requestVersion[0] >= 1 && requestVersion[0] >= 1) ? "1.1" : "1.0";
|
||||
var headerString = "HTTP/" + responseVersion + " " + status + " " + reason + "\r\n";
|
||||
for (var i in headers) {
|
||||
let lowerHeaders = {};
|
||||
let requestVersion = request.version.split("/")[1].split(".");
|
||||
let responseVersion = (requestVersion[0] >= 1 && requestVersion[0] >= 1) ? "1.1" : "1.0";
|
||||
let headerString = "HTTP/" + responseVersion + " " + status + " " + reason + "\r\n";
|
||||
for (let i in headers) {
|
||||
headerString += i + ": " + headers[i] + "\r\n";
|
||||
lowerHeaders[i.toLowerCase()] = headers[i];
|
||||
}
|
||||
@ -172,19 +171,16 @@ function Response(request, client) {
|
||||
}
|
||||
|
||||
function handleRequest(request, response) {
|
||||
var handler = findHandler(request);
|
||||
let handler = findHandler(request);
|
||||
|
||||
print(request.client.peerName + " - - [" + new Date() + "] " + request.method + " " + request.uri + " " + request.version + " \"" + request.headers["user-agent"] + "\"");
|
||||
|
||||
if (handler) {
|
||||
try {
|
||||
var promise = handler.invoke(request, response);
|
||||
if (promise) {
|
||||
promise.catch(function(error) {
|
||||
Promise.resolve(handler.invoke(request, response)).catch(function(error) {
|
||||
response.reportError(error);
|
||||
request.client.close();
|
||||
});
|
||||
}
|
||||
} catch (error) {
|
||||
response.reportError(error);
|
||||
request.client.close();
|
||||
@ -196,11 +192,11 @@ function handleRequest(request, response) {
|
||||
}
|
||||
|
||||
function handleWebSocketRequest(request, response, client) {
|
||||
var buffer = new Uint8Array(0);
|
||||
var frame = new Uint8Array(0);
|
||||
var frameOpCode = 0x0;
|
||||
let buffer = new Uint8Array(0);
|
||||
let frame;
|
||||
let frameOpCode = 0x0;
|
||||
|
||||
var handler = findSocketHandler(request);
|
||||
let handler = findSocketHandler(request);
|
||||
if (!handler) {
|
||||
client.close();
|
||||
return;
|
||||
@ -213,9 +209,9 @@ function handleWebSocketRequest(request, response, client) {
|
||||
if (opCode == 0x1 && (typeof message == "string" || message instanceof String)) {
|
||||
message = utf8Encode(message);
|
||||
}
|
||||
var fin = true;
|
||||
var packet = [(fin ? (1 << 7) : 0) | (opCode & 0xf)];
|
||||
var mask = false;
|
||||
let fin = true;
|
||||
let packet = [(fin ? (1 << 7) : 0) | (opCode & 0xf)];
|
||||
let mask = false;
|
||||
if (message.length < 126) {
|
||||
packet.push((mask ? (1 << 7) : 0) | message.length);
|
||||
} else if (message.length < (1 << 16)) {
|
||||
@ -223,8 +219,8 @@ function handleWebSocketRequest(request, response, client) {
|
||||
packet.push((message.length >> 8) & 0xff);
|
||||
packet.push(message.length & 0xff);
|
||||
} else {
|
||||
var high = 0; //(message.length / (1 ** 32)) & 0xffffffff;
|
||||
var low = message.length & 0xffffffff;
|
||||
let high = 0; //(message.length / (1 ** 32)) & 0xffffffff;
|
||||
let low = message.length & 0xffffffff;
|
||||
packet.push((mask ? (1 << 7) : 0) | 127);
|
||||
packet.push((high >> 24) & 0xff);
|
||||
packet.push((high >> 16) & 0xff);
|
||||
@ -236,7 +232,7 @@ function handleWebSocketRequest(request, response, client) {
|
||||
packet.push(low & 0xff);
|
||||
}
|
||||
|
||||
var array = new Uint8Array(packet.length + message.length);
|
||||
let array = new Uint8Array(packet.length + message.length);
|
||||
array.set(packet, 0);
|
||||
array.set(message, packet.length);
|
||||
try {
|
||||
@ -252,53 +248,58 @@ function handleWebSocketRequest(request, response, client) {
|
||||
|
||||
client.read(function(data) {
|
||||
if (data) {
|
||||
var newBuffer = new Uint8Array(buffer.length + data.length);
|
||||
let newBuffer = new Uint8Array(buffer.length + data.length);
|
||||
newBuffer.set(buffer, 0);
|
||||
newBuffer.set(data, buffer.length);
|
||||
buffer = newBuffer;
|
||||
|
||||
while (buffer.length >= 2) {
|
||||
var bits0 = buffer[0];
|
||||
var bits1 = buffer[1];
|
||||
let bits0 = buffer[0];
|
||||
let bits1 = buffer[1];
|
||||
if (bits1 & (1 << 7) == 0) {
|
||||
// Unmasked message.
|
||||
client.close();
|
||||
}
|
||||
var opCode = bits0 & 0xf;
|
||||
var fin = bits0 & (1 << 7);
|
||||
var payloadLength = bits1 & 0x7f;
|
||||
var maskStart = 2;
|
||||
let opCode = bits0 & 0xf;
|
||||
let fin = bits0 & (1 << 7);
|
||||
let payloadLength = bits1 & 0x7f;
|
||||
let maskStart = 2;
|
||||
|
||||
if (payloadLength == 126) {
|
||||
payloadLength = 0;
|
||||
for (var i = 0; i < 2; i++) {
|
||||
for (let i = 0; i < 2; i++) {
|
||||
payloadLength <<= 8;
|
||||
payloadLength |= buffer[2 + i];
|
||||
}
|
||||
maskStart = 4;
|
||||
} else if (payloadLength == 127) {
|
||||
payloadLength = 0;
|
||||
for (var i = 0; i < 8; i++) {
|
||||
for (let i = 0; i < 8; i++) {
|
||||
payloadLength <<= 8;
|
||||
payloadLength |= buffer[2 + i];
|
||||
}
|
||||
maskStart = 10;
|
||||
}
|
||||
var havePayload = buffer.length >= payloadLength + 2 + 4;
|
||||
let havePayload = buffer.length >= payloadLength + 2 + 4;
|
||||
if (havePayload) {
|
||||
var mask = buffer.slice(maskStart, maskStart + 4);
|
||||
var dataStart = maskStart + 4;
|
||||
var decoded = new Array(payloadLength);
|
||||
var payload = buffer.slice(dataStart, dataStart + payloadLength);
|
||||
let mask =
|
||||
buffer[maskStart + 0] |
|
||||
buffer[maskStart + 1] << 8 |
|
||||
buffer[maskStart + 2] << 16 |
|
||||
buffer[maskStart + 3] << 24;
|
||||
let dataStart = maskStart + 4;
|
||||
let payload = buffer.slice(dataStart, dataStart + payloadLength);
|
||||
let decoded = maskBytes(payload, mask);
|
||||
buffer = buffer.slice(dataStart + payloadLength);
|
||||
for (var i = 0; i < payloadLength; i++) {
|
||||
decoded[i] = payload[i] ^ mask[i % 4];
|
||||
}
|
||||
|
||||
var newBuffer = new Uint8Array(frame.length + decoded.length);
|
||||
if (frame) {
|
||||
let newBuffer = new Uint8Array(frame.length + decoded.length);
|
||||
newBuffer.set(frame, 0);
|
||||
newBuffer.set(decoded, frame.length);
|
||||
frame = newBuffer;
|
||||
} else {
|
||||
frame = decoded;
|
||||
}
|
||||
|
||||
if (opCode) {
|
||||
frameOpCode = opCode;
|
||||
@ -311,7 +312,7 @@ function handleWebSocketRequest(request, response, client) {
|
||||
opCode: frameOpCode,
|
||||
});
|
||||
}
|
||||
frame = new Uint8Array(0);
|
||||
frame = undefined;
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
@ -339,31 +340,15 @@ function handleWebSocketRequest(request, response, client) {
|
||||
}
|
||||
|
||||
function webSocketAcceptResponse(key) {
|
||||
var kMagic = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
|
||||
var kAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||||
var hex = sha1.hash(key + kMagic)
|
||||
var binary = "";
|
||||
for (var i = 0; i < hex.length; i += 6) {
|
||||
var characters = hex.substring(i, i + 6);
|
||||
if (characters.length < 6) {
|
||||
characters += "0".repeat(6 - characters.length);
|
||||
}
|
||||
var value = parseInt(characters, 16);
|
||||
for (var bit = 0; bit < 8 * 3; bit += 6) {
|
||||
if (i * 8 / 2 + bit >= 8 * hex.length / 2) {
|
||||
binary += kAlphabet.charAt(64);
|
||||
} else {
|
||||
binary += kAlphabet.charAt((value >> (18 - bit)) & 63);
|
||||
}
|
||||
}
|
||||
}
|
||||
return binary;
|
||||
let kMagic = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
|
||||
let kAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
|
||||
return base64Encode(sha1Digest(key + kMagic));
|
||||
}
|
||||
|
||||
function badRequest(client, reason) {
|
||||
var now = new Date();
|
||||
var count = 0;
|
||||
var old = gBadRequests[client.peerName];
|
||||
let now = new Date();
|
||||
let count = 0;
|
||||
let old = gBadRequests[client.peerName];
|
||||
if (!old) {
|
||||
gBadRequests[client.peerName] = {
|
||||
expire: new Date(now.getTime() + 1 * 60 * 1000),
|
||||
@ -381,9 +366,9 @@ function badRequest(client, reason) {
|
||||
}
|
||||
|
||||
function allowRequest(client) {
|
||||
var old = gBadRequests[client.peerName];
|
||||
let old = gBadRequests[client.peerName];
|
||||
if (old) {
|
||||
var now = new Date();
|
||||
let now = new Date();
|
||||
if (old.expire < now) {
|
||||
delete gBadRequests[client.peerName];
|
||||
return true;
|
||||
@ -404,15 +389,15 @@ function handleConnection(client) {
|
||||
}
|
||||
|
||||
client.info = 'accepted';
|
||||
var inputBuffer = new Uint8Array(0);
|
||||
var request;
|
||||
var headers = {};
|
||||
var lineByLine = true;
|
||||
var bodyToRead = -1;
|
||||
var body;
|
||||
var requestCount = -1;
|
||||
var readCount = 0;
|
||||
var isWebsocket = false;
|
||||
let inputBuffer = new Uint8Array(0);
|
||||
let request;
|
||||
let headers = {};
|
||||
let parsing_header = true;
|
||||
let bodyToRead = -1;
|
||||
let body;
|
||||
let requestCount = -1;
|
||||
let readCount = 0;
|
||||
let isWebsocket = false;
|
||||
|
||||
function resetTimeout(requestIndex) {
|
||||
if (isWebsocket) {
|
||||
@ -430,7 +415,7 @@ function handleConnection(client) {
|
||||
}
|
||||
}, kRequestTimeout);
|
||||
} else {
|
||||
var lastReadCount = readCount;
|
||||
let lastReadCount = readCount;
|
||||
setTimeout(function() {
|
||||
if (readCount == lastReadCount) {
|
||||
client.info = 'stalled';
|
||||
@ -447,10 +432,9 @@ function handleConnection(client) {
|
||||
resetTimeout(++requestCount);
|
||||
|
||||
function reset() {
|
||||
inputBuffer = new Uint8Array(0);
|
||||
request = undefined;
|
||||
headers = {};
|
||||
lineByLine = true;
|
||||
parsing_header = true;
|
||||
bodyToRead = -1;
|
||||
body = undefined;
|
||||
client.info = 'reset';
|
||||
@ -459,8 +443,8 @@ function handleConnection(client) {
|
||||
|
||||
function finish() {
|
||||
client.info = 'finishing';
|
||||
var requestObject = new Request(request[0], request[1], request[2], headers, body, client);
|
||||
var response = new Response(requestObject, client);
|
||||
let requestObject = new Request(request[0], request[1], request[2], headers, body, client);
|
||||
let response = new Response(requestObject, client);
|
||||
try {
|
||||
handleRequest(requestObject, response)
|
||||
if (client.isConnected) {
|
||||
@ -472,71 +456,6 @@ function handleConnection(client) {
|
||||
}
|
||||
}
|
||||
|
||||
function handleLine(line, length) {
|
||||
if (bodyToRead == -1) {
|
||||
line = utf8Decode(line);
|
||||
if (!request) {
|
||||
if (!line) {
|
||||
badRequest(client, 'Empty request.');
|
||||
return false;
|
||||
}
|
||||
request = line.split(' ');
|
||||
if (request.length != 3 || !request[2].startsWith('HTTP/1.')) {
|
||||
badRequest(client, 'Bad request.');
|
||||
request = null;
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
} else if (line) {
|
||||
var colon = line.indexOf(':');
|
||||
var key = line.slice(0, colon).trim();
|
||||
var value = line.slice(colon + 1).trim();
|
||||
headers[key.toLowerCase()] = value;
|
||||
return true;
|
||||
} else {
|
||||
if (headers["content-length"] != undefined) {
|
||||
bodyToRead = parseInt(headers["content-length"]);
|
||||
lineByLine = false;
|
||||
if (bodyToRead > 16 * 1024 * 1024) {
|
||||
badRequest(client, 'Request too large: ' + bodyToRead + '.');
|
||||
return false;
|
||||
}
|
||||
body = new Uint8Array(bodyToRead);
|
||||
client.info = 'waiting for body';
|
||||
resetTimeout(requestCount);
|
||||
return true;
|
||||
} else if (headers["connection"]
|
||||
&& headers["connection"].toLowerCase().split(",").map(x => x.trim()).indexOf("upgrade") != -1
|
||||
&& headers["upgrade"]
|
||||
&& headers["upgrade"].toLowerCase() == "websocket") {
|
||||
isWebsocket = true;
|
||||
client.info = 'websocket';
|
||||
var requestObject = new Request(request[0], request[1], request[2], headers, body, client);
|
||||
var response = new Response(requestObject, client);
|
||||
handleWebSocketRequest(requestObject, response, client);
|
||||
/* Prevent the timeout from disconnecting us. */
|
||||
requestCount++;
|
||||
return false;
|
||||
} else {
|
||||
finish();
|
||||
return false;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var offset = body.length - bodyToRead;
|
||||
if (line.length > body.length - offset) {
|
||||
line = line.slice(0, body.length - offset);
|
||||
}
|
||||
body.set(line, offset);
|
||||
bodyToRead -= line.length;
|
||||
if (bodyToRead <= 0) {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
client.noDelay = true;
|
||||
|
||||
client.onError(function(error) {
|
||||
logError(client.peerName + " - - [" + new Date() + "] " + error);
|
||||
});
|
||||
@ -547,36 +466,82 @@ function handleConnection(client) {
|
||||
if (bodyToRead != -1 && !isWebsocket) {
|
||||
resetTimeout(requestCount);
|
||||
}
|
||||
const kMaxLineLength = 4096;
|
||||
var newBuffer = new Uint8Array(inputBuffer.length + data.length);
|
||||
let newBuffer = new Uint8Array(inputBuffer.length + data.length);
|
||||
newBuffer.set(inputBuffer, 0);
|
||||
newBuffer.set(data, inputBuffer.length);
|
||||
inputBuffer = newBuffer;
|
||||
|
||||
var newLine = '\n'.charCodeAt(0);
|
||||
var carriageReturn = '\r'.charCodeAt(0);
|
||||
|
||||
var more = true;
|
||||
while (more) {
|
||||
if (lineByLine) {
|
||||
more = false;
|
||||
var end = inputBuffer.indexOf(newLine);
|
||||
var realEnd = end;
|
||||
if (end > 0 && inputBuffer[end - 1] == carriageReturn) {
|
||||
--end;
|
||||
}
|
||||
if (end > kMaxLineLength || end == -1 && inputBuffer.length > kMaxLineLength) {
|
||||
badRequest(client, 'Request too long.');
|
||||
if (parsing_header)
|
||||
{
|
||||
let result = parseHttp(inputBuffer, inputBuffer.length - data.length);
|
||||
if (result) {
|
||||
if (typeof result === 'number') {
|
||||
if (result == -2) {
|
||||
/* More. */
|
||||
} else {
|
||||
badRequest(client, 'Bad request.');
|
||||
return;
|
||||
}
|
||||
if (end != -1) {
|
||||
var line = inputBuffer.slice(0, end);
|
||||
inputBuffer = inputBuffer.slice(realEnd + 1);
|
||||
more = handleLine(line, realEnd + 1);
|
||||
} else if (typeof result === 'object') {
|
||||
request = [
|
||||
result.method,
|
||||
result.path,
|
||||
`HTTP/1.${result.minor_version}`,
|
||||
];
|
||||
|
||||
headers = Object.fromEntries(Object.entries(result.headers).map(x => [x[0].toLowerCase(), x[1]]));
|
||||
parsing_header = false;
|
||||
inputBuffer = inputBuffer.slice(result.bytes_parsed);
|
||||
|
||||
if (!client.tls && tildefriends.https_port && core.globalSettings.http_redirect && !result.path.startsWith('/.well-known/')) {
|
||||
let requestObject = new Request(request[0], request[1], request[2], headers, body, client);
|
||||
let response = new Response(requestObject, client);
|
||||
response.writeHead(303, {"Location": `${core.globalSettings.http_redirect}${result.path}`, "Content-Length": "0"});
|
||||
response.end();
|
||||
return;
|
||||
}
|
||||
|
||||
if (headers["content-length"] != undefined) {
|
||||
bodyToRead = parseInt(headers["content-length"]);
|
||||
if (bodyToRead > 16 * 1024 * 1024) {
|
||||
badRequest(client, 'Request too large: ' + bodyToRead + '.');
|
||||
return;
|
||||
}
|
||||
body = new Uint8Array(bodyToRead);
|
||||
client.info = 'waiting for body';
|
||||
resetTimeout(requestCount);
|
||||
} else if (headers["connection"]
|
||||
&& headers["connection"].toLowerCase().split(",").map(x => x.trim()).indexOf("upgrade") != -1
|
||||
&& headers["upgrade"]
|
||||
&& headers["upgrade"].toLowerCase() == "websocket") {
|
||||
isWebsocket = true;
|
||||
client.info = 'websocket';
|
||||
let requestObject = new Request(request[0], request[1], request[2], headers, body, client);
|
||||
let response = new Response(requestObject, client);
|
||||
handleWebSocketRequest(requestObject, response, client);
|
||||
/* Prevent the timeout from disconnecting us. */
|
||||
requestCount++;
|
||||
} else {
|
||||
more = handleLine(inputBuffer, inputBuffer.length);
|
||||
inputBuffer = new Uint8Array(0);
|
||||
finish();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (!parsing_header && inputBuffer.length)
|
||||
{
|
||||
let offset = body.length - bodyToRead;
|
||||
let length = Math.min(inputBuffer.length, body.length - offset);
|
||||
if (inputBuffer.length > body.length - offset) {
|
||||
body.set(inputBuffer.slice(0, length), offset);
|
||||
inputBuffer = inputBuffer.slice(length);
|
||||
} else {
|
||||
body.set(inputBuffer, offset);
|
||||
inputBuffer = inputBuffer.slice(inputBuffer.length);
|
||||
}
|
||||
bodyToRead -= length;
|
||||
if (bodyToRead <= 0) {
|
||||
finish();
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -586,32 +551,47 @@ function handleConnection(client) {
|
||||
});
|
||||
}
|
||||
|
||||
var kBacklog = 8;
|
||||
var kHost = "0.0.0.0"
|
||||
let kBacklog = 8;
|
||||
let kHost = "0.0.0.0"
|
||||
|
||||
var socket = new Socket();
|
||||
socket.bind(kHost, tildefriends.http_port).then(function() {
|
||||
var listenResult = socket.listen(kBacklog, function() {
|
||||
socket.accept().then(handleConnection).catch(function(error) {
|
||||
logError("[" + new Date() + "] accept error " + error);
|
||||
let socket = new Socket();
|
||||
socket.bind(kHost, tildefriends.http_port).then(function(port) {
|
||||
print("bound to", port);
|
||||
print("checking", tildefriends.args.out_http_port_file);
|
||||
if (tildefriends.args.out_http_port_file) {
|
||||
print("going to write the file");
|
||||
File.writeFile(tildefriends.args.out_http_port_file, port.toString() + '\n').then(function(r) {
|
||||
print("wrote port file", tildefriends.args.out_http_port_file, r);
|
||||
}).catch(function() {
|
||||
print("failed to write port file");
|
||||
});
|
||||
}
|
||||
let listenResult = socket.listen(kBacklog, async function() {
|
||||
try {
|
||||
let client = await socket.accept();
|
||||
client.noDelay = true;
|
||||
handleConnection(client);
|
||||
} catch (error) {
|
||||
logError("[" + new Date() + "] accept error " + error);
|
||||
}
|
||||
});
|
||||
}).catch(function(error) {
|
||||
logError("[" + new Date() + "] bind error " + error);
|
||||
});
|
||||
|
||||
if (tildefriends.https_port) {
|
||||
var tls = {};
|
||||
var secureSocket = new Socket();
|
||||
let tls = {};
|
||||
let secureSocket = new Socket();
|
||||
secureSocket.bind(kHost, tildefriends.https_port).then(function() {
|
||||
return secureSocket.listen(kBacklog, async function() {
|
||||
try {
|
||||
var client = await secureSocket.accept();
|
||||
let client = await secureSocket.accept();
|
||||
client.noDelay = true;
|
||||
client.tls = true;
|
||||
const kCertificatePath = "data/httpd/certificate.pem";
|
||||
const kPrivateKeyPath = "data/httpd/privatekey.pem";
|
||||
|
||||
var stat = await Promise.all([
|
||||
let stat = await Promise.all([
|
||||
await File.stat(kCertificatePath),
|
||||
await File.stat(kPrivateKeyPath),
|
||||
]);
|
||||
@ -621,8 +601,8 @@ if (tildefriends.https_port) {
|
||||
tls.keyStat.mtime != stat[1].mtime ||
|
||||
tls.keyStat.size != stat[1].size) {
|
||||
print("Reloading " + kCertificatePath + " and " + kPrivateKeyPath);
|
||||
var privateKey = utf8Decode(await File.readFile(kPrivateKeyPath));
|
||||
var certificate = utf8Decode(await File.readFile(kCertificatePath));
|
||||
let privateKey = utf8Decode(await File.readFile(kPrivateKeyPath));
|
||||
let certificate = utf8Decode(await File.readFile(kCertificatePath));
|
||||
|
||||
tls.context = new TlsContext();
|
||||
tls.context.setPrivateKey(privateKey);
|
||||
|
@ -11,8 +11,8 @@
|
||||
<span>😎</span>
|
||||
<a accesskey="h" data-tip="Open home app." href="/" style="color: #fff">Tilde Friends</a>
|
||||
<a accesskey="a" data-tip="Open apps list." href="/~core/apps/">apps</a>
|
||||
<a accesskey="e" data-tip="Toggle the app editor." href="#" onclick="event.preventDefault(); toggleEdit()">edit</a>
|
||||
<a accesskey="p" data-tip="View and change permissions." href="#" onclick="showPermissions()">🎛️</a>
|
||||
<a accesskey="e" data-tip="Toggle the app editor." href="#" id="edit_link">edit</a>
|
||||
<a accesskey="p" data-tip="View and change permissions." href="#" id="show_permissions_link">🎛️</a>
|
||||
<span id="status"></span>
|
||||
<span id="requests"></span>
|
||||
<span id="permissions_settings"></span>
|
||||
@ -22,34 +22,32 @@
|
||||
<div id="content" class="hbox" style="flex: 1 1; width: 100%">
|
||||
<div id="statsPane" class="vbox" style="display: none; flex 1 1">
|
||||
<div class="hbox">
|
||||
<input type="button" id="closeStats" name="closeStats" value="Close" onclick="closeStats()">
|
||||
<input type="button" id="closeStats" name="closeStats" value="Close">
|
||||
</div>
|
||||
<div id="graphs" class="vbox" style="height: 100%"></div>
|
||||
</div>
|
||||
<div id="editPane" class="vbox" style="display: none">
|
||||
<div class="navigation hbox">
|
||||
<input type="button" id="closeEditor" name="closeEditor" value="Close" onclick="closeEditor()">
|
||||
<input type="button" id="save" name="save" value="Save" onclick="save()">
|
||||
<input type="button" id="closeEditor" name="closeEditor" value="Close">
|
||||
<input type="button" id="save" name="save" value="Save">
|
||||
<input type="button" id="icon" name="icon" value="📦">
|
||||
<input type="text" id="name" name="name" style="flex: 1 1; min-width: 1em"></input>
|
||||
<input type="button" id="push_to_parent" value="Push to Parent" onclick="pushToParent()">
|
||||
<input type="button" id="pull_from_parent" value="Pull from Parent" onclick="pullFromParent()">
|
||||
<input type="button" id="revert" name="revert" value="Revert" onclick="revert()">
|
||||
<input type="button" id="delete" name="delete" value="Delete" onclick="deleteApp()">
|
||||
<input type="button" onclick="event.preventDefault(); trace()" value="Trace">
|
||||
<input type="button" onclick="event.preventDefault(); toggleStats()" value="Stats">
|
||||
<input type="button" id="delete" name="delete" value="Delete">
|
||||
<input type="button" id="trace_button" value="Trace">
|
||||
<input type="button" id="stats_button" value="Stats">
|
||||
</div>
|
||||
<div class="hbox" style="height: 100%">
|
||||
<div id="filesPane">
|
||||
<div class="hbox">
|
||||
<span id="files_header">Files</span>
|
||||
<span id="files_hide" onclick="hideFiles()">«</span>
|
||||
<span id="files_show" onclick="showFiles()">»</span>
|
||||
<span id="files_hide">«</span>
|
||||
<span id="files_show">»</span>
|
||||
</div>
|
||||
<div id="files_content">
|
||||
<ul id="files"></ul>
|
||||
<br>
|
||||
<div><button onclick="newFile()">New File</button></div>
|
||||
<div><button onclick="removeFile()">Remove File</button></div>
|
||||
<div><button id="new_file_button">New File</button></div>
|
||||
<div><button id="remove_file_button">Remove File</button></div>
|
||||
</div>
|
||||
</div>
|
||||
<div id="docPane" style="display: flex; flex: 1 1 50%; flex-flow: column">
|
||||
@ -65,6 +63,6 @@
|
||||
</div>
|
||||
<script src="/split/split.min.js"></script>
|
||||
<script src="/smoothie/smoothie.js"></script>
|
||||
<script src="/static/client.js"></script>
|
||||
<script src="/static/client.js" type="module"></script>
|
||||
</body>
|
||||
</html>
|
||||
|
160
core/sha1.js
160
core/sha1.js
@ -1,160 +0,0 @@
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
/* SHA-1 implementation in JavaScript (c) Chris Veness 2002-2014 / MIT Licence */
|
||||
/* */
|
||||
/* - see http://csrc.nist.gov/groups/ST/toolkit/secure_hashing.html */
|
||||
/* http://csrc.nist.gov/groups/ST/toolkit/examples.html */
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
/* jshint node:true *//* global define, escape, unescape */
|
||||
'use strict';
|
||||
|
||||
|
||||
/**
|
||||
* SHA-1 hash function reference implementation.
|
||||
*
|
||||
* @namespace
|
||||
*/
|
||||
var Sha1 = {};
|
||||
|
||||
|
||||
/**
|
||||
* Generates SHA-1 hash of string.
|
||||
*
|
||||
* @param {string} msg - (Unicode) string to be hashed.
|
||||
* @returns {string} Hash of msg as hex character string.
|
||||
*/
|
||||
Sha1.hash = function(msg) {
|
||||
// convert string to UTF-8, as SHA only deals with byte-streams
|
||||
msg = msg.utf8Encode();
|
||||
|
||||
// constants [§4.2.1]
|
||||
var K = [ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 ];
|
||||
|
||||
// PREPROCESSING
|
||||
|
||||
msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1]
|
||||
|
||||
// convert string msg into 512-bit/16-integer blocks arrays of ints [§5.2.1]
|
||||
var l = msg.length/4 + 2; // length (in 32-bit integers) of msg + ‘1’ + appended length
|
||||
var N = Math.ceil(l/16); // number of 16-integer-blocks required to hold 'l' ints
|
||||
var M = new Array(N);
|
||||
|
||||
for (var i=0; i<N; i++) {
|
||||
M[i] = new Array(16);
|
||||
for (var j=0; j<16; j++) { // encode 4 chars per integer, big-endian encoding
|
||||
M[i][j] = (msg.charCodeAt(i*64+j*4)<<24) | (msg.charCodeAt(i*64+j*4+1)<<16) |
|
||||
(msg.charCodeAt(i*64+j*4+2)<<8) | (msg.charCodeAt(i*64+j*4+3));
|
||||
} // note running off the end of msg is ok 'cos bitwise ops on NaN return 0
|
||||
}
|
||||
// add length (in bits) into final pair of 32-bit integers (big-endian) [§5.1.1]
|
||||
// note: most significant word would be (len-1)*8 >>> 32, but since JS converts
|
||||
// bitwise-op args to 32 bits, we need to simulate this by arithmetic operators
|
||||
M[N-1][14] = ((msg.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14]);
|
||||
M[N-1][15] = ((msg.length-1)*8) & 0xffffffff;
|
||||
|
||||
// set initial hash value [§5.3.1]
|
||||
var H0 = 0x67452301;
|
||||
var H1 = 0xefcdab89;
|
||||
var H2 = 0x98badcfe;
|
||||
var H3 = 0x10325476;
|
||||
var H4 = 0xc3d2e1f0;
|
||||
|
||||
// HASH COMPUTATION [§6.1.2]
|
||||
|
||||
var W = new Array(80); var a, b, c, d, e;
|
||||
for (var i=0; i<N; i++) {
|
||||
|
||||
// 1 - prepare message schedule 'W'
|
||||
for (var t=0; t<16; t++) W[t] = M[i][t];
|
||||
for (var t=16; t<80; t++) W[t] = Sha1.ROTL(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);
|
||||
|
||||
// 2 - initialise five working variables a, b, c, d, e with previous hash value
|
||||
a = H0; b = H1; c = H2; d = H3; e = H4;
|
||||
|
||||
// 3 - main loop
|
||||
for (var t=0; t<80; t++) {
|
||||
var s = Math.floor(t/20); // seq for blocks of 'f' functions and 'K' constants
|
||||
var T = (Sha1.ROTL(a,5) + Sha1.f(s,b,c,d) + e + K[s] + W[t]) & 0xffffffff;
|
||||
e = d;
|
||||
d = c;
|
||||
c = Sha1.ROTL(b, 30);
|
||||
b = a;
|
||||
a = T;
|
||||
}
|
||||
|
||||
// 4 - compute the new intermediate hash value (note 'addition modulo 2^32')
|
||||
H0 = (H0+a) & 0xffffffff;
|
||||
H1 = (H1+b) & 0xffffffff;
|
||||
H2 = (H2+c) & 0xffffffff;
|
||||
H3 = (H3+d) & 0xffffffff;
|
||||
H4 = (H4+e) & 0xffffffff;
|
||||
}
|
||||
|
||||
return Sha1.toHexStr(H0) + Sha1.toHexStr(H1) + Sha1.toHexStr(H2) +
|
||||
Sha1.toHexStr(H3) + Sha1.toHexStr(H4);
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Function 'f' [§4.1.1].
|
||||
* @private
|
||||
*/
|
||||
Sha1.f = function(s, x, y, z) {
|
||||
switch (s) {
|
||||
case 0: return (x & y) ^ (~x & z); // Ch()
|
||||
case 1: return x ^ y ^ z; // Parity()
|
||||
case 2: return (x & y) ^ (x & z) ^ (y & z); // Maj()
|
||||
case 3: return x ^ y ^ z; // Parity()
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Rotates left (circular left shift) value x by n positions [§3.2.5].
|
||||
* @private
|
||||
*/
|
||||
Sha1.ROTL = function(x, n) {
|
||||
return (x<<n) | (x>>>(32-n));
|
||||
};
|
||||
|
||||
|
||||
/**
|
||||
* Hexadecimal representation of a number.
|
||||
* @private
|
||||
*/
|
||||
Sha1.toHexStr = function(n) {
|
||||
// note can't use toString(16) as it is implementation-dependant,
|
||||
// and in IE returns signed numbers when used on full words
|
||||
var s="", v;
|
||||
for (var i=7; i>=0; i--) { v = (n>>>(i*4)) & 0xf; s += v.toString(16); }
|
||||
return s;
|
||||
};
|
||||
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
|
||||
|
||||
/** Extend String object with method to encode multi-byte string to utf8
|
||||
* - monsur.hossa.in/2012/07/20/utf-8-in-javascript.html */
|
||||
if (typeof String.prototype.utf8Encode == 'undefined') {
|
||||
String.prototype.utf8Encode = function() {
|
||||
return unescape( encodeURIComponent( this ) );
|
||||
};
|
||||
}
|
||||
|
||||
/** Extend String object with method to decode utf8 string to multi-byte */
|
||||
if (typeof String.prototype.utf8Decode == 'undefined') {
|
||||
String.prototype.utf8Decode = function() {
|
||||
try {
|
||||
return decodeURIComponent( escape( this ) );
|
||||
} catch (e) {
|
||||
return this; // invalid UTF-8? return as-is
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
|
||||
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
|
||||
if (typeof module != 'undefined' && module.exports) module.exports = Sha1; // CommonJs export
|
||||
if (typeof define == 'function' && define.amd) define([], function() { return Sha1; }); // AMD
|
||||
|
||||
export let hash = Sha1.hash;
|
370
core/ssb.js
370
core/ssb.js
@ -1,370 +0,0 @@
|
||||
"use strict";
|
||||
var g_wants_requests = {};
|
||||
var g_database = new Database('core');
|
||||
let g_attendants = {};
|
||||
const k_use_create_history_stream = false;
|
||||
const k_blobs_concurrent_target = 8;
|
||||
const k_settings = JSON.parse(g_database.get('settings') ?? '{"room": true}');
|
||||
|
||||
function following(db, id) {
|
||||
var o = db.get(id + ":following");
|
||||
const k_version = 5;
|
||||
var f = o ? JSON.parse(o) : o;
|
||||
if (!f || f.version != k_version) {
|
||||
f = {users: [], sequence: 0, version: k_version};
|
||||
}
|
||||
f.users = new Set(f.users);
|
||||
ssb.sqlStream(
|
||||
"SELECT "+
|
||||
" sequence, "+
|
||||
" json_extract(content, '$.contact') AS contact, "+
|
||||
" json_extract(content, '$.following') AS following "+
|
||||
"FROM messages "+
|
||||
"WHERE "+
|
||||
" author = ?1 AND "+
|
||||
" sequence > ?2 AND "+
|
||||
" json_extract(content, '$.type') = 'contact' "+
|
||||
"UNION SELECT MAX(sequence) AS sequence, NULL, NULL FROM messages WHERE author = ?1 "+
|
||||
"ORDER BY sequence",
|
||||
[id, f.sequence],
|
||||
function(row) {
|
||||
if (row.following) {
|
||||
f.users.add(row.contact);
|
||||
} else {
|
||||
f.users.delete(row.contact);
|
||||
}
|
||||
f.sequence = row.sequence;
|
||||
});
|
||||
f.users = Array.from(f.users).sort();
|
||||
var j = JSON.stringify(f);
|
||||
if (o != j) {
|
||||
db.set(id + ":following", j);
|
||||
}
|
||||
return f.users;
|
||||
}
|
||||
|
||||
function followingDeep(db, seed_ids, depth) {
|
||||
if (depth <= 0) {
|
||||
return seed_ids;
|
||||
}
|
||||
var f = seed_ids.map(x => following(db, x));
|
||||
var ids = [].concat(...f);
|
||||
var x = followingDeep(db, [...new Set(ids)].sort(), depth - 1);
|
||||
x = [...new Set([].concat(...x, ...seed_ids))].sort();
|
||||
return x;
|
||||
}
|
||||
|
||||
function get_latest_sequence_for_author(author) {
|
||||
var sequence = 0;
|
||||
ssb.sqlStream(
|
||||
'SELECT MAX(sequence) AS sequence FROM messages WHERE author = ?1',
|
||||
[author],
|
||||
function(row) {
|
||||
if (row.sequence) {
|
||||
sequence = row.sequence;
|
||||
}
|
||||
});
|
||||
return sequence;
|
||||
}
|
||||
|
||||
function storeMessage(message) {
|
||||
var payload = message.message.value ? message.message.value : message.message;
|
||||
if (typeof(payload) == 'object') {
|
||||
ssb.storeMessage(payload);
|
||||
}
|
||||
}
|
||||
|
||||
function tunnel_attendants(request) {
|
||||
if (request.message.type !== 'state') {
|
||||
throw Error('Unexpected type: ' + request.message.type);
|
||||
}
|
||||
let state = new Set(request.message.ids);
|
||||
for (let id of state) {
|
||||
request.add_room_attendant(id);
|
||||
}
|
||||
request.more(function attendants(message) {
|
||||
if (message.message.type === 'joined') {
|
||||
request.add_room_attendant(message.message.id);
|
||||
state.add(message.message.id);
|
||||
} else if (message.message.type === 'left') {
|
||||
request.remove_room_attendant(message.message.id);
|
||||
state.delete(message.message.id);
|
||||
} else {
|
||||
throw Error('Unexpected type: ' + message.type);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function send_blobs_create_wants(connection) {
|
||||
connection.send_json({'name': ['blobs', 'createWants'], 'type': 'source', 'args': []}, function on_blob_create_wants(message) {
|
||||
if (message.message?.name === 'Error') {
|
||||
return;
|
||||
}
|
||||
Object.keys(message.message).forEach(function(id) {
|
||||
if (message.message[id] < 0) {
|
||||
if (g_wants_requests[connection.id]) {
|
||||
delete connection.active_blob_wants[id];
|
||||
var blob = ssb.blobGet(id);
|
||||
if (blob) {
|
||||
var out_message = {};
|
||||
out_message[id] = blob.byteLength;
|
||||
g_wants_requests[connection.id].send_json(out_message);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var received_bytes = 0;
|
||||
var expected_bytes = message.message[id];
|
||||
var buffer = new Uint8Array(expected_bytes);
|
||||
connection.send_json({'name': ['blobs', 'get'], 'type': 'source', 'args': [id]}, function(message) {
|
||||
if (message.flags & 0x4 /* end */) {
|
||||
delete connection.active_blob_wants[id];
|
||||
} else {
|
||||
buffer.set(new Uint8Array(message.message, 0, message.message.byteLength), received_bytes);
|
||||
received_bytes += message.message.byteLength;
|
||||
if (received_bytes == expected_bytes) {
|
||||
ssb.blobStore(buffer);
|
||||
}
|
||||
}
|
||||
});
|
||||
if (g_wants_requests[connection.id] && Object.keys(connection.active_blob_wants).length < k_blobs_concurrent_target) {
|
||||
requestMoreBlobs(g_wants_requests[connection.id]);
|
||||
}
|
||||
}
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
ssb.addEventListener('connections', function on_connections_changed(change, connection) {
|
||||
if (change == 'add') {
|
||||
connection.active_blob_wants = {};
|
||||
var sequence = get_latest_sequence_for_author(connection.id);
|
||||
if (k_use_create_history_stream) {
|
||||
connection.send_json({'name': ['createHistoryStream'], 'type': 'source', 'args': [{'id': connection.id, 'seq': sequence, 'live': true, 'keys': false}]}, storeMessage);
|
||||
var identities = ssb.getAllIdentities();
|
||||
followingDeep(g_database, identities, 2).then(function(ids) {
|
||||
for (let id of ids) {
|
||||
if (identities.indexOf(id) != -1) {
|
||||
continue;
|
||||
}
|
||||
var sequence = get_latest_sequence_for_author(id);
|
||||
connection.send_json({'name': ['createHistoryStream'], 'type': 'source', 'args': [{'id': id, 'seq': sequence, 'live': true, 'keys': false}]}, storeMessage);
|
||||
}
|
||||
});
|
||||
} else {
|
||||
if (connection.is_client) {
|
||||
connection.send_json({"name": ["ebt", "replicate"], "args": [{"version": 3, "format": "classic"}], "type": "duplex"}, ebtReplicateClient);
|
||||
|
||||
connection.send_json_async({'name': ['tunnel', 'isRoom'], 'args': []}, function tunnel_is_room(request) {
|
||||
if (request.message) {
|
||||
request.connection.send_json({'name': ['room', 'attendants'], 'args': [], 'type': 'source'}, tunnel_attendants);
|
||||
}
|
||||
});
|
||||
}
|
||||
send_blobs_create_wants(connection);
|
||||
}
|
||||
} else if (change == 'remove') {
|
||||
print('REMOVE', connection.id);
|
||||
notify_attendant_changed(connection.id, 'left');
|
||||
delete g_attendants[connection.id];
|
||||
delete g_wants_requests[connection.id];
|
||||
} else {
|
||||
print('CHANGE', change);
|
||||
}
|
||||
});
|
||||
|
||||
function blob_want_discovered(request, id) {
|
||||
if (!request || !request.connection || Object.keys(request.connection.active_blob_wants).length > k_blobs_concurrent_target) {
|
||||
return;
|
||||
}
|
||||
var message = {};
|
||||
message[id] = -1;
|
||||
request.send_json(message);
|
||||
request.connection.active_blob_wants[id] = true;
|
||||
}
|
||||
|
||||
function requestMoreBlobs(request) {
|
||||
ssb.sqlStream(
|
||||
'SELECT id FROM blob_wants LIMIT ' + k_blobs_concurrent_target,
|
||||
[],
|
||||
row => blob_want_discovered(request, row.id));
|
||||
}
|
||||
|
||||
ssb.addRpc(['blobs', 'createWants'], function(request) {
|
||||
g_wants_requests[request.connection.id] = request;
|
||||
ssb.addEventListener('blob_want_added', id => blob_want_discovered(request, id));
|
||||
requestMoreBlobs(request);
|
||||
});
|
||||
|
||||
ssb.addRpc(['tunnel', 'isRoom'], function(request) {
|
||||
if (k_settings.room) {
|
||||
request.send_json({"name": "tilde friends tunnel", "membership": false, "features": ["tunnel", "room1"]});
|
||||
} else {
|
||||
request.send_json(false);
|
||||
}
|
||||
});
|
||||
|
||||
function notify_attendant_changed(id, type) {
|
||||
if (!id) {
|
||||
print(`notify_attendant_changed called with id=${id}`);
|
||||
return;
|
||||
}
|
||||
for (let r of Object.values(g_attendants)) {
|
||||
try {
|
||||
r.send_json({
|
||||
type: type,
|
||||
id: id,
|
||||
});
|
||||
} catch (e) {
|
||||
print(`Removing ${id} from g_attendants in ${type}.`, e);
|
||||
delete g_attendants[id];
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
ssb.addRpc(['room', 'attendants'], function(request) {
|
||||
let ids = Object.keys(g_attendants).sort();
|
||||
request.send_json({
|
||||
type: 'state',
|
||||
ids: ids,
|
||||
});
|
||||
notify_attendant_changed(request.connection.id, 'joined');
|
||||
g_attendants[request.connection.id] = request;
|
||||
});
|
||||
|
||||
function ebtReplicateSendClock(request, have) {
|
||||
var identities = ssb.getAllIdentities();
|
||||
var message = {};
|
||||
var last_sent = request.connection.sent_clock || {};
|
||||
var ids = followingDeep(g_database, identities, 2).concat([request.connection.id]);
|
||||
if (!Object.keys(last_sent).length) {
|
||||
for (let id of ids) {
|
||||
message[id] = get_latest_sequence_for_author(id);
|
||||
}
|
||||
}
|
||||
for (let id of Object.keys(have)) {
|
||||
if (message[id] === undefined) {
|
||||
var sequence = get_latest_sequence_for_author(id);
|
||||
message[id] = sequence ? sequence : -1;
|
||||
}
|
||||
}
|
||||
|
||||
var to_send = {}
|
||||
var offset = Math.floor(Math.random() * ids.length);
|
||||
for (var i = 0; i < ids.length; i++) {
|
||||
var id = ids[(i + offset) % ids.length];
|
||||
if (last_sent[id] === undefined || message[id] > last_sent[id]) {
|
||||
last_sent[id] = to_send[id] = message[id] === -1 ? -1 : message[id] << 1;
|
||||
}
|
||||
if (Object.keys(to_send).length >= 32) {
|
||||
request.send_json(to_send);
|
||||
to_send = {};
|
||||
}
|
||||
}
|
||||
request.connection.sent_clock = last_sent;
|
||||
|
||||
if (Object.keys(to_send).length) {
|
||||
request.send_json(to_send);
|
||||
}
|
||||
}
|
||||
|
||||
function formatMessage(row) {
|
||||
if (row.sequence_before_author) {
|
||||
return {
|
||||
previous: row.previous,
|
||||
sequence: row.sequence,
|
||||
author: row.author,
|
||||
timestamp: row.timestamp,
|
||||
hash: row.hash,
|
||||
content: JSON.parse(row.content),
|
||||
signature: row.signature,
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
previous: row.previous,
|
||||
author: row.author,
|
||||
sequence: row.sequence,
|
||||
timestamp: row.timestamp,
|
||||
hash: row.hash,
|
||||
content: JSON.parse(row.content),
|
||||
signature: row.signature,
|
||||
};
|
||||
}
|
||||
}
|
||||
|
||||
function ebtReplicateRegisterMessageCallback(request) {
|
||||
ssb.addEventListener('message', function(message_id) {
|
||||
ssb.sqlStream(
|
||||
'SELECT previous, author, id, sequence, timestamp, hash, content, signature FROM messages WHERE id = ?1',
|
||||
[message_id],
|
||||
function (row) {
|
||||
request.send_json(formatMessage(row));
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
function ebtReplicateCommon(request) {
|
||||
if (request.message.author) {
|
||||
storeMessage(request);
|
||||
} else {
|
||||
ebtReplicateSendClock(request, request.message);
|
||||
|
||||
for (let id of Object.keys(request.message)) {
|
||||
if (request.message[id] >= 0 && (request.message[id] & 1) == 0) {
|
||||
ssb.sqlStream(
|
||||
'SELECT previous, author, id, sequence, timestamp, hash, content, signature FROM messages WHERE author = ?1 AND sequence >= ?2 ORDER BY sequence',
|
||||
[id, request.message[id] >> 1],
|
||||
function (row) {
|
||||
request.send_json(formatMessage(row));
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function ebtReplicateClient(request) {
|
||||
if (request.message?.name !== 'Error') {
|
||||
if (!request.connection.message_registered) {
|
||||
ebtReplicateRegisterMessageCallback(request);
|
||||
request.connection.message_registered = true;
|
||||
}
|
||||
ebtReplicateCommon(request);
|
||||
}
|
||||
}
|
||||
|
||||
function ebtReplicateServer(request) {
|
||||
ebtReplicateRegisterMessageCallback(request);
|
||||
ebtReplicateSendClock(request, {});
|
||||
request.more(ebtReplicateCommon);
|
||||
}
|
||||
|
||||
ssb.addRpc(['ebt', 'replicate'], ebtReplicateServer);
|
||||
|
||||
ssb.addRpc(['createHistoryStream'], function(request) {
|
||||
var id = request.args[0].id;
|
||||
var seq = request.args[0].seq;
|
||||
var keys = request.args[0].keys || request.args[0].keys === undefined;
|
||||
function sendMessage(row) {
|
||||
if (keys) {
|
||||
var message = {
|
||||
key: row.id,
|
||||
value: formatMessage(row),
|
||||
timestamp: row.timestamp,
|
||||
};
|
||||
} else {
|
||||
var message = formatMessage(row);
|
||||
}
|
||||
request.send_json(message);
|
||||
}
|
||||
ssb.sqlStream(
|
||||
'SELECT previous, author, id, sequence, timestamp, hash, content, signature, sequence_before_author FROM messages WHERE author = ?1 AND sequence >= ?2 ORDER BY sequence',
|
||||
[id, seq ?? 0],
|
||||
sendMessage);
|
||||
ssb.addEventListener('message', function(message_id) {
|
||||
ssb.sqlStream(
|
||||
'SELECT previous, author, id, sequence, timestamp, hash, content, signature, sequence_before_author FROM messages WHERE id = ?1 AND author = ?2',
|
||||
[message_id, id],
|
||||
function (row) {
|
||||
sendMessage(row);
|
||||
});
|
||||
});
|
||||
});
|
@ -14,7 +14,7 @@ if (k_is_browser) {
|
||||
function make_rpc(target, prop, receiver) {
|
||||
return function() {
|
||||
let id = g_next_id++;
|
||||
while (!id || g_calls[id]) {
|
||||
while (!id || g_calls[id] !== undefined) {
|
||||
id = g_next_id++;
|
||||
}
|
||||
let promise = new Promise(function(resolve, reject) {
|
||||
@ -39,38 +39,35 @@ function send(response) {
|
||||
|
||||
function call_rpc(message) {
|
||||
if (message && message.message === 'tfrpc') {
|
||||
if (message.method) {
|
||||
let method = g_api[message.method];
|
||||
let id = message.id;
|
||||
if (message.method) {
|
||||
if (method) {
|
||||
let response = {message: 'tfrpc', id: message.id};
|
||||
try {
|
||||
Promise.resolve(method(...message.params)).then(function(result) {
|
||||
response.result = result;
|
||||
send(response);
|
||||
send({message: 'tfrpc', id: id, result: result});
|
||||
}).catch(function(error) {
|
||||
response.error = error;
|
||||
send(response);
|
||||
send({message: 'tfrpc', id: id, error: error});
|
||||
});
|
||||
} catch (error) {
|
||||
response.error = error;
|
||||
send(response);
|
||||
send({message: 'tfrpc', id: id, error: error});
|
||||
}
|
||||
} else {
|
||||
throw new Error(message.method + ' not found.');
|
||||
}
|
||||
} else if (message.error !== undefined) {
|
||||
if (g_calls[message.id]) {
|
||||
g_calls[message.id].reject(message.error);
|
||||
delete g_calls[message.id];
|
||||
if (g_calls[id]) {
|
||||
g_calls[id].reject(message.error);
|
||||
delete g_calls[id];
|
||||
} else {
|
||||
throw new Error(message.id + ' not found to reply.');
|
||||
throw new Error(id + ' not found to reply.');
|
||||
}
|
||||
} else {
|
||||
if (g_calls[message.id]) {
|
||||
g_calls[message.id].resolve(message.result);
|
||||
delete g_calls[message.id];
|
||||
if (g_calls[id]) {
|
||||
g_calls[id].resolve(message.result);
|
||||
delete g_calls[id];
|
||||
} else {
|
||||
throw new Error(message.id + ' not found to reply.');
|
||||
throw new Error(id + ' not found to reply.');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
106
deps/base64c/.gitignore
vendored
106
deps/base64c/.gitignore
vendored
@ -1,106 +0,0 @@
|
||||
# Prerequisites
|
||||
*.d
|
||||
|
||||
# Object files
|
||||
*.o
|
||||
*.ko
|
||||
*.obj
|
||||
*.elf
|
||||
|
||||
# Linker output
|
||||
*.ilk
|
||||
*.map
|
||||
*.exp
|
||||
|
||||
# Precompiled Headers
|
||||
*.gch
|
||||
*.pch
|
||||
|
||||
# Libraries
|
||||
*.lib
|
||||
*.a
|
||||
*.la
|
||||
*.lo
|
||||
|
||||
# Shared objects (inc. Windows DLLs)
|
||||
*.dll
|
||||
*.so
|
||||
*.so.*
|
||||
*.dylib
|
||||
|
||||
# Executables
|
||||
*.exe
|
||||
*.out
|
||||
*.app
|
||||
*.i*86
|
||||
*.x86_64
|
||||
*.hex
|
||||
|
||||
# Debug files
|
||||
*.dSYM/
|
||||
*.su
|
||||
*.idb
|
||||
*.pdb
|
||||
|
||||
# Kernel Module Compile Results
|
||||
*.mod*
|
||||
*.cmd
|
||||
.tmp_versions/
|
||||
modules.order
|
||||
Module.symvers
|
||||
Mkfile.old
|
||||
dkms.conf
|
||||
|
||||
# http://www.gnu.org/software/automake
|
||||
Makefile
|
||||
Makefile.in
|
||||
/ar-lib
|
||||
/mdate-sh
|
||||
/py-compile
|
||||
/test-driver
|
||||
/ylwrap
|
||||
|
||||
# http://www.gnu.org/software/autoheader
|
||||
config.h
|
||||
# http://www.gnu.org/software/autoconf
|
||||
|
||||
autom4te.cache
|
||||
/autoscan.log
|
||||
/autoscan-*.log
|
||||
/aclocal.m4
|
||||
/compile
|
||||
/config.guess
|
||||
/config.h.in
|
||||
/config.log
|
||||
/config.status
|
||||
/config.sub
|
||||
/configure
|
||||
/configure.scan
|
||||
/depcomp
|
||||
/install-sh
|
||||
/missing
|
||||
/stamp-h1
|
||||
|
||||
# https://www.gnu.org/software/libtool/
|
||||
|
||||
/ltmain.sh
|
||||
|
||||
# http://www.gnu.org/software/texinfo
|
||||
|
||||
/texinfo.tex
|
||||
|
||||
# http://www.gnu.org/software/m4/
|
||||
|
||||
m4/libtool.m4
|
||||
m4/ltoptions.m4
|
||||
m4/ltsugar.m4
|
||||
m4/ltversion.m4
|
||||
m4/lt~obsolete.m4
|
||||
|
||||
# vim
|
||||
*.swp
|
||||
|
||||
# project specific
|
||||
test/gen
|
||||
test/test[0-9]*
|
||||
test/.deps
|
29
deps/base64c/LICENSE
vendored
29
deps/base64c/LICENSE
vendored
@ -1,29 +0,0 @@
|
||||
BSD 3-Clause License
|
||||
|
||||
Copyright (c) 2018, Sean Hanna
|
||||
All rights reserved.
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions are met:
|
||||
|
||||
* Redistributions of source code must retain the above copyright notice, this
|
||||
list of conditions and the following disclaimer.
|
||||
|
||||
* Redistributions in binary form must reproduce the above copyright notice,
|
||||
this list of conditions and the following disclaimer in the documentation
|
||||
and/or other materials provided with the distribution.
|
||||
|
||||
* Neither the name of the copyright holder 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 THE COPYRIGHT HOLDERS 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 THE COPYRIGHT HOLDER 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.
|
2
deps/base64c/Makefile.am
vendored
2
deps/base64c/Makefile.am
vendored
@ -1,2 +0,0 @@
|
||||
AUTOMAKE_OPTIONS = foreign
|
||||
SUBDIRS = src test
|
60
deps/base64c/README.md
vendored
60
deps/base64c/README.md
vendored
@ -1,60 +0,0 @@
|
||||
# base64c
|
||||
This is primarily just a fork of a base64 decoder from the FreeBSD codebase. It has received a few modifications:
|
||||
* removed all allocations, you are expected to pass in a buffer that has sufficient space and you will get an error (-1) if you run out of space
|
||||
* replaced a dynamically generated lookup table with a hardcoded lookup table
|
||||
* wrote my own unit tests, i'm sure there are tests for freebsd somewhere but i didn't find them
|
||||
|
||||
# Embedding
|
||||
This code is primarily intended to be dropped into an existing code base ( or perhaps using submodules). To do that:
|
||||
|
||||
* grab include/base64c.h
|
||||
* grab src/base64c.h
|
||||
|
||||
# Usage
|
||||
|
||||
Call base64c_encoding_length() to calculate how big a buffer you need to encode a string. It's somewhere around 4 times the size of the input string. This length includes a null terminator.
|
||||
|
||||
```c
|
||||
char input_string[256];
|
||||
|
||||
size_t new_len = base64c_encoding_length( strlen(input_string));
|
||||
|
||||
unsigned char *buffer = (unsigned char*)malloc(new_len);
|
||||
```
|
||||
|
||||
Call base64c_encode() to actually encode your input string as base64. It will write to the buffer and return how many characters were written. If there was an error it will return -1.
|
||||
|
||||
```c
|
||||
size_t output_length = base64c_encode(input_string, strlen(input_string), buffer, new_len);
|
||||
|
||||
if (output_length == -1) {
|
||||
int x = 1/0; // ERROR!
|
||||
}
|
||||
```
|
||||
|
||||
Call base64c_decoding_length() to calculate how big a buffer you need to decode. It comes out to about half the size. This number isn't always exact, but it is close to within a byte or two.
|
||||
|
||||
```c
|
||||
size_t decode_len = base64c_decoding_length( strlen(buffer) );
|
||||
|
||||
unsigned char *decoded = (unsigned char*)malloc( decode_len );
|
||||
```
|
||||
|
||||
Call base64c_decode() to decode an encoded base64 string. It will write to the buffer and return how many characters were written. IF there was an error it will return -1. If the string contains invalid number of characters, or has any characters that are not part of the base64 character set an error will be returned.
|
||||
|
||||
# Building
|
||||
|
||||
You need to bootstrap all the autoconf tools by running ./autogen.sh
|
||||
|
||||
You need to have autoconf installed to do this.
|
||||
|
||||
Once bootstrapped run ./configure
|
||||
|
||||
# Tests
|
||||
|
||||
There are tests in the test/ subfolder. They will be built automatically. There is no special test runner. You can run each of the test cases manually to check whether the code is working properly.
|
||||
|
||||
# References
|
||||
|
||||
(http://web.mit.edu/freebsd/head/contrib/wpa/src/utils/base64.c)
|
||||
(https://github.com/freebsd/freebsd/blob/master/contrib/wpa/src/utils/base64.c)
|
3
deps/base64c/autogen.sh
vendored
3
deps/base64c/autogen.sh
vendored
@ -1,3 +0,0 @@
|
||||
#!/bin/sh
|
||||
|
||||
aclocal && automake --gnu --add-missing && autoconf
|
22
deps/base64c/configure.ac
vendored
22
deps/base64c/configure.ac
vendored
@ -1,22 +0,0 @@
|
||||
# -*- Autoconf -*-
|
||||
# Process this file with autoconf to produce a configure script.
|
||||
BASE64C_VERSION=0.5
|
||||
AC_PREREQ([2.69])
|
||||
AC_INIT(base64c, 0.5, hannasm@gmail.com)
|
||||
AM_INIT_AUTOMAKE(base64c, 0.5)
|
||||
AC_CONFIG_SRCDIR([include/base64c.h])
|
||||
AC_CONFIG_HEADERS([config.h])
|
||||
|
||||
# Checks for programs.
|
||||
AC_PROG_CC
|
||||
|
||||
# Checks for libraries.
|
||||
|
||||
# Checks for header files.
|
||||
|
||||
# Checks for typedefs, structures, and compiler characteristics.
|
||||
AC_TYPE_SIZE_T
|
||||
|
||||
# Checks for library functions.
|
||||
|
||||
AC_OUTPUT(Makefile src/Makefile test/Makefile)
|
42
deps/base64c/include/base64c.h
vendored
42
deps/base64c/include/base64c.h
vendored
@ -1,42 +0,0 @@
|
||||
#ifndef base64cC_H
|
||||
#define base64cC_H
|
||||
|
||||
#include <stddef.h>
|
||||
#include <stdint.h>
|
||||
|
||||
/**
|
||||
* base64c_encoding_length - calculate length to allocate for encode
|
||||
* @len: Length of input string
|
||||
* Returns: number of bytes required to base64c encode, this includes room for '\0' terminator
|
||||
*/
|
||||
size_t base64c_encoding_length(size_t len);
|
||||
|
||||
/**
|
||||
* base64c_decoding_length - calculate length to allocate for decode
|
||||
* @len: Length of (base64 encoded) input string
|
||||
* Returns: maximum number of bytes required to decode
|
||||
*/
|
||||
size_t base64c_decoding_length(size_t inlen);
|
||||
|
||||
/**
|
||||
* base64c_encode - base64c encode
|
||||
* @src: Data to be encoded
|
||||
* @len: Length of the data to be encoded
|
||||
* @out: Mutable output buffer destination, all encoded bytes will be written to the destination
|
||||
* @out_len: length of output buffer
|
||||
* Returns: number of bytes written, or -1 if there was an error
|
||||
*/
|
||||
size_t base64c_encode(const unsigned char *src, size_t len, unsigned char* out, const size_t out_len);
|
||||
|
||||
/**
|
||||
* base64c_decode - base64c decode
|
||||
* @src: Data to be decoded
|
||||
* @len: Length of the data to be decoded
|
||||
* @out_len: Pointer to output length variable
|
||||
* Returns: Allocated buffer of out_len bytes of decoded data,
|
||||
* or %NULL on failure
|
||||
*
|
||||
* Caller is responsible for freeing the returned buffer.
|
||||
*/
|
||||
size_t base64c_decode(const unsigned char *src, size_t len, unsigned char *out, const size_t out_len);
|
||||
#endif
|
3
deps/base64c/src/Makefile.am
vendored
3
deps/base64c/src/Makefile.am
vendored
@ -1,3 +0,0 @@
|
||||
CFLAGS = --pednatic -Wall -stdc99 -O2
|
||||
LDFLAGS =
|
||||
|
139
deps/base64c/src/base64c.c
vendored
139
deps/base64c/src/base64c.c
vendored
@ -1,139 +0,0 @@
|
||||
#include <string.h>
|
||||
#include <stdio.h>
|
||||
|
||||
/*
|
||||
* Base64 encoding/decoding (RFC1341)
|
||||
* Copyright (c) 2005-2011, Jouni Malinen <j@w1.fi>
|
||||
*
|
||||
* This software may be distributed under the terms of the BSD license.
|
||||
* See README for more details.
|
||||
*/
|
||||
static const unsigned char base64c_table[65] =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
|
||||
static const unsigned char base64c_dtable[256] = {
|
||||
/*000*/0x80,/*001*/0x80,/*002*/0x80,/*003*/0x80,/*004*/0x80,/*005*/0x80,/*006*/0x80,/*007*/0x80,/*008*/0x80,/*009*/0x80,/*010*/0x80,/*011*/0x80,/*012*/0x80,/*013*/0x80,/*014*/0x80,/*015*/0x80,/*016*/0x80,/*017*/0x80,/*018*/0x80,/*019*/0x80,
|
||||
/*020*/0x80,/*021*/0x80,/*022*/0x80,/*023*/0x80,/*024*/0x80,/*025*/0x80,/*026*/0x80,/*027*/0x80,/*028*/0x80,/*029*/0x80,/*030*/0x80,/*031*/0x80,/*032*/0x80,/*033*/0x80,/*034*/0x80,/*035*/0x80,/*036*/0x80,/*037*/0x80,/*038*/0x80,/*039*/0x80,
|
||||
/*040*/0x80,/*041*/0x80,/*042*/0x80,/*043*/0x3e,/*044*/0x80,/*045*/0x80,/*046*/0x80,/*047*/0x3f,/*048*/0x34,/*049*/0x35,/*050*/0x36,/*051*/0x37,/*052*/0x38,/*053*/0x39,/*054*/0x3a,/*055*/0x3b,/*056*/0x3c,/*057*/0x3d,/*058*/0x80,/*059*/0x80,
|
||||
/*060*/0x80,/*061*/0x00,/*062*/0x80,/*063*/0x80,/*064*/0x80,/*065*/0x00,/*066*/0x01,/*067*/0x02,/*068*/0x03,/*069*/0x04,/*070*/0x05,/*071*/0x06,/*072*/0x07,/*073*/0x08,/*074*/0x09,/*075*/0x0a,/*076*/0x0b,/*077*/0x0c,/*078*/0x0d,/*079*/0x0e,
|
||||
/*080*/0x0f,/*081*/0x10,/*082*/0x11,/*083*/0x12,/*084*/0x13,/*085*/0x14,/*086*/0x15,/*087*/0x16,/*088*/0x17,/*089*/0x18,/*090*/0x19,/*091*/0x80,/*092*/0x80,/*093*/0x80,/*094*/0x80,/*095*/0x80,/*096*/0x80,/*097*/0x1a,/*098*/0x1b,/*099*/0x1c,
|
||||
/*100*/0x1d,/*101*/0x1e,/*102*/0x1f,/*103*/0x20,/*104*/0x21,/*105*/0x22,/*106*/0x23,/*107*/0x24,/*108*/0x25,/*109*/0x26,/*110*/0x27,/*111*/0x28,/*112*/0x29,/*113*/0x2a,/*114*/0x2b,/*115*/0x2c,/*116*/0x2d,/*117*/0x2e,/*118*/0x2f,/*119*/0x30,
|
||||
/*120*/0x31,/*121*/0x32,/*122*/0x33,/*123*/0x80,/*124*/0x80,/*125*/0x80,/*126*/0x80,/*127*/0x80,/*128*/0x80,/*129*/0x80,/*130*/0x80,/*131*/0x80,/*132*/0x80,/*133*/0x80,/*134*/0x80,/*135*/0x80,/*136*/0x80,/*137*/0x80,/*138*/0x80,/*139*/0x80,
|
||||
/*140*/0x80,/*141*/0x80,/*142*/0x80,/*143*/0x80,/*144*/0x80,/*145*/0x80,/*146*/0x80,/*147*/0x80,/*148*/0x80,/*149*/0x80,/*150*/0x80,/*151*/0x80,/*152*/0x80,/*153*/0x80,/*154*/0x80,/*155*/0x80,/*156*/0x80,/*157*/0x80,/*158*/0x80,/*159*/0x80,
|
||||
/*160*/0x80,/*161*/0x80,/*162*/0x80,/*163*/0x80,/*164*/0x80,/*165*/0x80,/*166*/0x80,/*167*/0x80,/*168*/0x80,/*169*/0x80,/*170*/0x80,/*171*/0x80,/*172*/0x80,/*173*/0x80,/*174*/0x80,/*175*/0x80,/*176*/0x80,/*177*/0x80,/*178*/0x80,/*179*/0x80,
|
||||
/*180*/0x80,/*181*/0x80,/*182*/0x80,/*183*/0x80,/*184*/0x80,/*185*/0x80,/*186*/0x80,/*187*/0x80,/*188*/0x80,/*189*/0x80,/*190*/0x80,/*191*/0x80,/*192*/0x80,/*193*/0x80,/*194*/0x80,/*195*/0x80,/*196*/0x80,/*197*/0x80,/*198*/0x80,/*199*/0x80,
|
||||
/*200*/0x80,/*201*/0x80,/*202*/0x80,/*203*/0x80,/*204*/0x80,/*205*/0x80,/*206*/0x80,/*207*/0x80,/*208*/0x80,/*209*/0x80,/*210*/0x80,/*211*/0x80,/*212*/0x80,/*213*/0x80,/*214*/0x80,/*215*/0x80,/*216*/0x80,/*217*/0x80,/*218*/0x80,/*219*/0x80,
|
||||
/*220*/0x80,/*221*/0x80,/*222*/0x80,/*223*/0x80,/*224*/0x80,/*225*/0x80,/*226*/0x80,/*227*/0x80,/*228*/0x80,/*229*/0x80,/*230*/0x80,/*231*/0x80,/*232*/0x80,/*233*/0x80,/*234*/0x80,/*235*/0x80,/*236*/0x80,/*237*/0x80,/*238*/0x80,/*239*/0x80,
|
||||
/*240*/0x80,/*241*/0x80,/*242*/0x80,/*243*/0x80,/*244*/0x80,/*245*/0x80,/*246*/0x80,/*247*/0x80,/*248*/0x80,/*249*/0x80,/*250*/0x80,/*251*/0x80,/*252*/0x80,/*253*/0x80,/*254*/0x80,/*255*/0x00,
|
||||
};
|
||||
|
||||
size_t base64c_encoding_length(size_t len) {
|
||||
size_t olen = len * 4 / 3 + 4; /* 3-byte blocks to 4-byte */
|
||||
olen++; /* nul termination */
|
||||
if (olen < len)
|
||||
return 0; /* integer overflow */
|
||||
return olen;
|
||||
}
|
||||
|
||||
size_t base64c_encode(const unsigned char *src, size_t len,
|
||||
unsigned char* out, const size_t out_len)
|
||||
{
|
||||
unsigned char *pos;
|
||||
const unsigned char *end, *in;
|
||||
const unsigned char *out_end = out + out_len;
|
||||
|
||||
end = src + len;
|
||||
in = src;
|
||||
pos = out;
|
||||
|
||||
if (out_len < base64c_encoding_length(len)) { return -1; }
|
||||
|
||||
while (end - in >= 3 ) {
|
||||
*pos++ = base64c_table[in[0] >> 2];
|
||||
*pos++ = base64c_table[((in[0] & 0x03) << 4) | (in[1] >> 4)];
|
||||
*pos++ = base64c_table[((in[1] & 0x0f) << 2) | (in[2] >> 6)];
|
||||
*pos++ = base64c_table[in[2] & 0x3f];
|
||||
in += 3;
|
||||
}
|
||||
|
||||
if (end - in) {
|
||||
*pos++ = base64c_table[in[0] >> 2];
|
||||
|
||||
if (end - in == 1) {
|
||||
*pos++ = base64c_table[(in[0] & 0x03) << 4];
|
||||
*pos++ = '=';
|
||||
} else {
|
||||
*pos++ = base64c_table[((in[0] & 0x03) << 4) | (in[1] >> 4)];
|
||||
*pos++ = base64c_table[(in[1] & 0x0f) << 2];
|
||||
}
|
||||
*pos++ = '=';
|
||||
}
|
||||
|
||||
*pos = '\0';
|
||||
|
||||
return out_len - (out_end-pos);
|
||||
}
|
||||
|
||||
size_t base64c_decoding_length(size_t inlen) {
|
||||
return inlen / 4 * 3;
|
||||
}
|
||||
|
||||
size_t base64c_decode(const unsigned char *src, size_t len, unsigned char *out, const size_t out_len)
|
||||
{
|
||||
if (out == NULL) { return 0; }
|
||||
if (out_len <= 0) { return 0; }
|
||||
|
||||
unsigned char *pos, block[4], tmp;
|
||||
size_t i, count;
|
||||
int pad = 0;
|
||||
|
||||
if (len == 0 ){
|
||||
*out = '\0';
|
||||
return 1;
|
||||
}
|
||||
if (len % 4) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
pos = out;
|
||||
count = 0;
|
||||
for (i = 0; i < len; i++) {
|
||||
if (src[i] == '=') { pad++; }
|
||||
tmp = base64c_dtable[src[i]];
|
||||
|
||||
if (tmp == 0x80) { return -1; }
|
||||
|
||||
block[count] = tmp;
|
||||
count++;
|
||||
if (count == 4) {
|
||||
switch (pad) {
|
||||
case 0:
|
||||
if ((pos - out) + 3 > out_len) {
|
||||
return -1;
|
||||
}
|
||||
*pos++ = (block[0] << 2) | (block[1] >> 4);
|
||||
*pos++ = (block[1] << 4) | (block[2] >> 2);
|
||||
*pos++ = (block[2] << 6) | block[3];
|
||||
break;
|
||||
case 1:
|
||||
if ((pos - out) + 2 > out_len || i + 1 > len) {
|
||||
return -1;
|
||||
}
|
||||
*pos++ = (block[0] << 2) | (block[1] >> 4);
|
||||
*pos++ = (block[1] << 4) | (block[2] >> 2);
|
||||
break;
|
||||
case 2:
|
||||
if ((pos - out) + 1 > out_len || i + 1 > len) {
|
||||
return -1;
|
||||
}
|
||||
*pos++ = (block[0] << 2) | (block[1] >> 4);
|
||||
break;
|
||||
default:
|
||||
break;
|
||||
}
|
||||
count = 0;
|
||||
}
|
||||
}
|
||||
|
||||
return pos - out;
|
||||
}
|
16
deps/base64c/test/Makefile.am
vendored
16
deps/base64c/test/Makefile.am
vendored
@ -1,16 +0,0 @@
|
||||
CFLAGS = --pedantic -Wall -std=c99 -g -ggdb
|
||||
LDFLAGS =
|
||||
|
||||
bin_PROGRAMS = test001 test002 test003 test004 \
|
||||
test005 test006 test007 test008 \
|
||||
gen
|
||||
|
||||
test001_SOURCES = test001.c ../src/base64c.c
|
||||
test002_SOURCES = test002.c ../src/base64c.c
|
||||
test003_SOURCES = test003.c ../src/base64c.c
|
||||
test004_SOURCES = test004.c ../src/base64c.c
|
||||
test005_SOURCES = test005.c ../src/base64c.c
|
||||
test006_SOURCES = test006.c ../src/base64c.c
|
||||
test007_SOURCES = test007.c ../src/base64c.c
|
||||
test008_SOURCES = test008.c ../src/base64c.c
|
||||
gen_SOURCES = gen.c
|
22
deps/base64c/test/gen.c
vendored
22
deps/base64c/test/gen.c
vendored
@ -1,22 +0,0 @@
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
static const unsigned char base64_table[65] =
|
||||
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
|
||||
|
||||
int main() {
|
||||
unsigned char out[256];
|
||||
|
||||
memset(out, 0x80, 255);
|
||||
for (int i = 0; i < 64; i++) {
|
||||
out[base64_table[i]] = i;
|
||||
}
|
||||
out['='] = 0;
|
||||
|
||||
printf("static const unsigned char base64c_dtable[256] = {");
|
||||
for (int i = 0; i < 256; i++) {
|
||||
if (i% 20==0) { printf("\n"); }
|
||||
printf("/*%03d*/0x%02x,", i, out[i]);
|
||||
}
|
||||
printf("\n};");
|
||||
}
|
36
deps/base64c/test/test001.c
vendored
36
deps/base64c/test/test001.c
vendored
@ -1,36 +0,0 @@
|
||||
#include "../include/base64c.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
unsigned char in[12] = "Hello World";
|
||||
size_t in_len = 11;
|
||||
unsigned char enc[32];
|
||||
size_t enc_len = 32;
|
||||
unsigned char out[12];
|
||||
size_t out_len = 12;
|
||||
|
||||
printf("Encoding %lu - %s\n", in_len, in);
|
||||
|
||||
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
|
||||
|
||||
printf("Encoded %lu - %s\n", enc_result, enc);
|
||||
|
||||
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
|
||||
|
||||
if ((long)dec_result < 0) {
|
||||
printf("Decode failed with code %ld\n", (long)dec_result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Decoded %lu - %s\n", dec_result, out);
|
||||
|
||||
if (dec_result != in_len) {
|
||||
printf("in length %ld not equal to out length %ld", in_len, dec_result);
|
||||
return 3;
|
||||
}
|
||||
if (strncmp((char*)in, (char*)out, in_len)) {
|
||||
printf("roundtrip encoding failed\n");
|
||||
return 2;
|
||||
}
|
||||
}
|
37
deps/base64c/test/test002.c
vendored
37
deps/base64c/test/test002.c
vendored
@ -1,37 +0,0 @@
|
||||
#include "../include/base64c.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
unsigned char in[11] = "Hello Worl";
|
||||
size_t in_len = 10;
|
||||
unsigned char enc[32];
|
||||
size_t enc_len = 32;
|
||||
unsigned char out[12];
|
||||
size_t out_len = 12;
|
||||
|
||||
printf("Encoding %lu - %s\n", in_len, in);
|
||||
|
||||
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
|
||||
|
||||
printf("Encoded %lu - %s\n", enc_result, enc);
|
||||
|
||||
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
|
||||
|
||||
if ((long)dec_result < 0) {
|
||||
printf("Decode failed with code %ld\n", (long)dec_result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Decoded %lu - %s\n", dec_result, out);
|
||||
|
||||
if (dec_result != in_len) {
|
||||
printf("in length %ld not equal to out length %ld", in_len, dec_result);
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (strncmp((char*)in, (char*)out, in_len)) {
|
||||
printf("roundtrip encoding failed\n");
|
||||
return 2;
|
||||
}
|
||||
}
|
37
deps/base64c/test/test003.c
vendored
37
deps/base64c/test/test003.c
vendored
@ -1,37 +0,0 @@
|
||||
#include "../include/base64c.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
unsigned char in[10] = "Hello Wor";
|
||||
size_t in_len = 9;
|
||||
unsigned char enc[32];
|
||||
size_t enc_len = 32;
|
||||
unsigned char out[12];
|
||||
size_t out_len = 12;
|
||||
|
||||
printf("Encoding %lu - %s\n", in_len, in);
|
||||
|
||||
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
|
||||
|
||||
printf("Encoded %lu - %s\n", enc_result, enc);
|
||||
|
||||
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
|
||||
|
||||
if ((long)dec_result < 0) {
|
||||
printf("Decode failed with code %ld\n", (long)dec_result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Decoded %lu - %s\n", dec_result, out);
|
||||
|
||||
if (dec_result != in_len) {
|
||||
printf("in length %ld not equal to out length %ld", in_len, dec_result);
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (strncmp((char*)in, (char*)out, in_len)) {
|
||||
printf("roundtrip encoding failed\n");
|
||||
return 2;
|
||||
}
|
||||
}
|
37
deps/base64c/test/test004.c
vendored
37
deps/base64c/test/test004.c
vendored
@ -1,37 +0,0 @@
|
||||
#include "../include/base64c.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
unsigned char in[10] = "Hello Wo";
|
||||
size_t in_len = 8;
|
||||
unsigned char enc[32];
|
||||
size_t enc_len = 32;
|
||||
unsigned char out[12];
|
||||
size_t out_len = 12;
|
||||
|
||||
printf("Encoding %lu - %s\n", in_len, in);
|
||||
|
||||
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
|
||||
|
||||
printf("Encoded %lu - %s\n", enc_result, enc);
|
||||
|
||||
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
|
||||
|
||||
if ((long)dec_result < 0) {
|
||||
printf("Decode failed with code %ld\n", (long)dec_result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Decoded %lu - %s\n", dec_result, out);
|
||||
|
||||
if (dec_result != in_len) {
|
||||
printf("in length %ld not equal to out length %ld", in_len, dec_result);
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (strncmp((char*)in, (char*)out, in_len)) {
|
||||
printf("roundtrip encoding failed\n");
|
||||
return 2;
|
||||
}
|
||||
}
|
36
deps/base64c/test/test005.c
vendored
36
deps/base64c/test/test005.c
vendored
@ -1,36 +0,0 @@
|
||||
#include "../include/base64c.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
unsigned char in[13] = "Hello Worlds";
|
||||
size_t in_len = 12;
|
||||
unsigned char enc[32];
|
||||
size_t enc_len = 32;
|
||||
unsigned char out[13];
|
||||
size_t out_len = 13;
|
||||
|
||||
printf("Encoding %lu - %s\n", in_len, in);
|
||||
|
||||
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
|
||||
|
||||
printf("Encoded %lu - %s\n", enc_result, enc);
|
||||
|
||||
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
|
||||
|
||||
if ((long)dec_result < 0) {
|
||||
printf("Decode failed with code %ld\n", (long)dec_result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Decoded %lu - %s\n", dec_result, out);
|
||||
|
||||
if (dec_result != in_len) {
|
||||
printf("in length %ld not equal to out length %ld", in_len, dec_result);
|
||||
return 3;
|
||||
}
|
||||
if (strncmp((char*)in, (char*)out, in_len)) {
|
||||
printf("roundtrip encoding failed\n");
|
||||
return 2;
|
||||
}
|
||||
}
|
36
deps/base64c/test/test006.c
vendored
36
deps/base64c/test/test006.c
vendored
@ -1,36 +0,0 @@
|
||||
#include "../include/base64c.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
unsigned char in[14] = "Hello Worldsy";
|
||||
size_t in_len = 13;
|
||||
unsigned char enc[32];
|
||||
size_t enc_len = 32;
|
||||
unsigned char out[15];
|
||||
size_t out_len = 15;
|
||||
|
||||
printf("Encoding %lu - %s\n", in_len, in);
|
||||
|
||||
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
|
||||
|
||||
printf("Encoded %lu - %s\n", enc_result, enc);
|
||||
|
||||
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
|
||||
|
||||
if ((long)dec_result < 0) {
|
||||
printf("Decode failed with code %ld\n", (long)dec_result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Decoded %lu - %s\n", dec_result, out);
|
||||
|
||||
if (dec_result != in_len) {
|
||||
printf("in length %ld not equal to out length %ld", in_len, dec_result);
|
||||
return 3;
|
||||
}
|
||||
if (strncmp((char*)in, (char*)out, in_len)) {
|
||||
printf("roundtrip encoding failed\n");
|
||||
return 2;
|
||||
}
|
||||
}
|
36
deps/base64c/test/test007.c
vendored
36
deps/base64c/test/test007.c
vendored
@ -1,36 +0,0 @@
|
||||
#include "../include/base64c.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
unsigned char in[15] = "Hello World of";
|
||||
size_t in_len = 14;
|
||||
unsigned char enc[32];
|
||||
size_t enc_len = 32;
|
||||
unsigned char out[15];
|
||||
size_t out_len = 15;
|
||||
|
||||
printf("Encoding %lu - %s\n", in_len, in);
|
||||
|
||||
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
|
||||
|
||||
printf("Encoded %lu - %s\n", enc_result, enc);
|
||||
|
||||
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
|
||||
|
||||
if ((long)dec_result < 0) {
|
||||
printf("Decode failed with code %ld\n", (long)dec_result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Decoded %lu - %s\n", dec_result, out);
|
||||
|
||||
if (dec_result != in_len) {
|
||||
printf("in length %ld not equal to out length %ld", in_len, dec_result);
|
||||
return 3;
|
||||
}
|
||||
if (strncmp((char*)in, (char*)out, in_len)) {
|
||||
printf("roundtrip encoding failed\n");
|
||||
return 2;
|
||||
}
|
||||
}
|
37
deps/base64c/test/test008.c
vendored
37
deps/base64c/test/test008.c
vendored
@ -1,37 +0,0 @@
|
||||
#include "../include/base64c.h"
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
|
||||
int main(int argc, char *argv[]) {
|
||||
unsigned char in[10] = "H";
|
||||
size_t in_len = 1;
|
||||
unsigned char enc[32];
|
||||
size_t enc_len = 32;
|
||||
unsigned char out[12];
|
||||
size_t out_len = 12;
|
||||
|
||||
printf("Encoding %lu - %s\n", in_len, in);
|
||||
|
||||
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
|
||||
|
||||
printf("Encoded %lu - %s\n", enc_result, enc);
|
||||
|
||||
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
|
||||
|
||||
if ((long)dec_result < 0) {
|
||||
printf("Decode failed with code %ld\n", (long)dec_result);
|
||||
return 1;
|
||||
}
|
||||
|
||||
printf("Decoded %lu - %s\n", dec_result, out);
|
||||
|
||||
if (dec_result != in_len) {
|
||||
printf("in length %ld not equal to out length %ld", in_len, dec_result);
|
||||
return 3;
|
||||
}
|
||||
|
||||
if (strncmp((char*)in, (char*)out, in_len)) {
|
||||
printf("roundtrip encoding failed\n");
|
||||
return 2;
|
||||
}
|
||||
}
|
68
deps/libsodium/.github/workflows/ci.yml
vendored
68
deps/libsodium/.github/workflows/ci.yml
vendored
@ -12,13 +12,14 @@ jobs:
|
||||
tcc:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Update packages list
|
||||
run: sudo apt-get update
|
||||
|
||||
- name: Install dependencies
|
||||
run: sudo apt-get install -y build-essential libtool autoconf automake tcc
|
||||
run: |
|
||||
sudo apt-get install -y build-essential libtool autoconf automake tcc
|
||||
|
||||
- name: Autogen
|
||||
run: ./autogen.sh -s
|
||||
@ -31,10 +32,40 @@ jobs:
|
||||
make uninstall
|
||||
make distclean
|
||||
|
||||
zig:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Update packages list
|
||||
run: sudo apt-get update
|
||||
|
||||
- name: Install dependencies
|
||||
run: |
|
||||
curl -sL -o - https://ziglang.org/download/0.10.1/zig-linux-x86_64-0.10.1.tar.xz | tar xJ -f - -C /opt/
|
||||
sudo mv /opt/zig-* /opt/zig
|
||||
|
||||
- name: Autogen
|
||||
run: ./autogen.sh -s
|
||||
|
||||
- name: Compilation with zig
|
||||
run: |
|
||||
export PATH=/opt/zig:$PATH
|
||||
zig build
|
||||
zig build -Dtarget=x86_64-linux
|
||||
zig build -Dtarget=aarch64-linux
|
||||
zig build -Dtarget=x86_64-windows
|
||||
zig build -Dtarget=aarch64-windows
|
||||
zig build -Dtarget=x86_64-macos
|
||||
zig build -Dtarget=aarch64-macos
|
||||
zig build -Dtarget=wasm32-wasi
|
||||
zig build -Drelease-fast
|
||||
rm -fr zig-cache zig-out
|
||||
|
||||
regular:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Update packages list
|
||||
run: sudo apt-get update
|
||||
@ -63,7 +94,7 @@ jobs:
|
||||
check-globals:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Update packages list
|
||||
run: sudo apt-get update
|
||||
@ -81,7 +112,7 @@ jobs:
|
||||
other-comp:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Update packages list
|
||||
run: sudo apt-get update
|
||||
@ -107,7 +138,7 @@ jobs:
|
||||
other-arch:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Update packages list
|
||||
run: sudo apt-get update
|
||||
@ -123,3 +154,28 @@ jobs:
|
||||
env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --host=powerpc-linux-gnu
|
||||
make -j $(nproc)
|
||||
make clean > /dev/null
|
||||
|
||||
android:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v3
|
||||
|
||||
- name: Update packages list
|
||||
run: sudo apt-get update
|
||||
|
||||
- name: Install base dependencies
|
||||
run: sudo apt-get install -y libtool autoconf automake unzip
|
||||
|
||||
- name: Autogen
|
||||
run: ./autogen.sh -s
|
||||
|
||||
- name: Install Android NDK
|
||||
run: |
|
||||
mkdir /tmp/android && cd /tmp/android
|
||||
curl -o ndk.zip -L https://dl.google.com/android/repository/android-ndk-r25b-linux.zip
|
||||
unzip ndk.zip && rm -f *.zip && mv android-ndk* ndk
|
||||
|
||||
- name: Android compilation
|
||||
run: |
|
||||
env ANDROID_NDK_HOME=/tmp/android/ndk ./dist-build/android-x86.sh
|
||||
env ANDROID_NDK_HOME=/tmp/android/ndk ./dist-build/android-armv8-a.sh
|
||||
|
@ -12,12 +12,12 @@ jobs:
|
||||
|
||||
steps:
|
||||
- name: Checkout repository
|
||||
uses: actions/checkout@v2
|
||||
uses: actions/checkout@v3
|
||||
with:
|
||||
fetch-depth: 2
|
||||
|
||||
- name: Initialize CodeQL
|
||||
uses: github/codeql-action/init@v1
|
||||
uses: github/codeql-action/init@v2
|
||||
with:
|
||||
languages: cpp
|
||||
|
||||
@ -27,4 +27,4 @@ jobs:
|
||||
make -j $(nproc) check
|
||||
|
||||
- name: Perform CodeQL Analysis
|
||||
uses: github/codeql-action/analyze@v1
|
||||
uses: github/codeql-action/analyze@v2
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user