210 Commits

Author SHA1 Message Date
fc3dd84122 Let's release 0.0.9.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4365 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-27 00:00:53 +00:00
9239441d73 Fixed duplicate tags.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4364 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-26 23:56:40 +00:00
b984811851 Don't shutdown the client side of an HTTP request after sending it. Some servers don't like that.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4363 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-23 01:23:44 +00:00
1c52446331 Use picohttpparser for responses, too.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4362 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-23 01:12:11 +00:00
b6dffa8e66 Actually return the blob ID from store.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4361 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-22 01:33:28 +00:00
315d650d27 Same bug twice.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4360 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-22 01:33:06 +00:00
07c121044a Fix a crash uploading blobs.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4359 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-22 01:24:58 +00:00
f3169afcf5 Do a silly thing to show dependency versions.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4358 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-20 05:15:44 +00:00
c371fc2a8e Fixed multiple trace problems.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4357 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-20 05:06:15 +00:00
6889e11fd1 Minor cleanup. Missing traces.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4356 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-20 02:20:38 +00:00
fb73fd0afc Make storing messages async. Phew.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4355 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-20 01:02:50 +00:00
6fcebd7a08 Nope, do the thing from the right thread.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4354 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-19 00:58:20 +00:00
15ea62a546 Trace all the async things.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4353 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-18 23:56:20 +00:00
b0cd58f5aa Make blob store actually not block the main thread.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4352 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-18 23:46:15 +00:00
7fe8f66fd3 Yikes. I broke appending?
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4351 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-18 00:59:25 +00:00
68ca99e9d9 Remove some unnecessary code.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4350 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-18 00:52:08 +00:00
a2542c658b Better tag enumerating.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4349 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-16 23:41:41 +00:00
eb203c7e62 Don't put a JWT in core.user.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4348 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-16 22:03:47 +00:00
6ef466f3ed Fixed enough thing sto be able to authenticate and get data from Strava.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4347 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-16 21:04:48 +00:00
5074246462 Listening on IPv6 + IPv4 by default.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4346 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-16 14:04:45 +00:00
73bbcebddb Brushing off enough dust to be able to initiate HTTP requests from the server.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4345 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-15 01:48:36 +00:00
18128303b6 Appending a message produces the ID. And bump the version.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4344 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-13 00:20:12 +00:00
c4a2d790a3 Expose creds to request handlers.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4343 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-13 00:00:41 +00:00
c1ec150696 SHA256 was sticking out on a profile, so don't unnecessarily hold the DB writer while we're doing that.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4342 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-08 13:43:44 +00:00
f4b856df15 Expose parsed query args to request handlers.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4341 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-08 13:33:34 +00:00
85b87553dd Avoid SQL logic error in blob replication.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4340 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-07 12:08:14 +00:00
5decdf3afa Better tags query.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4339 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-06 00:37:16 +00:00
a4acee4939 Fix a stall where we would process one scheduled task and then leave the rest until we wake up again from network traffic.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4338 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-06 00:35:39 +00:00
d06aea2831 Expose versions of dependencies.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4337 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-05 01:06:59 +00:00
ae0a8b0a33 libuv 1.46.0.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4336 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-07-04 00:24:48 +00:00
f0452704a1 speedscope-1.15.2.zip
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4335 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-29 00:25:25 +00:00
b8b1f1ba80 Confused by this message. Add more context.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4334 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-29 00:17:32 +00:00
caf7478da4 Ugg, release .apk pls.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4333 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-28 23:29:56 +00:00
0e40ba78a4 Update lit to 2.7.5, and make building the .apk part of the release.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4332 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-28 23:28:59 +00:00
d1eac6c9eb Hook up android version numbers, too.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4331 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-28 23:23:29 +00:00
8f5201b2bc Show a version number in the UI. Automate things so that the version number originates from the Makefile. Get ready for 0.0.8.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4330 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-28 23:00:34 +00:00
6022001d66 Primitive display of recent channels/tags and the same on messages.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4329 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-22 00:27:27 +00:00
f018c367ed Don't automatically add mentions for incomplete &/@/% links.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4328 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-17 14:30:17 +00:00
48c47f097a This seems to fix losing sizes when attaching files.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4327 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-17 14:23:32 +00:00
39ac215b5a Store blobs from the worker threads. Let's see if this is a good idea.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4326 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-17 14:05:23 +00:00
7d562ce85c Allow the DB writer to be used from a worker thread. Not well tested, just still trying to charge forward on moving all blocking work off the main thread.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4325 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-15 00:27:49 +00:00
51b317233a First rough-out of a mentions tab in the SSB app.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4324 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-14 22:51:58 +00:00
87ce715011 This appears to let me shrink the sparkline graphs. Freaking CSS.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4323 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-14 22:23:22 +00:00
ef5afc1e23 Minor cleanup while pondering syncing faster.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4322 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-14 21:59:04 +00:00
486212f22a Fix expanding messages on the search tab. Maybe this should happen at another level.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4321 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-14 16:39:08 +00:00
0e8867dd6e Attempt to tie subprocess lifetime to the android activity.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4320 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-08 00:51:34 +00:00
ca28b5ca82 Delete some code that doesn't need to exist.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4319 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-01 22:53:44 +00:00
19e26c1759 Support setting publicWebHosting, and kill some unused code.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4318 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-06-01 22:21:14 +00:00
790f6643a4 Mostly fumbling with error handling.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4317 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-27 16:51:56 +00:00
2158ad3c0b sqlStream => sqlAsync
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4316 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-24 00:10:05 +00:00
d904d8922f Oops, no verbose.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4315 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-23 23:36:21 +00:00
da50792500 Avoid chunked content encoding. Some WebViewClient debugging. Doesn't go to a blank screen on android so much.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4314 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-23 23:26:07 +00:00
b4629acc48 Ugg. libuv and io_uring and android: https://github.com/libuv/libuv/issues/4010.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4313 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-23 23:06:59 +00:00
0cf4118330 Remove Socket.info.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4312 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-23 22:47:25 +00:00
dd61a6ecc3 Report which method was not found.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4311 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-23 22:16:07 +00:00
8e6f1284e1 Show the edit pane before it finishes loading so that it's more clear it's working.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4310 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-23 22:03:17 +00:00
813d3cd492 Lit Element 2.7.4.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4309 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-21 21:46:32 +00:00
f421606e21 libuv 1.45.0, #include cleanup, probably something else.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4308 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-21 21:36:51 +00:00
1ccb9183b4 Don't mess with websockets when we're returning a document from an app's handler.js.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4307 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-19 19:57:40 +00:00
7d9b627f37 Report attempts to call tfrpc methods that aren't registered.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4306 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-19 19:47:33 +00:00
3038138909 This is a sketch of a setup that allows apps to produce sandboxed dynamic content without all the iframe/websocket business.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4305 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-17 20:22:13 +00:00
2ca08d21e4 I broke magic byte detection, and missed some Content-Security-Policy opportunities.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4304 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-17 18:57:56 +00:00
478e96fc5f Just moving HTTP code around.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4303 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-17 18:35:58 +00:00
e237c7ea1d Remove valgrind hooks. In this house, we use asan and custom allocators. Smaller.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4302 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-17 18:24:10 +00:00
bf9ff088fd Handle unsuccessfully decrypted messages, too.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4301 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-17 16:57:43 +00:00
e073ebedd1 sqlite-amalgamation-3420000.zip
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4300 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-17 14:15:29 +00:00
10d4ae7dcc Decrypt messages in the ssb app.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4299 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-17 14:10:49 +00:00
5b8bdbb3e4 Today I discovered the "Content-Security-Policy: sandbox" header.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4298 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-14 19:46:01 +00:00
c807e21c6b Don't let browsers render untrusted HTML or SVG outside of the iframe. Do let them fetch JS and such.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4297 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-14 19:31:45 +00:00
cc92d0e316 Simplify magic bytes lookup slightly.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4296 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-14 18:47:19 +00:00
09c396d5a3 Default the files panel to expanded.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4295 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-14 18:05:28 +00:00
bc5bbca951 Remove importing and export from the ssb app. I like it better as the separate sneaker app.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4294 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-14 18:02:56 +00:00
ed4faedcd7 Report some information when importing messages and discover an old verification bug.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4293 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-11 00:22:42 +00:00
251556ebed Sneakernet, here we come.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4292 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-10 23:52:46 +00:00
1324afb459 Zip export still had stringified content.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4291 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-10 01:52:34 +00:00
1119804fc2 Whitespace.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4290 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-10 01:47:58 +00:00
cdf6440197 Uncommit unintended part of previous change.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4289 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-10 01:47:20 +00:00
8727fe00af Return something from ssb.storeMessage.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4288 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-10 01:45:37 +00:00
7da7890bb6 Work in progress zip import/export.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4287 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-10 01:30:15 +00:00
706bd2c51f Save some space + more deterministic with relative paths for debug info.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4286 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-04 00:44:32 +00:00
acabec940e Make emojis.json much smaller.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4285 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-04 00:32:50 +00:00
470b998b61 Add a vector launcher icon. Currently the smiling face with sunglasses emoji from openmoji.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4284 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-04 00:04:43 +00:00
80fad05f23 Show latest value on the spark line graphs.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4283 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-03 23:37:02 +00:00
07a912fb9a Files pane => lit.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4282 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-03 23:12:34 +00:00
e9d83262c4 Sparkline graph tweaks. Minor cleanup.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4281 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-03 22:47:00 +00:00
74323c22f9 I think this lets me load more pages.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4280 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-03 22:32:21 +00:00
2614e89b1b Actually update to lit 2.7.3.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4279 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-02 16:50:26 +00:00
e092fe1399 Updated lit, starting to improve the display of mentions during editing, . to refresh, and probably some other things.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4278 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-05-02 16:47:27 +00:00
9cbe895cb8 Exclude .map files from the APK to squeeze them under the blob size limit.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4277 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-30 13:24:01 +00:00
b0b0f74e83 Eek out a little more space on Android.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4276 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-30 12:17:13 +00:00
d9eaa92c37 Messing with graph sizing.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4275 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-30 12:00:50 +00:00
566d07117e Fix the android build.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4274 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-30 11:48:16 +00:00
2bffdb1168 Thought I had a fundamental UDP broadcast problem, but it was just bad setup in the test.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4273 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-30 03:18:12 +00:00
1359b48c9f Turn on -Wdouble-promotion. Why not.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4272 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-30 03:00:57 +00:00
a69fb5eeac I think this fixes posting.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4271 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-30 00:56:59 +00:00
38e313350e Trying to make the navigation bar resize right, but CSS doesn't like me.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4270 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-29 20:49:06 +00:00
5052dc04f2 Added spark line emojis and fixed some things about their rendering.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4269 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-29 19:46:33 +00:00
9ef3a3aca0 An experiment: Always show some stats as little sparklines at the top of the screen.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4268 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-29 19:27:00 +00:00
7b91a2ec37 Navigation bar => lit.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4267 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-29 18:23:08 +00:00
2926f855a1 Start using lit element in the main web interface. It's getting out of control, and if I can finish a refactor, it will reel it in.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4266 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-29 16:52:35 +00:00
639419db60 Oh freaking heck. This fixes the black bar at the bottom of the screen on Android.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4265 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-20 00:24:12 +00:00
54747c127c Ugg. Android needs File.write.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4264 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-20 00:11:38 +00:00
791c3dd787 Remove unused file operations.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4263 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-19 23:53:52 +00:00
b00d75ab7c Fine. Fix windows.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4262 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-19 23:06:37 +00:00
956ea0df56 Track and expose hitches in some suspect callbacks.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4261 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-19 23:05:59 +00:00
30014040e7 Update lit-all.min.js for ssb.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4260 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-16 21:36:17 +00:00
ab055c3394 I see what happened. codemirror 6.57.7 was really a misnumbered codemirror5 release. Let's go back to the latest codemirror5.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4259 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-16 13:07:02 +00:00
1e37eeea05 Experimenting with collapsing images.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4258 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-13 00:03:22 +00:00
84aec0278d Free earlier.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4257 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-12 23:28:58 +00:00
06642f58c5 One less blocking thing on the main thread: _tf_ssb_connection_send_history_stream.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4256 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-12 23:22:33 +00:00
e6d44b32f4 Seems we no longer need _tf_ssb_followingDeep.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4255 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-12 23:06:56 +00:00
1f3f6e2b92 Show audio: references inline, too, and now we don't have to show audio: and video: in the references section.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4254 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-12 00:32:14 +00:00
8f2d3e3bcd Show videos in messages.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4253 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-04-08 20:06:45 +00:00
2df2fc5792 This appears to avoid webview state loss when rotating.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4252 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-29 22:43:41 +00:00
20b0337e0a Hook up backtraces on android.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4251 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-29 22:25:17 +00:00
e86b9dae48 Lint cleanup.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4250 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-29 22:02:12 +00:00
71de897419 Missing icon.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4249 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-25 14:33:52 +00:00
3edfaf9137 Add/enable codemirror's javascript-lint using jshint, and fix a few things.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4248 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-25 00:46:40 +00:00
19c1784864 sqlite-amalgamation-3410200.zip
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4247 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-25 00:13:39 +00:00
0d9fac7363 Support ?filename= to download a blob with a given filename.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4246 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-22 23:02:36 +00:00
2fb91fccc0 Extra /.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4245 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-22 01:21:22 +00:00
24e1ab12ab Maybe you're not signed in.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4244 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-22 01:20:57 +00:00
10ea885d8d Show the username in the apps list.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4243 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-22 01:19:53 +00:00
ec65faa12d Assign all stock apps an emoji, show them in the app list, and let the editor set them.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4242 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-21 23:08:04 +00:00
53692a1ea8 Trying to make the apps like work better on a phone.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4241 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-21 16:54:06 +00:00
ebef51b4ea Continue trying to make the android build smaller.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4240 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-20 00:29:46 +00:00
a94d6f9271 Actually bind to whichever port.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4239 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-20 00:24:47 +00:00
3d2c88c201 Group contact messages, and try to fix some messages overflowing width.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4238 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-19 23:31:08 +00:00
bdeee7fc0e Trying mostly ineffectively to make android executables smaller.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4237 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-19 20:25:50 +00:00
33a037e0ea Move executables out of the way where android expects native libraries to be.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4236 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-19 13:12:51 +00:00
2dc2d9ebf6 Add appstore, so I can get apps more easily to my phone.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4235 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-19 13:07:33 +00:00
9748f0ed8b Clean up out slightly.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4234 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-18 12:31:58 +00:00
d6be2f7d54 Bind tildefriends HTTP to an arbitrary port, write it to a file, and have the Android activity notice that file write and load the correct URL.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4233 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-18 12:28:48 +00:00
63615747a7 Fix executable choosing for my phone, and fix broadcasting to each interface.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4232 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-18 01:26:34 +00:00
fbb657a85c Ugg, no actual change but I had to touch everything to get it working in the emulator again.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4231 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-17 23:48:54 +00:00
bdac0c7879 Whitespace.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4230 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-17 22:57:18 +00:00
54dde76a8a Optimize for size sometimes. APKs are part of all.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4229 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-16 00:44:22 +00:00
2bbe22bc7a Exclude some docs and things to get the release tar.xz back under 5MB.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4228 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-16 00:23:40 +00:00
ad8532f7ac Now actually include the code.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4227 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-15 23:57:35 +00:00
602941104e Support building both debug and release APKs. Release is too big.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4226 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-15 23:55:22 +00:00
d38b41687c Throw in the towel on swipe refresh and add a refresh button.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4225 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-15 23:08:57 +00:00
08125cd1e8 Fix the android code build again. Meh.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4224 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-15 22:14:21 +00:00
2ce2097a3f This works in the emulator.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4223 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-15 21:58:21 +00:00
a5da17e1b1 Use updated android tools? I don't know. Ugg.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4222 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-15 03:21:20 +00:00
2b0962f087 Add openssl for android x86_64, and build that executable into the APK as well. Not used yet.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4221 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-14 03:17:01 +00:00
37173cce4c Cut some things to make the APK smaller.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4220 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-14 02:39:25 +00:00
37edbd9824 Get forward and back gestures working, and hide the title bar. Hiding the action bar still eludes me.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4219 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-14 02:38:56 +00:00
a32bb02223 Various fixes I've accrued. Minor cleanups and more tracing in serialize. Turn off memory tracking. Fix Let's Encrypt.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4218 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-12 22:16:18 +00:00
2ab1b84432 sqlite-amalgamation-3410100.zip
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4217 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-11 22:29:20 +00:00
52ae19220c Enable WebView prompts and localStorage and stuff.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4216 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-11 15:24:05 +00:00
10bfa65a4e Fixed apps not working most of the time. Ultimately, storing a pointer to the database using JS_NewInt64 was lossy and a bad idea. Also, remove use of JNI since we're only starting tildefriends as its own process now.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4215 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-11 13:57:17 +00:00
2a3b1a1e33 So close. We can do it without the .so.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4214 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-11 03:47:01 +00:00
f74f4f6da9 First signs of WebView working.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4213 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-11 02:37:27 +00:00
12a8b7a058 Fix other platforms.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4212 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-10 02:06:23 +00:00
400f07660f Whoa. Apps are running on android. Switched to a static build of OpenSSL 1.1.1t for simplicity.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4211 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-10 02:02:24 +00:00
d532795b7f Import stock apps from the apk.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4210 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-09 01:39:48 +00:00
6064ed6a3a Don't use Secure cookies if we're not using TLS.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4209 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-09 01:39:15 +00:00
2c1a43df2e Implement enough of the File JS API to serve some web pages.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4208 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-09 01:03:35 +00:00
bf72782c9f Now we're running enough code to respond (incorrectly) to http requests.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4207 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-09 00:32:42 +00:00
63dcab30c3 Now we can run scripts from a .zip.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4206 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-08 23:59:11 +00:00
50e48af7c4 Add all the files I think I need to the .apk, and add zlib, so I can attempt to access them using minizip.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4205 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-08 17:46:19 +00:00
9127a18ff0 With approximately this code, I was able to establish an SHS connection with my phone.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4204 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-08 02:49:41 +00:00
61ff466908 Replace all printfs with tf_printf, which redirects to android logging. Change into the files directory so that sqlite can do its thing. Getting closer.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4203 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-07 17:50:17 +00:00
1c10768aa4 Fix overbuild in android deps.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4202 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-07 03:02:16 +00:00
992b123853 Didn't end up using this.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4201 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-05 02:54:29 +00:00
f736756b20 Make a JNI call.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4200 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-05 02:54:04 +00:00
28d73f5b37 Minimal build support for an android app. Written while the power was out.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4199 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-04 19:10:05 +00:00
262b0e5e52 Attempt to track CPU usage of libuv worker threads.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4198 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-03-01 01:36:26 +00:00
1e3807bcb9 Exposed functions to encrypt and decrypt private messages.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4197 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-26 19:51:54 +00:00
2ed3295f77 sqlite-amalgamation-3410000.zip
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4196 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-26 03:12:14 +00:00
8c9d687d50 Variety of minor fixes I've been running with. SSB web interface changes. calloc overallocation fix. Use sqlAsync. Probably some other things.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4195 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-23 01:29:54 +00:00
b8b694864e Whoops, overallocated.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4194 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-20 02:42:11 +00:00
961109635b Latest libsodium-1.0.18-stable.tar.gz.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4193 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-19 23:23:53 +00:00
86bc46a11e Track memory allocations with a linked list. This is only about 3x slower than without tracking instead of 5x and growing.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4192 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-19 22:28:36 +00:00
a6a6fe75ec Aha, one more leak in sqlAsync.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4191 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-19 13:51:06 +00:00
f55f863867 Some unused global variables.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4190 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-19 13:16:55 +00:00
4ce988d00b Memory leak in maskBytes.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4189 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-19 02:01:59 +00:00
1548a8a852 One less alloc for setTimeout.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4188 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-19 01:28:14 +00:00
a9551b057b Trace more things. Add a CORS header for /mem so I can make an app to examine it. Fix a memory leak. Fix tf_realloc(NULL, 0).
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4187 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-18 23:43:00 +00:00
88c7d91858 Brute force memory tracking.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4186 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-18 21:00:39 +00:00
53cb80ebf7 Replace the sqlite allocator, and use our own tracking for stats. Want to use this to collect callstacks for all allocations.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4185 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-18 19:14:06 +00:00
1f67343d75 Make traces work with multiple threads, I think.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4184 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-18 00:51:22 +00:00
4bea8bb6ba sqlite thread safety and extended result codes, mainly.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4183 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-17 22:43:19 +00:00
8e1461b3f1 Catch more sqlite errors.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4182 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-17 02:04:48 +00:00
90b513d070 Fix syntax errors not propagating.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4181 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-17 01:42:56 +00:00
8a2d3d4669 Pass around SQL errors slightly better.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4180 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-16 00:06:45 +00:00
1741403206 More memory leaks.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4179 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-15 02:59:46 +00:00
980db880cc Memory leak.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4178 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-15 02:56:01 +00:00
507a62539d Fix exporting.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4177 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-15 02:43:08 +00:00
6b5d73ed5c Vague attempt at some more cleanup, and stick pthread_self() in the traces.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4176 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-15 02:34:46 +00:00
1f77df7a90 Remove dependency on base64c. Use libsodium's. Also consolidate the calls, as the usage is quite special.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4175 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-14 03:15:24 +00:00
fa87462405 Finish writing this code. Yep.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4174 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-14 02:13:08 +00:00
a5f9f927e6 Fix some memory leaks I just introduced.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4173 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-08 01:50:47 +00:00
b35d74ce36 Allow running read-only sqlite queries from libuv worker threads. Needs so much more testing.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4172 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-08 01:29:44 +00:00
ac60be14a5 Sure, we can identify SVG files.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4171 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-07 23:39:04 +00:00
beda047eb0 Disable Nagle's algorithm before we start the TLS handshake. Just speculation that it will help with some responsiveness.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4170 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-06 02:29:00 +00:00
f6742bebf3 Tracing will continue until performance improves.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4169 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-03 15:06:18 +00:00
7f334ad783 Fine, only malloc_trim if it looks like we have it.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4168 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-03 14:20:26 +00:00
ffda896308 Finish import.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4167 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-03 14:09:53 +00:00
b2fbe9dfac Stale doc file. Fix hashtag links. Trace some GC stuff and try malloc_trim, whynot.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4166 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-03 14:01:05 +00:00
6d6c41bffa Oops. Cleanup.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4165 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-02 02:48:07 +00:00
e04d137af5 Refactored import and export. No user on disk.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4164 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-02 02:09:05 +00:00
ec52e62908 Move apps/cory/ => apps/. Going to change import and export to support this.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4163 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-02 00:18:22 +00:00
6104af0d70 Smaller docker image. Why not.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4162 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-01 23:47:07 +00:00
0ca05e297d No more global settings file.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4161 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-01 23:40:21 +00:00
e0dcec074c Add process name to trace.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4160 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-01 23:20:16 +00:00
a8cecb5c64 Fix trace producing invalid JSON.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4159 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-02-01 03:15:22 +00:00
582ee0e4d7 var => let
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4158 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-31 02:48:56 +00:00
0ba54c2b7b Update lit element. Better drafts. Compose content warnings.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4157 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-30 01:45:23 +00:00
3c288f7f68 Remove duplicate apps entries on import.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4156 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-29 01:58:57 +00:00
16479 changed files with 397026 additions and 39544 deletions
DockerfileMakefileREADME.md
apps
core
deps
base64c
codemirror
libsodium
libuv
.github
.mailmap.readthedocs.yamlAUTHORSCMakeLists.txtChangeLogLICENSELICENSE-extraLINKS.mdMAINTAINERS.mdMakefile.amREADME.mdSUPPORTED_PLATFORMS.mdautogen.sh
cmake-toolchains
configure.ac
docs
include
libuv-static.pc.inlibuv.pc.in
src
test
benchmark-async-pummel.cbenchmark-async.cbenchmark-fs-stat.cbenchmark-getaddrinfo.cbenchmark-list.hbenchmark-loop-count.cbenchmark-million-async.cbenchmark-million-timers.cbenchmark-multi-accept.cbenchmark-ping-pongs.cbenchmark-ping-udp.cbenchmark-pound.cbenchmark-pump.cbenchmark-queue-work.cbenchmark-spawn.cbenchmark-tcp-write-batch.cbenchmark-udp-pummel.c
fixtures
one_file
run-tests.crunner-unix.crunner.ctask.htest-active.ctest-async-null-cb.ctest-async.ctest-barrier.ctest-callback-stack.ctest-close-fd.ctest-close-order.ctest-condvar.ctest-connect-unspecified.ctest-connection-fail.ctest-default-loop-close.ctest-delayed-accept.ctest-dlerror.ctest-eintr-handling.ctest-embed.ctest-emfile.ctest-env-vars.ctest-fork.ctest-fs-copyfile.ctest-fs-event.ctest-fs-open-flags.ctest-fs-poll.ctest-fs-readdir.ctest-fs.ctest-get-currentexe.ctest-get-memory.ctest-get-passwd.ctest-getaddrinfo.ctest-gethostname.ctest-getnameinfo.ctest-getsockname.ctest-getters-setters.ctest-handle-fileno.ctest-hrtime.ctest-idle.ctest-idna.ctest-ip-name.ctest-ip4-addr.ctest-ip6-addr.ctest-ipc-heavy-traffic-deadlock-bug.ctest-ipc-send-recv.ctest-ipc.ctest-list.htest-loop-alive.ctest-loop-close.ctest-loop-handles.ctest-loop-stop.ctest-loop-time.ctest-metrics.ctest-multiple-listen.ctest-not-readable-nor-writable-on-read-error.ctest-not-writable-after-shutdown.ctest-osx-select.ctest-ping-pong.ctest-pipe-bind-error.ctest-pipe-close-stdout-read-stdin.ctest-pipe-connect-error.ctest-pipe-connect-multiple.ctest-pipe-connect-prepare.ctest-pipe-getsockname.ctest-pipe-pending-instances.ctest-pipe-sendmsg.ctest-pipe-server-close.ctest-pipe-set-fchmod.ctest-pipe-set-non-blocking.ctest-platform-output.ctest-poll-close-doesnt-corrupt-stack.ctest-poll-close.ctest-poll-closesocket.ctest-poll-multiple-handles.ctest-poll-oob.ctest-poll.ctest-process-title.ctest-queue-foreach-delete.ctest-random.ctest-readable-on-eof.ctest-ref.ctest-run-nowait.ctest-run-once.ctest-shutdown-close.ctest-shutdown-eof.ctest-shutdown-simultaneous.ctest-shutdown-twice.ctest-signal-multiple-loops.ctest-signal-pending-on-close.ctest-signal.ctest-socket-buffer-size.ctest-spawn.ctest-stdio-over-pipes.ctest-tcp-alloc-cb-fail.ctest-tcp-bind-error.ctest-tcp-bind6-error.ctest-tcp-close-accept.ctest-tcp-close-after-read-timeout.ctest-tcp-close-reset.ctest-tcp-close-while-connecting.ctest-tcp-close.ctest-tcp-connect-error-after-write.ctest-tcp-connect-error.ctest-tcp-connect-timeout.ctest-tcp-connect6-error.ctest-tcp-create-socket-early.ctest-tcp-flags.ctest-tcp-oob.ctest-tcp-open.ctest-tcp-read-stop-start.ctest-tcp-read-stop.ctest-tcp-rst.ctest-tcp-shutdown-after-write.ctest-tcp-try-write-error.ctest-tcp-try-write.ctest-tcp-unexpected-read.ctest-tcp-write-after-connect.ctest-tcp-write-fail.ctest-tcp-write-in-a-row.ctest-tcp-write-queue-order.ctest-tcp-write-to-half-open-connection.ctest-tcp-writealot.ctest-thread-affinity.ctest-thread.ctest-threadpool-cancel.ctest-threadpool.ctest-timer-again.ctest-timer-from-check.ctest-timer.ctest-tty-duplicate-key.ctest-tty-escape-sequence-processing.ctest-tty.ctest-udp-alloc-cb-fail.ctest-udp-bind.ctest-udp-connect.ctest-udp-connect6.ctest-udp-create-socket-early.ctest-udp-dgram-too-big.ctest-udp-ipv6.ctest-udp-mmsg.ctest-udp-multicast-interface.ctest-udp-multicast-interface6.ctest-udp-multicast-join.ctest-udp-multicast-join6.ctest-udp-multicast-ttl.ctest-udp-open.ctest-udp-options.ctest-udp-recv-in-a-row.ctest-udp-send-and-recv.ctest-udp-send-hang-loop.ctest-udp-send-immediate.ctest-udp-send-unreachable.ctest-udp-sendmmsg-error.ctest-udp-try-send.ctest-walk-handles.ctest-watcher-cross-stop.c
tsansupp.txt
lit
openssl
android
arm64-v8a
usr
local
bin
include
lib
share
doc
openssl
html
man1
man3
ACCESS_DESCRIPTION_free.htmlACCESS_DESCRIPTION_new.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_OBJECT_free.htmlASN1_STRING_TABLE.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_print.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_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_ssl.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_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_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_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_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_file.htmlBIO_s_secmem.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_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_set_current_thread.htmlBN_BLINDING_set_flags.htmlBN_BLINDING_unlock.htmlBN_BLINDING_update.htmlBN_CTX_end.htmlBN_CTX_free.htmlBN_CTX_get.htmlBN_CTX_secure_new.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_bin2bn.htmlBN_bn2bin.htmlBN_bn2binpad.htmlBN_bn2dec.htmlBN_bn2hex.htmlBN_bn2lebinpad.htmlBN_bn2mpi.htmlBN_clear.htmlBN_clear_bit.htmlBN_clear_free.htmlBN_cmp.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_mul.htmlBN_mod_mul_montgomery.htmlBN_mod_sqr.htmlBN_mod_sqrt.htmlBN_mod_sub.htmlBN_mod_word.htmlBN_mpi2bn.htmlBN_mul.htmlBN_mul_word.htmlBN_nnmod.htmlBN_num_bits.htmlBN_num_bits_word.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_set_bit.htmlBN_set_word.htmlBN_sqr.htmlBN_sub.htmlBN_sub_word.htmlBN_to_ASN1_ENUMERATED.htmlBN_to_ASN1_INTEGER.htmlBN_to_montgomery.htmlBN_ucmp.htmlBN_value_one.htmlBN_with_flags.htmlBUF_MEM_free.htmlBUF_MEM_grow.htmlBUF_MEM_grow_clean.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_get0_content.htmlCMS_get0_eContentType.htmlCMS_get0_signers.htmlCMS_get1_certs.htmlCMS_get1_crls.htmlCMS_set1_eContentType.htmlCMS_verify.htmlCONF_modules_finish.htmlCONF_modules_load.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_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_load_default_file.htmlCTLOG_STORE_load_file.htmlCTLOG_free.htmlCTLOG_get0_log_id.htmlCTLOG_get0_name.htmlCTLOG_get0_public_key.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_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_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_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_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_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_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_set0.htmlDSA_bits.htmlDSA_clear_flags.htmlDSA_do_verify.htmlDSA_free.htmlDSA_generate_parameters_ex.htmlDSA_get0_engine.htmlDSA_get0_g.htmlDSA_get0_key.htmlDSA_get0_p.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_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_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_setup.htmlDSA_test_flags.htmlDSA_verify.htmlDSAparams_dup.htmlDSAparams_print.htmlDSAparams_print_fp.htmlDTLS_client_method.htmlDTLS_method.htmlDTLS_server_method.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_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_GROUP_check.htmlEC_GROUP_check_discriminant.htmlEC_GROUP_clear_free.htmlEC_GROUP_cmp.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_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_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_REASON.htmlERR_PACK.htmlERR_add_error_data.htmlERR_add_error_vdata.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_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_thread_state.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_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_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_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_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_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_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_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_mgf1_md.htmlEVP_PKEY_CTX_set_rsa_pss_keygen_saltlen.htmlEVP_PKEY_CTX_set_rsa_pss_saltlen.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_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_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_parameters.htmlEVP_PKEY_copy_parameters.htmlEVP_PKEY_decrypt_init.htmlEVP_PKEY_derive_init.htmlEVP_PKEY_derive_set_peer.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_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_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_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_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_engine.htmlEVP_PKEY_set_alias_type.htmlEVP_PKEY_sign_init.htmlEVP_PKEY_type.htmlEVP_PKEY_up_ref.htmlEVP_PKEY_verify_init.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_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_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_cfb.htmlEVP_bf_cfb64.htmlEVP_bf_ecb.htmlEVP_bf_ofb.htmlEVP_blake2s256.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_cfb.htmlEVP_cast5_cfb64.htmlEVP_cast5_ecb.htmlEVP_cast5_ofb.htmlEVP_chacha20_poly1305.htmlEVP_cleanup.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_enc_null.htmlEVP_get_cipherbyname.htmlEVP_get_cipherbynid.htmlEVP_get_cipherbyobj.htmlEVP_get_digestbyname.htmlEVP_get_digestbynid.htmlEVP_get_digestbyobj.htmlEVP_idea_cfb.htmlEVP_idea_cfb64.htmlEVP_idea_ecb.htmlEVP_idea_ofb.htmlEVP_md5_sha1.htmlEVP_md_null.htmlEVP_rc2_40_cbc.htmlEVP_rc2_64_cbc.htmlEVP_rc2_cfb.htmlEVP_rc2_cfb64.htmlEVP_rc2_ecb.htmlEVP_rc2_ofb.htmlEVP_rc4_40.htmlEVP_rc4_hmac_md5.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_seed_cfb.htmlEVP_seed_cfb128.htmlEVP_seed_ecb.htmlEVP_seed_ofb.htmlEVP_sha256.htmlEVP_sha384.htmlEVP_sha3_256.htmlEVP_sha3_384.htmlEVP_sha3_512.htmlEVP_sha512.htmlEVP_sha512_224.htmlEVP_sha512_256.htmlEVP_shake128.htmlEVP_shake256.htmlEVP_sm4_cfb.htmlEVP_sm4_cfb128.htmlEVP_sm4_ctr.htmlEVP_sm4_ecb.htmlEVP_sm4_ofb.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_Final.htmlMD5_Init.htmlMD5_Update.htmlMDC2.htmlMDC2_Final.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_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_sendreq_bio.htmlOCSP_sendreq_nbio.htmlOCSP_sendreq_new.htmlOCSP_set_max_response_length.htmlOCSP_single_get0_status.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_bio.htmlOPENSSL_MALLOC_FAILURES.htmlOPENSSL_MALLOC_FD.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_free.htmlOPENSSL_hexchar2int.htmlOPENSSL_hexstr2buf.htmlOPENSSL_ia32cap.htmlOPENSSL_init_crypto.htmlOPENSSL_init_ssl.htmlOPENSSL_instrument_bus2.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_zalloc.htmlOPENSSL_strdup.htmlOPENSSL_strlcat.htmlOPENSSL_strlcpy.htmlOPENSSL_strndup.htmlOPENSSL_thread_stop.htmlOPENSSL_zalloc.htmlOSSL_STORE_CTX.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_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_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_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_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_secmem.htmlPEM_do_header.htmlPEM_get_EVP_CIPHER_INFO.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_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_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_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_free.htmlPKCS12_new.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_dup.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_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_secure_new.htmlRAND_DRBG_set.htmlRAND_DRBG_set_callbacks.htmlRAND_DRBG_set_defaults.htmlRAND_DRBG_set_reseed_defaults.htmlRAND_DRBG_set_reseed_interval.htmlRAND_DRBG_set_reseed_time_interval.htmlRAND_DRBG_uninstantiate.htmlRAND_OpenSSL.htmlRAND_add.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_status.htmlRAND_write_file.htmlRC4.htmlRIPEMD160.htmlRIPEMD160_Final.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_ex.htmlRSA_clear_flags.htmlRSA_flags.htmlRSA_free.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_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_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_method.htmlRSA_padding_add_PKCS1_OAEP.htmlRSA_padding_add_PKCS1_OAEP_mgf1.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_fp.htmlRSA_private_decrypt.htmlRSA_private_encrypt.htmlRSA_public_decrypt.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_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_from_base64.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_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.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_protocol_id.htmlSSL_CIPHER_get_version.htmlSSL_CIPHER_is_aead.htmlSSL_CIPHER_standard_name.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_set_ssl.htmlSSL_CONF_cmd.htmlSSL_CONF_cmd_value_type.htmlSSL_CTX_add0_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_server_custom_ext.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_ct_is_enabled.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_generate_session_ticket_fn.htmlSSL_CTX_get0_CA_list.htmlSSL_CTX_get0_chain_cert_store.htmlSSL_CTX_get0_chain_certs.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_keylog_cb_func.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_set_new_cb.htmlSSL_CTX_sess_set_remove_cb.htmlSSL_CTX_sess_timeouts.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_list.htmlSSL_CTX_set1_groups.htmlSSL_CTX_set1_groups_list.htmlSSL_CTX_set1_param.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_ciphersuites.htmlSSL_CTX_set_client_CA_list.htmlSSL_CTX_set_cookie_generate_cb.htmlSSL_CTX_set_cookie_verify_cb.htmlSSL_CTX_set_current_cert.htmlSSL_CTX_set_default_ctlog_list_file.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_generate_session_id.htmlSSL_CTX_set_info_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_mode.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_read_ahead.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_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_type.htmlSSL_CTX_set_tlsext_ticket_key_cb.htmlSSL_CTX_set_tmp_dh.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_ASN1.htmlSSL_CTX_use_certificate_chain_file.htmlSSL_CTX_use_certificate_file.htmlSSL_CTX_use_psk_identity_hint.htmlSSL_CTX_use_serverinfo_ex.htmlSSL_CTX_use_serverinfo_file.htmlSSL_SESSION_dup.htmlSSL_SESSION_get0_alpn_selected.htmlSSL_SESSION_get0_ticket.htmlSSL_SESSION_get0_ticket_appdata.htmlSSL_SESSION_get_id.htmlSSL_SESSION_get_master_key.htmlSSL_SESSION_get_max_early_data.htmlSSL_SESSION_get_max_fragment_length.htmlSSL_SESSION_get_ticket_lifetime_hint.htmlSSL_SESSION_get_timeout.htmlSSL_SESSION_new.htmlSSL_SESSION_print_fp.htmlSSL_SESSION_print_keylog.htmlSSL_SESSION_set1_alpn_selected.htmlSSL_SESSION_set1_hostname.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_long.htmlSSL_alloc_buffers.htmlSSL_allow_early_data_cb_fn.htmlSSL_build_cert_chain.htmlSSL_bytes_to_cipher_list.htmlSSL_callback_ctrl.htmlSSL_check_private_key.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_early.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_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_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_client_CA_list.htmlSSL_get_client_ciphers.htmlSSL_get_current_cipher.htmlSSL_get_default_passwd_cb.htmlSSL_get_default_passwd_cb_userdata.htmlSSL_get_early_data_status.htmlSSL_get_error.htmlSSL_get_ex_data.htmlSSL_get_ex_data_X509_STORE_CTX_idx.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_signature_type_nid.htmlSSL_get_pending_cipher.htmlSSL_get_psk_identity_hint.htmlSSL_get_quiet_shutdown.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_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_wbio.htmlSSL_get_wfd.htmlSSL_has_matching_session_id.htmlSSL_has_pending.htmlSSL_in_accept_init.htmlSSL_in_before.htmlSSL_in_connect_init.htmlSSL_is_dtls.htmlSSL_is_init_finished.htmlSSL_is_server.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_long.htmlSSL_select_current_cert.htmlSSL_select_next_proto.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_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_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_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_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_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_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_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_cmp.htmlX509_NAME_delete_entry.htmlX509_NAME_digest.htmlX509_NAME_dup.htmlX509_NAME_entry_count.htmlX509_NAME_free.htmlX509_NAME_get_entry.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_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_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_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_crl.htmlX509_STORE_add_lookup.htmlX509_STORE_free.htmlX509_STORE_get0_objects.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_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_purpose.htmlX509_cmp_current_time.htmlX509_delete_ext.htmlX509_free.htmlX509_get0_authority_issuer.htmlX509_get0_authority_key_id.htmlX509_get0_authority_serial.htmlX509_get0_extensions.htmlX509_get0_notAfter.htmlX509_get0_pubkey.htmlX509_get0_serialNumber.htmlX509_get0_signature.htmlX509_get0_subject_key_id.htmlX509_get0_tbs_sigalg.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_signature_info.htmlX509_get_signature_nid.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_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_ctx.htmlX509_subject_name_cmp.htmlX509_time_adj.htmlX509_time_adj_ex.htmlX509_up_ref.htmlX509_verify.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_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_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_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_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.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.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
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
lib
share
doc
openssl
html
man1
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
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
speedscope
sqlite
valgrind
zlib
CMakeLists.txtChangeLogFAQINDEXLICENSEMakefileMakefile.inREADMEadler32.c
amiga
compress.cconfigure
contrib
README.contrib
ada
blast
delphi
dotzlib
gcc_gvmat64
infback9
iostream
iostream2
iostream3
minizip
pascal
puff
testzlib
untgz
vstudio
crc32.ccrc32.hdeflate.cdeflate.h
doc
examples
gzclose.cgzguts.hgzlib.cgzread.cgzwrite.cinfback.cinffast.cinffast.hinffixed.hinflate.cinflate.hinftrees.cinftrees.hmake_vms.com
msdos
nintendods
old
os400
qnx
test
treebuild.xmltrees.ctrees.huncompr.c
watcom
win32
zconf.hzconf.h.cmakeinzconf.h.inzlib.3zlib.3.pdfzlib.hzlib.mapzlib.pc.cmakeinzlib.pc.inzlib2ansizutil.czutil.h
src
tools

