1 /* $OpenBSD: pkcs7err.c,v 1.13 2022/07/12 14:42:50 kn Exp $ */
2 /* ====================================================================
3 * Copyright (c) 1999-2007 The OpenSSL Project. All rights reserved.
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
17 * 3. All advertising materials mentioning features or use of this
18 * software must display the following acknowledgment:
19 * "This product includes software developed by the OpenSSL Project
20 * for use in the OpenSSL Toolkit. (http://www.OpenSSL.org/)"
22 * 4. The names "OpenSSL Toolkit" and "OpenSSL Project" must not be used to
23 * endorse or promote products derived from this software without
24 * prior written permission. For written permission, please contact
25 * openssl-core@OpenSSL.org.
27 * 5. Products derived from this software may not be called "OpenSSL"
28 * nor may "OpenSSL" appear in their names without prior written
29 * permission of the OpenSSL Project.
31 * 6. Redistributions of any form whatsoever must retain the following
33 * "This product includes software developed by the OpenSSL Project
34 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)"
36 * THIS SOFTWARE IS PROVIDED BY THE OpenSSL PROJECT ``AS IS'' AND ANY
37 * EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
38 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
39 * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE OpenSSL PROJECT OR
40 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
41 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
42 * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
43 * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
44 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
45 * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
46 * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
47 * OF THE POSSIBILITY OF SUCH DAMAGE.
48 * ====================================================================
50 * This product includes cryptographic software written by Eric Young
51 * (eay@cryptsoft.com). This product includes software written by Tim
52 * Hudson (tjh@cryptsoft.com).
58 #include <openssl/opensslconf.h>
60 #include <openssl/err.h>
61 #include <openssl/pkcs7.h>
63 #ifndef OPENSSL_NO_ERR
65 #define ERR_FUNC(func) ERR_PACK(ERR_LIB_PKCS7,func,0)
66 #define ERR_REASON(reason) ERR_PACK(ERR_LIB_PKCS7,0,reason)
68 static ERR_STRING_DATA PKCS7_str_functs
[]= {
69 {ERR_FUNC(0xfff), "CRYPTO_internal"},
73 static ERR_STRING_DATA PKCS7_str_reasons
[]= {
74 {ERR_REASON(PKCS7_R_CERTIFICATE_VERIFY_ERROR
), "certificate verify error"},
75 {ERR_REASON(PKCS7_R_CIPHER_HAS_NO_OBJECT_IDENTIFIER
), "cipher has no object identifier"},
76 {ERR_REASON(PKCS7_R_CIPHER_NOT_INITIALIZED
), "cipher not initialized"},
77 {ERR_REASON(PKCS7_R_CONTENT_AND_DATA_PRESENT
), "content and data present"},
78 {ERR_REASON(PKCS7_R_CTRL_ERROR
) , "ctrl error"},
79 {ERR_REASON(PKCS7_R_DECODE_ERROR
) , "decode error"},
80 {ERR_REASON(PKCS7_R_DECRYPTED_KEY_IS_WRONG_LENGTH
), "decrypted key is wrong length"},
81 {ERR_REASON(PKCS7_R_DECRYPT_ERROR
) , "decrypt error"},
82 {ERR_REASON(PKCS7_R_DIGEST_FAILURE
) , "digest failure"},
83 {ERR_REASON(PKCS7_R_ENCRYPTION_CTRL_FAILURE
), "encryption ctrl failure"},
84 {ERR_REASON(PKCS7_R_ENCRYPTION_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
), "encryption not supported for this key type"},
85 {ERR_REASON(PKCS7_R_ERROR_ADDING_RECIPIENT
), "error adding recipient"},
86 {ERR_REASON(PKCS7_R_ERROR_SETTING_CIPHER
), "error setting cipher"},
87 {ERR_REASON(PKCS7_R_INVALID_MIME_TYPE
) , "invalid mime type"},
88 {ERR_REASON(PKCS7_R_INVALID_NULL_POINTER
), "invalid null pointer"},
89 {ERR_REASON(PKCS7_R_MIME_NO_CONTENT_TYPE
), "mime no content type"},
90 {ERR_REASON(PKCS7_R_MIME_PARSE_ERROR
) , "mime parse error"},
91 {ERR_REASON(PKCS7_R_MIME_SIG_PARSE_ERROR
), "mime sig parse error"},
92 {ERR_REASON(PKCS7_R_MISSING_CERIPEND_INFO
), "missing ceripend info"},
93 {ERR_REASON(PKCS7_R_NO_CONTENT
) , "no content"},
94 {ERR_REASON(PKCS7_R_NO_CONTENT_TYPE
) , "no content type"},
95 {ERR_REASON(PKCS7_R_NO_DEFAULT_DIGEST
) , "no default digest"},
96 {ERR_REASON(PKCS7_R_NO_MATCHING_DIGEST_TYPE_FOUND
), "no matching digest type found"},
97 {ERR_REASON(PKCS7_R_NO_MULTIPART_BODY_FAILURE
), "no multipart body failure"},
98 {ERR_REASON(PKCS7_R_NO_MULTIPART_BOUNDARY
), "no multipart boundary"},
99 {ERR_REASON(PKCS7_R_NO_RECIPIENT_MATCHES_CERTIFICATE
), "no recipient matches certificate"},
100 {ERR_REASON(PKCS7_R_NO_RECIPIENT_MATCHES_KEY
), "no recipient matches key"},
101 {ERR_REASON(PKCS7_R_NO_SIGNATURES_ON_DATA
), "no signatures on data"},
102 {ERR_REASON(PKCS7_R_NO_SIGNERS
) , "no signers"},
103 {ERR_REASON(PKCS7_R_NO_SIG_CONTENT_TYPE
) , "no sig content type"},
104 {ERR_REASON(PKCS7_R_OPERATION_NOT_SUPPORTED_ON_THIS_TYPE
), "operation not supported on this type"},
105 {ERR_REASON(PKCS7_R_PKCS7_ADD_SIGNATURE_ERROR
), "pkcs7 add signature error"},
106 {ERR_REASON(PKCS7_R_PKCS7_ADD_SIGNER_ERROR
), "pkcs7 add signer error"},
107 {ERR_REASON(PKCS7_R_PKCS7_DATAFINAL
) , "pkcs7 datafinal"},
108 {ERR_REASON(PKCS7_R_PKCS7_DATAFINAL_ERROR
), "pkcs7 datafinal error"},
109 {ERR_REASON(PKCS7_R_PKCS7_DATASIGN
) , "pkcs7 datasign"},
110 {ERR_REASON(PKCS7_R_PKCS7_PARSE_ERROR
) , "pkcs7 parse error"},
111 {ERR_REASON(PKCS7_R_PKCS7_SIG_PARSE_ERROR
), "pkcs7 sig parse error"},
112 {ERR_REASON(PKCS7_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE
), "private key does not match certificate"},
113 {ERR_REASON(PKCS7_R_SIGNATURE_FAILURE
) , "signature failure"},
114 {ERR_REASON(PKCS7_R_SIGNER_CERTIFICATE_NOT_FOUND
), "signer certificate not found"},
115 {ERR_REASON(PKCS7_R_SIGNING_CTRL_FAILURE
), "signing ctrl failure"},
116 {ERR_REASON(PKCS7_R_SIGNING_NOT_SUPPORTED_FOR_THIS_KEY_TYPE
), "signing not supported for this key type"},
117 {ERR_REASON(PKCS7_R_SIG_INVALID_MIME_TYPE
), "sig invalid mime type"},
118 {ERR_REASON(PKCS7_R_SMIME_TEXT_ERROR
) , "smime text error"},
119 {ERR_REASON(PKCS7_R_UNABLE_TO_FIND_CERTIFICATE
), "unable to find certificate"},
120 {ERR_REASON(PKCS7_R_UNABLE_TO_FIND_MEM_BIO
), "unable to find mem bio"},
121 {ERR_REASON(PKCS7_R_UNABLE_TO_FIND_MESSAGE_DIGEST
), "unable to find message digest"},
122 {ERR_REASON(PKCS7_R_UNKNOWN_DIGEST_TYPE
) , "unknown digest type"},
123 {ERR_REASON(PKCS7_R_UNKNOWN_OPERATION
) , "unknown operation"},
124 {ERR_REASON(PKCS7_R_UNSUPPORTED_CIPHER_TYPE
), "unsupported cipher type"},
125 {ERR_REASON(PKCS7_R_UNSUPPORTED_CONTENT_TYPE
), "unsupported content type"},
126 {ERR_REASON(PKCS7_R_WRONG_CONTENT_TYPE
) , "wrong content type"},
127 {ERR_REASON(PKCS7_R_WRONG_PKCS7_TYPE
) , "wrong pkcs7 type"},
134 ERR_load_PKCS7_strings(void)
136 #ifndef OPENSSL_NO_ERR
137 if (ERR_func_error_string(PKCS7_str_functs
[0].error
) == NULL
) {
138 ERR_load_strings(0, PKCS7_str_functs
);
139 ERR_load_strings(0, PKCS7_str_reasons
);