FreeBSD Bugzilla – Attachment 197899 Details for
Bug 231940
multimedia/librtmp : fails to build with openssl 1.1.1
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
Remember
[x]
|
Forgot Password
Login:
[x]
[patch]
Fix openssl
librtmp (text/plain), 7.01 KB, created by
Nathan
on 2018-10-08 02:20:11 UTC
(
hide
)
Description:
Fix openssl
Filename:
MIME Type:
Creator:
Nathan
Created:
2018-10-08 02:20:11 UTC
Size:
7.01 KB
patch
obsolete
>multimedia/librtmp: > >* Fix OpenSSL 1.1.x build >* Add LICENSE file, while here > >PR: 231940 >Submitted by: Nathan <ndowens@yahoo.com> > >Index: multimedia/librtmp/Makefile >=================================================================== >--- multimedia/librtmp/Makefile (revision 481499) >+++ multimedia/librtmp/Makefile (working copy) >@@ -2,6 +2,7 @@ > > PORTNAME= librtmp > PORTVERSION= 2.4.20151223 >+PORTREVISION= 1 > CATEGORIES= multimedia net > MASTER_SITES= LOCAL/hrs > DISTNAME= rtmpdump-2.4.fa8646da >@@ -10,12 +11,11 @@ > COMMENT= RTMP stream library > > LICENSE= GPLv2 >+LICESE_FILE= ${WRKSRC}/COPYING > >-BROKEN_SSL= openssl-devel >-BROKEN_SSL_REASON_openssl-devel= error: incomplete definition of type 'struct dh_st' >- > USES= pkgconfig tar:bz2 ssl > USE_LDCONFIG= yes >+ > CFLAGS+= -I${OPENSSLINC} > LDFLAGS+= -L${OPENSSLLIB} > WRKSRC= ${WRKDIR}/${DISTNAME}/librtmp >Index: multimedia/librtmp/files/patch-dh.h >=================================================================== >--- multimedia/librtmp/files/patch-dh.h (nonexistent) >+++ multimedia/librtmp/files/patch-dh.h (working copy) >@@ -0,0 +1,87 @@ >+--- dh.h.orig 2018-10-08 01:20:49 UTC >++++ dh.h >+@@ -250,23 +250,27 @@ DHInit(int nKeyBits) >+ size_t res; >+ MDH *dh = MDH_new(); >+ >++ >+ if (!dh) >+ goto failed; >+ >+- MP_new(dh->g); >++ const BIGNUM *p; >++ const BIGNUM *g; >++ DH_get0_pqg(dh,&p,NULL,&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->length = nKeyBits; >++ DH_set_length(dh, nKeyBits); >+ return dh; >+ >+ failed: >+@@ -293,12 +297,15 @@ DHGenerateKey(MDH *dh) >+ MP_gethex(q1, Q1024, res); >+ assert(res); >+ >+- res = isValidPublicKey(dh->pub_key, dh->p, q1); >++ BIGNUM *pub_key, *priv_key, *p; >++ DH_get0_key(dh, &pub_key, &priv_key); >++ DH_get0_pqg(dh,&p,NULL,NULL); >++ res = isValidPublicKey(pub_key, p, q1); >+ if (!res) >+ { >+- MP_free(dh->pub_key); >+- MP_free(dh->priv_key); >+- dh->pub_key = dh->priv_key = 0; >++ MP_free(pub_key); >++ MP_free(priv_key); >++ DH_set0_key(dh, 0, 0); >+ } >+ >+ MP_free(q1); >+@@ -314,15 +321,17 @@ static int >+ DHGetPublicKey(MDH *dh, uint8_t *pubkey, size_t nPubkeyLen) >+ { >+ int len; >+- if (!dh || !dh->pub_key) >++ BIGNUM *pub_key; >++ DH_get0_key(dh, &pub_key, NULL); >++ if (!dh || !pub_key) >+ return 0; >+ >+- len = MP_bytes(dh->pub_key); >++ len = MP_bytes(pub_key); >+ if (len <= 0 || len > (int) nPubkeyLen) >+ return 0; >+ >+ memset(pubkey, 0, nPubkeyLen); >+- MP_setbin(dh->pub_key, pubkey + (nPubkeyLen - len), len); >++ MP_setbin(pub_key, pubkey + (nPubkeyLen - len), len); >+ return 1; >+ } >+ >+@@ -364,7 +373,9 @@ DHComputeSharedSecretKey(MDH *dh, uint8_t *pubkey, siz >+ MP_gethex(q1, Q1024, len); >+ assert(len); >+ >+- if (isValidPublicKey(pubkeyBn, dh->p, q1)) >++ BIGNUM *p; >++ DH_get0_pqg(dh,&p,NULL,NULL); >++ if (isValidPublicKey(pubkeyBn, p, q1)) >+ res = MDH_compute_key(secret, nPubkeyLen, pubkeyBn, dh); >+ else >+ res = -1; > >Property changes on: multimedia/librtmp/files/patch-dh.h >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: multimedia/librtmp/files/patch-handshake.h >=================================================================== >--- multimedia/librtmp/files/patch-handshake.h (nonexistent) >+++ multimedia/librtmp/files/patch-handshake.h (working copy) >@@ -0,0 +1,33 @@ >+--- handshake.h.orig 2018-10-08 01:20:49 UTC >++++ handshake.h >+@@ -69,9 +69,9 @@ typedef struct arcfour_ctx* RC4_handle; >+ #if OPENSSL_VERSION_NUMBER < 0x0090800 || !defined(SHA256_DIGEST_LENGTH) >+ #error Your OpenSSL is too old, need 0.9.8 or newer with SHA256 >+ #endif >+-#define HMAC_setup(ctx, key, len) HMAC_CTX_init(&ctx); HMAC_Init_ex(&ctx, key, len, EVP_sha256(), 0) >+-#define HMAC_crunch(ctx, buf, len) HMAC_Update(&ctx, buf, len) >+-#define HMAC_finish(ctx, dig, dlen) HMAC_Final(&ctx, dig, &dlen); HMAC_CTX_cleanup(&ctx) >++#define HMAC_setup(ctx, key, len) HMAC_Init_ex(ctx, key, len, EVP_sha256(), 0) >++#define HMAC_crunch(ctx, buf, len) HMAC_Update(ctx, buf, len) >++#define HMAC_finish(ctx, dig, dlen) HMAC_Final(ctx, dig, &dlen); HMAC_CTX_free(ctx) >+ >+ typedef RC4_KEY * RC4_handle; >+ #define RC4_alloc(h) *h = malloc(sizeof(RC4_KEY)) >+@@ -117,7 +117,7 @@ static void InitRC4Encryption >+ { >+ uint8_t digest[SHA256_DIGEST_LENGTH]; >+ unsigned int digestLen = 0; >+- HMAC_CTX ctx; >++ HMAC_CTX *ctx = HMAC_CTX_new(); >+ >+ RC4_alloc(rc4keyIn); >+ RC4_alloc(rc4keyOut); >+@@ -266,7 +266,7 @@ HMACsha256(const uint8_t *message, size_t messageLen, >+ size_t keylen, uint8_t *digest) >+ { >+ unsigned int digestLen; >+- HMAC_CTX ctx; >++ HMAC_CTX *ctx = HMAC_CTX_new(); >+ >+ HMAC_setup(ctx, key, keylen); >+ HMAC_crunch(ctx, message, messageLen); > >Property changes on: multimedia/librtmp/files/patch-handshake.h >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property >Index: multimedia/librtmp/files/patch-hashswf.c >=================================================================== >--- multimedia/librtmp/files/patch-hashswf.c (nonexistent) >+++ multimedia/librtmp/files/patch-hashswf.c (working copy) >@@ -0,0 +1,26 @@ >+--- hashswf.c.orig 2018-10-08 01:24:25 UTC >++++ hashswf.c >+@@ -57,10 +57,10 @@ >+ #include <openssl/sha.h> >+ #include <openssl/hmac.h> >+ #include <openssl/rc4.h> >+-#define HMAC_setup(ctx, key, len) HMAC_CTX_init(&ctx); HMAC_Init_ex(&ctx, (unsigned char *)key, len, EVP_sha256(), 0) >+-#define HMAC_crunch(ctx, buf, len) HMAC_Update(&ctx, (unsigned char *)buf, len) >+-#define HMAC_finish(ctx, dig, dlen) HMAC_Final(&ctx, (unsigned char *)dig, &dlen); >+-#define HMAC_close(ctx) HMAC_CTX_cleanup(&ctx) >++#define HMAC_setup(ctx, key, len) HMAC_Init_ex(ctx, (unsigned char *)key, len, EVP_sha256(), 0) >++#define HMAC_crunch(ctx, buf, len) HMAC_Update(ctx, (unsigned char *)buf, len) >++#define HMAC_finish(ctx, dig, dlen) HMAC_Final(ctx, (unsigned char *)dig, &dlen); >++#define HMAC_close(ctx) HMAC_CTX_free(ctx) >+ #endif >+ >+ extern void RTMP_TLS_Init(); >+@@ -289,7 +289,7 @@ leave: >+ struct info >+ { >+ z_stream *zs; >+- HMAC_CTX ctx; >++ HMAC_CTX *ctx; >+ int first; >+ int zlib; >+ int size; > >Property changes on: multimedia/librtmp/files/patch-hashswf.c >___________________________________________________________________ >Added: fbsd:nokeywords >## -0,0 +1 ## >+yes >\ No newline at end of property >Added: svn:eol-style >## -0,0 +1 ## >+native >\ No newline at end of property >Added: svn:mime-type >## -0,0 +1 ## >+text/plain >\ No newline at end of property
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
Attachments on
bug 231940
:
197892
|
197898
| 197899