@ -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

273
Makefile

@ -3,9 +3,13 @@
MAKEFLAGS += --warn-undefined-variables
MAKEFLAGS += --no-builtin-rules
VERSION_CODE := 9
VERSION_NUMBER := 0.0.9
VERSION_NAME := Failure is the only opportunity to begin again.
PROJECT = tildefriends
BUILD_DIR ?= out
BUILD_TYPES := debug release windebug winrelease androiddebug androidrelease
BUILD_TYPES := debug release windebug winrelease androiddebug androidrelease androiddebug-x86_64 androidrelease-x86_64
UNAME_M := $(shell uname -m)
CFLAGS += \
@ -16,17 +20,54 @@ CFLAGS += \
-MMD \
-ffunction-sections \
-fdata-sections \
-fno-omit-frame-pointer \
-fno-exceptions \
-g
LDFLAGS += -Wl,--gc-sections
NDK_PATH := /usr/lib/android-sdk/ndk-bundle
NDK_API_VERSION := 30
NDK_TARGET_TRIPLE := aarch64-linux-android
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
debug windebug androiddebug: CFLAGS += -Og
debug release androidrelease: LDFLAGS += -rdynamic
release winrelease: CFLAGS += -DNDEBUG -O3
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 \
-fdebug-compilation-dir . \
-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 += \
@ -38,15 +79,17 @@ windebug winrelease: LDFLAGS += \
-static \
-lm \
-Ldeps/openssl/mingw64/lib
androiddebug androidrelease: CC = $(NDK_PATH)/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
androiddebug androidrelease: AS = $(CC)
androiddebug androidrelease: CFLAGS += \
-target $(NDK_TARGET_TRIPLE)$(NDK_API_VERSION) \
-Ideps/openssl/android/arm64-v8a/usr/local/include \
$(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
androiddebug androidrelease: LDFLAGS += \
-target $(NDK_TARGET_TRIPLE)$(NDK_API_VERSION) \
-Ldeps/openssl/android/arm64-v8a/usr/local/lib
$(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
@ -57,8 +100,8 @@ 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,androiddebug androidrelease,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_android))))) \
$(foreach build_type,androiddebug androidrelease,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_unix)))))
$(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)
@ -69,18 +112,16 @@ $(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 \
-Wdouble-promotion \
-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,13 +146,10 @@ UV_SOURCES_unix := \
deps/libuv/src/unix/async.c \
deps/libuv/src/unix/core.c \
deps/libuv/src/unix/dl.c \
deps/libuv/src/unix/epoll.c \
deps/libuv/src/unix/fs.c \
deps/libuv/src/unix/getaddrinfo.c \
deps/libuv/src/unix/getnameinfo.c \
deps/libuv/src/unix/linux-core.c \
deps/libuv/src/unix/linux-inotify.c \
deps/libuv/src/unix/linux-syscalls.c \
deps/libuv/src/unix/linux.c \
deps/libuv/src/unix/loop-watcher.c \
deps/libuv/src/unix/loop.c \
deps/libuv/src/unix/pipe.c \
@ -129,7 +167,6 @@ UV_SOURCES_unix := \
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 \
@ -161,12 +198,13 @@ UV_OBJS := $(call get_objs,UV_SOURCES)
$(UV_OBJS): CFLAGS += \
-Ideps/libuv/include \
-Ideps/libuv/src \
-Wno-unused-but-set-variable \
-Wno-incompatible-pointer-types \
-Wno-sign-compare \
-Wno-unused-variable \
-Wno-dangling-pointer \
-Wno-incompatible-pointer-types \
-Wno-maybe-uninitialized \
-Wno-sign-compare \
-Wno-unused-but-set-variable \
-Wno-unused-result \
-Wno-unused-variable \
-D_GNU_SOURCE
SODIUM_SOURCES := \
@ -207,8 +245,10 @@ 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
deps/libsodium/src/libsodium/sodium/utils.c \
deps/libsodium/src/libsodium/sodium/version.c
SODIUM_OBJS := $(call get_objs,SODIUM_SOURCES)
$(SODIUM_OBJS): CFLAGS += \
-DCONFIGURED=1 \
@ -217,29 +257,44 @@ $(SODIUM_OBJS): CFLAGS += \
-Wno-unused-variable \
-Wno-type-limits \
-Wno-unknown-pragmas \
-Ideps/libsodium/builds/msvc \
-Ideps/libsodium/src/libsodium/include/sodium
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-function
-Wno-unused-function \
-Wno-unused-variable
XOPT_SOURCES := deps/xopt/xopt.c
XOPT_OBJS := $(call get_objs,XOPT_SOURCES)
@ -249,25 +304,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 \
@ -299,7 +356,20 @@ $(LIBBACKTRACE_OBJS): CFLAGS += \
PICOHTTPPARSER_SOURCES := \
deps/picohttpparser/picohttpparser.c
PICOHTTPPARSER_OBJS := $(call get_objs,PICOHTTPPARSER_SOURCES)
# $(PICOHTTPPARSER_OBJS): CFLAGS +=
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 \
@ -309,30 +379,34 @@ debug release: LDFLAGS += \
-lssl \
-lcrypto
windebug winrelease: LDFLAGS += \
-lwsock32 \
-lws2_32 \
-lkernel32 \
-liphlpapi \
-luserenv \
-lssl \
-lcrypto \
-lcrypt32 \
-ldbghelp \
-liphlpapi \
-lkernel32 \
-lole32 \
-luserenv \
-luuid \
-lws2_32 \
-lcrypt32
androiddebug androidrelease: LDFLAGS += \
-lwsock32
$(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) \
@ -349,7 +423,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 $$@)
@ -364,6 +438,89 @@ endef
$(foreach build_type,$(BUILD_TYPES),$(eval $(call build_rules,$(build_type))))
src/version.h : $(firstword $(MAKEFILE_LIST))
@echo [version] $@
@echo "#define VERSION_NUMBER \"$(VERSION_NUMBER)\"\n#define VERSION_NAME \"$(VERSION_NAME)\"\n" > $@
src/android/AndroidManifest.xml : $(firstword $(MAKEFILE_LIST))
@echo [android_version] $@
@sed -i \
-e 's/versionCode=".*"/versionCode="$(VERSION_CODE)"/' \
-e 's/versionName=".*"/versionName="$(VERSION_NUMBER)"/' \
-e 's/android:minSdkVersion=".*"/android:minSdkVersion="$(ANDROID_MIN_SDK_VERSION)"/' \
$@
# 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/res/drawable_icon.xml.flat: src/android/res/drawable/icon.xml
@mkdir -p $(dir $@)
@echo [aapt2] $@
@$(ANDROID_BUILD_TOOLS)/aapt2 compile -o out/res/ src/android/res/drawable/icon.xml
out/apk/res.apk out/gen/com/unprompted/tildefriends/R.java: out/res/layout_activity_main.xml.flat out/res/drawable_icon.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 out/res/drawable_icon.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/lit/ \
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 -x '*.map' -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-release.apk
.PHONY: apk
apkgo: out/TildeFriends-release.apk
@adb install $<
@adb shell am start com.unprompted.tildefriends/.MainActivity
.PHONY: apkgo
apklog:
@adb logcat *:S tildefriends
.PHONY: apklog
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

