aboutsummaryrefslogtreecommitdiffstats
path: root/ossl_pkey_dsa.c
diff options
context:
space:
mode:
authorMichal Rokos <m.rokos@sh.cvut.cz>2001-11-18 19:00:06 +0000
committerMichal Rokos <m.rokos@sh.cvut.cz>2001-11-18 19:00:06 +0000
commitdd5dc9508d397e96ee4aa849f411567e78b49e32 (patch)
treeda9f0f10e1cb9c0c4533b7fd28a071ff82c22154 /ossl_pkey_dsa.c
parent48053b2987e812c63e1c5dd1d60d311886767ee3 (diff)
downloadruby-openssl-history-dd5dc9508d397e96ee4aa849f411567e78b49e32.tar.gz
Released as 0.0.9
Diffstat (limited to 'ossl_pkey_dsa.c')
-rw-r--r--ossl_pkey_dsa.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/ossl_pkey_dsa.c b/ossl_pkey_dsa.c
index deb672e..bfb35cc 100644
--- a/ossl_pkey_dsa.c
+++ b/ossl_pkey_dsa.c
@@ -154,6 +154,7 @@ static VALUE ossl_dsa_initialize(int argc, VALUE *argv, VALUE self)
unsigned long h = 0;
BIO *in = NULL;
char *passwd = NULL;
+ void (*cb)() = NULL;
VALUE buffer, pass;
GetDSA_unsafe(self, dsap);
@@ -169,7 +170,9 @@ static VALUE ossl_dsa_initialize(int argc, VALUE *argv, VALUE self)
if (!RAND_bytes(seed, seed_len)) {
rb_raise(eDSAError, "%s", ossl_error());
}
- if (!(dsa = DSA_generate_parameters(FIX2INT(buffer), seed, seed_len, &counter, &h, ossl_dsa_generate_cb, NULL))) { /* arg to cb = NULL */
+ if (rb_block_given_p())
+ cb = ossl_dsa_generate_cb;
+ if (!(dsa = DSA_generate_parameters(FIX2INT(buffer), seed, seed_len, &counter, &h, cb, NULL))) { /* arg to cb = NULL */
rb_raise(eDSAError, "%s", ossl_error());
}
if (!DSA_generate_key(dsa)) {