SecBSD's official ports repository
This commit is contained in:
commit
2c0afcbbf3
64331 changed files with 5339189 additions and 0 deletions
85
net/rtmpdump/patches/patch-librtmp_dh_h
Normal file
85
net/rtmpdump/patches/patch-librtmp_dh_h
Normal file
|
@ -0,0 +1,85 @@
|
|||
Fix build with opaque DH in LibreSSL 3.5.
|
||||
|
||||
Index: librtmp/dh.h
|
||||
--- librtmp/dh.h.orig
|
||||
+++ librtmp/dh.h
|
||||
@@ -249,27 +249,31 @@ DHInit(int nKeyBits)
|
||||
{
|
||||
size_t res;
|
||||
MDH *dh = MDH_new();
|
||||
+ MP_t p = NULL, g = NULL;
|
||||
|
||||
if (!dh)
|
||||
goto failed;
|
||||
|
||||
- MP_new(dh->g);
|
||||
+ MP_new(g);
|
||||
|
||||
- if (!dh->g)
|
||||
+ if (!g)
|
||||
goto failed;
|
||||
|
||||
- MP_gethex(dh->p, P1024, res); /* prime P1024, see dhgroups.h */
|
||||
+ MP_gethex(p, P1024, res); /* prime P1024, see dhgroups.h */
|
||||
if (!res)
|
||||
{
|
||||
goto failed;
|
||||
}
|
||||
|
||||
- MP_set_w(dh->g, 2); /* base 2 */
|
||||
+ MP_set_w(g, 2); /* base 2 */
|
||||
+ DH_set0_pqg(dh, p, NULL, g);
|
||||
+ DH_set_length(dh, nKeyBits);
|
||||
|
||||
- dh->length = nKeyBits;
|
||||
return dh;
|
||||
|
||||
failed:
|
||||
+ MP_free(g);
|
||||
+ MP_free(p);
|
||||
if (dh)
|
||||
MDH_free(dh);
|
||||
|
||||
@@ -293,12 +297,10 @@ DHGenerateKey(MDH *dh)
|
||||
MP_gethex(q1, Q1024, res);
|
||||
assert(res);
|
||||
|
||||
- res = isValidPublicKey(dh->pub_key, dh->p, q1);
|
||||
+ res = isValidPublicKey((MP_t)DH_get0_pub_key(dh), (MP_t)DH_get0_p(dh), q1);
|
||||
if (!res)
|
||||
{
|
||||
- MP_free(dh->pub_key);
|
||||
- MP_free(dh->priv_key);
|
||||
- dh->pub_key = dh->priv_key = 0;
|
||||
+ return 0;
|
||||
}
|
||||
|
||||
MP_free(q1);
|
||||
@@ -314,15 +316,15 @@ static int
|
||||
DHGetPublicKey(MDH *dh, uint8_t *pubkey, size_t nPubkeyLen)
|
||||
{
|
||||
int len;
|
||||
- if (!dh || !dh->pub_key)
|
||||
+ if (!dh || !DH_get0_pub_key(dh))
|
||||
return 0;
|
||||
|
||||
- len = MP_bytes(dh->pub_key);
|
||||
+ len = MP_bytes(DH_get0_pub_key(dh));
|
||||
if (len <= 0 || len > (int) nPubkeyLen)
|
||||
return 0;
|
||||
|
||||
memset(pubkey, 0, nPubkeyLen);
|
||||
- MP_setbin(dh->pub_key, pubkey + (nPubkeyLen - len), len);
|
||||
+ MP_setbin(DH_get0_pub_key(dh), pubkey + (nPubkeyLen - len), len);
|
||||
return 1;
|
||||
}
|
||||
|
||||
@@ -364,7 +366,7 @@ DHComputeSharedSecretKey(MDH *dh, uint8_t *pubkey, siz
|
||||
MP_gethex(q1, Q1024, len);
|
||||
assert(len);
|
||||
|
||||
- if (isValidPublicKey(pubkeyBn, dh->p, q1))
|
||||
+ if (isValidPublicKey(pubkeyBn, (MP_t)DH_get0_p(dh), q1))
|
||||
res = MDH_compute_key(secret, nPubkeyLen, pubkeyBn, dh);
|
||||
else
|
||||
res = -1;
|
Loading…
Add table
Add a link
Reference in a new issue