@ -0,0 +1,4 @@
{
"type": "tildefriends-app",
"emoji": "🎛"
}

4
apps/api.json Normal file

@ -0,0 +1,4 @@
{
"type": "tildefriends-app",
"emoji": "📜"
}

@ -1,4 +1,3 @@
var global = Function('return this')();
function treeify(o) {
if (typeof(o) == 'object') {
return Object.fromEntries(Object.keys(o).map(x => [x, treeify(o[x])]));
@ -8,4 +7,4 @@ function treeify(o) {
return o;
}
}
app.setDocument(`<pre style="color:#fff">${JSON.stringify(treeify(global), null, 2)}</pre>`);
app.setDocument(`<pre style="color:#fff">${JSON.stringify(treeify(globalThis), null, 2)}</pre>`);

4
apps/apps.json Normal file

@ -0,0 +1,4 @@
{
"type": "tildefriends-app",
"emoji": "💻"
}

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();

4
apps/appstore.json Normal file

@ -0,0 +1,4 @@
{
"type": "tildefriends-app",
"emoji": "🛍"
}

55
apps/appstore/app.js Normal file

@ -0,0 +1,55 @@
async function get_apps() {
let results = {};
await ssb.sqlAsync(`
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":"&79+ntX4sRvg+MboV5nMFz01BSicxsWIQRx719VHS8uk=.sha256","todo.md":"&hQABwP24zFFhdHagRMF3Am7rV2yH19e+0xJ4wnZ4kfM=.sha256","structure.md":"&jph8x/fMXKOd4I0ZiUVb0ZLTfPQ7gBWoxJPrvtX6vtw=.sha256","guide.md":"&SgnGL0+rjetY2o9A2+lVRbNvHIkqKwMnZr9gXWneIlc=.sha256","ssb.md":"&JH1JfoTaCcUifCpnAwhImKBACI0PHoLhoOw1WAnWpLw=.sha256","vision.md":"&v2wu2MGlhNvaALQQ9rGna7ZeEQWSghFgQcDfD5xEyE0=.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":"&1HWTkyCc1doft6dyKF5FDxtRAErNeY25CBrfZbKPpyo=.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":"&F0fyawIO410YFidrzFjlHeY++sZy6ledf6CAXB+45U4=.sha256","tf-message.js":"&HToh+7UCoanBzlr/TEsy/JG4OS2IBU1tMuzjuNmUkAo=.sha256","tf-user.js":"&bXTedgBudTQLXEBPY9R8OLfQ/ZLpo8YRU9Oq/wuGG3Y=.sha256","tf-utils.js":"&lYNeL7cVlDgcqrfkoRIe69DHZeqSZMiHhZIieblHbU0=.sha256","commonmark.min.js":"&bfBaMLU19d1p/vPBF9hlARqDX002KXG/UOfxOahZhe4=.sha256","tf-compose.js":"&7HZLHf5NB5hE6FW0hiXNvM17ekGBn5BBle1bvnjVjyo=.sha256","emojis.json":"&h3P4pez+AI4aYdsN0dJ3pbUEFR0276t9AM20caj/W/s=.sha256","emojis.js":"&tOkUocccQWBzkNzSEf9VMltkTSHcUALYSPYVWmJMoBc=.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":"&fY+thANurOKU2/RhDt411ZtkxW0nV24+hLEf00Z1sTY=.sha256","tf-tab-connections.js":"&ywqBz3w63R6naH09kZ+01A0SfmtuSfk8QPBXWsli0yg=.sha256","tf-news.js":"&Zn+vxLUqVJbo/q6RcW8ezvbdilzllvXhZRyXk8kYwL0=.sha256","tribute.css":"&9FogMzZHKXCfGb7mlh7z+/wiNZzBsOB/tKoh6MfYJno=.sha256","tribute.esm.js":"&P1wKqCfYULpR/ahSB98JP8xaxfikuZwwtT6I/SAo7/Y=.sha256","commonmark-hashtag.js":"&fudY0YdvcMjVCSZ0oiCqUt0+bVT0a06j5TcjWaCDO8E=.sha256"}}

File diff suppressed because it is too large Load Diff

File diff suppressed because one or more lines are too long

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,48 +0,0 @@
import * as linkify from './commonmark-linkify.js';
import * as hashtagify from './commonmark-hashtag.js';
export function markdown(md) {
var reader = new commonmark.Parser({safe: true});
var writer = new commonmark.HtmlRenderer();
var parsed = reader.parse(md || '');
parsed = linkify.transform(parsed);
parsed = hashtagify.transform(parsed);
var walker = parsed.walker();
var event, node;
while ((event = walker.next())) {
node = event.node;
if (event.entering) {
if (node.type == 'link') {
if (node.destination.startsWith('@') &&
node.destination.endsWith('.ed25519')) {
node.destination = '#' + node.destination;
} else if (node.destination.startsWith('%') &&
node.destination.endsWith('.sha256')) {
node.destination = '#' + node.destination;
} else if (node.destination.startsWith('&') &&
node.destination.endsWith('.sha256')) {
node.destination = '/' + node.destination + '/view';
}
} else if (node.type == 'image') {
if (node.destination.startsWith('&')) {
node.destination = '/' + node.destination + '/view';
}
}
}
}
return writer.render(parsed);
}
export function human_readable_size(bytes) {
let v = bytes;
let u = 'B';
for (let unit of ['kB', 'MB', 'GB']) {
if (v > 1024) {
v /= 1024;
u = unit;
} else {
break;
}
}
return `${Math.round(v * 10) / 10} ${u}`;
}

@ -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

@ -0,0 +1,4 @@
{
"type": "tildefriends-app",
"emoji": "💽"
}

@ -20,7 +20,7 @@ async function database_list() {
}
populate_dbs('dbs', ${JSON.stringify(dbs)});
</script>
</html>`
</html>`;
app.setDocument(doc);
}
@ -47,7 +47,7 @@ async function key_list(db) {
}
populate_dbs('keys', ${JSON.stringify(object)});
</script>
</html>`
</html>`;
app.setDocument(doc);
}

4
apps/docs.json Normal file

@ -0,0 +1,4 @@
{
"type": "tildefriends-app",
"emoji": "📚"
}

@ -16,9 +16,7 @@
- / => Something good.
- update docs
- audit + document API exposed to apps
- sqlStream => sqlExec or something
- fix weird HTTP warnings
- ssb from child process?
- channels
- placeholder/missing images
- no denial of service
@ -57,7 +55,9 @@
- keep working on good error feedback
- build for windows
- installable apps (bring back an app message?)
- sqlStream => sqlExec or something
- !ssb from child process?
## Done
- update LICENSE
- logging to browser
- logging to browser

4
apps/follow.json Normal file

@ -0,0 +1,4 @@
{
"type": "tildefriends-app",
"emoji": "➡️"
}

@ -1,5 +1,3 @@
"use strict";
var g_following_cache = {};
var g_following_deep_cache = {};
var g_about_cache = {};
@ -15,7 +13,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 +71,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 +107,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/sneaker.json Normal file

@ -0,0 +1,4 @@
{
"type": "tildefriends-app",
"emoji": "👟"
}

30
apps/sneaker/app.js Normal file

@ -0,0 +1,30 @@
import * as tfrpc from '/tfrpc.js';
tfrpc.register(async function getAllIdentities() {
return ssb.getAllIdentities();
});
tfrpc.register(async function query(sql, args) {
let result = [];
await ssb.sqlAsync(sql, args, function callback(row) {
result.push(row);
});
return result;
});
tfrpc.register(async function store_blob(blob) {
if (Array.isArray(blob)) {
blob = Uint8Array.from(blob);
}
return await ssb.blobStore(blob);
});
tfrpc.register(async function get_blob(id) {
return Array.from(new Uint8Array(await ssb.blobGet(id)));
});
tfrpc.register(async function store_message(message) {
return await ssb.storeMessage(message);
});
async function main() {
await app.setDocument(utf8Decode(await getFile('index.html')));
}
main();

3
apps/sneaker/filesaver.min.js vendored Normal file

@ -0,0 +1,3 @@
(function(a,b){if("function"==typeof define&&define.amd)define([],b);else if("undefined"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){"use strict";function b(a,b){return"undefined"==typeof b?b={autoBom:!1}:"object"!=typeof b&&(console.warn("Deprecated: Expected third argument to be a object"),b={autoBom:!b}),b.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\uFEFF",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open("GET",a),d.responseType="blob",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error("could not download file")},d.send()}function d(a){var b=new XMLHttpRequest;b.open("HEAD",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent("click"))}catch(c){var b=document.createEvent("MouseEvents");b.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,a=/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||("object"!=typeof window||window!==f?function(){}:"download"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement("a");g=g||b.name||"download",j.download=g,j.rel="noopener","string"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target="_blank")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:"msSaveOrOpenBlob"in navigator?function(f,g,h){if(g=g||f.name||"download","string"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement("a");i.href=f,i.target="_blank",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open("","_blank"),g&&(g.document.title=g.document.body.innerText="downloading..."),"string"==typeof b)return c(b,d,e);var h="application/octet-stream"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\/[\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&"undefined"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,"data:attachment/file;"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,"undefined"!=typeof module&&(module.exports=g)});
//# sourceMappingURL=FileSaver.min.js.map

14
apps/sneaker/index.html Normal file

@ -0,0 +1,14 @@
<!DOCTYPE html>
<html style="color: #fff">
<head>
<title>Tilde Friends</title>
<base target="_top">
</head>
<body>
<tf-sneaker-app/>
<script>window.litDisableBundleWarning = true;</script>
<script src="filesaver.min.js"></script>
<script src="jszip.min.js"></script>
<script src="script.js" type="module"></script>
</body>
</html>

13
apps/sneaker/jszip.min.js vendored Normal file

File diff suppressed because one or more lines are too long

126
apps/sneaker/lit-all.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

226
apps/sneaker/script.js Normal file

@ -0,0 +1,226 @@
import {LitElement, html} from './lit-all.min.js';
import * as tfrpc from '/static/tfrpc.js';
class TfSneakerAppElement extends LitElement {
static get properties() {
return {
feeds: {type: Object},
progress: {type: Object},
result: {type: String},
};
}
constructor() {
super();
this.feeds = [];
this.progress = undefined;
this.result = undefined;
}
async search() {
let q = this.renderRoot.getElementById('search').value;
let result = await tfrpc.rpc.query(`
SELECT messages.author AS id, json_extract(messages.content, '$.name') AS name
FROM messages_fts(?)
JOIN messages ON messages.rowid = messages_fts.rowid
WHERE
json_extract(messages.content, '$.type') = 'about' AND
json_extract(messages.content, '$.about') = messages.author AND
json_extract(messages.content, '$.name') IS NOT NULL
GROUP BY messages.author
HAVING MAX(messages.sequence)
ORDER BY COUNT(*) DESC
`,
[`"${q.replaceAll('"', '""')}"`]);
this.feeds = Object.fromEntries(result.map(x => [x.id, x.name]));
}
format_message(message) {
let out = {
previous: message.previous ?? null,
};
if (message.sequence_before_author) {
out.sequence = message.sequence;
out.author = message.author;
} else {
out.author = message.author;
out.sequence = message.sequence;
}
out.timestamp = message.timestamp;
out.hash = message.hash;
out.content = JSON.parse(message.content);
out.signature = message.signature;
return {key: message.id, value: out};
}
sanitize(value) {
return value.replaceAll('/', '_').replaceAll('+', '-');
}
guess_ext(data) {
function startsWith(prefix) {
if (data.length < prefix.length) {
return false;
}
for (let i = 0; i < prefix.length; i++) {
if (prefix[i] !== null && data[i] !== prefix[i]) {
return false;
}
}
return true;
}
if (startsWith(data, [0xff, 0xd8, 0xff, 0xdb]) ||
startsWith(data, [0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, 0x49, 0x46, 0x00, 0x01]) ||
startsWith(data, [0xff, 0xd8, 0xff, 0xee]) ||
startsWith(data, [0xff, 0xd8, 0xff, 0xe1, null, null, 0x45, 0x78, 0x69, 0x66, 0x00, 0x00])) {
return '.jpg';
} else if (startsWith(data, [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a])) {
return '.png';
} else if (startsWith(data, [0x47, 0x49, 0x46, 0x38, 0x37, 0x61]) ||
startsWith(data, [0x47, 0x49, 0x46, 0x38, 0x39, 0x61])) {
return '.gif';
} else if (startsWith(data, [0x52, 0x49, 0x46, 0x46, null, null, null, null, 0x57, 0x45, 0x42, 0x50])) {
return '.webp';
} else if (startsWith(data, [0x3c, 0x73, 0x76, 0x67])) {
return '.svg';
} else if (startsWith(data, [null, null, null, null, 0x66, 0x74, 0x79, 0x70, 0x6d, 0x70, 0x34, 0x32])) {
return '.mp3';
} else if (startsWith(data, [null, null, null, null, 0x66, 0x74, 0x79, 0x70, 0x69, 0x73, 0x6f, 0x6d]) ||
startsWith(data, [null, null, null, null, 0x66, 0x74, 0x79, 0x70, 0x6d, 0x70, 0x34, 0x32])) {
return '.mp4';
} else {
return '.bin';
}
}
async export(id) {
let all_messages = '';
let sequence = -1;
let messages_done = 0;
let messages_max = (await tfrpc.rpc.query('SELECT MAX(sequence) AS total FROM messages WHERE author = ?', [id]))[0].total;
while (true) {
let messages = await tfrpc.rpc.query(
'SELECT * FROM messages WHERE author = ? AND SEQUENCE > ? ORDER BY sequence LIMIT 100',
[id, sequence]
);
if (messages?.length) {
all_messages += messages.map(x => JSON.stringify(this.format_message(x))).join('\n') + '\n';
sequence = messages[messages.length - 1].sequence;
messages_done += messages.length;
this.progress = {name: 'messages', value: messages_done, max: messages_max};
} else {
break;
}
}
let zip = new JSZip();
zip.file(`message/classic/${this.sanitize(id)}.ndjson`, all_messages);
let blobs = await tfrpc.rpc.query(
`SELECT blobs.id
FROM messages
JOIN messages_refs ON messages.id = messages_refs.message
JOIN blobs ON messages_refs.ref = blobs.id
WHERE messages.author = ?`,
[id]);
let blobs_done = 0;
for (let row of blobs) {
this.progress = {name: 'blobs', value: blobs_done, max: blobs.length};
let blob = await tfrpc.rpc.get_blob(row.id);
zip.file(`blob/classic/${this.sanitize(row.id)}${this.guess_ext(blob)}`, new Uint8Array(blob));
blobs_done++;
}
this.progress = {name: 'saving'};
let blob = await zip.generateAsync({type: 'blob'});
saveAs(blob, `${this.sanitize(id)}.zip`);
this.progress = null;
}
keypress(event) {
if (event.key == 'Enter') {
this.search();
}
}
async import(event) {
let file = event.target.files[0];
if (!file) {
return;
}
this.progress = {name: 'loading'};
let zip = new JSZip();
file = await zip.loadAsync(file);
let messages = [];
let blobs = [];
file.forEach(function(path, entry) {
if (!entry.dir) {
if (path.startsWith('message/classic/')) {
messages.push(entry);
} else {
blobs.push(entry);
}
}
});
let success = {messages: 0, blobs: 0};
let progress = 0;
let total_messages = 0;
for (let entry of messages) {
let lines = (await entry.async('string')).split('\n');
total_messages += lines.length;
for (let line of lines) {
if (!line.length) {
continue;
}
let message = JSON.parse(line);
this.progress = {name: 'messages', value: progress++, max: total_messages};
if (await tfrpc.rpc.store_message(message.value)) {
success.messages++;
}
}
}
progress = 0;
for (let blob of blobs) {
this.progress = {name: 'blobs', value: progress++, max: blobs.length};
if (await tfrpc.rpc.store_blob(await blob.async('arraybuffer'))) {
success.blobs++;
}
}
this.progress = undefined;
this.result = `imported ${success.messages} messages and ${success.blobs} blobs`;
}
render() {
let progress;
if (this.progress) {
if (this.progress.max) {
progress = html`<div><label for="progress">${this.progress.name}</label><progress value=${this.progress.value} max=${this.progress.max}></progress></div>`;
} else {
progress = html`<div><span>${this.progress.name}</span></div>`;
}
}
return html`<h1>SSB 👟net</h1>
<code>${this.result}</code>
${progress}
<h2>Import</h2>
<input type="file" id="import" @change=${this.import}></input>
<h2>Export</h2>
<input type="text" id="search" @keypress=${this.keypress}></input>
<input type="button" value="Search Users" @click=${this.search}></input>
<ul>
${Object.entries(this.feeds).map(([id, name]) => html`
<li>
${this.progress ? undefined : html`<input type="button" value="Export" @click=${() => this.export(id)}></input>`}
${name}
<code style="color: #ccc">${id}</code>
</li>
`)}
</ul>
`;
}
}
customElements.define('tf-sneaker-app', TfSneakerAppElement);

4
apps/ssb.json Normal file

@ -0,0 +1,4 @@
{
"type": "tildefriends-app",
"emoji": "🐌"
}

@ -47,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;
@ -79,9 +79,15 @@ tfrpc.register(async function store_blob(blob) {
tfrpc.register(async function get_blob(id) {
return utf8Decode(await ssb.blobGet(id));
});
tfrpc.register(async function store_message(message) {
return await ssb.storeMessage(message);
});
tfrpc.register(function apps() {
return core.apps();
});
tfrpc.register(async function try_decrypt(id, content) {
return await ssb.privateMessageDecrypt(id, content);
});
ssb.addEventListener('broadcasts', async function() {
await tfrpc.rpc.set('broadcasts', await ssb.getBroadcasts());
});

@ -39,7 +39,7 @@ function splitMatches(text, regexp) {
return result;
}
const regex = new RegExp("\\W#[\\w-]+");
const regex = new RegExp("(?<!\w)#[\\w-]+");
function split(textNodes) {
const text = textNodes.map(n => n.literal).join("");

@ -54,21 +54,27 @@ export function picker(callback, anchor) {
}
}
function chosen(event) {
console.log(event.srcElement.innerText);
callback(event.srcElement.innerText);
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) {
for (let row of Object.entries(json)) {
let header = document.createElement('div');
header.appendChild(document.createTextNode(row[0]));
list.appendChild(header);
let any = false;
for (let entry of row[1]) {
for (let entry of Object.entries(row[1])) {
if (search &&
search.length &&
entry.name.indexOf(search) == -1) {
entry[0].indexOf(search) == -1) {
continue;
}
let emoji = document.createElement('span');
@ -76,12 +82,9 @@ export function picker(callback, anchor) {
emoji.style.display = 'inline-block';
emoji.style.overflow = 'hidden';
emoji.style.cursor = 'pointer';
emoji.onclick = function() {
callback(entry);
cleanup();
}
emoji.title = entry.name;
emoji.appendChild(document.createTextNode(entry.emoji));
emoji.onclick = chosen;
emoji.title = entry[0];
emoji.appendChild(document.createTextNode(entry[1]));
list.appendChild(emoji);
any = true;
any_at_all = true;
@ -89,7 +92,7 @@ export function picker(callback, anchor) {
if (!any) {
list.removeChild(header);
}
});
}
if (!any_at_all) {
list.appendChild(document.createTextNode('No matches found.'));
}

1
apps/ssb/emojis.json Normal file

File diff suppressed because one or more lines are too long

3
apps/ssb/filesaver.min.js vendored Normal file

@ -0,0 +1,3 @@
(function(a,b){if("function"==typeof define&&define.amd)define([],b);else if("undefined"!=typeof exports)b();else{b(),a.FileSaver={exports:{}}.exports}})(this,function(){"use strict";function b(a,b){return"undefined"==typeof b?b={autoBom:!1}:"object"!=typeof b&&(console.warn("Deprecated: Expected third argument to be a object"),b={autoBom:!b}),b.autoBom&&/^\s*(?:text\/\S*|application\/xml|\S*\/\S*\+xml)\s*;.*charset\s*=\s*utf-8/i.test(a.type)?new Blob(["\uFEFF",a],{type:a.type}):a}function c(a,b,c){var d=new XMLHttpRequest;d.open("GET",a),d.responseType="blob",d.onload=function(){g(d.response,b,c)},d.onerror=function(){console.error("could not download file")},d.send()}function d(a){var b=new XMLHttpRequest;b.open("HEAD",a,!1);try{b.send()}catch(a){}return 200<=b.status&&299>=b.status}function e(a){try{a.dispatchEvent(new MouseEvent("click"))}catch(c){var b=document.createEvent("MouseEvents");b.initMouseEvent("click",!0,!0,window,0,0,0,80,20,!1,!1,!1,!1,0,null),a.dispatchEvent(b)}}var f="object"==typeof window&&window.window===window?window:"object"==typeof self&&self.self===self?self:"object"==typeof global&&global.global===global?global:void 0,a=/Macintosh/.test(navigator.userAgent)&&/AppleWebKit/.test(navigator.userAgent)&&!/Safari/.test(navigator.userAgent),g=f.saveAs||("object"!=typeof window||window!==f?function(){}:"download"in HTMLAnchorElement.prototype&&!a?function(b,g,h){var i=f.URL||f.webkitURL,j=document.createElement("a");g=g||b.name||"download",j.download=g,j.rel="noopener","string"==typeof b?(j.href=b,j.origin===location.origin?e(j):d(j.href)?c(b,g,h):e(j,j.target="_blank")):(j.href=i.createObjectURL(b),setTimeout(function(){i.revokeObjectURL(j.href)},4E4),setTimeout(function(){e(j)},0))}:"msSaveOrOpenBlob"in navigator?function(f,g,h){if(g=g||f.name||"download","string"!=typeof f)navigator.msSaveOrOpenBlob(b(f,h),g);else if(d(f))c(f,g,h);else{var i=document.createElement("a");i.href=f,i.target="_blank",setTimeout(function(){e(i)})}}:function(b,d,e,g){if(g=g||open("","_blank"),g&&(g.document.title=g.document.body.innerText="downloading..."),"string"==typeof b)return c(b,d,e);var h="application/octet-stream"===b.type,i=/constructor/i.test(f.HTMLElement)||f.safari,j=/CriOS\/[\d]+/.test(navigator.userAgent);if((j||h&&i||a)&&"undefined"!=typeof FileReader){var k=new FileReader;k.onloadend=function(){var a=k.result;a=j?a:a.replace(/^data:[^;]*;/,"data:attachment/file;"),g?g.location.href=a:location=a,g=null},k.readAsDataURL(b)}else{var l=f.URL||f.webkitURL,m=l.createObjectURL(b);g?g.location=m:location.href=m,g=null,setTimeout(function(){l.revokeObjectURL(m)},4E4)}});f.saveAs=g.saveAs=g,"undefined"!=typeof module&&(module.exports=g)});
//# sourceMappingURL=FileSaver.min.js.map

@ -13,6 +13,7 @@
<body>
<tf-app/>
<script>window.litDisableBundleWarning = true;</script>
<script src="filesaver.min.js"></script>
<script src="commonmark.min.js"></script>
<script src="commonmark-linkify.js" type="module"></script>
<script src="commonmark-hashtag.js" type="module"></script>

126
apps/ssb/lit-all.min.js vendored Normal file

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -8,6 +8,9 @@ import * as tf_user from './tf-user.js';
import * as tf_compose from './tf-compose.js';
import * as tf_news from './tf-news.js';
import * as tf_profile from './tf-profile.js';
import * as tf_tab_mentions from './tf-tab-mentions.js';
import * as tf_tab_news from './tf-tab-news.js';
import * as tf_tab_news_feed from './tf-tab-news-feed.js';
import * as tf_tab_search from './tf-tab-search.js';
import * as tf_tab_connections from './tf-tab-connections.js';
import * as tf_tag from './tf-tag.js';

@ -16,6 +16,7 @@ class TfElement extends LitElement {
following: {type: Array},
users: {type: Object},
ids: {type: Array},
tags: {type: Array},
};
}
@ -32,8 +33,9 @@ class TfElement extends LitElement {
this.following = [];
this.users = {};
this.loaded = false;
tfrpc.rpc.getBroadcasts().then(b => { self.broadcasts = b || [] });
tfrpc.rpc.getConnections().then(c => { self.connections = c || [] });
this.tags = [];
tfrpc.rpc.getBroadcasts().then(b => { self.broadcasts = b || []; });
tfrpc.rpc.getConnections().then(c => { self.connections = c || []; });
tfrpc.rpc.getHash().then(hash => self.set_hash(hash));
tfrpc.register(function hashChanged(hash) {
self.set_hash(hash);
@ -64,6 +66,8 @@ class TfElement extends LitElement {
this.tab = 'search';
} else if (this.hash === '#connections') {
this.tab = 'connections';
} else if (this.hash === '#mentions') {
this.tab = 'mentions';
} else {
this.tab = 'news';
}
@ -79,7 +83,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]);
@ -133,7 +137,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];
}
@ -247,12 +255,34 @@ class TfElement extends LitElement {
`;
}
async load_recent_tags() {
let start = new Date();
this.tags = await tfrpc.rpc.query(`
WITH
recent AS (SELECT id, content FROM messages
WHERE messages.timestamp > ? AND json_extract(content, '$.type') = 'post'
ORDER BY timestamp DESC LIMIT 1024),
recent_channels AS (SELECT recent.id, '#' || json_extract(content, '$.channel') AS tag
FROM recent
WHERE json_extract(content, '$.channel') IS NOT NULL),
recent_mentions AS (SELECT recent.id, json_extract(mention.value, '$.link') AS tag
FROM recent, json_each(recent.content, '$.mentions') AS mention
WHERE json_valid(mention.value) AND tag LIKE '#%'),
combined AS (SELECT id, tag FROM recent_channels UNION ALL SELECT id, tag FROM recent_mentions),
by_message AS (SELECT DISTINCT id, tag FROM combined)
SELECT tag, COUNT(*) AS count FROM by_message GROUP BY tag ORDER BY count DESC LIMIT 10
`, [new Date() - 7 * 24 * 60 * 60 * 1000]);
console.log('tags took', (new Date() - start) / 1000.0, 'seconds');
}
async load() {
let whoami = this.whoami;
let tags = this.load_recent_tags();
let [following, users] = await this.following_deep([whoami], 2, {});
users = await this.fetch_about(following.sort(), users);
this.following = following;
this.users = users;
await tags;
console.log(`load finished ${whoami} => ${this.whoami}`);
this.whoami = whoami;
this.loaded = whoami;
@ -269,6 +299,10 @@ class TfElement extends LitElement {
return html`
<tf-tab-connections .users=${this.users} .connections=${this.connections} .broadcasts=${this.broadcasts}></tf-tab-connections>
`;
} else if (this.tab === 'mentions') {
return html`
<tf-tab-mentions .following=${this.following} whoami=${this.whoami} .users=${this.users}}></tf-tab-mentions>
`;
} else if (this.tab === 'search') {
return html`
<tf-tab-search .following=${this.following} whoami=${this.whoami} .users=${this.users} query=${this.hash?.startsWith('#q=') ? decodeURIComponent(this.hash.substring(3)) : null}></tf-tab-search>
@ -276,22 +310,14 @@ 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') {
await tfrpc.rpc.setHash('#');
} else if (tab === 'connections') {
await tfrpc.rpc.setHash('#connections');
} else if (tab === 'mentions') {
await tfrpc.rpc.setHash('#mentions');
}
}
@ -310,6 +336,7 @@ class TfElement extends LitElement {
<div>
<input type="button" class="tab" value="News" ?disabled=${self.tab == 'news'} @click=${() => self.set_tab('news')}></input>
<input type="button" class="tab" value="Connections" ?disabled=${self.tab == 'connections'} @click=${() => self.set_tab('connections')}></input>
<input type="button" class="tab" value="Mentions" ?disabled=${self.tab == 'mentions'} @click=${() => self.set_tab('mentions')}></input>
<input type="button" class="tab" value="Search" ?disabled=${self.tab == 'search'} @click=${() => self.set_tab('search')}></input>
</div>
`;
@ -322,7 +349,7 @@ class TfElement extends LitElement {
return html`
${this.render_id_picker()}
${tabs}
<!-- <input type="button" value="Fake News" @click=${this.add_fake_news}></input> -->
${this.tags.map(x => html`<tf-tag tag=${x.tag} count=${x.count}></tf-tag>`)}
${contents}
`;
}

@ -11,10 +11,9 @@ class TfComposeElement extends LitElement {
users: {type: Object},
root: {type: String},
branch: {type: String},
mentions: {type: Object},
apps: {type: Object},
drafts: {type: Object},
}
};
}
static styles = styles;
@ -24,7 +23,6 @@ class TfComposeElement extends LitElement {
this.users = {};
this.root = undefined;
this.branch = undefined;
this.mentions = {};
this.apps = undefined;
this.drafts = {};
}
@ -34,6 +32,8 @@ class TfComposeElement extends LitElement {
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];
@ -50,14 +50,19 @@ class TfComposeElement extends LitElement {
break;
}
}
if (!this.mentions[link]) {
this.mentions[link] = {
link: link,
}
if (!draft.mentions) {
draft.mentions = {};
}
this.mentions[link].name = name.startsWith('@') ? name.substring(1) : name;
this.mentions = Object.assign({}, this.mentions);
console.log(this.mentions);
if (!draft.mentions[link]) {
draft.mentions[link] = {
link: link,
};
}
draft.mentions[link].name = name.startsWith('@') ? name.substring(1) : name;
updated = true;
}
if (updated) {
this.requestUpdate();
}
return tfutils.markdown(text);
}
@ -66,6 +71,11 @@ class TfComposeElement extends LitElement {
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;
}
}
notify(draft) {
@ -79,9 +89,11 @@ class TfComposeElement extends LitElement {
}));
}
change(event) {
let edit = this.renderRoot.getElementById('edit');
this.notify(edit.value);
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) {
@ -99,7 +111,7 @@ class TfComposeElement extends LitElement {
let data_url = canvas.toDataURL(mime_type);
let result = atob(data_url.split(',')[1]).split('').map(x => x.charCodeAt(0));
resolve(result);
}
};
img.onerror = function(event) {
reject(new Error('Failed to load image.'));
};
@ -111,6 +123,7 @@ 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;
@ -131,16 +144,19 @@ class TfComposeElement extends LitElement {
}
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![${name}](${id})`;
self.change();
self.input();
} catch(e) {
alert(e?.message);
}
@ -162,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',
@ -171,15 +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.change();
self.notify(undefined);
self.requestUpdate();
}).catch(function(error) {
alert(error.message);
});
@ -216,17 +236,38 @@ 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) {
let self = this;
return html`
<div>
<pre style="white-space: pre-wrap">${JSON.stringify(mention, null, 2)}</pre>
<input type="button" value="x" @click=${() => self.remove_mention(mention.link)}></input>
<div style="display: flex; flex-direction: row">
<div style="align-self: center; margin: 0.5em">
<input type="button" value="🚮" title="Remove ${mention.name} mention" @click=${() => self.remove_mention(mention.link)}></input>
</div>
<div style="display: flex; flex-direction: column">
<h3>${mention.name}</h3>
<div style="padding-left: 1em">
${Object.entries(mention)
.filter(x => x[0] != 'name')
.map(x => html`<div><span style="font-weight: bold">${x[0]}</span>: ${x[1]}</div>`)}
</div>
</div>
</div>`;
}
@ -251,8 +292,11 @@ class TfComposeElement extends LitElement {
};
}
}
this.mentions = Object.assign(this.mentions || {}, mentions);
this.apps = null;
let draft = self.get_draft();
draft.mentions = Object.assign(draft.mentions || {}, mentions);
self.requestUpdate();
self.notify(draft);
self.apps = null;
}
if (this.apps) {
@ -269,24 +313,64 @@ class TfComposeElement extends LitElement {
}
render_attach_app_button() {
let self = this;
async function attach_app() {
this.apps = await tfrpc.rpc.apps();
self.apps = await tfrpc.rpc.apps();
}
if (!this.apps) {
return html`<input type="button" value="Attach App" @click=${attach_app}></input>`
return html`<input type="button" value="Attach App" @click=${attach_app}></input>`;
} else {
return html`<input type="button" value="Discard App" @click=${() => this.apps = null}></input>`
return html`<input type="button" value="Discard App" @click=${() => this.apps = null}></input>`;
}
}
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.input} @change=${this.change} @paste=${this.paste} style="flex: 1 0 50%">${this.drafts[this.branch || '']}</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>
</div>
${Object.values(this.mentions).map(x => self.render_mention(x))}
${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>

@ -9,7 +9,7 @@ class TfIdentityPickerElement extends LitElement {
return {
ids: {type: Array},
selected: {type: String},
}
};
}
constructor() {

@ -14,7 +14,8 @@ class TfMessageElement extends LitElement {
raw: {type: Boolean},
blog_data: {type: String},
expanded: {type: Object},
}
decrypted: {type: Object},
};
}
static styles = styles;
@ -28,6 +29,7 @@ class TfMessageElement extends LitElement {
this.drafts = {};
this.raw = false;
this.expanded = {};
this.decrypted = undefined;
}
show_reply() {
@ -69,12 +71,12 @@ class TfMessageElement extends LitElement {
hash: this.message?.hash,
content: this.message?.content,
signature: this.message?.signature,
}
return html`<div style="white-space: pre-wrap">${JSON.stringify(raw, null, 2)}</div>`
};
return html`<div style="white-space: pre-wrap">${JSON.stringify(raw, null, 2)}</div>`;
}
vote(emoji) {
let reaction = emoji.emoji;
let reaction = emoji;
let message = this.message.id;
if (confirm('Are you sure you want to react with ' + reaction + ' to ' + message + '?')) {
tfrpc.rpc.appendMessage(
@ -127,6 +129,13 @@ class TfMessageElement extends LitElement {
body_click(event) {
if (event.srcElement.tagName == 'IMG') {
this.show_image(event.srcElement.src);
} else if (event.srcElement.tagName == 'DIV' && event.srcElement.classList.contains('img_caption')) {
let next = event.srcElement.nextSibling;
if (next.style.display == 'block') {
next.style.display = 'none';
} else {
next.style.display = 'block';
}
}
}
@ -148,7 +157,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>
`;
@ -168,10 +177,7 @@ class TfMessageElement extends LitElement {
render_mentions() {
let mentions = this.message?.content?.mentions || [];
mentions = mentions.filter(x =>
x.name?.startsWith('audio:') ||
x.name?.startsWith('video:') ||
this.message?.content?.text?.indexOf(x.link) === -1);
mentions = mentions.filter(x => this.message?.content?.text?.indexOf(x.link) === -1);
if (mentions.length) {
let self = this;
return html`
@ -214,24 +220,63 @@ class TfMessageElement extends LitElement {
}
}
render_channels() {
let content = this.message?.content;
if (this.decrypted?.type == 'post') {
content = this.decrypted;
}
let channels = [];
if (typeof content.channel === 'string') {
channels.push(`#${content.channel}`);
}
if (Array.isArray(content.mentions)) {
for (let mention of content.mentions) {
if (typeof mention?.link === 'string' &&
mention.link.startsWith('#')) {
channels.push(mention.link);
}
}
}
return channels.map(x => html`<tf-tag tag=${x}></tf-tag>`);
}
async try_decrypt(content) {
let result = await tfrpc.rpc.try_decrypt(this.whoami, content);
if (result) {
this.decrypted = JSON.parse(result);
} else {
this.decrypted = false;
}
}
render() {
let content = this.message?.content;
if (this.decrypted?.type == 'post') {
content = this.decrypted;
}
let self = this;
let raw_button = this.raw ?
html`<input type="button" value="Message" @click=${() => self.raw = false}></input>` :
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}
${self.raw ? self.render_raw() : inner}
${self.render_votes()}
</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)
@ -258,7 +303,7 @@ class TfMessageElement extends LitElement {
<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>` :
@ -270,8 +315,9 @@ class TfMessageElement extends LitElement {
${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' :
@ -282,7 +328,7 @@ 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.drafts[this.message?.id] !== undefined) ? html`
<tf-compose
@ -300,10 +346,11 @@ 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 => this.toggle_expanded(':cw')}>${content.contentWarning}</div>
<div class="content_warning" @click=${x => this.toggle_expanded(':cw')}>${content.contentWarning}</div>
`;
let content_html =
html`
${this.render_channels()}
<div @click=${this.body_click}>${body}</div>
${this.render_mentions()}
`;
@ -316,6 +363,8 @@ class TfMessageElement extends LitElement {
` :
content_warning :
content_html;
let is_encrypted = this.decrypted ? html`<span style="align-self: center">🔓</span>` : undefined;
let style_background = this.decrypted ? 'rgba(255, 0, 0, 0.2)' : 'rgba(255, 255, 255, 0.1)';
return html`
<style>
code {
@ -331,9 +380,10 @@ class TfMessageElement extends LitElement {
display: block;
}
</style>
<div style="border: 1px solid black; background-color: rgba(255, 255, 255, 0.1); margin-top: 8px; padding: 16px">
<div style="border: 1px solid black; background-color: ${style_background}; margin-top: 8px; padding: 16px">
<div style="display: flex; flex-direction: row">
<tf-user id=${this.message.author} .users=${this.users}></tf-user>
${is_encrypted}
<span style="flex: 1"></span>
<span style="padding-right: 8px"><a target="_top" href=${'#' + self.message.id}>%</a> ${new Date(this.message.timestamp).toLocaleString()}</span>
<span>${raw_button}</span>
@ -400,6 +450,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>
@ -413,7 +468,14 @@ class TfMessageElement extends LitElement {
</div>
`);
} else if (typeof(this.message.content) == 'string') {
return small_frame(html`<span>🔒</span>`);
if (this.decrypted) {
return small_frame(html`<span>🔓</span><pre>${JSON.stringify(this.decrypted, null, 2)}</pre>`);
} else if (this.decrypted === undefined) {
this.try_decrypt(content);
return small_frame(html`<span>🔐</span>`);
} else {
return small_frame(html`<span>🔒</span>`);
}
} else {
return small_frame(html`<div><b>type</b>: ${content.type}</div>`);
}

