X-Git-Url: http://wagner.pp.ru/gitweb/?a=blobdiff_plain;f=e_gost_err.c;h=c6d221bfcf5601d35bce3e7149131721a1eb52ee;hb=97b3db1ebf985b73718faaae6c425782d526d44f;hp=b7aa855203572c3b187435e6ef6f824f3f0219b4;hpb=5f76803c2582cccacd73cf285267418cb40d9a3d;p=openssl-gost%2Fengine.git diff --git a/e_gost_err.c b/e_gost_err.c index b7aa855..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,6 +30,10 @@ 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), @@ -35,8 +49,13 @@ static ERR_STRING_DATA GOST_str_functs[] = { {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"}, @@ -45,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"}, @@ -90,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), @@ -116,6 +141,7 @@ static ERR_STRING_DATA GOST_str_reasons[] = { {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), @@ -151,6 +177,7 @@ static ERR_STRING_DATA GOST_str_reasons[] = { #endif +#ifndef GOST_PROV static int lib_code = 0; static int error_loaded = 0; @@ -161,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; @@ -173,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; @@ -184,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