1OpenSSL-APIs
2------------
3
4This directory does not contain OpenSSL itself, but the code here can be used as a wrapper for applications using the OpenSSL API.
5It uses mbedTLS to do the actual work, so anyone compiling openssl code needs the mbedtls library and header file.
6
7OpenSSL APIs not mentioned in this article are not open to public for the time,
8also do not have the corresponding function.
9If user calls it directly, it will always return an error or may show cannot link at compiling time.
10
11Chapter Introduction
12====================
13
14- Chapter 1. SSL Context Method Create
15- Chapter 2. SSL Context Function
16- Chapter 3. SSL Function
17- Chapter 4. SSL X509 Certification and Private Key Function
18
19
20Chapter 1. SSL Context Method Create
21====================================
22
231.1 const SSL_METHOD* ``SSLv3_client_method`` (void)
24
25    Arguments::
26
27        none
28
29    Return::
30
31        SSLV3.0 version SSL context client method point
32
33    Description::
34
35        create the target SSL context method
36
37    Example::
38
39        void example(void)
40        {
41            const SSL_METHOD *method = SSLv3_client_method();
42
43            ...
44        }
45
461.2 const SSL_METHOD* ``TLSv1_client_method`` (void)
47
48    Arguments::
49
50        none
51
52    Return::
53
54        TLSV1.0 version SSL context client method point
55
56    Description::
57
58        create the target SSL context method
59
60    Example::
61
62        void example(void)
63        {
64            const SSL_METHOD *method = TLSv1_client_method();
65
66            ...
67        }
68
691.3 const SSL_METHOD* ``TLSv1_1_client_method`` (void)
70
71    Arguments::
72
73        none
74
75    Return::
76
77        TLSV1.1 version SSL context client method point
78
79    Description::
80
81        create the target SSL context method
82
83    Example::
84
85        void example(void)
86        {
87            const SSL_METHOD *method = TLSv1_1_client_method();
88
89            ...
90        }
91
921.4 const SSL_METHOD* ``TLSv1_2_client_method`` (void)
93
94    Arguments::
95
96       none
97
98    Return::
99
100       TLSV1.2 version SSL context client method point
101
102    Description::
103
104       create the target SSL context method
105
106    Example::
107
108        void example(void)
109        {
110            const SSL_METHOD *method = TLSv1_2_client_method();
111
112            ...
113        }
114
1151.5 const SSL_METHOD* ``TLS_client_method`` (void)
116
117    Arguments::
118
119       none
120
121    Return::
122
123       TLSV1.2 version SSL context client method point
124
125    Description::
126
127       create the default SSL context method, it's always to be TLSV1.2
128
129    Example::
130
131        void example(void)
132        {
133            const SSL_METHOD *method = TLSv1_2_client_method();
134
135            ...
136        }
137
1381.6 const SSL_METHOD* ``SSLv3_server_method`` (void)
139
140    Arguments::
141
142        none
143
144    Return::
145
146        SSLV3.0 version SSL context server method point
147
148    Description::
149
150        create the target SSL context method
151
152    Example::
153
154        void example(void)
155        {
156            const SSL_METHOD *method = SSLv3_server_method();
157
158            ...
159        }
160
1611.7 const SSL_METHOD* ``TLSv1_server_method`` (void)
162
163    Arguments::
164
165        none
166
167    Return::
168
169        TLSV1.0 version SSL context server method point
170
171    Description::
172
173        create the target SSL context method
174
175    Example::
176
177        void example(void)
178        {
179            const SSL_METHOD *method = TLSv1_server_method();
180
181            ...
182        }
183
1841.8 const SSL_METHOD* ``TLSv1_1_server_method`` (void)
185
186    Arguments::
187
188        none
189
190    Return::
191
192        TLSV1.1 version SSL context server method point
193
194    Description::
195
196        create the target SSL context method
197
198    Example :
199
200        void example(void)
201        {
202            const SSL_METHOD *method = TLSv1_1_server_method();
203
204            ...
205        }
206
207
2081.9 const SSL_METHOD* ``TLSv1_2_server_method`` (void)
209
210    Arguments::
211
212        none
213
214    Return::
215
216        TLSV1.2 version SSL context server method point
217
218    Description::
219
220        create the target SSL context method
221
222    Example::
223
224        void example(void)
225        {
226            const SSL_METHOD *method = TLSv1_2_server_method();
227
228            ...
229        }
230
2311.10 const SSL_METHOD* ``TLS_server_method`` (void)
232
233    Arguments::
234
235        none
236
237    Return::
238
239        TLSV1.2 version SSL context server method point
240
241    Description::
242
243        create the default SSL context method, it's always to be TLSV1.2
244
245    Example::
246
247        void example(void)
248        {
249            const SSL_METHOD *method = TLSv1_2_server_method();
250
251            ...
252        }
253
254
255Chapter 2. SSL Context Fucntion
256===============================
257
258
2592.1 SSL_CTX* ``SSL_CTX_new`` (const SSL_METHOD *method)
260
261    Arguments::
262
263        method - the SSL context method point
264
265    Return::
266
267        context point
268
269    Description::
270
271        create a SSL context
272
273    Example::
274
275        void example(void)
276        {
277            SSL_CTX *ctx = SSL_CTX_new(SSLv3_server_method());
278
279            ...
280        }
281
282
2832.2 ``void SSL_CTX_free`` (SSL_CTX *ctx)
284
285    Arguments::
286
287        ctx - the SSL context point
288
289    Return::
290
291        none
292
293    Description::
294
295        free a SSL context
296
297    Example::
298
299        void example(void)
300        {
301            SSL_CTX *ctx;
302
303            ... ...
304
305            SSL_CTX_free(ctx);
306        }
307
308
3092.3 ``int SSL_CTX_set_ssl_version`` (SSL_CTX *ctx, const SSL_METHOD *meth)
310
311    Arguments::
312
313        ctx  - SSL context point
314        meth - SSL method point
315
316    Return::
317
318        1 : OK
319        0 : failed
320
321    Description::
322
323        set the SSL context version
324
325    Example::
326
327        void example(void)
328        {
329            SSL_CTX *ctx;
330            const SSL_METHOD *meth;
331
332            ... ...
333
334            SSL_CTX_set_ssl_version(ctx, meth);
335        }
336
337
3382.4 const SSL_METHOD* ``SSL_CTX_get_ssl_method`` (SSL_CTX *ctx)
339
340    Arguments::
341
342        ctx - SSL context point
343
344    Return::
345
346        SSL context method
347
348    Description::
349
350        get the SSL context method
351
352    Example::
353
354        void example(void)
355        {
356            const SSL_METHOD *method;
357            SSL_CTX *ctx;
358
359            ... ...
360
361            method = SSL_CTX_get_ssl_method(ctx);
362        }
363
364
365
366Chapter 3. SSL Fucntion
367=======================
368
369
3703.1 SSL* ``SSL_new`` (SSL_CTX *ctx)
371
372    Arguments::
373
374        ctx - SSL context point
375
376    Return::
377
378        SSL method
379
380    Description::
381
382        create a SSL
383
384    Example::
385
386        void example(void)
387        {
388            SSL *ssl;
389            SSL_CTX *ctx;
390
391            ... ...
392
393            ssl = SSL_new(ctx);
394        }
395
396
3973.2 void ``SSL_free`` (SSL *ssl)
398
399    Arguments::
400
401        ssl - SSL point
402
403    Return::
404
405        none
406
407    Description::
408
409        free SSL
410
411    Example::
412
413        void example(void)
414        {
415            SSL *ssl;
416
417            ... ...
418
419            SSL_free(ssl);
420        }
421
422
4233.3 int ``SSL_do_handshake`` (SSL *ssl)
424
425    Arguments::
426
427        ssl - SSL point
428
429    Return::
430
431        1 : OK
432        0 : failed, connect is close by remote
433       -1 : a error catch
434
435    Description::
436
437        perform the SSL handshake
438
439    Example::
440
441        void example(void)
442        {
443            SSL *ssl;
444            int ret;
445
446            ... ...
447
448            ret = SSL_do_handshake(ssl);
449        }
450
451
4523.4 int ``SSL_connect`` (SSL *ssl)
453
454    Arguments::
455
456        ssl - SSL point
457
458    Return::
459
460        1 : OK
461        0 : failed, connect is close by remote
462       -1 : a error catch
463
464    Description::
465
466        connect to the remote SSL server
467
468    Example::
469
470        void example(void)
471        {
472            SSL *ssl;
473            int ret;
474
475            ... ...
476
477            ret = SSL_connect(ssl);
478        }
479
480
4813.5 int ``SSL_accept`` (SSL *ssl)
482
483    Arguments::
484
485        ssl - SSL point
486
487    Return::
488
489        1 : OK
490        0 : failed, connect is close by remote
491       -1 : a error catch
492
493    Description::
494
495        accept the remote connection
496
497    Example::
498
499        void example(void)
500        {
501            SSL *ssl;
502            int ret;
503
504            ... ...
505
506            ret = SSL_accept(ssl);
507        }
508
509
5103.6 int ``SSL_shutdown`` (SSL *ssl)
511
512    Arguments::
513
514        ssl - SSL point
515
516    Return::
517
518        1 : OK
519        0 : failed, connect is close by remote
520       -1 : a error catch
521
522    Description::
523
524        shutdown the connection
525
526    Example::
527
528        void example(void)
529        {
530            SSL *ssl;
531            int ret;
532
533            ... ...
534
535            ret = SSL_shutdown(ssl);
536        }
537
538
5393.7 int ``SSL_clear`` (SSL *ssl)
540
541    Arguments::
542
543        ssl - SSL point
544
545    Return::
546
547        1 : OK
548        0 : failed
549
550    Description::
551
552        shutdown the connection
553
554    Example::
555
556        void example(void)
557        {
558            SSL *ssl;
559            int ret;
560
561            ... ...
562
563            ret = SSL_clear(ssl);
564        }
565
566
5673.8 int ``SSL_read`` (SSL *ssl, void *buffer, int len)
568
569    Arguments::
570
571        ssl    - point
572        buffer - data buffer point
573        len    - data length
574
575    Return::
576
577        > 0 : OK, and return received data bytes
578        = 0 : no data received or connection is closed
579        < 0 : an error catch
580
581    Description::
582
583        read data from remote
584
585    Example::
586
587        void example(void)
588        {
589            SSL *ssl;
590            char *buf;
591            int len;
592            int ret;
593
594            ... ...
595
596            ret = SSL_read(ssl, buf, len);
597        }
598
5993.9 int ``SSL_write`` (SSL *ssl, const void *buffer, int len)
600
601    Arguments::
602
603        ssl    - SSL point
604        buffer - data buffer point
605        len    - data length
606
607    Return::
608
609        > 0 : OK, and return received data bytes
610        = 0 : no data sent or connection is closed
611        < 0 : an error catch
612
613    Description::
614
615        send the data to remote
616
617    Example::
618
619        void example(void)
620        {
621            SSL *ssl;
622            char *buf;
623            int len;
624            int ret;
625
626            ... ...
627
628            ret = SSL_write(ssl, buf, len);
629        }
630
631
6323.10 ``SSL_CTX *SSL_get_SSL_CTX`` (const SSL *ssl)
633
634    Arguments::
635
636        ssl - SSL point
637
638    Return::
639
640        SSL context
641
642    Description::
643
644        get SSL context of the SSL
645
646    Example::
647
648        void example(void)
649        {
650            SSL *ssl;
651            SSL_CTX *ctx;
652
653            ... ...
654
655            ctx = SSL_get_SSL_CTX(ssl);
656        }
657
658
6593.11 int ``SSL_get_shutdown`` (const SSL *ssl)
660
661    Arguments::
662
663        ssl - SSL point
664
665    Return::
666
667        shutdown mode
668
669    Description::
670
671        get SSL shutdown mode
672
673    Example::
674
675        void example(void)
676        {
677            SSL *ssl;
678            int mode;
679
680            ... ...
681
682            mode = SSL_get_SSL_CTX(ssl);
683        }
684
685
6863.12 void ``SSL_set_shutdown`` (SSL *ssl, int mode)
687
688    Arguments::
689
690        ssl - SSL point
691
692    Return::
693
694        shutdown mode
695
696    Description::
697
698        set SSL shutdown mode
699
700    Example::
701
702        void example(void)
703        {
704            SSL *ssl;
705            int mode = 0;
706
707            ... ...
708
709            SSL_set_shutdown(ssl, mode);
710        }
711
712
7133.13 const SSL_METHOD* ``SSL_get_ssl_method`` (SSL *ssl)
714
715    Arguments::
716
717        ssl - SSL point
718
719    Return::
720
721        SSL method
722
723    Description::
724
725        set SSL shutdown mode
726
727    Example::
728
729        void example(void)
730        {
731            SSL *ssl;
732            const SSL_METHOD *method;
733
734            ... ...
735
736            method = SSL_get_ssl_method(ssl);
737        }
738
739
7403.14 int ``SSL_set_ssl_method`` (SSL *ssl, const SSL_METHOD *method)
741
742    Arguments::
743
744        ssl  - SSL point
745        meth - SSL method point
746
747    Return::
748
749        1 : OK
750        0 : failed
751
752    Description::
753
754        set the SSL method
755
756    Example::
757
758        void example(void)
759        {
760            int ret;
761            SSL *ssl;
762            const SSL_METHOD *method;
763
764            ... ...
765
766            ret = SSL_set_ssl_method(ssl, method);
767        }
768
769
7703.15 int ``SSL_pending`` (const SSL *ssl)
771
772    Arguments::
773
774        ssl - SSL point
775
776    Return::
777
778        data bytes
779
780    Description::
781
782        get received data bytes
783
784    Example::
785
786        void example(void)
787        {
788            int ret;
789            SSL *ssl;
790
791            ... ...
792
793            ret = SSL_pending(ssl);
794        }
795
796
7973.16 int ``SSL_has_pending`` (const SSL *ssl)
798
799    Arguments::
800
801        ssl - SSL point
802
803    Return::
804
805        1 : Yes
806        0 : No
807
808    Description::
809
810        check if data is received
811
812    Example::
813
814        void example(void)
815        {
816            int ret;
817            SSL *ssl;
818
819            ... ...
820
821            ret = SSL_has_pending(ssl);
822        }
823
824
8253.17 int ``SSL_get_fd`` (const SSL *ssl)
826
827    Arguments::
828
829        ssl - SSL point
830
831    Return::
832
833        >= 0 : socket id
834         < 0 : a error catch
835
836    Description::
837
838        get the socket of the SSL
839
840    Example::
841
842        void example(void)
843        {
844            int ret;
845            SSL *ssl;
846
847            ... ...
848
849            ret = SSL_get_fd(ssl);
850        }
851
852
8533.18 int ``SSL_get_rfd`` (const SSL *ssl)
854
855    Arguments::
856
857        ssl - SSL point
858
859    Return::
860
861        >= 0 : socket id
862         < 0 : a error catch
863
864    Description::
865
866        get the read only socket of the SSL
867
868    Example::
869
870        void example(void)
871        {
872            int ret;
873            SSL *ssl;
874
875            ... ...
876
877            ret = SSL_get_rfd(ssl);
878        }
879
880
8813.19 int ``SSL_get_wfd`` (const SSL *ssl)
882
883    Arguments::
884
885        ssl - SSL point
886
887    Return::
888
889        >= 0 : socket id
890         < 0 : a error catch
891
892    Description::
893
894        get the write only socket of the SSL
895
896    Example::
897
898        void example(void)
899        {
900            int ret;
901            SSL *ssl;
902
903            ... ...
904
905            ret = SSL_get_wfd(ssl);
906        }
907
908
9093.20 int ``SSL_set_fd`` (SSL *ssl, int fd)
910
911    Arguments::
912
913        ssl - SSL point
914        fd  - socket id
915
916    Return::
917
918        1 : OK
919        0 : failed
920
921    Description::
922
923        set socket to SSL
924
925    Example::
926
927        void example(void)
928        {
929            int ret;
930            SSL *ssl;
931            int socket;
932
933            ... ...
934
935            ret = SSL_set_fd(ssl, socket);
936        }
937
938
9393.21 int ``SSL_set_rfd`` (SSL *ssl, int fd)
940
941    Arguments::
942
943        ssl - SSL point
944        fd  - socket id
945
946    Return::
947
948        1 : OK
949        0 : failed
950
951    Description::
952
953        set read only socket to SSL
954
955    Example::
956
957        void example(void)
958        {
959            int ret;
960            SSL *ssl;
961            int socket;
962
963            ... ...
964
965            ret = SSL_set_rfd(ssl, socket);
966        }
967
968
9693.22 int ``SSL_set_wfd`` (SSL *ssl, int fd)
970
971    Arguments::
972
973        ssl - SSL point
974        fd  - socket id
975
976    Return::
977
978        1 : OK
979        0 : failed
980
981    Description::
982
983        set write only socket to SSL
984
985    Example::
986
987        void example(void)
988        {
989            int ret;
990            SSL *ssl;
991            int socket;
992
993            ... ...
994
995            ret = SSL_set_wfd(ssl, socket);
996        }
997
998
9993.23 int ``SSL_version`` (const SSL *ssl)
1000
1001    Arguments::
1002
1003        ssl - SSL point
1004
1005    Return::
1006
1007        SSL version
1008
1009    Description::
1010
1011        get SSL version
1012
1013    Example::
1014
1015        void example(void)
1016        {
1017            int version;
1018            SSL *ssl;
1019
1020            ... ...
1021
1022            version = SSL_version(ssl);
1023        }
1024
1025
10263.24 const char* ``SSL_get_version`` (const SSL *ssl)
1027
1028    Arguments::
1029
1030        ssl - SSL point
1031
1032    Return::
1033
1034        SSL version string
1035
1036    Description::
1037
1038        get the SSL current version string
1039
1040    Example::
1041
1042        void example(void)
1043        {
1044            char *version;
1045            SSL *ssl;
1046
1047            ... ...
1048
1049            version = SSL_get_version(ssl);
1050        }
1051
1052
10533.25 OSSL_HANDSHAKE_STATE ``SSL_get_state`` (const SSL *ssl)
1054
1055    Arguments::
1056
1057        ssl - SSL point
1058
1059    Return::
1060
1061        SSL state
1062
1063    Description::
1064
1065        get the SSL state
1066
1067    Example::
1068
1069        void example(void)
1070        {
1071            OSSL_HANDSHAKE_STATE state;
1072            SSL *ssl;
1073
1074            ... ...
1075
1076            state = SSL_get_state(ssl);
1077        }
1078
1079
10803.26 const char* ``SSL_alert_desc_string`` (int value)
1081
1082    Arguments::
1083
1084        value - SSL description
1085
1086    Return::
1087
1088        alert value string
1089
1090    Description::
1091
1092        get alert description string
1093
1094    Example::
1095
1096        void example(void)
1097        {
1098            int val;
1099            char *str;
1100
1101            ... ...
1102
1103            str = SSL_alert_desc_string(val);
1104        }
1105
1106
11073.27 const char* ``SSL_alert_desc_string_long`` (int value)
1108
1109    Arguments::
1110
1111        value - SSL description
1112
1113    Return::
1114
1115        alert value long string
1116
1117    Description::
1118
1119        get alert description long string
1120
1121    Example::
1122
1123        void example(void)
1124        {
1125            int val;
1126            char *str;
1127
1128            ... ...
1129
1130            str = SSL_alert_desc_string_long(val);
1131        }
1132
1133
11343.28 const char* ``SSL_alert_type_string`` (int value)
1135
1136    Arguments::
1137
1138        value - SSL type description
1139
1140    Return::
1141
1142        alert type string
1143
1144    Description::
1145
1146        get alert type string
1147
1148    Example::
1149
1150        void example(void)
1151        {
1152            int val;
1153            char *str;
1154
1155            ... ...
1156
1157            str = SSL_alert_type_string(val);
1158        }
1159
1160
11613.29 const char* ``SSL_alert_type_string_long`` (int value)
1162
1163    Arguments::
1164
1165        value - SSL type description
1166
1167    Return::
1168
1169        alert type long string
1170
1171    Description::
1172
1173        get alert type long string
1174
1175    Example::
1176
1177        void example(void)
1178        {
1179            int val;
1180            char *str;
1181
1182            ... ...
1183
1184            str = SSL_alert_type_string_long(val);
1185        }
1186
11873.30 const char* ``SSL_rstate_string`` (SSL *ssl)
1188
1189    Arguments::
1190
1191        ssl - SSL point
1192
1193    Return::
1194
1195        state string
1196
1197    Description::
1198
1199        get the state string where SSL is reading
1200
1201    Example::
1202
1203        void example(void)
1204        {
1205            SSL *ssl;
1206            char *str;
1207
1208            ... ...
1209
1210            str = SSL_rstate_string(ssl);
1211        }
1212
1213
12143.31 const char* ``SSL_rstate_string_long`` (SSL *ssl)
1215
1216    Arguments::
1217
1218        ssl - SSL point
1219
1220    Return::
1221
1222        state long string
1223
1224    Description::
1225
1226        get the state long string where SSL is reading
1227
1228    Example::
1229
1230        void example(void)
1231        {
1232            SSL *ssl;
1233            char *str;
1234
1235            ... ...
1236
1237            str = SSL_rstate_string_long(ssl);
1238        }
1239
1240
12413.32 const char* ``SSL_state_string`` (const SSL *ssl)
1242
1243    Arguments::
1244
1245        ssl - SSL point
1246
1247    Return::
1248
1249        state string
1250
1251    Description::
1252
1253        get the state string
1254
1255    Example::
1256
1257        void example(void)
1258        {
1259            SSL *ssl;
1260            const char *str;
1261
1262            ... ...
1263
1264            str = SSL_state_string(ssl);
1265        }
1266
1267
12683.33 char* ``SSL_state_string_long`` (const SSL *ssl)
1269
1270    Arguments::
1271
1272        ssl - SSL point
1273
1274    Return::
1275
1276        state long string
1277
1278    Description::
1279
1280        get the state long string
1281
1282    Example::
1283
1284        void example(void)
1285        {
1286            SSL *ssl;
1287            char *str;
1288
1289            ... ...
1290
1291            str = SSL_state_string(ssl);
1292        }
1293
1294
12953.34 int ``SSL_get_error`` (const SSL *ssl, int ret_code)
1296
1297    Arguments::
1298
1299        ssl      - SSL point
1300        ret_code - SSL return code
1301
1302    Return::
1303
1304        SSL error number
1305
1306    Description::
1307
1308        get SSL error code
1309
1310    Example::
1311
1312        void example(void)
1313        {
1314            SSL *ssl;
1315            int ret;
1316            int err;
1317
1318            ... ...
1319
1320            err = SSL_get_error(ssl, ret);
1321        }
1322
13233.35 int ``SSL_want`` (const SSL *ssl)
1324
1325    Arguments::
1326
1327        ssl - SSL point
1328
1329    Return::
1330
1331        specifical statement
1332
1333    Description::
1334
1335        get the SSL specifical statement
1336
1337    Example::
1338
1339        void example(void)
1340        {
1341            SSL *ssl;
1342            int state;
1343
1344            ... ...
1345
1346            state = SSL_want(ssl);
1347        }
1348
1349
13503.36 int ``SSL_want_nothing`` (const SSL *ssl)
1351
1352    Arguments::
1353
1354        ssl - SSL point
1355
1356    Return::
1357
1358        0 : false
1359        1 : true
1360
1361    Description::
1362
1363        check if SSL want nothing
1364
1365    Example::
1366
1367        void example(void)
1368        {
1369            SSL *ssl;
1370            int ret;
1371
1372            ... ...
1373
1374            ret = SSL_want(ssl);
1375        }
1376
1377
13783.37 int ``SSL_want_read`` (const SSL *ssl)
1379
1380    Arguments::
1381
1382        ssl - SSL point
1383
1384    Return::
1385
1386        0 : false
1387        1 : true
1388
1389    Description::
1390
1391        check if SSL want to read
1392
1393    Example::
1394
1395        void example(void)
1396        {
1397            SSL *ssl;
1398            int ret;
1399
1400            ... ...
1401
1402            ret = SSL_want_read(ssl);
1403        }
1404
1405
14063.38 int ``SSL_want_write`` (const SSL *ssl)
1407
1408    Arguments::
1409
1410        ssl - SSL point
1411
1412    Return::
1413
1414        0 : false
1415        1 : true
1416
1417    Description::
1418
1419        check if SSL want to write
1420
1421    Example::
1422
1423        void example(void)
1424        {
1425            SSL *ssl;
1426            int ret;
1427
1428            ... ...
1429
1430            ret = SSL_want_write(ssl);
1431        }
1432
1433
1434Chapter 4. SSL X509 Certification and Private Key Function
1435==========================================================
1436
1437
14384.1 X509* ``d2i_X509`` (X509 **cert, const unsigned char *buffer, long len)
1439
1440    Arguments::
1441
1442        cert   - a point pointed to X509 certification
1443        buffer - a point pointed to the certification context memory point
1444        length - certification bytes
1445
1446    Return::
1447
1448        X509 certification object point
1449
1450    Description::
1451
1452        load a character certification context into system context. If '*cert' is pointed to the
1453        certification, then load certification into it. Or create a new X509 certification object
1454
1455    Example::
1456
1457        void example(void)
1458        {
1459            X509 *new;
1460            X509 *cert;
1461            unsigned char *buffer;
1462            long len;
1463            ... ...
1464
1465            new = d2i_X509(&cert, buffer, len);
1466        }
1467
1468
14694.2 int ``SSL_add_client_CA`` (SSL *ssl, X509 *x)
1470
1471    Arguments::
1472
1473        ssl - SSL point
1474        x   - CA certification point
1475
1476    Return::
1477
1478        1 : OK
1479        0 : failed
1480
1481    Description::
1482
1483        add CA client certification into the SSL
1484
1485    Example::
1486
1487        void example(void)
1488        {
1489            int ret;
1490            SSL *ssl;
1491            X509 *new;
1492
1493            ... ...
1494
1495            ret = SSL_add_client_CA(ssl, new);
1496        }
1497
1498
14994.3 int ``SSL_CTX_add_client_CA`` (SSL_CTX *ctx, X509 *x)
1500
1501    Arguments::
1502
1503        ctx - SSL context point
1504         x   - CA certification point
1505
1506    Return::
1507
1508        1 : OK
1509        0 : failed
1510
1511    Description::
1512
1513        add CA client certification into the SSL context
1514
1515    Example::
1516
1517        void example(void)
1518        {
1519            int ret;
1520            SSL_CTX *ctx;
1521            X509 *new;
1522
1523            ... ...
1524
1525            ret = SSL_add_clSSL_CTX_add_client_CAient_CA(ctx, new);
1526        }
1527
1528
15294.4 X509* ``SSL_get_certificate`` (const SSL *ssl)
1530
1531    Arguments::
1532
1533        ssl - SSL point
1534
1535    Return::
1536
1537        SSL certification point
1538
1539    Description::
1540
1541        get the SSL certification point
1542
1543    Example::
1544
1545        void example(void)
1546        {
1547            SSL *ssl;
1548            X509 *cert;
1549
1550            ... ...
1551
1552            cert = SSL_get_certificate(ssl);
1553        }
1554
1555
15564.5 long ``SSL_get_verify_result`` (const SSL *ssl)
1557
1558    Arguments::
1559
1560        ssl - SSL point
1561
1562    Return::
1563
1564        the result of verifying
1565
1566    Description::
1567
1568        get the verifying result of the SSL certification
1569
1570    Example::
1571
1572        void example(void)
1573        {
1574            SSL *ssl;
1575            long ret;
1576
1577            ... ...
1578
1579            ret = SSL_get_verify_result(ssl);
1580        }
1581
1582
15834.6 int ``SSL_CTX_use_certificate`` (SSL_CTX *ctx, X509 *x)
1584
1585    Arguments::
1586
1587        ctx  - the SSL context point
1588        pkey - certification object point
1589
1590    Return::
1591
1592        1 : OK
1593        0 : failed
1594
1595    Description::
1596
1597        load the certification into the SSL_CTX or SSL object
1598
1599    Example::
1600
1601        void example(void)
1602        {
1603            int ret;
1604            SSL_CTX *ctx
1605            X509 *new;
1606
1607            ... ...
1608
1609            ret = SSL_CTX_use_certificate(ctx, new);
1610        }
1611
1612
16134.7 int ``SSL_CTX_use_certificate_ASN1`` (SSL_CTX *ctx, int len, const unsigned char *d)
1614
1615    Arguments::
1616
1617        ctx - SSL context point
1618        len - certification length
1619        d   - data point
1620
1621    Return::
1622
1623        1 : OK
1624        0 : failed
1625
1626    Description::
1627
1628        load the ASN1 certification into SSL context
1629
1630    Example::
1631
1632        void example(void)
1633        {
1634            int ret;
1635            SSL_CTX *ctx;
1636            const unsigned char *buf;
1637            int len;
1638
1639            ... ...
1640
1641            ret = SSL_CTX_use_certificate_ASN1(ctx, len, buf);
1642        }
1643
1644
16454.8 int ``SSL_CTX_use_PrivateKey`` (SSL_CTX *ctx, EVP_PKEY *pkey)
1646
1647    Arguments::
1648
1649        ctx - SSL context point
1650        pkey - private key object point
1651
1652    Return::
1653
1654        1 : OK
1655        0 : failed
1656
1657    Description::
1658
1659        load the private key into the context object
1660
1661    Example::
1662
1663        void example(void)
1664        {
1665            int ret;
1666            SSL_CTX *ctx;
1667            EVP_PKEY *pkey;
1668
1669            ... ...
1670
1671            ret = SSL_CTX_use_PrivateKey(ctx, pkey);
1672        }
1673
1674
16754.9 int ``SSL_CTX_use_PrivateKey_ASN1`` (int pk, SSL_CTX *ctx, const unsigned char *d,  long len)
1676
1677    Arguments::
1678
1679        ctx - SSL context point
1680        d   - data point
1681        len - private key length
1682
1683    Return::
1684
1685        1 : OK
1686        0 : failed
1687
1688    Description::
1689
1690        load the ASN1 private key into SSL context
1691
1692    Example::
1693
1694        void example(void)
1695        {
1696            int ret;
1697            int pk;
1698            SSL_CTX *ctx;
1699            const unsigned char *buf;
1700            long len;
1701
1702            ... ...
1703
1704            ret = SSL_CTX_use_PrivateKey_ASN1(pk, ctx, buf, len);
1705        }
1706
1707
17084.10 int ``SSL_CTX_use_RSAPrivateKey_ASN1`` (SSL_CTX *ctx, const unsigned char *d, long len)
1709
1710    Arguments::
1711
1712        ctx - SSL context point
1713        d   - data point
1714        len - private key length
1715
1716    Return::
1717
1718        1 : OK
1719        0 : failed
1720
1721    Description::
1722
1723        load the RSA ASN1 private key into SSL context
1724
1725    Example::
1726
1727        void example(void)
1728        {
1729            int ret;
1730            SSL_CTX *ctx;
1731            const unsigned char *buf;
1732            long len;
1733
1734            ... ...
1735
1736            ret = SSL_CTX_use_RSAPrivateKey_ASN1(ctx, buf, len);
1737        }
1738
1739
17404.11 int ``SSL_use_certificate_ASN1`` (SSL *ssl, int len, const unsigned char *d)
1741
1742    Arguments::
1743
1744        ssl - SSL point
1745        len - data bytes
1746        d   - data point
1747
1748    Return::
1749
1750        1 : OK
1751        0 : failed
1752
1753    Description::
1754
1755        load certification into the SSL
1756
1757    Example::
1758
1759        void example(void)
1760        {
1761            int ret;
1762            SSL *ssl;
1763            const unsigned char *buf;
1764            long len;
1765
1766            ... ...
1767
1768            ret = SSL_use_certificate_ASN1(ssl, len, buf);
1769        }
1770
1771
17724.12 X509* ``SSL_get_peer_certificate`` (const SSL *ssl)
1773
1774    Arguments::
1775
1776        ssl - SSL point
1777
1778    Return::
1779
1780        peer certification
1781
1782    Description::
1783
1784        get peer certification
1785
1786    Example::
1787
1788        void example(void)
1789        {
1790            SSL *ssl;
1791            X509 *peer;
1792
1793            ... ...
1794
1795            peer = SSL_get_peer_certificate(ssl);
1796        }
1797
1798