summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorjmc <>2016-09-19 12:55:04 +0000
committerjmc <>2016-09-19 12:55:04 +0000
commit9a3e14d8a3707ae4c966138df77487a25a64559c (patch)
tree12715f26986d451eeabb34bea3979bc194d21ee2
parent79f8829eee2dc7ce0238fc92164da407cd8664dd (diff)
downloadopenbsd-9a3e14d8a3707ae4c966138df77487a25a64559c.tar.gz
openbsd-9a3e14d8a3707ae4c966138df77487a25a64559c.tar.bz2
openbsd-9a3e14d8a3707ae4c966138df77487a25a64559c.zip
shorten verify;
-rw-r--r--src/usr.bin/openssl/openssl.1250
1 files changed, 96 insertions, 154 deletions
diff --git a/src/usr.bin/openssl/openssl.1 b/src/usr.bin/openssl/openssl.1
index 7983e2671c..b23c64a0a0 100644
--- a/src/usr.bin/openssl/openssl.1
+++ b/src/usr.bin/openssl/openssl.1
@@ -1,4 +1,4 @@
1.\" $OpenBSD: openssl.1,v 1.75 2016/09/17 15:10:50 deraadt Exp $ 1.\" $OpenBSD: openssl.1,v 1.76 2016/09/19 12:55:04 jmc Exp $
2.\" ==================================================================== 2.\" ====================================================================
3.\" Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved. 3.\" Copyright (c) 1998-2002 The OpenSSL Project. All rights reserved.
4.\" 4.\"
@@ -112,7 +112,7 @@
112.\" 112.\"
113.\" OPENSSL 113.\" OPENSSL
114.\" 114.\"
115.Dd $Mdocdate: September 17 2016 $ 115.Dd $Mdocdate: September 19 2016 $
116.Dt OPENSSL 1 116.Dt OPENSSL 1
117.Os 117.Os
118.Sh NAME 118.Sh NAME
@@ -4687,7 +4687,7 @@ The number of bytes must match the message digest algorithm in use.
4687A previously created time stamp request in DER 4687A previously created time stamp request in DER
4688format that will be printed into the output file. 4688format that will be printed into the output file.
4689Useful for examining the content of a request in human-readable format. 4689Useful for examining the content of a request in human-readable format.
4690.It Fl md4|md5|ripemd160|sha|sha1 4690.It Fl md4 | md5 | ripemd160 | sha | sha1
4691The message digest to apply to the data file. 4691The message digest to apply to the data file.
4692It supports all the message digest algorithms that are supported by the 4692It supports all the message digest algorithms that are supported by the
4693.Nm dgst 4693.Nm dgst
@@ -5004,13 +5004,9 @@ containing the SPKAC.
5004.It Fl verify 5004.It Fl verify
5005Verify the digital signature on the supplied SPKAC. 5005Verify the digital signature on the supplied SPKAC.
5006.El 5006.El
5007.\"
5008.\" VERIFY
5009.\"
5010.Sh VERIFY 5007.Sh VERIFY
5011.nr nS 1 5008.nr nS 1
5012.Nm "openssl verify" 5009.Nm "openssl verify"
5013.Bk -words
5014.Op Fl CAfile Ar file 5010.Op Fl CAfile Ar file
5015.Op Fl CApath Ar directory 5011.Op Fl CApath Ar directory
5016.Op Fl check_ss_sig 5012.Op Fl check_ss_sig
@@ -5028,9 +5024,7 @@ Verify the digital signature on the supplied SPKAC.
5028.Op Fl untrusted Ar file 5024.Op Fl untrusted Ar file
5029.Op Fl verbose 5025.Op Fl verbose
5030.Op Fl x509_strict 5026.Op Fl x509_strict
5031.Op Fl
5032.Op Ar certificates 5027.Op Ar certificates
5033.Ek
5034.nr nS 0 5028.nr nS 0
5035.Pp 5029.Pp
5036The 5030The
@@ -5054,63 +5048,55 @@ should contain multiple certificates in PEM format, concatenated together.
5054A 5048A
5055.Ar directory 5049.Ar directory
5056of trusted certificates. 5050of trusted certificates.
5057The certificates should have names of the form 5051The certificates, or symbolic links to them,
5058.Em hash.0 , 5052should have names of the form
5059or have symbolic links to them of this form 5053.Ar hash Ns .0 ,
5060("hash" is the hashed certificate subject name: see the 5054where
5055.Ar hash
5056is the hashed certificate subject name
5057(see the
5061.Fl hash 5058.Fl hash
5062option of the 5059option of the
5063.Nm x509 5060.Nm x509
5064utility). 5061utility).
5065The
5066.Nm c_rehash
5067script distributed with OpenSSL
5068will automatically create symbolic links to a directory of certificates.
5069.It Fl crl_check 5062.It Fl crl_check
5070Checks end entity certificate validity by attempting to look up a valid CRL. 5063Check end entity certificate validity by attempting to look up a valid CRL.
5071If a valid CRL cannot be found an error occurs. 5064If a valid CRL cannot be found an error occurs.
5072.It Fl crl_check_all 5065.It Fl crl_check_all
5073Checks the validity of all certificates in the chain by attempting 5066Check the validity of all certificates in the chain by attempting
5074to look up valid CRLs. 5067to look up valid CRLs.
5075.It Fl explicit_policy 5068.It Fl explicit_policy
5076Set policy variable require-explicit-policy (see RFC 3280 et al). 5069Set policy variable require-explicit-policy (RFC 3280).
5077.It Fl extended_crl 5070.It Fl extended_crl
5078Enable extended CRL features such as indirect CRLs and alternate CRL 5071Enable extended CRL features such as indirect CRLs and alternate CRL
5079signing keys. 5072signing keys.
5080.It Fl help 5073.It Fl help
5081Prints out a usage message. 5074Print a usage message.
5082.It Fl ignore_critical 5075.It Fl ignore_critical
5083Normally if an unhandled critical extension is present which is not 5076Ignore critical extensions instead of rejecting the certificate.
5084supported by
5085.Nm OpenSSL ,
5086the certificate is rejected (as required by RFC 3280 et al).
5087If this option is set, critical extensions are ignored.
5088.It Fl inhibit_any 5077.It Fl inhibit_any
5089Set policy variable inhibit-any-policy (see RFC 3280 et al). 5078Set policy variable inhibit-any-policy (RFC 3280).
5090.It Fl inhibit_map 5079.It Fl inhibit_map
5091Set policy variable inhibit-policy-mapping (see RFC 3280 et al). 5080Set policy variable inhibit-policy-mapping (RFC 3280).
5092.It Fl issuer_checks 5081.It Fl issuer_checks
5093Print out diagnostics relating to searches for the issuer certificate 5082Print diagnostics relating to searches for the issuer certificate
5094of the current certificate. 5083of the current certificate
5095This shows why each candidate issuer certificate was rejected. 5084showing why each candidate issuer certificate was rejected.
5096However the presence of rejection messages 5085The presence of rejection messages
5097does not itself imply that anything is wrong: during the normal 5086does not itself imply that anything is wrong:
5098verify process several rejections may take place. 5087during the normal verify process several rejections may take place.
5099.It Fl policy_check 5088.It Fl policy_check
5100Enables certificate policy processing. 5089Enable certificate policy processing.
5101.It Fl purpose Ar purpose 5090.It Fl purpose Ar purpose
5102The intended use for the certificate. 5091The intended use for the certificate.
5103Without this option no chain verification will be done. 5092Without this option no chain verification will be done.
5104Currently accepted uses are 5093Currently accepted uses are
5105.Ar sslclient , sslserver , 5094.Cm sslclient , sslserver ,
5106.Ar nssslserver , smimesign , 5095.Cm nssslserver , smimesign ,
5107.Ar smimeencrypt , crlsign , 5096.Cm smimeencrypt , crlsign ,
5108.Ar any , 5097.Cm any ,
5109and 5098and
5110.Ar ocsphelper . 5099.Cm ocsphelper .
5111See the
5112.Sx VERIFY OPERATION
5113section for more information.
5114.It Fl untrusted Ar file 5100.It Fl untrusted Ar file
5115A 5101A
5116.Ar file 5102.Ar file
@@ -5123,35 +5109,25 @@ Print extra information about the operations being performed.
5123.It Fl x509_strict 5109.It Fl x509_strict
5124Disable workarounds for broken certificates which have to be disabled 5110Disable workarounds for broken certificates which have to be disabled
5125for strict X.509 compliance. 5111for strict X.509 compliance.
5126.It Fl
5127Marks the last option.
5128All arguments following this are assumed to be certificate files.
5129This is useful if the first certificate filename begins with a
5130.Sq - .
5131.It Ar certificates 5112.It Ar certificates
5132One or more 5113One or more PEM
5133.Ar certificates 5114.Ar certificates
5134to verify. 5115to verify.
5135If no certificate files are included, an attempt is made to read 5116If no certificate files are included, an attempt is made to read
5136a certificate from standard input. 5117a certificate from standard input.
5137They should all be in PEM format. 5118If the first certificate filename begins with a dash,
5119use a lone dash to mark the last option.
5138.El 5120.El
5139.Sh VERIFY OPERATION 5121.Pp
5140The 5122The
5141.Nm verify 5123.Nm verify
5142program uses the same functions as the internal SSL and S/MIME verification, 5124program uses the same functions as the internal SSL and S/MIME verification,
5143therefore this description applies to these verify operations too. 5125with one crucial difference:
5144.Pp 5126wherever possible an attempt is made to continue after an error,
5145There is one crucial difference between the verify operations performed 5127whereas normally the verify operation would halt on the first error.
5146by the
5147.Nm verify
5148program: wherever possible an attempt is made to continue
5149after an error, whereas normally the verify operation would halt on the
5150first error.
5151This allows all the problems with a certificate chain to be determined. 5128This allows all the problems with a certificate chain to be determined.
5152.Pp 5129.Pp
5153The verify operation consists of a number of separate steps: 5130The verify operation consists of a number of separate steps.
5154.Pp
5155Firstly a certificate chain is built up starting from the supplied certificate 5131Firstly a certificate chain is built up starting from the supplied certificate
5156and ending in the root CA. 5132and ending in the root CA.
5157It is an error if the whole chain cannot be built up. 5133It is an error if the whole chain cannot be built up.
@@ -5160,32 +5136,20 @@ certificate.
5160If a certificate is found which is its own issuer, it is assumed 5136If a certificate is found which is its own issuer, it is assumed
5161to be the root CA. 5137to be the root CA.
5162.Pp 5138.Pp
5163The process of 5139All certificates whose subject name matches the issuer name
5164.Qq looking up the issuer's certificate
5165itself involves a number of steps.
5166In versions of
5167.Nm OpenSSL
5168before 0.9.5a the first certificate whose subject name matched the issuer
5169of the current certificate was assumed to be the issuer's certificate.
5170In
5171.Nm OpenSSL
51720.9.6 and later all certificates whose subject name matches the issuer name
5173of the current certificate are subject to further tests. 5140of the current certificate are subject to further tests.
5174The relevant authority key identifier components of the current certificate 5141The relevant authority key identifier components of the current certificate
5175.Pq if present 5142(if present) must match the subject key identifier (if present)
5176must match the subject key identifier 5143and issuer and serial number of the candidate issuer;
5177.Pq if present 5144in addition the
5178and issuer and serial number of the candidate issuer; in addition the 5145.Cm keyUsage
5179.Em keyUsage 5146extension of the candidate issuer (if present) must permit certificate signing.
5180extension of the candidate issuer
5181.Pq if present
5182must permit certificate signing.
5183.Pp 5147.Pp
5184The lookup first looks in the list of untrusted certificates and if no match 5148The lookup first looks in the list of untrusted certificates and if no match
5185is found the remaining lookups are from the trusted certificates. 5149is found the remaining lookups are from the trusted certificates.
5186The root CA is always looked up in the trusted certificate list: if the 5150The root CA is always looked up in the trusted certificate list:
5187certificate to verify is a root certificate, then an exact match must be 5151if the certificate to verify is a root certificate,
5188found in the trusted list. 5152then an exact match must be found in the trusted list.
5189.Pp 5153.Pp
5190The second operation is to check every untrusted certificate's extensions for 5154The second operation is to check every untrusted certificate's extensions for
5191consistency with the supplied purpose. 5155consistency with the supplied purpose.
@@ -5198,35 +5162,30 @@ certificate must have extensions compatible with the supplied purpose
5198and all other certificates must also be valid CA certificates. 5162and all other certificates must also be valid CA certificates.
5199The precise extensions required are described in more detail in 5163The precise extensions required are described in more detail in
5200the 5164the
5201.Sx X.509 CERTIFICATE EXTENSIONS 5165.Nm X509
5202section below. 5166section below.
5203.Pp 5167.Pp
5204The third operation is to check the trust settings on the root CA. 5168The third operation is to check the trust settings on the root CA.
5205The root CA should be trusted for the supplied purpose. 5169The root CA should be trusted for the supplied purpose.
5206For compatibility with previous versions of 5170A certificate with no trust settings is considered to be valid for
5207.Nm SSLeay
5208and
5209.Nm OpenSSL ,
5210a certificate with no trust settings is considered to be valid for
5211all purposes. 5171all purposes.
5212.Pp 5172.Pp
5213The final operation is to check the validity of the certificate chain. 5173The final operation is to check the validity of the certificate chain.
5214The validity period is checked against the current system time and the 5174The validity period is checked against the current system time and the
5215.Em notBefore 5175.Cm notBefore
5216and 5176and
5217.Em notAfter 5177.Cm notAfter
5218dates in the certificate. 5178dates in the certificate.
5219The certificate signatures are also checked at this point. 5179The certificate signatures are also checked at this point.
5220.Pp 5180.Pp
5221If all operations complete successfully, the certificate is considered 5181If all operations complete successfully, the certificate is considered
5222valid. 5182valid.
5223If any operation fails then the certificate is not valid. 5183If any operation fails then the certificate is not valid.
5224.Sh VERIFY DIAGNOSTICS
5225When a verify operation fails, the output messages can be somewhat cryptic. 5184When a verify operation fails, the output messages can be somewhat cryptic.
5226The general form of the error message is: 5185The general form of the error message is:
5227.Bd -unfilled 5186.Bd -literal
5228\& server.pem: /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024-bit) 5187server.pem: /C=AU/ST=Queensland/O=CryptSoft Pty Ltd/CN=Test CA (1024-bit)
5229\& error 24 at 1 depth lookup:invalid CA certificate 5188error 24 at 1 depth lookup:invalid CA certificate
5230.Ed 5189.Ed
5231.Pp 5190.Pp
5232The first line contains the name of the certificate being verified, followed by 5191The first line contains the name of the certificate being verified, followed by
@@ -5240,141 +5199,124 @@ Finally a text version of the error number is presented.
5240An exhaustive list of the error codes and messages is shown below; this also 5199An exhaustive list of the error codes and messages is shown below; this also
5241includes the name of the error code as defined in the header file 5200includes the name of the error code as defined in the header file
5242.In openssl/x509_vfy.h . 5201.In openssl/x509_vfy.h .
5243Some of the error codes are defined but never returned: these are described 5202Some of the error codes are defined but never returned: these are described as
5244as
5245.Qq unused . 5203.Qq unused .
5246.Bl -tag -width "XXXX" 5204.Bl -tag -width "XXXX"
5247.It Ar "0 X509_V_OK: ok" 5205.It "0 X509_V_OK: ok"
5248The operation was successful. 5206The operation was successful.
5249.It Ar 2 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer certificate 5207.It 2 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT: unable to get issuer certificate
5250The issuer certificate could not be found: this occurs if the issuer certificate 5208The issuer certificate could not be found: this occurs if the issuer certificate
5251of an untrusted certificate cannot be found. 5209of an untrusted certificate cannot be found.
5252.It Ar 3 X509_V_ERR_UNABLE_TO_GET_CRL: unable to get certificate CRL 5210.It 3 X509_V_ERR_UNABLE_TO_GET_CRL: unable to get certificate CRL
5253The CRL of a certificate could not be found. 5211The CRL of a certificate could not be found.
5254.It Ar 4 X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: unable to decrypt certificate's signature 5212.It 4 X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE: unable to decrypt certificate's signature
5255The certificate signature could not be decrypted. 5213The certificate signature could not be decrypted.
5256This means that the actual signature value could not be determined rather 5214This means that the actual signature value could not be determined rather
5257than it not matching the expected value. 5215than it not matching the expected value.
5258This is only meaningful for RSA keys. 5216This is only meaningful for RSA keys.
5259.It Ar 5 X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: unable to decrypt CRL's signature 5217.It 5 X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE: unable to decrypt CRL's signature
5260The CRL signature could not be decrypted: this means that the actual 5218The CRL signature could not be decrypted: this means that the actual
5261signature value could not be determined rather than it not matching the 5219signature value could not be determined rather than it not matching the
5262expected value. 5220expected value.
5263Unused. 5221Unused.
5264.It Ar 6 X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: unable to decode issuer public key 5222.It 6 X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY: unable to decode issuer public key
5265The public key in the certificate 5223The public key in the certificate
5266.Em SubjectPublicKeyInfo 5224.Cm SubjectPublicKeyInfo
5267could not be read. 5225could not be read.
5268.It Ar 7 X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure 5226.It 7 X509_V_ERR_CERT_SIGNATURE_FAILURE: certificate signature failure
5269The signature of the certificate is invalid. 5227The signature of the certificate is invalid.
5270.It Ar 8 X509_V_ERR_CRL_SIGNATURE_FAILURE: CRL signature failure 5228.It 8 X509_V_ERR_CRL_SIGNATURE_FAILURE: CRL signature failure
5271The signature of the certificate is invalid. 5229The signature of the certificate is invalid.
5272.It Ar 9 X509_V_ERR_CERT_NOT_YET_VALID: certificate is not yet valid 5230.It 9 X509_V_ERR_CERT_NOT_YET_VALID: certificate is not yet valid
5273The certificate is not yet valid: the 5231The certificate is not yet valid: the
5274.Em notBefore 5232.Cm notBefore
5275date is after the current time. 5233date is after the current time.
5276.It Ar 10 X509_V_ERR_CERT_HAS_EXPIRED: certificate has expired 5234.It 10 X509_V_ERR_CERT_HAS_EXPIRED: certificate has expired
5277The certificate has expired; that is, the 5235The certificate has expired; that is, the
5278.Em notAfter 5236.Cm notAfter
5279date is before the current time. 5237date is before the current time.
5280.It Ar 11 X509_V_ERR_CRL_NOT_YET_VALID: CRL is not yet valid 5238.It 11 X509_V_ERR_CRL_NOT_YET_VALID: CRL is not yet valid
5281The CRL is not yet valid. 5239The CRL is not yet valid.
5282.It Ar 12 X509_V_ERR_CRL_HAS_EXPIRED: CRL has expired 5240.It 12 X509_V_ERR_CRL_HAS_EXPIRED: CRL has expired
5283The CRL has expired. 5241The CRL has expired.
5284.It Ar 13 X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: format error in certificate's notBefore field 5242.It 13 X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD: format error in certificate's notBefore field
5285The certificate 5243The certificate
5286.Em notBefore 5244.Cm notBefore
5287field contains an invalid time. 5245field contains an invalid time.
5288.It Ar 14 X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: format error in certificate's notAfter field 5246.It 14 X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD: format error in certificate's notAfter field
5289The certificate 5247The certificate
5290.Em notAfter 5248.Cm notAfter
5291field contains an invalid time. 5249field contains an invalid time.
5292.It Ar 15 X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: format error in CRL's lastUpdate field 5250.It 15 X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD: format error in CRL's lastUpdate field
5293The CRL 5251The CRL
5294.Em lastUpdate 5252.Cm lastUpdate
5295field contains an invalid time. 5253field contains an invalid time.
5296.It Ar 16 X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: format error in CRL's nextUpdate field 5254.It 16 X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD: format error in CRL's nextUpdate field
5297The CRL 5255The CRL
5298.Em nextUpdate 5256.Cm nextUpdate
5299field contains an invalid time. 5257field contains an invalid time.
5300.It Ar 17 X509_V_ERR_OUT_OF_MEM: out of memory 5258.It 17 X509_V_ERR_OUT_OF_MEM: out of memory
5301An error occurred trying to allocate memory. 5259An error occurred trying to allocate memory.
5302This should never happen. 5260This should never happen.
5303.It Ar 18 X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: self signed certificate 5261.It 18 X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT: self signed certificate
5304The passed certificate is self-signed and the same certificate cannot be 5262The passed certificate is self-signed and the same certificate cannot be
5305found in the list of trusted certificates. 5263found in the list of trusted certificates.
5306.It Ar 19 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: self signed certificate in certificate chain 5264.It 19 X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN: self signed certificate in certificate chain
5307The certificate chain could be built up using the untrusted certificates but 5265The certificate chain could be built up using the untrusted certificates but
5308the root could not be found locally. 5266the root could not be found locally.
5309.It Ar 20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: unable to get local issuer certificate 5267.It 20 X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY: unable to get local issuer certificate
5310The issuer certificate of a locally looked up certificate could not be found. 5268The issuer certificate of a locally looked up certificate could not be found.
5311This normally means the list of trusted certificates is not complete. 5269This normally means the list of trusted certificates is not complete.
5312.It Ar 21 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate 5270.It 21 X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE: unable to verify the first certificate
5313No signatures could be verified because the chain contains only one 5271No signatures could be verified because the chain contains only one
5314certificate and it is not self-signed. 5272certificate and it is not self-signed.
5315.It Ar 22 X509_V_ERR_CERT_CHAIN_TOO_LONG: certificate chain too long 5273.It 22 X509_V_ERR_CERT_CHAIN_TOO_LONG: certificate chain too long
5316The certificate chain length is greater than the supplied maximum depth. 5274The certificate chain length is greater than the supplied maximum depth.
5317Unused. 5275Unused.
5318.It Ar 23 X509_V_ERR_CERT_REVOKED: certificate revoked 5276.It 23 X509_V_ERR_CERT_REVOKED: certificate revoked
5319The certificate has been revoked. 5277The certificate has been revoked.
5320.It Ar 24 X509_V_ERR_INVALID_CA: invalid CA certificate 5278.It 24 X509_V_ERR_INVALID_CA: invalid CA certificate
5321A CA certificate is invalid. 5279A CA certificate is invalid.
5322Either it is not a CA or its extensions are not consistent 5280Either it is not a CA or its extensions are not consistent
5323with the supplied purpose. 5281with the supplied purpose.
5324.It Ar 25 X509_V_ERR_PATH_LENGTH_EXCEEDED: path length constraint exceeded 5282.It 25 X509_V_ERR_PATH_LENGTH_EXCEEDED: path length constraint exceeded
5325The 5283The
5326.Em basicConstraints 5284.Cm basicConstraints
5327pathlength parameter has been exceeded. 5285pathlength parameter has been exceeded.
5328.It Ar 26 X509_V_ERR_INVALID_PURPOSE: unsupported certificate purpose 5286.It 26 X509_V_ERR_INVALID_PURPOSE: unsupported certificate purpose
5329The supplied certificate cannot be used for the specified purpose. 5287The supplied certificate cannot be used for the specified purpose.
5330.It Ar 27 X509_V_ERR_CERT_UNTRUSTED: certificate not trusted 5288.It 27 X509_V_ERR_CERT_UNTRUSTED: certificate not trusted
5331The root CA is not marked as trusted for the specified purpose. 5289The root CA is not marked as trusted for the specified purpose.
5332.It Ar 28 X509_V_ERR_CERT_REJECTED: certificate rejected 5290.It 28 X509_V_ERR_CERT_REJECTED: certificate rejected
5333The root CA is marked to reject the specified purpose. 5291The root CA is marked to reject the specified purpose.
5334.It Ar 29 X509_V_ERR_SUBJECT_ISSUER_MISMATCH: subject issuer mismatch 5292.It 29 X509_V_ERR_SUBJECT_ISSUER_MISMATCH: subject issuer mismatch
5335The current candidate issuer certificate was rejected because its subject name 5293The current candidate issuer certificate was rejected because its subject name
5336did not match the issuer name of the current certificate. 5294did not match the issuer name of the current certificate.
5337Only displayed when the 5295Only displayed when the
5338.Fl issuer_checks 5296.Fl issuer_checks
5339option is set. 5297option is set.
5340.It Ar 30 X509_V_ERR_AKID_SKID_MISMATCH: authority and subject key identifier mismatch 5298.It 30 X509_V_ERR_AKID_SKID_MISMATCH: authority and subject key identifier mismatch
5341The current candidate issuer certificate was rejected because its subject key 5299The current candidate issuer certificate was rejected because its subject key
5342identifier was present and did not match the authority key identifier current 5300identifier was present and did not match the authority key identifier current
5343certificate. 5301certificate.
5344Only displayed when the 5302Only displayed when the
5345.Fl issuer_checks 5303.Fl issuer_checks
5346option is set. 5304option is set.
5347.It Ar 31 X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: authority and issuer serial number mismatch 5305.It 31 X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH: authority and issuer serial number mismatch
5348The current candidate issuer certificate was rejected because its issuer name 5306The current candidate issuer certificate was rejected because its issuer name
5349and serial number were present and did not match the authority key identifier 5307and serial number were present and did not match the authority key identifier
5350of the current certificate. 5308of the current certificate.
5351Only displayed when the 5309Only displayed when the
5352.Fl issuer_checks 5310.Fl issuer_checks
5353option is set. 5311option is set.
5354.It Ar 32 X509_V_ERR_KEYUSAGE_NO_CERTSIGN:key usage does not include certificate signing 5312.It 32 X509_V_ERR_KEYUSAGE_NO_CERTSIGN:key usage does not include certificate signing
5355The current candidate issuer certificate was rejected because its 5313The current candidate issuer certificate was rejected because its
5356.Em keyUsage 5314.Cm keyUsage
5357extension does not permit certificate signing. 5315extension does not permit certificate signing.
5358.It Ar 50 X509_V_ERR_APPLICATION_VERIFICATION: application verification failure 5316.It 50 X509_V_ERR_APPLICATION_VERIFICATION: application verification failure
5359An application specific error. 5317An application specific error.
5360Unused. 5318Unused.
5361.El 5319.El
5362.Sh VERIFY BUGS
5363Although the issuer checks are a considerable improvement over the old
5364technique, they still suffer from limitations in the underlying
5365X509_LOOKUP API.
5366One consequence of this is that trusted certificates with matching subject
5367name must either appear in a file (as specified by the
5368.Fl CAfile
5369option) or a directory (as specified by
5370.Fl CApath ) .
5371If they occur in both, only the certificates in the file will
5372be recognised.
5373.Pp
5374Previous versions of
5375.Nm OpenSSL
5376assumed certificates with matching subject name were identical and
5377mishandled them.
5378.\" 5320.\"
5379.\" VERSION 5321.\" VERSION
5380.\" 5322.\"