| GCC Code Coverage Report | |||||||||||||||||||||
        
  | 
    |||||||||||||||||||||
| Line | Branch | Exec | Source | 
1  | 
    /* $OpenBSD: x509_txt.c,v 1.19 2014/07/11 08:44:49 jsing Exp $ */  | 
    ||
2  | 
    /* Copyright (C) 1995-1998 Eric Young (eay@cryptsoft.com)  | 
    ||
3  | 
    * All rights reserved.  | 
    ||
4  | 
    *  | 
    ||
5  | 
    * This package is an SSL implementation written  | 
    ||
6  | 
    * by Eric Young (eay@cryptsoft.com).  | 
    ||
7  | 
    * The implementation was written so as to conform with Netscapes SSL.  | 
    ||
8  | 
    *  | 
    ||
9  | 
    * This library is free for commercial and non-commercial use as long as  | 
    ||
10  | 
    * the following conditions are aheared to. The following conditions  | 
    ||
11  | 
    * apply to all code found in this distribution, be it the RC4, RSA,  | 
    ||
12  | 
    * lhash, DES, etc., code; not just the SSL code. The SSL documentation  | 
    ||
13  | 
    * included with this distribution is covered by the same copyright terms  | 
    ||
14  | 
    * except that the holder is Tim Hudson (tjh@cryptsoft.com).  | 
    ||
15  | 
    *  | 
    ||
16  | 
    * Copyright remains Eric Young's, and as such any Copyright notices in  | 
    ||
17  | 
    * the code are not to be removed.  | 
    ||
18  | 
    * If this package is used in a product, Eric Young should be given attribution  | 
    ||
19  | 
    * as the author of the parts of the library used.  | 
    ||
20  | 
    * This can be in the form of a textual message at program startup or  | 
    ||
21  | 
    * in documentation (online or textual) provided with the package.  | 
    ||
22  | 
    *  | 
    ||
23  | 
    * Redistribution and use in source and binary forms, with or without  | 
    ||
24  | 
    * modification, are permitted provided that the following conditions  | 
    ||
25  | 
    * are met:  | 
    ||
26  | 
    * 1. Redistributions of source code must retain the copyright  | 
    ||
27  | 
    * notice, this list of conditions and the following disclaimer.  | 
    ||
28  | 
    * 2. Redistributions in binary form must reproduce the above copyright  | 
    ||
29  | 
    * notice, this list of conditions and the following disclaimer in the  | 
    ||
30  | 
    * documentation and/or other materials provided with the distribution.  | 
    ||
31  | 
    * 3. All advertising materials mentioning features or use of this software  | 
    ||
32  | 
    * must display the following acknowledgement:  | 
    ||
33  | 
    * "This product includes cryptographic software written by  | 
    ||
34  | 
    * Eric Young (eay@cryptsoft.com)"  | 
    ||
35  | 
    * The word 'cryptographic' can be left out if the rouines from the library  | 
    ||
36  | 
    * being used are not cryptographic related :-).  | 
    ||
37  | 
    * 4. If you include any Windows specific code (or a derivative thereof) from  | 
    ||
38  | 
    * the apps directory (application code) you must include an acknowledgement:  | 
    ||
39  | 
    * "This product includes software written by Tim Hudson (tjh@cryptsoft.com)"  | 
    ||
40  | 
    *  | 
    ||
41  | 
    * THIS SOFTWARE IS PROVIDED BY ERIC YOUNG ``AS IS'' AND  | 
    ||
42  | 
    * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE  | 
    ||
43  | 
    * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE  | 
    ||
44  | 
    * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE  | 
    ||
45  | 
    * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL  | 
    ||
46  | 
    * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS  | 
    ||
47  | 
    * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)  | 
    ||
48  | 
    * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT  | 
    ||
49  | 
    * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY  | 
    ||
50  | 
    * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF  | 
    ||
51  | 
    * SUCH DAMAGE.  | 
    ||
52  | 
    *  | 
    ||
53  | 
    * The licence and distribution terms for any publically available version or  | 
    ||
54  | 
    * derivative of this code cannot be changed. i.e. this code cannot simply be  | 
    ||
55  | 
    * copied and put under another distribution licence  | 
    ||
56  | 
    * [including the GNU Public Licence.]  | 
    ||
57  | 
    */  | 
    ||
58  | 
    |||
59  | 
    #include <errno.h>  | 
    ||
60  | 
    #include <stdio.h>  | 
    ||
61  | 
    #include <time.h>  | 
    ||
62  | 
    |||
63  | 
    #include <openssl/asn1.h>  | 
    ||
64  | 
    #include <openssl/buffer.h>  | 
    ||
65  | 
    #include <openssl/evp.h>  | 
    ||
66  | 
    #include <openssl/lhash.h>  | 
    ||
67  | 
    #include <openssl/objects.h>  | 
    ||
68  | 
    #include <openssl/x509.h>  | 
    ||
69  | 
    |||
70  | 
    const char *  | 
    ||
71  | 
    X509_verify_cert_error_string(long n)  | 
    ||
