Compare commits

..

160 Commits

Author SHA1 Message Date
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
c692b1b1f8 Modernize. All core JS is modules. var => let.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4155 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-28 22:44:45 +00:00
7091b6e6a5 Move some things to C that probably should have never been in JS, especially sha1. Minor refactors, cleanup, and deletes along the way.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4154 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-28 21:59:36 +00:00
48cd08e095 Some emoji picker and drafts tweaks.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4152 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-28 19:39:41 +00:00
ef7f9db9c4 Fix stats with multiple clients.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4151 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-28 00:14:56 +00:00
0092f24fb9 Fix votes multiplying, and make everything expand through the one true state.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4150 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-26 02:08:14 +00:00
f9db1a7acf Hoisting expanded state so that it plays better with stored drafts. Still learning to Lit Element.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4149 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-25 00:56:10 +00:00
da75ad9337 Fix buffer overflow.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4148 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-24 17:38:45 +00:00
7318ddd70e This might fix one disconnect issue, when a tunnel.connect error can't be forwarded?
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4147 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-22 23:34:32 +00:00
ab75ec07f8 Added some storage+debugging to track what happens before we disconnect. Maybe I'll learn something.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4146 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-22 20:37:19 +00:00
0a6b842179 Fix linkifying urls with #fragments in them. Show when an about message is not about the author.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4145 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-22 17:25:37 +00:00
5d5ff121f9 Socket leak on accept.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4144 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-21 20:12:41 +00:00
adefa76dfd Fixed blocked users slipping through.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4143 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-21 19:30:00 +00:00
2420869e7f Some fixes for drafts on threads.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4142 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-21 19:12:55 +00:00
f841ca4399 Always bugged me that I don't show the total number of child messages, just the direct number.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4141 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-21 18:58:49 +00:00
433db904cd Some draft fixes.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4140 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-21 01:39:00 +00:00
c067623740 Profile image update fix.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4139 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-21 00:21:26 +00:00
dab7050899 Experimenting with storing drafts. Fixed an old scary tfrpc bug which resulted in localStorageGet returning wrong values on subsequent calls.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4138 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-21 00:16:18 +00:00
77df158178 Don't create tunnel connections to targets we're already talking to. Policy is only one connection per id.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4137 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-19 00:02:31 +00:00
0af1bcf110 Audited message flags?
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4136 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-18 23:43:49 +00:00
e05302ac99 Oops. This caused a double-reject.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4135 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-18 23:14:44 +00:00
ce6cc82d64 Some socket fixes.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4134 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-18 23:03:17 +00:00
85a2bc3f0f Add a stat for blobs stored.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4133 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-18 22:52:54 +00:00
3285d93576 Expose stored connections on the connections tab. Still half-baked, but I'm going to use this.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4132 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-18 00:57:54 +00:00
0f11f497ed Expose stored connections to script, and only store connections that were explicitly requested.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4131 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-18 00:37:45 +00:00
45a5202456 Spelled this argument wrong.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4130 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-18 00:07:02 +00:00
ce0b4de5a1 Fix one lingering call to ssb.connectionSendJson.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4129 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-17 23:10:17 +00:00
134b2556ad Oh yeah, OpenSSL on windows, too, these days.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4128 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-17 22:56:36 +00:00
67d34bf70e Send history streams in batches. Should block the main thread less.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4127 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-17 02:17:29 +00:00
73863f9418 Minor error-sending cleanup. Produce callstacks.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4126 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-15 21:23:28 +00:00
0cbc1a650b Change blob_wants from a table to a view. We can discover the information pretty fast, so let's not store extra data.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4125 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-14 23:25:56 +00:00
9248dfd97e Docs and emoji picker and probably some other random app updates.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4124 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-14 22:27:35 +00:00
b8f54f324f Avoid sending a superfluous response, I think?
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4123 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-14 19:49:43 +00:00
3269c7ca45 Use tf_ssb_connection_rpc_send_json everywhere I can. Less code, and fixes some leaks.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4122 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-14 19:32:36 +00:00
8a1b4cceec Memory leak.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4121 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-14 14:05:31 +00:00
7cd925feca More message size fixing. Need to find the end of it.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4120 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-14 13:27:19 +00:00
f6ae15c4dc A variety of potential protocol/rpc fixes.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4119 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-14 00:55:51 +00:00
6ed057089b Remove the pull/push/revert buttons that I haven't used in ages.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4118 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-12 00:57:56 +00:00
a5ba014736 401 Unauthorized is an error response we send.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4117 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-12 00:01:47 +00:00
4d4cc92150 Optionally enforce an HTTP => HTTPS redirect.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4116 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-11 23:39:42 +00:00
3b00b31e87 Fix ping units, and don't spam it.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4115 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-11 02:30:07 +00:00
3c687dc780 A room.attendants left message with no id crashes some other clients. :/
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4114 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-11 01:55:23 +00:00
987b2d539a Trying to understand what's up with rooms. Various minor fixes and improvements.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4113 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-11 01:43:35 +00:00
80a1e94da4 Simplify and fix ebt.replicate.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4112 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-09 22:37:34 +00:00
69253432b8 ssb.js is now entirely in C. Usual disclaimers about it not being amazingly well tested.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4111 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-08 20:01:35 +00:00
53e4f4341c createHistoryStream JS -> C.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4110 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-08 17:45:15 +00:00
6ff33191bb Try to make the tests not mingle with other instances.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4109 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-08 13:48:28 +00:00
513eb88a53 -t rooms cleanup.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4108 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-08 00:44:36 +00:00
3506d9dec1 Rooms JS => C.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4107 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-08 00:25:38 +00:00
c09e043812 blob wants from JS -> C.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4106 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-05 00:52:23 +00:00
4c01f23ee8 blobs.createWants again without setTimeout to fix the test.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4105 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-04 23:11:49 +00:00
ff06e91ac8 Fix feed replication. Ugh, Cory.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4104 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-04 02:59:35 +00:00
8ed359327c Appease clang.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4103 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-03 00:49:21 +00:00
a66a70324d More blobs.get. Finally replicated again to manyverse.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4102 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-02 02:11:21 +00:00
67fbbd4a8d More generous receive buffer. Max RPC size is stored in two bytes. Double so that we have overhead for the header itself and another RPC.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4101 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-02 00:58:15 +00:00
235fc9b8f9 Oops.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4100 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-02 00:35:37 +00:00
f257cccded I think this fixes some blob replication bugs. Going to test more.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4099 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-02 00:33:11 +00:00
5342ddb2bd Fix an RPC stall? How did this ever work? How is it supposed to work?
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4098 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-01 22:42:31 +00:00
7cba1b21ad Fix HTTP request breakage.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4097 ed5197a5-7fde-0310-b194-c3ffbd925b24
2023-01-01 18:12:42 +00:00
120ed36552 Continuing to chip away at moving ssb.js to C. This time, following.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4096 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-31 21:44:48 +00:00
a9f6593979 Add replication to what -t bench measures. Add a bool to control printing RPC messages. Respond to ebt.replicate with messages that weren't requested.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4095 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-31 18:59:29 +00:00
ca6d042ed6 Use picohttpparser. No more messing around.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4094 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-31 16:47:10 +00:00
ae4c2aef69 + webp magic bytes.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4093 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-30 14:51:43 +00:00
ed1c85288c Exclude openssl binaries from the release .tar.xz.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4092 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-30 14:32:19 +00:00
71151a511d sqlite introduced an unused function, apparently. Ignore it.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4091 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-30 14:22:04 +00:00
7f35f01b88 sqlite-amalgamation-3400100.zip
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4090 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-30 13:59:05 +00:00
1d13c25ded tunnel.isRoom => C.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4089 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-30 01:23:44 +00:00
09ddfffa6b Add prebuild OpenSSL, and remove SCHANNEL code and whatever it was on MacOS. Build mingw for 64-bit.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4088 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-29 23:55:49 +00:00
d9aee6d05f Compile for android. Probably needs a bunch of work to run, but it's a step in a direction.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4087 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-29 21:58:54 +00:00
94d7d2e3e0 Formatting.
git-svn-id: https://www.unprompted.com/svn/projects/tildefriends/trunk@4086 ed5197a5-7fde-0310-b194-c3ffbd925b24
2022-12-29 17:01:27 +00:00
17793 changed files with 827692 additions and 7720 deletions
DockerfileMakefileREADME.md
apps
core
deps
base64c
libsodium
openssl
android
arm64-v8a
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
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
mingw64
bin
include
lib
share
doc
openssl
html
man1
man3
ADMISSIONS.htmlASN1_INTEGER_get_int64.htmlASN1_ITEM_lookup.htmlASN1_OBJECT_new.htmlASN1_STRING_TABLE_add.htmlASN1_STRING_length.htmlASN1_STRING_new.htmlASN1_STRING_print_ex.htmlASN1_TIME_set.htmlASN1_TYPE_get.htmlASN1_generate_nconf.htmlASYNC_WAIT_CTX_new.htmlASYNC_start_job.htmlBF_encrypt.htmlBIO_ADDR.htmlBIO_ADDRINFO.htmlBIO_connect.htmlBIO_ctrl.htmlBIO_f_base64.htmlBIO_f_buffer.htmlBIO_f_cipher.htmlBIO_f_md.htmlBIO_f_null.htmlBIO_f_ssl.htmlBIO_find_type.htmlBIO_get_data.htmlBIO_get_ex_new_index.htmlBIO_meth_new.htmlBIO_new.htmlBIO_new_CMS.htmlBIO_parse_hostserv.htmlBIO_printf.htmlBIO_push.htmlBIO_read.htmlBIO_s_accept.htmlBIO_s_bio.htmlBIO_s_connect.htmlBIO_s_fd.htmlBIO_s_file.htmlBIO_s_mem.htmlBIO_s_null.htmlBIO_s_socket.htmlBIO_set_callback.htmlBIO_should_retry.htmlBN_BLINDING_new.htmlBN_CTX_new.htmlBN_CTX_start.htmlBN_add.htmlBN_add_word.htmlBN_bn2bin.htmlBN_cmp.htmlBN_copy.htmlBN_generate_prime.htmlBN_mod_inverse.htmlBN_mod_mul_montgomery.htmlBN_mod_mul_reciprocal.htmlBN_new.htmlBN_num_bytes.htmlBN_rand.htmlBN_security_bits.htmlBN_set_bit.htmlBN_swap.htmlBN_zero.htmlBUF_MEM_new.htmlCMS_add0_cert.htmlCMS_add1_recipient_cert.htmlCMS_add1_signer.htmlCMS_compress.htmlCMS_decrypt.htmlCMS_encrypt.htmlCMS_final.htmlCMS_get0_RecipientInfos.htmlCMS_get0_SignerInfos.htmlCMS_get0_type.htmlCMS_get1_ReceiptRequest.htmlCMS_sign.htmlCMS_sign_receipt.htmlCMS_uncompress.htmlCMS_verify.htmlCMS_verify_receipt.htmlCONF_modules_free.htmlCONF_modules_load_file.htmlCRYPTO_THREAD_run_once.htmlCRYPTO_get_ex_new_index.htmlCRYPTO_memcmp.htmlCTLOG_STORE_get0_log_by_id.htmlCTLOG_STORE_new.htmlCTLOG_new.htmlCT_POLICY_EVAL_CTX_new.htmlDEFINE_STACK_OF.htmlDES_random_key.htmlDH_generate_key.htmlDH_generate_parameters.htmlDH_get0_pqg.htmlDH_get_1024_160.htmlDH_meth_new.htmlDH_new.htmlDH_new_by_nid.htmlDH_set_method.htmlDH_size.htmlDSA_SIG_new.htmlDSA_do_sign.htmlDSA_dup_DH.htmlDSA_generate_key.htmlDSA_generate_parameters.htmlDSA_get0_pqg.htmlDSA_meth_new.htmlDSA_new.htmlDSA_set_method.htmlDSA_sign.htmlDSA_size.htmlDTLS_get_data_mtu.htmlDTLS_set_timer_cb.htmlDTLSv1_listen.htmlECDSA_SIG_new.htmlECPKParameters_print.htmlEC_GFp_simple_method.htmlEC_GROUP_copy.htmlEC_GROUP_new.htmlEC_KEY_get_enc_flags.htmlEC_KEY_new.htmlEC_POINT_add.htmlEC_POINT_new.htmlENGINE_add.htmlERR_GET_LIB.htmlERR_clear_error.htmlERR_error_string.htmlERR_get_error.htmlERR_load_crypto_strings.htmlERR_load_strings.htmlERR_print_errors.htmlERR_put_error.htmlERR_remove_state.htmlERR_set_mark.htmlEVP_BytesToKey.htmlEVP_CIPHER_CTX_get_cipher_data.htmlEVP_CIPHER_meth_new.htmlEVP_DigestInit.htmlEVP_DigestSignInit.htmlEVP_DigestVerifyInit.htmlEVP_EncodeInit.htmlEVP_EncryptInit.htmlEVP_MD_meth_new.htmlEVP_OpenInit.htmlEVP_PKEY_ASN1_METHOD.htmlEVP_PKEY_CTX_ctrl.htmlEVP_PKEY_CTX_new.htmlEVP_PKEY_CTX_set1_pbe_pass.htmlEVP_PKEY_CTX_set_hkdf_md.htmlEVP_PKEY_CTX_set_rsa_pss_keygen_md.htmlEVP_PKEY_CTX_set_scrypt_N.htmlEVP_PKEY_CTX_set_tls1_prf_md.htmlEVP_PKEY_asn1_get_count.htmlEVP_PKEY_cmp.htmlEVP_PKEY_decrypt.htmlEVP_PKEY_derive.htmlEVP_PKEY_encrypt.htmlEVP_PKEY_get_default_digest_nid.htmlEVP_PKEY_keygen.htmlEVP_PKEY_meth_get_count.htmlEVP_PKEY_meth_new.htmlEVP_PKEY_new.htmlEVP_PKEY_print_private.htmlEVP_PKEY_set1_RSA.htmlEVP_PKEY_sign.htmlEVP_PKEY_size.htmlEVP_PKEY_verify.htmlEVP_PKEY_verify_recover.htmlEVP_SealInit.htmlEVP_SignInit.htmlEVP_VerifyInit.htmlEVP_aes.htmlEVP_aria.htmlEVP_bf_cbc.htmlEVP_blake2b512.htmlEVP_camellia.htmlEVP_cast5_cbc.htmlEVP_chacha20.htmlEVP_des.htmlEVP_desx_cbc.htmlEVP_idea_cbc.htmlEVP_md2.htmlEVP_md4.htmlEVP_md5.htmlEVP_mdc2.htmlEVP_rc2_cbc.htmlEVP_rc4.htmlEVP_rc5_32_12_16_cbc.htmlEVP_ripemd160.htmlEVP_seed_cbc.htmlEVP_sha1.htmlEVP_sha224.htmlEVP_sha3_224.htmlEVP_sm3.htmlEVP_sm4_cbc.htmlEVP_whirlpool.htmlHMAC.htmlMD5.htmlMDC2_Init.htmlOBJ_nid2obj.htmlOCSP_REQUEST_new.htmlOCSP_cert_to_id.htmlOCSP_request_add1_nonce.htmlOCSP_resp_find_status.htmlOCSP_response_status.htmlOCSP_sendreq_new.htmlOPENSSL_Applink.htmlOPENSSL_LH_COMPFUNC.htmlOPENSSL_LH_stats.htmlOPENSSL_VERSION_NUMBER.htmlOPENSSL_config.htmlOPENSSL_fork_prepare.htmlOPENSSL_ia32cap.htmlOPENSSL_init_crypto.htmlOPENSSL_init_ssl.htmlOPENSSL_instrument_bus.htmlOPENSSL_load_builtin_modules.htmlOPENSSL_malloc.htmlOPENSSL_secure_malloc.htmlOSSL_STORE_INFO.htmlOSSL_STORE_LOADER.htmlOSSL_STORE_SEARCH.htmlOSSL_STORE_expect.htmlOSSL_STORE_open.htmlOpenSSL_add_all_algorithms.htmlPEM_bytes_read_bio.htmlPEM_read.htmlPEM_read_CMS.htmlPEM_read_bio_PrivateKey.htmlPEM_read_bio_ex.htmlPEM_write_bio_CMS_stream.htmlPEM_write_bio_PKCS7_stream.htmlPKCS12_create.htmlPKCS12_newpass.htmlPKCS12_parse.htmlPKCS5_PBKDF2_HMAC.htmlPKCS7_decrypt.htmlPKCS7_encrypt.htmlPKCS7_sign.htmlPKCS7_sign_add_signer.htmlPKCS7_verify.htmlRAND_DRBG_generate.htmlRAND_DRBG_get0_master.htmlRAND_DRBG_new.htmlRAND_DRBG_reseed.htmlRAND_DRBG_set_callbacks.htmlRAND_DRBG_set_ex_data.htmlRAND_add.htmlRAND_bytes.htmlRAND_cleanup.htmlRAND_egd.htmlRAND_load_file.htmlRAND_set_rand_method.htmlRC4_set_key.htmlRIPEMD160_Init.htmlRSA_blinding_on.htmlRSA_check_key.htmlRSA_generate_key.htmlRSA_get0_key.htmlRSA_meth_new.htmlRSA_new.htmlRSA_padding_add_PKCS1_type_1.htmlRSA_print.htmlRSA_private_encrypt.htmlRSA_public_encrypt.htmlRSA_set_method.htmlRSA_sign.htmlRSA_sign_ASN1_OCTET_STRING.htmlRSA_size.htmlSCT_new.htmlSCT_print.htmlSCT_validate.htmlSHA256_Init.htmlSMIME_read_CMS.htmlSMIME_read_PKCS7.htmlSMIME_write_CMS.htmlSMIME_write_PKCS7.htmlSSL_CIPHER_get_name.htmlSSL_COMP_add_compression_method.htmlSSL_CONF_CTX_new.htmlSSL_CONF_CTX_set1_prefix.htmlSSL_CONF_CTX_set_flags.htmlSSL_CONF_CTX_set_ssl_ctx.htmlSSL_CONF_cmd.htmlSSL_CONF_cmd_argv.htmlSSL_CTX_add1_chain_cert.htmlSSL_CTX_add_extra_chain_cert.htmlSSL_CTX_add_session.htmlSSL_CTX_config.htmlSSL_CTX_ctrl.htmlSSL_CTX_dane_enable.htmlSSL_CTX_flush_sessions.htmlSSL_CTX_free.htmlSSL_CTX_get0_param.htmlSSL_CTX_get_verify_mode.htmlSSL_CTX_has_client_custom_ext.htmlSSL_CTX_load_verify_locations.htmlSSL_CTX_new.htmlSSL_CTX_sess_number.htmlSSL_CTX_sess_set_cache_size.htmlSSL_CTX_sess_set_get_cb.htmlSSL_CTX_sessions.htmlSSL_CTX_set0_CA_list.htmlSSL_CTX_set1_curves.htmlSSL_CTX_set1_sigalgs.htmlSSL_CTX_set1_verify_cert_store.htmlSSL_CTX_set_alpn_select_cb.htmlSSL_CTX_set_cert_cb.htmlSSL_CTX_set_cert_store.htmlSSL_CTX_set_cert_verify_callback.htmlSSL_CTX_set_cipher_list.htmlSSL_CTX_set_client_cert_cb.htmlSSL_CTX_set_client_hello_cb.htmlSSL_CTX_set_ct_validation_callback.htmlSSL_CTX_set_ctlog_list_file.htmlSSL_CTX_set_default_passwd_cb.htmlSSL_CTX_set_ex_data.htmlSSL_CTX_set_generate_session_id.htmlSSL_CTX_set_info_callback.htmlSSL_CTX_set_keylog_callback.htmlSSL_CTX_set_max_cert_list.htmlSSL_CTX_set_min_proto_version.htmlSSL_CTX_set_mode.htmlSSL_CTX_set_msg_callback.htmlSSL_CTX_set_num_tickets.htmlSSL_CTX_set_options.htmlSSL_CTX_set_psk_client_callback.htmlSSL_CTX_set_quiet_shutdown.htmlSSL_CTX_set_read_ahead.htmlSSL_CTX_set_record_padding_callback.htmlSSL_CTX_set_security_level.htmlSSL_CTX_set_session_cache_mode.htmlSSL_CTX_set_session_id_context.htmlSSL_CTX_set_session_ticket_cb.htmlSSL_CTX_set_split_send_fragment.htmlSSL_CTX_set_ssl_version.htmlSSL_CTX_set_stateless_cookie_generate_cb.htmlSSL_CTX_set_timeout.htmlSSL_CTX_set_tlsext_servername_callback.htmlSSL_CTX_set_tlsext_status_cb.htmlSSL_CTX_set_tlsext_ticket_key_cb.htmlSSL_CTX_set_tlsext_use_srtp.htmlSSL_CTX_set_tmp_dh_callback.htmlSSL_CTX_set_verify.htmlSSL_CTX_use_certificate.htmlSSL_CTX_use_psk_identity_hint.htmlSSL_CTX_use_serverinfo.htmlSSL_SESSION_free.htmlSSL_SESSION_get0_cipher.htmlSSL_SESSION_get0_hostname.htmlSSL_SESSION_get0_id_context.htmlSSL_SESSION_get0_peer.htmlSSL_SESSION_get_compress_id.htmlSSL_SESSION_get_ex_data.htmlSSL_SESSION_get_protocol_version.htmlSSL_SESSION_get_time.htmlSSL_SESSION_has_ticket.htmlSSL_SESSION_is_resumable.htmlSSL_SESSION_print.htmlSSL_SESSION_set1_id.htmlSSL_accept.htmlSSL_alert_type_string.htmlSSL_alloc_buffers.htmlSSL_check_chain.htmlSSL_clear.htmlSSL_connect.htmlSSL_do_handshake.htmlSSL_export_keying_material.htmlSSL_extension_supported.htmlSSL_free.htmlSSL_get0_peer_scts.htmlSSL_get_SSL_CTX.htmlSSL_get_all_async_fds.htmlSSL_get_ciphers.htmlSSL_get_client_random.htmlSSL_get_current_cipher.htmlSSL_get_default_timeout.htmlSSL_get_error.htmlSSL_get_extms_support.htmlSSL_get_fd.htmlSSL_get_peer_cert_chain.htmlSSL_get_peer_certificate.htmlSSL_get_peer_signature_nid.htmlSSL_get_peer_tmp_key.htmlSSL_get_psk_identity.htmlSSL_get_rbio.htmlSSL_get_session.htmlSSL_get_shared_sigalgs.htmlSSL_get_verify_result.htmlSSL_get_version.htmlSSL_in_init.htmlSSL_key_update.htmlSSL_library_init.htmlSSL_load_client_CA_file.htmlSSL_new.htmlSSL_pending.htmlSSL_read.htmlSSL_read_early_data.htmlSSL_rstate_string.htmlSSL_session_reused.htmlSSL_set1_host.htmlSSL_set_bio.htmlSSL_set_connect_state.htmlSSL_set_fd.htmlSSL_set_session.htmlSSL_set_shutdown.htmlSSL_set_verify_result.htmlSSL_shutdown.htmlSSL_state_string.htmlSSL_want.htmlSSL_write.htmlUI_STRING.htmlUI_UTIL_read_pw.htmlUI_create_method.htmlUI_new.htmlX509V3_get_d2i.htmlX509_ALGOR_dup.htmlX509_CRL_get0_by_serial.htmlX509_EXTENSION_set_object.htmlX509_LOOKUP.htmlX509_LOOKUP_hash_dir.htmlX509_LOOKUP_meth_new.htmlX509_NAME_ENTRY_get_object.htmlX509_NAME_add_entry_by_txt.htmlX509_NAME_get0_der.htmlX509_NAME_get_index_by_NID.htmlX509_NAME_print_ex.htmlX509_PUBKEY_new.htmlX509_SIG_get0.htmlX509_STORE_CTX_get_error.htmlX509_STORE_CTX_new.htmlX509_STORE_CTX_set_verify_cb.htmlX509_STORE_add_cert.htmlX509_STORE_get0_param.htmlX509_STORE_new.htmlX509_STORE_set_verify_cb_func.htmlX509_VERIFY_PARAM_set_flags.htmlX509_check_ca.htmlX509_check_host.htmlX509_check_issued.htmlX509_check_private_key.htmlX509_check_purpose.htmlX509_cmp.htmlX509_cmp_time.htmlX509_digest.htmlX509_dup.htmlX509_get0_notBefore.htmlX509_get0_signature.htmlX509_get0_uids.htmlX509_get_extension_flags.htmlX509_get_pubkey.htmlX509_get_serialNumber.htmlX509_get_subject_name.htmlX509_get_version.htmlX509_new.htmlX509_sign.htmlX509_verify_cert.htmlX509v3_get_ext_by_NID.htmld2i_DHparams.htmld2i_PKCS8PrivateKey_bio.htmld2i_PrivateKey.htmld2i_SSL_SESSION.htmld2i_X509.htmli2d_CMS_bio_stream.htmli2d_PKCS7_bio_stream.htmli2d_re_X509_tbs.htmlo2i_SCT_LIST.html
man5
man7
man
man1
man3
ADMISSIONS.3ASN1_INTEGER_get_int64.3ASN1_ITEM_lookup.3ASN1_OBJECT_new.3ASN1_STRING_TABLE_add.3ASN1_STRING_length.3ASN1_STRING_new.3ASN1_STRING_print_ex.3ASN1_TIME_set.3ASN1_TYPE_get.3ASN1_generate_nconf.3ASYNC_WAIT_CTX_new.3ASYNC_start_job.3BF_encrypt.3BIO_ADDR.3BIO_ADDRINFO.3BIO_connect.3BIO_ctrl.3BIO_f_base64.3BIO_f_buffer.3BIO_f_cipher.3BIO_f_md.3BIO_f_null.3BIO_f_ssl.3BIO_find_type.3BIO_get_data.3BIO_get_ex_new_index.3BIO_meth_new.3BIO_new.3BIO_new_CMS.3BIO_parse_hostserv.3BIO_printf.3BIO_push.3BIO_read.3BIO_s_accept.3BIO_s_bio.3BIO_s_connect.3BIO_s_fd.3BIO_s_file.3BIO_s_mem.3BIO_s_null.3BIO_s_socket.3BIO_set_callback.3BIO_should_retry.3BN_BLINDING_new.3BN_CTX_new.3BN_CTX_start.3BN_add.3BN_add_word.3BN_bn2bin.3BN_cmp.3BN_copy.3BN_generate_prime.3BN_mod_inverse.3BN_mod_mul_montgomery.3BN_mod_mul_reciprocal.3BN_new.3BN_num_bytes.3BN_rand.3BN_security_bits.3BN_set_bit.3BN_swap.3BN_zero.3BUF_MEM_new.3CMS_add0_cert.3CMS_add1_recipient_cert.3CMS_add1_signer.3CMS_compress.3CMS_decrypt.3CMS_encrypt.3CMS_final.3CMS_get0_RecipientInfos.3CMS_get0_SignerInfos.3CMS_get0_type.3CMS_get1_ReceiptRequest.3CMS_sign.3CMS_sign_receipt.3CMS_uncompress.3CMS_verify.3CMS_verify_receipt.3CONF_modules_free.3CONF_modules_load_file.3CRYPTO_THREAD_run_once.3CRYPTO_get_ex_new_index.3CRYPTO_memcmp.3CTLOG_STORE_get0_log_by_id.3CTLOG_STORE_new.3CTLOG_new.3CT_POLICY_EVAL_CTX_new.3DEFINE_STACK_OF.3DES_random_key.3DH_generate_key.3DH_generate_parameters.3DH_get0_pqg.3DH_get_1024_160.3DH_meth_new.3DH_new.3DH_new_by_nid.3DH_set_method.3DH_size.3DSA_SIG_new.3DSA_do_sign.3DSA_dup_DH.3DSA_generate_key.3DSA_generate_parameters.3DSA_get0_pqg.3DSA_meth_new.3DSA_new.3DSA_set_method.3DSA_sign.3DSA_size.3DTLS_get_data_mtu.3DTLS_set_timer_cb.3DTLSv1_listen.3ECDSA_SIG_new.3ECPKParameters_print.3EC_GFp_simple_method.3EC_GROUP_copy.3EC_GROUP_new.3EC_KEY_get_enc_flags.3EC_KEY_new.3EC_POINT_add.3EC_POINT_new.3ENGINE_add.3ERR_GET_LIB.3ERR_clear_error.3ERR_error_string.3ERR_get_error.3ERR_load_crypto_strings.3ERR_load_strings.3ERR_print_errors.3ERR_put_error.3ERR_remove_state.3ERR_set_mark.3EVP_BytesToKey.3EVP_CIPHER_CTX_get_cipher_data.3EVP_CIPHER_meth_new.3EVP_DigestInit.3EVP_DigestSignInit.3EVP_DigestVerifyInit.3EVP_EncodeInit.3EVP_EncryptInit.3EVP_MD_meth_new.3EVP_OpenInit.3EVP_PKEY_ASN1_METHOD.3EVP_PKEY_CTX_ctrl.3EVP_PKEY_CTX_new.3EVP_PKEY_CTX_set1_pbe_pass.3EVP_PKEY_CTX_set_hkdf_md.3EVP_PKEY_CTX_set_rsa_pss_keygen_md.3EVP_PKEY_CTX_set_scrypt_N.3EVP_PKEY_CTX_set_tls1_prf_md.3EVP_PKEY_asn1_get_count.3EVP_PKEY_cmp.3EVP_PKEY_decrypt.3EVP_PKEY_derive.3EVP_PKEY_encrypt.3EVP_PKEY_get_default_digest_nid.3EVP_PKEY_keygen.3EVP_PKEY_meth_get_count.3EVP_PKEY_meth_new.3EVP_PKEY_new.3EVP_PKEY_print_private.3EVP_PKEY_set1_RSA.3EVP_PKEY_sign.3EVP_PKEY_size.3EVP_PKEY_verify.3EVP_PKEY_verify_recover.3EVP_SealInit.3EVP_SignInit.3EVP_VerifyInit.3EVP_aes.3EVP_aria.3EVP_bf_cbc.3EVP_blake2b512.3EVP_camellia.3EVP_cast5_cbc.3EVP_chacha20.3EVP_des.3EVP_desx_cbc.3EVP_idea_cbc.3EVP_md2.3EVP_md4.3EVP_md5.3EVP_mdc2.3EVP_rc2_cbc.3EVP_rc4.3EVP_rc5_32_12_16_cbc.3EVP_ripemd160.3EVP_seed_cbc.3EVP_sha1.3EVP_sha224.3EVP_sha3_224.3EVP_sm3.3EVP_sm4_cbc.3EVP_whirlpool.3HMAC.3MD5.3MDC2_Init.3OBJ_nid2obj.3OCSP_REQUEST_new.3OCSP_cert_to_id.3OCSP_request_add1_nonce.3OCSP_resp_find_status.3OCSP_response_status.3OCSP_sendreq_new.3OPENSSL_Applink.3OPENSSL_LH_COMPFUNC.3OPENSSL_LH_stats.3OPENSSL_VERSION_NUMBER.3OPENSSL_config.3OPENSSL_fork_prepare.3OPENSSL_ia32cap.3OPENSSL_init_crypto.3OPENSSL_init_ssl.3OPENSSL_instrument_bus.3OPENSSL_load_builtin_modules.3OPENSSL_malloc.3OPENSSL_secure_malloc.3OSSL_STORE_INFO.3OSSL_STORE_LOADER.3OSSL_STORE_SEARCH.3OSSL_STORE_expect.3OSSL_STORE_open.3OpenSSL_add_all_algorithms.3PEM_bytes_read_bio.3PEM_read.3PEM_read_CMS.3PEM_read_bio_PrivateKey.3PEM_read_bio_ex.3PEM_write_bio_CMS_stream.3PEM_write_bio_PKCS7_stream.3PKCS12_create.3PKCS12_newpass.3PKCS12_parse.3PKCS5_PBKDF2_HMAC.3PKCS7_decrypt.3PKCS7_encrypt.3PKCS7_sign.3PKCS7_sign_add_signer.3PKCS7_verify.3RAND_DRBG_generate.3RAND_DRBG_get0_master.3RAND_DRBG_new.3RAND_DRBG_reseed.3RAND_DRBG_set_callbacks.3RAND_DRBG_set_ex_data.3RAND_add.3RAND_bytes.3RAND_cleanup.3RAND_egd.3RAND_load_file.3RAND_set_rand_method.3RC4_set_key.3RIPEMD160_Init.3RSA_blinding_on.3RSA_check_key.3RSA_generate_key.3RSA_get0_key.3RSA_meth_new.3RSA_new.3RSA_padding_add_PKCS1_type_1.3RSA_print.3RSA_private_encrypt.3RSA_public_encrypt.3RSA_set_method.3RSA_sign.3RSA_sign_ASN1_OCTET_STRING.3RSA_size.3SCT_new.3SCT_print.3SCT_validate.3SHA256_Init.3SMIME_read_CMS.3SMIME_read_PKCS7.3SMIME_write_CMS.3SMIME_write_PKCS7.3SSL_CIPHER_get_name.3SSL_COMP_add_compression_method.3SSL_CONF_CTX_new.3SSL_CONF_CTX_set1_prefix.3SSL_CONF_CTX_set_flags.3SSL_CONF_CTX_set_ssl_ctx.3SSL_CONF_cmd.3SSL_CONF_cmd_argv.3SSL_CTX_add1_chain_cert.3SSL_CTX_add_extra_chain_cert.3SSL_CTX_add_session.3SSL_CTX_config.3SSL_CTX_ctrl.3SSL_CTX_dane_enable.3SSL_CTX_flush_sessions.3SSL_CTX_free.3SSL_CTX_get0_param.3SSL_CTX_get_verify_mode.3SSL_CTX_has_client_custom_ext.3SSL_CTX_load_verify_locations.3SSL_CTX_new.3SSL_CTX_sess_number.3SSL_CTX_sess_set_cache_size.3SSL_CTX_sess_set_get_cb.3SSL_CTX_sessions.3SSL_CTX_set0_CA_list.3SSL_CTX_set1_curves.3SSL_CTX_set1_sigalgs.3SSL_CTX_set1_verify_cert_store.3SSL_CTX_set_alpn_select_cb.3SSL_CTX_set_cert_cb.3SSL_CTX_set_cert_store.3SSL_CTX_set_cert_verify_callback.3SSL_CTX_set_cipher_list.3SSL_CTX_set_client_cert_cb.3SSL_CTX_set_client_hello_cb.3SSL_CTX_set_ct_validation_callback.3SSL_CTX_set_ctlog_list_file.3SSL_CTX_set_default_passwd_cb.3SSL_CTX_set_ex_data.3SSL_CTX_set_generate_session_id.3SSL_CTX_set_info_callback.3SSL_CTX_set_keylog_callback.3SSL_CTX_set_max_cert_list.3SSL_CTX_set_min_proto_version.3SSL_CTX_set_mode.3SSL_CTX_set_msg_callback.3SSL_CTX_set_num_tickets.3SSL_CTX_set_options.3SSL_CTX_set_psk_client_callback.3SSL_CTX_set_quiet_shutdown.3SSL_CTX_set_read_ahead.3SSL_CTX_set_record_padding_callback.3SSL_CTX_set_security_level.3SSL_CTX_set_session_cache_mode.3SSL_CTX_set_session_id_context.3SSL_CTX_set_session_ticket_cb.3SSL_CTX_set_split_send_fragment.3SSL_CTX_set_ssl_version.3SSL_CTX_set_stateless_cookie_generate_cb.3SSL_CTX_set_timeout.3SSL_CTX_set_tlsext_servername_callback.3SSL_CTX_set_tlsext_status_cb.3SSL_CTX_set_tlsext_ticket_key_cb.3SSL_CTX_set_tlsext_use_srtp.3SSL_CTX_set_tmp_dh_callback.3SSL_CTX_set_verify.3SSL_CTX_use_certificate.3SSL_CTX_use_psk_identity_hint.3SSL_CTX_use_serverinfo.3SSL_SESSION_free.3SSL_SESSION_get0_cipher.3SSL_SESSION_get0_hostname.3SSL_SESSION_get0_id_context.3SSL_SESSION_get0_peer.3SSL_SESSION_get_compress_id.3SSL_SESSION_get_ex_data.3SSL_SESSION_get_protocol_version.3SSL_SESSION_get_time.3SSL_SESSION_has_ticket.3SSL_SESSION_is_resumable.3SSL_SESSION_print.3SSL_SESSION_set1_id.3SSL_accept.3SSL_alert_type_string.3SSL_alloc_buffers.3SSL_check_chain.3SSL_clear.3SSL_connect.3SSL_do_handshake.3SSL_export_keying_material.3SSL_extension_supported.3SSL_free.3SSL_get0_peer_scts.3SSL_get_SSL_CTX.3SSL_get_all_async_fds.3SSL_get_ciphers.3SSL_get_client_random.3SSL_get_current_cipher.3SSL_get_default_timeout.3SSL_get_error.3SSL_get_extms_support.3SSL_get_fd.3SSL_get_peer_cert_chain.3SSL_get_peer_certificate.3SSL_get_peer_signature_nid.3SSL_get_peer_tmp_key.3SSL_get_psk_identity.3SSL_get_rbio.3SSL_get_session.3SSL_get_shared_sigalgs.3SSL_get_verify_result.3SSL_get_version.3SSL_in_init.3SSL_key_update.3SSL_library_init.3SSL_load_client_CA_file.3SSL_new.3SSL_pending.3SSL_read.3SSL_read_early_data.3SSL_rstate_string.3SSL_session_reused.3SSL_set1_host.3SSL_set_bio.3SSL_set_connect_state.3SSL_set_fd.3SSL_set_session.3SSL_set_shutdown.3SSL_set_verify_result.3SSL_shutdown.3SSL_state_string.3SSL_want.3SSL_write.3UI_STRING.3UI_UTIL_read_pw.3UI_create_method.3UI_new.3X509V3_get_d2i.3X509_ALGOR_dup.3X509_CRL_get0_by_serial.3X509_EXTENSION_set_object.3X509_LOOKUP.3X509_LOOKUP_hash_dir.3X509_LOOKUP_meth_new.3X509_NAME_ENTRY_get_object.3X509_NAME_add_entry_by_txt.3X509_NAME_get0_der.3X509_NAME_get_index_by_NID.3X509_NAME_print_ex.3X509_PUBKEY_new.3X509_SIG_get0.3X509_STORE_CTX_get_error.3X509_STORE_CTX_new.3X509_STORE_CTX_set_verify_cb.3X509_STORE_add_cert.3X509_STORE_get0_param.3X509_STORE_new.3X509_STORE_set_verify_cb_func.3X509_VERIFY_PARAM_set_flags.3X509_check_ca.3X509_check_host.3X509_check_issued.3X509_check_private_key.3X509_check_purpose.3X509_cmp.3X509_cmp_time.3X509_digest.3X509_dup.3X509_get0_notBefore.3X509_get0_signature.3X509_get0_uids.3X509_get_extension_flags.3X509_get_pubkey.3X509_get_serialNumber.3X509_get_subject_name.3X509_get_version.3X509_new.3X509_sign.3X509_verify_cert.3X509v3_get_ext_by_NID.3d2i_DHparams.3d2i_PKCS8PrivateKey_bio.3d2i_PrivateKey.3d2i_SSL_SESSION.3d2i_X509.3i2d_CMS_bio_stream.3i2d_PKCS7_bio_stream.3i2d_re_X509_tbs.3o2i_SCT_LIST.3
man5
man7
picohttpparser
sqlite
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

