X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=e_gost_err.c;h=c6d221bfcf5601d35bce3e7149131721a1eb52ee;hb=f3de3689c492f4f45e1bbf4af2b6fab5b57dcecf;hp=b643f112adcd1e84de86f33150e981bccb65c183;hpb=d65fbca16e140be5ba5ea7799c543cbe579b3f0e;p=openssl-gost%2Fengine.git diff --git a/e_gost_err.c b/e_gost_err.c index b643f11..c6d221b 100644 --- a/e_gost_err.c +++ b/e_gost_err.c @@ -11,7 +11,17 @@ #include #include "e_gost_err.h" +#ifdef OPENSSL_VERSION_MAJOR +/* + * OpenSSL 3.0 or higher: + * Function codes are no more, and ERR_raise() + ERR_set_debug is preferred + * to ERR_PUT_error(). + */ +# define OPENSSL_ERR_NEW_WORLD_ORDER +#endif + #ifndef OPENSSL_NO_ERR +# ifndef OPENSSL_ERR_NEW_WORLD_ORDER static ERR_STRING_DATA GOST_str_functs[] = { {ERR_PACK(0, GOST_F_DECODE_GOST_ALGOR_PARAMS, 0), @@ -20,17 +30,32 @@ static ERR_STRING_DATA GOST_str_functs[] = { "encode_gost_algor_params"}, {ERR_PACK(0, GOST_F_FILL_GOST_EC_PARAMS, 0), "fill_GOST_EC_params"}, {ERR_PACK(0, GOST_F_GET_ENCRYPTION_PARAMS, 0), "get_encryption_params"}, + {ERR_PACK(0, GOST_F_GOST2015_GET_ASN1_PARAMS, 0), + "gost2015_get_asn1_params"}, + {ERR_PACK(0, GOST_F_GOST2015_SET_ASN1_PARAMS, 0), + "gost2015_set_asn1_params"}, {ERR_PACK(0, GOST_F_GOST89_GET_ASN1_PARAMETERS, 0), "gost89_get_asn1_parameters"}, {ERR_PACK(0, GOST_F_GOST89_SET_ASN1_PARAMETERS, 0), "gost89_set_asn1_parameters"}, {ERR_PACK(0, GOST_F_GOST_CIPHER_CTL, 0), "gost_cipher_ctl"}, + {ERR_PACK(0, GOST_F_GOST_CMS_SET_KARI_SHARED_INFO, 0), + "gost_cms_set_kari_shared_info"}, + {ERR_PACK(0, GOST_F_GOST_CMS_SET_KTRI_SHARED_INFO, 0), + "gost_cms_set_ktri_shared_info"}, + {ERR_PACK(0, GOST_F_GOST_CMS_SET_SHARED_INFO, 0), + "gost_cms_set_shared_info"}, {ERR_PACK(0, GOST_F_GOST_EC_COMPUTE_PUBLIC, 0), "gost_ec_compute_public"}, {ERR_PACK(0, GOST_F_GOST_EC_KEYGEN, 0), "gost_ec_keygen"}, {ERR_PACK(0, GOST_F_GOST_EC_SIGN, 0), "gost_ec_sign"}, {ERR_PACK(0, GOST_F_GOST_EC_VERIFY, 0), "gost_ec_verify"}, + {ERR_PACK(0, GOST_F_GOST_ENCODE_CMS_PARAMS, 0), "gost_encode_cms_params"}, {ERR_PACK(0, GOST_F_GOST_GRASSHOPPER_CIPHER_CTL, 0), "gost_grasshopper_cipher_ctl"}, + {ERR_PACK(0, GOST_F_GOST_GRASSHOPPER_CIPHER_DO_CTRACPKM_OMAC, 0), + "gost_grasshopper_cipher_do_ctracpkm_omac"}, + {ERR_PACK(0, GOST_F_GOST_GRASSHOPPER_CIPHER_INIT_CTRACPKM_OMAC, 0), + "gost_grasshopper_cipher_init_ctracpkm_omac"}, {ERR_PACK(0, GOST_F_GOST_GRASSHOPPER_SET_ASN1_PARAMETERS, 0), "gost_grasshopper_set_asn1_parameters"}, {ERR_PACK(0, GOST_F_GOST_IMIT_CTRL, 0), "gost_imit_ctrl"}, @@ -39,6 +64,11 @@ static ERR_STRING_DATA GOST_str_functs[] = { {ERR_PACK(0, GOST_F_GOST_KDFTREE2012_256, 0), "gost_kdftree2012_256"}, {ERR_PACK(0, GOST_F_GOST_KEXP15, 0), "gost_kexp15"}, {ERR_PACK(0, GOST_F_GOST_KIMP15, 0), "gost_kimp15"}, + {ERR_PACK(0, GOST_F_MAGMA_CIPHER_CTL, 0), "magma_cipher_ctl"}, + {ERR_PACK(0, GOST_F_MAGMA_CIPHER_CTL_ACPKM_OMAC, 0), + "magma_cipher_ctl_acpkm_omac"}, + {ERR_PACK(0, GOST_F_MAGMA_CIPHER_INIT_CTR_ACPKM_OMAC, 0), + "magma_cipher_init_ctr_acpkm_omac"}, {ERR_PACK(0, GOST_F_OMAC_ACPKM_IMIT_CTRL, 0), "omac_acpkm_imit_ctrl"}, {ERR_PACK(0, GOST_F_OMAC_ACPKM_IMIT_FINAL, 0), "omac_acpkm_imit_final"}, {ERR_PACK(0, GOST_F_OMAC_ACPKM_IMIT_UPDATE, 0), "omac_acpkm_imit_update"}, @@ -84,6 +114,7 @@ static ERR_STRING_DATA GOST_str_functs[] = { {ERR_PACK(0, GOST_F_VKO_COMPUTE_KEY, 0), "VKO_compute_key"}, {0, NULL} }; +# endif static ERR_STRING_DATA GOST_str_reasons[] = { {ERR_PACK(0, 0, GOST_R_BAD_KEY_PARAMETERS_FORMAT), @@ -102,11 +133,15 @@ static ERR_STRING_DATA GOST_str_reasons[] = { "error computing export keys"}, {ERR_PACK(0, 0, GOST_R_ERROR_COMPUTING_SHARED_KEY), "error computing shared key"}, + {ERR_PACK(0, 0, GOST_R_ERROR_DECODING_PUBLIC_KEY), + "error decoding public key"}, {ERR_PACK(0, 0, GOST_R_ERROR_PARSING_KEY_TRANSPORT_INFO), "error parsing key transport info"}, {ERR_PACK(0, 0, GOST_R_ERROR_POINT_MUL), "error point mul"}, + {ERR_PACK(0, 0, GOST_R_ERROR_SETTING_PEER_KEY), "error setting peer key"}, {ERR_PACK(0, 0, GOST_R_INCOMPATIBLE_ALGORITHMS), "incompatible algorithms"}, {ERR_PACK(0, 0, GOST_R_INCOMPATIBLE_PEER_KEY), "incompatible peer key"}, + {ERR_PACK(0, 0, GOST_R_INVALID_BUFFER_SIZE), "invalid buffer size"}, {ERR_PACK(0, 0, GOST_R_INVALID_CIPHER), "invalid cipher"}, {ERR_PACK(0, 0, GOST_R_INVALID_CIPHER_PARAMS), "invalid cipher params"}, {ERR_PACK(0, 0, GOST_R_INVALID_CIPHER_PARAM_OID), @@ -135,11 +170,14 @@ static ERR_STRING_DATA GOST_str_reasons[] = { "unsupported cipher ctl command"}, {ERR_PACK(0, 0, GOST_R_UNSUPPORTED_PARAMETER_SET), "unsupported parameter set"}, + {ERR_PACK(0, 0, GOST_R_UNSUPPORTED_RECIPIENT_INFO), + "unsupported recipient info"}, {0, NULL} }; #endif +#ifndef GOST_PROV static int lib_code = 0; static int error_loaded = 0; @@ -150,7 +188,9 @@ int ERR_load_GOST_strings(void) if (!error_loaded) { #ifndef OPENSSL_NO_ERR +# ifndef OPENSSL_ERR_NEW_WORLD_ORDER ERR_load_strings(lib_code, GOST_str_functs); +# endif ERR_load_strings(lib_code, GOST_str_reasons); #endif error_loaded = 1; @@ -162,7 +202,9 @@ void ERR_unload_GOST_strings(void) { if (error_loaded) { #ifndef OPENSSL_NO_ERR +# ifndef OPENSSL_ERR_NEW_WORLD_ORDER ERR_unload_strings(lib_code, GOST_str_functs); +# endif ERR_unload_strings(lib_code, GOST_str_reasons); #endif error_loaded = 0; @@ -173,5 +215,11 @@ void ERR_GOST_error(int function, int reason, char *file, int line) { if (lib_code == 0) lib_code = ERR_get_next_error_library(); +#ifndef OPENSSL_ERR_NEW_WORLD_ORDER ERR_PUT_error(lib_code, function, reason, file, line); +#else + ERR_raise(lib_code, reason); + ERR_set_debug(file, line, NULL); +#endif } +#endif