X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=e_gost_err.c;h=51599ca0cdbe28a70f9164028d7978e6a0e1808a;hb=374627ab520fca0a189d56a747abbff7e2b67bd7;hp=ed08b9eb84ec0e829bd623e89a8e62b00c2dcf70;hpb=fd5447e7fca18868178b225de76b49bf3dce90c6;p=openssl-gost%2Fengine.git diff --git a/e_gost_err.c b/e_gost_err.c index ed08b9e..51599ca 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), @@ -44,6 +54,8 @@ static ERR_STRING_DATA GOST_str_functs[] = { "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"}, @@ -55,6 +67,8 @@ static ERR_STRING_DATA GOST_str_functs[] = { {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"}, @@ -100,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), @@ -161,6 +176,7 @@ static ERR_STRING_DATA GOST_str_reasons[] = { #endif +#ifndef GOST_PROV static int lib_code = 0; static int error_loaded = 0; @@ -171,7 +187,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; @@ -183,7 +201,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; @@ -194,5 +214,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