aboutsummaryrefslogtreecommitdiffstats
path: root/ossl_pkey_dh.c
diff options
context:
space:
mode:
authorMichal Rokos <m.rokos@sh.cvut.cz>2002-06-08 10:05:30 +0000
committerMichal Rokos <m.rokos@sh.cvut.cz>2002-06-08 10:05:30 +0000
commitf96277c2389b1c698ccd86c3e6157f8d60bbcfb9 (patch)
treefa0678b03b2d67484c0bd298961c5103f9245098 /ossl_pkey_dh.c
parentefb985877732e2d9c1b9eac770c2ea8135e3da14 (diff)
downloadruby-openssl-history-f96277c2389b1c698ccd86c3e6157f8d60bbcfb9.tar.gz
PKey: NO useless EVP_PKEY* dups.
Diffstat (limited to 'ossl_pkey_dh.c')
-rw-r--r--ossl_pkey_dh.c17
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;