]> git.ipfire.org Git - thirdparty/openssl.git/blame - doc/apps/verify.pod
Fix nits in pod files.
[thirdparty/openssl.git] / doc / apps / verify.pod
CommitLineData
13938ace
DSH
1=pod
2
3=head1 NAME
4
fa1194d3 5verify - Utility to verify certificates.
13938ace
DSH
6
7=head1 SYNOPSIS
8
9B<openssl> B<verify>
169394d4 10[B<-help>]
13938ace 11[B<-CAfile file>]
2866441a 12[B<-CApath directory>]
40e2d76b
MC
13[B<-no-CAfile>]
14[B<-no-CApath>]
2866441a 15[B<-attime timestamp>]
cd028c8e 16[B<-check_ss_sig>]
8332f91c 17[B<-CRLfile file>]
79a55b1f 18[B<-crl_download>]
e5fa864f
DSH
19[B<-crl_check>]
20[B<-crl_check_all>]
feb2f53e 21[B<-engine id>]
e5fa864f 22[B<-explicit_policy>]
e5fa864f 23[B<-extended_crl>]
2866441a
HK
24[B<-ignore_critical>]
25[B<-inhibit_any>]
26[B<-inhibit_map>]
5a1f853b 27[B<-no_check_time>]
cd028c8e 28[B<-partial_chain>]
2866441a
HK
29[B<-policy arg>]
30[B<-policy_check>]
31[B<-policy_print>]
32[B<-purpose purpose>]
cd028c8e
HK
33[B<-suiteB_128>]
34[B<-suiteB_128_only>]
35[B<-suiteB_192>]
2866441a 36[B<-trusted_first>]
fa7b0111 37[B<-no_alt_chains>]
2866441a 38[B<-untrusted file>]
79a55b1f 39[B<-trusted file>]
2866441a 40[B<-use_deltas>]
13938ace 41[B<-verbose>]
fbb82a60 42[B<-auth_level level>]
cd028c8e
HK
43[B<-verify_depth num>]
44[B<-verify_email email>]
45[B<-verify_hostname hostname>]
46[B<-verify_ip ip>]
47[B<-verify_name name>]
2866441a 48[B<-x509_strict>]
7f3f41d8 49[B<-show_chain>]
13938ace
DSH
50[B<->]
51[certificates]
52
13938ace
DSH
53=head1 DESCRIPTION
54
55The B<verify> command verifies certificate chains.
56
57=head1 COMMAND OPTIONS
58
59=over 4
60
169394d4
MR
61=item B<-help>
62
63Print out a usage message.
64
2866441a
HK
65=item B<-CAfile file>
66
feb2f53e
VD
67A B<file> of trusted certificates.
68The file should contain one or more certificates in PEM format.
2866441a 69
13938ace
DSH
70=item B<-CApath directory>
71
72A directory of trusted certificates. The certificates should have names
73of the form: hash.0 or have symbolic links to them of this
74form ("hash" is the hashed certificate subject name: see the B<-hash> option
75of the B<x509> utility). Under Unix the B<c_rehash> script will automatically
76create symbolic links to a directory of certificates.
77
40e2d76b
MC
78=item B<-no-CAfile>
79
80Do not load the trusted CA certificates from the default file location
81
82=item B<-no-CApath>
83
84Do not load the trusted CA certificates from the default directory location
85
2866441a 86=item B<-attime timestamp>
13938ace 87
2866441a
HK
88Perform validation checks using time specified by B<timestamp> and not
89current system time. B<timestamp> is the number of seconds since
9001.01.1970 (UNIX time).
13938ace 91
2866441a 92=item B<-check_ss_sig>
13938ace 93
2866441a
HK
94Verify the signature on the self-signed root CA. This is disabled by default
95because it doesn't add any security.
13938ace 96
8332f91c 97=item B<-CRLfile file>
fc1d88f0 98
feb2f53e
VD
99The B<file> should contain one or more CRLs in PEM format.
100This option can be specified more than once to include CRLs from multiple
101B<files>.
fc1d88f0 102
79a55b1f
MC
103=item B<-crl_download>
104
105Attempt to download CRL information for this certificate.
106
2866441a 107=item B<-crl_check>
6d3d5793 108
2866441a
HK
109Checks end entity certificate validity by attempting to look up a valid CRL.
110If a valid CRL cannot be found an error occurs.
6d3d5793 111
2866441a 112=item B<-crl_check_all>
13938ace 113
2866441a
HK
114Checks the validity of B<all> certificates in the chain by attempting
115to look up valid CRLs.
116
feb2f53e
VD
117=item B<-engine id>
118
119Specifying an engine B<id> will cause L<verify(1)> to attempt to load the
120specified engine.
121The engine will then be set as the default for all its supported algorithms.
122If you want to load certificates or CRLs that require engine support via any of
123the B<-trusted>, B<-untrusted> or B<-CRLfile> options, the B<-engine> option
124must be specified before those options.
125
2866441a
HK
126=item B<-explicit_policy>
127
128Set policy variable require-explicit-policy (see RFC5280).
129
130=item B<-extended_crl>
131
132Enable extended CRL features such as indirect CRLs and alternate CRL
133signing keys.
13938ace 134
2866441a 135=item B<-ignore_critical>
13938ace 136
2866441a
HK
137Normally if an unhandled critical extension is present which is not
138supported by OpenSSL the certificate is rejected (as required by RFC5280).
139If this option is set critical extensions are ignored.
140
141=item B<-inhibit_any>
142
143Set policy variable inhibit-any-policy (see RFC5280).
144
145=item B<-inhibit_map>
146
147Set policy variable inhibit-policy-mapping (see RFC5280).
13938ace 148
5a1f853b
RS
149=item B<-no_check_time>
150
1bc74519
RS
151This option suppresses checking the validity period of certificates and CRLs
152against the current time. If option B<-attime timestamp> is used to specify
5a1f853b
RS
153a verification time, the check is not suppressed.
154
2866441a 155=item B<-partial_chain>
9ed03faa 156
feb2f53e
VD
157Allow verification to succeed even if a I<complete> chain cannot be built to a
158self-signed trust-anchor, provided it is possible to construct a chain to a
159trusted certificate that might not be self-signed.
9ed03faa 160
e5fa864f
DSH
161=item B<-policy arg>
162
3a778a29
BL
163Enable policy processing and add B<arg> to the user-initial-policy-set (see
164RFC5280). The policy B<arg> can be an object name an OID in numeric form.
165This argument can appear more than once.
e5fa864f
DSH
166
167=item B<-policy_check>
168
169Enables certificate policy processing.
170
e5fa864f
DSH
171=item B<-policy_print>
172
3a778a29 173Print out diagnostics related to policy processing.
e5fa864f 174
2866441a 175=item B<-purpose purpose>
e5fa864f 176
2866441a
HK
177The intended use for the certificate. If this option is not specified,
178B<verify> will not consider certificate purpose during chain verification.
179Currently accepted uses are B<sslclient>, B<sslserver>, B<nssslserver>,
180B<smimesign>, B<smimeencrypt>. See the B<VERIFY OPERATION> section for more
181information.
e5fa864f 182
2866441a 183=item B<-suiteB_128_only>, B<-suiteB_128>, B<-suiteB_192>
e5fa864f 184
2866441a
HK
185enable the Suite B mode operation at 128 bit Level of Security, 128 bit or
186192 bit, or only 192 bit Level of Security respectively.
187See RFC6460 for details. In particular the supported signature algorithms are
188reduced to support only ECDSA and SHA256 or SHA384 and only the elliptic curves
189P-256 and P-384.
e5fa864f 190
2866441a 191=item B<-trusted_first>
e5fa864f 192
feb2f53e
VD
193When constructing the certificate chain, use the trusted certificates specified
194via B<-CAfile>, B<-CApath> or B<-trusted> before any certificates specified via
195B<-untrusted>.
196This can be useful in environments with Bridge or Cross-Certified CAs.
0daccd4d 197As of OpenSSL 1.1.0 this option is on by default and cannot be disabled.
e5fa864f 198
fa7b0111
MC
199=item B<-no_alt_chains>
200
0daccd4d
VD
201By default, unless B<-trusted_first> is specified, when building a certificate
202chain, if the first certificate chain found is not trusted, then OpenSSL will
203attempt to replace untrusted issuer certificates with certificates from the
204trust store to see if an alternative chain can be found that is trusted.
205As of OpenSSL 1.1.0, with B<-trusted_first> always on, this option has no
206effect.
fa7b0111 207
2866441a 208=item B<-untrusted file>
e5fa864f 209
feb2f53e 210A B<file> of additional untrusted certificates (intermediate issuer CAs) used
35ed393e 211to construct a certificate chain from the subject certificate to a trust-anchor.
feb2f53e
VD
212The B<file> should contain one or more certificates in PEM format.
213This option can be specified more than once to include untrusted certiificates
214from multiple B<files>.
e5fa864f 215
79a55b1f
MC
216=item B<-trusted file>
217
feb2f53e
VD
218A B<file> of trusted certificates, which must be self-signed, unless the
219B<-partial_chain> option is specified.
220The B<file> contain one or more certificates in PEM format.
221With this option, no additional (e.g., default) certificate lists are
222consulted.
223That is, the only trust-anchors are those listed in B<file>.
224This option can be specified more than once to include trusted certificates
225from multiple B<files>.
226This option implies the B<-no-CAfile> and B<-no-CApath> options.
227This option cannot be used in combination with either of the B<-CAfile> or
228B<-CApath> options.
79a55b1f 229
e5fa864f
DSH
230=item B<-use_deltas>
231
232Enable support for delta CRLs.
233
2866441a 234=item B<-verbose>
cd028c8e 235
2866441a 236Print extra information about the operations being performed.
cd028c8e 237
fbb82a60
VD
238=item B<-auth_level level>
239
240Set the certificate chain authentication security level to B<level>.
241The authentication security level determines the acceptable signature and
242public key strength when verifying certificate chains.
243For a certificate chain to validate, the public keys of all the certificates
244must meet the specified security B<level>.
245The signature algorithm security level is enforced for all the certificates in
246the chain except for the chain's I<trust anchor>, which is either directly
247trusted or validated by means other than its signature.
248See L<SSL_CTX_set_security_level(3)> for the definitions of the available
249levels.
250The default security level is -1, or "not set".
251At security level 0 or lower all algorithms are acceptable.
252Security level 1 requires at least 80-bit-equivalent security and is broadly
253interoperable, though it will, for example, reject MD5 signatures or RSA keys
254shorter than 1024 bits.
255
cd028c8e
HK
256=item B<-verify_depth num>
257
fbb82a60
VD
258Limit the certificate chain to B<num> intermediate CA certificates.
259A maximal depth chain can have up to B<num+2> certificates, since neither the
260end-entity certificate nor the trust-anchor certificate count against the
261B<-verify_depth> limit.
cd028c8e
HK
262
263=item B<-verify_email email>
264
265Verify if the B<email> matches the email address in Subject Alternative Name or
115e4809 266the email in the subject Distinguished Name.
cd028c8e
HK
267
268=item B<-verify_hostname hostname>
269
270Verify if the B<hostname> matches DNS name in Subject Alternative Name or
271Common Name in the subject certificate.
272
273=item B<-verify_ip ip>
274
275Verify if the B<ip> matches the IP address in Subject Alternative Name of
276the subject certificate.
277
278=item B<-verify_name name>
279
feb2f53e 280Use default verification policies like trust model and required certificate
cd028c8e 281policies identified by B<name>.
0daccd4d
VD
282The trust model determines which auxiliary trust or reject OIDs are applicable
283to verifying the given certificate chain.
284See the B<-addtrust> and B<-addreject> options of the L<x509(1)> command-line
285utility.
feb2f53e
VD
286Supported policy names include: B<default>, B<pkcs7>, B<smime_sign>,
287B<ssl_client>, B<ssl_server>.
0daccd4d
VD
288These mimics the combinations of purpose and trust settings used in SSL, CMS
289and S/MIME.
290As of OpenSSL 1.1.0, the trust model is inferred from the purpose when not
291specified, so the B<-verify_name> options are functionally equivalent to the
292corresponding B<-purpose> settings.
cd028c8e 293
2866441a
HK
294=item B<-x509_strict>
295
296For strict X.509 compliance, disable non-compliant workarounds for broken
297certificates.
298
7f3f41d8
MC
299=item B<-show_chain>
300
301Display information about the certificate chain that has been built (if
302successful). Certificates in the chain that came from the untrusted list will be
303flagged as "untrusted".
304
13938ace
DSH
305=item B<->
306
3a778a29 307Indicates the last option. All arguments following this are assumed to be
7b418a47
DSH
308certificate files. This is useful if the first certificate filename begins
309with a B<->.
13938ace
DSH
310
311=item B<certificates>
312
3a778a29
BL
313One or more certificates to verify. If no certificates are given, B<verify>
314will attempt to read a certificate from standard input. Certificates must be
315in PEM format.
13938ace
DSH
316
317=back
318
319=head1 VERIFY OPERATION
320
321The B<verify> program uses the same functions as the internal SSL and S/MIME
322verification, therefore this description applies to these verify operations
323too.
324
325There is one crucial difference between the verify operations performed
326by the B<verify> program: wherever possible an attempt is made to continue
327after an error whereas normally the verify operation would halt on the
328first error. This allows all the problems with a certificate chain to be
329determined.
330
331The verify operation consists of a number of separate steps.
332
333Firstly a certificate chain is built up starting from the supplied certificate
feb2f53e
VD
334and ending in the root CA.
335It is an error if the whole chain cannot be built up.
336The chain is built up by looking up the issuers certificate of the current
337certificate.
338If a certificate is found which is its own issuer it is assumed to be the root
339CA.
340
341The process of 'looking up the issuers certificate' itself involves a number of
342steps.
343Ater all certificates whose subject name matches the issuer name of the current
344certificate are subject to further tests.
345The relevant authority key identifier components of the current certificate (if
346present) must match the subject key identifier (if present) and issuer and
347serial number of the candidate issuer, in addition the keyUsage extension of
348the candidate issuer (if present) must permit certificate signing.
709e8595 349
13938ace 350The lookup first looks in the list of untrusted certificates and if no match
19d2bb57 351is found the remaining lookups are from the trusted certificates. The root CA
13938ace
DSH
352is always looked up in the trusted certificate list: if the certificate to
353verify is a root certificate then an exact match must be found in the trusted
354list.
355
356The second operation is to check every untrusted certificate's extensions for
357consistency with the supplied purpose. If the B<-purpose> option is not included
358then no checks are done. The supplied or "leaf" certificate must have extensions
359compatible with the supplied purpose and all other certificates must also be valid
360CA certificates. The precise extensions required are described in more detail in
7b418a47 361the B<CERTIFICATE EXTENSIONS> section of the B<x509> utility.
13938ace 362
feb2f53e
VD
363The third operation is to check the trust settings on the root CA. The root CA
364should be trusted for the supplied purpose.
365For compatibility with previous versions of OpenSSL, a certificate with no
366trust settings is considered to be valid for all purposes.
13938ace
DSH
367
368The final operation is to check the validity of the certificate chain. The validity
369period is checked against the current system time and the notBefore and notAfter
370dates in the certificate. The certificate signatures are also checked at this
371point.
372
373If all operations complete successfully then certificate is considered valid. If
374any operation fails then the certificate is not valid.
375
7b418a47
DSH
376=head1 DIAGNOSTICS
377
378When a verify operation fails the output messages can be somewhat cryptic. The
379general form of the error message is:
380
381 server.pem: /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024 bit)
382 error 24 at 1 depth lookup:invalid CA certificate
383
384The first line contains the name of the certificate being verified followed by
385the subject name of the certificate. The second line contains the error number
386and the depth. The depth is number of the certificate being verified when a
387problem was detected starting with zero for the certificate being verified itself
388then 1 for the CA that signed the certificate and so on. Finally a text version
389of the error number is presented.
390
feb2f53e 391An partial list of the error codes and messages is shown below, this also
7b418a47
DSH
392includes the name of the error code as defined in the header file x509_vfy.h
393Some of the error codes are defined but never returned: these are described
394as "unused".
395
396=over 4
397
398=item B<0 X509_V_OK: ok>
399
400the operation was successful.
401
d33def66
VD
402=item B<1 X509_V_ERR_UNSPECIFIED: unspecified certificate verification error>
403
404unspecified error, should not happen.
405
7b418a47
DSH
406=item B<2 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer certificate>
407
7d3d1788
DSH
408the issuer certificate of a looked up certificate could not be found. This
409normally means the list of trusted certificates is not complete.
7b418a47 410
7c1722c6 411=item B<3 X509_V_ERR_UNABLE_TO_GET_CRL: unable to get certificate CRL>
7b418a47 412
db50661f 413the CRL of a certificate could not be found.
7b418a47
DSH
414
415=item B<4 X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: unable to decrypt certificate's signature>
416
417the certificate signature could not be decrypted. This means that the actual signature value
418could not be determined rather than it not matching the expected value, this is only
419meaningful for RSA keys.
420
19d2bb57 421=item B<5 X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: unable to decrypt CRL's signature>
7b418a47
DSH
422
423the CRL signature could not be decrypted: this means that the actual signature value
424could not be determined rather than it not matching the expected value. Unused.
425
426=item B<6 X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: unable to decode issuer public key>
427
428the public key in the certificate SubjectPublicKeyInfo could not be read.
429
430=item B<7 X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure>
431
432the signature of the certificate is invalid.
433
434=item B<8 X509_V_ERR_CRL_SIGNATURE_FAILURE: CRL signature failure>
435
db50661f 436the signature of the certificate is invalid.
7b418a47
DSH
437
438=item B<9 X509_V_ERR_CERT_NOT_YET_VALID: certificate is not yet valid>
439
440the certificate is not yet valid: the notBefore date is after the current time.
441
e1c279b6 442=item B<10 X509_V_ERR_CERT_HAS_EXPIRED: certificate has expired>
7b418a47 443
e1c279b6 444the certificate has expired: that is the notAfter date is before the current time.
7b418a47 445
e1c279b6 446=item B<11 X509_V_ERR_CRL_NOT_YET_VALID: CRL is not yet valid>
7b418a47 447
db50661f 448the CRL is not yet valid.
7b418a47
DSH
449
450=item B<12 X509_V_ERR_CRL_HAS_EXPIRED: CRL has expired>
451
db50661f 452the CRL has expired.
7b418a47
DSH
453
454=item B<13 X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: format error in certificate's notBefore field>
455
456the certificate notBefore field contains an invalid time.
13938ace 457
7b418a47
DSH
458=item B<14 X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: format error in certificate's notAfter field>
459
460the certificate notAfter field contains an invalid time.
461
462=item B<15 X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: format error in CRL's lastUpdate field>
463
db50661f 464the CRL lastUpdate field contains an invalid time.
7b418a47
DSH
465
466=item B<16 X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: format error in CRL's nextUpdate field>
467
db50661f 468the CRL nextUpdate field contains an invalid time.
7b418a47
DSH
469
470=item B<17 X509_V_ERR_OUT_OF_MEM: out of memory>
471
19d2bb57 472an error occurred trying to allocate memory. This should never happen.
7b418a47
DSH
473
474=item B<18 X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: self signed certificate>
475
476the passed certificate is self signed and the same certificate cannot be found in the list of
477trusted certificates.
478
479=item B<19 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: self signed certificate in certificate chain>
480
481the certificate chain could be built up using the untrusted certificates but the root could not
482be found locally.
483
484=item B<20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: unable to get local issuer certificate>
485
7d3d1788
DSH
486the issuer certificate could not be found: this occurs if the issuer
487certificate of an untrusted certificate cannot be found.
7b418a47
DSH
488
489=item B<21 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate>
490
491no signatures could be verified because the chain contains only one certificate and it is not
492self signed.
493
494=item B<22 X509_V_ERR_CERT_CHAIN_TOO_LONG: certificate chain too long>
495
496the certificate chain length is greater than the supplied maximum depth. Unused.
497
498=item B<23 X509_V_ERR_CERT_REVOKED: certificate revoked>
499
db50661f 500the certificate has been revoked.
7b418a47
DSH
501
502=item B<24 X509_V_ERR_INVALID_CA: invalid CA certificate>
503
504a CA certificate is invalid. Either it is not a CA or its extensions are not consistent
505with the supplied purpose.
506
507=item B<25 X509_V_ERR_PATH_LENGTH_EXCEEDED: path length constraint exceeded>
508
509the basicConstraints pathlength parameter has been exceeded.
510
511=item B<26 X509_V_ERR_INVALID_PURPOSE: unsupported certificate purpose>
512
513the supplied certificate cannot be used for the specified purpose.
514
515=item B<27 X509_V_ERR_CERT_UNTRUSTED: certificate not trusted>
516
517the root CA is not marked as trusted for the specified purpose.
518
519=item B<28 X509_V_ERR_CERT_REJECTED: certificate rejected>
520
521the root CA is marked to reject the specified purpose.
522
709e8595
DSH
523=item B<29 X509_V_ERR_SUBJECT_ISSUER_MISMATCH: subject issuer mismatch>
524
d33def66
VD
525Not used as of OpenSSL 1.1.0 as a result of the deprecation of the
526B<-issuer_checks> option.
709e8595
DSH
527
528=item B<30 X509_V_ERR_AKID_SKID_MISMATCH: authority and subject key identifier mismatch>
529
d33def66
VD
530Not used as of OpenSSL 1.1.0 as a result of the deprecation of the
531B<-issuer_checks> option.
709e8595
DSH
532
533=item B<31 X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: authority and issuer serial number mismatch>
534
d33def66
VD
535Not used as of OpenSSL 1.1.0 as a result of the deprecation of the
536B<-issuer_checks> option.
537
538=item B<32 X509_V_ERR_KEYUSAGE_NO_CERTSIGN: key usage does not include certificate signing>
539
540Not used as of OpenSSL 1.1.0 as a result of the deprecation of the
541B<-issuer_checks> option.
542
543=item B<33 X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER: unable to get CRL issuer certificate>
544
545TBA
546
547=item B<34 X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION: unhandled critical extension>
548
549TBA
550
551=item B<35 X509_V_ERR_KEYUSAGE_NO_CRL_SIGN: key usage does not include CRL signing>
552
553TBA
554
555=item B<36 X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION: unhandled critical CRL extension>
556
557TBA
558
559=item B<37 X509_V_ERR_INVALID_NON_CA: invalid non-CA certificate has CA markings>
560
561TBA
562
563=item B<38 X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED: proxy path length constraint exceeded>
564
565TBA
566
567=item B<39 X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE: key usage does not include digital signature>
568
569TBA
570
571=item B<40 X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED: proxy certificates not allowed, please set the appropriate flag>
572
573TBA
574
575=item B<41 X509_V_ERR_INVALID_EXTENSION: invalid or inconsistent certificate extension>
576
577TBA
578
579=item B<42 X509_V_ERR_INVALID_POLICY_EXTENSION: invalid or inconsistent certificate policy extension>
580
581TBA
582
583=item B<43 X509_V_ERR_NO_EXPLICIT_POLICY: no explicit policy>
584
585TBA
586
587=item B<44 X509_V_ERR_DIFFERENT_CRL_SCOPE: Different CRL scope>
588
589TBA
590
591=item B<45 X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE: Unsupported extension feature>
592
593TBA
594
595=item B<46 X509_V_ERR_UNNESTED_RESOURCE: RFC 3779 resource not subset of parent's resources>
596
597TBA
598
599=item B<47 X509_V_ERR_PERMITTED_VIOLATION: permitted subtree violation>
709e8595 600
d33def66 601TBA
709e8595 602
d33def66
VD
603=item B<48 X509_V_ERR_EXCLUDED_VIOLATION: excluded subtree violation>
604
605TBA
606
607=item B<49 X509_V_ERR_SUBTREE_MINMAX: name constraints minimum and maximum not supported>
608
609TBA
709e8595 610
7b418a47
DSH
611=item B<50 X509_V_ERR_APPLICATION_VERIFICATION: application verification failure>
612
613an application specific error. Unused.
614
d33def66
VD
615=item B<51 X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE: unsupported name constraint type>
616
617TBA
618
619=item B<52 X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX: unsupported or invalid name constraint syntax>
620
621TBA
622
623=item B<53 X509_V_ERR_UNSUPPORTED_NAME_SYNTAX: unsupported or invalid name syntax>
624
625TBA
626
627=item B<54 X509_V_ERR_CRL_PATH_VALIDATION_ERROR: CRL path validation error>
628
629TBA
630
631=item B<55 X509_V_ERR_PATH_LOOP: Path Loop>
632
633TBA
634
635=item B<56 X509_V_ERR_SUITE_B_INVALID_VERSION: Suite B: certificate version invalid>
636
637TBA
638
639=item B<57 X509_V_ERR_SUITE_B_INVALID_ALGORITHM: Suite B: invalid public key algorithm>
640
641TBA
642
643=item B<58 X509_V_ERR_SUITE_B_INVALID_CURVE: Suite B: invalid ECC curve>
644
645TBA
646
647=item B<59 X509_V_ERR_SUITE_B_INVALID_SIGNATURE_ALGORITHM: Suite B: invalid signature algorithm>
648
649TBA
650
651=item B<60 X509_V_ERR_SUITE_B_LOS_NOT_ALLOWED: Suite B: curve not allowed for this LOS>
652
653TBA
654
655=item B<61 X509_V_ERR_SUITE_B_CANNOT_SIGN_P_384_WITH_P_256: Suite B: cannot sign P-384 with P-256>
656
657TBA
658
659=item B<62 X509_V_ERR_HOSTNAME_MISMATCH: Hostname mismatch>
660
661TBA
662
663=item B<63 X509_V_ERR_EMAIL_MISMATCH: Email address mismatch>
664
665TBA
666
667=item B<64 X509_V_ERR_IP_ADDRESS_MISMATCH: IP address mismatch>
668
669TBA
670
671=item B<65 X509_V_ERR_DANE_NO_MATCH: No matching DANE TLSA records>
672
673DANE TLSA authentication is enabled, but no TLSA records matched the
674certificate chain.
675This error is only possible in L<s_client(1)>.
676
7b418a47 677=back
13938ace 678
709e8595
DSH
679=head1 BUGS
680
2af071c0 681Although the issuer checks are a considerable improvement over the old technique they still
709e8595
DSH
682suffer from limitations in the underlying X509_LOOKUP API. One consequence of this is that
683trusted certificates with matching subject name must either appear in a file (as specified by the
115e4809 684B<-CAfile> option) or a directory (as specified by B<-CApath>). If they occur in both then only
709e8595
DSH
685the certificates in the file will be recognised.
686
687Previous versions of OpenSSL assume certificates with matching subject name are identical and
688mishandled them.
689
7d3d1788
DSH
690Previous versions of this documentation swapped the meaning of the
691B<X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT> and
692B<20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY> error codes.
693
13938ace
DSH
694=head1 SEE ALSO
695
9b86974e 696L<x509(1)>
13938ace 697
fa7b0111
MC
698=head1 HISTORY
699
d33def66
VD
700The B<-show_chain> option was first added to OpenSSL 1.1.0.
701
702The B<-issuer_checks> option is deprecated as of OpenSSL 1.1.0 and
703is silently ignored.
fa7b0111 704
13938ace 705=cut
e2f92610
RS
706
707=head1 COPYRIGHT
708
709Copyright 2000-2016 The OpenSSL Project Authors. All Rights Reserved.
710
711Licensed under the OpenSSL license (the "License"). You may not use
712this file except in compliance with the License. You can obtain a copy
713in the file LICENSE in the source distribution or at
714L<https://www.openssl.org/source/license.html>.
715
716=cut