simplify EC_KEY_dup
authorNils Larsch <nils@openssl.org>
Tue, 17 May 2005 12:23:16 +0000 (12:23 +0000)
committerNils Larsch <nils@openssl.org>
Tue, 17 May 2005 12:23:16 +0000 (12:23 +0000)
crypto/ec/ec_key.c

index 66d9c8d..3d6c900 100644 (file)
@@ -201,46 +201,16 @@ EC_KEY *EC_KEY_copy(EC_KEY *dest, const EC_KEY *src)
        return dest;
        }
 
-EC_KEY *EC_KEY_dup(const EC_KEY *eckey)
+EC_KEY *EC_KEY_dup(const EC_KEY *ec_key)
        {
-       EC_KEY *ret = NULL;
-       int     ok = 1;
-
-       ret = EC_KEY_new();
+       EC_KEY *ret = EC_KEY_new();
        if (ret == NULL)
                return NULL;
-       /* copy the parameters */
-       if (eckey->group)
-               {
-               ret->group = EC_GROUP_dup(eckey->group);
-               if (ret->group == NULL)
-                       ok = 0;
-               }
-       /*  copy the public key */
-       if (eckey->pub_key && eckey->group)
-               {
-               ret->pub_key = EC_POINT_dup(eckey->pub_key, eckey->group);
-               if (ret->pub_key == NULL)
-                       ok = 0;
-               }
-       /* copy the private key */
-       if (eckey->priv_key)
-               {
-               ret->priv_key = BN_dup(eckey->priv_key);
-               if (ret->priv_key == NULL)
-                       ok = 0;
-               }
-       /* copy the rest */
-       ret->enc_flag  = eckey->enc_flag;
-       ret->conv_form = eckey->conv_form;
-       ret->version   = eckey->version;
-
-       if (!ok)
+       if (EC_KEY_copy(ret, ec_key) == NULL)
                {
                EC_KEY_free(ret);
-               ret = NULL;
+               return NULL;
                }
-
        return ret;
        }