@ -11,7 +11,7 @@ class TfNewsElement extends LitElement {
following: {type: Array},
drafts: {type: Object},
expanded: {type: Object},
}
};
}
static styles = styles;
@ -145,9 +145,29 @@ 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} .drafts=${this.drafts} .expanded=${this.expanded} collapsed=true></tf-message>`)}
@ -156,8 +176,7 @@ class TfNewsElement extends LitElement {
}
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 || []);
}
}

@ -11,7 +11,7 @@ class TfProfileElement extends LitElement {
id: {type: String},
users: {type: Object},
size: {type: Number},
}
};
}
static styles = styles;
@ -33,7 +33,7 @@ class TfProfileElement extends LitElement {
contact: this.id,
}, change)).catch(function(error) {
alert(error?.message);
})
});
}
follow() {
@ -148,6 +148,10 @@ class TfProfileElement extends LitElement {
<div><label for="description">Description:</label></div>
<textarea id="description" @input=${event => this.editing = Object.assign({}, this.editing, {description: event.srcElement.value})}>${this.editing.description}</textarea>
</div>
<div>
<label for="public_web_hosting">Public Web Hosting:</label>
<input type="checkbox" id="public_web_hosting" value=${this.editing.public_web_hosting} @input=${event => this.editing = Object.assign({}, this.editing, {publicWebHosting: event.srcElement.checked})}></input>
</div>
<input type="button" value="Attach Image" @click=${this.attach_image}></input>
</div>` : null;
let image = typeof(profile.image) == 'string' ? profile.image : profile.image?.link;

