e_gost_err.c revision 280304
1/* e_gost_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/* 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 "e_gost_err.h" 65 66/* BEGIN ERROR CODES */ 67#ifndef OPENSSL_NO_ERR 68 69# define ERR_FUNC(func) ERR_PACK(0,func,0) 70# define ERR_REASON(reason) ERR_PACK(0,0,reason) 71 72static ERR_STRING_DATA GOST_str_functs[] = { 73 {ERR_FUNC(GOST_F_DECODE_GOST_ALGOR_PARAMS), "DECODE_GOST_ALGOR_PARAMS"}, 74 {ERR_FUNC(GOST_F_ENCODE_GOST_ALGOR_PARAMS), "ENCODE_GOST_ALGOR_PARAMS"}, 75 {ERR_FUNC(GOST_F_FILL_GOST2001_PARAMS), "FILL_GOST2001_PARAMS"}, 76 {ERR_FUNC(GOST_F_FILL_GOST94_PARAMS), "FILL_GOST94_PARAMS"}, 77 {ERR_FUNC(GOST_F_GET_ENCRYPTION_PARAMS), "GET_ENCRYPTION_PARAMS"}, 78 {ERR_FUNC(GOST_F_GOST2001_COMPUTE_PUBLIC), "GOST2001_COMPUTE_PUBLIC"}, 79 {ERR_FUNC(GOST_F_GOST2001_DO_SIGN), "GOST2001_DO_SIGN"}, 80 {ERR_FUNC(GOST_F_GOST2001_DO_VERIFY), "GOST2001_DO_VERIFY"}, 81 {ERR_FUNC(GOST_F_GOST2001_KEYGEN), "GOST2001_KEYGEN"}, 82 {ERR_FUNC(GOST_F_GOST89_GET_ASN1_PARAMETERS), 83 "GOST89_GET_ASN1_PARAMETERS"}, 84 {ERR_FUNC(GOST_F_GOST89_SET_ASN1_PARAMETERS), 85 "GOST89_SET_ASN1_PARAMETERS"}, 86 {ERR_FUNC(GOST_F_GOST94_COMPUTE_PUBLIC), "GOST94_COMPUTE_PUBLIC"}, 87 {ERR_FUNC(GOST_F_GOST_CIPHER_CTL), "GOST_CIPHER_CTL"}, 88 {ERR_FUNC(GOST_F_GOST_DO_SIGN), "GOST_DO_SIGN"}, 89 {ERR_FUNC(GOST_F_GOST_DO_VERIFY), "GOST_DO_VERIFY"}, 90 {ERR_FUNC(GOST_F_GOST_IMIT_CTRL), "GOST_IMIT_CTRL"}, 91 {ERR_FUNC(GOST_F_GOST_IMIT_FINAL), "GOST_IMIT_FINAL"}, 92 {ERR_FUNC(GOST_F_GOST_IMIT_UPDATE), "GOST_IMIT_UPDATE"}, 93 {ERR_FUNC(GOST_F_PARAM_COPY_GOST01), "PARAM_COPY_GOST01"}, 94 {ERR_FUNC(GOST_F_PARAM_COPY_GOST94), "PARAM_COPY_GOST94"}, 95 {ERR_FUNC(GOST_F_PKEY_GOST01CP_DECRYPT), "PKEY_GOST01CP_DECRYPT"}, 96 {ERR_FUNC(GOST_F_PKEY_GOST01CP_ENCRYPT), "PKEY_GOST01CP_ENCRYPT"}, 97 {ERR_FUNC(GOST_F_PKEY_GOST01CP_KEYGEN), "PKEY_GOST01CP_KEYGEN"}, 98 {ERR_FUNC(GOST_F_PKEY_GOST01_PARAMGEN), "PKEY_GOST01_PARAMGEN"}, 99 {ERR_FUNC(GOST_F_PKEY_GOST2001_DERIVE), "PKEY_GOST2001_DERIVE"}, 100 {ERR_FUNC(GOST_F_PKEY_GOST94CP_DECRYPT), "PKEY_GOST94CP_DECRYPT"}, 101 {ERR_FUNC(GOST_F_PKEY_GOST94CP_ENCRYPT), "PKEY_GOST94CP_ENCRYPT"}, 102 {ERR_FUNC(GOST_F_PKEY_GOST94CP_KEYGEN), "PKEY_GOST94CP_KEYGEN"}, 103 {ERR_FUNC(GOST_F_PKEY_GOST94_PARAMGEN), "PKEY_GOST94_PARAMGEN"}, 104 {ERR_FUNC(GOST_F_PKEY_GOST_CTRL), "PKEY_GOST_CTRL"}, 105 {ERR_FUNC(GOST_F_PKEY_GOST_CTRL01_STR), "PKEY_GOST_CTRL01_STR"}, 106 {ERR_FUNC(GOST_F_PKEY_GOST_CTRL94_STR), "PKEY_GOST_CTRL94_STR"}, 107 {ERR_FUNC(GOST_F_PKEY_GOST_MAC_CTRL), "PKEY_GOST_MAC_CTRL"}, 108 {ERR_FUNC(GOST_F_PKEY_GOST_MAC_CTRL_STR), "PKEY_GOST_MAC_CTRL_STR"}, 109 {ERR_FUNC(GOST_F_PKEY_GOST_MAC_KEYGEN), "PKEY_GOST_MAC_KEYGEN"}, 110 {ERR_FUNC(GOST_F_PRINT_GOST_01), "PRINT_GOST_01"}, 111 {ERR_FUNC(GOST_F_PRIV_DECODE_GOST), "PRIV_DECODE_GOST"}, 112 {ERR_FUNC(GOST_F_PUB_DECODE_GOST01), "PUB_DECODE_GOST01"}, 113 {ERR_FUNC(GOST_F_PUB_DECODE_GOST94), "PUB_DECODE_GOST94"}, 114 {ERR_FUNC(GOST_F_PUB_ENCODE_GOST01), "PUB_ENCODE_GOST01"}, 115 {ERR_FUNC(GOST_F_UNPACK_CC_SIGNATURE), "UNPACK_CC_SIGNATURE"}, 116 {ERR_FUNC(GOST_F_UNPACK_CP_SIGNATURE), "UNPACK_CP_SIGNATURE"}, 117 {0, NULL} 118}; 119 120static ERR_STRING_DATA GOST_str_reasons[] = { 121 {ERR_REASON(GOST_R_BAD_KEY_PARAMETERS_FORMAT), 122 "bad key parameters format"}, 123 {ERR_REASON(GOST_R_BAD_PKEY_PARAMETERS_FORMAT), 124 "bad pkey parameters format"}, 125 {ERR_REASON(GOST_R_CANNOT_PACK_EPHEMERAL_KEY), 126 "cannot pack ephemeral key"}, 127 {ERR_REASON(GOST_R_CTRL_CALL_FAILED), "ctrl call failed"}, 128 {ERR_REASON(GOST_R_ERROR_COMPUTING_SHARED_KEY), 129 "error computing shared key"}, 130 {ERR_REASON(GOST_R_ERROR_PACKING_KEY_TRANSPORT_INFO), 131 "error packing key transport info"}, 132 {ERR_REASON(GOST_R_ERROR_PARSING_KEY_TRANSPORT_INFO), 133 "error parsing key transport info"}, 134 {ERR_REASON(GOST_R_INCOMPATIBLE_ALGORITHMS), "incompatible algorithms"}, 135 {ERR_REASON(GOST_R_INCOMPATIBLE_PEER_KEY), "incompatible peer key"}, 136 {ERR_REASON(GOST_R_INVALID_CIPHER_PARAMS), "invalid cipher params"}, 137 {ERR_REASON(GOST_R_INVALID_CIPHER_PARAM_OID), "invalid cipher param oid"}, 138 {ERR_REASON(GOST_R_INVALID_DIGEST_TYPE), "invalid digest type"}, 139 {ERR_REASON(GOST_R_INVALID_GOST94_PARMSET), "invalid gost94 parmset"}, 140 {ERR_REASON(GOST_R_INVALID_IV_LENGTH), "invalid iv length"}, 141 {ERR_REASON(GOST_R_INVALID_MAC_KEY_LENGTH), "invalid mac key length"}, 142 {ERR_REASON(GOST_R_INVALID_PARAMSET), "invalid paramset"}, 143 {ERR_REASON(GOST_R_KEY_IS_NOT_INITALIZED), "key is not initalized"}, 144 {ERR_REASON(GOST_R_KEY_IS_NOT_INITIALIZED), "key is not initialized"}, 145 {ERR_REASON(GOST_R_KEY_PARAMETERS_MISSING), "key parameters missing"}, 146 {ERR_REASON(GOST_R_MAC_KEY_NOT_SET), "mac key not set"}, 147 {ERR_REASON(GOST_R_MALLOC_FAILURE), "malloc failure"}, 148 {ERR_REASON(GOST_R_NO_MEMORY), "no memory"}, 149 {ERR_REASON(GOST_R_NO_PARAMETERS_SET), "no parameters set"}, 150 {ERR_REASON(GOST_R_NO_PEER_KEY), "no peer key"}, 151 {ERR_REASON(GOST_R_NO_PRIVATE_PART_OF_NON_EPHEMERAL_KEYPAIR), 152 "no private part of non ephemeral keypair"}, 153 {ERR_REASON(GOST_R_PUBLIC_KEY_UNDEFINED), "public key undefined"}, 154 {ERR_REASON(GOST_R_RANDOM_GENERATOR_ERROR), "random generator error"}, 155 {ERR_REASON(GOST_R_RANDOM_GENERATOR_FAILURE), "random generator failure"}, 156 {ERR_REASON(GOST_R_RANDOM_NUMBER_GENERATOR_FAILED), 157 "random number generator failed"}, 158 {ERR_REASON(GOST_R_SIGNATURE_MISMATCH), "signature mismatch"}, 159 {ERR_REASON(GOST_R_SIGNATURE_PARTS_GREATER_THAN_Q), 160 "signature parts greater than q"}, 161 {ERR_REASON(GOST_R_UKM_NOT_SET), "ukm not set"}, 162 {ERR_REASON(GOST_R_UNSUPPORTED_CIPHER_CTL_COMMAND), 163 "unsupported cipher ctl command"}, 164 {ERR_REASON(GOST_R_UNSUPPORTED_PARAMETER_SET), 165 "unsupported parameter set"}, 166 {0, NULL} 167}; 168 169#endif 170 171#ifdef GOST_LIB_NAME 172static ERR_STRING_DATA GOST_lib_name[] = { 173 {0, GOST_LIB_NAME}, 174 {0, NULL} 175}; 176#endif 177 178static int GOST_lib_error_code = 0; 179static int GOST_error_init = 1; 180 181void ERR_load_GOST_strings(void) 182{ 183 if (GOST_lib_error_code == 0) 184 GOST_lib_error_code = ERR_get_next_error_library(); 185 186 if (GOST_error_init) { 187 GOST_error_init = 0; 188#ifndef OPENSSL_NO_ERR 189 ERR_load_strings(GOST_lib_error_code, GOST_str_functs); 190 ERR_load_strings(GOST_lib_error_code, GOST_str_reasons); 191#endif 192 193#ifdef GOST_LIB_NAME 194 GOST_lib_name->error = ERR_PACK(GOST_lib_error_code, 0, 0); 195 ERR_load_strings(0, GOST_lib_name); 196#endif 197 } 198} 199 200void ERR_unload_GOST_strings(void) 201{ 202 if (GOST_error_init == 0) { 203#ifndef OPENSSL_NO_ERR 204 ERR_unload_strings(GOST_lib_error_code, GOST_str_functs); 205 ERR_unload_strings(GOST_lib_error_code, GOST_str_reasons); 206#endif 207 208#ifdef GOST_LIB_NAME 209 ERR_unload_strings(0, GOST_lib_name); 210#endif 211 GOST_error_init = 1; 212 } 213} 214 215void ERR_GOST_error(int function, int reason, char *file, int line) 216{ 217 if (GOST_lib_error_code == 0) 218 GOST_lib_error_code = ERR_get_next_error_library(); 219 ERR_PUT_error(GOST_lib_error_code, function, reason, file, line); 220} 221