X-Git-Url: https://wagner.pp.ru/gitweb/?a=blobdiff_plain;ds=sidebyside;f=gost_eng.c;fp=gost_eng.c;h=4129260286b350d563b7a3224d49a0961d40f0ae;hb=02f99b2e3b46f4ff44fd5420487551d5a447c2ad;hp=5924791b7735d35ff7ab1e97b3fc608e3cfb4f3a;hpb=c98ba9d03213d0c63d6874539d59f7b55fbc3fae;p=openssl-gost%2Fengine.git diff --git a/gost_eng.c b/gost_eng.c index 5924791..4129260 100644 --- a/gost_eng.c +++ b/gost_eng.c @@ -19,6 +19,10 @@ static const char *engine_gost_id = "gost"; static const char *engine_gost_name = "Reference implementation of GOST engine"; +static int gost_pkey_meth_nids[] = { + NID_id_GostR3410_2001, NID_id_Gost28147_89_MAC, 0 +}; + /* Symmetric cipher and digest function registrar */ static int gost_ciphers(ENGINE *e, const EVP_CIPHER **cipher, @@ -38,15 +42,11 @@ static int gost_cipher_nids[] = { NID_id_Gost28147_89, NID_gost89_cnt, 0 }; static int gost_digest_nids[] = { NID_id_GostR3411_94, NID_id_Gost28147_89_MAC, 0 }; -static int gost_pkey_meth_nids[] = { NID_id_GostR3410_94, - NID_id_GostR3410_2001, NID_id_Gost28147_89_MAC, 0 -}; - -static EVP_PKEY_METHOD *pmeth_GostR3410_94 = NULL, - *pmeth_GostR3410_2001 = NULL, *pmeth_Gost28147_MAC = NULL; +static EVP_PKEY_METHOD *pmeth_GostR3410_2001 = NULL; +static EVP_PKEY_METHOD *pmeth_Gost28147_MAC = NULL; -static EVP_PKEY_ASN1_METHOD *ameth_GostR3410_94 = NULL, - *ameth_GostR3410_2001 = NULL, *ameth_Gost28147_MAC = NULL; +static EVP_PKEY_ASN1_METHOD *ameth_GostR3410_2001 = NULL; +static EVP_PKEY_ASN1_METHOD *ameth_Gost28147_MAC = NULL; static int gost_engine_init(ENGINE *e) { @@ -62,10 +62,8 @@ static int gost_engine_destroy(ENGINE *e) { gost_param_free(); - pmeth_GostR3410_94 = NULL; pmeth_GostR3410_2001 = NULL; pmeth_Gost28147_MAC = NULL; - ameth_GostR3410_94 = NULL; ameth_GostR3410_2001 = NULL; ameth_Gost28147_MAC = NULL; return 1; @@ -76,7 +74,7 @@ static int bind_gost(ENGINE *e, const char *id) int ret = 0; if (id && strcmp(id, engine_gost_id)) return 0; - if (ameth_GostR3410_94) { + if (ameth_GostR3410_2001) { printf("GOST engine already loaded\n"); goto end; } @@ -120,10 +118,6 @@ static int bind_gost(ENGINE *e, const char *id) goto end; } - if (!register_ameth_gost - (NID_id_GostR3410_94, &ameth_GostR3410_94, "GOST94", - "GOST R 34.10-94")) - goto end; if (!register_ameth_gost (NID_id_GostR3410_2001, &ameth_GostR3410_2001, "GOST2001", "GOST R 34.10-2001")) @@ -132,12 +126,9 @@ static int bind_gost(ENGINE *e, const char *id) "GOST-MAC", "GOST 28147-89 MAC")) goto end; - if (!register_pmeth_gost(NID_id_GostR3410_94, &pmeth_GostR3410_94, 0)) - goto end; if (!register_pmeth_gost(NID_id_GostR3410_2001, &pmeth_GostR3410_2001, 0)) goto end; - if (!register_pmeth_gost - (NID_id_Gost28147_89_MAC, &pmeth_Gost28147_MAC, 0)) + if (!register_pmeth_gost(NID_id_Gost28147_89_MAC, &pmeth_Gost28147_MAC, 0)) goto end; if (!ENGINE_register_ciphers(e) || !ENGINE_register_digests(e) @@ -208,13 +199,10 @@ static int gost_pkey_meths(ENGINE *e, EVP_PKEY_METHOD **pmeth, { if (!pmeth) { *nids = gost_pkey_meth_nids; - return 3; + return 2; } switch (nid) { - case NID_id_GostR3410_94: - *pmeth = pmeth_GostR3410_94; - return 1; case NID_id_GostR3410_2001: *pmeth = pmeth_GostR3410_2001; return 1; @@ -233,12 +221,9 @@ static int gost_pkey_asn1_meths(ENGINE *e, EVP_PKEY_ASN1_METHOD **ameth, { if (!ameth) { *nids = gost_pkey_meth_nids; - return 3; + return 2; } switch (nid) { - case NID_id_GostR3410_94: - *ameth = ameth_GostR3410_94; - return 1; case NID_id_GostR3410_2001: *ameth = ameth_GostR3410_2001; return 1; @@ -269,7 +254,7 @@ static ENGINE *engine_gost(void) void ENGINE_load_gost(void) { ENGINE *toadd; - if (pmeth_GostR3410_94) + if (pmeth_GostR3410_2001) return; toadd = engine_gost(); if (!toadd)