@ -29,4 +29,20 @@ img {
color: #088;
background-color: #fff;
}
.content_warning {
border: 1px solid #fff;
border-radius: 1em;
padding: 8px;
margin: 4px;
}
div.img_caption {
color: #888;
cursor: pointer;
}
div.img_caption::after {
content: ' ±';
}
`;

@ -9,7 +9,7 @@ class TfTabConnectionsElement extends LitElement {
connections: {type: Array},
stored_connections: {type: Array},
users: {type: Object},
}
};
}
constructor() {
@ -71,7 +71,7 @@ class TfTabConnectionsElement extends LitElement {
<tf-user id=${connection.pubkey} .users=${this.users}></tf-user>
${this.render_connection_summary(connection)}
</li>
`
`;
}
async forget_stored_connection(connection) {

@ -0,0 +1,65 @@
import {LitElement, html, unsafeHTML} from './lit-all.min.js';
import * as tfrpc from '/static/tfrpc.js';
import {styles} from './tf-styles.js';
class TfTabMentionsElement extends LitElement {
static get properties() {
return {
whoami: {type: String},
users: {type: Object},
following: {type: Array},
expanded: {type: Object},
messages: {type: Array},
};
}
static styles = styles;
constructor() {
super();
let self = this;
this.whoami = null;
this.users = {};
this.following = [];
this.expanded = {};
this.messages = [];
}
async load() {
console.log('Loading...', this.whoami);
let results = await tfrpc.rpc.query(`
SELECT messages.*
FROM messages_fts(?)
JOIN messages ON messages.rowid = messages_fts.rowid
JOIN json_each(?) AS following ON messages.author = following.value
WHERE messages.author != ?
ORDER BY timestamp DESC limit 20
`,
['"' + this.whoami.replace('"', '""') + '"', JSON.stringify(this.following), this.whoami]);
console.log('Done.');
this.messages = results;
}
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 self = this;
if (!this.loading) {
this.loading = true;
this.load();
}
return html`
<tf-news id="news" whoami=${this.whoami} .messages=${this.messages} .users=${this.users} .expanded=${this.expanded} @tf-expand=${this.on_expand}></tf-news>
`;
}
}
customElements.define('tf-tab-mentions', TfTabMentionsElement);

@ -0,0 +1,154 @@
import {LitElement, html, unsafeHTML, until} from './lit-all.min.js';
import * as tfrpc from '/static/tfrpc.js';
import {styles} from './tf-styles.js';
class TfTabNewsFeedElement extends LitElement {
static get properties() {
return {
whoami: {type: String},
users: {type: Object},
hash: {type: String},
following: {type: Array},
messages: {type: Array},
drafts: {type: Object},
expanded: {type: Object},
};
}
static styles = styles;
constructor() {
super();
let self = this;
this.whoami = null;
this.users = {};
this.hash = '#';
this.following = [];
this.drafts = {};
this.expanded = {};
this.start_time = new Date().valueOf() - 24 * 60 * 60 * 1000;
}
async fetch_messages() {
if (this.hash.startsWith('#@')) {
let r = await tfrpc.rpc.query(
`
WITH mine AS (SELECT messages.*
FROM messages
WHERE messages.author = ?
ORDER BY sequence DESC
LIMIT 20)
SELECT messages.*
FROM mine
JOIN messages_refs ON mine.id = messages_refs.ref
JOIN messages ON messages_refs.message = messages.id
UNION
SELECT * FROM mine
`,
[
this.hash.substring(1),
]);
return r;
} else if (this.hash.startsWith('#%')) {
return await tfrpc.rpc.query(
`
SELECT messages.*
FROM messages
WHERE id = ?1
UNION
SELECT messages.*
FROM messages JOIN messages_refs
ON messages.id = messages_refs.message
WHERE messages_refs.ref = ?1
`,
[
this.hash.substring(1),
]);
} else {
return await tfrpc.rpc.query(
`
WITH news AS (SELECT messages.*
FROM messages
JOIN json_each(?) AS following ON messages.author = following.value
WHERE messages.timestamp > ?
ORDER BY messages.timestamp DESC)
SELECT messages.*
FROM news
JOIN messages_refs ON news.id = messages_refs.ref
JOIN messages ON messages_refs.message = messages.id
UNION
SELECT messages.*
FROM news
JOIN messages_refs ON news.id = messages_refs.message
JOIN messages ON messages_refs.ref = messages.id
UNION
SELECT news.* FROM news
`,
[
JSON.stringify(this.following),
this.start_time,
]);
}
}
async load_more() {
let last_start_time = this.start_time;
this.start_time = last_start_time - 24 * 60 * 60 * 1000;
let more = await tfrpc.rpc.query(
`
WITH news AS (SELECT messages.*
FROM messages
JOIN json_each(?) AS following ON messages.author = following.value
WHERE messages.timestamp > ?
AND messages.timestamp <= ?
ORDER BY messages.timestamp DESC)
SELECT messages.*
FROM news
JOIN messages_refs ON news.id = messages_refs.ref
JOIN messages ON messages_refs.message = messages.id
UNION
SELECT messages.*
FROM news
JOIN messages_refs ON news.id = messages_refs.message
JOIN messages ON messages_refs.ref = messages.id
UNION
SELECT news.* FROM news
`,
[
JSON.stringify(this.following),
this.start_time,
last_start_time,
]);
this.messages = [...more, ...this.messages];
}
render() {
if (!this.messages ||
this._messages_hash !== this.hash ||
this._messages_following !== this.following) {
console.log(`loading messages for ${this.whoami}`);
let self = this;
this.messages = [];
this._messages_hash = this.hash;
this._messages_following = this.following;
this.fetch_messages().then(function(messages) {
self.messages = messages;
console.log(`loading mesages done for ${self.whoami}`);
}).catch(function(error) {
alert(JSON.stringify(error, null, 2));
});
}
let more;
if (!this.hash.startsWith('#@') && !this.hash.startsWith('#%')) {
more = html`
<input type="button" value="Load More" @click=${this.load_more}></input>
`;
}
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>
${more}
`;
}
}
customElements.define('tf-tab-news-feed', TfTabNewsFeedElement);

