mirror of
https://git.freebsd.org/ports.git
synced 2025-05-20 19:13:27 -04:00
116 lines
3.6 KiB
C
116 lines
3.6 KiB
C
--- librtmp/dh.h.orig 2016-02-29 01:15:13 UTC
|
|
+++ librtmp/dh.h
|
|
@@ -194,7 +194,7 @@ typedef BIGNUM * MP_t;
|
|
|
|
/* RFC 2631, Section 2.1.5, http://www.ietf.org/rfc/rfc2631.txt */
|
|
static int
|
|
-isValidPublicKey(MP_t y, MP_t p, MP_t q)
|
|
+isValidPublicKey(const MP_t y, const MP_t p, const MP_t q)
|
|
{
|
|
int ret = TRUE;
|
|
MP_t bn;
|
|
@@ -253,20 +253,43 @@ DHInit(int nKeyBits)
|
|
if (!dh)
|
|
goto failed;
|
|
|
|
+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
MP_new(dh->g);
|
|
|
|
if (!dh->g)
|
|
goto failed;
|
|
+#else
|
|
+ BIGNUM *g;
|
|
|
|
+ MP_new(g);
|
|
+ if (g == NULL)
|
|
+ goto failed;
|
|
+#endif
|
|
+
|
|
+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
MP_gethex(dh->p, P1024, res); /* prime P1024, see dhgroups.h */
|
|
+#else
|
|
+ const BIGNUM *p = DH_get0_p(dh);
|
|
+
|
|
+ MP_gethex(p, P1024, res); /* prime P1024, see dhgroups.h */
|
|
+#endif
|
|
if (!res)
|
|
{
|
|
goto failed;
|
|
}
|
|
|
|
+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
MP_set_w(dh->g, 2); /* base 2 */
|
|
+#else
|
|
+ MP_set_w(g, 2); /* base 2 */
|
|
+ DH_set0_pqg(dh, p, NULL, g);
|
|
+#endif
|
|
|
|
+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
dh->length = nKeyBits;
|
|
+#else
|
|
+ DH_set_length(dh, nKeyBits);
|
|
+#endif
|
|
return dh;
|
|
|
|
failed:
|
|
@@ -293,12 +316,20 @@ DHGenerateKey(MDH *dh)
|
|
MP_gethex(q1, Q1024, res);
|
|
assert(res);
|
|
|
|
+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
res = isValidPublicKey(dh->pub_key, dh->p, q1);
|
|
+#else
|
|
+ res = isValidPublicKey(DH_get0_pub_key(dh), DH_get0_p(dh), q1);
|
|
+#endif
|
|
if (!res)
|
|
{
|
|
+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
MP_free(dh->pub_key);
|
|
MP_free(dh->priv_key);
|
|
dh->pub_key = dh->priv_key = 0;
|
|
+#else
|
|
+ DH_set0_key(dh, NULL, NULL);
|
|
+#endif
|
|
}
|
|
|
|
MP_free(q1);
|
|
@@ -314,15 +345,27 @@ static int
|
|
DHGetPublicKey(MDH *dh, uint8_t *pubkey, size_t nPubkeyLen)
|
|
{
|
|
int len;
|
|
+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
if (!dh || !dh->pub_key)
|
|
+#else
|
|
+ if (!dh || !DH_get0_pub_key(dh))
|
|
+#endif
|
|
return 0;
|
|
|
|
+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
len = MP_bytes(dh->pub_key);
|
|
+#else
|
|
+ len = MP_bytes(DH_get0_pub_key(dh));
|
|
+#endif
|
|
if (len <= 0 || len > (int) nPubkeyLen)
|
|
return 0;
|
|
|
|
memset(pubkey, 0, nPubkeyLen);
|
|
+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
MP_setbin(dh->pub_key, pubkey + (nPubkeyLen - len), len);
|
|
+#else
|
|
+ MP_setbin(DH_get0_pub_key(dh), pubkey + (nPubkeyLen - len), len);
|
|
+#endif
|
|
return 1;
|
|
}
|
|
|
|
@@ -364,7 +407,11 @@ DHComputeSharedSecretKey(MDH *dh, uint8_
|
|
MP_gethex(q1, Q1024, len);
|
|
assert(len);
|
|
|
|
+#if !defined(USE_OPENSSL) || defined(LIBRESSL_VERSION_NUMBER) || !defined(OPENSSL_VERSION_NUMBER) || OPENSSL_VERSION_NUMBER < 0x10100000L
|
|
if (isValidPublicKey(pubkeyBn, dh->p, q1))
|
|
+#else
|
|
+ if (isValidPublicKey(pubkeyBn, DH_get0_p(dh), q1))
|
|
+#endif
|
|
res = MDH_compute_key(secret, nPubkeyLen, pubkeyBn, dh);
|
|
else
|
|
res = -1;
|