diff options
author | Michal Rokos <m.rokos@sh.cvut.cz> | 2002-06-08 10:05:30 +0000 |
---|---|---|
committer | Michal Rokos <m.rokos@sh.cvut.cz> | 2002-06-08 10:05:30 +0000 |
commit | f96277c2389b1c698ccd86c3e6157f8d60bbcfb9 (patch) | |
tree | fa0678b03b2d67484c0bd298961c5103f9245098 /ossl_pkey_dh.c | |
parent | efb985877732e2d9c1b9eac770c2ea8135e3da14 (diff) | |
download | ruby-openssl-history-f96277c2389b1c698ccd86c3e6157f8d60bbcfb9.tar.gz |
PKey: NO useless EVP_PKEY* dups.
Diffstat (limited to 'ossl_pkey_dh.c')
-rw-r--r-- | ossl_pkey_dh.c | 17 |
1 files changed, 6 insertions, 11 deletions
diff --git a/ossl_pkey_dh.c b/ossl_pkey_dh.c index 8a02562..ce0468b 100644 --- a/ossl_pkey_dh.c +++ b/ossl_pkey_dh.c @@ -54,22 +54,17 @@ dh_instance(VALUE klass, DH *dh) VALUE ossl_dh_new(EVP_PKEY *pkey) { - DH *dh = NULL; VALUE obj; - if (pkey && EVP_PKEY_type(pkey->type) != EVP_PKEY_DH) { - rb_raise(rb_eTypeError, "Not a DH key!"); - } - if (!pkey) { /* all errs handled by dh_instance */ - dh = DH_new(); + if (!pkey) { + obj = dh_instance(cDH, DH_new()); } else { - dh = DHparams_dup(dh); + if (EVP_PKEY_type(pkey->type) != EVP_PKEY_DH) { + rb_raise(rb_eTypeError, "Not a DH key!"); + } + WrapPKey(cDH, obj, pkey); } - - obj = dh_instance(cDH, dh); - if (obj == Qfalse) { - DH_free(dh); OSSL_Raise(eDHError, ""); } return obj; |