projects
/
openssl.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
make depend
[openssl.git]
/
crypto
/
dh
/
dh_ameth.c
diff --git
a/crypto/dh/dh_ameth.c
b/crypto/dh/dh_ameth.c
index 17027c544f965c91c4515142bd8d0df1fbc4ed05..f0fcd83c52d7ebdcdbd89e8077785e5887838aeb 100644
(file)
--- a/
crypto/dh/dh_ameth.c
+++ b/
crypto/dh/dh_ameth.c
@@
-57,7
+57,7
@@
*/
#include <stdio.h>
*/
#include <stdio.h>
-#include "cryptlib.h"
+#include "
internal/
cryptlib.h"
#include <openssl/x509.h>
#include <openssl/asn1.h>
#include <openssl/dh.h>
#include <openssl/x509.h>
#include <openssl/asn1.h>
#include <openssl/dh.h>
@@
-67,8
+67,6
@@
# include <openssl/cms.h>
#endif
# include <openssl/cms.h>
#endif
-extern const EVP_PKEY_ASN1_METHOD dhx_asn1_meth;
-
/*
* i2d/d2i like DH parameter functions which use the appropriate routine for
* PKCS#3 DH or X9.42 DH.
/*
* i2d/d2i like DH parameter functions which use the appropriate routine for
* PKCS#3 DH or X9.42 DH.
@@
-119,18
+117,18
@@
static int dh_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
pm = pstr->data;
pmlen = pstr->length;
pm = pstr->data;
pmlen = pstr->length;
- if (
!(dh = d2i_dhp(pkey, &pm, pmlen))
) {
+ if (
(dh = d2i_dhp(pkey, &pm, pmlen)) == NULL
) {
DHerr(DH_F_DH_PUB_DECODE, DH_R_DECODE_ERROR);
goto err;
}
DHerr(DH_F_DH_PUB_DECODE, DH_R_DECODE_ERROR);
goto err;
}
- if (
!(public_key = d2i_ASN1_INTEGER(NULL, &p, pklen))
) {
+ if (
(public_key = d2i_ASN1_INTEGER(NULL, &p, pklen)) == NULL
) {
DHerr(DH_F_DH_PUB_DECODE, DH_R_DECODE_ERROR);
goto err;
}
/* We have parameters now set public key */
DHerr(DH_F_DH_PUB_DECODE, DH_R_DECODE_ERROR);
goto err;
}
/* We have parameters now set public key */
- if (
!(dh->pub_key = ASN1_INTEGER_to_BN(public_key, NULL))
) {
+ if (
(dh->pub_key = ASN1_INTEGER_to_BN(public_key, NULL)) == NULL
) {
DHerr(DH_F_DH_PUB_DECODE, DH_R_BN_DECODE_ERROR);
goto err;
}
DHerr(DH_F_DH_PUB_DECODE, DH_R_BN_DECODE_ERROR);
goto err;
}
@@
-140,10
+138,8
@@
static int dh_pub_decode(EVP_PKEY *pkey, X509_PUBKEY *pubkey)
return 1;
err:
return 1;
err:
- if (public_key)
- ASN1_INTEGER_free(public_key);
- if (dh)
- DH_free(dh);
+ ASN1_INTEGER_free(public_key);
+ DH_free(dh);
return 0;
}
return 0;
}
@@
-160,7
+156,7
@@
static int dh_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
dh = pkey->pkey.dh;
str = ASN1_STRING_new();
dh = pkey->pkey.dh;
str = ASN1_STRING_new();
- if(!str) {
+ if
(!str) {
DHerr(DH_F_DH_PUB_ENCODE, ERR_R_MALLOC_FAILURE);
goto err;
}
DHerr(DH_F_DH_PUB_ENCODE, ERR_R_MALLOC_FAILURE);
goto err;
}
@@
-189,8
+185,7
@@
static int dh_pub_encode(X509_PUBKEY *pk, const EVP_PKEY *pkey)
return 1;
err:
return 1;
err:
- if (penc)
- OPENSSL_free(penc);
+ OPENSSL_free(penc);
ASN1_STRING_free(str);
return 0;
ASN1_STRING_free(str);
return 0;
@@
-221,17
+216,18
@@
static int dh_priv_decode(EVP_PKEY *pkey, PKCS8_PRIV_KEY_INFO *p8)
if (ptype != V_ASN1_SEQUENCE)
goto decerr;
if (ptype != V_ASN1_SEQUENCE)
goto decerr;
-
- if (!(privkey = d2i_ASN1_INTEGER(NULL, &p, pklen)))
+ if ((privkey = d2i_ASN1_INTEGER(NULL, &p, pklen)) == NULL)
goto decerr;
pstr = pval;
pm = pstr->data;
pmlen = pstr->length;
goto decerr;
pstr = pval;
pm = pstr->data;
pmlen = pstr->length;
- if (
!(dh = d2i_dhp(pkey, &pm, pmlen))
)
+ if (
(dh = d2i_dhp(pkey, &pm, pmlen)) == NULL
)
goto decerr;
goto decerr;
+
/* We have parameters now set private key */
/* We have parameters now set private key */
- if (!(dh->priv_key = ASN1_INTEGER_to_BN(privkey, NULL))) {
+ if ((dh->priv_key = BN_secure_new()) == NULL
+ || !ASN1_INTEGER_to_BN(privkey, dh->priv_key)) {
DHerr(DH_F_DH_PRIV_DECODE, DH_R_BN_ERROR);
goto dherr;
}
DHerr(DH_F_DH_PRIV_DECODE, DH_R_BN_ERROR);
goto dherr;
}
@@
-294,11
+290,9
@@
static int dh_priv_encode(PKCS8_PRIV_KEY_INFO *p8, const EVP_PKEY *pkey)
return 1;
err:
return 1;
err:
- if (dp != NULL)
- OPENSSL_free(dp);
+ OPENSSL_free(dp);
ASN1_STRING_free(params);
ASN1_STRING_free(params);
- if (prkey != NULL)
- ASN1_STRING_clear_free(prkey);
+ ASN1_STRING_clear_free(prkey);
return 0;
}
return 0;
}
@@
-315,7
+309,8
@@
static int dh_param_decode(EVP_PKEY *pkey,
const unsigned char **pder, int derlen)
{
DH *dh;
const unsigned char **pder, int derlen)
{
DH *dh;
- if (!(dh = d2i_dhp(pkey, pder, derlen))) {
+
+ if ((dh = d2i_dhp(pkey, pder, derlen)) == NULL) {
DHerr(DH_F_DH_PARAM_DECODE, ERR_R_DH_LIB);
return 0;
}
DHerr(DH_F_DH_PARAM_DECODE, ERR_R_DH_LIB);
return 0;
}
@@
-332,7
+327,7
@@
static int do_dh_print(BIO *bp, const DH *x, int indent,
ASN1_PCTX *ctx, int ptype)
{
unsigned char *m = NULL;
ASN1_PCTX *ctx, int ptype)
{
unsigned char *m = NULL;
- int reason = ERR_R_BUF_LIB
, ret = 0
;
+ int reason = ERR_R_BUF_LIB;
size_t buf_len = 0;
const char *ktype = NULL;
size_t buf_len = 0;
const char *ktype = NULL;
@@
-420,14
+415,13
@@
static int do_dh_print(BIO *bp, const DH *x, int indent,
goto err;
}
goto err;
}
- ret = 1;
- if (0) {
+ OPENSSL_free(m);
+ return 1;
+
err:
err:
- DHerr(DH_F_DO_DH_PRINT, reason);
- }
- if (m != NULL)
- OPENSSL_free(m);
- return (ret);
+ DHerr(DH_F_DO_DH_PRINT, reason);
+ OPENSSL_free(m);
+ return 0;
}
static int int_dh_size(const EVP_PKEY *pkey)
}
static int int_dh_size(const EVP_PKEY *pkey)
@@
-466,8
+460,7
@@
static int int_dh_bn_cpy(BIGNUM **dst, const BIGNUM *src)
return 0;
} else
a = NULL;
return 0;
} else
a = NULL;
- if (*dst)
- BN_free(*dst);
+ BN_free(*dst);
*dst = a;
return 1;
}
*dst = a;
return 1;
}
@@
-485,11
+478,9
@@
static int int_dh_param_copy(DH *to, const DH *from, int is_x942)
return 0;
if (!int_dh_bn_cpy(&to->j, from->j))
return 0;
return 0;
if (!int_dh_bn_cpy(&to->j, from->j))
return 0;
- if (to->seed) {
- OPENSSL_free(to->seed);
- to->seed = NULL;
- to->seedlen = 0;
- }
+ OPENSSL_free(to->seed);
+ to->seed = NULL;
+ to->seedlen = 0;
if (from->seed) {
to->seed = BUF_memdup(from->seed, from->seedlen);
if (!to->seed)
if (from->seed) {
to->seed = BUF_memdup(from->seed, from->seedlen);
if (!to->seed)
@@
-688,13
+679,13
@@
static int dh_cms_set_peerkey(EVP_PKEY_CTX *pctx,
if (!p || !plen)
goto err;
if (!p || !plen)
goto err;
- if (
!(public_key = d2i_ASN1_INTEGER(NULL, &p, plen))
) {
+ if (
(public_key = d2i_ASN1_INTEGER(NULL, &p, plen)) == NULL
) {
DHerr(DH_F_DH_CMS_SET_PEERKEY, DH_R_DECODE_ERROR);
goto err;
}
/* We have parameters now set public key */
DHerr(DH_F_DH_CMS_SET_PEERKEY, DH_R_DECODE_ERROR);
goto err;
}
/* We have parameters now set public key */
- if (
!(dhpeer->pub_key = ASN1_INTEGER_to_BN(public_key, NULL))
) {
+ if (
(dhpeer->pub_key = ASN1_INTEGER_to_BN(public_key, NULL)) == NULL
) {
DHerr(DH_F_DH_CMS_SET_PEERKEY, DH_R_BN_DECODE_ERROR);
goto err;
}
DHerr(DH_F_DH_CMS_SET_PEERKEY, DH_R_BN_DECODE_ERROR);
goto err;
}
@@
-707,12
+698,9
@@
static int dh_cms_set_peerkey(EVP_PKEY_CTX *pctx,
if (EVP_PKEY_derive_set_peer(pctx, pkpeer) > 0)
rv = 1;
err:
if (EVP_PKEY_derive_set_peer(pctx, pkpeer) > 0)
rv = 1;
err:
- if (public_key)
- ASN1_INTEGER_free(public_key);
- if (pkpeer)
- EVP_PKEY_free(pkpeer);
- if (dhpeer)
- DH_free(dhpeer);
+ ASN1_INTEGER_free(public_key);
+ EVP_PKEY_free(pkpeer);
+ DH_free(dhpeer);
return rv;
}
return rv;
}
@@
-788,10
+776,8
@@
static int dh_cms_set_shared_info(EVP_PKEY_CTX *pctx, CMS_RecipientInfo *ri)
rv = 1;
err:
rv = 1;
err:
- if (kekalg)
- X509_ALGOR_free(kekalg);
- if (dukm)
- OPENSSL_free(dukm);
+ X509_ALGOR_free(kekalg);
+ OPENSSL_free(dukm);
return rv;
}
return rv;
}
@@
-851,8
+837,7
@@
static int dh_cms_encrypt(CMS_RecipientInfo *ri)
X509_ALGOR_get0(&aoid, NULL, NULL, talg);
/* Is everything uninitialised? */
if (aoid == OBJ_nid2obj(NID_undef)) {
X509_ALGOR_get0(&aoid, NULL, NULL, talg);
/* Is everything uninitialised? */
if (aoid == OBJ_nid2obj(NID_undef)) {
- ASN1_INTEGER *pubk;
- pubk = BN_to_ASN1_INTEGER(pkey->pkey.dh->pub_key, NULL);
+ ASN1_INTEGER *pubk = BN_to_ASN1_INTEGER(pkey->pkey.dh->pub_key, NULL);
if (!pubk)
goto err;
/* Set the key */
if (!pubk)
goto err;
/* Set the key */
@@
-952,10
+937,8
@@
static int dh_cms_encrypt(CMS_RecipientInfo *ri)
rv = 1;
err:
rv = 1;
err:
- if (penc)
- OPENSSL_free(penc);
- if (wrap_alg)
- X509_ALGOR_free(wrap_alg);
+ OPENSSL_free(penc);
+ X509_ALGOR_free(wrap_alg);
return rv;
}
return rv;
}