static int bind_helper(ENGINE * e) { if (!ENGINE_set_id(e, TEST_ENGINE_ID) || !ENGINE_set_name(e, TEST_ENGINE_NAME) || !ENGINE_set_ctrl_function(e, test_engine_ctrl) || !ENGINE_set_cmd_defns(e, te_cmd_defns) || !ENGINE_set_digests(e, te_digests) || !ENGINE_set_pkey_meths(e, te_pkey_meths) || !ENGINE_set_pkey_asn1_meths(e, te_pkey_asn1_meths) ) { printf("Engine init failed\n"); return 0; } if (!register_ameth_gost(NID_hmac_sha1, &ameth_HMAC_SHA1, "hmac-sha1", "HMAC-SHA1 MAC") || !register_pmeth_gost(NID_hmac_sha1, &pmeth_HMAC_SHA1, 0)) { printf("Internal init failed\n"); return 0; } if(!ENGINE_register_digests(e) || !ENGINE_register_pkey_meths(e) || !ENGINE_register_pkey_asn1_meths(e) || !EVP_add_digest(&digest_hmac_sha1)) { printf("Digest registration failed\n"); return 0; } return 1; }
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) { printf ("GOST engine already loaded\n"); goto end; } if (!ENGINE_set_id (e, engine_gost_id)) { printf ("ENGINE_set_id failed\n"); goto end; } if (!ENGINE_set_name (e, engine_gost_name)) { printf ("ENGINE_set_name failed\n"); goto end; } if (!ENGINE_set_digests (e, gost_digests)) { printf ("ENGINE_set_digests failed\n"); goto end; } if (!ENGINE_set_ciphers (e, gost_ciphers)) { printf ("ENGINE_set_ciphers failed\n"); goto end; } if (!ENGINE_set_pkey_meths (e, gost_pkey_meths)) { printf ("ENGINE_set_pkey_meths failed\n"); goto end; } if (!ENGINE_set_pkey_asn1_meths (e, gost_pkey_asn1_meths)) { printf ("ENGINE_set_pkey_asn1_meths failed\n"); goto end; } /* Control function and commands */ if (!ENGINE_set_cmd_defns (e, gost_cmds)) { fprintf (stderr, "ENGINE_set_cmd_defns failed\n"); goto end; } if (!ENGINE_set_ctrl_function (e, gost_control_func)) { fprintf (stderr, "ENGINE_set_ctrl_func failed\n"); goto end; } if (!ENGINE_set_destroy_function (e, gost_engine_destroy) || !ENGINE_set_init_function (e, gost_engine_init) || !ENGINE_set_finish_function (e, gost_engine_finish)) { 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")) goto end; if (!register_ameth_gost (NID_id_Gost28147_89_MAC, &ameth_Gost28147_MAC, "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)) goto end; if (!ENGINE_register_ciphers (e) || !ENGINE_register_digests (e) || !ENGINE_register_pkey_meths (e) /* These two actually should go in LIST_ADD command */ || !EVP_add_cipher (&cipher_gost) || !EVP_add_cipher (&cipher_gost_cpacnt) || !EVP_add_digest (&digest_gost) || !EVP_add_digest (&imit_gost_cpa)) { goto end; } ERR_load_GOST_strings (); ret = 1; end: return ret; }