235
Makefile

@ -5,7 +5,7 @@ MAKEFLAGS += --no-builtin-rules
PROJECT = tildefriends
BUILD_DIR ?= out
BUILD_TYPES := debug release windebug winrelease
BUILD_TYPES := debug release windebug winrelease androiddebug androidrelease androiddebug-x86_64 androidrelease-x86_64
UNAME_M := $(shell uname -m)
CFLAGS += \
@ -16,17 +16,75 @@ CFLAGS += \
-MMD \
-ffunction-sections \
-fdata-sections \
-fno-omit-frame-pointer \
-fno-exceptions \
-g
LDFLAGS += -Wl,-gc-sections
LDFLAGS += -Wl,--gc-sections
debug windebug: CFLAGS += -Og
debug release: LDFLAGS += -rdynamic
release winrelease: CFLAGS += -DNDEBUG -O3
windebug winrelease: CC = i686-w64-mingw32-gcc-win32
ANDROID_SDK ?= ~/Android/Sdk
ANDROID_BUILD_TOOLS := $(ANDROID_SDK)/build-tools/33.0.1
ANDROID_PLATFORM := $(ANDROID_SDK)/platforms/android-33
ANDROID_NDK ?= $(ANDROID_SDK)/ndk/23.1.7779620
ANDROID_NDK_API_VERSION := 31
ANDROID_MIN_SDK_VERSION := 26
ANDROID_ARM64_TARGETS := \
out/androiddebug/tildefriends \
out/androidrelease/tildefriends
ANDROID_X86_64_TARGETS := \
out/androiddebug-x86_64/tildefriends \
out/androidrelease-x86_64/tildefriends
ANDROID_TARGETS := \
$(ANDROID_X86_64_TARGETS) \
$(ANDROID_ARM64_TARGETS)
DEBUG_TARGETS := \
out/debug/tildefriends \
out/windebug/tildefriends \
out/androiddebug/tildefriends \
out/androiddebug-x86_64/tildefriends
RELEASE_TARGETS := \
out/release/tildefriends \
out/winrelease/tildefriends \
out/androidrelease/tildefriends \
out/androidrelease-x86_64/tildefriends
ANDROID_RELEASE_TARGETS := $(filter-out $(DEBUG_TARGETS),$(ANDROID_TARGETS))
NONANDROID_RELEASE_TARGETS := $(filter-out $(ANDROID_ARM64_TARGETS),$(RELEASE_TARGETS))
NONANDROID_TARGETS := $(filter-out $(ANDROID_TARGETS),$(DEBUG_TARGETS) $(RELEASE_TARGETS))
$(NONANDROID_TARGETS): CFLAGS += -fno-omit-frame-pointer
$(NONANDROID_TARGETS): LDFLAGS += -rdynamic
$(ANDROID_TARGETS): CFLAGS += \
--sysroot $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/sysroot \
-fPIC \
-fomit-frame-pointer \
-fno-asynchronous-unwind-tables
$(ANDROID_TARGETS): LDFLAGS += --sysroot $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/sysroot -fPIC
$(DEBUG_TARGETS): CFLAGS += -DDEBUG -Og
$(RELEASE_TARGETS): CFLAGS += -DNDEBUG
$(NONANDROID_RELEASE_TARGETS): CFLAGS += -O3
$(ANDROID_RELEASE_TARGETS): CFLAGS += -Os
windebug winrelease: CC = x86_64-w64-mingw32-gcc-win32
windebug winrelease: AS = $(CC)
windebug winrelease: CFLAGS += -D_WIN32_WINNT=0x0A00 -DWINVER=0x0A00 -DNTDDI_VERSION=NTDDI_WIN10
windebug winrelease: LDFLAGS += -static
windebug winrelease: CFLAGS += \
-D_WIN32_WINNT=0x0A00 \
-DWINVER=0x0A00 \
-DNTDDI_VERSION=NTDDI_WIN10 \
-Ideps/openssl/mingw64/include
windebug winrelease: LDFLAGS += \
-static \
-lm \
-Ldeps/openssl/mingw64/lib
$(ANDROID_X86_64_TARGETS): ANDROID_NDK_TARGET_TRIPLE := x86_64-linux-android
$(ANDROID_ARM64_TARGETS): ANDROID_NDK_TARGET_TRIPLE := aarch64-linux-android
$(ANDROID_TARGETS): CC = $(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/clang
$(ANDROID_TARGETS): AS = $(CC)
$(ANDROID_TARGETS): CFLAGS += \
-target $(ANDROID_NDK_TARGET_TRIPLE)$(ANDROID_NDK_API_VERSION) \
-Wno-unknown-warning-option
$(ANDROID_ARM64_TARGETS): CFLAGS += -Ideps/openssl/android/arm64-v8a/usr/local/include
$(ANDROID_ARM64_TARGETS): LDFLAGS += -Ldeps/openssl/android/arm64-v8a/usr/local/lib
$(ANDROID_X86_64_TARGETS): CFLAGS += -Ideps/openssl/android/x86_64/usr/local/include
$(ANDROID_X86_64_TARGETS): LDFLAGS += -Ldeps/openssl/android/x86_64/usr/local/lib
ifeq ($(UNAME_M),x86_64)
debug: CFLAGS += -fsanitize=address -fsanitize=undefined -fno-common
@ -36,7 +94,9 @@ endif
get_objs = \
$(foreach build_type,$(BUILD_TYPES),$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)))))) \
$(foreach build_type,debug release,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_unix))))) \
$(foreach build_type,windebug winrelease,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_win)))))
$(foreach build_type,windebug winrelease,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_win))))) \
$(foreach build_type,androiddebug androidrelease androiddebug-x86_64 androidrelease-x86_64,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_android))))) \
$(foreach build_type,androiddebug androidrelease androiddebug-x86_64 androidrelease-x86_64,$(addprefix $(BUILD_DIR)/$(build_type)/,$(addsuffix .o,$(basename $(value $(1)_unix)))))
APP_SOURCES := $(wildcard src/*.c)
APP_OBJS := $(call get_objs,APP_SOURCES)
@ -47,17 +107,15 @@ $(APP_OBJS): CFLAGS += \
-Ideps/libsodium \
-Ideps/libsodium/src/libsodium/include \
-Ideps/libuv/include \
-Ideps/zlib \
-Ideps/zlib/contrib/minizip \
-Ideps/picohttpparser \
-Ideps/quickjs \
-Ideps/sqlite \
-Ideps/valgrind \
-Ideps/xopt \
-Werror
BASE64C_SOURCES := deps/base64c/src/base64c.c
BASE64C_OBJS := $(call get_objs,BASE64C_SOURCES)
$(BASE64C_OBJS): CFLAGS += \
-Wno-sign-compare
BLOWFISH_SOURCES := \
deps/crypt_blowfish/crypt_blowfish.c \
deps/crypt_blowfish/crypt_gensalt.c \
@ -105,6 +163,9 @@ UV_SOURCES_unix := \
deps/libuv/src/unix/thread.c \
deps/libuv/src/unix/tty.c \
deps/libuv/src/unix/udp.c
UV_SOURCES_android := \
deps/libuv/src/unix/pthread-fixes.c \
deps/libuv/src/unix/random-getentropy.c
UV_SOURCES_win := \
deps/libuv/src/win/async.c \
deps/libuv/src/win/core.c \
@ -181,6 +242,7 @@ SODIUM_SOURCES := \
deps/libsodium/src/libsodium/randombytes/randombytes.c \
deps/libsodium/src/libsodium/randombytes/sysrandom/randombytes_sysrandom.c \
deps/libsodium/src/libsodium/sodium/core.c \
deps/libsodium/src/libsodium/sodium/codecs.c \
deps/libsodium/src/libsodium/sodium/runtime.c \
deps/libsodium/src/libsodium/sodium/utils.c
SODIUM_OBJS := $(call get_objs,SODIUM_SOURCES)
@ -197,22 +259,37 @@ SQLITE_SOURCES := deps/sqlite/sqlite3.c
SQLITE_OBJS := $(call get_objs,SQLITE_SOURCES)
$(SQLITE_OBJS): CFLAGS += \
-DSQLITE_DBCONFIG_DEFAULT_DEFENSIVE \
-DSQLITE_DEFAULT_MEMSTATUS=0 \
-DSQLITE_DQS=0 \
-DSQLITE_ENABLE_MEMSYS5 \
-DSQLITE_ENABLE_FTS5 \
-DSQLITE_ENABLE_JSON1 \
-DSQLITE_MAX_LENGTH=5242880 \
-DSQLITE_MAX_SQL_LENGTH=100000 \
-DSQLITE_MAX_COLUMN=100 \
-DSQLITE_MAX_EXPR_DEPTH=40 \
-DSQLITE_MAX_COMPOUND_SELECT=300 \
-DSQLITE_MAX_VDBE_OP=25000 \
-DSQLITE_MAX_FUNCTION_ARG=8 \
-DSQLITE_LIKE_DOESNT_MATCH_BLOBS \
-DSQLITE_MAX_ATTACHED=0 \
-DSQLITE_MAX_COLUMN=100 \
-DSQLITE_MAX_COMPOUND_SELECT=300 \
-DSQLITE_MAX_EXPR_DEPTH=40 \
-DSQLITE_MAX_FUNCTION_ARG=8 \
-DSQLITE_MAX_LENGTH=5242880 \
-DSQLITE_MAX_LIKE_PATTERN_LENGTH=50 \
-DSQLITE_MAX_VARIABLE_NUMBER=100 \
-DSQLITE_MAX_SQL_LENGTH=100000 \
-DSQLITE_MAX_TRIGGER_DEPTH=10 \
-DSQLITE_MAX_VARIABLE_NUMBER=100 \
-DSQLITE_MAX_VDBE_OP=25000 \
-DSQLITE_OMIT_DEPRECATED \
-DSQLITE_OMIT_DESERIALIZE \
-DSQLITE_OMIT_LOAD_EXTENSION \
-DSQLITE_OMIT_TCL_VARIABLE \
-DSQLITE_PRAGMA_DEFAULT_WAL_SYNCHRONOUS=1 \
-DSQLITE_SECURE_DELETE \
-DSQLITE_THREADSAFE=0 \
-DSQLITE_UNTESTABLE \
-DSQLITE_USE_ALLOCA \
-DHAVE_ISNAN \
-Wno-implicit-fallthrough \
-Wno-unused-but-set-variable
-Wno-unused-but-set-variable \
-Wno-unused-function \
-Wno-unused-variable
XOPT_SOURCES := deps/xopt/xopt.c
XOPT_OBJS := $(call get_objs,XOPT_SOURCES)
@ -222,25 +299,27 @@ $(filter $(BUILD_DIR)/win%,$(XOPT_OBJS)): CFLAGS += \
-DHAVE_VASNPRINTF \
-DHAVE_VASPRINTF \
-Dvsnprintf=rpl_vsnprintf
$(XOPT_OBJS): CFLAGS += \
-Wno-implicit-const-int-float-conversion
QUICKJS_SOURCES := \
deps/quickjs/cutils.c \
deps/quickjs/libbf.c \
deps/quickjs/libregexp.c \
deps/quickjs/libunicode.c \
deps/quickjs/quickjs-libc.c \
deps/quickjs/quickjs.c
QUICKJS_OBJS := $(call get_objs,QUICKJS_SOURCES)
$(QUICKJS_OBJS): CFLAGS += \
-DCONFIG_VERSION=\"$(shell cat deps/quickjs/VERSION)\" \
-DCONFIG_BIGNUM \
-DDUMP_LEAKS \
-D_GNU_SOURCE \
-Wno-sign-compare \
-Wno-enum-conversion \
-Wno-implicit-const-int-float-conversion \
-Wno-implicit-fallthrough \
-Wno-unused-variable \
-Wno-sign-compare \
-Wno-unused-but-set-variable \
-Wno-enum-conversion
-Wno-unused-variable
$(NONANDROID_TARGETS): CFLAGS += -DDUMP_LEAKS
LIBBACKTRACE_SOURCES := \
deps/libbacktrace/atomic.c \
@ -269,6 +348,24 @@ $(LIBBACKTRACE_OBJS): CFLAGS += \
-Wno-unused-function \
-DBACKTRACE_ELF_SIZE=64
PICOHTTPPARSER_SOURCES := \
deps/picohttpparser/picohttpparser.c
PICOHTTPPARSER_OBJS := $(call get_objs,PICOHTTPPARSER_SOURCES)
MINIUNZIP_SOURCES := \
deps/zlib/contrib/minizip/unzip.c \
deps/zlib/contrib/minizip/ioapi.c \
deps/zlib/adler32.c \
deps/zlib/crc32.c \
deps/zlib/inffast.c \
deps/zlib/inflate.c \
deps/zlib/inftrees.c \
deps/zlib/zutil.c
MINIUNZIP_OBJS := $(call get_objs,MINIUNZIP_SOURCES)
$(MINIUNZIP_OBJS): CFLAGS += \
-Ideps/zlib \
-Wno-maybe-uninitialized
LDFLAGS += \
-pthread \
-lm
@ -281,18 +378,29 @@ windebug winrelease: LDFLAGS += \
-lws2_32 \
-lkernel32 \
-liphlpapi \
-luserenv
-luserenv \
-lssl \
-lcrypto \
-lws2_32 \
-lcrypt32
$(ANDROID_TARGETS): LDFLAGS += \
-target $(ANDROID_NDK_TARGET_TRIPLE)$(ANDROID_NDK_API_VERSION) \
-ldl \
-llog \
-lssl \
-lcrypto
unix: debug release
win: windebug winrelease
all: $(BUILD_TYPES)
all: $(BUILD_TYPES) out/TildeFriends-debug.apk out/TildeFriends-release.apk
.PHONY: all win unix
ALL_APP_OBJS := \
$(APP_OBJS) \
$(BASE64C_OBJS) \
$(BLOWFISH_OBJS) \
$(LIBBACKTRACE_OBJS) \
$(MINIUNZIP_OBJS) \
$(PICOHTTPPARSER_OBJS) \
$(QUICKJS_OBJS) \
$(SODIUM_OBJS) \
$(SQLITE_OBJS) \
@ -308,7 +416,7 @@ $(1): $(BUILD_DIR)/$(1)/$(PROJECT)$(if $(filter win%,$(1)),.exe)
$(BUILD_DIR)/$(1)/$(PROJECT)$(if $(filter win%,$(1)),.exe): $(filter $(BUILD_DIR)/$(1)/%,$(ALL_APP_OBJS))
@echo [link] $$@
@$$(CC) -o $$@ $$^ $$(LDFLAGS)
@$$(CC) -o $$@ -Wl,-Map,$$@.map $$^ $$(LDFLAGS)
$(BUILD_DIR)/$(1)/%.o: %.c
@mkdir -p $$(dir $$@)
@ -323,6 +431,67 @@ endef
$(foreach build_type,$(BUILD_TYPES),$(eval $(call build_rules,$(build_type))))
# Android support.
out/res/layout_activity_main.xml.flat: src/android/res/layout/activity_main.xml
@mkdir -p $(dir $@)
@echo [aapt2] $@
@$(ANDROID_BUILD_TOOLS)/aapt2 compile -o out/res/ src/android/res/layout/activity_main.xml
out/apk/res.apk out/gen/com/unprompted/tildefriends/R.java: out/res/layout_activity_main.xml.flat src/android/AndroidManifest.xml
@mkdir -p $(dir $@)
@$(ANDROID_BUILD_TOOLS)/aapt2 link -I $(ANDROID_PLATFORM)/android.jar out/res/layout_activity_main.xml.flat --manifest src/android/AndroidManifest.xml -o out/apk/res.apk --java out/gen/
JAVA_FILES := out/gen/com/unprompted/tildefriends/R.java $(wildcard src/android/com/unprompted/tildefriends/*.java)
CLASS_FILES := $(foreach src,$(JAVA_FILES),out/classes/com/unprompted/tildefriends/$(notdir $(src:.java=.class)))
$(CLASS_FILES) &: $(JAVA_FILES)
@echo [javac] $(CLASS_FILES)
@javac --release 8 -Xlint:deprecation -classpath $(ANDROID_PLATFORM)/android.jar -d out/classes $(JAVA_FILES)
out/apk/classes.dex: $(CLASS_FILES)
@mkdir -p $(dir $@)
@echo [d8] $@
@$(ANDROID_BUILD_TOOLS)/d8 --$(BUILD_TYPE) --lib $(ANDROID_PLATFORM)/android.jar --output $(dir $@) out/classes/com/unprompted/tildefriends/*.class
PACKAGE_DIRS := \
apps/ \
core/ \
deps/codemirror/ \
deps/split/ \
deps/smoothie/
RAW_FILES := $(shell find $(PACKAGE_DIRS) -type f)
out/apk/TildeFriends-debug.unsigned.apk: BUILD_TYPE := debug
out/apk/TildeFriends-release.unsigned.apk: BUILD_TYPE := release
out/apk/TildeFriends-debug.unsigned.apk: out/apk/classes.dex out/androiddebug/tildefriends out/androiddebug-x86_64/tildefriends $(RAW_FILES) out/apk/res.apk
out/apk/TildeFriends-release.unsigned.apk: out/apk/classes.dex out/androidrelease/tildefriends out/androidrelease-x86_64/tildefriends $(RAW_FILES) out/apk/res.apk
out/%.unsigned.apk:
@mkdir -p $(dir $@) out/apk$(BUILD_TYPE)/bin/aarch64/ out/apk$(BUILD_TYPE)/bin/x86_64/
@echo [aapt] $@
@cp out/android$(BUILD_TYPE)/tildefriends out/apk$(BUILD_TYPE)/bin/aarch64/
@cp out/android$(BUILD_TYPE)-x86_64/tildefriends out/apk$(BUILD_TYPE)/bin/x86_64/
@$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk$(BUILD_TYPE)/bin/aarch64/tildefriends
@$(ANDROID_NDK)/toolchains/llvm/prebuilt/linux-x86_64/bin/llvm-strip out/apk$(BUILD_TYPE)/bin/x86_64/tildefriends
@cp out/apk/res.apk $@
@cp out/apk/classes.dex out/apk$(BUILD_TYPE)/
@cd out/apk$(BUILD_TYPE) && zip -u ../../$@ -q -9 -r . && cd ../../
@zip -u $@ -q -9 -r $(PACKAGE_DIRS) $(RAW_FILES)
out/%.apk: out/apk/%.unsigned.apk
@echo [apksigner] $(notdir $@)
@$(ANDROID_BUILD_TOOLS)/apksigner sign --ks keystore.jks --ks-key-alias androidKey --ks-pass pass:android --key-pass pass:android --out $@ $<
apk: out/TildeFriends-debug.apk
.PHONY: apk
apkgo: out/TildeFriends-debug.apk
@adb install $<
@adb shell am start com.unprompted.tildefriends/.MainActivity
.PHONY: apkgo
clean:
rm -rf $(BUILD_DIR)
.PHONY: clean

@ -28,7 +28,7 @@ privileges. Further administration can be done at
<http://localhost:12345/~core/admin/`>.
## Documentation
There are the very beginnings of developer documentation in `apps/cory/docs/`
There are the very beginnings of developer documentation in `apps/docs/`
that can be read in-place or at <http://localhost:12345/~core/docs/>.
## License

4
apps/admin.json Normal file

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

4
apps/api.json Normal file

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

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

3
apps/appstore.json Normal file

@ -0,0 +1,3 @@
{
"type": "tildefriends-app"
}

55
apps/appstore/app.js Normal file

@ -0,0 +1,55 @@
async function get_apps() {
let results = {};
await ssb.sqlStream(`
SELECT messages.*
FROM messages_fts('"application/tildefriends"')
JOIN messages ON messages.rowid = messages_fts.rowid
ORDER BY timestamp
`,
[],
function(row) {
let content = JSON.parse(row.content);
for (let mention of content.mentions) {
if (mention?.type === 'application/tildefriends') {
results[JSON.stringify([row.author, mention.name])] = {
message: row,
blob: mention.link,
name: mention.name,
};
}
}
});
return Object.values(results).sort((x, y) => y.message.timestamp - x.message.timestamp);
}
function render_app(app) {
return `
<div style="border: 2px solid white; display: inline-block; margin: 8px; padding: 8px">
<a href="/~cory/ssb/#${app.message.author}">@</a>
<a href="/~cory/ssb/#${app.message.id}">%</a>
<a href="/${app.blob}/">${app.name}</a>
</div>
`;
}
async function main() {
let apps = await get_apps();
app.setDocument(`
<html>
<head>
<base target="_top">
<style>
a:link { color: #bbf; }
a:visited { color: #ddd; }
a:hover { color: #ddf; }
</style>
</head>
<body style="color: #fff">
<h1>${apps.length} apps</h1>
${apps.map(render_app).join('\n')}
</body>
</html>
`);
}
main();

@ -1 +0,0 @@
{"type":"tildefriends-app","files":{"app.js":"&uhGJsy5+qBgOgEgMqCTDasK+C+GWGptHKfPiAsD5eGA=.sha256","index.html":"&D3JwdPXy/QsLXkmwNDrBFXdzxfqO1/JGxfqEArnS5v4=.sha256","lit.min.js":"&3FfrVflmGr0n4lvN0GriN1Qz1lEw31SbZxRSJrcXR28=.sha256","script.js":"&TZ2ymD6cFVUjQleGcDslt8apjp7k3xLlfv2F8rQVM4I=.sha256"}}

@ -1 +0,0 @@
{"type":"tildefriends-app","files":{"app.js":"&p35JmopfHf8hFh3Y9x6LrIxiUwaJZ5Nabzi2sVXpKoo=.sha256"}}

@ -1 +0,0 @@
{"type":"tildefriends-app","files":{"app.js":"&qEJDfZ43KazIxiZl8OCKb2uaDOsPkxnIohEzQ1LLFpg=.sha256"}}

@ -1,31 +0,0 @@
async function main() {
var apps = await core.apps();
var core_apps = await core.apps('core');
var doc = `<!DOCTYPE html>
<html>
<body style="background: #888">
<h1>Apps</h1>
<ul id="apps"></ul>
<h1>Core Apps</h1>
<ul id="core_apps"></ul>
</body>
<script>
function populate_apps(id, name, apps) {
var list = document.getElementById(id);
for (let app of Object.keys(apps).sort()) {
var li = list.appendChild(document.createElement('li'));
var a = document.createElement('a');
a.innerText = app;
a.href = '/~' + name + '/' + app + '/';
a.target = '_top';
li.appendChild(a);
}
}
populate_apps('apps', '${core.user.credentials?.session?.name}', ${JSON.stringify(apps)});
populate_apps('core_apps', 'core', ${JSON.stringify(core_apps)});
</script>
</html>`
app.setDocument(doc);
}
main();

@ -1 +0,0 @@
{"type":"tildefriends-app","files":{"app.js":"&V5o5IM9/OUyIsVkjkMW/X0i/tflQOSVJuJBmHdMT9aM=.sha256"}}

@ -1 +0,0 @@
{"type":"tildefriends-app","files":{"app.js":"&WEvJYebSMi5d2eXgUwJJmvR/Q4slFg3zHYB8Q2mXJII=.sha256","index.md":"&Pi0NTJn9/w76yIUKqRRuSvUPSpqkxdYynmjeOBbF3K8=.sha256","todo.md":"&d8Kq8yuOn8SL3tJVy9BiDXHAe/jverpBj5AMLWLtmFM=.sha256","structure.md":"&T+CBfT9XP6ooKFvD1ZCI9hsutqsNIamfBxtAho0HtlU=.sha256","guide.md":"&SgnGL0+rjetY2o9A2+lVRbNvHIkqKwMnZr9gXWneIlc=.sha256","ssb.md":"&ouqT3XzTGfBNpOP/uEdOw7K1F9BeLZgQCx24XTvhyXU=.sha256"}}

@ -1,17 +0,0 @@
# ID Refactor
[Back to index](#index)
## Goals
- no way to get private key in javascript
- ssb.c syncs/broadcasts/... efficiently for everybody
## Schema
- separate table to discourage leakage
- `CREATE TABLE identities (user TEXT, public TEXT, secret TEXT);`
## API
- `ssb.createIdentity()` -> `id`
- `ssb.getIdentities()` => `[id, ...]`
- `ssb.deleteIdentity(id)`
- `ssb.post(id, ...)`
- `ssb.appendMessage(id, ...)`

@ -1 +0,0 @@
{"type":"tildefriends-app","files":{"app.js":"&3d9ABFgRwQvWsYbFv/rzimtnLDnVrWlGtdw7serFIGw=.sha256"}}

@ -1 +0,0 @@
{"type":"tildefriends-app","files":{"app.js":"&gxOJaVf/HdjVJVC9NvZ9n3/825OD1xMMHdF/dFQwe24=.sha256","lit-all.min.js":"&XKgdRySJuiZeZvchNFGjVWn0XOVhQFmG7/HTWYQ8s68=.sha256","index.html":"&TxhFekB9ov7tf/fmkAg7x5797i27oLidhgxEfDKC0T0=.sha256","script.js":"&G8puK9Q4MngHy3D4ppcKyT49WKbHD2OCeUcAw2ghTDE=.sha256","lit-all.min.js.map":"&lA9iFp1YbqSndxXZuwtgmrj7NDMkN71nJITbtjWL3VA=.sha256","tf-id-picker.js":"&maN8DUFrmRxW5nsVyOAMk5k1ekcz/pfzvSS99ac3jo8=.sha256","tf-app.js":"&7hclNu41CIoNk1JlXHiYmDPDyDIICZfMickJYtnF5eQ=.sha256","tf-message.js":"&oXFucwmn16nvKslQoGKTppO+71EoDZJE54z3WrlNUPI=.sha256","tf-user.js":"&bXTedgBudTQLXEBPY9R8OLfQ/ZLpo8YRU9Oq/wuGG3Y=.sha256","tf-utils.js":"&6RQUuxB3PkOhYEJr9+89Ptx7uijczjn0r035yCcQOQQ=.sha256","commonmark.min.js":"&bfBaMLU19d1p/vPBF9hlARqDX002KXG/UOfxOahZhe4=.sha256","tf-compose.js":"&y+Q47tdm60Od1UzuRu7OOLwineyQCL1LIb3KP5IwHTY=.sha256","emojis.json":"&h3P4pez+AI4aYdsN0dJ3pbUEFR0276t9AM20caj/W/s=.sha256","emojis.js":"&pqYLDE/13PyEt2ceeFqvnwZ8NqWfPfpDBt4vP8SeHbs=.sha256","tf-styles.js":"&LFeL/vWgrv4N8q/mBrQAnhbaOI+dXNJYvH9bn1bXSqQ=.sha256","tf-profile.js":"&vRKjsnYvOiHCQahzEfznCvP5YDwUPtltlpWf+pxwZ1Y=.sha256","commonmark-linkify.js":"&X+hNNkmSRvKY86khyAun+cXksquXbMakZdINbGbx30g=.sha256","tf-tab-search.js":"&ESt2vMG19sH5j6ungKua/ZuvIGslyuWyb3juXdOCecg=.sha256","tf-tab-news.js":"&F7T3LVS867x7vsKhYRR7eLNdCFZmrZ3JzEMfJEEKRm0=.sha256","tf-tab-connections.js":"&Ftt5RnkrhndV2lwC7XXUZX8JiUODqPjqEVgSTJQD6JU=.sha256","tf-news.js":"&gfG5LwXpugDkwDCOCOxQnNn0jLURZexSmvDu4SpQohA=.sha256","tribute.css":"&9FogMzZHKXCfGb7mlh7z+/wiNZzBsOB/tKoh6MfYJno=.sha256","tribute.esm.js":"&P1wKqCfYULpR/ahSB98JP8xaxfikuZwwtT6I/SAo7/Y=.sha256","commonmark-hashtag.js":"&H+V1OLA9GDdzycKclz276zAtSZLpT3rlNVa4+qQmp4o=.sha256"}}

File diff suppressed because one or more lines are too long

@ -1,57 +0,0 @@
import {LitElement, html} from './lit-all.min.js';
import * as tfrpc from '/static/tfrpc.js';
class TfConnectionsElement extends LitElement {
static get properties() {
return {
broadcasts: {type: Array},
identities: {type: Array},
connections: {type: Array},
users: {type: Object},
}
}
constructor() {
super();
let self = this;
this.broadcasts = [];
this.identities = [];
this.connections = [];
this.users = {};
tfrpc.rpc.getAllIdentities().then(function(identities) {
self.identities = identities || [];
});
}
_emit_change() {
let changed_event = new Event('change', {
srcElement: this,
});
this.dispatchEvent(changed_event);
}
changed(event) {
this.selected = event.srcElement.value;
tfrpc.rpc.localStorageSet('whoami', this.selected);
this._emit_change();
}
render() {
return html`
<h2>Broadcasts</h2>
<ul>
${this.broadcasts.map(x => html`<li><tf-user id=${x.pubkey} .users=${this.users}></tf-user></li>`)}
</ul>
<h2>Connections</h2>
<ul>
${this.connections.map(x => html`<li><tf-user id=${x} .users=${this.users}></tf-user></li>`)}
</ul>
<h2>Local Accounts</h2>
<ul>
${this.identities.map(x => html`<li><tf-user id=${x} .users=${this.users}></tf-user></li>`)}
</ul>
`;
}
}
customElements.define('tf-connections', TfConnectionsElement);

@ -1 +0,0 @@
{"type":"tildefriends-app","files":{"app.js":"&QUR1tKa15B5Or8AfPX/8Zs87teSeX0Mh/HF7PEPBom0=.sha256","index.html":"&QXhwvxhHc9fa8iL6088hGDu9FgWdY7wkXgvU2BMNv0A=.sha256","lit-core.min.js":"&tP9KhbgwF1chFqPtkNZ12Yx9AfkpnSjFiPcX5Pw5J9g=.sha256","script.js":"&KgOaUVjBM4MzSy7PpUVQHETuvgXAx2JGPJABksBg+QY=.sha256"}}

4
apps/db.json Normal file

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

4
apps/docs.json Normal file

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

@ -2,9 +2,10 @@
Tilde Friends is a participating member of a greater social
network, [Secure Scuttlebutt](https://scuttlebutt.nz/),
augmenting it with a way to safely and securely write, share,
and run code.
adding a way to safely and securely write, share,
and run code in the form of server-side web applications.
- [Tilde Friends Vision](#vision)
- [Secure Scuttlebutt from Scratch](#ssb)
- [Structure](#structure)
- [Guide](#guide)

@ -16,6 +16,8 @@ IPv4 addresses.
So be prepared to accept variations.
There also an undocumented "new" style of discovery message.
## Secret Handshake, Box Stream, and RPC Protocol
Now that two clients are aware of eachother, they need to complete a secret handshake.
The [programming guide](https://ssbc.github.io/scuttlebutt-protocol-guide/#handshake)
@ -26,12 +28,14 @@ The box stream and RPC protocol can both be implemented from the
without surprises.
## Synchronizing Data
So now you're discovering other clients on the local network, connecting, performing
a secret handshake, and making remote procedure calls over box streams. The next step
is to start synchronizing feeds over the network. The goal, after all, is to author
messages in your local append-only log and have them show up in distant clients, or
vice versa.
... `ebt.replicate` or `createHistoryStream` ...
## Rooms
TODO
## References
* [https://ssbc.github.io/scuttlebutt-protocol-guide/](https://ssbc.github.io/scuttlebutt-protocol-guide/)
* [https://dev.planetary.social/](https://dev.planetary.social/)
* [https://dev.scuttlebutt.nz/#/golang/?id=muxrpc-endpoints](https://dev.scuttlebutt.nz/#/golang/?id=muxrpc-endpoints)

@ -21,7 +21,7 @@ In combines the following key components:
are mediated through the core process.
When run with no arguments, it starts a web server on
[http://localhost:12345/](http://localhost:12345/) and an SSB server.
[http://localhost:12345/](http://localhost:12345/) and an SSB node.
## Web Interface
The Tilde Friends web server provides access to Tilde Friends applications,

@ -5,8 +5,6 @@
- Sync status (problem feeds, messages/seconds stats, ...)
- app: wiki
- app: public blog
- app: build archive
- app: todo
- Content-Disposition: download
- remove SSB credentials
- export SSB credentials
@ -22,20 +20,21 @@
- fix weird HTTP warnings
- ssb from child process?
- channels
- image downsample
- placeholder/missing images
- no denial of service
- package standalone executable
- blob_wants 2.0
- editor without app iframe
- sequence_before_author -> flags
- linkify ssb: links
## MVP2
- perfect rooms support
- connections 2.0
- make a better connections API
## Maybe Done
- blob_wants 2.0
- image downsample
- app: todo
- app: build archive
- update README
- administrators config
- apps name characters

62
apps/docs/vision.md Normal file

@ -0,0 +1,62 @@
# Tilde Friends Vision
[Back to index](#index)
Tilde Friends is a tool for making and sharing.
It is both a peer-to-peer social network client, participating in Secure
Scuttlebutt, and an environment for creating and running web applications.
## Why
This is a thing that I wanted to exist and wanted to work on. No other reason.
There is not a business model. I believe it is interesting and unique.
## Goals
1. Make it **easy and fun** to run all sorts of web applications.
2. Provide **security** that is easy to understand and protects your data.
3. Make **creating and sharing** web applications accessible to anyone with a
browser.
## Ways to Use Tilde Friends
1. **Social Network User**: This is a social network first. You are just here,
because your friends are. Or you like how we limit your message length or
short videos or whatever the trend is. If you are ambitious, you click links
and see interactive experiences (apps) that you wouldn't see elsewhere.
2. **Web Visitor**: You get links from a friend to meeting invites, polls, games,
lists, wiki pages, ..., and you interact with them as though they were
cloud-hosted by a megacorporation. They just work, and you don't think twice.
3. **Group leader**: You host or use a small public instance, installing apps for
a group of friends to use as web visitors.
4. **Developer**: You like to write code and make or improve apps for fun or to
solve problems. When you encounter a Tilde Friends app on a strange server,
you know you can trivially modify it or download it to your own instance.
## Future Goals / Endgame
1. Mobile apps. This can run on your old phone. Maybe you won't be hosting
the web interface publicly, but you can sync, install and edit apps, and
otherwise get the full experience from a tiny touch screen.
2. The universal application runtime. The web browser is the universal
platform, but even for the simplest application that you might want to host
for your friends, cloud hosting, containers, and complicated dependencies might
all enter the mix. Tilde Friends, though it is yet another thing to host,
includes everything you need out of the box to run a vast variety of interesting
apps.
Tilde Friends will be built out, gradually providing safe access to host
resources and client resources the same way web browsers extended access to
resources like GPU, persistent storage, cameras, ... over the years.
Not much effort has been put forward yet to having a robust, long-lasting API,
but since the client side longevity is already handled by web browsers, it
seems possible that the server-side API can be managed in a similar way.
3. An awesome development environment. Right now it runs JavaScript from the
first embeddable text editor I could poorly configure enough to edit code,
but it could incorporate a debugger, source control integration a la ssb-git,
merge tools, and transpiling from all sorts of different languages.

4
apps/follow.json Normal file

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

@ -15,7 +15,7 @@ async function following(db, id) {
f = {users: [], sequence: 0, version: k_version};
}
f.users = new Set(f.users);
await ssb.sqlStream(
await ssb.sqlAsync(
"SELECT "+
" sequence, "+
" json_extract(content, '$.contact') AS contact, "+
@ -73,7 +73,7 @@ async function getAbout(db, id) {
if (!f || f.version != k_version) {
f = {about: {}, sequence: 0, version: k_version};
}
await ssb.sqlStream(
await ssb.sqlAsync(
"SELECT "+
" sequence, "+
" content "+
@ -109,7 +109,7 @@ async function getAbout(db, id) {
async function getSize(db, id) {
let size = 0;
await ssb.sqlStream(
await ssb.sqlAsync(
"SELECT (SUM(LENGTH(content)) + SUM(LENGTH(author)) + SUM(LENGTH(id))) AS size FROM messages WHERE author = ?1",
[id],
function (row) {

4
apps/ssb.json Normal file

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

@ -30,12 +30,14 @@ tfrpc.register(async function getBroadcasts() {
tfrpc.register(async function getConnections() {
return ssb.connections();
});
tfrpc.register(async function connectionSendJson(id, message) {
return ssb.connectionSendJson(id, message);
tfrpc.register(async function getStoredConnections() {
return ssb.storedConnections();
});
tfrpc.register(async function createTunnel(portal, request_number, target) {
let t = ssb.createTunnel(portal, request_number, target);
return t;
tfrpc.register(async function forgetStoredConnection(connection) {
return ssb.forgetStoredConnection(connection);
});
tfrpc.register(async function createTunnel(portal, target) {
return ssb.createTunnel(portal, target);
});
tfrpc.register(async function connect(token) {
await ssb.connect(token);
@ -45,7 +47,7 @@ tfrpc.register(async function closeConnection(id) {
});
tfrpc.register(async function query(sql, args) {
let result = [];
await ssb.sqlStream(sql, args, function callback(row) {
await ssb.sqlAsync(sql, args, function callback(row) {
result.push(row);
});
return result;

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

@ -12,11 +12,6 @@ function get_emojis() {
export function picker(callback, anchor) {
get_emojis().then(function(json) {
let existing = document.getElementById('emoji_picker');
if (existing) {
existing.parentElement.removeChild(existing);
return;
}
let div = document.createElement('div');
div.id = 'emoji_picker';
div.style.color = '#000';
@ -24,20 +19,47 @@ export function picker(callback, anchor) {
div.style.border = '1px solid #000';
div.style.display = 'block';
div.style.position = 'absolute';
div.style.maxWidth = '16em';
div.style.minWidth = 'min(16em, 90vw)';
div.style.width = 'min(16em, 90vw)';
div.style.maxWidth = 'min(16em, 90vw)';
div.style.maxHeight = '16em';
div.style.overflow = 'scroll';
div.style.fontWeight = 'bold';
div.style.fontSize = 'xx-large';
let input = document.createElement('input');
input.type = 'text';
input.style.display = 'block';
input.style.boxSizing = 'border-box';
input.style.width = '100%';
input.style.margin = '0';
input.style.position = 'relative';
div.appendChild(input);
let list = document.createElement('div');
div.appendChild(list);
div.addEventListener('mousedown', function(event) {
event.stopPropagation();
});
function cleanup() {
console.log('emoji cleanup');
div.parentElement.removeChild(div);
window.removeEventListener('keydown', key_down);
console.log('removing click');
document.body.removeEventListener('mousedown', cleanup);
}
function key_down(event) {
if (event.key == 'Escape') {
cleanup();
}
}
function refresh() {
while (list.firstChild) {
list.removeChild(list.firstChild);
}
let search = input.value;
let any_at_all = false;
Object.entries(json).forEach(function(row) {
let header = document.createElement('div');
header.appendChild(document.createTextNode(row[0]));
@ -51,28 +73,26 @@ export function picker(callback, anchor) {
}
let emoji = document.createElement('span');
const k_size = '1.25em';
emoji.style.width = k_size;
emoji.style.maxWidth = k_size;
emoji.style.minWidth = k_size;
emoji.style.height = k_size;
emoji.style.maxHeight = k_size;
emoji.style.minHeight = k_size;
emoji.style.display = 'inline-block';
emoji.style.overflow = 'hidden';
emoji.style.cursor = 'pointer';
emoji.onclick = function() {
callback(entry);
div.parentElement.removeChild(div);
cleanup();
}
emoji.title = entry.name;
emoji.appendChild(document.createTextNode(entry.emoji));
list.appendChild(emoji);
any = true;
any_at_all = true;
}
if (!any) {
list.removeChild(header);
}
});
if (!any_at_all) {
list.appendChild(document.createTextNode('No matches found.'));
}
}
refresh();
input.oninput = refresh;
@ -81,5 +101,9 @@ export function picker(callback, anchor) {
div.style.top = '50%';
div.style.left = '50%';
div.style.transform = 'translate(-50%, -50%)';
input.focus();
console.log('adding click');
document.body.addEventListener('mousedown', cleanup);
window.addEventListener('keydown', key_down);
});
}

File diff suppressed because one or more lines are too long

File diff suppressed because one or more lines are too long

@ -79,7 +79,7 @@ class TfElement extends LitElement {
WHERE author = ? AND
rowid > ? AND
rowid <= ? AND
json_extract(content, "$.type") = "contact"
json_extract(content, '$.type') = 'contact'
ORDER BY sequence
`,
[id, last_row_id, max_row_id]);
@ -109,8 +109,9 @@ class TfElement extends LitElement {
for (let i = 0; i < ids.length; i++) {
let id = ids[i];
let contact = contacts[i];
let found = Object.keys(contact.following).filter(y => !contact.blocking[y]);
let deeper = depth > 1 ? await this.following_deep_internal(found, depth - 1, Object.assign({}, contact.blocking, blocking), last_row_id, following, max_row_id) : [];
let all_blocking = Object.assign({}, contact.blocking, blocking);
let found = Object.keys(contact.following).filter(y => !all_blocking[y]);
let deeper = depth > 1 ? await this.following_deep_internal(found, depth - 1, all_blocking, last_row_id, following, max_row_id) : [];
result[id] = [id, ...found, ...deeper];
}
return [...new Set(Object.values(result).flat())];
@ -132,7 +133,11 @@ class TfElement extends LitElement {
`, []))[0].max_row_id;
let result = await this.following_deep_internal(ids, depth, blocking, cache.last_row_id, cache.following, max_row_id);
cache.last_row_id = max_row_id;
await tfrpc.rpc.databaseSet('following', JSON.stringify(cache));
let store = JSON.stringify(cache);
/* 2023-02-20: Exceeding message size. */
//if (store.length < 512 * 1024) {
await tfrpc.rpc.databaseSet('following', store);
//}
return [result, cache.following];
}
@ -275,16 +280,6 @@ class TfElement extends LitElement {
}
}
add_fake_news() {
this.unread = [{
author: this.whoami,
placeholder: true,
id: '%fake_id',
text: 'text',
content: 'hello',
}, ...this.unread];
}
async set_tab(tab) {
this.tab = tab;
if (tab === 'news') {
@ -321,7 +316,6 @@ class TfElement extends LitElement {
return html`
${this.render_id_picker()}
${tabs}
<!-- <input type="button" value="Fake News" @click=${this.add_fake_news}></input> -->
${contents}
`;
}

@ -1,4 +1,4 @@
import {LitElement, html} from './lit-all.min.js';
import {LitElement, html, unsafeHTML} from './lit-all.min.js';
import * as tfutils from './tf-utils.js';
import * as tfrpc from '/static/tfrpc.js';
import {styles} from './tf-styles.js';
@ -11,8 +11,8 @@ class TfComposeElement extends LitElement {
users: {type: Object},
root: {type: String},
branch: {type: String},
mentions: {type: Object},
apps: {type: Object},
drafts: {type: Object},
}
}
@ -23,16 +23,17 @@ class TfComposeElement extends LitElement {
this.users = {};
this.root = undefined;
this.branch = undefined;
this.mentions = {};
this.apps = undefined;
this.drafts = {};
}
changed(event) {
let edit = this.renderRoot.getElementById('edit');
let preview = this.renderRoot.getElementById('preview');
let text = edit.value;
process_text(text) {
if (!text) {
return '';
}
/* Update mentions. */
let draft = this.get_draft();
let updated = false;
for (let match of text.matchAll(/\[([^\[]+)]\(([@&%][^\)]+)/g)) {
let name = match[1];
let link = match[2];
@ -49,19 +50,53 @@ class TfComposeElement extends LitElement {
break;
}
}
if (!this.mentions[link]) {
this.mentions[link] = {
if (!draft.mentions) {
draft.mentions = {};
}
if (!draft.mentions[link]) {
draft.mentions[link] = {
link: link,
}
}
this.mentions[link].name = name.startsWith('@') ? name.substring(1) : name;
this.mentions = Object.assign({}, this.mentions);
draft.mentions[link].name = name.startsWith('@') ? name.substring(1) : name;
updated = true;
}
if (updated) {
this.requestUpdate();
}
return tfutils.markdown(text);
}
preview.innerHTML = tfutils.markdown(text);
input(event) {
let edit = this.renderRoot.getElementById('edit');
let preview = this.renderRoot.getElementById('preview');
preview.innerHTML = this.process_text(edit.value);
let content_warning = this.renderRoot.getElementById('content_warning');
let content_warning_preview = this.renderRoot.getElementById('content_warning_preview');
if (content_warning && content_warning_preview) {
content_warning_preview.innerText = content_warning.value;
}
}
convert_to_webp(buffer, type) {
notify(draft) {
this.dispatchEvent(new CustomEvent('tf-draft', {
bubbles: true,
composed: true,
detail: {
id: this.branch,
draft: draft
},
}));
}
change() {
let draft = this.get_draft();
draft.text = this.renderRoot.getElementById('edit')?.value;
draft.content_warning = this.renderRoot.getElementById('content_warning')?.value;
this.notify(draft);
}
convert_to_format(buffer, type, mime_type) {
return new Promise(function(resolve, reject) {
let img = new Image();
img.onload = function() {
@ -73,7 +108,7 @@ class TfComposeElement extends LitElement {
canvas.height = img.height * scale;
let context = canvas.getContext('2d');
context.drawImage(img, 0, 0, canvas.width, canvas.height);
let data_url = canvas.toDataURL('image/webp');
let data_url = canvas.toDataURL(mime_type);
let result = atob(data_url.split(',')[1]).split('').map(x => x.charCodeAt(0));
resolve(result);
}
@ -88,27 +123,40 @@ class TfComposeElement extends LitElement {
async add_file(file) {
try {
let draft = this.get_draft();
let self = this;
let buffer = await file.arrayBuffer();
let type = file.type;
if (type.startsWith('image/')) {
buffer = await self.convert_to_webp(buffer, file.type);
type = 'image/webp';
let best_buffer;
let best_type;
for (let format of ['image/png', 'image/jpeg', 'image/webp']) {
let test_buffer = await self.convert_to_format(buffer, file.type, format);
if (!best_buffer || test_buffer.length < best_buffer.length) {
best_buffer = test_buffer;
best_type = format;
}
}
buffer = best_buffer;
type = best_type;
} else {
buffer = Array.from(new Uint8Array(buffer));
}
let id = await tfrpc.rpc.store_blob(buffer);
let name = type.split('/')[0] + ':' + file.name;
self.mentions[id] = {
if (!draft.mentions) {
draft.mentions = {};
}
draft.mentions[id] = {
link: id,
name: name,
type: type,
size: buffer.length ?? buffer.byteLength,
};
self.mentions = Object.assign({}, self.mentions);
let edit = self.renderRoot.getElementById('edit');
edit.value += `\n![${name}](${id})`;
self.changed();
self.change();
self.input();
} catch(e) {
alert(e?.message);
}
@ -130,6 +178,7 @@ class TfComposeElement extends LitElement {
submit() {
let self = this;
let draft = this.get_draft();
let edit = this.renderRoot.getElementById('edit');
let message = {
type: 'post',
@ -139,14 +188,18 @@ class TfComposeElement extends LitElement {
message.root = this.root;
message.branch = this.branch;
}
if (Object.values(this.mentions).length) {
message.mentions = Object.values(this.mentions);
if (Object.values(draft.mentions || {}).length) {
message.mentions = Object.values(draft.mentions);
}
if (draft.content_warning !== undefined) {
message.contentWarning = draft.content_warning;
}
console.log('Would post:', message);
tfrpc.rpc.appendMessage(this.whoami, message).then(function() {
edit.value = '';
self.mentions = {};
self.changed();
self.change();
self.notify(undefined);
self.requestUpdate();
}).catch(function(error) {
alert(error.message);
});
@ -155,8 +208,10 @@ class TfComposeElement extends LitElement {
discard() {
let edit = this.renderRoot.getElementById('edit');
edit.value = '';
this.changed();
this.dispatchEvent(new CustomEvent('tf-discard'));
this.change();
let preview = this.renderRoot.getElementById('preview');
preview.innerHTML = '';
this.notify(undefined);
}
attach() {
@ -181,9 +236,21 @@ class TfComposeElement extends LitElement {
tribute.attach(this.renderRoot.getElementById('edit'));
}
updated() {
super.updated();
let edit = this.renderRoot.getElementById('edit');
if (this.last_updated_text !== edit.value) {
let preview = this.renderRoot.getElementById('preview');
preview.innerHTML = this.process_text(edit.value);
this.last_updated_text = edit.value;
}
}
remove_mention(id) {
delete this.mentions[id];
this.mentions = Object.assign({}, this.mentions);
let draft = this.get_draft();
delete draft.mentions[id];
this.notify(draft);
this.requestUpdate();
}
render_mention(mention) {
@ -216,7 +283,10 @@ class TfComposeElement extends LitElement {
};
}
}
this.mentions = Object.assign(this.mentions || {}, mentions);
let draft = this.get_draft();
draft.mentions = Object.assign(draft.mentions || {}, mentions);
this.requestUpdate();
this.notify(draft);
this.apps = null;
}
@ -244,14 +314,53 @@ class TfComposeElement extends LitElement {
}
}
set_content_warning(value) {
let draft = this.get_draft();
draft.content_warning = value;
this.notify(draft);
this.requestUpdate();
}
render_content_warning() {
let self = this;
let draft = this.get_draft();
if (draft.content_warning !== undefined) {
return html`
<div>
<input type="checkbox" id="cw" @change=${() => self.set_content_warning(undefined)} checked></input>
<label for="cw">CW</label>
<input type="text" id="content_warning" @input=${this.input} @change=${this.change} value=${draft.content_warning}></input>
</div>
`;
} else {
return html`
<input type="checkbox" id="cw" @change=${() => self.set_content_warning('')}></input>
<label for="cw">CW</label>
`;
}
}
get_draft() {
return this.drafts[this.branch || ''] || {};
}
render() {
let self = this;
let draft = self.get_draft();
let content_warning =
draft.content_warning !== undefined ?
html`<div id="content_warning_preview" class="content_warning">${draft.content_warning}</div>` :
undefined;
let result = html`
<div style="display: flex; flex-direction: row; width: 100%">
<textarea id="edit" @input=${this.changed} @paste=${this.paste} style="flex: 1 0 50%"></textarea>
<div id="preview" style="flex: 1 0 50%"></div>
<textarea id="edit" @input=${this.input} @change=${this.change} @paste=${this.paste} style="flex: 1 0 50%">${draft.text}</textarea>
<div style="flex: 1 0 50%">
${content_warning}
<div id="preview"></div>
</div>
${Object.values(this.mentions).map(x => self.render_mention(x))}
</div>
${Object.values(draft.mentions || {}).map(x => self.render_mention(x))}
${this.render_content_warning()}
${this.render_attach_app()}
<input type="button" value="Submit" @click=${this.submit}></input>
<input type="button" value="Attach" @click=${this.attach}></input>

@ -10,12 +10,10 @@ class TfMessageElement extends LitElement {
whoami: {type: String},
message: {type: Object},
users: {type: Object},
reply: {type: Boolean},
drafts: {type: Object},
raw: {type: Boolean},
collapsed: {type: Boolean},
content_warning_expanded: {type: Boolean},
blog_data: {type: String},
blog_expanded: {type: Boolean},
expanded: {type: Object},
}
}
@ -27,13 +25,18 @@ class TfMessageElement extends LitElement {
this.whoami = null;
this.message = {};
this.users = {};
this.reply = false;
this.drafts = {};
this.raw = false;
this.collapsed = false;
this.expanded = {};
}
show_reply() {
this.reply = true;
let event = new CustomEvent('tf-draft', {bubbles: true, composed: true, detail: {id: this.message?.id, draft: ''}});
this.dispatchEvent(event);
}
discard_reply() {
this.dispatchEvent(new CustomEvent('tf-draft', {bubbles: true, composed: true, detail: {id: this.id, draft: undefined}}));
}
render_votes() {
@ -145,7 +148,7 @@ class TfMessageElement extends LitElement {
} else if (mention.link?.startsWith('&') &&
mention.name?.startsWith('video:')) {
return html`
<video controls style="max-height: 240px">
<video controls style="max-height: 240px; max-width: 128px">
<source src=${'/' + mention.link + '/view'}></source>
</video>
`;
@ -180,13 +183,33 @@ class TfMessageElement extends LitElement {
}
}
total_child_messages(message) {
if (!message.child_messages) {
return 0;
}
let total = message.child_messages.length;
for (let m of message.child_messages)
{
total += this.total_child_messages(m);
}
return total;
}
set_expanded(expanded, tag) {
this.dispatchEvent(new CustomEvent('tf-expand', {bubbles: true, composed: true, detail: {id: (this.message.id || '') + (tag || ''), expanded: expanded}}));
}
toggle_expanded(tag) {
this.set_expanded(!this.expanded[(this.message.id || '') + (tag || '')], tag);
}
render_children() {
let self = this;
if (this.message.child_messages?.length) {
if (this.collapsed) {
return html`<input type="button" value=${this.message.child_messages?.length + ' More'} @click=${() => self.collapsed = false}></input>`;
if (!this.expanded[this.message.id]) {
return html`<input type="button" value=${this.total_child_messages(this.message) + ' More'} @click=${() => self.set_expanded(true)}></input>`;
} else {
return html`<input type="button" value="Collapse" @click=${() => self.collapsed = true}></input>${(this.message.child_messages || []).map(x => html`<tf-message .message=${x} whoami=${this.whoami} .users=${this.users}></tf-message>`)}`;
return html`<input type="button" value="Collapse" @click=${() => self.set_expanded(false)}></input>${(this.message.child_messages || []).map(x => html`<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} .drafts=${this.drafts} .expanded=${this.expanded}></tf-message>`)}`;
}
}
}
@ -199,7 +222,7 @@ class TfMessageElement extends LitElement {
html`<input type="button" value="Raw" @click=${() => self.raw = true}></input>`;
function small_frame(inner) {
return html`
<div style="border: 1px solid black; background-color: rgba(255, 255, 255, 0.1); margin-top: 8px; padding: 16px; display: inline-block">
<div style="border: 1px solid black; background-color: rgba(255, 255, 255, 0.1); margin-top: 8px; padding: 16px; display: inline-block; overflow-wrap: anywhere">
<tf-user id=${self.message.author} .users=${self.users}></tf-user>
<span style="padding-right: 8px"><a tfarget="_top" href=${'#' + self.message.id}>%</a> ${new Date(self.message.timestamp).toLocaleString()}</span>
${raw_button}
@ -208,13 +231,20 @@ class TfMessageElement extends LitElement {
</div>
`
}
if (this.message.placeholder) {
if (this.message?.type === 'contact_group') {
return html`
<div style="border: 1px solid black; background-color: rgba(255, 255, 255, 0.1); margin-top: 8px; padding: 16px; overflow-wrap: anywhere">
${this.message.messages.map(x =>
html`<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} .drafts=${this.drafts} .expanded=${this.expanded}></tf-message>`
)}
</div>`;
} else if (this.message.placeholder) {
return html`
<div style="border: 1px solid black; background-color: rgba(255, 255, 255, 0.1); margin-top: 8px; padding: 16px; overflow-wrap: anywhere">
<a target="_top" href=${'#' + this.message.id}>${this.message.id}</a> (placeholder)
<div>${this.render_votes()}</div>
${(this.message.child_messages || []).map(x => html`
<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} collapsed=true></tf-message>
<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} .drafts=${this.drafts} .expanded=${this.expanded}></tf-message>
`)}
</div>`;
} else if (typeof(content?.type === 'string')) {
@ -227,25 +257,29 @@ class TfMessageElement extends LitElement {
}
if (content.image !== undefined) {
image = html`
<div><img src=${'/' + content.image + '/view'} style="width: 256px; height: auto"></img></div>
<div><img src=${'/' + (typeof(content.image?.link) == 'string' ? content.image.link : content.image) + '/view'} style="width: 256px; height: auto"></img></div>
`;
}
if (content.description !== undefined) {
description = html`
<div style="flex: 1 0 50%">
<div style="flex: 1 0 50%; overflow-wrap: anywhere">
<div>${unsafeHTML(tfutils.markdown(content.description))}</div>
</div>
`
}
let update = content.about == this.message.author ?
html`<div style="font-weight: bold">Updated profile.</div>` :
html`<div style="font-weight: bold">Updated profile for <tf-user id=${content.about} .users=${this.users}></tf-user>.</div>`;
return small_frame(html`
<div style="font-weight: bold">Updated profile.</div>
${update}
${name}
${image}
${description}
`);
} else if (content.type == 'contact') {
return small_frame(html`
return html`
<div>
<tf-user id=${this.message.author} .users=${this.users}></tf-user>
is
${
content.blocking === true ? 'blocking' :
@ -256,16 +290,16 @@ class TfMessageElement extends LitElement {
}
<tf-user id=${this.message.content.contact} .users=${this.users}></tf-user>
</div>
`);
`;
} else if (content.type == 'post') {
let reply = this.reply ? html`
let reply = (this.drafts[this.message?.id] !== undefined) ? html`
<tf-compose
?enabled=${this.reply}
whoami=${this.whoami}
.users=${this.users}
root=${this.message.content.root || this.message.id}
branch=${this.message.id}
@tf-discard=${() => this.reply = false}></tf-compose>
.drafts=${this.drafts}
@tf-discard=${this.discard_reply}></tf-compose>
` : html`
<input type="button" value="Reply" @click=${this.show_reply}></input>
`;
@ -274,7 +308,7 @@ class TfMessageElement extends LitElement {
this.render_raw() :
unsafeHTML(tfutils.markdown(content.text));
let content_warning = html`
<div style="border: 1px solid #fff; border-radius: 1em; padding: 8px; margin: 4px" @click=${x => self.content_warning_expanded = !self.content_warning_expanded}>${content.contentWarning}</div>
<div class="content_warning" @click=${x => this.toggle_expanded(':cw')}>${content.contentWarning}</div>
`;
let content_html =
html`
@ -283,7 +317,7 @@ class TfMessageElement extends LitElement {
`;
let payload =
content.contentWarning ?
self.content_warning_expanded ?
self.expanded[(this.message.id || '') + ':cw'] ?
html`
${content_warning}
${content_html}
@ -323,12 +357,11 @@ class TfMessageElement extends LitElement {
`;
} else if (content.type === 'blog') {
let self = this;
console.log('requesting data');
tfrpc.rpc.get_blob(content.blog).then(function(data) {
self.blog_data = data;
});
let payload =
this.blog_expanded ?
this.expanded[(this.message.id || '') + ':blog'] ?
html`<div>${this.blog_data ? unsafeHTML(tfutils.markdown(this.blog_data)) : 'Loading...'}</div>` :
undefined;
let body = this.raw ?
@ -336,7 +369,7 @@ class TfMessageElement extends LitElement {
html`
<div
style="border: 1px solid #fff; border-radius: 1em; padding: 8px; margin: 4px; cursor: pointer"
@click=${x => self.blog_expanded = !self.blog_expanded}>
@click=${x => self.toggle_expanded(':blog')}>
<h2>${content.title}</h2>
<div style="display: flex; flex-direction: row">
<img src=/${content.thumbnail}/view></img>
@ -375,6 +408,11 @@ class TfMessageElement extends LitElement {
`;
} else if (content.type === 'pub') {
return small_frame(html`
<style>
span {
overflow-wrap: anywhere;
}
</style>
<span>
<div>
🍻 <tf-user .users=${this.users} id=${content.address.key}></tf-user>

@ -9,6 +9,8 @@ class TfNewsElement extends LitElement {
users: {type: Object},
messages: {type: Array},
following: {type: Array},
drafts: {type: Object},
expanded: {type: Object},
}
}
@ -21,6 +23,8 @@ class TfNewsElement extends LitElement {
this.users = {};
this.messages = [];
this.following = [];
this.drafts = {};
this.expanded = {};
}
process_messages(messages) {
@ -77,6 +81,7 @@ class TfNewsElement extends LitElement {
}
for (let message of messages) {
message.votes = [];
message.parent_message = undefined;
message.child_messages = undefined;
}
@ -140,19 +145,38 @@ class TfNewsElement extends LitElement {
return recursive_sort(roots, true);
}
async load_and_render(messages) {
group_following(messages) {
let result = [];
let group = [];
for (let message of messages) {
if (message?.content?.type === 'contact') {
group.push(message);
} else {
if (group.length > 0) {
result.push({
type: 'contact_group',
messages: group,
});
group = [];
}
result.push(message);
}
}
return result;
}
load_and_render(messages) {
let messages_by_id = this.process_messages(messages);
let final_messages = this.finalize_messages(messages_by_id);
let final_messages = this.group_following(this.finalize_messages(messages_by_id));
return html`
<div style="display: flex; flex-direction: column">
${final_messages.map(x => html`<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} collapsed=true></tf-message>`)}
${final_messages.map(x => html`<tf-message .message=${x} whoami=${this.whoami} .users=${this.users} .drafts=${this.drafts} .expanded=${this.expanded} collapsed=true></tf-message>`)}
</div>
`;
}
render() {
let messages = this.load_and_render(this.messages || []);
return html`${until(messages, html`<div>Loading placeholders...</div>`)}`;
return this.load_and_render(this.messages || []);
}
}

@ -29,4 +29,11 @@ img {
color: #088;
background-color: #fff;
}
.content_warning {
border: 1px solid #fff;
border-radius: 1em;
padding: 8px;
margin: 4px;
}
`;

@ -7,6 +7,7 @@ class TfTabConnectionsElement extends LitElement {
broadcasts: {type: Array},
identities: {type: Array},
connections: {type: Array},
stored_connections: {type: Array},
users: {type: Object},
}
}
@ -17,10 +18,14 @@ class TfTabConnectionsElement extends LitElement {
this.broadcasts = [];
this.identities = [];
this.connections = [];
this.stored_connections = [];
this.users = {};
tfrpc.rpc.getAllIdentities().then(function(identities) {
self.identities = identities || [];
});
tfrpc.rpc.getStoredConnections().then(function(connections) {
self.stored_connections = connections || [];
});
}
render_connection_summary(connection) {
@ -46,8 +51,7 @@ class TfTabConnectionsElement extends LitElement {
}
async _tunnel(portal, target) {
let request_number = await tfrpc.rpc.connectionSendJson(portal, {name: ['tunnel', 'connect'], args: [{portal: portal, target: target}], type: 'duplex'});
return tfrpc.rpc.createTunnel(portal, request_number, target);
return tfrpc.rpc.createTunnel(portal, target);
}
render_room_peer(connection) {
@ -70,6 +74,11 @@ class TfTabConnectionsElement extends LitElement {
`
}
async forget_stored_connection(connection) {
await tfrpc.rpc.forgetStoredConnection(connection);
this.stored_connections = (await tfrpc.rpc.getStoredConnections()) || [];
}
render() {
let self = this;
return html`
@ -92,6 +101,16 @@ class TfTabConnectionsElement extends LitElement {
</li>
`)}
</ul>
<h2>Stored Connections (WIP)</h2>
<ul>
${this.stored_connections.map(x => html`
<li>
<input type="button" @click=${() => self.forget_stored_connection(x)} value="Forget"></input>
<input type="button" @click=${() => tfrpc.rpc.connect(x)} value="Connect"></input>
${x.address}:${x.port} <tf-user id=${x.pubkey} .users=${self.users}></tf-user>
</li>
`)}
</ul>
<h2>Local Accounts</h2>
<ul>
${this.identities.map(x => html`<li><tf-user id=${x} .users=${this.users}></tf-user></li>`)}

@ -10,6 +10,8 @@ class TfTabNewsFeedElement extends LitElement {
hash: {type: String},
following: {type: Array},
messages: {type: Array},
drafts: {type: Object},
expanded: {type: Object},
}
}
@ -22,6 +24,8 @@ class TfTabNewsFeedElement extends LitElement {
this.users = {};
this.hash = '#';
this.following = [];
this.drafts = {};
this.expanded = {};
}
async fetch_messages() {
@ -102,7 +106,7 @@ class TfTabNewsFeedElement extends LitElement {
alert(JSON.stringify(error, null, 2));
});
}
return html`<tf-news id="news" whoami=${this.whoami} .users=${this.users} .messages=${this.messages} .following=${this.following}></tf-news>`;
return html`<tf-news id="news" whoami=${this.whoami} .users=${this.users} .messages=${this.messages} .following=${this.following} .drafts=${this.drafts} .expanded=${this.expanded}></tf-news>`;
}
}
@ -114,6 +118,8 @@ class TfTabNewsElement extends LitElement {
hash: {type: String},
unread: {type: Array},
following: {type: Array},
drafts: {type: Object},
expanded: {type: Object},
}
}
@ -128,6 +134,11 @@ class TfTabNewsElement extends LitElement {
this.unread = [];
this.following = [];
this.cache = {};
this.drafts = {};
this.expanded = {};
tfrpc.rpc.localStorageGet('drafts').then(function(d) {
self.drafts = JSON.parse(d || '{}');
});
}
show_more() {
@ -156,6 +167,32 @@ class TfTabNewsElement extends LitElement {
return 'Show New: ' + Object.keys(counts).sort().map(x => (counts[x].toString() + ' ' + x + 's')).join(', ');
}
draft(event) {
let id = event.detail.id || '';
let previous = this.drafts[id];
if (event.detail.draft !== undefined) {
this.drafts[id] = event.detail.draft;
} else {
delete this.drafts[id];
}
/* Only trigger a re-render if we're creating a new draft or discarding an old one. */
if ((previous !== undefined) != (event.detail.draft !== undefined)) {
this.drafts = Object.assign({}, this.drafts);
}
tfrpc.rpc.localStorageSet('drafts', JSON.stringify(this.drafts));
}
on_expand(event) {
if (event.detail.expanded) {
let expand = {};
expand[event.detail.id] = true;
this.expanded = Object.assign({}, this.expanded, expand);
} else {
delete this.expanded[event.detail.id];
this.expanded = Object.assign({}, this.expanded);
}
}
render() {
let profile = this.hash.startsWith('#@') ?
html`<tf-profile id=${this.hash.substring(1)} whoami=${this.whoami} .users=${this.users}></tf-profile>` : undefined;
@ -163,9 +200,9 @@ class TfTabNewsElement extends LitElement {
<div><input type="button" value=${this.new_messages_text()} @click=${this.show_more}></input></div>
<a target="_top" href="#" ?hidden=${this.hash.length <= 1}>🏠Home</a>
<div>Welcome, <tf-user id=${this.whoami} .users=${this.users}></tf-user>!</div>
<div><tf-compose whoami=${this.whoami} .users=${this.users}></tf-compose></div>
<div><tf-compose whoami=${this.whoami} .users=${this.users} .drafts=${this.drafts} @tf-draft=${this.draft}></tf-compose></div>
${profile}
<tf-tab-news-feed id="news" whoami=${this.whoami} .users=${this.users} .following=${this.following} hash=${this.hash}></tf-tab-news-feed>
<tf-tab-news-feed id="news" whoami=${this.whoami} .users=${this.users} .following=${this.following} hash=${this.hash} .drafts=${this.drafts} .expanded=${this.expanded} @tf-draft=${this.draft} @tf-expand=${this.on_expand}></tf-tab-news-feed>
`;
}
}

@ -19,18 +19,23 @@ class TfUserElement extends LitElement {
}
render() {
let name = this.users?.[this.id]?.name;
name = name !== undefined ?
html`<a target="_top" href=${'#' + this.id}>${name}</a>` :
html`<a target="_top" href=${'#' + this.id}>${this.id}</a>`;
if (this.users[this.id]) {
let image = this.users[this.id].image;
image = typeof(image) == 'string' ? image : image?.link;
return html`
<div style="display: inline-block; font-weight: bold">
<img style="width: 2em; height: 2em; vertical-align: middle; border-radius: 50%" ?hidden=${image === undefined} src="${image ? '/' + image + '/view' : undefined}">
<a target="_top" href=${'#' + this.id}>${this.users[this.id].name ?? this.id}</a>
${name}
</div>`;
} else {
return html`
<div style="display: inline-block; font-weight: bold; word-wrap: anywhere">
<a target="_top" href=${'#' + this.id}>${this.id}</a>
<div style="display: inline-block; font-weight: bold">
${name}
</div>`;
}
}

@ -5,8 +5,8 @@ export function markdown(md) {
var reader = new commonmark.Parser({safe: true});
var writer = new commonmark.HtmlRenderer();
var parsed = reader.parse(md || '');
parsed = hashtagify.transform(parsed);
parsed = linkify.transform(parsed);
parsed = hashtagify.transform(parsed);
var walker = parsed.walker();
var event, node;
while ((event = walker.next())) {

4
apps/todo.json Normal file

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

@ -22,6 +22,7 @@ App.prototype.readOutput = function(callback) {
App.prototype.makeFunction = function(api) {
let self = this;
let result = function() {
let id = g_next_id++;
while (!id || g_calls[id]) {
id = g_next_id++;
@ -29,7 +30,6 @@ App.prototype.makeFunction = function(api) {
let promise = new Promise(function(resolve, reject) {
g_calls[id] = {resolve: resolve, reject: reject};
});
let result = function() {
let message = {
message: 'tfrpc',
method: api[0],

@ -1,9 +1,7 @@
import * as core from './core.js';
import * as http from './http.js';
import * as form from './form.js';
var gTokens = {};
var gDatabase = new Database("auth");
let gDatabase = new Database("auth");
const kRefreshInterval = 1 * 7 * 24 * 60 * 60 * 1000;
@ -76,7 +74,7 @@ function verifyPassword(password, hash) {
}
function hashPassword(password) {
var salt = bCrypt.gensalt(12);
let salt = bCrypt.gensalt(12);
return bCrypt.hashpw(password, salt);
}
@ -100,14 +98,14 @@ function makeAdministrator(name) {
}
function getCookies(headers) {
var cookies = {};
let cookies = {};
if (headers.cookie) {
var parts = headers.cookie.split(/,|;/);
for (var i in parts) {
var equals = parts[i].indexOf("=");
var name = parts[i].substring(0, equals).trim();
var value = parts[i].substring(equals + 1).trim();
let parts = headers.cookie.split(/,|;/);
for (let i in parts) {
let equals = parts[i].indexOf("=");
let name = parts[i].substring(0, equals).trim();
let value = parts[i].substring(equals + 1).trim();
cookies[name] = value;
}
}
@ -116,18 +114,18 @@ function getCookies(headers) {
}
function handler(request, response) {
var session = getCookies(request.headers).session;
let session = getCookies(request.headers).session;
if (request.uri == "/login") {
var sessionIsNew = false;
var loginError;
let sessionIsNew = false;
let loginError;
var formData = form.decodeForm(request.query);
let formData = form.decodeForm(request.query);
if (request.method == "POST" || formData.submit) {
sessionIsNew = true;
formData = form.decodeForm(utf8Decode(request.body), formData);
if (formData.submit == "Login") {
var account = gDatabase.get("user:" + formData.name);
let account = gDatabase.get("user:" + formData.name);
account = account ? JSON.parse(account) : account;
if (formData.register == "1") {
if (!account &&
@ -172,15 +170,15 @@ function handler(request, response) {
}
}
var cookie = `session=${session}; path=/; Max-Age=${kRefreshInterval}; Secure; SameSite=Strict`;
var entry = readSession(session);
let cookie = `session=${session}; path=/; Max-Age=${kRefreshInterval}; ${request.client.tls ? 'Secure; ' : ''}SameSite=Strict`;
let entry = readSession(session);
if (entry && formData.return) {
response.writeHead(303, {"Location": formData.return, "Set-Cookie": cookie});
response.end();
} else {
File.readFile("core/auth.html").then(function(data) {
var html = utf8Decode(data);
var contents = "";
let html = utf8Decode(data);
let contents = "";
if (entry) {
if (sessionIsNew) {
@ -217,7 +215,7 @@ function handler(request, response) {
contents += '</div>\n';
contents += '</form>';
}
var text = html.replace("<!--SESSION-->", contents);
let text = html.replace("<!--SESSION-->", contents);
response.writeHead(200, {"Content-Type": "text/html; charset=utf-8", "Set-Cookie": cookie, "Content-Length": text.length});
response.end(text);
}).catch(function(error) {
@ -226,7 +224,7 @@ function handler(request, response) {
});
}
} else if (request.uri == "/login/logout") {
response.writeHead(303, {"Set-Cookie": "session=; path=/; Secure; SameSite=Strict; expires=Thu, 01 Jan 1970 00:00:00 GMT", "Location": "/login" + (request.query ? "?" + request.query : "")});
response.writeHead(303, {"Set-Cookie": `session=; path=/; ${request.client.tls ? 'Secure; ' : ''}SameSite=Strict; expires=Thu, 01 Jan 1970 00:00:00 GMT`, "Location": "/login" + (request.query ? "?" + request.query : "")});
response.end();
} else {
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8", "Connection": "close"});
@ -235,8 +233,8 @@ function handler(request, response) {
}
function getPermissions(session) {
var permissions;
var entry = readSession(session);
let permissions;
let entry = readSession(session);
if (entry) {
permissions = getPermissionsForUser(entry.name);
permissions.authenticated = entry.name !== "guest";
@ -245,9 +243,9 @@ function getPermissions(session) {
}
function getPermissionsForUser(userName) {
var permissions = {};
let permissions = {};
if (core.globalSettings && core.globalSettings.permissions && core.globalSettings.permissions[userName]) {
for (var i in core.globalSettings.permissions[userName]) {
for (let i in core.globalSettings.permissions[userName]) {
permissions[core.globalSettings.permissions[userName][i]] = true;
}
}
@ -255,9 +253,9 @@ function getPermissionsForUser(userName) {
}
function query(headers) {
var session = getCookies(headers).session;
var entry;
var autologin = tildefriends.args.autologin;
let session = getCookies(headers).session;
let entry;
let autologin = tildefriends.args.autologin;
if (entry = autologin ? {name: autologin} : readSession(session)) {
return {
session: entry,

@ -1,17 +1,14 @@
"use strict";
let gSocket;
let gCredentials;
let gPermissions;
let gCurrentFile;
let gFiles = {};
let gApp = {files: {}};
let gApp = {files: {}, emoji: '📦'};
let gEditor;
let gSplit;
let gGraphs = {};
let gTimeSeries = {};
let gParentApp;
let gOriginalInput;
let kErrorColor = "#dc322f";
@ -140,7 +137,7 @@ function showFiles() {
}
function trace() {
window.open(`/speedscope/#profileURL=${encodeURIComponent('/trace')}&title=Tilde%20Friends`);
window.open(`/speedscope/#profileURL=${encodeURIComponent('/trace')}`);
}
function stats() {
@ -222,6 +219,8 @@ function load(path) {
document.getElementById("editPane").style.display = 'flex';
}
gApp = json;
gApp.emoji = gApp.emoji || '📦';
document.getElementById('icon').value = gApp.emoji;
}
if (!isApp) {
document.getElementById("editPane").style.display = 'flex';
@ -251,8 +250,6 @@ function explodePath() {
function save(save_to) {
document.getElementById("save").disabled = true;
document.getElementById("push_to_parent").disabled = true;
document.getElementById("pull_from_parent").disabled = true;
if (gCurrentFile) {
gFiles[gCurrentFile].doc = gEditor.getDoc();
}
@ -298,6 +295,7 @@ function save(save_to) {
let app = {
type: "tildefriends-app",
files: Object.fromEntries(Object.keys(gFiles).map(x => [x, gFiles[x].id || gApp.files[x]])),
emoji: gApp.emoji || '📦',
};
Object.values(gFiles).forEach(function(file) { delete file.id; });
gApp = JSON.parse(JSON.stringify(app));
@ -323,8 +321,6 @@ function save(save_to) {
alert(error);
}).finally(function() {
document.getElementById("save").disabled = false;
document.getElementById("push_to_parent").disabled = false;
document.getElementById("pull_from_parent").disabled = false;
Object.values(gFiles).forEach(function(file) {
file.generation = file.doc.changeGeneration();
});
@ -332,6 +328,14 @@ function save(save_to) {
});
}
function changeIcon() {
let value = prompt('Enter a new app icon emoji:');
if (value !== undefined) {
gApp.emoji = value || '📦';
document.getElementById('icon').value = gApp.emoji;
}
}
function deleteApp() {
let name = document.getElementById("name");
let path = name && name.value ? name.value : url();
@ -348,16 +352,6 @@ function deleteApp() {
}
}
function pullFromParent() {
load(gParentApp ? gParentApp.path : null).then(x => save()).catch(function(error) {
alert(error)
});
}
function pushToParent() {
save(gParentApp ? gParentApp.path : null);
}
function url() {
let hash = window.location.href.indexOf('#');
let question = window.location.href.indexOf('?');
@ -402,7 +396,7 @@ function api_localStorageSet(key, value) {
window.localStorage.setItem('app:' + key, value);
}
function api_localStorageGet(key, value) {
function api_localStorageGet(key) {
return window.localStorage.getItem('app:' + key);
}
@ -535,11 +529,7 @@ function _receive_websocket_message(message) {
if (message && message.action == "session") {
setStatusMessage("🟢 Executing...", kStatusColor);
gCredentials = message.credentials;
gParentApp = message.parentApp;
updateLogin();
let parent_enabled = message.parentApp;
document.getElementById('push_to_parent').style.display = parent_enabled ? 'inline-block' : 'none';
document.getElementById('pull_from_parent').style.display = parent_enabled ? 'inline-block' : 'none';
} else if (message && message.action == 'permissions') {
gPermissions = message.permissions;
let permissions = document.getElementById('permissions_settings');
@ -565,6 +555,9 @@ function _receive_websocket_message(message) {
rpc_in: {group: 'rpc', name: 'in'},
rpc_out: {group: 'rpc', name: 'out'},
cpu_percent: {group: 'cpu', name: 'main'},
thread_percent: {group: 'cpu', name: 'work'},
arena_percent: {group: 'memory', name: 'm'},
js_malloc_percent: {group: 'memory', name: 'js'},
memory_percent: {group: 'memory', name: 'tot'},
@ -573,6 +566,9 @@ function _receive_websocket_message(message) {
tls_malloc_percent: {group: 'memory', name: 'tls'},
uv_malloc_percent: {group: 'memory', name: 'uv'},
messages_stored: {group: 'stored', name: 'messages'},
blobs_stored: {group: 'stored', name: 'blobs'},
socket_count: {group: 'socket', name: 'total'},
socket_open_count: {group: 'socket', name: 'open'},
@ -636,17 +632,19 @@ function _receive_websocket_message(message) {
message.message === 'tfrpc' &&
message.method) {
let api = k_api[message.method];
let id = message.id;
let params = message.params;
if (api) {
Promise.resolve(api.func(...message.params)).then(function(result) {
Promise.resolve(api.func(...params)).then(function(result) {
send({
message: 'tfrpc',
id: message.id,
id: id,
result: result,
});
}).catch(function(error) {
send({
message: 'tfrpc',
id: message.id,
id: id,
error: error,
});
});
@ -844,10 +842,12 @@ function message(event) {
function reconnect(path) {
let oldSocket = gSocket;
gSocket = null
if (oldSocket) {
oldSocket.onopen = null;
oldSocket.onclose = null;
oldSocket.onmessage = null;
oldSocket.close();
}
connectSocket(path);
}
@ -966,6 +966,28 @@ window.addEventListener("load", function() {
window.addEventListener("message", message, false);
window.addEventListener("online", connectSocket);
document.getElementById("name").value = window.location.pathname;
document.getElementById('edit_link').addEventListener('click', function(event) {
event.preventDefault();
toggleEdit();
});
document.getElementById('show_permissions_link').addEventListener('click', () => showPermissions());
document.getElementById('files_hide').addEventListener('click', () => hideFiles());
document.getElementById('files_show').addEventListener('click', () => showFiles());
document.getElementById('closeStats').addEventListener('click', () => closeStats());
document.getElementById('closeEditor').addEventListener('click', () => closeEditor());
document.getElementById('save').addEventListener('click', () => save());
document.getElementById('icon').addEventListener('click', () => changeIcon());
document.getElementById('delete').addEventListener('click', () => deleteApp());
document.getElementById('trace_button').addEventListener('click', function(event) {
event.preventDefault();
trace();
});
document.getElementById('stats_button').addEventListener('click', function(event) {
event.preventDefault();
toggleStats();
});
document.getElementById('new_file_button').addEventListener('click', () => newFile());
document.getElementById('remove_file_button').addEventListener('click', () => removeFile());
for (let tag of document.getElementsByTagName('a')) {
if (tag.accessKey) {
tag.classList.add('tooltip_parent');

@ -1,10 +1,11 @@
import * as auth from './auth.js';
import * as app from './app.js';
import * as auth from './auth.js';
import * as form from './form.js';
import * as httpd from './httpd.js';
var gProcessIndex = 0;
var gProcesses = {};
var gStatsTimer = false;
let gProcessIndex = 0;
let gProcesses = {};
let gStatsTimer = false;
const k_global_settings = {
index: {
@ -17,27 +18,35 @@ const k_global_settings = {
default_value: true,
description: 'Whether this instance should behave as a room.',
},
room_name: {
type: 'string',
default_value: 'tilde friends tunnel',
description: 'Name of the room.',
},
code_of_conduct: {
type: 'textarea',
default_value: undefined,
description: 'Code of conduct presented at sign-in.',
},
http_redirect: {
type: 'string',
default_value: undefined,
description: 'If connecting by HTTP and HTTPS is configured, Location header prefix (ie, "https://example.com")',
},
};
var gGlobalSettings = {
let gGlobalSettings = {
index: "/~core/apps/",
};
var kGlobalSettingsFile = "data/global/settings.json";
var kPingInterval = 60 * 1000;
let kPingInterval = 60 * 1000;
function printError(out, error) {
if (error.stackTrace) {
out.print(error.fileName + ":" + error.lineNumber + ": " + error.message);
out.print(error.stackTrace);
} else {
for (var i in error) {
for (let i in error) {
out.print(i);
}
out.print(error.toString());
@ -45,9 +54,9 @@ function printError(out, error) {
}
function invoke(handlers, argv) {
var promises = [];
let promises = [];
if (handlers) {
for (var i = 0; i < handlers.length; ++i) {
for (let i = 0; i < handlers.length; ++i) {
try {
promises.push(handlers[i](...argv));
} catch (error) {
@ -61,9 +70,9 @@ function invoke(handlers, argv) {
}
function broadcastEvent(eventName, argv) {
var promises = [];
for (var i in gProcesses) {
var process = gProcesses[i];
let promises = [];
for (let i in gProcesses) {
let process = gProcesses[i];
if (process.eventHandlers[eventName]) {
promises.push(invoke(process.eventHandlers[eventName], argv));
}
@ -72,14 +81,14 @@ function broadcastEvent(eventName, argv) {
}
function broadcast(message) {
var sender = this;
var promises = [];
for (var i in gProcesses) {
var process = gProcesses[i];
let sender = this;
let promises = [];
for (let i in gProcesses) {
let process = gProcesses[i];
if (process != sender
&& process.packageOwner == sender.packageOwner
&& process.packageName == sender.packageName) {
var from = getUser(process, sender);
let from = getUser(process, sender);
promises.push(postMessageInternal(from, process, message));
}
}
@ -109,9 +118,9 @@ function getApps(user, process) {
}
}
if (user) {
var db = new Database(user);
let db = new Database(user);
try {
var names = JSON.parse(db.get('apps'));
let names = JSON.parse(db.get('apps'));
return Object.fromEntries(names.map(name => [name, db.get('path:' + name)]));
} catch {
}
@ -126,21 +135,21 @@ function postMessageInternal(from, to, message) {
}
async function getSessionProcessBlob(blobId, session, options) {
var actualOptions = {timeout: kPingInterval};
let actualOptions = {timeout: kPingInterval};
if (options) {
for (var i in options) {
for (let i in options) {
actualOptions[i] = options[i];
}
}
return getProcessBlob(blobId, 'session_' + session, actualOptions);
}
let gManifestCache = {};
async function getProcessBlob(blobId, key, options) {
var process = gProcesses[key];
let process = gProcesses[key];
if (!process
&& !(options && "create" in options && !options.create)) {
let resolveReady;
let rejectReady;
try {
print("Creating task for " + blobId + " " + key);
process = {};
@ -155,8 +164,6 @@ async function getProcessBlob(blobId, key, options) {
process.lastPing = null;
process.timeout = options.timeout;
process.stats = false;
var resolveReady;
var rejectReady;
process.ready = new Promise(function(resolve, reject) {
resolveReady = resolve;
rejectReady = reject;
@ -167,7 +174,7 @@ async function getProcessBlob(blobId, key, options) {
process.task = null;
delete gProcesses[key];
};
var imports = {
let imports = {
'core': {
'broadcast': broadcast.bind(process),
'register': function(eventName, handler) {
@ -337,17 +344,30 @@ async function getProcessBlob(blobId, key, options) {
});
}
};
delete imports.ssb.addRpc;
imports.ssb.privateMessageEncrypt = function(id, recipients, message) {
if (process.credentials &&
process.credentials.session &&
process.credentials.session.name) {
return ssb.privateMessageEncrypt(process.credentials.session.name, id, recipients, message);
}
};
imports.ssb.privateMessageDecrypt = function(id, message) {
if (process.credentials &&
process.credentials.session &&
process.credentials.session.name) {
return ssb.privateMessageDecrypt(process.credentials.session.name, id, message);
}
};
if (process.credentials &&
process.credentials.session &&
process.credentials.session.name) {
imports.database = function(key) {
var db = new Database(process.credentials.session.name + ':' + key);
let db = new Database(process.credentials.session.name + ':' + key);
return Object.fromEntries(Object.keys(db).map(x => [x, db[x].bind(db)]));
};
imports.my_shared_database = function(packageName, key) {
var db = new Database(':shared:' + process.credentials.session.name + ':' + packageName + ':' + key);
let db = new Database(':shared:' + process.credentials.session.name + ':' + packageName + ':' + key);
return Object.fromEntries(Object.keys(db).map(x => [x, db[x].bind(db)]));
};
imports.databases = function() {
@ -356,7 +376,7 @@ async function getProcessBlob(blobId, key, options) {
}
if (options.packageOwner && options.packageName) {
imports.shared_database = function(key) {
var db = new Database(':shared:' + options.packageOwner + ':' + options.packageName + ':' + key);
let db = new Database(':shared:' + options.packageOwner + ':' + options.packageName + ':' + key);
return Object.fromEntries(Object.keys(db).map(x => [x, db[x].bind(db)]));
}
}
@ -371,14 +391,14 @@ async function getProcessBlob(blobId, key, options) {
process.task.setImports(imports);
process.task.activate();
let source = await getBlobOrContent(blobId);
var appSourceName = blobId;
var appSource = utf8Decode(source);
let appSourceName = blobId;
let appSource = utf8Decode(source);
try {
var appObject = JSON.parse(appSource);
let appObject = JSON.parse(appSource);
if (appObject.type == "tildefriends-app") {
appSourceName = 'app.js';
var id = appObject.files[appSourceName];
var blob = await getBlobOrContent(id);
let id = appObject.files[appSourceName];
let blob = await getBlobOrContent(id);
appSource = utf8Decode(blob);
await process.task.loadFile(['/tfrpc.js', await File.readFile('core/tfrpc.js')]);
await Promise.all(Object.keys(appObject.files).map(async function(f) {
@ -416,7 +436,7 @@ function setGlobalSettings(settings) {
}
}
var kStaticFiles = [
let kStaticFiles = [
{uri: '/', path: 'index.html', type: 'text/html; charset=UTF-8'},
{uri: '/style.css', type: 'text/css; charset=UTF-8'},
{uri: '/favicon.png', type: 'image/png'},
@ -427,8 +447,8 @@ var kStaticFiles = [
function startsWithBytes(data, bytes) {
if (data.byteLength >= bytes.length) {
var dataBytes = new Uint8Array(data.slice(0, bytes.length));
for (var i = 0; i < bytes.length; i++) {
let dataBytes = new Uint8Array(data.slice(0, bytes.length));
for (let i = 0; i < bytes.length; i++) {
if (dataBytes[i] != bytes[i] && bytes[i] !== null) {
return;
}
@ -438,10 +458,10 @@ function startsWithBytes(data, bytes) {
}
async function staticFileHandler(request, response, blobId, uri) {
for (var i in kStaticFiles) {
for (let i in kStaticFiles) {
if (uri === kStaticFiles[i].uri) {
var path = kStaticFiles[i].path || uri.substring(1);
var type = kStaticFiles[i].type || guessType(path);
let path = kStaticFiles[i].path || uri.substring(1);
let type = kStaticFiles[i].type || guessType(path);
let stat = await File.stat('core/' + path);
let id = `${stat.mtime}_${stat.size}`;
@ -450,7 +470,7 @@ async function staticFileHandler(request, response, blobId, uri) {
response.writeHead(304, {});
response.end();
} else {
var data = await File.readFile('core/' + path);
let data = await File.readFile('core/' + path);
response.writeHead(200, Object.assign(
{
'Content-Type': type,
@ -477,7 +497,7 @@ const k_mime_types = {
};
async function staticDirectoryHandler(request, response, directory, uri) {
var filename = uri || 'index.html';
let filename = uri || 'index.html';
if (filename.indexOf('..') != -1) {
response.writeHead(404, {"Content-Type": "text/plain; charset=utf-8", "Content-Length": "File not found".length});
response.end("File not found");
@ -492,7 +512,7 @@ async function staticDirectoryHandler(request, response, directory, uri) {
response.writeHead(304, {});
response.end();
} else {
var data = await File.readFile(directory + filename);
let data = await File.readFile(directory + filename);
response.writeHead(200, {
'Content-Type': k_mime_types[filename.split('.').pop()] || 'text/plain',
'Content-Length': data.byteLength,
@ -507,7 +527,7 @@ async function staticDirectoryHandler(request, response, directory, uri) {
}
async function wellKnownHandler(request, response, path) {
var data = await File.readFile("data/global/.well-known/" + path);
let data = await File.readFile("data/global/.well-known/" + path);
if (data) {
response.writeHead(200, {"Content-Type": "text/plain", "Content-Length": data.length});
response.end(data);
@ -532,6 +552,12 @@ function sendData(response, data, type, headers) {
startsWithBytes(data, [0x47, 0x49, 0x46, 0x38, 0x39, 0x61])) {
response.writeHead(200, Object.assign({"Content-Type": "image/gif", "Content-Length": data.byteLength}, headers || {}));
response.end(data);
} else if (startsWithBytes(data, [0x52, 0x49, 0x46, 0x46, null, null, null, null, 0x57, 0x45, 0x42, 0x50])) {
response.writeHead(200, Object.assign({"Content-Type": "image/webp", "Content-Length": data.byteLength}, headers || {}));
response.end(data);
} else if (startsWithBytes(data, [0x3c, 0x73, 0x76, 0x67])) {
response.writeHead(200, Object.assign({"Content-Type": "image/svg+xml", "Content-Length": data.byteLength}, headers || {}));
response.end(data);
} else if (startsWithBytes(data, [null, null, null, null, 0x66, 0x74, 0x79, 0x70, 0x6d, 0x70, 0x34, 0x32])) {
response.writeHead(200, Object.assign({"Content-Type": "audio/mpeg", "Content-Length": data.byteLength}, headers || {}));
response.end(data);
@ -566,12 +592,12 @@ function guessType(path) {
'js': 'text/javascript',
'svg': 'image/svg+xml',
};
var extension = path.split('.').pop();
let extension = path.split('.').pop();
return k_extension_to_type[extension];
}
async function blobHandler(request, response, blobId, uri) {
for (var i in kStaticFiles) {
for (let i in kStaticFiles) {
if (uri === kStaticFiles[i].uri && kStaticFiles[i].path) {
let stat = await File.stat('core/' + kStaticFiles[i].path);
let id = `${stat.mtime}_${stat.size}`;
@ -580,7 +606,7 @@ async function blobHandler(request, response, blobId, uri) {
response.writeHead(304, {});
response.end();
} else {
var data = await File.readFile('core/' + kStaticFiles[i].path);
let data = await File.readFile('core/' + kStaticFiles[i].path);
response.writeHead(200, Object.assign(
{
'Content-Type': kStaticFiles[i].type,
@ -600,52 +626,58 @@ async function blobHandler(request, response, blobId, uri) {
return;
}
var process;
let process;
if (uri == "/view") {
var data;
let data;
let match;
let query = form.decodeForm(request.query);
let headers = {};
if (query.filename && query.filename.match(/^[A-Za-z0-9\.-]*$/)) {
headers['Content-Disposition'] = `attachment; filename=${query.filename}`;
}
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
var id = await new Database(match[1]).get('path:' + match[2]);
let id = await new Database(match[1]).get('path:' + match[2]);
if (id) {
if (request.headers['if-none-match'] === '"' + id + '"') {
response.writeHead(304, {});
response.writeHead(304, headers);
response.end();
} else {
data = await getBlobOrContent(id);
if (match[3]) {
var appObject = JSON.parse(data);
let appObject = JSON.parse(data);
data = appObject.files[match[3]];
}
sendData(response, data, undefined, {etag: '"' + id + '"'});
sendData(response, data, undefined, Object.assign({etag: '"' + id + '"'}, headers));
}
} else {
if (request.headers['if-none-match'] === '"' + blobId + '"') {
response.writeHead(304, {});
response.writeHead(304, headers);
response.end();
} else {
sendData(response, data, undefined, {etag: '"' + blobId + '"'});
sendData(response, data, undefined, Object.assign({etag: '"' + blobId + '"'}, headers));
}
}
} else {
if (request.headers['if-none-match'] === '"' + blobId + '"') {
response.writeHead(304, {});
response.writeHead(304, headers);
response.end();
} else {
data = await getBlobOrContent(blobId);
sendData(response, data, undefined, {etag: '"' + blobId + '"'});
sendData(response, data, undefined, Object.assign({etag: '"' + blobId + '"'}, headers));
}
}
} else if (uri == "/save") {
var match;
let match;
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
let newBlobId = await ssb.blobStore(request.body);
var user = match[1];
var appName = match[2];
var credentials = auth.query(request.headers);
let user = match[1];
let appName = match[2];
let credentials = auth.query(request.headers);
if (credentials && credentials.session &&
(credentials.session.name == user ||
(credentials.permissions.administration && user == 'core'))) {
var database = new Database(user);
var apps = new Set();
let database = new Database(user);
let apps = new Set();
let apps_original = database.get('apps');
try {
apps = new Set(JSON.parse(apps_original));
@ -679,20 +711,20 @@ async function blobHandler(request, response, blobId, uri) {
} else if (uri == "/delete") {
let match;
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
var user = match[1];
var appName = match[2];
var credentials = auth.query(request.headers);
let user = match[1];
let appName = match[2];
let credentials = auth.query(request.headers);
if (credentials && credentials.session &&
(credentials.session.name == user ||
(credentials.permissions.administration && user == 'core'))) {
var database = new Database(user);
var apps = new Set();
let database = new Database(user);
let apps = new Set();
try {
apps = new Set(JSON.parse(database.get('apps')));
} catch {
}
if (apps.delete(appName)) {
database.set('apps', JSON.stringify([...apps]));
database.set('apps', JSON.stringify([...apps].sort()));
}
database.remove('path:' + appName);
} else {
@ -705,12 +737,13 @@ async function blobHandler(request, response, blobId, uri) {
response.writeHead(200, {"Content-Type": "text/plain; charset=utf-8"});
response.end('OK');
} else {
var data;
var type;
var headers;
let data;
let type;
let headers;
let match;
if (match = /^\/\~(\w+)\/(\w+)$/.exec(blobId)) {
var db = new Database(match[1]);
var id = await db.get('path:' + match[2]);
let db = new Database(match[1]);
let id = await db.get('path:' + match[2]);
if (id) {
if (request.headers['if-none-match'] && request.headers['if-none-match'] == '"' + id + '"') {
headers = {
@ -720,7 +753,7 @@ async function blobHandler(request, response, blobId, uri) {
response.end();
} else {
data = utf8Decode(await getBlobOrContent(id));
var appObject = JSON.parse(data);
let appObject = JSON.parse(data);
data = appObject.files[uri.substring(1)];
data = await getBlobOrContent(data);
type = guessType(uri);
@ -735,7 +768,7 @@ async function blobHandler(request, response, blobId, uri) {
}
} else {
data = utf8Decode(await getBlobOrContent(blobId));
var appObject = JSON.parse(data);
let appObject = JSON.parse(data);
data = appObject.files[uri.substring(1)];
data = await getBlobOrContent(data);
headers = {
@ -755,41 +788,30 @@ ssb.addEventListener('connections', function() {
});
async function loadSettings() {
var data;
let data = {};
try {
var settings = new Database('core').get('settings');
let settings = new Database('core').get('settings');
if (settings) {
data = JSON.parse(settings);
}
} catch (error) {
print("Settings not found in database:", error);
}
if (!data) {
try {
data = JSON.parse(utf8Decode(await File.readFile(kGlobalSettingsFile)));
new Database('core').set('settings', JSON.stringify(data));
} catch (error) {
print("Unable to load settings from " + kGlobalSettingsFile + ":", error);
for (let [key, value] of Object.entries(k_global_settings)) {
if (data[key] === undefined) {
data[key] = value.default_value;
}
}
if (data) {
gGlobalSettings = data;
}
}
function sendStats() {
var any = false;
for (var process of Object.values(gProcesses)) {
if (process.app && process.stats) {
process.app.send({action: 'stats', stats: getStats()});
any = true;
let apps = Object.values(gProcesses).filter(process => process.app && process.stats).map(process => process.app);
if (apps.length) {
let stats = getStats();
for (let app of apps) {
app.send({action: 'stats', stats: stats});
}
}
if (any) {
setTimeout(sendStats, 1000);
} else {
gStatsTimer = false;
@ -807,7 +829,7 @@ function enableStats(process, enabled) {
loadSettings().then(function() {
httpd.all("/login", auth.handler);
httpd.all("", function(request, response) {
var match;
let match;
if (request.uri === "/" || request.uri === "") {
response.writeHead(303, {"Location": (request.client.tls ? 'https://' : 'http://') + request.headers.host + gGlobalSettings.index, "Content-Length": "0"});
return response.end();
@ -828,19 +850,31 @@ loadSettings().then(function() {
} else if (match = /^(.*)(\/(?:save|delete)?)$/.exec(request.uri)) {
return blobHandler(request, response, match[1], match[2]);
} else if (match = /^\/trace$/.exec(request.uri)) {
var data = trace();
let data = trace();
response.writeHead(200, {"Content-Type": "application/json; charset=utf-8", "Content-Length": data.length.toString()});
return response.end(data);
} else if (match = /^\/disconnections$/.exec(request.uri)) {
let data = utf8Encode(JSON.stringify(disconnectionsDebug(), null, 2));
response.writeHead(200, {"Content-Type": "application/json; charset=utf-8", "Content-Length": data.byteLength.toString()});
return response.end(data);
} else if (match = /^\/debug$/.exec(request.uri)) {
var data = JSON.stringify(getDebug(), null, 2);
let data = JSON.stringify(getDebug(), null, 2);
response.writeHead(200, {"Content-Type": "application/json; charset=utf-8", "Content-Length": data.length.toString()});
return response.end(data);
} else if (match = /^\/mem$/.exec(request.uri)) {
let data = JSON.stringify(getAllocations(), null, 2);
response.writeHead(200, {
"Content-Type": "application/json; charset=utf-8",
"Content-Length": data.length.toString(),
"Access-Control-Allow-Origin": "*",
});
return response.end(data);
} else if (request.uri == "/robots.txt") {
return blobHandler(request, response, null, request.uri);
} else if ((match = /^\/.well-known\/(.*)/.exec(request.uri)) && request.uri.indexOf("..") == -1) {
return wellKnownHandler(request, response, match[1]);
} else {
var data = "File not found.";
let data = "File not found.";
response.writeHead(404, {"Content-Type": "text/plain; charset=utf-8", "Content-Length": data.length.toString()});
return response.end(data);
}

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

@ -1,59 +0,0 @@
"use strict";
function parseUrl(url) {
// XXX: Hack.
var match = url.match(new RegExp("(\\w+)://([^/]+)?(.*)"));
return {
protocol: match[1],
host: match[2],
path: match[3],
port: match[1] == "http" ? 80 : 443,
};
}
function parseResponse(data) {
var firstLine;
var headers = {};
while (true) {
var endLine = data.indexOf("\r\n");
var line = data.substring(0, endLine);
if (!firstLine) {
firstLine = line;
} else if (!line.length) {
break;
} else {
var colon = line.indexOf(":");
headers[line.substring(colon)] = line.substring(colon + 1);
}
data = data.substring(endLine + 2);
}
return {body: data};
}
export function get(url) {
var parsed = parseUrl(url);
return new Promise(function(resolve, reject) {
var socket = new Socket();
var buffer = "";
return socket.connect(parsed.host, parsed.port).then(function() {
socket.read(function(data) {
if (data) {
buffer += data;
} else {
resolve(parseResponse(buffer));
}
});
if (parsed.port == 443) {
return socket.startTls();
}
}).then(function() {
socket.write(`GET ${parsed.path} HTTP/1.0\r\nHost: ${parsed.host}\r\nConnection: close\r\n\r\n`);
socket.shutdown();
}).catch(function(error) {
reject(error);
});
});
}

@ -1,10 +1,8 @@
import * as sha1 from './sha1.js';
import * as core from './core.js';
"use strict";
var gHandlers = [];
var gSocketHandlers = [];
var gBadRequests = {};
let gHandlers = [];
let gSocketHandlers = [];
let gBadRequests = {};
const kRequestTimeout = 15000;
const kStallTimeout = 60000;
@ -17,8 +15,8 @@ function logError(error) {
}
function addHandler(handler) {
var added = false;
for (var i in gHandlers) {
let added = false;
for (let i in gHandlers) {
if (gHandlers[i].path == handler.path) {
gHandlers[i] = handler;
added = true;
@ -49,7 +47,7 @@ function registerSocketHandler(prefix, handler) {
function Request(method, uri, version, headers, body, client) {
this.method = method;
var index = uri.indexOf("?");
let index = uri.indexOf("?");
if (index != -1) {
this.uri = uri.slice(0, index);
this.query = uri.slice(index + 1);
@ -65,9 +63,9 @@ function Request(method, uri, version, headers, body, client) {
}
function findHandler(request) {
var matchedHandler = null;
for (var name in gHandlers) {
var handler = gHandlers[name];
let matchedHandler = null;
for (let name in gHandlers) {
let handler = gHandlers[name];
if (request.uri == handler.path || request.uri.slice(0, handler.path.length + 1) == handler.path + '/') {
matchedHandler = handler;
break;
@ -77,9 +75,9 @@ function findHandler(request) {
}
function findSocketHandler(request) {
var matchedHandler = null;
for (var name in gSocketHandlers) {
var handler = gSocketHandlers[name];
let matchedHandler = null;
for (let name in gSocketHandlers) {
let handler = gSocketHandlers[name];
if (request.uri == handler.path || request.uri.slice(0, handler.path.length + 1) == handler.path + '/') {
matchedHandler = handler;
break;
@ -89,27 +87,28 @@ function findSocketHandler(request) {
}
function Response(request, client) {
var kStatusText = {
let kStatusText = {
101: "Switching Protocols",
200: 'OK',
303: 'See other',
304: 'Not Modified',
400: 'Bad Request',
401: 'Unauthorized',
403: 'Forbidden',
404: 'File not found',
500: 'Internal server error',
};
var _started = false;
var _finished = false;
var _keepAlive = false;
var _chunked = false;
let _started = false;
let _finished = false;
let _keepAlive = false;
let _chunked = false;
return {
writeHead: function(status) {
if (_started) {
throw new Error("Response.writeHead called multiple times.");
}
var reason;
var headers;
let reason;
let headers;
if (arguments.length == 3) {
reason = arguments[1];
headers = arguments[2];
@ -117,11 +116,11 @@ function Response(request, client) {
reason = kStatusText[status];
headers = arguments[1];
}
var lowerHeaders = {};
var requestVersion = request.version.split("/")[1].split(".");
var responseVersion = (requestVersion[0] >= 1 && requestVersion[0] >= 1) ? "1.1" : "1.0";
var headerString = "HTTP/" + responseVersion + " " + status + " " + reason + "\r\n";
for (var i in headers) {
let lowerHeaders = {};
let requestVersion = request.version.split("/")[1].split(".");
let responseVersion = (requestVersion[0] >= 1 && requestVersion[0] >= 1) ? "1.1" : "1.0";
let headerString = "HTTP/" + responseVersion + " " + status + " " + reason + "\r\n";
for (let i in headers) {
headerString += i + ": " + headers[i] + "\r\n";
lowerHeaders[i.toLowerCase()] = headers[i];
}
@ -172,19 +171,16 @@ function Response(request, client) {
}
function handleRequest(request, response) {
var handler = findHandler(request);
let handler = findHandler(request);
print(request.client.peerName + " - - [" + new Date() + "] " + request.method + " " + request.uri + " " + request.version + " \"" + request.headers["user-agent"] + "\"");
if (handler) {
try {
var promise = handler.invoke(request, response);
if (promise) {
promise.catch(function(error) {
Promise.resolve(handler.invoke(request, response)).catch(function(error) {
response.reportError(error);
request.client.close();
});
}
} catch (error) {
response.reportError(error);
request.client.close();
@ -196,11 +192,11 @@ function handleRequest(request, response) {
}
function handleWebSocketRequest(request, response, client) {
var buffer = new Uint8Array(0);
var frame = new Uint8Array(0);
var frameOpCode = 0x0;
let buffer = new Uint8Array(0);
let frame;
let frameOpCode = 0x0;
var handler = findSocketHandler(request);
let handler = findSocketHandler(request);
if (!handler) {
client.close();
return;
@ -213,9 +209,9 @@ function handleWebSocketRequest(request, response, client) {
if (opCode == 0x1 && (typeof message == "string" || message instanceof String)) {
message = utf8Encode(message);
}
var fin = true;
var packet = [(fin ? (1 << 7) : 0) | (opCode & 0xf)];
var mask = false;
let fin = true;
let packet = [(fin ? (1 << 7) : 0) | (opCode & 0xf)];
let mask = false;
if (message.length < 126) {
packet.push((mask ? (1 << 7) : 0) | message.length);
} else if (message.length < (1 << 16)) {
@ -223,8 +219,8 @@ function handleWebSocketRequest(request, response, client) {
packet.push((message.length >> 8) & 0xff);
packet.push(message.length & 0xff);
} else {
var high = 0; //(message.length / (1 ** 32)) & 0xffffffff;
var low = message.length & 0xffffffff;
let high = 0; //(message.length / (1 ** 32)) & 0xffffffff;
let low = message.length & 0xffffffff;
packet.push((mask ? (1 << 7) : 0) | 127);
packet.push((high >> 24) & 0xff);
packet.push((high >> 16) & 0xff);
@ -236,7 +232,7 @@ function handleWebSocketRequest(request, response, client) {
packet.push(low & 0xff);
}
var array = new Uint8Array(packet.length + message.length);
let array = new Uint8Array(packet.length + message.length);
array.set(packet, 0);
array.set(message, packet.length);
try {
@ -252,53 +248,58 @@ function handleWebSocketRequest(request, response, client) {
client.read(function(data) {
if (data) {
var newBuffer = new Uint8Array(buffer.length + data.length);
let newBuffer = new Uint8Array(buffer.length + data.length);
newBuffer.set(buffer, 0);
newBuffer.set(data, buffer.length);
buffer = newBuffer;
while (buffer.length >= 2) {
var bits0 = buffer[0];
var bits1 = buffer[1];
let bits0 = buffer[0];
let bits1 = buffer[1];
if (bits1 & (1 << 7) == 0) {
// Unmasked message.
client.close();
}
var opCode = bits0 & 0xf;
var fin = bits0 & (1 << 7);
var payloadLength = bits1 & 0x7f;
var maskStart = 2;
let opCode = bits0 & 0xf;
let fin = bits0 & (1 << 7);
let payloadLength = bits1 & 0x7f;
let maskStart = 2;
if (payloadLength == 126) {
payloadLength = 0;
for (var i = 0; i < 2; i++) {
for (let i = 0; i < 2; i++) {
payloadLength <<= 8;
payloadLength |= buffer[2 + i];
}
maskStart = 4;
} else if (payloadLength == 127) {
payloadLength = 0;
for (var i = 0; i < 8; i++) {
for (let i = 0; i < 8; i++) {
payloadLength <<= 8;
payloadLength |= buffer[2 + i];
}
maskStart = 10;
}
var havePayload = buffer.length >= payloadLength + 2 + 4;
let havePayload = buffer.length >= payloadLength + 2 + 4;
if (havePayload) {
var mask = buffer.slice(maskStart, maskStart + 4);
var dataStart = maskStart + 4;
var decoded = new Array(payloadLength);
var payload = buffer.slice(dataStart, dataStart + payloadLength);
let mask =
buffer[maskStart + 0] |
buffer[maskStart + 1] << 8 |
buffer[maskStart + 2] << 16 |
buffer[maskStart + 3] << 24;
let dataStart = maskStart + 4;
let payload = buffer.slice(dataStart, dataStart + payloadLength);
let decoded = maskBytes(payload, mask);
buffer = buffer.slice(dataStart + payloadLength);
for (var i = 0; i < payloadLength; i++) {
decoded[i] = payload[i] ^ mask[i % 4];
}
var newBuffer = new Uint8Array(frame.length + decoded.length);
if (frame) {
let newBuffer = new Uint8Array(frame.length + decoded.length);
newBuffer.set(frame, 0);
newBuffer.set(decoded, frame.length);
frame = newBuffer;
} else {
frame = decoded;
}
if (opCode) {
frameOpCode = opCode;
@ -311,7 +312,7 @@ function handleWebSocketRequest(request, response, client) {
opCode: frameOpCode,
});
}
frame = new Uint8Array(0);
frame = undefined;
}
} else {
break;
@ -339,31 +340,15 @@ function handleWebSocketRequest(request, response, client) {
}
function webSocketAcceptResponse(key) {
var kMagic = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
var kAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
var hex = sha1.hash(key + kMagic)
var binary = "";
for (var i = 0; i < hex.length; i += 6) {
var characters = hex.substring(i, i + 6);
if (characters.length < 6) {
characters += "0".repeat(6 - characters.length);
}
var value = parseInt(characters, 16);
for (var bit = 0; bit < 8 * 3; bit += 6) {
if (i * 8 / 2 + bit >= 8 * hex.length / 2) {
binary += kAlphabet.charAt(64);
} else {
binary += kAlphabet.charAt((value >> (18 - bit)) & 63);
}
}
}
return binary;
let kMagic = "258EAFA5-E914-47DA-95CA-C5AB0DC85B11";
let kAlphabet = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";
return base64Encode(sha1Digest(key + kMagic));
}
function badRequest(client, reason) {
var now = new Date();
var count = 0;
var old = gBadRequests[client.peerName];
let now = new Date();
let count = 0;
let old = gBadRequests[client.peerName];
if (!old) {
gBadRequests[client.peerName] = {
expire: new Date(now.getTime() + 1 * 60 * 1000),
@ -381,9 +366,9 @@ function badRequest(client, reason) {
}
function allowRequest(client) {
var old = gBadRequests[client.peerName];
let old = gBadRequests[client.peerName];
if (old) {
var now = new Date();
let now = new Date();
if (old.expire < now) {
delete gBadRequests[client.peerName];
return true;
@ -404,15 +389,15 @@ function handleConnection(client) {
}
client.info = 'accepted';
var inputBuffer = new Uint8Array(0);
var request;
var headers = {};
var lineByLine = true;
var bodyToRead = -1;
var body;
var requestCount = -1;
var readCount = 0;
var isWebsocket = false;
let inputBuffer = new Uint8Array(0);
let request;
let headers = {};
let parsing_header = true;
let bodyToRead = -1;
let body;
let requestCount = -1;
let readCount = 0;
let isWebsocket = false;
function resetTimeout(requestIndex) {
if (isWebsocket) {
@ -430,7 +415,7 @@ function handleConnection(client) {
}
}, kRequestTimeout);
} else {
var lastReadCount = readCount;
let lastReadCount = readCount;
setTimeout(function() {
if (readCount == lastReadCount) {
client.info = 'stalled';
@ -447,10 +432,9 @@ function handleConnection(client) {
resetTimeout(++requestCount);
function reset() {
inputBuffer = new Uint8Array(0);
request = undefined;
headers = {};
lineByLine = true;
parsing_header = true;
bodyToRead = -1;
body = undefined;
client.info = 'reset';
@ -459,8 +443,8 @@ function handleConnection(client) {
function finish() {
client.info = 'finishing';
var requestObject = new Request(request[0], request[1], request[2], headers, body, client);
var response = new Response(requestObject, client);
let requestObject = new Request(request[0], request[1], request[2], headers, body, client);
let response = new Response(requestObject, client);
try {
handleRequest(requestObject, response)
if (client.isConnected) {
@ -472,71 +456,6 @@ function handleConnection(client) {
}
}
function handleLine(line, length) {
if (bodyToRead == -1) {
line = utf8Decode(line);
if (!request) {
if (!line) {
badRequest(client, 'Empty request.');
return false;
}
request = line.split(' ');
if (request.length != 3 || !request[2].startsWith('HTTP/1.')) {
badRequest(client, 'Bad request.');
request = null;
return false;
}
return true;
} else if (line) {
var colon = line.indexOf(':');
var key = line.slice(0, colon).trim();
var value = line.slice(colon + 1).trim();
headers[key.toLowerCase()] = value;
return true;
} else {
if (headers["content-length"] != undefined) {
bodyToRead = parseInt(headers["content-length"]);
lineByLine = false;
if (bodyToRead > 16 * 1024 * 1024) {
badRequest(client, 'Request too large: ' + bodyToRead + '.');
return false;
}
body = new Uint8Array(bodyToRead);
client.info = 'waiting for body';
resetTimeout(requestCount);
return true;
} else if (headers["connection"]
&& headers["connection"].toLowerCase().split(",").map(x => x.trim()).indexOf("upgrade") != -1
&& headers["upgrade"]
&& headers["upgrade"].toLowerCase() == "websocket") {
isWebsocket = true;
client.info = 'websocket';
var requestObject = new Request(request[0], request[1], request[2], headers, body, client);
var response = new Response(requestObject, client);
handleWebSocketRequest(requestObject, response, client);
/* Prevent the timeout from disconnecting us. */
requestCount++;
return false;
} else {
finish();
return false;
}
}
} else {
var offset = body.length - bodyToRead;
if (line.length > body.length - offset) {
line = line.slice(0, body.length - offset);
}
body.set(line, offset);
bodyToRead -= line.length;
if (bodyToRead <= 0) {
finish();
}
}
}
client.noDelay = true;
client.onError(function(error) {
logError(client.peerName + " - - [" + new Date() + "] " + error);
});
@ -547,36 +466,82 @@ function handleConnection(client) {
if (bodyToRead != -1 && !isWebsocket) {
resetTimeout(requestCount);
}
const kMaxLineLength = 4096;
var newBuffer = new Uint8Array(inputBuffer.length + data.length);
let newBuffer = new Uint8Array(inputBuffer.length + data.length);
newBuffer.set(inputBuffer, 0);
newBuffer.set(data, inputBuffer.length);
inputBuffer = newBuffer;
var newLine = '\n'.charCodeAt(0);
var carriageReturn = '\r'.charCodeAt(0);
var more = true;
while (more) {
if (lineByLine) {
more = false;
var end = inputBuffer.indexOf(newLine);
var realEnd = end;
if (end > 0 && inputBuffer[end - 1] == carriageReturn) {
--end;
}
if (end > kMaxLineLength || end == -1 && inputBuffer.length > kMaxLineLength) {
badRequest(client, 'Request too long.');
if (parsing_header)
{
let result = parseHttp(inputBuffer, inputBuffer.length - data.length);
if (result) {
if (typeof result === 'number') {
if (result == -2) {
/* More. */
} else {
badRequest(client, 'Bad request.');
return;
}
if (end != -1) {
var line = inputBuffer.slice(0, end);
inputBuffer = inputBuffer.slice(realEnd + 1);
more = handleLine(line, realEnd + 1);
} else if (typeof result === 'object') {
request = [
result.method,
result.path,
`HTTP/1.${result.minor_version}`,
];
headers = Object.fromEntries(Object.entries(result.headers).map(x => [x[0].toLowerCase(), x[1]]));
parsing_header = false;
inputBuffer = inputBuffer.slice(result.bytes_parsed);
if (!client.tls && tildefriends.https_port && core.globalSettings.http_redirect && !result.path.startsWith('/.well-known/')) {
let requestObject = new Request(request[0], request[1], request[2], headers, body, client);
let response = new Response(requestObject, client);
response.writeHead(303, {"Location": `${core.globalSettings.http_redirect}${result.path}`, "Content-Length": "0"});
response.end();
return;
}
if (headers["content-length"] != undefined) {
bodyToRead = parseInt(headers["content-length"]);
if (bodyToRead > 16 * 1024 * 1024) {
badRequest(client, 'Request too large: ' + bodyToRead + '.');
return;
}
body = new Uint8Array(bodyToRead);
client.info = 'waiting for body';
resetTimeout(requestCount);
} else if (headers["connection"]
&& headers["connection"].toLowerCase().split(",").map(x => x.trim()).indexOf("upgrade") != -1
&& headers["upgrade"]
&& headers["upgrade"].toLowerCase() == "websocket") {
isWebsocket = true;
client.info = 'websocket';
let requestObject = new Request(request[0], request[1], request[2], headers, body, client);
let response = new Response(requestObject, client);
handleWebSocketRequest(requestObject, response, client);
/* Prevent the timeout from disconnecting us. */
requestCount++;
} else {
more = handleLine(inputBuffer, inputBuffer.length);
inputBuffer = new Uint8Array(0);
finish();
}
}
}
}
if (!parsing_header && inputBuffer.length)
{
let offset = body.length - bodyToRead;
let length = Math.min(inputBuffer.length, body.length - offset);
if (inputBuffer.length > body.length - offset) {
body.set(inputBuffer.slice(0, length), offset);
inputBuffer = inputBuffer.slice(length);
} else {
body.set(inputBuffer, offset);
inputBuffer = inputBuffer.slice(inputBuffer.length);
}
bodyToRead -= length;
if (bodyToRead <= 0) {
finish();
}
}
} else {
@ -586,32 +551,47 @@ function handleConnection(client) {
});
}
var kBacklog = 8;
var kHost = "0.0.0.0"
let kBacklog = 8;
let kHost = "0.0.0.0"
var socket = new Socket();
socket.bind(kHost, tildefriends.http_port).then(function() {
var listenResult = socket.listen(kBacklog, function() {
socket.accept().then(handleConnection).catch(function(error) {
logError("[" + new Date() + "] accept error " + error);
let socket = new Socket();
socket.bind(kHost, tildefriends.http_port).then(function(port) {
print("bound to", port);
print("checking", tildefriends.args.out_http_port_file);
if (tildefriends.args.out_http_port_file) {
print("going to write the file");
File.writeFile(tildefriends.args.out_http_port_file, port.toString() + '\n').then(function(r) {
print("wrote port file", tildefriends.args.out_http_port_file, r);
}).catch(function() {
print("failed to write port file");
});
}
let listenResult = socket.listen(kBacklog, async function() {
try {
let client = await socket.accept();
client.noDelay = true;
handleConnection(client);
} catch (error) {
logError("[" + new Date() + "] accept error " + error);
}
});
}).catch(function(error) {
logError("[" + new Date() + "] bind error " + error);
});
if (tildefriends.https_port) {
var tls = {};
var secureSocket = new Socket();
let tls = {};
let secureSocket = new Socket();
secureSocket.bind(kHost, tildefriends.https_port).then(function() {
return secureSocket.listen(kBacklog, async function() {
try {
var client = await secureSocket.accept();
let client = await secureSocket.accept();
client.noDelay = true;
client.tls = true;
const kCertificatePath = "data/httpd/certificate.pem";
const kPrivateKeyPath = "data/httpd/privatekey.pem";
var stat = await Promise.all([
let stat = await Promise.all([
await File.stat(kCertificatePath),
await File.stat(kPrivateKeyPath),
]);
@ -621,8 +601,8 @@ if (tildefriends.https_port) {
tls.keyStat.mtime != stat[1].mtime ||
tls.keyStat.size != stat[1].size) {
print("Reloading " + kCertificatePath + " and " + kPrivateKeyPath);
var privateKey = utf8Decode(await File.readFile(kPrivateKeyPath));
var certificate = utf8Decode(await File.readFile(kCertificatePath));
let privateKey = utf8Decode(await File.readFile(kPrivateKeyPath));
let certificate = utf8Decode(await File.readFile(kCertificatePath));
tls.context = new TlsContext();
tls.context.setPrivateKey(privateKey);

@ -11,8 +11,8 @@
<span>😎</span>
<a accesskey="h" data-tip="Open home app." href="/" style="color: #fff">Tilde Friends</a>
<a accesskey="a" data-tip="Open apps list." href="/~core/apps/">apps</a>
<a accesskey="e" data-tip="Toggle the app editor." href="#" onclick="event.preventDefault(); toggleEdit()">edit</a>
<a accesskey="p" data-tip="View and change permissions." href="#" onclick="showPermissions()">🎛️</a>
<a accesskey="e" data-tip="Toggle the app editor." href="#" id="edit_link">edit</a>
<a accesskey="p" data-tip="View and change permissions." href="#" id="show_permissions_link">🎛️</a>
<span id="status"></span>
<span id="requests"></span>
<span id="permissions_settings"></span>
@ -22,34 +22,32 @@
<div id="content" class="hbox" style="flex: 1 1; width: 100%">
<div id="statsPane" class="vbox" style="display: none; flex 1 1">
<div class="hbox">
<input type="button" id="closeStats" name="closeStats" value="Close" onclick="closeStats()">
<input type="button" id="closeStats" name="closeStats" value="Close">
</div>
<div id="graphs" class="vbox" style="height: 100%"></div>
</div>
<div id="editPane" class="vbox" style="display: none">
<div class="navigation hbox">
<input type="button" id="closeEditor" name="closeEditor" value="Close" onclick="closeEditor()">
<input type="button" id="save" name="save" value="Save" onclick="save()">
<input type="button" id="closeEditor" name="closeEditor" value="Close">
<input type="button" id="save" name="save" value="Save">
<input type="button" id="icon" name="icon" value="📦">
<input type="text" id="name" name="name" style="flex: 1 1; min-width: 1em"></input>
<input type="button" id="push_to_parent" value="Push to Parent" onclick="pushToParent()">
<input type="button" id="pull_from_parent" value="Pull from Parent" onclick="pullFromParent()">
<input type="button" id="revert" name="revert" value="Revert" onclick="revert()">
<input type="button" id="delete" name="delete" value="Delete" onclick="deleteApp()">
<input type="button" onclick="event.preventDefault(); trace()" value="Trace">
<input type="button" onclick="event.preventDefault(); toggleStats()" value="Stats">
<input type="button" id="delete" name="delete" value="Delete">
<input type="button" id="trace_button" value="Trace">
<input type="button" id="stats_button" value="Stats">
</div>
<div class="hbox" style="height: 100%">
<div id="filesPane">
<div class="hbox">
<span id="files_header">Files</span>
<span id="files_hide" onclick="hideFiles()">«</span>
<span id="files_show" onclick="showFiles()">»</span>
<span id="files_hide">«</span>
<span id="files_show">»</span>
</div>
<div id="files_content">
<ul id="files"></ul>
<br>
<div><button onclick="newFile()">New File</button></div>
<div><button onclick="removeFile()">Remove File</button></div>
<div><button id="new_file_button">New File</button></div>
<div><button id="remove_file_button">Remove File</button></div>
</div>
</div>
<div id="docPane" style="display: flex; flex: 1 1 50%; flex-flow: column">
@ -65,6 +63,6 @@
</div>
<script src="/split/split.min.js"></script>
<script src="/smoothie/smoothie.js"></script>
<script src="/static/client.js"></script>
<script src="/static/client.js" type="module"></script>
</body>
</html>

@ -1,160 +0,0 @@
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* SHA-1 implementation in JavaScript (c) Chris Veness 2002-2014 / MIT Licence */
/* */
/* - see http://csrc.nist.gov/groups/ST/toolkit/secure_hashing.html */
/* http://csrc.nist.gov/groups/ST/toolkit/examples.html */
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/* jshint node:true *//* global define, escape, unescape */
'use strict';
/**
* SHA-1 hash function reference implementation.
*
* @namespace
*/
var Sha1 = {};
/**
* Generates SHA-1 hash of string.
*
* @param {string} msg - (Unicode) string to be hashed.
* @returns {string} Hash of msg as hex character string.
*/
Sha1.hash = function(msg) {
// convert string to UTF-8, as SHA only deals with byte-streams
msg = msg.utf8Encode();
// constants [§4.2.1]
var K = [ 0x5a827999, 0x6ed9eba1, 0x8f1bbcdc, 0xca62c1d6 ];
// PREPROCESSING
msg += String.fromCharCode(0x80); // add trailing '1' bit (+ 0's padding) to string [§5.1.1]
// convert string msg into 512-bit/16-integer blocks arrays of ints [§5.2.1]
var l = msg.length/4 + 2; // length (in 32-bit integers) of msg + 1 + appended length
var N = Math.ceil(l/16); // number of 16-integer-blocks required to hold 'l' ints
var M = new Array(N);
for (var i=0; i<N; i++) {
M[i] = new Array(16);
for (var j=0; j<16; j++) { // encode 4 chars per integer, big-endian encoding
M[i][j] = (msg.charCodeAt(i*64+j*4)<<24) | (msg.charCodeAt(i*64+j*4+1)<<16) |
(msg.charCodeAt(i*64+j*4+2)<<8) | (msg.charCodeAt(i*64+j*4+3));
} // note running off the end of msg is ok 'cos bitwise ops on NaN return 0
}
// add length (in bits) into final pair of 32-bit integers (big-endian) [§5.1.1]
// note: most significant word would be (len-1)*8 >>> 32, but since JS converts
// bitwise-op args to 32 bits, we need to simulate this by arithmetic operators
M[N-1][14] = ((msg.length-1)*8) / Math.pow(2, 32); M[N-1][14] = Math.floor(M[N-1][14]);
M[N-1][15] = ((msg.length-1)*8) & 0xffffffff;
// set initial hash value [§5.3.1]
var H0 = 0x67452301;
var H1 = 0xefcdab89;
var H2 = 0x98badcfe;
var H3 = 0x10325476;
var H4 = 0xc3d2e1f0;
// HASH COMPUTATION [§6.1.2]
var W = new Array(80); var a, b, c, d, e;
for (var i=0; i<N; i++) {
// 1 - prepare message schedule 'W'
for (var t=0; t<16; t++) W[t] = M[i][t];
for (var t=16; t<80; t++) W[t] = Sha1.ROTL(W[t-3] ^ W[t-8] ^ W[t-14] ^ W[t-16], 1);
// 2 - initialise five working variables a, b, c, d, e with previous hash value
a = H0; b = H1; c = H2; d = H3; e = H4;
// 3 - main loop
for (var t=0; t<80; t++) {
var s = Math.floor(t/20); // seq for blocks of 'f' functions and 'K' constants
var T = (Sha1.ROTL(a,5) + Sha1.f(s,b,c,d) + e + K[s] + W[t]) & 0xffffffff;
e = d;
d = c;
c = Sha1.ROTL(b, 30);
b = a;
a = T;
}
// 4 - compute the new intermediate hash value (note 'addition modulo 2^32')
H0 = (H0+a) & 0xffffffff;
H1 = (H1+b) & 0xffffffff;
H2 = (H2+c) & 0xffffffff;
H3 = (H3+d) & 0xffffffff;
H4 = (H4+e) & 0xffffffff;
}
return Sha1.toHexStr(H0) + Sha1.toHexStr(H1) + Sha1.toHexStr(H2) +
Sha1.toHexStr(H3) + Sha1.toHexStr(H4);
};
/**
* Function 'f' [§4.1.1].
* @private
*/
Sha1.f = function(s, x, y, z) {
switch (s) {
case 0: return (x & y) ^ (~x & z); // Ch()
case 1: return x ^ y ^ z; // Parity()
case 2: return (x & y) ^ (x & z) ^ (y & z); // Maj()
case 3: return x ^ y ^ z; // Parity()
}
};
/**
* Rotates left (circular left shift) value x by n positions [§3.2.5].
* @private
*/
Sha1.ROTL = function(x, n) {
return (x<<n) | (x>>>(32-n));
};
/**
* Hexadecimal representation of a number.
* @private
*/
Sha1.toHexStr = function(n) {
// note can't use toString(16) as it is implementation-dependant,
// and in IE returns signed numbers when used on full words
var s="", v;
for (var i=7; i>=0; i--) { v = (n>>>(i*4)) & 0xf; s += v.toString(16); }
return s;
};
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
/** Extend String object with method to encode multi-byte string to utf8
* - monsur.hossa.in/2012/07/20/utf-8-in-javascript.html */
if (typeof String.prototype.utf8Encode == 'undefined') {
String.prototype.utf8Encode = function() {
return unescape( encodeURIComponent( this ) );
};
}
/** Extend String object with method to decode utf8 string to multi-byte */
if (typeof String.prototype.utf8Decode == 'undefined') {
String.prototype.utf8Decode = function() {
try {
return decodeURIComponent( escape( this ) );
} catch (e) {
return this; // invalid UTF-8? return as-is
}
};
}
/* - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - */
if (typeof module != 'undefined' && module.exports) module.exports = Sha1; // CommonJs export
if (typeof define == 'function' && define.amd) define([], function() { return Sha1; }); // AMD
export let hash = Sha1.hash;

@ -1,370 +0,0 @@
"use strict";
var g_wants_requests = {};
var g_database = new Database('core');
let g_attendants = {};
const k_use_create_history_stream = false;
const k_blobs_concurrent_target = 8;
const k_settings = JSON.parse(g_database.get('settings') ?? '{"room": true}');
function following(db, id) {
var o = db.get(id + ":following");
const k_version = 5;
var f = o ? JSON.parse(o) : o;
if (!f || f.version != k_version) {
f = {users: [], sequence: 0, version: k_version};
}
f.users = new Set(f.users);
ssb.sqlStream(
"SELECT "+
" sequence, "+
" json_extract(content, '$.contact') AS contact, "+
" json_extract(content, '$.following') AS following "+
"FROM messages "+
"WHERE "+
" author = ?1 AND "+
" sequence > ?2 AND "+
" json_extract(content, '$.type') = 'contact' "+
"UNION SELECT MAX(sequence) AS sequence, NULL, NULL FROM messages WHERE author = ?1 "+
"ORDER BY sequence",
[id, f.sequence],
function(row) {
if (row.following) {
f.users.add(row.contact);
} else {
f.users.delete(row.contact);
}
f.sequence = row.sequence;
});
f.users = Array.from(f.users).sort();
var j = JSON.stringify(f);
if (o != j) {
db.set(id + ":following", j);
}
return f.users;
}
function followingDeep(db, seed_ids, depth) {
if (depth <= 0) {
return seed_ids;
}
var f = seed_ids.map(x => following(db, x));
var ids = [].concat(...f);
var x = followingDeep(db, [...new Set(ids)].sort(), depth - 1);
x = [...new Set([].concat(...x, ...seed_ids))].sort();
return x;
}
function get_latest_sequence_for_author(author) {
var sequence = 0;
ssb.sqlStream(
'SELECT MAX(sequence) AS sequence FROM messages WHERE author = ?1',
[author],
function(row) {
if (row.sequence) {
sequence = row.sequence;
}
});
return sequence;
}
function storeMessage(message) {
var payload = message.message.value ? message.message.value : message.message;
if (typeof(payload) == 'object') {
ssb.storeMessage(payload);
}
}
function tunnel_attendants(request) {
if (request.message.type !== 'state') {
throw Error('Unexpected type: ' + request.message.type);
}
let state = new Set(request.message.ids);
for (let id of state) {
request.add_room_attendant(id);
}
request.more(function attendants(message) {
if (message.message.type === 'joined') {
request.add_room_attendant(message.message.id);
state.add(message.message.id);
} else if (message.message.type === 'left') {
request.remove_room_attendant(message.message.id);
state.delete(message.message.id);
} else {
throw Error('Unexpected type: ' + message.type);
}
});
}
function send_blobs_create_wants(connection) {
connection.send_json({'name': ['blobs', 'createWants'], 'type': 'source', 'args': []}, function on_blob_create_wants(message) {
if (message.message?.name === 'Error') {
return;
}
Object.keys(message.message).forEach(function(id) {
if (message.message[id] < 0) {
if (g_wants_requests[connection.id]) {
delete connection.active_blob_wants[id];
var blob = ssb.blobGet(id);
if (blob) {
var out_message = {};
out_message[id] = blob.byteLength;
g_wants_requests[connection.id].send_json(out_message);
}
}
} else {
var received_bytes = 0;
var expected_bytes = message.message[id];
var buffer = new Uint8Array(expected_bytes);
connection.send_json({'name': ['blobs', 'get'], 'type': 'source', 'args': [id]}, function(message) {
if (message.flags & 0x4 /* end */) {
delete connection.active_blob_wants[id];
} else {
buffer.set(new Uint8Array(message.message, 0, message.message.byteLength), received_bytes);
received_bytes += message.message.byteLength;
if (received_bytes == expected_bytes) {
ssb.blobStore(buffer);
}
}
});
if (g_wants_requests[connection.id] && Object.keys(connection.active_blob_wants).length < k_blobs_concurrent_target) {
requestMoreBlobs(g_wants_requests[connection.id]);
}
}
});
});
}
ssb.addEventListener('connections', function on_connections_changed(change, connection) {
if (change == 'add') {
connection.active_blob_wants = {};
var sequence = get_latest_sequence_for_author(connection.id);
if (k_use_create_history_stream) {
connection.send_json({'name': ['createHistoryStream'], 'type': 'source', 'args': [{'id': connection.id, 'seq': sequence, 'live': true, 'keys': false}]}, storeMessage);
var identities = ssb.getAllIdentities();
followingDeep(g_database, identities, 2).then(function(ids) {
for (let id of ids) {
if (identities.indexOf(id) != -1) {
continue;
}
var sequence = get_latest_sequence_for_author(id);
connection.send_json({'name': ['createHistoryStream'], 'type': 'source', 'args': [{'id': id, 'seq': sequence, 'live': true, 'keys': false}]}, storeMessage);
}
});
} else {
if (connection.is_client) {
connection.send_json({"name": ["ebt", "replicate"], "args": [{"version": 3, "format": "classic"}], "type": "duplex"}, ebtReplicateClient);
connection.send_json_async({'name': ['tunnel', 'isRoom'], 'args': []}, function tunnel_is_room(request) {
if (request.message) {
request.connection.send_json({'name': ['room', 'attendants'], 'args': [], 'type': 'source'}, tunnel_attendants);
}
});
}
send_blobs_create_wants(connection);
}
} else if (change == 'remove') {
print('REMOVE', connection.id);
notify_attendant_changed(connection.id, 'left');
delete g_attendants[connection.id];
delete g_wants_requests[connection.id];
} else {
print('CHANGE', change);
}
});
function blob_want_discovered(request, id) {
if (!request || !request.connection || Object.keys(request.connection.active_blob_wants).length > k_blobs_concurrent_target) {
return;
}
var message = {};
message[id] = -1;
request.send_json(message);
request.connection.active_blob_wants[id] = true;
}
function requestMoreBlobs(request) {
ssb.sqlStream(
'SELECT id FROM blob_wants LIMIT ' + k_blobs_concurrent_target,
[],
row => blob_want_discovered(request, row.id));
}
ssb.addRpc(['blobs', 'createWants'], function(request) {
g_wants_requests[request.connection.id] = request;
ssb.addEventListener('blob_want_added', id => blob_want_discovered(request, id));
requestMoreBlobs(request);
});
ssb.addRpc(['tunnel', 'isRoom'], function(request) {
if (k_settings.room) {
request.send_json({"name": "tilde friends tunnel", "membership": false, "features": ["tunnel", "room1"]});
} else {
request.send_json(false);
}
});
function notify_attendant_changed(id, type) {
if (!id) {
print(`notify_attendant_changed called with id=${id}`);
return;
}
for (let r of Object.values(g_attendants)) {
try {
r.send_json({
type: type,
id: id,
});
} catch (e) {
print(`Removing ${id} from g_attendants in ${type}.`, e);
delete g_attendants[id];
}
}
}
ssb.addRpc(['room', 'attendants'], function(request) {
let ids = Object.keys(g_attendants).sort();
request.send_json({
type: 'state',
ids: ids,
});
notify_attendant_changed(request.connection.id, 'joined');
g_attendants[request.connection.id] = request;
});
function ebtReplicateSendClock(request, have) {
var identities = ssb.getAllIdentities();
var message = {};
var last_sent = request.connection.sent_clock || {};
var ids = followingDeep(g_database, identities, 2).concat([request.connection.id]);
if (!Object.keys(last_sent).length) {
for (let id of ids) {
message[id] = get_latest_sequence_for_author(id);
}
}
for (let id of Object.keys(have)) {
if (message[id] === undefined) {
var sequence = get_latest_sequence_for_author(id);
message[id] = sequence ? sequence : -1;
}
}
var to_send = {}
var offset = Math.floor(Math.random() * ids.length);
for (var i = 0; i < ids.length; i++) {
var id = ids[(i + offset) % ids.length];
if (last_sent[id] === undefined || message[id] > last_sent[id]) {
last_sent[id] = to_send[id] = message[id] === -1 ? -1 : message[id] << 1;
}
if (Object.keys(to_send).length >= 32) {
request.send_json(to_send);
to_send = {};
}
}
request.connection.sent_clock = last_sent;
if (Object.keys(to_send).length) {
request.send_json(to_send);
}
}
function formatMessage(row) {
if (row.sequence_before_author) {
return {
previous: row.previous,
sequence: row.sequence,
author: row.author,
timestamp: row.timestamp,
hash: row.hash,
content: JSON.parse(row.content),
signature: row.signature,
};
} else {
return {
previous: row.previous,
author: row.author,
sequence: row.sequence,
timestamp: row.timestamp,
hash: row.hash,
content: JSON.parse(row.content),
signature: row.signature,
};
}
}
function ebtReplicateRegisterMessageCallback(request) {
ssb.addEventListener('message', function(message_id) {
ssb.sqlStream(
'SELECT previous, author, id, sequence, timestamp, hash, content, signature FROM messages WHERE id = ?1',
[message_id],
function (row) {
request.send_json(formatMessage(row));
});
});
}
function ebtReplicateCommon(request) {
if (request.message.author) {
storeMessage(request);
} else {
ebtReplicateSendClock(request, request.message);
for (let id of Object.keys(request.message)) {
if (request.message[id] >= 0 && (request.message[id] & 1) == 0) {
ssb.sqlStream(
'SELECT previous, author, id, sequence, timestamp, hash, content, signature FROM messages WHERE author = ?1 AND sequence >= ?2 ORDER BY sequence',
[id, request.message[id] >> 1],
function (row) {
request.send_json(formatMessage(row));
});
}
}
}
}
function ebtReplicateClient(request) {
if (request.message?.name !== 'Error') {
if (!request.connection.message_registered) {
ebtReplicateRegisterMessageCallback(request);
request.connection.message_registered = true;
}
ebtReplicateCommon(request);
}
}
function ebtReplicateServer(request) {
ebtReplicateRegisterMessageCallback(request);
ebtReplicateSendClock(request, {});
request.more(ebtReplicateCommon);
}
ssb.addRpc(['ebt', 'replicate'], ebtReplicateServer);
ssb.addRpc(['createHistoryStream'], function(request) {
var id = request.args[0].id;
var seq = request.args[0].seq;
var keys = request.args[0].keys || request.args[0].keys === undefined;
function sendMessage(row) {
if (keys) {
var message = {
key: row.id,
value: formatMessage(row),
timestamp: row.timestamp,
};
} else {
var message = formatMessage(row);
}
request.send_json(message);
}
ssb.sqlStream(
'SELECT previous, author, id, sequence, timestamp, hash, content, signature, sequence_before_author FROM messages WHERE author = ?1 AND sequence >= ?2 ORDER BY sequence',
[id, seq ?? 0],
sendMessage);
ssb.addEventListener('message', function(message_id) {
ssb.sqlStream(
'SELECT previous, author, id, sequence, timestamp, hash, content, signature, sequence_before_author FROM messages WHERE id = ?1 AND author = ?2',
[message_id, id],
function (row) {
sendMessage(row);
});
});
});

@ -14,7 +14,7 @@ if (k_is_browser) {
function make_rpc(target, prop, receiver) {
return function() {
let id = g_next_id++;
while (!id || g_calls[id]) {
while (!id || g_calls[id] !== undefined) {
id = g_next_id++;
}
let promise = new Promise(function(resolve, reject) {
@ -39,38 +39,35 @@ function send(response) {
function call_rpc(message) {
if (message && message.message === 'tfrpc') {
if (message.method) {
let method = g_api[message.method];
let id = message.id;
if (message.method) {
if (method) {
let response = {message: 'tfrpc', id: message.id};
try {
Promise.resolve(method(...message.params)).then(function(result) {
response.result = result;
send(response);
send({message: 'tfrpc', id: id, result: result});
}).catch(function(error) {
response.error = error;
send(response);
send({message: 'tfrpc', id: id, error: error});
});
} catch (error) {
response.error = error;
send(response);
send({message: 'tfrpc', id: id, error: error});
}
} else {
throw new Error(message.method + ' not found.');
}
} else if (message.error !== undefined) {
if (g_calls[message.id]) {
g_calls[message.id].reject(message.error);
delete g_calls[message.id];
if (g_calls[id]) {
g_calls[id].reject(message.error);
delete g_calls[id];
} else {
throw new Error(message.id + ' not found to reply.');
throw new Error(id + ' not found to reply.');
}
} else {
if (g_calls[message.id]) {
g_calls[message.id].resolve(message.result);
delete g_calls[message.id];
if (g_calls[id]) {
g_calls[id].resolve(message.result);
delete g_calls[id];
} else {
throw new Error(message.id + ' not found to reply.');
throw new Error(id + ' not found to reply.');
}
}
}

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

@ -1,3 +0,0 @@
CFLAGS = --pednatic -Wall -stdc99 -O2
LDFLAGS =

@ -1,139 +0,0 @@
#include <string.h>
#include <stdio.h>
/*
* Base64 encoding/decoding (RFC1341)
* Copyright (c) 2005-2011, Jouni Malinen <j@w1.fi>
*
* This software may be distributed under the terms of the BSD license.
* See README for more details.
*/
static const unsigned char base64c_table[65] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
static const unsigned char base64c_dtable[256] = {
/*000*/0x80,/*001*/0x80,/*002*/0x80,/*003*/0x80,/*004*/0x80,/*005*/0x80,/*006*/0x80,/*007*/0x80,/*008*/0x80,/*009*/0x80,/*010*/0x80,/*011*/0x80,/*012*/0x80,/*013*/0x80,/*014*/0x80,/*015*/0x80,/*016*/0x80,/*017*/0x80,/*018*/0x80,/*019*/0x80,
/*020*/0x80,/*021*/0x80,/*022*/0x80,/*023*/0x80,/*024*/0x80,/*025*/0x80,/*026*/0x80,/*027*/0x80,/*028*/0x80,/*029*/0x80,/*030*/0x80,/*031*/0x80,/*032*/0x80,/*033*/0x80,/*034*/0x80,/*035*/0x80,/*036*/0x80,/*037*/0x80,/*038*/0x80,/*039*/0x80,
/*040*/0x80,/*041*/0x80,/*042*/0x80,/*043*/0x3e,/*044*/0x80,/*045*/0x80,/*046*/0x80,/*047*/0x3f,/*048*/0x34,/*049*/0x35,/*050*/0x36,/*051*/0x37,/*052*/0x38,/*053*/0x39,/*054*/0x3a,/*055*/0x3b,/*056*/0x3c,/*057*/0x3d,/*058*/0x80,/*059*/0x80,
/*060*/0x80,/*061*/0x00,/*062*/0x80,/*063*/0x80,/*064*/0x80,/*065*/0x00,/*066*/0x01,/*067*/0x02,/*068*/0x03,/*069*/0x04,/*070*/0x05,/*071*/0x06,/*072*/0x07,/*073*/0x08,/*074*/0x09,/*075*/0x0a,/*076*/0x0b,/*077*/0x0c,/*078*/0x0d,/*079*/0x0e,
/*080*/0x0f,/*081*/0x10,/*082*/0x11,/*083*/0x12,/*084*/0x13,/*085*/0x14,/*086*/0x15,/*087*/0x16,/*088*/0x17,/*089*/0x18,/*090*/0x19,/*091*/0x80,/*092*/0x80,/*093*/0x80,/*094*/0x80,/*095*/0x80,/*096*/0x80,/*097*/0x1a,/*098*/0x1b,/*099*/0x1c,
/*100*/0x1d,/*101*/0x1e,/*102*/0x1f,/*103*/0x20,/*104*/0x21,/*105*/0x22,/*106*/0x23,/*107*/0x24,/*108*/0x25,/*109*/0x26,/*110*/0x27,/*111*/0x28,/*112*/0x29,/*113*/0x2a,/*114*/0x2b,/*115*/0x2c,/*116*/0x2d,/*117*/0x2e,/*118*/0x2f,/*119*/0x30,
/*120*/0x31,/*121*/0x32,/*122*/0x33,/*123*/0x80,/*124*/0x80,/*125*/0x80,/*126*/0x80,/*127*/0x80,/*128*/0x80,/*129*/0x80,/*130*/0x80,/*131*/0x80,/*132*/0x80,/*133*/0x80,/*134*/0x80,/*135*/0x80,/*136*/0x80,/*137*/0x80,/*138*/0x80,/*139*/0x80,
/*140*/0x80,/*141*/0x80,/*142*/0x80,/*143*/0x80,/*144*/0x80,/*145*/0x80,/*146*/0x80,/*147*/0x80,/*148*/0x80,/*149*/0x80,/*150*/0x80,/*151*/0x80,/*152*/0x80,/*153*/0x80,/*154*/0x80,/*155*/0x80,/*156*/0x80,/*157*/0x80,/*158*/0x80,/*159*/0x80,
/*160*/0x80,/*161*/0x80,/*162*/0x80,/*163*/0x80,/*164*/0x80,/*165*/0x80,/*166*/0x80,/*167*/0x80,/*168*/0x80,/*169*/0x80,/*170*/0x80,/*171*/0x80,/*172*/0x80,/*173*/0x80,/*174*/0x80,/*175*/0x80,/*176*/0x80,/*177*/0x80,/*178*/0x80,/*179*/0x80,
/*180*/0x80,/*181*/0x80,/*182*/0x80,/*183*/0x80,/*184*/0x80,/*185*/0x80,/*186*/0x80,/*187*/0x80,/*188*/0x80,/*189*/0x80,/*190*/0x80,/*191*/0x80,/*192*/0x80,/*193*/0x80,/*194*/0x80,/*195*/0x80,/*196*/0x80,/*197*/0x80,/*198*/0x80,/*199*/0x80,
/*200*/0x80,/*201*/0x80,/*202*/0x80,/*203*/0x80,/*204*/0x80,/*205*/0x80,/*206*/0x80,/*207*/0x80,/*208*/0x80,/*209*/0x80,/*210*/0x80,/*211*/0x80,/*212*/0x80,/*213*/0x80,/*214*/0x80,/*215*/0x80,/*216*/0x80,/*217*/0x80,/*218*/0x80,/*219*/0x80,
/*220*/0x80,/*221*/0x80,/*222*/0x80,/*223*/0x80,/*224*/0x80,/*225*/0x80,/*226*/0x80,/*227*/0x80,/*228*/0x80,/*229*/0x80,/*230*/0x80,/*231*/0x80,/*232*/0x80,/*233*/0x80,/*234*/0x80,/*235*/0x80,/*236*/0x80,/*237*/0x80,/*238*/0x80,/*239*/0x80,
/*240*/0x80,/*241*/0x80,/*242*/0x80,/*243*/0x80,/*244*/0x80,/*245*/0x80,/*246*/0x80,/*247*/0x80,/*248*/0x80,/*249*/0x80,/*250*/0x80,/*251*/0x80,/*252*/0x80,/*253*/0x80,/*254*/0x80,/*255*/0x00,
};
size_t base64c_encoding_length(size_t len) {
size_t olen = len * 4 / 3 + 4; /* 3-byte blocks to 4-byte */
olen++; /* nul termination */
if (olen < len)
return 0; /* integer overflow */
return olen;
}
size_t base64c_encode(const unsigned char *src, size_t len,
unsigned char* out, const size_t out_len)
{
unsigned char *pos;
const unsigned char *end, *in;
const unsigned char *out_end = out + out_len;
end = src + len;
in = src;
pos = out;
if (out_len < base64c_encoding_length(len)) { return -1; }
while (end - in >= 3 ) {
*pos++ = base64c_table[in[0] >> 2];
*pos++ = base64c_table[((in[0] & 0x03) << 4) | (in[1] >> 4)];
*pos++ = base64c_table[((in[1] & 0x0f) << 2) | (in[2] >> 6)];
*pos++ = base64c_table[in[2] & 0x3f];
in += 3;
}
if (end - in) {
*pos++ = base64c_table[in[0] >> 2];
if (end - in == 1) {
*pos++ = base64c_table[(in[0] & 0x03) << 4];
*pos++ = '=';
} else {
*pos++ = base64c_table[((in[0] & 0x03) << 4) | (in[1] >> 4)];
*pos++ = base64c_table[(in[1] & 0x0f) << 2];
}
*pos++ = '=';
}
*pos = '\0';
return out_len - (out_end-pos);
}
size_t base64c_decoding_length(size_t inlen) {
return inlen / 4 * 3;
}
size_t base64c_decode(const unsigned char *src, size_t len, unsigned char *out, const size_t out_len)
{
if (out == NULL) { return 0; }
if (out_len <= 0) { return 0; }
unsigned char *pos, block[4], tmp;
size_t i, count;
int pad = 0;
if (len == 0 ){
*out = '\0';
return 1;
}
if (len % 4) {
return -1;
}
pos = out;
count = 0;
for (i = 0; i < len; i++) {
if (src[i] == '=') { pad++; }
tmp = base64c_dtable[src[i]];
if (tmp == 0x80) { return -1; }
block[count] = tmp;
count++;
if (count == 4) {
switch (pad) {
case 0:
if ((pos - out) + 3 > out_len) {
return -1;
}
*pos++ = (block[0] << 2) | (block[1] >> 4);
*pos++ = (block[1] << 4) | (block[2] >> 2);
*pos++ = (block[2] << 6) | block[3];
break;
case 1:
if ((pos - out) + 2 > out_len || i + 1 > len) {
return -1;
}
*pos++ = (block[0] << 2) | (block[1] >> 4);
*pos++ = (block[1] << 4) | (block[2] >> 2);
break;
case 2:
if ((pos - out) + 1 > out_len || i + 1 > len) {
return -1;
}
*pos++ = (block[0] << 2) | (block[1] >> 4);
break;
default:
break;
}
count = 0;
}
}
return pos - out;
}

@ -1,16 +0,0 @@
CFLAGS = --pedantic -Wall -std=c99 -g -ggdb
LDFLAGS =
bin_PROGRAMS = test001 test002 test003 test004 \
test005 test006 test007 test008 \
gen
test001_SOURCES = test001.c ../src/base64c.c
test002_SOURCES = test002.c ../src/base64c.c
test003_SOURCES = test003.c ../src/base64c.c
test004_SOURCES = test004.c ../src/base64c.c
test005_SOURCES = test005.c ../src/base64c.c
test006_SOURCES = test006.c ../src/base64c.c
test007_SOURCES = test007.c ../src/base64c.c
test008_SOURCES = test008.c ../src/base64c.c
gen_SOURCES = gen.c

@ -1,22 +0,0 @@
#include <stdio.h>
#include <string.h>
static const unsigned char base64_table[65] =
"ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
int main() {
unsigned char out[256];
memset(out, 0x80, 255);
for (int i = 0; i < 64; i++) {
out[base64_table[i]] = i;
}
out['='] = 0;
printf("static const unsigned char base64c_dtable[256] = {");
for (int i = 0; i < 256; i++) {
if (i% 20==0) { printf("\n"); }
printf("/*%03d*/0x%02x,", i, out[i]);
}
printf("\n};");
}

@ -1,36 +0,0 @@
#include "../include/base64c.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
unsigned char in[12] = "Hello World";
size_t in_len = 11;
unsigned char enc[32];
size_t enc_len = 32;
unsigned char out[12];
size_t out_len = 12;
printf("Encoding %lu - %s\n", in_len, in);
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
printf("Encoded %lu - %s\n", enc_result, enc);
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
if ((long)dec_result < 0) {
printf("Decode failed with code %ld\n", (long)dec_result);
return 1;
}
printf("Decoded %lu - %s\n", dec_result, out);
if (dec_result != in_len) {
printf("in length %ld not equal to out length %ld", in_len, dec_result);
return 3;
}
if (strncmp((char*)in, (char*)out, in_len)) {
printf("roundtrip encoding failed\n");
return 2;
}
}

@ -1,37 +0,0 @@
#include "../include/base64c.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
unsigned char in[11] = "Hello Worl";
size_t in_len = 10;
unsigned char enc[32];
size_t enc_len = 32;
unsigned char out[12];
size_t out_len = 12;
printf("Encoding %lu - %s\n", in_len, in);
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
printf("Encoded %lu - %s\n", enc_result, enc);
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
if ((long)dec_result < 0) {
printf("Decode failed with code %ld\n", (long)dec_result);
return 1;
}
printf("Decoded %lu - %s\n", dec_result, out);
if (dec_result != in_len) {
printf("in length %ld not equal to out length %ld", in_len, dec_result);
return 3;
}
if (strncmp((char*)in, (char*)out, in_len)) {
printf("roundtrip encoding failed\n");
return 2;
}
}

@ -1,37 +0,0 @@
#include "../include/base64c.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
unsigned char in[10] = "Hello Wor";
size_t in_len = 9;
unsigned char enc[32];
size_t enc_len = 32;
unsigned char out[12];
size_t out_len = 12;
printf("Encoding %lu - %s\n", in_len, in);
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
printf("Encoded %lu - %s\n", enc_result, enc);
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
if ((long)dec_result < 0) {
printf("Decode failed with code %ld\n", (long)dec_result);
return 1;
}
printf("Decoded %lu - %s\n", dec_result, out);
if (dec_result != in_len) {
printf("in length %ld not equal to out length %ld", in_len, dec_result);
return 3;
}
if (strncmp((char*)in, (char*)out, in_len)) {
printf("roundtrip encoding failed\n");
return 2;
}
}

@ -1,37 +0,0 @@
#include "../include/base64c.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
unsigned char in[10] = "Hello Wo";
size_t in_len = 8;
unsigned char enc[32];
size_t enc_len = 32;
unsigned char out[12];
size_t out_len = 12;
printf("Encoding %lu - %s\n", in_len, in);
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
printf("Encoded %lu - %s\n", enc_result, enc);
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
if ((long)dec_result < 0) {
printf("Decode failed with code %ld\n", (long)dec_result);
return 1;
}
printf("Decoded %lu - %s\n", dec_result, out);
if (dec_result != in_len) {
printf("in length %ld not equal to out length %ld", in_len, dec_result);
return 3;
}
if (strncmp((char*)in, (char*)out, in_len)) {
printf("roundtrip encoding failed\n");
return 2;
}
}

@ -1,36 +0,0 @@
#include "../include/base64c.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
unsigned char in[13] = "Hello Worlds";
size_t in_len = 12;
unsigned char enc[32];
size_t enc_len = 32;
unsigned char out[13];
size_t out_len = 13;
printf("Encoding %lu - %s\n", in_len, in);
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
printf("Encoded %lu - %s\n", enc_result, enc);
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
if ((long)dec_result < 0) {
printf("Decode failed with code %ld\n", (long)dec_result);
return 1;
}
printf("Decoded %lu - %s\n", dec_result, out);
if (dec_result != in_len) {
printf("in length %ld not equal to out length %ld", in_len, dec_result);
return 3;
}
if (strncmp((char*)in, (char*)out, in_len)) {
printf("roundtrip encoding failed\n");
return 2;
}
}

@ -1,36 +0,0 @@
#include "../include/base64c.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
unsigned char in[14] = "Hello Worldsy";
size_t in_len = 13;
unsigned char enc[32];
size_t enc_len = 32;
unsigned char out[15];
size_t out_len = 15;
printf("Encoding %lu - %s\n", in_len, in);
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
printf("Encoded %lu - %s\n", enc_result, enc);
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
if ((long)dec_result < 0) {
printf("Decode failed with code %ld\n", (long)dec_result);
return 1;
}
printf("Decoded %lu - %s\n", dec_result, out);
if (dec_result != in_len) {
printf("in length %ld not equal to out length %ld", in_len, dec_result);
return 3;
}
if (strncmp((char*)in, (char*)out, in_len)) {
printf("roundtrip encoding failed\n");
return 2;
}
}

@ -1,36 +0,0 @@
#include "../include/base64c.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
unsigned char in[15] = "Hello World of";
size_t in_len = 14;
unsigned char enc[32];
size_t enc_len = 32;
unsigned char out[15];
size_t out_len = 15;
printf("Encoding %lu - %s\n", in_len, in);
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
printf("Encoded %lu - %s\n", enc_result, enc);
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
if ((long)dec_result < 0) {
printf("Decode failed with code %ld\n", (long)dec_result);
return 1;
}
printf("Decoded %lu - %s\n", dec_result, out);
if (dec_result != in_len) {
printf("in length %ld not equal to out length %ld", in_len, dec_result);
return 3;
}
if (strncmp((char*)in, (char*)out, in_len)) {
printf("roundtrip encoding failed\n");
return 2;
}
}

@ -1,37 +0,0 @@
#include "../include/base64c.h"
#include <stdio.h>
#include <string.h>
int main(int argc, char *argv[]) {
unsigned char in[10] = "H";
size_t in_len = 1;
unsigned char enc[32];
size_t enc_len = 32;
unsigned char out[12];
size_t out_len = 12;
printf("Encoding %lu - %s\n", in_len, in);
size_t enc_result = base64c_encode(in, in_len, enc, enc_len);
printf("Encoded %lu - %s\n", enc_result, enc);
size_t dec_result = base64c_decode(enc, enc_result, out, out_len);
if ((long)dec_result < 0) {
printf("Decode failed with code %ld\n", (long)dec_result);
return 1;
}
printf("Decoded %lu - %s\n", dec_result, out);
if (dec_result != in_len) {
printf("in length %ld not equal to out length %ld", in_len, dec_result);
return 3;
}
if (strncmp((char*)in, (char*)out, in_len)) {
printf("roundtrip encoding failed\n");
return 2;
}
}

@ -12,13 +12,14 @@ jobs:
tcc:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: sudo apt-get install -y build-essential libtool autoconf automake tcc
run: |
sudo apt-get install -y build-essential libtool autoconf automake tcc
- name: Autogen
run: ./autogen.sh -s
@ -31,10 +32,40 @@ jobs:
make uninstall
make distclean
zig:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Update packages list
run: sudo apt-get update
- name: Install dependencies
run: |
curl -sL -o - https://ziglang.org/download/0.10.1/zig-linux-x86_64-0.10.1.tar.xz | tar xJ -f - -C /opt/
sudo mv /opt/zig-* /opt/zig
- name: Autogen
run: ./autogen.sh -s
- name: Compilation with zig
run: |
export PATH=/opt/zig:$PATH
zig build
zig build -Dtarget=x86_64-linux
zig build -Dtarget=aarch64-linux
zig build -Dtarget=x86_64-windows
zig build -Dtarget=aarch64-windows
zig build -Dtarget=x86_64-macos
zig build -Dtarget=aarch64-macos
zig build -Dtarget=wasm32-wasi
zig build -Drelease-fast
rm -fr zig-cache zig-out
regular:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Update packages list
run: sudo apt-get update
@ -63,7 +94,7 @@ jobs:
check-globals:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Update packages list
run: sudo apt-get update
@ -81,7 +112,7 @@ jobs:
other-comp:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Update packages list
run: sudo apt-get update
@ -107,7 +138,7 @@ jobs:
other-arch:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: actions/checkout@v3
- name: Update packages list
run: sudo apt-get update
@ -123,3 +154,28 @@ jobs:
env CPPFLAGS="-DDEV_MODE=1" ./configure --disable-dependency-tracking --host=powerpc-linux-gnu
make -j $(nproc)
make clean > /dev/null
android:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
- name: Update packages list
run: sudo apt-get update
- name: Install base dependencies
run: sudo apt-get install -y libtool autoconf automake unzip
- name: Autogen
run: ./autogen.sh -s
- name: Install Android NDK
run: |
mkdir /tmp/android && cd /tmp/android
curl -o ndk.zip -L https://dl.google.com/android/repository/android-ndk-r25b-linux.zip
unzip ndk.zip && rm -f *.zip && mv android-ndk* ndk
- name: Android compilation
run: |
env ANDROID_NDK_HOME=/tmp/android/ndk ./dist-build/android-x86.sh
env ANDROID_NDK_HOME=/tmp/android/ndk ./dist-build/android-armv8-a.sh

@ -12,12 +12,12 @@ jobs:
steps:
- name: Checkout repository
uses: actions/checkout@v2
uses: actions/checkout@v3
with:
fetch-depth: 2
- name: Initialize CodeQL
uses: github/codeql-action/init@v1
uses: github/codeql-action/init@v2
with:
languages: cpp
@ -27,4 +27,4 @@ jobs:
make -j $(nproc) check
- name: Perform CodeQL Analysis
uses: github/codeql-action/analyze@v1
uses: github/codeql-action/analyze@v2

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