int FIPS_selftest_dsa() { DSA *dsa=NULL; EVP_PKEY pk; int ret = 0; dsa = FIPS_dsa_new(); if(dsa == NULL) goto err; fips_load_key_component(dsa, p, dsa_test_2048); fips_load_key_component(dsa, q, dsa_test_2048); fips_load_key_component(dsa, g, dsa_test_2048); fips_load_key_component(dsa, pub_key, dsa_test_2048); fips_load_key_component(dsa, priv_key, dsa_test_2048); pk.type = EVP_PKEY_DSA; pk.pkey.dsa = dsa; if (!fips_pkey_signature_test(FIPS_TEST_SIGNATURE, &pk, NULL, 0, NULL, 0, EVP_sha384(), 0, "DSA SHA384")) goto err; ret = 1; err: if (dsa) FIPS_dsa_free(dsa); return ret; }
static int setrsakey(RSA *k) { fips_load_key_component(k, n, rsa_test_2048); fips_load_key_component(k, e, rsa_test_2048); fips_load_key_component(k, d, rsa_test_2048); fips_load_key_component(k, p, rsa_test_2048); fips_load_key_component(k, q, rsa_test_2048); fips_load_key_component(k, dmp1, rsa_test_2048); fips_load_key_component(k, dmq1, rsa_test_2048); fips_load_key_component(k, iqmp, rsa_test_2048); return 1; err: return 0; }
int FIPS_selftest_dsa() { DSA *dsa = NULL; EVP_PKEY *pk = NULL; int ret = 0; dsa = DSA_new(); if (dsa == NULL) goto err; fips_load_key_component(dsa, p, dsa_test_2048); fips_load_key_component(dsa, q, dsa_test_2048); fips_load_key_component(dsa, g, dsa_test_2048); fips_load_key_component(dsa, pub_key, dsa_test_2048); fips_load_key_component(dsa, priv_key, dsa_test_2048); if (corrupt_dsa) BN_set_bit(dsa->pub_key, 2047); if ((pk = EVP_PKEY_new()) == NULL) goto err; EVP_PKEY_assign_DSA(pk, dsa); if (!fips_pkey_signature_test(pk, NULL, 0, NULL, 0, EVP_sha256(), 0, "DSA SHA256")) goto err; ret = 1; err: if (pk) EVP_PKEY_free(pk); else if (dsa) DSA_free(dsa); return ret; }