72  | 
    { | 
    ||
73  | 
    static char buf[100];  | 
    ||
74  | 
    |||
75  | 
    ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✓ ✗✗✗✗ ✗✗✗✗ ✓✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗✗ ✗✗✗  | 
    20  | 
    	switch ((int)n) { | 
    
76  | 
    case X509_V_OK:  | 
    ||
77  | 
    		return("ok"); | 
    ||
78  | 
    case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT:  | 
    ||
79  | 
    		return("unable to get issuer certificate"); | 
    ||
80  | 
    case X509_V_ERR_UNABLE_TO_GET_CRL:  | 
    ||
81  | 
    		return("unable to get certificate CRL"); | 
    ||
82  | 
    case X509_V_ERR_UNABLE_TO_DECRYPT_CERT_SIGNATURE:  | 
    ||
83  | 
    		return("unable to decrypt certificate's signature"); | 
    ||
84  | 
    case X509_V_ERR_UNABLE_TO_DECRYPT_CRL_SIGNATURE:  | 
    ||
85  | 
    		return("unable to decrypt CRL's signature"); | 
    ||
86  | 
    case X509_V_ERR_UNABLE_TO_DECODE_ISSUER_PUBLIC_KEY:  | 
    ||
87  | 
    		return("unable to decode issuer public key"); | 
    ||
88  | 
    case X509_V_ERR_CERT_SIGNATURE_FAILURE:  | 
    ||
89  | 
    		return("certificate signature failure"); | 
    ||
90  | 
    case X509_V_ERR_CRL_SIGNATURE_FAILURE:  | 
    ||
91  | 
    		return("CRL signature failure"); | 
    ||
92  | 
    case X509_V_ERR_CERT_NOT_YET_VALID:  | 
    ||
93  | 
    		return("certificate is not yet valid"); | 
    ||
94  | 
    case X509_V_ERR_CRL_NOT_YET_VALID:  | 
    ||
95  | 
    		return("CRL is not yet valid"); | 
    ||
96  | 
    case X509_V_ERR_CERT_HAS_EXPIRED:  | 
    ||
97  | 
    		return("certificate has expired"); | 
    ||
98  | 
    case X509_V_ERR_CRL_HAS_EXPIRED:  | 
    ||
99  | 
    		return("CRL has expired"); | 
    ||
100  | 
    case X509_V_ERR_ERROR_IN_CERT_NOT_BEFORE_FIELD:  | 
    ||
101  | 
    		return("format error in certificate's notBefore field"); | 
    ||
102  | 
    case X509_V_ERR_ERROR_IN_CERT_NOT_AFTER_FIELD:  | 
    ||
103  | 
    		return("format error in certificate's notAfter field"); | 
    ||
104  | 
    case X509_V_ERR_ERROR_IN_CRL_LAST_UPDATE_FIELD:  | 
    ||
105  | 
    		return("format error in CRL's lastUpdate field"); | 
    ||
106  | 
    case X509_V_ERR_ERROR_IN_CRL_NEXT_UPDATE_FIELD:  | 
    ||
107  | 
    		return("format error in CRL's nextUpdate field"); | 
    ||
108  | 
    case X509_V_ERR_OUT_OF_MEM:  | 
    ||
109  | 
    		return("out of memory"); | 
    ||
110  | 
    case X509_V_ERR_DEPTH_ZERO_SELF_SIGNED_CERT:  | 
    ||
111  | 
    		return("self signed certificate"); | 
    ||
112  | 
    case X509_V_ERR_SELF_SIGNED_CERT_IN_CHAIN:  | 
    ||
113  | 
    		return("self signed certificate in certificate chain"); | 
    ||
114  | 
    case X509_V_ERR_UNABLE_TO_GET_ISSUER_CERT_LOCALLY:  | 
    ||
115  | 
    		return("unable to get local issuer certificate"); | 
    ||
116  | 
    case X509_V_ERR_UNABLE_TO_VERIFY_LEAF_SIGNATURE:  | 
    ||
117  | 
    		return("unable to verify the first certificate"); | 
    ||
118  | 
    case X509_V_ERR_CERT_CHAIN_TOO_LONG:  | 
    ||
119  | 
    		return("certificate chain too long"); | 
    ||
120  | 
    case X509_V_ERR_CERT_REVOKED:  | 
    ||
121  | 
    		return("certificate revoked"); | 
    ||
122  | 
    case X509_V_ERR_INVALID_CA:  | 
    ||
123  | 
    8  | 
    		return ("invalid CA certificate"); | 
    |
124  | 
    case X509_V_ERR_INVALID_NON_CA:  | 
    ||
125  | 
    		return ("invalid non-CA certificate (has CA markings)"); | 
    ||
126  | 
    case X509_V_ERR_PATH_LENGTH_EXCEEDED:  | 
    ||
127  | 
    		return ("path length constraint exceeded"); | 
    ||
128  | 
    case X509_V_ERR_PROXY_PATH_LENGTH_EXCEEDED:  | 
    ||
129  | 
    		return("proxy path length constraint exceeded"); | 
    ||
130  | 
    case X509_V_ERR_PROXY_CERTIFICATES_NOT_ALLOWED:  | 
    ||
131  | 
    		return("proxy certificates not allowed, please set the appropriate flag"); | 
    ||
132  | 
    case X509_V_ERR_INVALID_PURPOSE:  | 
    ||
133  | 
    		return ("unsupported certificate purpose"); | 
    ||
134  | 
    case X509_V_ERR_CERT_UNTRUSTED:  | 
    ||
135  | 
    		return ("certificate not trusted"); | 
    ||
136  | 
    case X509_V_ERR_CERT_REJECTED:  | 
    ||
137  | 
    		return ("certificate rejected"); | 
    ||
138  | 
    case X509_V_ERR_APPLICATION_VERIFICATION:  | 
    ||
139  | 
    		return("application verification failure"); | 
    ||
140  | 
    case X509_V_ERR_SUBJECT_ISSUER_MISMATCH:  | 
    ||
141  | 
    2  | 
    		return("subject issuer mismatch"); | 
    |
142  | 
    case X509_V_ERR_AKID_SKID_MISMATCH:  | 
    ||
143  | 
    		return("authority and subject key identifier mismatch"); | 
    ||
144  | 
    case X509_V_ERR_AKID_ISSUER_SERIAL_MISMATCH:  | 
    ||
145  | 
    		return("authority and issuer serial number mismatch"); | 
    ||
146  | 
    case X509_V_ERR_KEYUSAGE_NO_CERTSIGN:  | 
    ||
147  | 
    		return("key usage does not include certificate signing"); | 
    ||
148  | 
    case X509_V_ERR_UNABLE_TO_GET_CRL_ISSUER:  | 
    ||
149  | 
    		return("unable to get CRL issuer certificate"); | 
    ||
150  | 
    case X509_V_ERR_UNHANDLED_CRITICAL_EXTENSION:  | 
    ||
151  | 
    		return("unhandled critical extension"); | 
    ||
152  | 
    case X509_V_ERR_KEYUSAGE_NO_CRL_SIGN:  | 
    ||
153  | 
    		return("key usage does not include CRL signing"); | 
    ||
154  | 
    case X509_V_ERR_KEYUSAGE_NO_DIGITAL_SIGNATURE:  | 
    ||
155  | 
    		return("key usage does not include digital signature"); | 
    ||
156  | 
    case X509_V_ERR_UNHANDLED_CRITICAL_CRL_EXTENSION:  | 
    ||
157  | 
    		return("unhandled critical CRL extension"); | 
    ||
158  | 
    case X509_V_ERR_INVALID_EXTENSION:  | 
    ||
159  | 
    		return("invalid or inconsistent certificate extension"); | 
    ||
160  | 
    case X509_V_ERR_INVALID_POLICY_EXTENSION:  | 
    ||
161  | 
    		return("invalid or inconsistent certificate policy extension"); | 
    ||
162  | 
    case X509_V_ERR_NO_EXPLICIT_POLICY:  | 
    ||
163  | 
    		return("no explicit policy"); | 
    ||
164  | 
    case X509_V_ERR_DIFFERENT_CRL_SCOPE:  | 
    ||
165  | 
    		return("Different CRL scope"); | 
    ||
166  | 
    case X509_V_ERR_UNSUPPORTED_EXTENSION_FEATURE:  | 
    ||
167  | 
    		return("Unsupported extension feature"); | 
    ||
168  | 
    case X509_V_ERR_UNNESTED_RESOURCE:  | 
    ||
169  | 
    		return("RFC 3779 resource not subset of parent's resources"); | 
    ||
170  | 
    case X509_V_ERR_PERMITTED_VIOLATION:  | 
    ||
171  | 
    		return("permitted subtree violation"); | 
    ||
172  | 
    case X509_V_ERR_EXCLUDED_VIOLATION:  | 
    ||
173  | 
    		return("excluded subtree violation"); | 
    ||
174  | 
    case X509_V_ERR_SUBTREE_MINMAX:  | 
    ||
175  | 
    		return("name constraints minimum and maximum not supported"); | 
    ||
176  | 
    case X509_V_ERR_UNSUPPORTED_CONSTRAINT_TYPE:  | 
    ||
177  | 
    		return("unsupported name constraint type"); | 
    ||
178  | 
    case X509_V_ERR_UNSUPPORTED_CONSTRAINT_SYNTAX:  | 
    ||
179  | 
    		return("unsupported or invalid name constraint syntax"); | 
    ||
180  | 
    case X509_V_ERR_UNSUPPORTED_NAME_SYNTAX:  | 
    ||
181  | 
    		return("unsupported or invalid name syntax"); | 
    ||
182  | 
    case X509_V_ERR_CRL_PATH_VALIDATION_ERROR:  | 
    ||
183  | 
    		return("CRL path validation error"); | 
    ||
184  | 
    |||
185  | 
    default:  | 
    ||
186  | 
    (void) snprintf(buf, sizeof buf, "error number %ld", n);  | 
    ||
187  | 
    return(buf);  | 
    ||
188  | 
    }  | 
    ||
189  | 
    10  | 
    }  | 
    
| Generated by: GCOVR (Version 3.3) |