|
|
@@ -27,12 +27,25 @@ DH *get_dh2048() {
|
|
|
0x02,
|
|
|
};
|
|
|
DH *dh;
|
|
|
+ BIGNUM *dhp_bn, *dhg_bn;
|
|
|
|
|
|
if ((dh=DH_new()) == NULL) return(NULL);
|
|
|
- dh->p=BN_bin2bn(dh2048_p,sizeof(dh2048_p),NULL);
|
|
|
- dh->g=BN_bin2bn(dh2048_g,sizeof(dh2048_g),NULL);
|
|
|
+ dhp_bn = BN_bin2bn(dh2048_p, sizeof(dh2048_p), NULL);
|
|
|
+ dhg_bn = BN_bin2bn(dh2048_g, sizeof(dh2048_g), NULL);
|
|
|
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
|
|
+ if (dhp_bn == NULL || dhg_bn == NULL
|
|
|
+ || !DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
|
|
|
+ DH_free(dh);
|
|
|
+ BN_free(dhp_bn);
|
|
|
+ BN_free(dhg_bn);
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+#else
|
|
|
+ dh->p = dhp_bn;
|
|
|
+ dh->g = dhg_bn;
|
|
|
if ((dh->p == NULL) || (dh->g == NULL))
|
|
|
{ DH_free(dh); return(NULL); }
|
|
|
+#endif
|
|
|
return(dh);
|
|
|
}
|
|
|
/*
|
|
|
@@ -64,12 +77,25 @@ DH *get_dh1024() {
|
|
|
0x02,
|
|
|
};
|
|
|
DH *dh;
|
|
|
+ BIGNUM *dhp_bn, *dhg_bn;
|
|
|
|
|
|
if ((dh=DH_new()) == NULL) return(NULL);
|
|
|
- dh->p=BN_bin2bn(dh1024_p,sizeof(dh1024_p),NULL);
|
|
|
- dh->g=BN_bin2bn(dh1024_g,sizeof(dh1024_g),NULL);
|
|
|
+ dhp_bn = BN_bin2bn(dh1024_p, sizeof(dh1024_p), NULL);
|
|
|
+ dhg_bn = BN_bin2bn(dh1024_g, sizeof(dh1024_g), NULL);
|
|
|
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
|
|
+ if (dhp_bn == NULL || dhg_bn == NULL
|
|
|
+ || !DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
|
|
|
+ DH_free(dh);
|
|
|
+ BN_free(dhp_bn);
|
|
|
+ BN_free(dhg_bn);
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+#else
|
|
|
+ dh->p = dhp_bn;
|
|
|
+ dh->g = dhg_bn;
|
|
|
if ((dh->p == NULL) || (dh->g == NULL))
|
|
|
{ DH_free(dh); return(NULL); }
|
|
|
+#endif
|
|
|
return(dh);
|
|
|
}
|
|
|
/*
|
|
|
@@ -92,12 +118,25 @@ DH *get_dh512() {
|
|
|
0x02,
|
|
|
};
|
|
|
DH *dh;
|
|
|
+ BIGNUM *dhp_bn, *dhg_bn;
|
|
|
|
|
|
if ((dh=DH_new()) == NULL) return(NULL);
|
|
|
- dh->p=BN_bin2bn(dh512_p,sizeof(dh512_p),NULL);
|
|
|
- dh->g=BN_bin2bn(dh512_g,sizeof(dh512_g),NULL);
|
|
|
+ dhp_bn = BN_bin2bn(dh512_p, sizeof(dh512_p), NULL);
|
|
|
+ dhg_bn = BN_bin2bn(dh512_g, sizeof(dh512_g), NULL);
|
|
|
+#if OPENSSL_VERSION_NUMBER >= 0x10100000L
|
|
|
+ if (dhp_bn == NULL || dhg_bn == NULL
|
|
|
+ || !DH_set0_pqg(dh, dhp_bn, NULL, dhg_bn)) {
|
|
|
+ DH_free(dh);
|
|
|
+ BN_free(dhp_bn);
|
|
|
+ BN_free(dhg_bn);
|
|
|
+ return NULL;
|
|
|
+ }
|
|
|
+#else
|
|
|
+ dh->p = dhp_bn;
|
|
|
+ dh->g = dhg_bn;
|
|
|
if ((dh->p == NULL) || (dh->g == NULL))
|
|
|
{ DH_free(dh); return(NULL); }
|
|
|
+#endif
|
|
|
return(dh);
|
|
|
}
|
|
|
/*
|