@ -2,114 +2,6 @@ import {LitElement, html, unsafeHTML, until} from './lit-all.min.js';
import * as tfrpc from '/static/tfrpc.js';
import {styles} from './tf-styles.js';
class TfTabNewsFeedElement extends LitElement {
static get properties() {
return {
whoami: {type: String},
users: {type: Object},
hash: {type: String},
following: {type: Array},
messages: {type: Array},
drafts: {type: Object},
expanded: {type: Object},
}
}
static styles = styles;
constructor() {
super();
let self = this;
this.whoami = null;
this.users = {};
this.hash = '#';
this.following = [];
this.drafts = {};
this.expanded = {};
}
async fetch_messages() {
if (this.hash.startsWith('#@')) {
let r = await tfrpc.rpc.query(
`
WITH mine AS (SELECT messages.*
FROM messages
WHERE messages.author = ?
ORDER BY sequence DESC
LIMIT 20)
SELECT messages.*
FROM mine
JOIN messages_refs ON mine.id = messages_refs.ref
JOIN messages ON messages_refs.message = messages.id
UNION
SELECT * FROM mine
`,
[
this.hash.substring(1),
]);
return r;
} else if (this.hash.startsWith('#%')) {
return await tfrpc.rpc.query(
`
SELECT messages.*
FROM messages
WHERE id = ?1
UNION
SELECT messages.*
FROM messages JOIN messages_refs
ON messages.id = messages_refs.message
WHERE messages_refs.ref = ?1
`,
[
this.hash.substring(1),
]);
} else {
return await tfrpc.rpc.query(
`
WITH news AS (SELECT messages.*
FROM messages
JOIN json_each(?) AS following ON messages.author = following.value
WHERE messages.timestamp > ?
ORDER BY messages.timestamp DESC)
SELECT messages.*
FROM news
JOIN messages_refs ON news.id = messages_refs.ref
JOIN messages ON messages_refs.message = messages.id
UNION
SELECT messages.*
FROM news
JOIN messages_refs ON news.id = messages_refs.message
JOIN messages ON messages_refs.ref = messages.id
UNION
SELECT news.* FROM news
`,
[
JSON.stringify(this.following),
new Date().valueOf() - 24 * 60 * 60 * 1000,
]);
}
}
render() {
if (!this.messages ||
this._messages_hash !== this.hash ||
this._messages_following !== this.following) {
console.log(`loading messages for ${this.whoami}`);
let self = this;
this.messages = [];
this._messages_hash = this.hash;
this._messages_following = this.following;
this.fetch_messages().then(function(messages) {
self.messages = messages;
console.log(`loading mesages done for ${self.whoami}`);
}).catch(function(error) {
alert(JSON.stringify(error, null, 2));
});
}
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>`;
}
}
class TfTabNewsElement extends LitElement {
static get properties() {
return {
@ -120,7 +12,7 @@ class TfTabNewsElement extends LitElement {
following: {type: Array},
drafts: {type: Object},
expanded: {type: Object},
}
};
}
static styles = styles;
@ -141,9 +33,19 @@ class TfTabNewsElement extends LitElement {
});
}
connectedCallback() {
super.connectedCallback();
document.body.addEventListener('keypress', this.on_keypress.bind(this));
}
disconnectedCallback() {
super.disconnectedCallback();
document.body.removeEventListener('keypress', this.on_keypress.bind(this));
}
show_more() {
let unread = this.unread;
let news = this.renderRoot?.getElementById('news');
let news = this.shadowRoot?.getElementById('news');
if (news) {
console.log('injecting messages', news.messages);
news.messages = Object.values(Object.fromEntries([...this.unread, ...news.messages].map(x => [x.id, x])));
@ -193,6 +95,13 @@ class TfTabNewsElement extends LitElement {
}
}
on_keypress(event) {
if (event.target === document.body &&
event.key == '.') {
this.show_more();
}
}
render() {
let profile = this.hash.startsWith('#@') ?
html`<tf-profile id=${this.hash.substring(1)} whoami=${this.whoami} .users=${this.users}></tf-profile>` : undefined;
@ -207,5 +116,4 @@ class TfTabNewsElement extends LitElement {
}
}
customElements.define('tf-tab-news-feed', TfTabNewsFeedElement);
customElements.define('tf-tab-news', TfTabNewsElement);

@ -9,7 +9,8 @@ class TfTabSearchElement extends LitElement {
users: {type: Object},
following: {type: Array},
query: {type: String},
}
expanded: {type: Object},
};
}
static styles = styles;
@ -20,6 +21,7 @@ class TfTabSearchElement extends LitElement {
this.whoami = null;
this.users = {};
this.following = [];
this.expanded = {};
}
async search(query) {
@ -55,8 +57,20 @@ class TfTabSearchElement extends LitElement {
}
}
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() {
if (this.query !== this.last_query) {
this.last_query = this.query;
this.search(this.query);
}
let self = this;
@ -65,7 +79,7 @@ class TfTabSearchElement extends LitElement {
<input type="text" id="search" value=${this.query} style="flex: 1" @keydown=${this.search_keydown}></input>
<input type="button" value="Search" @click=${(event) => self.search(self.renderRoot.getElementById('search').value)}></input>
</div>
<tf-news id="news" whoami=${this.whoami} .messages=${this.messages} .users=${this.users}></tf-news>
<tf-news id="news" whoami=${this.whoami} .messages=${this.messages} .users=${this.users} .expanded=${this.expanded} @tf-expand=${this.on_expand}></tf-news>
`;
}
}

24
apps/ssb/tf-tag.js Normal file

@ -0,0 +1,24 @@
import {LitElement, html, unsafeHTML} from './lit-all.min.js';
import {styles} from './tf-styles.js';
class TfTagElement extends LitElement {
static get properties() {
return {
tag: {type: String},
count: {type: Number},
};
}
static styles = styles;
constructor() {
super();
}
render() {
let number = this.count ? html` (${this.count})` : undefined;
return html`<a href="#q=${this.tag}" style="display: inline-block; margin: 3px; border: 1px solid black; background-color: #444; padding: 4px; border-radius: 3px">${this.tag}${number}</a>`;
}
}
customElements.define('tf-tag', TfTagElement);

