diff options
author | Dr. Stephen Henson <steve@openssl.org> | 2011-02-13 18:45:41 +0000 |
---|---|---|
committer | Dr. Stephen Henson <steve@openssl.org> | 2011-02-13 18:45:41 +0000 |
commit | e990b4f838eaa649a1849d25db5be2236632fe34 (patch) | |
tree | b099e52a8c5e3d6057a0ee8090bf81dc9660a016 /fips | |
parent | e47af46cd839c549fac2d9f8a2951c35c0113fbf (diff) |
Remove dependency of dsa_sign.o and dsa_vrf.o: new functions FIPS_dsa_sig_new
and FIPS_dsa_sig_free, reimplment DSA_SIG_new and DSA_SIG_free from ASN1
library.
Diffstat (limited to 'fips')
-rw-r--r-- | fips/dsa/fips_dsa_lib.c | 23 | ||||
-rw-r--r-- | fips/dsa/fips_dsa_selftest.c | 2 | ||||
-rw-r--r-- | fips/dsa/fips_dsatest.c | 2 | ||||
-rw-r--r-- | fips/dsa/fips_dssvs.c | 2 | ||||
-rw-r--r-- | fips/fips.c | 2 | ||||
-rw-r--r-- | fips/fips.h | 3 | ||||
-rw-r--r-- | fips/fips_test_suite.c | 2 |
7 files changed, 31 insertions, 5 deletions
diff --git a/fips/dsa/fips_dsa_lib.c b/fips/dsa/fips_dsa_lib.c index 06f8cabfee..2e2f192aff 100644 --- a/fips/dsa/fips_dsa_lib.c +++ b/fips/dsa/fips_dsa_lib.c @@ -96,3 +96,26 @@ void FIPS_dsa_free(DSA *r) OPENSSL_free(r); } +DSA_SIG *FIPS_dsa_sig_new(void) + { + DSA_SIG *sig; + sig = OPENSSL_malloc(sizeof(DSA_SIG)); + if (!sig) + return NULL; + sig->r = NULL; + sig->s = NULL; + return sig; + } + +void FIPS_dsa_sig_free(DSA_SIG *sig) + { + if (sig) + { + if (sig->r) + BN_free(sig->r); + if (sig->s) + BN_free(sig->s); + OPENSSL_free(sig); + } + } + diff --git a/fips/dsa/fips_dsa_selftest.c b/fips/dsa/fips_dsa_selftest.c index 2fbdad5d47..ee225906bd 100644 --- a/fips/dsa/fips_dsa_selftest.c +++ b/fips/dsa/fips_dsa_selftest.c @@ -156,7 +156,7 @@ int FIPS_selftest_dsa() if (dsa) FIPS_dsa_free(dsa); if (dsig) - DSA_SIG_free(dsig); + FIPS_dsa_sig_free(dsig); if (ret == 0) FIPSerr(FIPS_F_FIPS_SELFTEST_DSA,FIPS_R_SELFTEST_FAILED); return ret; diff --git a/fips/dsa/fips_dsatest.c b/fips/dsa/fips_dsatest.c index 9294286c75..3e773687a1 100644 --- a/fips/dsa/fips_dsatest.c +++ b/fips/dsa/fips_dsatest.c @@ -231,7 +231,7 @@ int main(int argc, char **argv) end: if (sig) - DSA_SIG_free(sig); + FIPS_dsa_sig_free(sig); if (dsa != NULL) FIPS_dsa_free(dsa); FIPS_md_ctx_cleanup(&mctx); #if 0 diff --git a/fips/dsa/fips_dssvs.c b/fips/dsa/fips_dssvs.c index 9ee0ccc95f..ff7f8139b3 100644 --- a/fips/dsa/fips_dssvs.c +++ b/fips/dsa/fips_dssvs.c @@ -548,7 +548,7 @@ static void siggen() pbn("R",sig->r); pbn("S",sig->s); putc('\n',stdout); - DSA_SIG_free(sig); + FIPS_dsa_sig_free(sig); FIPS_md_ctx_cleanup(&mctx); } } diff --git a/fips/fips.c b/fips/fips.c index 3d745557fc..51696b5e7c 100644 --- a/fips/fips.c +++ b/fips/fips.c @@ -498,7 +498,7 @@ int fips_pkey_signature_test(EVP_PKEY *pkey, error: if (dsig != NULL) - DSA_SIG_free(dsig); + FIPS_dsa_sig_free(dsig); if (sig != sigtmp) OPENSSL_free(sig); FIPS_md_ctx_cleanup(&mctx); diff --git a/fips/fips.h b/fips/fips.h index 9d7c37096d..facdbc725c 100644 --- a/fips/fips.h +++ b/fips/fips.h @@ -147,6 +147,9 @@ void FIPS_set_locking_callback(void (*func)(int mode, int type, #define EVP_CIPHER_CTX_new FIPS_cipher_ctx_new #define EVP_CIPHER_CTX_free FIPS_cipher_ctx_free +#define DSA_SIG_new FIPS_dsa_sig_new +#define DSA_SIG_free FIPS_dsa_sig_free + #endif /* BEGIN ERROR CODES */ diff --git a/fips/fips_test_suite.c b/fips/fips_test_suite.c index a06c86260f..392a889ca0 100644 --- a/fips/fips_test_suite.c +++ b/fips/fips_test_suite.c @@ -131,7 +131,7 @@ static int FIPS_dsa_test(int bad) r = FIPS_dsa_verify_ctx(dsa, &mctx, sig); end: if (sig) - DSA_SIG_free(sig); + FIPS_dsa_sig_free(sig); FIPS_md_ctx_cleanup(&mctx); if (dsa) FIPS_dsa_free(dsa); |