summaryrefslogtreecommitdiff
path: root/src/lib/libtls/tls_init.3
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/libtls/tls_init.3')
-rw-r--r--src/lib/libtls/tls_init.3121
1 files changed, 118 insertions, 3 deletions
diff --git a/src/lib/libtls/tls_init.3 b/src/lib/libtls/tls_init.3
index 6059c3f8a0..2f6ca3d802 100644
--- a/src/lib/libtls/tls_init.3
+++ b/src/lib/libtls/tls_init.3
@@ -1,4 +1,4 @@
1.\" $OpenBSD: tls_init.3,v 1.72 2016/09/13 13:40:58 tedu Exp $ 1.\" $OpenBSD: tls_init.3,v 1.73 2016/11/02 15:18:42 beck Exp $
2.\" 2.\"
3.\" Copyright (c) 2014 Ted Unangst <tedu@openbsd.org> 3.\" Copyright (c) 2014 Ted Unangst <tedu@openbsd.org>
4.\" 4.\"
@@ -14,7 +14,7 @@
14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF 14.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. 15.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
16.\" 16.\"
17.Dd $Mdocdate: September 13 2016 $ 17.Dd $Mdocdate: November 2 2016 $
18.Dt TLS_INIT 3 18.Dt TLS_INIT 3
19.Os 19.Os
20.Sh NAME 20.Sh NAME
@@ -50,6 +50,7 @@
50.Nm tls_config_verify , 50.Nm tls_config_verify ,
51.Nm tls_config_verify_client , 51.Nm tls_config_verify_client ,
52.Nm tls_config_verify_client_optional , 52.Nm tls_config_verify_client_optional ,
53.Nm tls_ocsp_process_response,
53.Nm tls_peer_cert_provided , 54.Nm tls_peer_cert_provided ,
54.Nm tls_peer_cert_contains_name , 55.Nm tls_peer_cert_contains_name ,
55.Nm tls_peer_cert_issuer , 56.Nm tls_peer_cert_issuer ,
@@ -57,6 +58,14 @@
57.Nm tls_peer_cert_hash , 58.Nm tls_peer_cert_hash ,
58.Nm tls_peer_cert_notbefore , 59.Nm tls_peer_cert_notbefore ,
59.Nm tls_peer_cert_notafter , 60.Nm tls_peer_cert_notafter ,
61.Nm tls_peer_ocsp_cert_status,
62.Nm tls_peer_ocsp_crl_reason,
63.Nm tls_peer_ocsp_next_update,
64.Nm tls_peer_ocsp_response_status,
65.Nm tls_peer_ocsp_result_msg,
66.Nm tls_peer_ocsp_revocation_time,
67.Nm tls_peer_ocsp_this_update,
68.Nm tls_peer_ocsp_url,
60.Nm tls_conn_alpn_selected , 69.Nm tls_conn_alpn_selected ,
61.Nm tls_conn_cipher , 70.Nm tls_conn_cipher ,
62.Nm tls_conn_servername , 71.Nm tls_conn_servername ,
@@ -160,6 +169,24 @@
160.Fn tls_peer_cert_notbefore "struct tls *ctx" 169.Fn tls_peer_cert_notbefore "struct tls *ctx"
161.Ft "time_t" 170.Ft "time_t"
162.Fn tls_peer_cert_notafter "struct tls *ctx" 171.Fn tls_peer_cert_notafter "struct tls *ctx"
172.Ft "int"
173.Fn tls_ocsp_process_response "struct tls *ctx" "const unsigned char *response" "size_t size"
174.Ft "int"
175.Fn tls_peer_ocsp_cert_status "struct tls *ctx"
176.Ft "int"
177.Fn tls_peer_ocsp_crl_reason "struct tls *ctx"
178.Ft time_t
179.Fn tls_peer_ocsp_next_update "struct tls *ctx"
180.Ft "int"
181.Fn tls_peer_ocsp_response_status "struct tls *ctx"
182.Ft "const char *"
183.Fn tls_peer_ocsp_result_msg "struct tls *ctx"
184.Ft "time_t"
185.Fn tls_peer_ocsp_revocation_time "struct tls *ctx"
186.Ft "time_t"
187.Fn tls_peer_ocsp_this_update" struct tls *ctx"
188.Ft "const char *"
189.Fn tls_peer_ocsp_url "struct tls *ctx"
163.Ft "const char *" 190.Ft "const char *"
164.Fn tls_conn_alpn_selected "struct tls *ctx" 191.Fn tls_conn_alpn_selected "struct tls *ctx"
165.Ft "const char *" 192.Ft "const char *"
@@ -513,6 +540,53 @@ the peer certificate from
513returns the time corresponding to the end of the validity period of 540returns the time corresponding to the end of the validity period of
514the peer certificate from 541the peer certificate from
515.Ar ctx . 542.Ar ctx .
543.Ed
544.It
545.Fn tls_ocsp_process_response
546processes a raw ocsp response in
547.Ar response
548of size
549.Ar size
550to check the revocation status of the peer certificate from
551.Ar ctx .
552A successful return code of 0 indicates that the certificate has not been revoked.
553.Ed
554.It
555.Fn tls_peer_ocsp_url
556returns the URL for OCSP validation of the peer certificate from
557.Ar ctx
558.El
559.Pp
560The following functions return informaiton about the peer certificate from
561.Ar ctx
562tha was obtained by validating a stapled OCSP response during the handshake, or
563via a previous call to
564.Xr tls_ocsp_process_response
565.Bl -bullet -offset four
566.It
567.Fn tls_peer_ocsp_cert_status
568returns the OCSP certificate status code as per RFC 6960 section 2.2
569.Ed
570.It
571.Fn tls_peer_ocsp_crl_reason
572returns the OCSP certificate revocation reason status code as per RFC 5280
573section 5.3.1
574.Ed
575.It
576.Fn tls_peer_ocsp_next_update
577returns the OCSP next update time
578.Ed
579.It
580.Fn tls_peer_ocsp_response_status
581returns the OCSP response status as per RFC 6960 section 2.3
582.Ed
583.It
584.Fn tls_peer_ocsp_revocation_time
585returns the OCSP revocation time
586.Ed
587.It
588.Fn tls_peer_ocsp_this_update
589returns the OCSP this update time
516.El 590.El
517.Pp 591.Pp
518The following are TLS related utility functions: 592The following are TLS related utility functions:
@@ -616,16 +690,57 @@ The
616and 690and
617.Fn tls_peer_cert_contains_name 691.Fn tls_peer_cert_contains_name
618functions return 1 if the check succeeds, and 0 if it does not. 692functions return 1 if the check succeeds, and 0 if it does not.
693.Pp
619Functions that return a 694Functions that return a
620.Vt time_t 695.Vt time_t
621will return a time in epoch-seconds on success, and -1 on error. 696will return a time in epoch-seconds on success, and -1 on error.
697.Pp
622Functions that return a 698Functions that return a
623.Vt ssize_t 699.Vt ssize_t
624will return a size on success, and -1 on error. 700will return a size on success, and -1 on error.
701.Pp
702The
703.Fn tls_peer_ocsp_response_status
704function returns one of
705.Ar TLS_OCSP_RESPONSE_SUCCESSFUL ,
706.Ar TLS_OCSP_RESPONSE_MALFORMED ,
707.Ar TLS_OCSP_RESPONSE_INTERNALERROR ,
708.Ar TLS_OCSP_RESPONSE_TRYLATER ,
709.Ar TLS_OCSP_RESPONSE_SIGREQUIRED ,
710or
711.AR TLS_OCSP_RESPONSE_UNAUTHORIZED
712on success, and -1 on error.
713.Pp
714The
715.Fn tls_peer_ocsp_cert_status
716function returns one of
717.Ar TLS_OCSP_CERT_GOOD ,
718.Ar TLS_OCSP_CERT_REVOKED ,
719or
720.Ar TLS_OCSP_CERT_UNKNOWN
721on success, and -1 on error.
722.Pp
723The
724.Fn tls_peer_ocsp_crl_reason
725function returns one of
726.Ar TLS_CRL_REASON_UNSPECIFIED ,
727.Ar TLS_CRL_REASON_KEY_COMPROMISE ,
728.Ar TLS_CRL_REASON_CA_COMPROMISE ,
729.Ar TLS_CRL_REASON_AFFILIATION_CHANGED ,
730.Ar TLS_CRL_REASON_SUPERSEDED ,
731.Ar TLS_CRL_REASON_CESSATION_OF_OPERATION ,
732.Ar TLS_CRL_REASON_CERTIFICATE_HOLD ,
733.Ar TLS_CRL_REASON_REMOVE_FROM_CRL ,
734.Ar TLS_CRL_REASON_PRIVILEGE_WITHDRAWN ,
735or
736.Ar TLS_CRL_REASON_AA_COMPROMISE
737on success, and -1 on error.
738.Pp
625All other functions that return 739All other functions that return
626.Vt int 740.Vt int
627will return 0 on success and -1 on error. 741will return 0 on success and -1 on error.
628Functions that return a pointer will return NULL on error, which indicates an 742.Pp
743Functions that return a pointer will return NULL on error or an
629out of memory condition. 744out of memory condition.
630.Pp 745.Pp
631The 746The