@ -7,7 +7,7 @@ class TfUserElement extends LitElement {
return {
id: {type: String},
users: {type: Object},
}
};
}
static styles = styles;
@ -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>
<img style="width: 2em; height: 2em; vertical-align: middle; border-radius: 50%" ?hidden=${image === undefined} src="${image ? '/' + image + '/view' : undefined}">
${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>`;
}
}

93
apps/ssb/tf-utils.js Normal file

@ -0,0 +1,93 @@
import * as linkify from './commonmark-linkify.js';
import * as hashtagify from './commonmark-hashtag.js';
function image(node, entering) {
if (node.firstChild?.type === 'text' &&
node.firstChild.literal.startsWith('video:')) {
if (entering) {
this.lit('<video style="max-width: 100%; max-height: 480px" title="' + this.esc(node.firstChild?.literal) + '" controls>');
this.lit('<source src="' + this.esc(node.destination) + '"></source>');
this.disableTags += 1;
} else {
this.disableTags -= 1;
this.lit('</video>');
}
} else if (node.firstChild?.type === 'text' &&
node.firstChild.literal.startsWith('audio:')) {
if (entering) {
this.lit('<audio style="height: 32px; max-width: 100%" title="' + this.esc(node.firstChild?.literal) + '" controls>');
this.lit('<source src="' + this.esc(node.destination) + '"></source>');
this.disableTags += 1;
} else {
this.disableTags -= 1;
this.lit('</audio>');
}
} else {
if (entering) {
if (this.disableTags === 0) {
this.lit('<div class="img_caption">' + this.esc(node.firstChild?.literal || node.destination) + '</div>');
if (this.options.safe && potentiallyUnsafe(node.destination)) {
this.lit('<img src="" alt="');
} else {
this.lit('<img src="' + this.esc(node.destination) + '" alt="');
}
}
this.disableTags += 1;
} else {
this.disableTags -= 1;
if (this.disableTags === 0) {
if (node.title) {
this.lit('" title="' + this.esc(node.title));
}
this.lit('" />');
}
}
}
}
export function markdown(md) {
var reader = new commonmark.Parser({safe: true});
var writer = new commonmark.HtmlRenderer();
writer.image = image;
var parsed = reader.parse(md || '');
parsed = linkify.transform(parsed);
parsed = hashtagify.transform(parsed);
var walker = parsed.walker();
var event, node;
while ((event = walker.next())) {
node = event.node;
if (event.entering) {
if (node.type == 'link') {
if (node.destination.startsWith('@') &&
node.destination.endsWith('.ed25519')) {
node.destination = '#' + node.destination;
} else if (node.destination.startsWith('%') &&
node.destination.endsWith('.sha256')) {
node.destination = '#' + node.destination;
} else if (node.destination.startsWith('&') &&
node.destination.endsWith('.sha256')) {
node.destination = '/' + node.destination + '/view';
}
} else if (node.type == 'image') {
if (node.destination.startsWith('&')) {
node.destination = '/' + node.destination + '/view';
}
}
}
}
return writer.render(parsed);
}
export function human_readable_size(bytes) {
let v = bytes;
let u = 'B';
for (let unit of ['kB', 'MB', 'GB']) {
if (v > 1024) {
v /= 1024;
u = unit;
} else {
break;
}
}
return `${Math.round(v * 10) / 10} ${u}`;
}

4
apps/todo.json Normal file

@ -0,0 +1,4 @@
{
"type": "tildefriends-app",
"emoji": "☑️"
}

@ -114,13 +114,12 @@ class TodoListElement extends LitElement {
@change=${event => self.input_change(event, item)}
@keydown=${event => self.input_keydown(event, item)}
@blur=${x => self.input_blur(item)}></input>
<span @click=${x => self.remove_item(item)}>x</span></div>
<span @click=${x => self.remove_item(item)} style="cursor: pointer"></span></div>
`;
} else {
return html`
<div><input type="checkbox" ?checked=${item.x} @change=${x => self.handle_check(x, item)}></input>
<span @click=${x => self.editing = index}>${item.text}</span>
<span @click=${x => self.remove_item(item)} style="cursor: pointer"></span></div>
<span @click=${x => self.editing = index}>${item.text || '(empty)'}</span>
`;
}
}
@ -175,7 +174,8 @@ class TodoListElement extends LitElement {
return html`
<div style="border: 3px solid black; padding: 8px; margin: 8px; border-radius: 8px; background-color: #444">
${name}
${(this.items || []).map(x => self.render_item(x))}
${(this.items || []).filter(item => !item.x).map(x => self.render_item(x))}
${(this.items || []).filter(item => item.x).map(x => self.render_item(x))}
<button @click=${self.add_item}>+ Item</button>
<button @click=${self.remove_list}>- List</button>
</div>

@ -61,8 +61,7 @@ function socket(request, response, client) {
let process;
let options = {};
let credentials = auth.query(request.headers);
let refresh_token = credentials?.refresh?.token;
let refresh_interval = credentials?.refresh?.interval;
let refresh = auth.make_refresh(credentials);
response.onClose = async function() {
if (process && process.task) {
@ -198,9 +197,9 @@ function socket(request, response, client) {
}
}
if (refresh_token) {
if (refresh) {
return {
'Set-Cookie': `session=${refresh_token}; path=/; Max-Age=${refresh_interval}; Secure; SameSite=Strict`,
'Set-Cookie': `session=${refresh.token}; path=/; Max-Age=${refresh.interval}; Secure; SameSite=Strict`,
};
}
}

@ -1,7 +1,6 @@
import * as core from './core.js';
import * as form from './form.js';
let gTokens = {};
let gDatabase = new Database("auth");
const kRefreshInterval = 1 * 7 * 24 * 60 * 60 * 1000;
@ -171,7 +170,7 @@ function handler(request, response) {
}
}
let cookie = `session=${session}; path=/; Max-Age=${kRefreshInterval}; Secure; SameSite=Strict`;
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});
@ -225,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"});
@ -261,12 +260,17 @@ function query(headers) {
return {
session: entry,
permissions: autologin ? getPermissionsForUser(autologin) : getPermissions(session),
refresh: {
token: makeJwt({name: entry.name}),
interval: kRefreshInterval,
},
};
}
}
export { handler, query };
function make_refresh(credentials) {
if (credentials?.session?.name) {
return {
token: makeJwt({name: credentials.session.name}),
interval: kRefreshInterval,
};
}
}
export { handler, query, make_refresh };

@ -1,10 +1,10 @@
import {LitElement, html, css, svg} from '/static/lit/lit-all.min.js';
let gSocket;
let gCredentials;
let gPermissions;
let gCurrentFile;
let gFiles = {};
let gApp = {files: {}};
let gApp = {files: {}, emoji: '📦'};
let gEditor;
let gSplit;
let gGraphs = {};
@ -26,6 +26,310 @@ const k_api = {
setHash: {args: ['hash'], func: api_setHash},
};
const k_global_style = css`
a:link {
color: #268bd2;
}
a:visited {
color: #6c71c4;
}
a:hover {
color: #859900;
}
a:active {
color: #2aa198;
}
`;
class TfNavigationElement extends LitElement {
static get properties() {
return {
credentials: {type: Object},
permissions: {type: Object},
show_permissions: {type: Boolean},
status: {type: Object},
spark_lines: {type: Object},
version: {type: Object},
show_version: {type: Boolean},
};
}
constructor() {
super();
this.permissions = {};
this.show_permissions = false;
this.status = {};
this.spark_lines = {};
}
toggle_edit(event) {
event.preventDefault();
if (editing()) {
closeEditor();
} else {
edit();
}
}
reset_permission(key) {
send({action: "resetPermission", permission: key});
}
get_spark_line(key, options) {
if (!this.spark_lines[key]) {
let spark_line = document.createElement('tf-sparkline');
spark_line.style.display = 'flex';
spark_line.style.flexDirection = 'row';
spark_line.style.flex = '0 100 10em';
spark_line.title = key;
if (options) {
if (options.max) {
spark_line.max = options.max;
}
}
this.spark_lines[key] = spark_line;
this.requestUpdate();
}
return this.spark_lines[key];
}
render_login() {
if (this?.credentials?.session?.name) {
return html`<a href="/login/logout?return=${url() + hash()}">logout ${this.credentials.session.name}</a>`;
} else {
return html`<a href="/login?return=${url() + hash()}">login</a>`;
}
}
render_permissions() {
if (this.show_permissions) {
return html`
<div style="position: absolute; top: 0; padding: 0; margin: 0; z-index: 100; display: flex; justify-content: center; width: 100%">
<div style="background-color: #444; padding: 1em; margin: 0 auto; border-left: 4px solid #fff; border-right: 4px solid #fff; border-bottom: 4px solid #fff">
<div>This app has the following permissions:</div>
${Object.keys(this.permissions).map(key => html`
<div>
<span>${key}</span>: ${this.permissions[key] ? '✅ Allowed' : '❌ Denied'}
<button @click=${() => this.reset_permission(key)}>Reset</button>
</div>
`)}
<button @click=${() => this.show_permissions = false}>Close</button>
</div>
</div>
`;
}
}
render() {
let self = this;
return html`
<style>
${k_global_style}
</style>
<div style="margin: 4px; display: flex; flex-direction: row; flex-wrap: nowrap; gap: 3px">
<span style="cursor: pointer" @click=${() => this.show_version = !this.show_version}>😎</span>
<span ?hidden=${!this.show_version} style="flex: 0 0; white-space: nowrap" title=${this.version?.name + ' ' + Object.entries(this.version || {}).filter(x => ['name', 'number'].indexOf(x[0]) == -1).map(x => `\n* ${x[0]}: ${x[1]}`)}>${this.version?.number}</span>
<a accesskey="h" data-tip="Open home app." href="/" style="color: #fff; white-space: nowrap">TF</a>
<a accesskey="a" data-tip="Open apps list." href="/~core/apps/">apps</a>
<a accesskey="e" data-tip="Toggle the app editor." href="#" @click=${this.toggle_edit}>edit</a>
<a accesskey="p" data-tip="View and change permissions." href="#" @click=${() => self.show_permissions = !self.show_permissions}>🎛️</a>
<span style="display: inline-block; vertical-align: top; white-space: pre; color: ${this.status.color ?? kErrorColor}">${this.status.message}</span>
<span id="requests"></span>
${this.render_permissions()}
<span style="flex: 1 1; display: flex; flex-direction: row; white-space: nowrap; margin: 0; padding: 0">${Object.keys(this.spark_lines).sort().map(x => this.spark_lines[x]).map(x => [x.dataset.emoji, x])}</span>
<span style="flex: 0 0; white-space: nowrap">${this.render_login()}</span>
</div>
`;
}
}
customElements.define('tf-navigation', TfNavigationElement);
class TfFilesElement extends LitElement {
static get properties() {
return {
current: {type: String},
files: {type: Object},
};
}
constructor() {
super();
this.files = {};
}
file_click(file) {
this.dispatchEvent(new CustomEvent('file_click', {
detail: {
file: file,
},
bubbles: true,
composed: true,
}));
}
render_file(file) {
let classes = ['file'];
if (file == this.current) {
classes.push('current');
}
if (!this.files[file].clean) {
classes.push('dirty');
}
return html`<div class="${classes.join(' ')}" @click=${x => this.file_click(file)}>${file}</div>`;
}
render() {
let self = this;
return html`
<style>
div.file {
padding: 0.5em;
cursor: pointer;
}
div.file:hover {
background-color: #1a9188;
}
div.file::before {
content: '📄 ';
}
div.file.current {
font-weight: bold;
background-color: #2aa198;
}
div.file.dirty::after {
content: '*';
}
</style>
<div>
${Object.keys(this.files).sort().map(x => self.render_file(x))}
</div>
`;
}
}
customElements.define('tf-files', TfFilesElement);
class TfFilesPaneElement extends LitElement {
static get properties() {
return {
expanded: {type: Boolean},
current: {type: String},
files: {type: Object},
};
}
constructor() {
super();
this.expanded = window.localStorage.getItem('files') != '0';
this.files = {};
}
set_expanded(expanded) {
this.expanded = expanded;
window.localStorage.setItem('files', expanded ? '1' : '0');
}
render() {
let self = this;
let expander = this.expanded ?
html`<span @click=${() => self.set_expanded(false)} class="expander">«</span>` :
html`<span @click=${() => self.set_expanded(true)} class="expander">»</span>`;
let content = html`
<div id="files_content">
<tf-files .files=${self.files} current=${self.current} @file_click=${event => openFile(event.detail.file)}></tf-files>
<br>
<div><button @click=${() => newFile()}>New File</button></div>
<div><button @click=${() => removeFile()}>Remove File</button></div>
</div>
`;
return html`
<style>
.expander {
font-weight: bold;
width: 100%;
right: 0;
flex: 0;
padding: 0.25em;
cursor: pointer;
}
</style>
<div>
<div style="display: flex; flex-direction: row">
${this.expanded ? html`<span style="font-weight: bold; text-align: center; flex: 1">Files</span>` : undefined}
${expander}
</div>
${this.expanded ? content : undefined}
</div>
`;
}
}
customElements.define('tf-files-pane', TfFilesPaneElement);
class TfSparkLineElement extends LitElement {
static get properties() {
return {
lines: {type: Array},
min: {type: Number},
max: {type: Number},
};
}
constructor() {
super();
this.min = 0;
this.max = 1.0;
this.lines = [];
this.k_values_max = 100;
}
append(key, value) {
let line = null;
for (let it of this.lines) {
if (it.name == key) {
line = it;
break;
}
}
if (!line) {
const k_colors = ['#0f0', '#88f', '#ff0', '#f0f', '#0ff', '#f00', '#888'];
line = {
name: key,
style: k_colors[this.lines.length % k_colors.length],
values: Array(this.k_values_max).fill(0),
};
this.lines.push(line);
}
if (line.values.length >= this.k_values_max) {
line.values.shift();
}
line.values.push(value);
this.requestUpdate();
}
render_line(line) {
if (line?.values?.length >= 2) {
let max = Math.max(this.max, ...line.values);
let points = [].concat(...line.values.map((x, i) => [100.0 * i / (line.values.length - 1), 10.0 - 10.0 * (x - this.min) / (max - this.min)]));
return svg`<polyline points=${points.join(' ')} stroke=${line.style} fill="none"/>`;
}
}
render() {
let max = Math.round(10.0 * Math.max(...this.lines.map(line => line.values[line.values.length - 1]))) / 10.0;
return html`
<svg style="width-auto: object-fit: cover; margin: 0; padding: 0; background: #000" viewBox="0 0 100 10" preserveAspectRatio="none" xmlns="http://www.w3.org/2000/svg">
${this.lines.map(x => this.render_line(x))}
<text x="0" y="1em" style="font: 8px sans-serif; fill: #fff">${max}</text>
</svg>
`;
}
}
customElements.define('tf-sparkline', TfSparkLineElement);
window.addEventListener("keydown", function(event) {
if (event.keyCode == 83 && (event.altKey || event.ctrlKey)) {
if (editing()) {
@ -81,14 +385,6 @@ function editing() {
return document.getElementById("editPane").style.display != 'none';
}
function toggleEdit() {
if (editing()) {
closeEditor();
} else {
edit();
}
}
function edit() {
if (editing()) {
return;
@ -100,6 +396,7 @@ function edit() {
gSplit = undefined;
}
gSplit = Split(['#editPane', '#viewPane'], {minSize: 0});
document.getElementById("editPane").style.display = 'flex';
ensureLoaded([
{tagName: "script", attributes: {src: "/codemirror/codemirror.min.js"}},
@ -107,6 +404,7 @@ function edit() {
{tagName: "link", attributes: {rel: "stylesheet", href: "/codemirror/matchesonscrollbar.min.css"}},
{tagName: "link", attributes: {rel: "stylesheet", href: "/codemirror/dialog.min.css"}},
{tagName: "link", attributes: {rel: "stylesheet", href: "/codemirror/codemirror.min.css"}},
{tagName: "link", attributes: {rel: "stylesheet", href: "/codemirror/lint.css"}},
{tagName: "script", attributes: {src: "/codemirror/trailingspace.min.js"}},
{tagName: "script", attributes: {src: "/codemirror/dialog.min.js"}},
{tagName: "script", attributes: {src: "/codemirror/search.min.js"}},
@ -118,6 +416,9 @@ function edit() {
{tagName: "script", attributes: {src: "/codemirror/css.min.js"}},
{tagName: "script", attributes: {src: "/codemirror/xml.min.js"}},
{tagName: "script", attributes: {src: "/codemirror/htmlmixed.min.js"}},
{tagName: "script", attributes: {src: "/codemirror/lint.js"}},
{tagName: "script", attributes: {src: "/codemirror/jshint.js"}},
{tagName: "script", attributes: {src: "/codemirror/javascript-lint.min.js"}},
], function() {
load().catch(function(error) {
alert(error);
@ -126,30 +427,18 @@ function edit() {
});
}
function hideFiles() {
window.localStorage.setItem('files', '0');
document.getElementById('filesPane').classList.add('collapsed');
}
function showFiles() {
window.localStorage.setItem('files', '1');
document.getElementById('filesPane').classList.remove('collapsed');
}
function trace() {
window.open(`/speedscope/#profileURL=${encodeURIComponent('/trace')}&title=Tilde%20Friends`);
window.open(`/speedscope/#profileURL=${encodeURIComponent('/trace')}`);
}
function stats() {
window.localStorage.setItem('stats', '1');
document.getElementById("statsPane").style.display = 'flex';
send({action: 'enableStats', enabled: true});
}
function closeStats() {
window.localStorage.setItem('stats', '0');
document.getElementById("statsPane").style.display = 'none';
send({action: 'enableStats', enabled: false});
}
function toggleStats() {
@ -175,7 +464,6 @@ function loadFile(name, id) {
}).then(function(text) {
gFiles[name].doc = new CodeMirror.Doc(text, guessMode(name));
if (!Object.values(gFiles).some(x => !x.doc)) {
document.getElementById("editPane").style.display = 'flex';
openFile(Object.keys(gFiles).sort()[0]);
}
});
@ -200,6 +488,13 @@ function load(path) {
'indentUnit': 4,
'indentWithTabs': true,
'showTrailingSpace': true,
'gutters': ['CodeMirror-lint-markers'],
'mode': {'js': 'javascript'}[(path || url()).split('.').pop()],
'lint': {
'options': {
'esversion': 2021,
},
},
});
gEditor.on('changes', function() {
updateFiles();
@ -219,6 +514,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';
@ -293,6 +590,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));
@ -325,6 +623,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();
@ -390,7 +696,8 @@ function api_localStorageGet(key) {
}
function api_requestPermission(permission, id) {
let permissions = document.getElementById('permissions');
let outer = document.createElement('div');
outer.classList.add('permissions');
let container = document.createElement('div');
container.classList.add('permissions_contents');
@ -434,17 +741,14 @@ function api_requestPermission(permission, id) {
button.innerText = option.text;
button.onclick = function() {
resolve(option.grant[check.checked ? 1 : 0]);
while (permissions.firstChild) {
permissions.removeChild(permissions.firstChild);
}
permissions.style.visibility = 'hidden';
document.body.removeChild(outer);
}
div.appendChild(button);
}
container.appendChild(div);
outer.appendChild(container);
permissions.appendChild(container);
permissions.style.visibility = 'visible';
document.body.appendChild(outer);
});
}
@ -456,85 +760,19 @@ function api_setHash(hash) {
window.location.hash = hash;
}
function hidePermissions() {
let permissions = document.getElementById('permissions_settings');
while (permissions.firstChild) {
permissions.removeChild(permissions.firstChild);
}
permissions.style.visibility = 'hidden';
}
function showPermissions() {
let permissions = document.getElementById('permissions_settings');
let container = document.createElement('div');
container.classList.add('permissions_contents');
let div = document.createElement('div');
div.appendChild(document.createTextNode('This app has the following permission:'));
for (let key of Object.keys(gPermissions || {})) {
let row = document.createElement('div');
let span = document.createElement('span');
span.appendChild(document.createTextNode(key));
row.appendChild(span);
span = document.createElement('span');
span.appendChild(document.createTextNode(': '));
row.appendChild(span);
span = document.createElement('span');
span.appendChild(document.createTextNode(gPermissions[key] ? '✅ Allowed' : '❌ Denied'));
row.appendChild(span);
span = document.createElement('span');
span.appendChild(document.createTextNode(' '));
row.appendChild(span);
let button = document.createElement('button');
button.innerText = 'Reset';
button.onclick = function() {
send({action: "resetPermission", permission: key});
};
row.appendChild(button);
div.appendChild(row);
}
container.appendChild(div);
div = document.createElement('div');
let button = document.createElement('button');
button.innerText = 'Close';
button.onclick = function() {
hidePermissions();
}
div.appendChild(button);
container.appendChild(div);
permissions.appendChild(container);
permissions.style.visibility = 'visible';
}
function _receive_websocket_message(message) {
if (message && message.action == "session") {
setStatusMessage("🟢 Executing...", kStatusColor);
gCredentials = message.credentials;
updateLogin();
document.getElementsByTagName('tf-navigation')[0].credentials = message.credentials;
} else if (message && message.action == 'permissions') {
gPermissions = message.permissions;
let permissions = document.getElementById('permissions_settings');
if (permissions.firstChild) {
hidePermissions();
showPermissions();
}
document.getElementsByTagName('tf-navigation')[0].permissions = message.permissions ?? {};
} else if (message && message.action == "ready") {
setStatusMessage(null);
if (window.location.hash) {
send({event: "hashChange", hash: window.location.hash});
}
if (window.localStorage.getItem('stats') == '1') {
/* Stats were opened before we connected. */
send({action: 'enableStats', enabled: true});
}
document.getElementsByTagName('tf-navigation')[0].version = message.version;
send({action: 'enableStats', enabled: true});
} else if (message && message.action == "ping") {
send({action: "pong"});
} else if (message && message.action == "stats") {
@ -544,6 +782,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'},
@ -552,8 +793,8 @@ 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'},
messages_stored: {group: 'store', name: 'messages'},
blobs_stored: {group: 'store', name: 'blobs'},
socket_count: {group: 'socket', name: 'total'},
socket_open_count: {group: 'socket', name: 'open'},
@ -613,6 +854,16 @@ function _receive_websocket_message(message) {
}
}
timeseries.append(now, message.stats[key]);
if (graph_key == 'cpu' || graph_key == 'rpc' || graph_key == 'store') {
let line = document.getElementsByTagName('tf-navigation')[0].get_spark_line(graph_key, { max: 100 });
line.dataset.emoji = {
'cpu': '💻',
'rpc': '🔁',
'store': '💾',
}[graph_key];
line.append(key, message.stats[key]);
}
}
} else if (message &&
message.message === 'tfrpc' &&
@ -638,27 +889,8 @@ function _receive_websocket_message(message) {
}
}
function keyEvent(event) {
send({
event: "key",
type: event.type,
which: event.which,
keyCode: event.keyCode,
charCode: event.charCode,
character: String.fromCharCode(event.keyCode || event.which),
altKey: event.altKey,
});
}
function setStatusMessage(message, color) {
let node = document.getElementById("status");
while (node.firstChild) {
node.removeChild(node.firstChild);
}
if (message) {
node.appendChild(document.createTextNode(message));
node.setAttribute("style", "display: inline-block; vertical-align: top; white-space: pre; color: " + (color || kErrorColor));
}
document.getElementsByTagName('tf-navigation')[0].status = {message: message, color: color};
}
function send(value) {
@ -671,23 +903,6 @@ function send(value) {
}
}
function updateLogin() {
let login = document.getElementById("login");
while (login.firstChild) {
login.removeChild(login.firstChild);
}
let a = document.createElement("a");
if (gCredentials && gCredentials.session) {
a.appendChild(document.createTextNode("logout " + gCredentials.session.name));
a.setAttribute("href", "/login/logout?return=" + encodeURIComponent(url() + hash()));
} else {
a.appendChild(document.createTextNode("login"));
a.setAttribute("href", "/login?return=" + encodeURIComponent(url() + hash()));
}
login.appendChild(a);
}
function dragHover(event) {
event.stopPropagation();
event.preventDefault();
@ -828,10 +1043,12 @@ function message(event) {
function reconnect(path) {
let oldSocket = gSocket;
gSocket = null
oldSocket.onopen = null;
oldSocket.onclose = null;
oldSocket.onmessage = null;
oldSocket.close();
if (oldSocket) {
oldSocket.onopen = null;
oldSocket.onclose = null;
oldSocket.onmessage = null;
oldSocket.close();
}
connectSocket(path);
}
@ -895,27 +1112,13 @@ function openFile(name) {
gEditor.focus();
}
function onFileClicked(event) {
openFile(event.target.textContent);
}
function updateFiles() {
let node = document.getElementById("files");
while (node.firstChild) {
node.removeChild(node.firstChild);
}
for (let file of Object.keys(gFiles).sort()) {
let li = document.createElement("li");
li.onclick = onFileClicked;
li.appendChild(document.createTextNode(file));
if (file == gCurrentFile) {
li.classList.add("current");
}
if (!gFiles[file].doc.isClean(gFiles[file].generation)) {
li.classList.add("dirty");
}
node.appendChild(li);
let files = document.getElementsByTagName("tf-files-pane")[0];
if (files) {
files.files = Object.fromEntries(Object.keys(gFiles).map(file => [file, {
clean: gFiles[file].doc.isClean(gFiles[file].generation),
}]));
files.current = gCurrentFile;
}
gEditor.focus();
@ -950,27 +1153,19 @@ 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();
event.preventDefault();
trace();
});
document.getElementById('stats_button').addEventListener('click', function(event) {
event.preventDefault();
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');
@ -1003,11 +1198,6 @@ window.addEventListener("load", function() {
} else {
closeEditor();
}
if (window.localStorage.getItem('files') == '1') {
showFiles();
} else {
hideFiles();
}
if (window.localStorage.getItem('stats') == '1') {
stats();
} else {

@ -1,11 +1,46 @@
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 http from './http.js';
import * as httpd from './httpd.js';
let gProcessIndex = 0;
let gProcesses = {};
let gStatsTimer = false;
const k_mime_types = {
'css': 'text/css',
'html': 'text/html',
'js': 'text/javascript',
'json': 'text/json',
'map': 'application/json',
'svg': 'image/svg+xml',
};
const k_magic_bytes = [
{bytes: [0xff, 0xd8, 0xff, 0xdb], type: 'image/jpeg'},
{bytes: [0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, 0x49, 0x46, 0x00, 0x01], type: 'image/jpeg'},
{bytes: [0xff, 0xd8, 0xff, 0xee], type: 'image/jpeg'},
{bytes: [0xff, 0xd8, 0xff, 0xe1, null, null, 0x45, 0x78, 0x69, 0x66, 0x00, 0x00], type: 'image/jpeg'},
{bytes: [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a], type: 'image/png'},
{bytes: [0x47, 0x49, 0x46, 0x38, 0x37, 0x61], type: 'image/gif'},
{bytes: [0x47, 0x49, 0x46, 0x38, 0x39, 0x61], type: 'image/gif'},
{bytes: [0x52, 0x49, 0x46, 0x46, null, null, null, null, 0x57, 0x45, 0x42, 0x50], type: 'image/webp'},
{bytes: [0x3c, 0x73, 0x76, 0x67], type: 'image/svg+xml'},
{bytes: [null, null, null, null, 0x66, 0x74, 0x79, 0x70, 0x6d, 0x70, 0x34, 0x32], type: 'audio/mpeg'},
{bytes: [null, null, null, null, 0x66, 0x74, 0x79, 0x70, 0x69, 0x73, 0x6f, 0x6d], type: 'video/mp4'},
{bytes: [null, null, null, null, 0x66, 0x74, 0x79, 0x70, 0x6d, 0x70, 0x34, 0x32], type: 'video/mp4'},
];
let k_static_files = [
{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'},
{uri: '/client.js', type: 'text/javascript; charset=UTF-8'},
{uri: '/tfrpc.js', type: 'text/javascript; charset=UTF-8', headers: {'Access-Control-Allow-Origin': 'null'}},
{uri: '/robots.txt', type: 'text/plain; charset=UTF-8'},
];
const k_global_settings = {
index: {
type: 'string',
@ -32,14 +67,17 @@ const k_global_settings = {
default_value: undefined,
description: 'If connecting by HTTP and HTTPS is configured, Location header prefix (ie, "https://example.com")',
},
fetch_hosts: {
type: 'string',
default_value: undefined,
description: 'Comma-separated list of host names to which HTTP fetch requests are allowed. None if empty.',
},
};
let gGlobalSettings = {
index: "/~core/apps/",
};
let kGlobalSettingsFile = "data/global/settings.json";
let kPingInterval = 60 * 1000;
function printError(out, error) {
@ -47,8 +85,8 @@ function printError(out, error) {
out.print(error.fileName + ":" + error.lineNumber + ": " + error.message);
out.print(error.stackTrace);
} else {
for (let i in error) {
out.print(i);
for (let [k, v] of Object.entries(error)) {
out.print(k, v);
}
out.print(error.toString());
}
@ -145,12 +183,12 @@ async function getSessionProcessBlob(blobId, session, options) {
return getProcessBlob(blobId, 'session_' + session, actualOptions);
}
let gManifestCache = {};
async function getProcessBlob(blobId, key, options) {
let process = gProcesses[key];
if (!process
&& !(options && "create" in options && !options.create)) {
let resolveReady;
let rejectReady;
try {
print("Creating task for " + blobId + " " + key);
process = {};
@ -160,13 +198,13 @@ async function getProcessBlob(blobId, key, options) {
process.credentials = options.credentials || {};
process.task = new Task();
process.eventHandlers = {};
process.app = new app.App();
if (!options?.script || options?.script === 'app.js') {
process.app = new app.App();
}
process.lastActive = Date.now();
process.lastPing = null;
process.timeout = options.timeout;
process.stats = false;
let resolveReady;
let rejectReady;
process.ready = new Promise(function(resolve, reject) {
resolveReady = resolve;
rejectReady = reject;
@ -246,7 +284,7 @@ async function getProcessBlob(blobId, key, options) {
throw Error(`Permission denied: ${permission}.`);
}
} else {
} else if (process.app) {
return process.app.makeFunction(['requestPermission'])(permission).then(function(value) {
if (value == 'allow') {
storePermission(user, options.packageOwner, options.packageName, permission, true);
@ -263,6 +301,8 @@ async function getProcessBlob(blobId, key, options) {
}
throw Error(`Permission denied: ${permission}.`);
});
} else {
throw Error(`Permission denied: ${permission}.`);
}
},
}
@ -313,14 +353,23 @@ async function getProcessBlob(blobId, key, options) {
imports.app[api[0]] = process.app.makeFunction(api);
}
}
for (let [name, f] of Object.entries(options?.imports || {})) {
imports[name] = f;
}
process.task.onPrint = function(args) {
imports.app.print(...args);
if (imports.app) {
imports.app.print(...args);
}
};
process.task.onError = function(error) {
try {
process.app.makeFunction(['error'])(error);
} catch(e) {
print(e);
if (process.app) {
process.app.makeFunction(['error'])(error);
} else {
printError({print: print}, error);
}
} catch (e) {
printError({print: print}, error);
}
};
imports.ssb = Object.fromEntries(Object.keys(ssb).map(key => [key, ssb[key].bind(ssb)]));
@ -347,6 +396,23 @@ async function getProcessBlob(blobId, key, options) {
});
}
};
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);
}
};
imports.fetch = function(url, options) {
return http.fetch(url, options, gGlobalSettings.fetch_hosts);
}
if (process.credentials &&
process.credentials.session &&
@ -385,7 +451,7 @@ async function getProcessBlob(blobId, key, options) {
try {
let appObject = JSON.parse(appSource);
if (appObject.type == "tildefriends-app") {
appSourceName = 'app.js';
appSourceName = options?.script ?? 'app.js';
let id = appObject.files[appSourceName];
let blob = await getBlobOrContent(id);
appSource = utf8Decode(blob);
@ -398,19 +464,23 @@ async function getProcessBlob(blobId, key, options) {
printError({print: print}, e);
}
broadcastEvent('onSessionBegin', [getUser(process, process)]);
resolveReady(process);
if (process.app) {
process.app.send({action: "ready"});
process.app.send({action: "ready", version: version()});
process.sendPermissions();
}
await process.task.execute({name: appSourceName, source: appSource});
resolveReady(process);
} catch (error) {
if (process?.task?.onError) {
process.task.onError(error);
if (process.app) {
if (process?.task?.onError) {
process.task.onError(error);
} else {
printError({print: print}, error);
}
} else {
printError({print: print}, error);
}
rejectReady();
rejectReady(error);
}
}
return process;
@ -425,20 +495,11 @@ function setGlobalSettings(settings) {
}
}
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'},
{uri: '/client.js', type: 'text/javascript; charset=UTF-8'},
{uri: '/tfrpc.js', type: 'text/javascript; charset=UTF-8', headers: {'Access-Control-Allow-Origin': 'null'}},
{uri: '/robots.txt', type: 'text/plain; charset=UTF-8'},
];
function startsWithBytes(data, bytes) {
if (data.byteLength >= bytes.length) {
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) {
if (dataBytes[i] !== bytes[i] && bytes[i] !== null) {
return;
}
}
@ -447,16 +508,16 @@ function startsWithBytes(data, bytes) {
}
async function staticFileHandler(request, response, blobId, uri) {
for (let i in kStaticFiles) {
if (uri === kStaticFiles[i].uri) {
let path = kStaticFiles[i].path || uri.substring(1);
let type = kStaticFiles[i].type || guessType(path);
for (let i in k_static_files) {
if (uri === k_static_files[i].uri) {
let path = k_static_files[i].path || uri.substring(1);
let type = k_static_files[i].type || guessTypeFromName(path);
let stat = await File.stat('core/' + path);
let id = `${stat.mtime}_${stat.size}`;
if (request.headers['if-none-match'] === '"' + id + '"') {
response.writeHead(304, {});
response.writeHead(304, {'Content-Length': '0'});
response.end();
} else {
let data = await File.readFile('core/' + path);
@ -466,7 +527,7 @@ async function staticFileHandler(request, response, blobId, uri) {
'Content-Length': data.byteLength,
'etag': '"' + id + '"',
},
kStaticFiles[i].headers || {}));
k_static_files[i].headers || {}));
response.end(data);
}
return;
@ -477,14 +538,6 @@ async function staticFileHandler(request, response, blobId, uri) {
response.end("File not found");
}
const k_mime_types = {
'json': 'text/json',
'js': 'text/javascript',
'html': 'text/html',
'css': 'text/css',
'map': 'application/json',
};
async function staticDirectoryHandler(request, response, directory, uri) {
let filename = uri || 'index.html';
if (filename.indexOf('..') != -1) {
@ -498,7 +551,7 @@ async function staticDirectoryHandler(request, response, directory, uri) {
let id = `${stat.mtime}_${stat.size}`;
if (request.headers['if-none-match'] === '"' + id + '"') {
response.writeHead(304, {});
response.writeHead(304, {'Content-Length': '0'});
response.end();
} else {
let data = await File.readFile(directory + filename);
@ -526,37 +579,25 @@ async function wellKnownHandler(request, response, path) {
}
}
function sendData(response, data, type, headers) {
if (data) {
if (startsWithBytes(data, [0xff, 0xd8, 0xff, 0xdb]) ||
startsWithBytes(data, [0xff, 0xd8, 0xff, 0xe0, 0x00, 0x10, 0x4a, 0x46, 0x49, 0x46, 0x00, 0x01]) ||
startsWithBytes(data, [0xff, 0xd8, 0xff, 0xee]) ||
startsWithBytes(data, [0xff, 0xd8, 0xff, 0xe1, null, null, 0x45, 0x78, 0x69, 0x66, 0x00, 0x00])) {
response.writeHead(200, Object.assign({"Content-Type": "image/jpeg", "Content-Length": data.byteLength}, headers || {}));
response.end(data);
} else if (startsWithBytes(data, [0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a])) {
response.writeHead(200, Object.assign({"Content-Type": "image/png", "Content-Length": data.byteLength}, headers || {}));
response.end(data);
} else if (startsWithBytes(data, [0x47, 0x49, 0x46, 0x38, 0x37, 0x61]) ||
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, [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);
} else if (startsWithBytes(data, [null, null, null, null, 0x66, 0x74, 0x79, 0x70, 0x69, 0x73, 0x6f, 0x6d]) ||
startsWithBytes(data, [null, null, null, null, 0x66, 0x74, 0x79, 0x70, 0x6d, 0x70, 0x34, 0x32])) {
response.writeHead(200, Object.assign({"Content-Type": "video/mp4", "Content-Length": data.byteLength}, headers || {}));
response.end(data);
} else {
response.writeHead(200, Object.assign({"Content-Type": type || "application/binary", "Content-Length": data.byteLength}, headers || {}));
response.end(data);
function guessTypeFromName(path) {
let extension = path.split('.').pop();
return k_mime_types[extension];
}
function guessTypeFromMagicBytes(data) {
for (let magic of k_magic_bytes) {
if (startsWithBytes(data, magic.bytes)) {
return magic.type;
}
}
}
function sendData(response, data, type, headers, status_code) {
if (data) {
response.writeHead(status_code ?? 200, Object.assign({"Content-Type": type || guessTypeFromMagicBytes(data) || "application/binary", "Content-Length": data.byteLength}, headers || {}));
response.end(data);
} else {
response.writeHead(404, Object.assign({"Content-Type": "text/plain; charset=utf-8", "Content-Length": "File not found".length}, headers || {}));
response.writeHead(status_code ?? 404, Object.assign({"Content-Type": "text/plain; charset=utf-8", "Content-Length": "File not found".length}, headers || {}));
response.end("File not found");
}
}
@ -571,35 +612,58 @@ async function getBlobOrContent(id) {
}
}
function guessType(path) {
const k_extension_to_type = {
'css': 'text/css',
'html': 'text/html',
'js': 'text/javascript',
'svg': 'image/svg+xml',
};
let extension = path.split('.').pop();
return k_extension_to_type[extension];
let g_handler_index = 0;
async function useAppHandler(response, handler_blob_id, path, query, headers, packageOwner, packageName) {
print('useAppHandler', packageOwner, packageName);
let do_resolve;
let promise = new Promise(async function(resolve, reject) {
do_resolve = resolve;
});
let process;
let result;
try {
process = await getProcessBlob(handler_blob_id, 'handler_' + g_handler_index++, {
script: 'handler.js',
imports: {
request: {
path: path,
query: query,
},
respond: do_resolve,
},
credentials: auth.query(headers),
packageOwner: packageOwner,
packageName: packageName,
});
await process.ready;
result = await promise;
} finally {
if (process?.task) {
await process.task.kill();
}
}
return result;
}
async function blobHandler(request, response, blobId, uri) {
for (let i in kStaticFiles) {
if (uri === kStaticFiles[i].uri && kStaticFiles[i].path) {
let stat = await File.stat('core/' + kStaticFiles[i].path);
for (let i in k_static_files) {
if (uri === k_static_files[i].uri && k_static_files[i].path) {
let stat = await File.stat('core/' + k_static_files[i].path);
let id = `${stat.mtime}_${stat.size}`;
if (request.headers['if-none-match'] === '"' + id + '"') {
response.writeHead(304, {});
response.writeHead(304, {'Content-Length': '0'});
response.end();
} else {
let data = await File.readFile('core/' + kStaticFiles[i].path);
let data = await File.readFile('core/' + k_static_files[i].path);
response.writeHead(200, Object.assign(
{
'Content-Type': kStaticFiles[i].type,
'Content-Type': k_static_files[i].type,
'Content-Length': data.byteLength,
'etag': '"' + id + '"',
},
kStaticFiles[i].headers || {}));
k_static_files[i].headers || {}));
response.end(data);
}
return;
@ -616,11 +680,19 @@ async function blobHandler(request, response, blobId, uri) {
if (uri == "/view") {
let data;
let match;
let query = form.decodeForm(request.query);
let headers = {
'Content-Security-Policy': 'sandbox',
};
if (query.filename && query.filename.match(/^[A-Za-z0-9\.-]*$/)) {
headers['Content-Disposition'] = `attachment; filename=${query.filename}`;
}
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
let id = await new Database(match[1]).get('path:' + match[2]);
if (id) {
if (request.headers['if-none-match'] === '"' + id + '"') {
response.writeHead(304, {});
headers['Content-Length'] = '0';
response.writeHead(304, headers);
response.end();
} else {
data = await getBlobOrContent(id);
@ -628,23 +700,25 @@ async function blobHandler(request, response, blobId, uri) {
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, {});
headers['Content-Length'] = '0';
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, {});
headers['Content-Length'] = '0';
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") {
@ -705,7 +779,7 @@ async function blobHandler(request, response, blobId, uri) {
} catch {
}
if (apps.delete(appName)) {
database.set('apps', JSON.stringify([...apps]));
database.set('apps', JSON.stringify([...apps].sort()));
}
database.remove('path:' + appName);
} else {
@ -719,43 +793,58 @@ async function blobHandler(request, response, blobId, uri) {
response.end('OK');
} else {
let data;
let type;
let headers;
let match;
let id;
let app_id = blobId;
let packageOwner;
let packageName;
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
packageOwner = match[1];
packageName = 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 = {
'Access-Control-Allow-Origin': '*',
};
response.writeHead(304, headers);
response.end();
} else {
data = utf8Decode(await getBlobOrContent(id));
let appObject = JSON.parse(data);
data = appObject.files[uri.substring(1)];
data = await getBlobOrContent(data);
type = guessType(uri);
headers = {
'ETag': '"' + id + '"',
'Access-Control-Allow-Origin': '*',
};
sendData(response, data, type, headers);
}
app_id = await db.get('path:' + match[2]);
}
let app_object = JSON.parse(utf8Decode(await getBlobOrContent(app_id)));
id = app_object.files[uri.substring(1)];
if (!id && app_object.files['handler.js']) {
let answer;
try {
answer = await useAppHandler(response, app_id, uri.substring(1), request.query ? form.decodeForm(request.query) : undefined, request.headers, packageOwner, packageName);
} catch (error) {
data = utf8Encode(`Internal Server Error\n\n${error?.message}\n${error?.stack}`);
response.writeHead(500, {'Content-Type': 'text/plain; charset=utf-8', 'Content-Length': data.length});
response.end(data);
return;
}
if (answer && typeof answer.data == 'string') {
answer.data = utf8Encode(answer.data);
}
sendData(response, answer?.data, answer?.content_type, Object.assign(answer?.headers ?? {}, {
'Access-Control-Allow-Origin': '*',
'Content-Security-Policy': 'sandbox',
}), answer.status_code);
} else if (id) {
if (request.headers['if-none-match'] && request.headers['if-none-match'] == '"' + id + '"') {
let headers = {
'Access-Control-Allow-Origin': '*',
'Content-Security-Policy': 'sandbox',
'Content-Length': '0',
};
response.writeHead(304, headers);
response.end();
} else {
let headers = {
'ETag': '"' + id + '"',
'Access-Control-Allow-Origin': '*',
'Content-Security-Policy': 'sandbox',
};
data = await getBlobOrContent(id);
let type = guessTypeFromName(uri) || guessTypeFromMagicBytes(data);
sendData(response, data, type, headers);
}
} else {
data = utf8Decode(await getBlobOrContent(blobId));
let appObject = JSON.parse(data);
data = appObject.files[uri.substring(1)];
data = await getBlobOrContent(data);
headers = {
'Access-Control-Allow-Origin': '*',
};
sendData(response, data, type, headers);
sendData(response, data, undefined, {});
}
}
}
@ -769,8 +858,7 @@ ssb.addEventListener('connections', function() {
});
async function loadSettings() {
let data;
let data = {};
try {
let settings = new Database('core').get('settings');
if (settings) {
@ -779,19 +867,12 @@ async function loadSettings() {
} 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;
}
gGlobalSettings = data;
}
function sendStats() {
@ -815,6 +896,16 @@ function enableStats(process, enabled) {
}
}
function stringResponse(response, data) {
let bytes = utf8Encode(data);
response.writeHead(200, {
"Content-Type": "application/json; charset=utf-8",
"Content-Length": bytes.byteLength.toString(),
"Access-Control-Allow-Origin": "*",
});
return response.end(bytes);
}
loadSettings().then(function() {
httpd.all("/login", auth.handler);
httpd.all("", function(request, response) {
@ -826,8 +917,8 @@ loadSettings().then(function() {
return blobHandler(request, response, match[1], match[2]);
} else if (match = /^\/([&\%][^\.]{44}(?:\.\w+)?)(\/?.*)/.exec(request.uri)) {
return blobHandler(request, response, match[1], match[2]);
} else if (match = /^\/static(\/.*)/.exec(request.uri)) {
return staticFileHandler(request, response, null, match[1]);
} else if (match = /^\/static\/lit\/([\.\w-/]*)$/.exec(request.uri)) {
return staticDirectoryHandler(request, response, 'deps/lit/', match[1]);
} else if (match = /^\/codemirror\/([\.\w-/]*)$/.exec(request.uri)) {
return staticDirectoryHandler(request, response, 'deps/codemirror/', match[1]);
} else if (match = /^\/speedscope\/([\.\w-/]*)$/.exec(request.uri)) {
@ -836,22 +927,22 @@ loadSettings().then(function() {
return staticDirectoryHandler(request, response, 'deps/split/', match[1]);
} else if (match = /^\/smoothie\/([\.\w-/]*)$/.exec(request.uri)) {
return staticDirectoryHandler(request, response, 'deps/smoothie/', match[1]);
} else if (match = /^\/static(\/.*)/.exec(request.uri)) {
return staticFileHandler(request, response, null, match[1]);
} else if (request.uri == "/robots.txt") {
return staticFileHandler(request, response, null, request.uri);
} else if (match = /^(.*)(\/(?:save|delete)?)$/.exec(request.uri)) {
return blobHandler(request, response, match[1], match[2]);
} else if (match = /^\/trace$/.exec(request.uri)) {
let data = trace();
response.writeHead(200, {"Content-Type": "application/json; charset=utf-8", "Content-Length": data.length.toString()});
return response.end(data);
return stringResponse(response, trace());
} 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);
return stringResponse(response, JSON.stringify(disconnectionsDebug(), null, 2));
} else if (match = /^\/debug$/.exec(request.uri)) {
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 (request.uri == "/robots.txt") {
return blobHandler(request, response, null, request.uri);
return stringResponse(response, JSON.stringify(getDebug(), null, 2));
} else if (match = /^\/hitches$/.exec(request.uri)) {
return stringResponse(response, JSON.stringify(getHitches(), null, 2));
} else if (match = /^\/mem$/.exec(request.uri)) {
return stringResponse(response, JSON.stringify(getAllocations(), null, 2));
} else if ((match = /^\/.well-known\/(.*)/.exec(request.uri)) && request.uri.indexOf("..") == -1) {
return wellKnownHandler(request, response, match[1]);
} else {

@ -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;
}
}

86
core/http.js Normal file

@ -0,0 +1,86 @@
function parseUrl(url) {
// XXX: Hack.
let match = url.match(new RegExp("(\\w+)://([^/:]+)(?::(\\d+))?(.*)"));
return {
protocol: match[1],
host: match[2],
path: match[4],
port: match[3] ? parseInt(match[3]) : match[1] == "http" ? 80 : 443,
};
}
function parseResponse(data) {
let firstLine;
let headers = {};
while (true) {
let endLine = data.indexOf('\r\n');
let line = data.substring(0, endLine);
data = data.substring(endLine + 2);
if (!line.length) {
break;
} else if (!firstLine) {
firstLine = line;
} else {
let colon = line.indexOf(":");
headers[line.substring(colon)] = line.substring(colon + 1);
}
}
return {body: data};
}
export function fetch(url, options, allowed_hosts) {
let parsed = parseUrl(url);
return new Promise(function(resolve, reject) {
if ((allowed_hosts ?? []).indexOf(parsed.host) == -1) {
throw new Error(`fetch() request to host ${parsed.host} is not allowed.`);
}
let socket = new Socket();
let buffer = new Uint8Array(0);
return socket.connect(parsed.host, parsed.port).then(function() {
socket.read(function(data) {
if (data && data.length) {
let newBuffer = new Uint8Array(buffer.length + data.length);
newBuffer.set(buffer, 0);
newBuffer.set(data, buffer.length);
buffer = newBuffer;
} else {
let result = parseHttpResponse(buffer);
if (!result) {
reject(new Exception('Parse failed.'));
}
if (typeof result == 'number') {
if (result == -2) {
reject('Incomplete request.');
} else {
reject('Bad request.');
}
} else if (typeof result == 'object') {
resolve({
body: buffer.slice(result.bytes_parsed),
status: result.status,
message: result.message,
headers: result.headers,
});
} else {
reject(new Exception('Unexpected parse result.'));
}
resolve(parseResponse(utf8Decode(buffer)));
}
});
if (parsed.port == 443) {
return socket.startTls();
}
}).then(function() {
let body = typeof options?.body == 'string' ? utf8Encode(options.body) : (options.body || new Uint8Array(0));
let headers = utf8Encode(`${options?.method ?? 'GET'} ${parsed.path} HTTP/1.0\r\nHost: ${parsed.host}\r\nConnection: close\r\nContent-Length: ${body.length}\r\n\r\n`);
let fullRequest = new Uint8Array(headers.length + body.length);
fullRequest.set(headers, 0);
fullRequest.set(body, headers.length);
socket.write(fullRequest);
}).catch(function(error) {
reject(error);
});
});
}

@ -456,8 +456,6 @@ function handleConnection(client) {
}
}
client.noDelay = true;
client.onError(function(error) {
logError(client.peerName + " - - [" + new Date() + "] " + error);
});
@ -475,7 +473,7 @@ function handleConnection(client) {
if (parsing_header)
{
let result = parseHttp(inputBuffer, inputBuffer.length - data.length);
let result = parseHttpRequest(inputBuffer, inputBuffer.length - data.length);
if (result) {
if (typeof result === 'number') {
if (result == -2) {
@ -495,7 +493,7 @@ function handleConnection(client) {
parsing_header = false;
inputBuffer = inputBuffer.slice(result.bytes_parsed);
if (!client.tls && tildefriends.https_port && core.globalSettings.http_redirect) {
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"});
@ -554,14 +552,28 @@ function handleConnection(client) {
}
let kBacklog = 8;
let kHost = "0.0.0.0"
let kHost = '::';
let socket = new Socket();
socket.bind(kHost, tildefriends.http_port).then(function() {
let listenResult = socket.listen(kBacklog, function() {
socket.accept().then(handleConnection).catch(function(error) {
logError("[" + new Date() + "] accept error " + error);
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);
@ -574,6 +586,7 @@ if (tildefriends.https_port) {
return secureSocket.listen(kBacklog, async function() {
try {
let client = await secureSocket.accept();
client.noDelay = true;
client.tls = true;
const kCertificatePath = "data/httpd/certificate.pem";
const kPrivateKeyPath = "data/httpd/privatekey.pem";

@ -7,18 +7,7 @@
<meta name="viewport" content="width=device-width, initial-scale=1">
</head>
<body style="display: flex; flex-flow: column">
<div class="navigation">
<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="#" 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>
<span id="permissions"></span>
<span id="login"></span>
</div>
<tf-navigation></tf-navigation>
<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">
@ -30,25 +19,14 @@
<div class="navigation hbox">
<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="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">«</span>
<span id="files_show">»</span>
</div>
<div id="files_content">
<ul id="files"></ul>
<br>
<div><button id="new_file_button">New File</button></div>
<div><button id="remove_file_button">Remove File</button></div>
</div>
</div>
<tf-files-pane></tf-files-pane>
<div id="docPane" style="display: flex; flex: 1 1 50%; flex-flow: column">
<div style="flex: 1 1 50%; position: relative">
<textarea id="editor" class="main"></textarea>
@ -60,6 +38,7 @@
<iframe id="document" sandbox="allow-forms allow-scripts allow-top-navigation allow-modals allow-downloads" style="width: 100%; height: 100%; border: 0"></iframe>
</div>
</div>
<script>window.litDisableBundleWarning = true;</script>
<script src="/split/split.min.js"></script>
<script src="/smoothie/smoothie.js"></script>
<script src="/static/client.js" type="module"></script>

@ -15,11 +15,6 @@ body {
margin: 0;
}
.navigation {
height: auto;
margin: 4px;
}
a:link {
color: #268bd2;
}
@ -162,70 +157,6 @@ a:active {
.cyan { color: #2aa198; }
.green { color: #859900; }
#files_header {
font-weight: bold;
text-align: center;
flex: 1;
}
#files_hide {
font-weight: bold;
width: 100%;
right: 0;
flex: 0;
padding: 0.25em;
cursor: pointer;
}
#files_show {
display: none;
padding: 0.25em;
cursor: pointer;
}
#filesPane {
flex: 1 1 10%;
}
#filesPane.collapsed {
flex: 0;
}
.collapsed #files_header {
display: none;
}
.collapsed #files_content {
display: none;
}
.collapsed #files_hide {
display: none;
}
.collapsed #files_show {
display: block;
}
#files {
list-style-type: none;
margin: 0;
padding: 0;
}
#files > li {
padding: 0.5em;
}
#files > li.current {
font-weight: bold;
background-color: #2aa198;
}
#files > li.dirty::after {
content: '*';
}
.tooltip {
position: absolute;
z-index: 1;
@ -254,8 +185,7 @@ kbd {
white-space: nowrap;
}
#permissions, #permissions_settings {
visibility: hidden;
.permissions {
position: absolute;
display: block;
top: 0;

@ -39,9 +39,9 @@ function send(response) {
function call_rpc(message) {
if (message && message.message === 'tfrpc') {
let method = g_api[message.method];
let id = message.id;
if (message.method) {
let method = g_api[message.method];
if (method) {
try {
Promise.resolve(method(...message.params)).then(function(result) {
@ -53,7 +53,7 @@ function call_rpc(message) {
send({message: 'tfrpc', id: id, error: error});
}
} else {
throw new Error(message.method + ' not found.');
send({message: 'tfrpc', id: id, error: `Method '${message.method}' not found.`});
}
} else if (message.error !== undefined) {
if (g_calls[id]) {

@ -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

@ -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.

@ -1,2 +0,0 @@
AUTOMAKE_OPTIONS = foreign
SUBDIRS = src test

@ -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)

@ -1,3 +0,0 @@
#!/bin/sh
aclocal && automake --gnu --add-missing && autoconf

@ -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)

@ -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

Some files were not shown because too many files have changed in this diff Show More