xref: /openbsd-src/lib/libcrypto/man/X509_VERIFY_PARAM_set_flags.3 (revision 07bab3e10adc8e3ce6c54dfe7e3e67843d3ace3f)
1*07bab3e1Stb.\" $OpenBSD: X509_VERIFY_PARAM_set_flags.3,v 1.29 2023/04/30 19:40:23 tb Exp $
2c4dcc0bcSschwarze.\" full merge up to: OpenSSL d33def66 Feb 9 14:17:13 2016 -0500
3d3e4a707Sschwarze.\" selective merge up to: OpenSSL 24a535ea Sep 22 13:14:20 2020 +0100
48974101aSjmc.\"
5471f033cSschwarze.\" This file is a derived work.
6471f033cSschwarze.\" The changes are covered by the following Copyright and license:
7471f033cSschwarze.\"
88b174191Sschwarze.\" Copyright (c) 2018, 2021, 2022 Ingo Schwarze <schwarze@openbsd.org>
9471f033cSschwarze.\"
10471f033cSschwarze.\" Permission to use, copy, modify, and distribute this software for any
11471f033cSschwarze.\" purpose with or without fee is hereby granted, provided that the above
12471f033cSschwarze.\" copyright notice and this permission notice appear in all copies.
13471f033cSschwarze.\"
14471f033cSschwarze.\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
15471f033cSschwarze.\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
16471f033cSschwarze.\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
17471f033cSschwarze.\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
18471f033cSschwarze.\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
19471f033cSschwarze.\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
20471f033cSschwarze.\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
21471f033cSschwarze.\"
22471f033cSschwarze.\" The original file was written by Dr. Stephen Henson <steve@openssl.org>
23c4dcc0bcSschwarze.\" and Viktor Dukhovni <viktor@dukhovni.org>.
24c4dcc0bcSschwarze.\" Copyright (c) 2009, 2013, 2014, 2015, 2016, 2017 The OpenSSL Project.
25c4dcc0bcSschwarze.\" All rights reserved.
26580266f9Sschwarze.\"
27580266f9Sschwarze.\" Redistribution and use in source and binary forms, with or without
28580266f9Sschwarze.\" modification, are permitted provided that the following conditions
29580266f9Sschwarze.\" are met:
30580266f9Sschwarze.\"
31580266f9Sschwarze.\" 1. Redistributions of source code must retain the above copyright
32580266f9Sschwarze.\"    notice, this list of conditions and the following disclaimer.
33580266f9Sschwarze.\"
34580266f9Sschwarze.\" 2. Redistributions in binary form must reproduce the above copyright
35580266f9Sschwarze.\"    notice, this list of conditions and the following disclaimer in
36580266f9Sschwarze.\"    the documentation and/or other materials provided with the
37580266f9Sschwarze.\"    distribution.
38580266f9Sschwarze.\"
39580266f9Sschwarze.\" 3. All advertising materials mentioning features or use of this
40580266f9Sschwarze.\"    software must display the following acknowledgment:
41580266f9Sschwarze.\"    "This product includes software developed by the OpenSSL Project
42580266f9Sschwarze.\"    for use in the OpenSSL Toolkit. (http://www.openssl.org/)"
43580266f9Sschwarze.\"
44580266f9Sschwarze.\" 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
45580266f9Sschwarze.\"    endorse or promote products derived from this software without
46580266f9Sschwarze.\"    prior written permission. For written permission, please contact
47580266f9Sschwarze.\"    openssl-core@openssl.org.
48580266f9Sschwarze.\"
49580266f9Sschwarze.\" 5. Products derived from this software may not be called "OpenSSL"
50580266f9Sschwarze.\"    nor may "OpenSSL" appear in their names without prior written
51580266f9Sschwarze.\"    permission of the OpenSSL Project.
52580266f9Sschwarze.\"
53580266f9Sschwarze.\" 6. Redistributions of any form whatsoever must retain the following
54580266f9Sschwarze.\"    acknowledgment:
55580266f9Sschwarze.\"    "This product includes software developed by the OpenSSL Project
56580266f9Sschwarze.\"    for use in the OpenSSL Toolkit (http://www.openssl.org/)"
57580266f9Sschwarze.\"
58580266f9Sschwarze.\" THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
59580266f9Sschwarze.\" EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
60580266f9Sschwarze.\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
61580266f9Sschwarze.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE OpenSSL PROJECT OR
62580266f9Sschwarze.\" ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
63580266f9Sschwarze.\" SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
64580266f9Sschwarze.\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
65580266f9Sschwarze.\" LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
66580266f9Sschwarze.\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
67580266f9Sschwarze.\" STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
68580266f9Sschwarze.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
69580266f9Sschwarze.\" OF THE POSSIBILITY OF SUCH DAMAGE.
70580266f9Sschwarze.\"
719a4df245Stb.Dd $Mdocdate: April 30 2023 $
72b7f7f640Sschwarze.Dt X509_VERIFY_PARAM_SET_FLAGS 3
73b7f7f640Sschwarze.Os
74b7f7f640Sschwarze.Sh NAME
75471f033cSschwarze.Nm X509_VERIFY_PARAM_get0_name ,
76471f033cSschwarze.Nm X509_VERIFY_PARAM_set1_name ,
77b7f7f640Sschwarze.Nm X509_VERIFY_PARAM_set_flags ,
78b7f7f640Sschwarze.Nm X509_VERIFY_PARAM_clear_flags ,
79b7f7f640Sschwarze.Nm X509_VERIFY_PARAM_get_flags ,
80b7f7f640Sschwarze.Nm X509_VERIFY_PARAM_set_purpose ,
81b7f7f640Sschwarze.Nm X509_VERIFY_PARAM_set_trust ,
82b7f7f640Sschwarze.Nm X509_VERIFY_PARAM_set_time ,
838b174191Sschwarze.Nm X509_VERIFY_PARAM_get_time ,
84b7f7f640Sschwarze.Nm X509_VERIFY_PARAM_add0_policy ,
851a92b4a1Sjmc.Nm X509_VERIFY_PARAM_set1_policies ,
861a92b4a1Sjmc.Nm X509_VERIFY_PARAM_set_depth ,
87c4dcc0bcSschwarze.Nm X509_VERIFY_PARAM_get_depth ,
888b174191Sschwarze.Nm X509_VERIFY_PARAM_set_auth_level ,
89c4dcc0bcSschwarze.Nm X509_VERIFY_PARAM_set1_host ,
90c4dcc0bcSschwarze.Nm X509_VERIFY_PARAM_add1_host ,
91c4dcc0bcSschwarze.Nm X509_VERIFY_PARAM_set_hostflags ,
92c4dcc0bcSschwarze.Nm X509_VERIFY_PARAM_get0_peername ,
93c4dcc0bcSschwarze.Nm X509_VERIFY_PARAM_set1_email ,
94c4dcc0bcSschwarze.Nm X509_VERIFY_PARAM_set1_ip ,
9589fa9988Sschwarze.Nm X509_VERIFY_PARAM_set1_ip_asc
96b7f7f640Sschwarze.Nd X509 verification parameters
97b7f7f640Sschwarze.Sh SYNOPSIS
98b7f7f640Sschwarze.In openssl/x509_vfy.h
99471f033cSschwarze.Ft const char *
100471f033cSschwarze.Fo X509_VERIFY_PARAM_get0_name
101471f033cSschwarze.Fa "const X509_VERIFY_PARAM *param"
102471f033cSschwarze.Fc
103471f033cSschwarze.Ft int
104471f033cSschwarze.Fo X509_VERIFY_PARAM_set1_name
105471f033cSschwarze.Fa "X509_VERIFY_PARAM *param"
106471f033cSschwarze.Fa "const char *name"
107471f033cSschwarze.Fc
108b7f7f640Sschwarze.Ft int
109b7f7f640Sschwarze.Fo X509_VERIFY_PARAM_set_flags
110b7f7f640Sschwarze.Fa "X509_VERIFY_PARAM *param"
111b7f7f640Sschwarze.Fa "unsigned long flags"
112b7f7f640Sschwarze.Fc
113b7f7f640Sschwarze.Ft int
114b7f7f640Sschwarze.Fo X509_VERIFY_PARAM_clear_flags
115b7f7f640Sschwarze.Fa "X509_VERIFY_PARAM *param"
116b7f7f640Sschwarze.Fa "unsigned long flags"
117b7f7f640Sschwarze.Fc
118b7f7f640Sschwarze.Ft unsigned long
119b7f7f640Sschwarze.Fo X509_VERIFY_PARAM_get_flags
120b7f7f640Sschwarze.Fa "X509_VERIFY_PARAM *param"
121b7f7f640Sschwarze.Fc
122b7f7f640Sschwarze.Ft int
123b7f7f640Sschwarze.Fo X509_VERIFY_PARAM_set_purpose
124b7f7f640Sschwarze.Fa "X509_VERIFY_PARAM *param"
125b7f7f640Sschwarze.Fa "int purpose"
126b7f7f640Sschwarze.Fc
127b7f7f640Sschwarze.Ft int
128b7f7f640Sschwarze.Fo X509_VERIFY_PARAM_set_trust
129b7f7f640Sschwarze.Fa "X509_VERIFY_PARAM *param"
130b7f7f640Sschwarze.Fa "int trust"
131b7f7f640Sschwarze.Fc
132b7f7f640Sschwarze.Ft void
133b7f7f640Sschwarze.Fo X509_VERIFY_PARAM_set_time
134b7f7f640Sschwarze.Fa "X509_VERIFY_PARAM *param"
135b7f7f640Sschwarze.Fa "time_t t"
136b7f7f640Sschwarze.Fc
1378b174191Sschwarze.Ft time_t
1388b174191Sschwarze.Fo X509_VERIFY_PARAM_get_time
1398b174191Sschwarze.Fa const X509_VERIFY_PARAM *param"
1408b174191Sschwarze.Fc
141b7f7f640Sschwarze.Ft int
142b7f7f640Sschwarze.Fo X509_VERIFY_PARAM_add0_policy
143b7f7f640Sschwarze.Fa "X509_VERIFY_PARAM *param"
144b7f7f640Sschwarze.Fa "ASN1_OBJECT *policy"
145b7f7f640Sschwarze.Fc
146b7f7f640Sschwarze.Ft int
147b7f7f640Sschwarze.Fo X509_VERIFY_PARAM_set1_policies
148b7f7f640Sschwarze.Fa "X509_VERIFY_PARAM *param"
149b7f7f640Sschwarze.Fa "STACK_OF(ASN1_OBJECT) *policies"
150b7f7f640Sschwarze.Fc
151b7f7f640Sschwarze.Ft void
152b7f7f640Sschwarze.Fo X509_VERIFY_PARAM_set_depth
153b7f7f640Sschwarze.Fa "X509_VERIFY_PARAM *param"
154b7f7f640Sschwarze.Fa "int depth"
155b7f7f640Sschwarze.Fc
156b7f7f640Sschwarze.Ft int
157b7f7f640Sschwarze.Fo X509_VERIFY_PARAM_get_depth
158b7f7f640Sschwarze.Fa "const X509_VERIFY_PARAM *param"
159b7f7f640Sschwarze.Fc
1608b174191Sschwarze.Ft void
1618b174191Sschwarze.Fo X509_VERIFY_PARAM_set_auth_level
1628b174191Sschwarze.Fa "X509_VERIFY_PARAM *param"
1638b174191Sschwarze.Fa "int auth_level"
1648b174191Sschwarze.Fc
165c4dcc0bcSschwarze.Ft int
166c4dcc0bcSschwarze.Fo X509_VERIFY_PARAM_set1_host
167c4dcc0bcSschwarze.Fa "X509_VERIFY_PARAM *param"
168c4dcc0bcSschwarze.Fa "const char *name"
169c4dcc0bcSschwarze.Fa "size_t namelen"
170c4dcc0bcSschwarze.Fc
171c4dcc0bcSschwarze.Ft int
172c4dcc0bcSschwarze.Fo X509_VERIFY_PARAM_add1_host
173c4dcc0bcSschwarze.Fa "X509_VERIFY_PARAM *param"
174c4dcc0bcSschwarze.Fa "const char *name"
175c4dcc0bcSschwarze.Fa "size_t namelen"
176c4dcc0bcSschwarze.Fc
177c4dcc0bcSschwarze.Ft void
178c4dcc0bcSschwarze.Fo X509_VERIFY_PARAM_set_hostflags
179c4dcc0bcSschwarze.Fa "X509_VERIFY_PARAM *param"
180c4dcc0bcSschwarze.Fa "unsigned int flags"
181c4dcc0bcSschwarze.Fc
182c4dcc0bcSschwarze.Ft char *
183c4dcc0bcSschwarze.Fo X509_VERIFY_PARAM_get0_peername
184c4dcc0bcSschwarze.Fa "X509_VERIFY_PARAM *param"
185c4dcc0bcSschwarze.Fc
186c4dcc0bcSschwarze.Ft int
187c4dcc0bcSschwarze.Fo X509_VERIFY_PARAM_set1_email
188c4dcc0bcSschwarze.Fa "X509_VERIFY_PARAM *param"
189c4dcc0bcSschwarze.Fa "const char *email"
190c4dcc0bcSschwarze.Fa "size_t emaillen"
191c4dcc0bcSschwarze.Fc
192c4dcc0bcSschwarze.Ft int
193c4dcc0bcSschwarze.Fo X509_VERIFY_PARAM_set1_ip
194c4dcc0bcSschwarze.Fa "X509_VERIFY_PARAM *param"
195c4dcc0bcSschwarze.Fa "const unsigned char *ip"
196c4dcc0bcSschwarze.Fa "size_t iplen"
197c4dcc0bcSschwarze.Fc
198c4dcc0bcSschwarze.Ft int
199c4dcc0bcSschwarze.Fo X509_VERIFY_PARAM_set1_ip_asc
200c4dcc0bcSschwarze.Fa "X509_VERIFY_PARAM *param"
201c4dcc0bcSschwarze.Fa "const char *ipasc"
202c4dcc0bcSschwarze.Fc
203b7f7f640Sschwarze.Sh DESCRIPTION
204471f033cSschwarzeThese functions manipulate an
205b7f7f640Sschwarze.Vt X509_VERIFY_PARAM
206471f033cSschwarzeobject associated with a certificate verification operation.
207b7f7f640Sschwarze.Pp
208471f033cSschwarze.Fn X509_VERIFY_PARAM_get0_name
209471f033cSschwarzereturns the name of the given
210471f033cSschwarze.Fa param
211471f033cSschwarzeobject, usually describing its purpose, for example
212471f033cSschwarze.Qq default ,
213471f033cSschwarze.Qq pkcs7 ,
214471f033cSschwarze.Qq smime_sign ,
215471f033cSschwarze.Qq ssl_client ,
216471f033cSschwarzeor
217471f033cSschwarze.Qq ssl_server .
218471f033cSschwarzeFor user-defined objects, the returned pointer may be
219471f033cSschwarze.Dv NULL
220471f033cSschwarzeeven if the object is otherwise valid.
221471f033cSschwarze.Pp
222471f033cSschwarze.Fn X509_VERIFY_PARAM_set1_name
223471f033cSschwarzesets the name of
224471f033cSschwarze.Fa param
225471f033cSschwarzeto a copy of
226471f033cSschwarze.Fa name ,
227471f033cSschwarzeor to
228471f033cSschwarze.Dv NULL
229471f033cSschwarzeif
230471f033cSschwarze.Fa name
231471f033cSschwarzeis
232471f033cSschwarze.Dv NULL .
233471f033cSschwarze.Pp
234b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_set_flags
235471f033cSschwarzesets the flags in
236b7f7f640Sschwarze.Fa param
237b7f7f640Sschwarzeby OR'ing it with
238b7f7f640Sschwarze.Fa flags .
239b7f7f640SschwarzeSee the
240b7f7f640Sschwarze.Sx VERIFICATION FLAGS
241b7f7f640Sschwarzesection for a complete description of values the
242b7f7f640Sschwarze.Fa flags
243b7f7f640Sschwarzeparameter can take.
244b7f7f640Sschwarze.Pp
2455be47371SschwarzeIf the
2465be47371Sschwarze.Fa flags
2475be47371Sschwarzeargument includes any of the flags contained in
2485be47371Sschwarze.Dv X509_V_FLAG_POLICY_MASK ,
2495be47371Sschwarzethat is, any of
2505be47371Sschwarze.Dv X509_V_FLAG_POLICY_CHECK ,
2515be47371Sschwarze.Dv X509_V_FLAG_EXPLICIT_POLICY ,
2525be47371Sschwarze.Dv X509_V_FLAG_INHIBIT_ANY ,
2535be47371Sschwarzeand
2545be47371Sschwarze.Dv X509_V_FLAG_INHIBIT_MAP ,
2555be47371Sschwarzethen
2565be47371Sschwarze.Dv X509_V_FLAG_POLICY_CHECK
2575be47371Sschwarzeis set in addition to the flags contained in the
2585be47371Sschwarze.Fa flags
2595be47371Sschwarzeargument.
2605be47371Sschwarze.Pp
261b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_get_flags
262b7f7f640Sschwarzereturns the flags in
263b7f7f640Sschwarze.Fa param .
264b7f7f640Sschwarze.Pp
265b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_clear_flags
2665be47371Sschwarzeclears the specified
267b7f7f640Sschwarze.Fa flags
268b7f7f640Sschwarzein
269b7f7f640Sschwarze.Fa param .
270b7f7f640Sschwarze.Pp
271d59240dbSjsgCalling this function can result in unusual internal states of the
2725be47371Sschwarze.Fa param
2735be47371Sschwarzeobject, for example having a verification time configured but having
2745be47371Sschwarze.Dv X509_V_FLAG_USE_CHECK_TIME
2755be47371Sschwarzeunset, or having
2765be47371Sschwarze.Dv X509_V_FLAG_EXPLICIT_POLICY
2775be47371Sschwarzeset but
2785be47371Sschwarze.Dv X509_V_FLAG_POLICY_CHECK
2795be47371Sschwarzeunset, which may have surprising effects.
2805be47371Sschwarze.Pp
281b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_set_purpose
282d3e4a707Sschwarzesets the verification
283d3e4a707Sschwarze.Fa purpose
284d3e4a707Sschwarzeidentifier in
285d3e4a707Sschwarze.Fa param .
286d3e4a707SschwarzeThis determines the acceptable purpose of the certificate chain, for example
287d3e4a707Sschwarze.Dv X509_PURPOSE_SSL_CLIENT
288d3e4a707Sschwarzeor
289d3e4a707Sschwarze.Dv X509_PURPOSE_SSL_SERVER .
290d3e4a707SschwarzeStandard purposes are listed in
291d3e4a707Sschwarze.Xr X509_check_purpose 3 ,
292d3e4a707Sschwarzeand additional purposes can be defined with
293d3e4a707Sschwarze.Xr X509_PURPOSE_add 3 .
294b7f7f640Sschwarze.Pp
295b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_set_trust
296b7f7f640Sschwarzesets the trust setting in
297b7f7f640Sschwarze.Fa param
298b7f7f640Sschwarzeto
299b7f7f640Sschwarze.Fa trust .
300b7f7f640Sschwarze.Pp
301b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_set_time
3025be47371Sschwarzesets the flag
3035be47371Sschwarze.Dv X509_V_FLAG_USE_CHECK_TIME
3045be47371Sschwarzein
305b7f7f640Sschwarze.Fa param
3065be47371Sschwarzein addition to the flags already set and sets the verification time to
307b7f7f640Sschwarze.Fa t .
3085be47371SschwarzeIf this function is not called, the current time is used instead,
3095be47371Sschwarzeor the UNIX Epoch (January 1, 1970) if
3105be47371Sschwarze.Dv X509_V_FLAG_USE_CHECK_TIME
3115be47371Sschwarzeis manually set using
3125be47371Sschwarze.Fn X509_VERIFY_PARAM_set_flags .
313b7f7f640Sschwarze.Pp
314b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_add0_policy
315b7f7f640Sschwarzeenables policy checking (it is disabled by default) and adds
316b7f7f640Sschwarze.Fa policy
317b7f7f640Sschwarzeto the acceptable policy set.
318b7f7f640Sschwarze.Pp
319b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_set1_policies
320b7f7f640Sschwarzeenables policy checking (it is disabled by default) and sets the
321b7f7f640Sschwarzeacceptable policy set to
322b7f7f640Sschwarze.Fa policies .
323b7f7f640SschwarzeAny existing policy set is cleared.
324b7f7f640SschwarzeThe
325b7f7f640Sschwarze.Fa policies
326b7f7f640Sschwarzeparameter can be
327b7f7f640Sschwarze.Dv NULL
328b7f7f640Sschwarzeto clear an existing policy set.
329b7f7f640Sschwarze.Pp
330b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_set_depth
331b7f7f640Sschwarzesets the maximum verification depth to
332b7f7f640Sschwarze.Fa depth .
333b7f7f640SschwarzeThat is the maximum number of untrusted CA certificates that can appear
334b7f7f640Sschwarzein a chain.
335c4dcc0bcSschwarze.Pp
3368b174191Sschwarze.Fn X509_VERIFY_PARAM_set_auth_level
3378b174191Sschwarzesets the security level as defined in
3388b174191Sschwarze.Xr SSL_CTX_set_security_level 3
3398b174191Sschwarzefor certificate chain validation.
3408b174191SschwarzeFor a certificate chain to validate, the public keys of all the
3418b174191Sschwarzecertificates must meet the specified security level.
3428b174191SschwarzeThe signature algorithm security level is not enforced for the
3438b174191Sschwarzechain's trust anchor certificate, which is either directly trusted
3448b174191Sschwarzeor validated by means other than its signature.
3458b174191Sschwarze.Pp
3468b174191SschwarzeFrom the point of view of the X.509 library,
3478b174191Sschwarzethe default security level is 0.
3488b174191SschwarzeHowever, the SSL library
3498b174191Sschwarzeuses a different default security level of 1 and calls
3508b174191Sschwarze.Fn X509_VERIFY_PARAM_set_auth_level
3518b174191Sschwarzewith its own level before validating a certificate chain.
3528b174191Sschwarze.Pp
353c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_set1_host
354c4dcc0bcSschwarzesets the expected DNS hostname to
355c4dcc0bcSschwarze.Fa name
356c4dcc0bcSschwarzeclearing any previously specified hostname or names.
357c4dcc0bcSschwarzeIf
358c4dcc0bcSschwarze.Fa name
359c4dcc0bcSschwarzeis
360c4dcc0bcSschwarze.Dv NULL
361c4dcc0bcSschwarzeor empty, the list of hostnames is cleared, and name checks are not
362c4dcc0bcSschwarzeperformed on the peer certificate.
3632a5239c0Sbeck.Fa namelen
3642a5239c0Sbeckshould be set to the length of
3652a5239c0Sbeck.Fa name .
3662a5239c0SbeckFor historical compatibility, if
367c4dcc0bcSschwarze.Fa name
368c4dcc0bcSschwarzeis NUL-terminated,
369c4dcc0bcSschwarze.Fa namelen
3702a5239c0Sbeckmay be specified as zero.
371c4dcc0bcSschwarzeWhen a hostname is specified, certificate verification automatically
372c4dcc0bcSschwarzeinvokes
373c4dcc0bcSschwarze.Xr X509_check_host 3
374c4dcc0bcSschwarzewith flags equal to the
375c4dcc0bcSschwarze.Fa flags
376c4dcc0bcSschwarzeargument given to
377c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_set_hostflags
378c4dcc0bcSschwarze(default zero).
3792a5239c0Sbeck.Fn X509_VERIFY_PARAM_set1_host
3802a5239c0Sbeckwill fail if
3812a5239c0Sbeck.Fa name
3822a5239c0Sbeckcontains any embedded 0 bytes.
383c4dcc0bcSschwarze.Pp
384c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_add1_host
385c4dcc0bcSschwarzeadds
386c4dcc0bcSschwarze.Fa name
387c4dcc0bcSschwarzeas an additional reference identifier that can match the peer's
388c4dcc0bcSschwarzecertificate.
389c4dcc0bcSschwarzeAny previous names set via
390c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_set1_host
391c4dcc0bcSschwarzeand
392c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_add1_host
393c4dcc0bcSschwarzeare retained.
394c4dcc0bcSschwarzeNo change is made if
395c4dcc0bcSschwarze.Fa name
396c4dcc0bcSschwarzeis
397c4dcc0bcSschwarze.Dv NULL
398c4dcc0bcSschwarzeor empty.
3992a5239c0Sbeck.Fa namelen
4002a5239c0Sbeckshould be set to the length of
4012a5239c0Sbeck.Fa name .
4022a5239c0SbeckFor historical compatibility, if
4032a5239c0Sbeck.Fa name
4042a5239c0Sbeckis NUL-terminated,
4052a5239c0Sbeck.Fa namelen
4062a5239c0Sbeckmay be specified as zero.
4072a5239c0Sbeck.Fn X509_VERIFY_PARAM_add1_host
4082a5239c0Sbeckwill fail if
4092a5239c0Sbeck.Fa name
4102a5239c0Sbeckcontains any embedded 0 bytes.
411c4dcc0bcSschwarzeWhen multiple names are configured, the peer is considered verified when
412c4dcc0bcSschwarzeany name matches.
413c4dcc0bcSschwarze.Pp
414c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_get0_peername
415c4dcc0bcSschwarzereturns the DNS hostname or subject CommonName from the peer certificate
416c4dcc0bcSschwarzethat matched one of the reference identifiers.
417c4dcc0bcSschwarzeWhen wildcard matching is not disabled, or when a reference identifier
418c4dcc0bcSschwarzespecifies a parent domain (starts with ".") rather than a hostname, the
419c4dcc0bcSschwarzepeer name may be a wildcard name or a sub-domain of the reference
420c4dcc0bcSschwarzeidentifier respectively.
421c4dcc0bcSschwarze.Pp
422c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_set1_email
423c4dcc0bcSschwarzesets the expected RFC 822 email address to
424c4dcc0bcSschwarze.Fa email .
4252a5239c0Sbeck.Fa emaillen
4262a5239c0Sbeckshould be set to the length of
4272a5239c0Sbeck.Fa email .
4282a5239c0SbeckFor historical compatibility, if
429c4dcc0bcSschwarze.Fa email
430c4dcc0bcSschwarzeis NUL-terminated,
431c4dcc0bcSschwarze.Fa emaillen
4322a5239c0Sbeckmay be specified as zero,
4332a5239c0Sbeck.Fn X509_VERIFY_PARAM_set1_email
4342a5239c0Sbeckwill fail if
4352a5239c0Sbeck.Fa email
4362a5239c0Sbeckis NULL, an empty string, or contains embedded 0 bytes.
437c4dcc0bcSschwarzeWhen an email address is specified, certificate verification
438c4dcc0bcSschwarzeautomatically invokes
439c4dcc0bcSschwarze.Xr X509_check_email 3 .
440c4dcc0bcSschwarze.Pp
441c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_set1_ip
442c4dcc0bcSschwarzesets the expected IP address to
443c4dcc0bcSschwarze.Fa ip .
444c4dcc0bcSschwarzeThe
445c4dcc0bcSschwarze.Fa ip
446c4dcc0bcSschwarzeargument is in binary format, in network byte-order, and
447c4dcc0bcSschwarze.Fa iplen
448c4dcc0bcSschwarzemust be set to 4 for IPv4 and 16 for IPv6.
4492a5239c0Sbeck.Fn X509_VERIFY_PARAM_set1_ip
4502a5239c0Sbeckwill fail if
4512a5239c0Sbeck.Fa ip
4522a5239c0Sbeckis NULL or if
4532a5239c0Sbeck.Fa iplen
4542a5239c0Sbeckis not 4 or 16.
455c4dcc0bcSschwarzeWhen an IP address is specified,
456c4dcc0bcSschwarzecertificate verification automatically invokes
457c4dcc0bcSschwarze.Xr X509_check_ip 3 .
458c4dcc0bcSschwarze.Pp
459c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_set1_ip_asc
460c4dcc0bcSschwarzesets the expected IP address to
461c4dcc0bcSschwarze.Fa ipasc .
462c4dcc0bcSschwarzeThe
463c4dcc0bcSschwarze.Fa ipasc
464c4dcc0bcSschwarzeargument is a NUL-terminal ASCII string:
465c4dcc0bcSschwarzedotted decimal quad for IPv4 and colon-separated hexadecimal for IPv6.
466c4dcc0bcSschwarzeThe condensed "::" notation is supported for IPv6 addresses.
4672a5239c0Sbeck.Fn X509_VERIFY_PARAM_set1_ip_asc
4682a5239c0Sbeckwill fail if
4692a5239c0Sbeck.Fa ipasc
4702a5239c0Sbeckis unparsable.
471b7f7f640Sschwarze.Sh RETURN VALUES
472471f033cSschwarze.Fn X509_VERIFY_PARAM_set1_name ,
473b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_set_flags ,
474b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_clear_flags ,
475b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_set_purpose ,
476b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_set_trust ,
477b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_add0_policy ,
4782a5239c0Sbeckand
47989fa9988Sschwarze.Fn X509_VERIFY_PARAM_set1_policies
4802a5239c0Sbeckreturn 1 for success or 0 for failure.
4812a5239c0Sbeck.Pp
482c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_set1_host ,
483c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_add1_host ,
484c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_set1_email ,
485c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_set1_ip ,
486b7f7f640Sschwarzeand
48789fa9988Sschwarze.Fn X509_VERIFY_PARAM_set1_ip_asc
488b7f7f640Sschwarzereturn 1 for success or 0 for failure.
4892a5239c0SbeckA failure from these routines will poison
4902a5239c0Sbeckthe
4912a5239c0Sbeck.Vt X509_VERIFY_PARAM
4922a5239c0Sbeckobject so that future calls to
493d46a5467Sjmc.Xr X509_verify_cert 3
4942a5239c0Sbeckusing the poisoned object will fail.
495b7f7f640Sschwarze.Pp
496b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_get_flags
497b7f7f640Sschwarzereturns the current verification flags.
498b7f7f640Sschwarze.Pp
4998b174191Sschwarze.Fn X509_VERIFY_PARAM_get_time
5008b174191Sschwarzealways returns the configured verification time.
5018b174191SschwarzeIt does so even if the returned time will not be used because the flag
5028b174191Sschwarze.Dv X509_V_FLAG_USE_CHECK_TIME
5038b174191Sschwarzeis unset.
5048b174191Sschwarze.Pp
505b7f7f640Sschwarze.Fn X509_VERIFY_PARAM_get_depth
506b7f7f640Sschwarzereturns the current verification depth.
507471f033cSschwarze.Pp
508471f033cSschwarze.Fn X509_VERIFY_PARAM_get0_name
509471f033cSschwarzeand
510471f033cSschwarze.Fn X509_VERIFY_PARAM_get0_peername
511471f033cSschwarzereturn pointers to strings that are only valid
512471f033cSschwarzeduring the lifetime of the given
513471f033cSschwarze.Fa param
514471f033cSschwarzeobject and that must not be freed by the application program.
515b7f7f640Sschwarze.Sh VERIFICATION FLAGS
516b7f7f640SschwarzeThe verification flags consists of zero or more of the following
517b7f7f640Sschwarzeflags OR'ed together.
518b7f7f640Sschwarze.Pp
519b7f7f640Sschwarze.Dv X509_V_FLAG_CRL_CHECK
520b7f7f640Sschwarzeenables CRL checking for the certificate chain leaf certificate.
521b7f7f640SschwarzeAn error occurs if a suitable CRL cannot be found.
522b7f7f640Sschwarze.Pp
523b7f7f640Sschwarze.Dv X509_V_FLAG_CRL_CHECK_ALL
524b7f7f640Sschwarzeenables CRL checking for the entire certificate chain.
525b7f7f640Sschwarze.Pp
526b7f7f640Sschwarze.Dv X509_V_FLAG_IGNORE_CRITICAL
5271a92b4a1Sjmcdisables critical extension checking.
528b7f7f640SschwarzeBy default any unhandled critical extensions in certificates or (if
529b7f7f640Sschwarzechecked) CRLs results in a fatal error.
53041ce3b17SnaddyIf this flag is set, unhandled critical extensions are ignored.
531b7f7f640Sschwarze.Sy WARNING :
532b7f7f640Sschwarzesetting this option for anything other than debugging purposes can be a
533b7f7f640Sschwarzesecurity risk.
534b7f7f640SschwarzeFiner control over which extensions are supported can be performed in
535b7f7f640Sschwarzethe verification callback.
536b7f7f640Sschwarze.Pp
537b7f7f640SschwarzeThe
538b7f7f640Sschwarze.Dv X509_V_FLAG_X509_STRICT
539b7f7f640Sschwarzeflag disables workarounds for some broken certificates and makes the
540b7f7f640Sschwarzeverification strictly apply X509 rules.
541b7f7f640Sschwarze.Pp
542b7f7f640Sschwarze.Dv X509_V_FLAG_ALLOW_PROXY_CERTS
543*07bab3e1Stbdeprecated flag that used to
544*07bab3e1Stbenable proxy certificate verification.
545*07bab3e1StbIn LibreSSL, this flag has no effect.
546b7f7f640Sschwarze.Pp
547b7f7f640Sschwarze.Dv X509_V_FLAG_POLICY_CHECK
5481a92b4a1Sjmcenables certificate policy checking; by default no policy checking is
549b7f7f640Sschwarzeperformed.
550b7f7f640SschwarzeAdditional information is sent to the verification callback relating to
551b7f7f640Sschwarzepolicy checking.
552b7f7f640Sschwarze.Pp
553b7f7f640Sschwarze.Dv X509_V_FLAG_EXPLICIT_POLICY ,
554b7f7f640Sschwarze.Dv X509_V_FLAG_INHIBIT_ANY ,
555b7f7f640Sschwarzeand
556b7f7f640Sschwarze.Dv X509_V_FLAG_INHIBIT_MAP
557b7f7f640Sschwarzeset the
558b7f7f640Sschwarze.Dq require explicit policy ,
559b7f7f640Sschwarze.Dq inhibit any policy ,
560b7f7f640Sschwarzeand
561b7f7f640Sschwarze.Dq inhibit policy mapping
562b7f7f640Sschwarzeflags, respectively, as defined in RFC 3280.
5635be47371SschwarzeThese three flags are ignored unless
5645be47371Sschwarze.Dv X509_V_FLAG_POLICY_CHECK
5655be47371Sschwarzeis also set.
566b7f7f640Sschwarze.Pp
567b7f7f640SschwarzeIf
568b7f7f640Sschwarze.Dv X509_V_FLAG_NOTIFY_POLICY
5695be47371Sschwarzeis set and policy checking is successful, a special status code is
5705be47371Sschwarzesent to the verification callback.
571b7f7f640Sschwarze.Pp
572b7f7f640SschwarzeBy default some additional features such as indirect CRLs and CRLs
573b7f7f640Sschwarzesigned by different keys are disabled.
574b7f7f640SschwarzeIf
575b7f7f640Sschwarze.Dv X509_V_FLAG_EXTENDED_CRL_SUPPORT
57641ce3b17Snaddyis set, they are enabled.
577b7f7f640Sschwarze.Pp
578b7f7f640SschwarzeIf
579b7f7f640Sschwarze.Dv X509_V_FLAG_USE_DELTAS
580b7f7f640Sschwarzeis set, delta CRLs (if present) are used to determine certificate
581b7f7f640Sschwarzestatus.
582b7f7f640SschwarzeIf not set, deltas are ignored.
583b7f7f640Sschwarze.Pp
584b7f7f640Sschwarze.Dv X509_V_FLAG_CHECK_SS_SIGNATURE
585b7f7f640Sschwarzeenables checking of the root CA self signed certificate signature.
586b7f7f640SschwarzeBy default this check is disabled because it doesn't add any additional
587b7f7f640Sschwarzesecurity but in some cases applications might want to check the
588b7f7f640Sschwarzesignature anyway.
589b7f7f640SschwarzeA side effect of not checking the root CA signature is that disabled or
590b7f7f640Sschwarzeunsupported message digests on the root CA are not treated as fatal
591b7f7f640Sschwarzeerrors.
592b7f7f640Sschwarze.Pp
5938a0b2fe2StbThe deprecated
594b7f7f640Sschwarze.Dv X509_V_FLAG_CB_ISSUER_CHECK
5958a0b2fe2Stbflag used to enable debugging of certificate issuer checks.
5968a0b2fe2StbIt is provided for binary backwards compatibility and has no effect.
597c4dcc0bcSschwarze.Pp
598c4dcc0bcSschwarzeWhen
599c4dcc0bcSschwarze.Dv X509_V_FLAG_TRUSTED_FIRST
600c4dcc0bcSschwarzeis set, construction of the certificate chain in
601c4dcc0bcSschwarze.Xr X509_verify_cert 3
602c4dcc0bcSschwarzewill search the trust store for issuer certificates before searching the
603c4dcc0bcSschwarzeprovided untrusted certificates.
604c4dcc0bcSschwarzeLocal issuer certificates are often more likely to satisfy local
605c4dcc0bcSschwarzesecurity requirements and lead to a locally trusted root.
606c4dcc0bcSschwarzeThis is especially important when some certificates in the trust store
607c4dcc0bcSschwarzehave explicit trust settings; see the trust settings options of the
608c4dcc0bcSschwarze.Cm x509
609c4dcc0bcSschwarzecommand in
610c4dcc0bcSschwarze.Xr openssl 1 .
611c4dcc0bcSschwarze.Pp
612c4dcc0bcSschwarzeThe
613c4dcc0bcSschwarze.Dv X509_V_FLAG_NO_ALT_CHAINS
614c4dcc0bcSschwarzeflag suppresses checking for alternative chains.
615c4dcc0bcSschwarzeBy default, unless
616c4dcc0bcSschwarze.Dv X509_V_FLAG_TRUSTED_FIRST
617c4dcc0bcSschwarzeis set, when building a certificate chain, if the first certificate
618c4dcc0bcSschwarzechain found is not trusted, then OpenSSL will attempt to replace
619c4dcc0bcSschwarzeuntrusted certificates supplied by the peer with certificates from the
620c4dcc0bcSschwarzetrust store to see if an alternative chain can be found that is trusted.
621c4dcc0bcSschwarze.Pp
622c4dcc0bcSschwarzeThe
623c4dcc0bcSschwarze.Dv X509_V_FLAG_PARTIAL_CHAIN
624c4dcc0bcSschwarzeflag causes intermediate certificates in the trust store to be treated
625c4dcc0bcSschwarzeas trust-anchors, in the same way as the self-signed root CA
626c4dcc0bcSschwarzecertificates.
627c4dcc0bcSschwarzeThis makes it possible to trust certificates issued by an intermediate
628c4dcc0bcSschwarzeCA without having to trust its ancestor root CA.
629c4dcc0bcSschwarze.Pp
63061583fc4SschwarzeIf
63161583fc4Sschwarze.Dv X509_V_FLAG_USE_CHECK_TIME
63261583fc4Sschwarzeis set, the validity period of certificates and CRLs is checked.
63361583fc4SschwarzeIn this case,
634c4dcc0bcSschwarze.Dv X509_V_FLAG_NO_CHECK_TIME
63561583fc4Sschwarzeis ignored.
63661583fc4SschwarzeIf the validation time was set with
63761583fc4Sschwarze.Fn X509_VERIFY_PARAM_set_time ,
63861583fc4Sschwarzethat time is used.
639c4dcc0bcSschwarzeIf
640c4dcc0bcSschwarze.Fn X509_VERIFY_PARAM_set_time
64161583fc4Sschwarzewas not called, the UNIX Epoch (January 1, 1970) is used.
64261583fc4Sschwarze.Pp
64361583fc4SschwarzeIf neither
64461583fc4Sschwarze.Dv X509_V_FLAG_USE_CHECK_TIME
64561583fc4Sschwarzenor
64661583fc4Sschwarze.Dv X509_V_FLAG_NO_CHECK_TIME
64761583fc4Sschwarzeis set, the validity period of certificates and CRLs is checked
64861583fc4Sschwarzeusing the current time.
6492235fd3cSjsgThis is the default behaviour.
65061583fc4SschwarzeIn this case, if a validation time was set with
65161583fc4Sschwarze.Fn X509_VERIFY_PARAM_set_time
65261583fc4Sschwarzebut
65361583fc4Sschwarze.Dv X509_V_FLAG_USE_CHECK_TIME
65461583fc4Sschwarzewas later cleared with
65561583fc4Sschwarze.Fn X509_VERIFY_PARAM_clear_flags ,
65661583fc4Sschwarzethe configured validation time is ignored
65761583fc4Sschwarzeand the current time is used anyway.
65861583fc4Sschwarze.Pp
65961583fc4SschwarzeIf
66061583fc4Sschwarze.Dv X509_V_FLAG_USE_CHECK_TIME
66161583fc4Sschwarzeis not set but
66261583fc4Sschwarze.Dv X509_V_FLAG_NO_CHECK_TIME
66361583fc4Sschwarzeis set, the validity period of certificates and CRLs is not checked
66461583fc4Sschwarzeat all, and like in the previous case, any configured validation
66561583fc4Sschwarzetime is ignored.
666b7f7f640Sschwarze.Sh EXAMPLES
667b7f7f640SschwarzeEnable CRL checking when performing certificate verification during
668b7f7f640SschwarzeSSL connections associated with an
669b7f7f640Sschwarze.Vt SSL_CTX
670b7f7f640Sschwarzestructure
671b7f7f640Sschwarze.Fa ctx :
6721a92b4a1Sjmc.Bd -literal -offset indent
673b7f7f640SschwarzeX509_VERIFY_PARAM *param;
674c4dcc0bcSschwarze
675b7f7f640Sschwarzeparam = X509_VERIFY_PARAM_new();
676b7f7f640SschwarzeX509_VERIFY_PARAM_set_flags(param, X509_V_FLAG_CRL_CHECK);
677b7f7f640SschwarzeSSL_CTX_set1_param(ctx, param);
678b7f7f640SschwarzeX509_VERIFY_PARAM_free(param);
679b7f7f640Sschwarze.Ed
680b7f7f640Sschwarze.Sh SEE ALSO
6811bfa9420Sschwarze.Xr SSL_set1_host 3 ,
682e349b5c6Sschwarze.Xr SSL_set1_param 3 ,
683c4dcc0bcSschwarze.Xr X509_check_host 3 ,
684491f2bffSschwarze.Xr X509_STORE_CTX_new 3 ,
685491f2bffSschwarze.Xr X509_STORE_new 3 ,
68689fa9988Sschwarze.Xr X509_verify_cert 3 ,
68789fa9988Sschwarze.Xr X509_VERIFY_PARAM_new 3
6882c07bb3bSschwarze.Sh HISTORY
6892c07bb3bSschwarze.Fn X509_VERIFY_PARAM_set1_name ,
6902c07bb3bSschwarze.Fn X509_VERIFY_PARAM_set_flags ,
6912c07bb3bSschwarze.Fn X509_VERIFY_PARAM_set_purpose ,
6922c07bb3bSschwarze.Fn X509_VERIFY_PARAM_set_trust ,
6932c07bb3bSschwarze.Fn X509_VERIFY_PARAM_set_time ,
6942c07bb3bSschwarze.Fn X509_VERIFY_PARAM_add0_policy ,
6952c07bb3bSschwarze.Fn X509_VERIFY_PARAM_set1_policies ,
6962c07bb3bSschwarze.Fn X509_VERIFY_PARAM_set_depth ,
6972c07bb3bSschwarzeand
69889fa9988Sschwarze.Fn X509_VERIFY_PARAM_get_depth
69975db2bcaSschwarzefirst appeared in OpenSSL 0.9.8.
70075db2bcaSschwarze.Fn X509_VERIFY_PARAM_clear_flags
70175db2bcaSschwarzeand
70275db2bcaSschwarze.Fn X509_VERIFY_PARAM_get_flags
70375db2bcaSschwarzefirst appeared in OpenSSL 0.9.8a.
70475db2bcaSschwarzeAll these functions have been available since
7052c07bb3bSschwarze.Ox 4.5 .
7067fe7dbf7Sschwarze.Pp
7073fd951e6Snaddy.Fn X509_VERIFY_PARAM_get0_name ,
7087fe7dbf7Sschwarze.Fn X509_VERIFY_PARAM_set1_host ,
7097fe7dbf7Sschwarze.Fn X509_VERIFY_PARAM_add1_host ,
7107fe7dbf7Sschwarze.Fn X509_VERIFY_PARAM_set_hostflags ,
7117fe7dbf7Sschwarze.Fn X509_VERIFY_PARAM_get0_peername ,
7127fe7dbf7Sschwarze.Fn X509_VERIFY_PARAM_set1_email ,
7137fe7dbf7Sschwarze.Fn X509_VERIFY_PARAM_set1_ip ,
7147fe7dbf7Sschwarzeand
71589fa9988Sschwarze.Fn X509_VERIFY_PARAM_set1_ip_asc
7167fe7dbf7Sschwarzefirst appeared in OpenSSL 1.0.2 and have been available since
7177fe7dbf7Sschwarze.Ox 6.3 .
7188b174191Sschwarze.Pp
7198b174191Sschwarze.Fn X509_VERIFY_PARAM_set_auth_level
7208b174191Sschwarzefirst appeared in OpenSSL 1.1.0 and
7218b174191Sschwarze.Fn X509_VERIFY_PARAM_get_time
7228b174191Sschwarzein OpenSSL 1.1.0d.
7238b174191SschwarzeBoth functions have been available since
7248b174191Sschwarze.Ox 7.2 .
725b7f7f640Sschwarze.Sh BUGS
726b7f7f640SschwarzeDelta CRL checking is currently primitive.
727b7f7f640SschwarzeOnly a single delta can be used and (partly due to limitations of
728b7f7f640Sschwarze.Vt X509_STORE )
729b7f7f640Sschwarzeconstructed CRLs are not maintained.
730b7f7f640Sschwarze.Pp
731b7f7f640SschwarzeIf CRLs checking is enabled, CRLs are expected to be available in
732b7f7f640Sschwarzethe corresponding
733b7f7f640Sschwarze.Vt X509_STORE
734b7f7f640Sschwarzestructure.
735b7f7f640SschwarzeNo attempt is made to download CRLs from the CRL distribution points
736b7f7f640Sschwarzeextension.
737