1 /* e_capi_err.c */ 2 /* ==================================================================== 3 * Copyright (c) 1999-2009 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 /* NOTE: this file was auto generated by the mkerr.pl script: any changes 57 * made to it will be overwritten when the script next updates this file, 58 * only reason strings will be preserved. 59 */ 60 61 #include <stdio.h> 62 #include <openssl/err.h> 63 #include "e_capi_err.h" 64 65 /* BEGIN ERROR CODES */ 66 #ifndef OPENSSL_NO_ERR 67 68 #define ERR_FUNC(func) ERR_PACK(0,func,0) 69 #define ERR_REASON(reason) ERR_PACK(0,0,reason) 70 71 static ERR_STRING_DATA CAPI_str_functs[]= 72 { 73 {ERR_FUNC(CAPI_F_CAPI_CERT_GET_FNAME), "CAPI_CERT_GET_FNAME"}, 74 {ERR_FUNC(CAPI_F_CAPI_CTRL), "CAPI_CTRL"}, 75 {ERR_FUNC(CAPI_F_CAPI_CTX_NEW), "CAPI_CTX_NEW"}, 76 {ERR_FUNC(CAPI_F_CAPI_CTX_SET_PROVNAME), "CAPI_CTX_SET_PROVNAME"}, 77 {ERR_FUNC(CAPI_F_CAPI_DSA_DO_SIGN), "CAPI_DSA_DO_SIGN"}, 78 {ERR_FUNC(CAPI_F_CAPI_GET_KEY), "CAPI_GET_KEY"}, 79 {ERR_FUNC(CAPI_F_CAPI_GET_PKEY), "CAPI_GET_PKEY"}, 80 {ERR_FUNC(CAPI_F_CAPI_GET_PROVNAME), "CAPI_GET_PROVNAME"}, 81 {ERR_FUNC(CAPI_F_CAPI_GET_PROV_INFO), "CAPI_GET_PROV_INFO"}, 82 {ERR_FUNC(CAPI_F_CAPI_INIT), "CAPI_INIT"}, 83 {ERR_FUNC(CAPI_F_CAPI_LIST_CONTAINERS), "CAPI_LIST_CONTAINERS"}, 84 {ERR_FUNC(CAPI_F_CAPI_LOAD_PRIVKEY), "CAPI_LOAD_PRIVKEY"}, 85 {ERR_FUNC(CAPI_F_CAPI_OPEN_STORE), "CAPI_OPEN_STORE"}, 86 {ERR_FUNC(CAPI_F_CAPI_RSA_PRIV_DEC), "CAPI_RSA_PRIV_DEC"}, 87 {ERR_FUNC(CAPI_F_CAPI_RSA_PRIV_ENC), "CAPI_RSA_PRIV_ENC"}, 88 {ERR_FUNC(CAPI_F_CAPI_RSA_SIGN), "CAPI_RSA_SIGN"}, 89 {ERR_FUNC(CAPI_F_CERT_SELECT_DIALOG), "CERT_SELECT_DIALOG"}, 90 {ERR_FUNC(CAPI_F_CLIENT_CERT_SELECT), "CLIENT_CERT_SELECT"}, 91 {ERR_FUNC(CAPI_F_WIDE_TO_ASC), "WIDE_TO_ASC"}, 92 {0,NULL} 93 }; 94 95 static ERR_STRING_DATA CAPI_str_reasons[]= 96 { 97 {ERR_REASON(CAPI_R_CANT_CREATE_HASH_OBJECT),"cant create hash object"}, 98 {ERR_REASON(CAPI_R_CANT_FIND_CAPI_CONTEXT),"cant find capi context"}, 99 {ERR_REASON(CAPI_R_CANT_GET_KEY) ,"cant get key"}, 100 {ERR_REASON(CAPI_R_CANT_SET_HASH_VALUE) ,"cant set hash value"}, 101 {ERR_REASON(CAPI_R_CRYPTACQUIRECONTEXT_ERROR),"cryptacquirecontext error"}, 102 {ERR_REASON(CAPI_R_CRYPTENUMPROVIDERS_ERROR),"cryptenumproviders error"}, 103 {ERR_REASON(CAPI_R_DECRYPT_ERROR) ,"decrypt error"}, 104 {ERR_REASON(CAPI_R_ENGINE_NOT_INITIALIZED),"engine not initialized"}, 105 {ERR_REASON(CAPI_R_ENUMCONTAINERS_ERROR) ,"enumcontainers error"}, 106 {ERR_REASON(CAPI_R_ERROR_ADDING_CERT) ,"error adding cert"}, 107 {ERR_REASON(CAPI_R_ERROR_CREATING_STORE) ,"error creating store"}, 108 {ERR_REASON(CAPI_R_ERROR_GETTING_FRIENDLY_NAME),"error getting friendly name"}, 109 {ERR_REASON(CAPI_R_ERROR_GETTING_KEY_PROVIDER_INFO),"error getting key provider info"}, 110 {ERR_REASON(CAPI_R_ERROR_OPENING_STORE) ,"error opening store"}, 111 {ERR_REASON(CAPI_R_ERROR_SIGNING_HASH) ,"error signing hash"}, 112 {ERR_REASON(CAPI_R_FUNCTION_NOT_SUPPORTED),"function not supported"}, 113 {ERR_REASON(CAPI_R_GETUSERKEY_ERROR) ,"getuserkey error"}, 114 {ERR_REASON(CAPI_R_INVALID_DIGEST_LENGTH),"invalid digest length"}, 115 {ERR_REASON(CAPI_R_INVALID_DSA_PUBLIC_KEY_BLOB_MAGIC_NUMBER),"invalid dsa public key blob magic number"}, 116 {ERR_REASON(CAPI_R_INVALID_LOOKUP_METHOD),"invalid lookup method"}, 117 {ERR_REASON(CAPI_R_INVALID_PUBLIC_KEY_BLOB),"invalid public key blob"}, 118 {ERR_REASON(CAPI_R_INVALID_RSA_PUBLIC_KEY_BLOB_MAGIC_NUMBER),"invalid rsa public key blob magic number"}, 119 {ERR_REASON(CAPI_R_PUBKEY_EXPORT_ERROR) ,"pubkey export error"}, 120 {ERR_REASON(CAPI_R_PUBKEY_EXPORT_LENGTH_ERROR),"pubkey export length error"}, 121 {ERR_REASON(CAPI_R_UNKNOWN_COMMAND) ,"unknown command"}, 122 {ERR_REASON(CAPI_R_UNSUPPORTED_ALGORITHM_NID),"unsupported algorithm nid"}, 123 {ERR_REASON(CAPI_R_UNSUPPORTED_PADDING) ,"unsupported padding"}, 124 {ERR_REASON(CAPI_R_UNSUPPORTED_PUBLIC_KEY_ALGORITHM),"unsupported public key algorithm"}, 125 {ERR_REASON(CAPI_R_WIN32_ERROR) ,"win32 error"}, 126 {0,NULL} 127 }; 128 129 #endif 130 131 #ifdef CAPI_LIB_NAME 132 static ERR_STRING_DATA CAPI_lib_name[]= 133 { 134 {0 ,CAPI_LIB_NAME}, 135 {0,NULL} 136 }; 137 #endif 138 139 140 static int CAPI_lib_error_code=0; 141 static int CAPI_error_init=1; 142 143 static void ERR_load_CAPI_strings(void) 144 { 145 if (CAPI_lib_error_code == 0) 146 CAPI_lib_error_code=ERR_get_next_error_library(); 147 148 if (CAPI_error_init) 149 { 150 CAPI_error_init=0; 151 #ifndef OPENSSL_NO_ERR 152 ERR_load_strings(CAPI_lib_error_code,CAPI_str_functs); 153 ERR_load_strings(CAPI_lib_error_code,CAPI_str_reasons); 154 #endif 155 156 #ifdef CAPI_LIB_NAME 157 CAPI_lib_name->error = ERR_PACK(CAPI_lib_error_code,0,0); 158 ERR_load_strings(0,CAPI_lib_name); 159 #endif 160 } 161 } 162 163 static void ERR_unload_CAPI_strings(void) 164 { 165 if (CAPI_error_init == 0) 166 { 167 #ifndef OPENSSL_NO_ERR 168 ERR_unload_strings(CAPI_lib_error_code,CAPI_str_functs); 169 ERR_unload_strings(CAPI_lib_error_code,CAPI_str_reasons); 170 #endif 171 172 #ifdef CAPI_LIB_NAME 173 ERR_unload_strings(0,CAPI_lib_name); 174 #endif 175 CAPI_error_init=1; 176 } 177 } 178 179 static void ERR_CAPI_error(int function, int reason, char *file, int line) 180 { 181 if (CAPI_lib_error_code == 0) 182 CAPI_lib_error_code=ERR_get_next_error_library(); 183 ERR_PUT_error(CAPI_lib_error_code,function,reason,file,line); 184 } 185