1/* crypto/cms/cms_err.c */ 2/* ==================================================================== 3 * Copyright (c) 1999-2013 The OpenSSL Project. All rights reserved. 4 * 5 * Redistribution and use in source and binary forms, with or without 6 * modification, are permitted provided that the following conditions 7 * are met: 8 * 9 * 1. Redistributions of source code must retain the above copyright 10 * notice, this list of conditions and the following disclaimer. 11 * 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 15 * distribution. 16 * 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/)" 21 * 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. 26 * 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. 30 * 31 * 6. Redistributions of any form whatsoever must retain the following 32 * acknowledgment: 33 * "This product includes software developed by the OpenSSL Project 34 * for use in the OpenSSL Toolkit (http://www.OpenSSL.org/)" 35 * 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 * ==================================================================== 49 * 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). 53 * 54 */ 55 56/* 57 * NOTE: this file was auto generated by the mkerr.pl script: any changes 58 * made to it will be overwritten when the script next updates this file, 59 * only reason strings will be preserved. 60 */ 61 62#include <stdio.h> 63#include <openssl/err.h> 64#include <openssl/cms.h> 65 66/* BEGIN ERROR CODES */ 67#ifndef OPENSSL_NO_ERR 68 69# define ERR_FUNC(func) ERR_PACK(ERR_LIB_CMS,func,0) 70# define ERR_REASON(reason) ERR_PACK(ERR_LIB_CMS,0,reason) 71 72static ERR_STRING_DATA CMS_str_functs[] = { 73 {ERR_FUNC(CMS_F_CHECK_CONTENT), "CHECK_CONTENT"}, 74 {ERR_FUNC(CMS_F_CMS_ADD0_CERT), "CMS_add0_cert"}, 75 {ERR_FUNC(CMS_F_CMS_ADD0_RECIPIENT_KEY), "CMS_add0_recipient_key"}, 76 {ERR_FUNC(CMS_F_CMS_ADD0_RECIPIENT_PASSWORD), 77 "CMS_add0_recipient_password"}, 78 {ERR_FUNC(CMS_F_CMS_ADD1_RECEIPTREQUEST), "CMS_add1_ReceiptRequest"}, 79 {ERR_FUNC(CMS_F_CMS_ADD1_RECIPIENT_CERT), "CMS_add1_recipient_cert"}, 80 {ERR_FUNC(CMS_F_CMS_ADD1_SIGNER), "CMS_add1_signer"}, 81 {ERR_FUNC(CMS_F_CMS_ADD1_SIGNINGTIME), "CMS_ADD1_SIGNINGTIME"}, 82 {ERR_FUNC(CMS_F_CMS_COMPRESS), "CMS_compress"}, 83 {ERR_FUNC(CMS_F_CMS_COMPRESSEDDATA_CREATE), "cms_CompressedData_create"}, 84 {ERR_FUNC(CMS_F_CMS_COMPRESSEDDATA_INIT_BIO), 85 "cms_CompressedData_init_bio"}, 86 {ERR_FUNC(CMS_F_CMS_COPY_CONTENT), "CMS_COPY_CONTENT"}, 87 {ERR_FUNC(CMS_F_CMS_COPY_MESSAGEDIGEST), "CMS_COPY_MESSAGEDIGEST"}, 88 {ERR_FUNC(CMS_F_CMS_DATA), "CMS_data"}, 89 {ERR_FUNC(CMS_F_CMS_DATAFINAL), "CMS_dataFinal"}, 90 {ERR_FUNC(CMS_F_CMS_DATAINIT), "CMS_dataInit"}, 91 {ERR_FUNC(CMS_F_CMS_DECRYPT), "CMS_decrypt"}, 92 {ERR_FUNC(CMS_F_CMS_DECRYPT_SET1_KEY), "CMS_decrypt_set1_key"}, 93 {ERR_FUNC(CMS_F_CMS_DECRYPT_SET1_PASSWORD), "CMS_decrypt_set1_password"}, 94 {ERR_FUNC(CMS_F_CMS_DECRYPT_SET1_PKEY), "CMS_decrypt_set1_pkey"}, 95 {ERR_FUNC(CMS_F_CMS_DIGESTALGORITHM_FIND_CTX), 96 "cms_DigestAlgorithm_find_ctx"}, 97 {ERR_FUNC(CMS_F_CMS_DIGESTALGORITHM_INIT_BIO), 98 "cms_DigestAlgorithm_init_bio"}, 99 {ERR_FUNC(CMS_F_CMS_DIGESTEDDATA_DO_FINAL), "cms_DigestedData_do_final"}, 100 {ERR_FUNC(CMS_F_CMS_DIGEST_VERIFY), "CMS_digest_verify"}, 101 {ERR_FUNC(CMS_F_CMS_ENCODE_RECEIPT), "cms_encode_Receipt"}, 102 {ERR_FUNC(CMS_F_CMS_ENCRYPT), "CMS_encrypt"}, 103 {ERR_FUNC(CMS_F_CMS_ENCRYPTEDCONTENT_INIT_BIO), 104 "cms_EncryptedContent_init_bio"}, 105 {ERR_FUNC(CMS_F_CMS_ENCRYPTEDDATA_DECRYPT), "CMS_EncryptedData_decrypt"}, 106 {ERR_FUNC(CMS_F_CMS_ENCRYPTEDDATA_ENCRYPT), "CMS_EncryptedData_encrypt"}, 107 {ERR_FUNC(CMS_F_CMS_ENCRYPTEDDATA_SET1_KEY), 108 "CMS_EncryptedData_set1_key"}, 109 {ERR_FUNC(CMS_F_CMS_ENVELOPEDDATA_CREATE), "CMS_EnvelopedData_create"}, 110 {ERR_FUNC(CMS_F_CMS_ENVELOPEDDATA_INIT_BIO), 111 "cms_EnvelopedData_init_bio"}, 112 {ERR_FUNC(CMS_F_CMS_ENVELOPED_DATA_INIT), "CMS_ENVELOPED_DATA_INIT"}, 113 {ERR_FUNC(CMS_F_CMS_ENV_ASN1_CTRL), "cms_env_asn1_ctrl"}, 114 {ERR_FUNC(CMS_F_CMS_FINAL), "CMS_final"}, 115 {ERR_FUNC(CMS_F_CMS_GET0_CERTIFICATE_CHOICES), 116 "CMS_GET0_CERTIFICATE_CHOICES"}, 117 {ERR_FUNC(CMS_F_CMS_GET0_CONTENT), "CMS_get0_content"}, 118 {ERR_FUNC(CMS_F_CMS_GET0_ECONTENT_TYPE), "CMS_GET0_ECONTENT_TYPE"}, 119 {ERR_FUNC(CMS_F_CMS_GET0_ENVELOPED), "cms_get0_enveloped"}, 120 {ERR_FUNC(CMS_F_CMS_GET0_REVOCATION_CHOICES), 121 "CMS_GET0_REVOCATION_CHOICES"}, 122 {ERR_FUNC(CMS_F_CMS_GET0_SIGNED), "CMS_GET0_SIGNED"}, 123 {ERR_FUNC(CMS_F_CMS_MSGSIGDIGEST_ADD1), "cms_msgSigDigest_add1"}, 124 {ERR_FUNC(CMS_F_CMS_RECEIPTREQUEST_CREATE0), 125 "CMS_ReceiptRequest_create0"}, 126 {ERR_FUNC(CMS_F_CMS_RECEIPT_VERIFY), "cms_Receipt_verify"}, 127 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_DECRYPT), "CMS_RecipientInfo_decrypt"}, 128 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_ENCRYPT), "CMS_RecipientInfo_encrypt"}, 129 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KARI_ENCRYPT), 130 "cms_RecipientInfo_kari_encrypt"}, 131 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ALG), 132 "CMS_RecipientInfo_kari_get0_alg"}, 133 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KARI_GET0_ORIG_ID), 134 "CMS_RecipientInfo_kari_get0_orig_id"}, 135 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KARI_GET0_REKS), 136 "CMS_RecipientInfo_kari_get0_reks"}, 137 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KARI_ORIG_ID_CMP), 138 "CMS_RecipientInfo_kari_orig_id_cmp"}, 139 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KEKRI_DECRYPT), 140 "CMS_RECIPIENTINFO_KEKRI_DECRYPT"}, 141 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KEKRI_ENCRYPT), 142 "CMS_RECIPIENTINFO_KEKRI_ENCRYPT"}, 143 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KEKRI_GET0_ID), 144 "CMS_RecipientInfo_kekri_get0_id"}, 145 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KEKRI_ID_CMP), 146 "CMS_RecipientInfo_kekri_id_cmp"}, 147 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KTRI_CERT_CMP), 148 "CMS_RecipientInfo_ktri_cert_cmp"}, 149 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KTRI_DECRYPT), 150 "CMS_RECIPIENTINFO_KTRI_DECRYPT"}, 151 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KTRI_ENCRYPT), 152 "CMS_RECIPIENTINFO_KTRI_ENCRYPT"}, 153 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_ALGS), 154 "CMS_RecipientInfo_ktri_get0_algs"}, 155 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_KTRI_GET0_SIGNER_ID), 156 "CMS_RecipientInfo_ktri_get0_signer_id"}, 157 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_PWRI_CRYPT), 158 "cms_RecipientInfo_pwri_crypt"}, 159 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_SET0_KEY), 160 "CMS_RecipientInfo_set0_key"}, 161 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_SET0_PASSWORD), 162 "CMS_RecipientInfo_set0_password"}, 163 {ERR_FUNC(CMS_F_CMS_RECIPIENTINFO_SET0_PKEY), 164 "CMS_RecipientInfo_set0_pkey"}, 165 {ERR_FUNC(CMS_F_CMS_SD_ASN1_CTRL), "CMS_SD_ASN1_CTRL"}, 166 {ERR_FUNC(CMS_F_CMS_SET1_IAS), "cms_set1_ias"}, 167 {ERR_FUNC(CMS_F_CMS_SET1_KEYID), "cms_set1_keyid"}, 168 {ERR_FUNC(CMS_F_CMS_SET1_SIGNERIDENTIFIER), "cms_set1_SignerIdentifier"}, 169 {ERR_FUNC(CMS_F_CMS_SET_DETACHED), "CMS_set_detached"}, 170 {ERR_FUNC(CMS_F_CMS_SIGN), "CMS_sign"}, 171 {ERR_FUNC(CMS_F_CMS_SIGNED_DATA_INIT), "CMS_SIGNED_DATA_INIT"}, 172 {ERR_FUNC(CMS_F_CMS_SIGNERINFO_CONTENT_SIGN), 173 "CMS_SIGNERINFO_CONTENT_SIGN"}, 174 {ERR_FUNC(CMS_F_CMS_SIGNERINFO_SIGN), "CMS_SignerInfo_sign"}, 175 {ERR_FUNC(CMS_F_CMS_SIGNERINFO_VERIFY), "CMS_SignerInfo_verify"}, 176 {ERR_FUNC(CMS_F_CMS_SIGNERINFO_VERIFY_CERT), 177 "CMS_SIGNERINFO_VERIFY_CERT"}, 178 {ERR_FUNC(CMS_F_CMS_SIGNERINFO_VERIFY_CONTENT), 179 "CMS_SignerInfo_verify_content"}, 180 {ERR_FUNC(CMS_F_CMS_SIGN_RECEIPT), "CMS_sign_receipt"}, 181 {ERR_FUNC(CMS_F_CMS_STREAM), "CMS_stream"}, 182 {ERR_FUNC(CMS_F_CMS_UNCOMPRESS), "CMS_uncompress"}, 183 {ERR_FUNC(CMS_F_CMS_VERIFY), "CMS_verify"}, 184 {0, NULL} 185}; 186 187static ERR_STRING_DATA CMS_str_reasons[] = { 188 {ERR_REASON(CMS_R_ADD_SIGNER_ERROR), "add signer error"}, 189 {ERR_REASON(CMS_R_CERTIFICATE_ALREADY_PRESENT), 190 "certificate already present"}, 191 {ERR_REASON(CMS_R_CERTIFICATE_HAS_NO_KEYID), "certificate has no keyid"}, 192 {ERR_REASON(CMS_R_CERTIFICATE_VERIFY_ERROR), "certificate verify error"}, 193 {ERR_REASON(CMS_R_CIPHER_INITIALISATION_ERROR), 194 "cipher initialisation error"}, 195 {ERR_REASON(CMS_R_CIPHER_PARAMETER_INITIALISATION_ERROR), 196 "cipher parameter initialisation error"}, 197 {ERR_REASON(CMS_R_CMS_DATAFINAL_ERROR), "cms datafinal error"}, 198 {ERR_REASON(CMS_R_CMS_LIB), "cms lib"}, 199 {ERR_REASON(CMS_R_CONTENTIDENTIFIER_MISMATCH), 200 "contentidentifier mismatch"}, 201 {ERR_REASON(CMS_R_CONTENT_NOT_FOUND), "content not found"}, 202 {ERR_REASON(CMS_R_CONTENT_TYPE_MISMATCH), "content type mismatch"}, 203 {ERR_REASON(CMS_R_CONTENT_TYPE_NOT_COMPRESSED_DATA), 204 "content type not compressed data"}, 205 {ERR_REASON(CMS_R_CONTENT_TYPE_NOT_ENVELOPED_DATA), 206 "content type not enveloped data"}, 207 {ERR_REASON(CMS_R_CONTENT_TYPE_NOT_SIGNED_DATA), 208 "content type not signed data"}, 209 {ERR_REASON(CMS_R_CONTENT_VERIFY_ERROR), "content verify error"}, 210 {ERR_REASON(CMS_R_CTRL_ERROR), "ctrl error"}, 211 {ERR_REASON(CMS_R_CTRL_FAILURE), "ctrl failure"}, 212 {ERR_REASON(CMS_R_DECRYPT_ERROR), "decrypt error"}, 213 {ERR_REASON(CMS_R_DIGEST_ERROR), "digest error"}, 214 {ERR_REASON(CMS_R_ERROR_GETTING_PUBLIC_KEY), "error getting public key"}, 215 {ERR_REASON(CMS_R_ERROR_READING_MESSAGEDIGEST_ATTRIBUTE), 216 "error reading messagedigest attribute"}, 217 {ERR_REASON(CMS_R_ERROR_SETTING_KEY), "error setting key"}, 218 {ERR_REASON(CMS_R_ERROR_SETTING_RECIPIENTINFO), 219 "error setting recipientinfo"}, 220 {ERR_REASON(CMS_R_INVALID_ENCRYPTED_KEY_LENGTH), 221 "invalid encrypted key length"}, 222 {ERR_REASON(CMS_R_INVALID_KEY_ENCRYPTION_PARAMETER), 223 "invalid key encryption parameter"}, 224 {ERR_REASON(CMS_R_INVALID_KEY_LENGTH), "invalid key length"}, 225 {ERR_REASON(CMS_R_MD_BIO_INIT_ERROR), "md bio init error"}, 226 {ERR_REASON(CMS_R_MESSAGEDIGEST_ATTRIBUTE_WRONG_LENGTH), 227 "messagedigest attribute wrong length"}, 228 {ERR_REASON(CMS_R_MESSAGEDIGEST_WRONG_LENGTH), 229 "messagedigest wrong length"}, 230 {ERR_REASON(CMS_R_MSGSIGDIGEST_ERROR), "msgsigdigest error"}, 231 {ERR_REASON(CMS_R_MSGSIGDIGEST_VERIFICATION_FAILURE), 232 "msgsigdigest verification failure"}, 233 {ERR_REASON(CMS_R_MSGSIGDIGEST_WRONG_LENGTH), 234 "msgsigdigest wrong length"}, 235 {ERR_REASON(CMS_R_NEED_ONE_SIGNER), "need one signer"}, 236 {ERR_REASON(CMS_R_NOT_A_SIGNED_RECEIPT), "not a signed receipt"}, 237 {ERR_REASON(CMS_R_NOT_ENCRYPTED_DATA), "not encrypted data"}, 238 {ERR_REASON(CMS_R_NOT_KEK), "not kek"}, 239 {ERR_REASON(CMS_R_NOT_KEY_AGREEMENT), "not key agreement"}, 240 {ERR_REASON(CMS_R_NOT_KEY_TRANSPORT), "not key transport"}, 241 {ERR_REASON(CMS_R_NOT_PWRI), "not pwri"}, 242 {ERR_REASON(CMS_R_NOT_SUPPORTED_FOR_THIS_KEY_TYPE), 243 "not supported for this key type"}, 244 {ERR_REASON(CMS_R_NO_CIPHER), "no cipher"}, 245 {ERR_REASON(CMS_R_NO_CONTENT), "no content"}, 246 {ERR_REASON(CMS_R_NO_CONTENT_TYPE), "no content type"}, 247 {ERR_REASON(CMS_R_NO_DEFAULT_DIGEST), "no default digest"}, 248 {ERR_REASON(CMS_R_NO_DIGEST_SET), "no digest set"}, 249 {ERR_REASON(CMS_R_NO_KEY), "no key"}, 250 {ERR_REASON(CMS_R_NO_KEY_OR_CERT), "no key or cert"}, 251 {ERR_REASON(CMS_R_NO_MATCHING_DIGEST), "no matching digest"}, 252 {ERR_REASON(CMS_R_NO_MATCHING_RECIPIENT), "no matching recipient"}, 253 {ERR_REASON(CMS_R_NO_MATCHING_SIGNATURE), "no matching signature"}, 254 {ERR_REASON(CMS_R_NO_MSGSIGDIGEST), "no msgsigdigest"}, 255 {ERR_REASON(CMS_R_NO_PASSWORD), "no password"}, 256 {ERR_REASON(CMS_R_NO_PRIVATE_KEY), "no private key"}, 257 {ERR_REASON(CMS_R_NO_PUBLIC_KEY), "no public key"}, 258 {ERR_REASON(CMS_R_NO_RECEIPT_REQUEST), "no receipt request"}, 259 {ERR_REASON(CMS_R_NO_SIGNERS), "no signers"}, 260 {ERR_REASON(CMS_R_PRIVATE_KEY_DOES_NOT_MATCH_CERTIFICATE), 261 "private key does not match certificate"}, 262 {ERR_REASON(CMS_R_RECEIPT_DECODE_ERROR), "receipt decode error"}, 263 {ERR_REASON(CMS_R_RECIPIENT_ERROR), "recipient error"}, 264 {ERR_REASON(CMS_R_SIGNER_CERTIFICATE_NOT_FOUND), 265 "signer certificate not found"}, 266 {ERR_REASON(CMS_R_SIGNFINAL_ERROR), "signfinal error"}, 267 {ERR_REASON(CMS_R_SMIME_TEXT_ERROR), "smime text error"}, 268 {ERR_REASON(CMS_R_STORE_INIT_ERROR), "store init error"}, 269 {ERR_REASON(CMS_R_TYPE_NOT_COMPRESSED_DATA), "type not compressed data"}, 270 {ERR_REASON(CMS_R_TYPE_NOT_DATA), "type not data"}, 271 {ERR_REASON(CMS_R_TYPE_NOT_DIGESTED_DATA), "type not digested data"}, 272 {ERR_REASON(CMS_R_TYPE_NOT_ENCRYPTED_DATA), "type not encrypted data"}, 273 {ERR_REASON(CMS_R_TYPE_NOT_ENVELOPED_DATA), "type not enveloped data"}, 274 {ERR_REASON(CMS_R_UNABLE_TO_FINALIZE_CONTEXT), 275 "unable to finalize context"}, 276 {ERR_REASON(CMS_R_UNKNOWN_CIPHER), "unknown cipher"}, 277 {ERR_REASON(CMS_R_UNKNOWN_DIGEST_ALGORIHM), "unknown digest algorihm"}, 278 {ERR_REASON(CMS_R_UNKNOWN_ID), "unknown id"}, 279 {ERR_REASON(CMS_R_UNSUPPORTED_COMPRESSION_ALGORITHM), 280 "unsupported compression algorithm"}, 281 {ERR_REASON(CMS_R_UNSUPPORTED_CONTENT_TYPE), "unsupported content type"}, 282 {ERR_REASON(CMS_R_UNSUPPORTED_KEK_ALGORITHM), 283 "unsupported kek algorithm"}, 284 {ERR_REASON(CMS_R_UNSUPPORTED_KEY_ENCRYPTION_ALGORITHM), 285 "unsupported key encryption algorithm"}, 286 {ERR_REASON(CMS_R_UNSUPPORTED_RECIPIENT_TYPE), 287 "unsupported recipient type"}, 288 {ERR_REASON(CMS_R_UNSUPPORTED_RECPIENTINFO_TYPE), 289 "unsupported recpientinfo type"}, 290 {ERR_REASON(CMS_R_UNSUPPORTED_TYPE), "unsupported type"}, 291 {ERR_REASON(CMS_R_UNWRAP_ERROR), "unwrap error"}, 292 {ERR_REASON(CMS_R_UNWRAP_FAILURE), "unwrap failure"}, 293 {ERR_REASON(CMS_R_VERIFICATION_FAILURE), "verification failure"}, 294 {ERR_REASON(CMS_R_WRAP_ERROR), "wrap error"}, 295 {0, NULL} 296}; 297 298#endif 299 300void ERR_load_CMS_strings(void) 301{ 302#ifndef OPENSSL_NO_ERR 303 304 if (ERR_func_error_string(CMS_str_functs[0].error) == NULL) { 305 ERR_load_strings(0, CMS_str_functs); 306 ERR_load_strings(0, CMS_str_reasons); 307 } 308#endif 309} 310