wok-next annotate ptlib/stuff/patches/ptlib-2.10.11-openssl-1.1.0-1.patch @ rev 21569

updated cryptopp (5.6.5 -> 8.2.0)
author Hans-G?nter Theisgen
date Mon Jun 22 16:34:56 2020 +0100 (2020-06-22)
parents
children
rev   line source
al@20512 1 Submitted by: DJ Lucas (dj_AT_linuxfromscratch_DOT_org)
al@20512 2 Date: 2017-05-27
al@20512 3 Initial Package Version: 2.10.11
al@20512 4 Upstream Status: Submitted
al@20512 5 Origin: https://git.archlinux.org/svntogit/packages.git/plain/trunk/openssl-1.1.0.patch?h=packages/ptlib
al@20512 6 Description: Fixes build with OpenSSL-1.1.0.
al@20512 7
al@20512 8
al@20512 9 diff -Naurp ptlib-2.10.11-orig/src/ptclib/pssl.cxx ptlib-2.10.11/src/ptclib/pssl.cxx
al@20512 10 --- ptlib-2.10.11-orig/src/ptclib/pssl.cxx 2017-05-27 14:10:00.609612786 -0500
al@20512 11 +++ ptlib-2.10.11/src/ptclib/pssl.cxx 2017-05-27 14:11:20.232842073 -0500
al@20512 12 @@ -140,7 +140,7 @@ PFACTORY_CREATE_SINGLETON(PProcessStartu
al@20512 13 class PSSL_BIO
al@20512 14 {
al@20512 15 public:
al@20512 16 - PSSL_BIO(BIO_METHOD *method = BIO_s_file_internal())
al@20512 17 + PSSL_BIO(const BIO_METHOD *method = BIO_s_file())
al@20512 18 { bio = BIO_new(method); }
al@20512 19
al@20512 20 ~PSSL_BIO()
al@20512 21 @@ -627,9 +627,10 @@ PSSLDiffieHellman::PSSLDiffieHellman(con
al@20512 22 if (dh == NULL)
al@20512 23 return;
al@20512 24
al@20512 25 - dh->p = BN_bin2bn(pData, pSize, NULL);
al@20512 26 - dh->g = BN_bin2bn(gData, gSize, NULL);
al@20512 27 - if (dh->p != NULL && dh->g != NULL)
al@20512 28 + BIGNUM *p = BN_bin2bn(pData, pSize, NULL);
al@20512 29 + BIGNUM *g = BN_bin2bn(gData, gSize, NULL);
al@20512 30 + DH_set0_pqg(dh, p, NULL, g);
al@20512 31 + if (p != NULL && p != NULL)
al@20512 32 return;
al@20512 33
al@20512 34 DH_free(dh);
al@20512 35 @@ -805,13 +806,11 @@ void PSSLContext::Construct(Method metho
al@20512 36 SSL_METHOD * meth;
al@20512 37
al@20512 38 switch (method) {
al@20512 39 - case SSLv3:
al@20512 40 - meth = SSLv3_method();
al@20512 41 - break;
al@20512 42 case TLSv1:
al@20512 43 meth = TLSv1_method();
al@20512 44 break;
al@20512 45 case SSLv23:
al@20512 46 + case SSLv3:
al@20512 47 default:
al@20512 48 meth = SSLv23_method();
al@20512 49 break;
al@20512 50 @@ -1117,7 +1116,7 @@ PBoolean PSSLChannel::RawSSLRead(void *
al@20512 51 //
al@20512 52
al@20512 53
al@20512 54 -#define PSSLCHANNEL(bio) ((PSSLChannel *)(bio->ptr))
al@20512 55 +#define PSSLCHANNEL(bio) ((PSSLChannel *)BIO_get_data(bio))
al@20512 56
al@20512 57 extern "C" {
al@20512 58
al@20512 59 @@ -1130,10 +1129,9 @@ typedef long (*lfptr)();
al@20512 60
al@20512 61 static int Psock_new(BIO * bio)
al@20512 62 {
al@20512 63 - bio->init = 0;
al@20512 64 - bio->num = 0;
al@20512 65 - bio->ptr = NULL; // this is really (PSSLChannel *)
al@20512 66 - bio->flags = 0;
al@20512 67 + BIO_set_init(bio, 0);
al@20512 68 + BIO_set_data(bio, NULL);
al@20512 69 + BIO_clear_flags(bio, ~0);
al@20512 70
al@20512 71 return(1);
al@20512 72 }
al@20512 73 @@ -1144,13 +1142,13 @@ static int Psock_free(BIO * bio)
al@20512 74 if (bio == NULL)
al@20512 75 return 0;
al@20512 76
al@20512 77 - if (bio->shutdown) {
al@20512 78 - if (bio->init) {
al@20512 79 + if (BIO_get_shutdown(bio)) {
al@20512 80 + if (BIO_get_init(bio)) {
al@20512 81 PSSLCHANNEL(bio)->Shutdown(PSocket::ShutdownReadAndWrite);
al@20512 82 PSSLCHANNEL(bio)->Close();
al@20512 83 }
al@20512 84 - bio->init = 0;
al@20512 85 - bio->flags = 0;
al@20512 86 + BIO_set_init(bio, 0);
al@20512 87 + BIO_clear_flags(bio, ~0);
al@20512 88 }
al@20512 89 return 1;
al@20512 90 }
al@20512 91 @@ -1160,11 +1158,11 @@ static long Psock_ctrl(BIO * bio, int cm
al@20512 92 {
al@20512 93 switch (cmd) {
al@20512 94 case BIO_CTRL_SET_CLOSE:
al@20512 95 - bio->shutdown = (int)num;
al@20512 96 + BIO_set_shutdown(bio, (int)num);
al@20512 97 return 1;
al@20512 98
al@20512 99 case BIO_CTRL_GET_CLOSE:
al@20512 100 - return bio->shutdown;
al@20512 101 + return BIO_get_shutdown(bio);
al@20512 102
al@20512 103 case BIO_CTRL_FLUSH:
al@20512 104 return 1;
al@20512 105 @@ -1239,7 +1237,8 @@ static int Psock_puts(BIO * bio, const c
al@20512 106 };
al@20512 107
al@20512 108
al@20512 109 -static BIO_METHOD methods_Psock =
al@20512 110 +static BIO_METHOD *methods_Psock = NULL;
al@20512 111 +/*
al@20512 112 {
al@20512 113 BIO_TYPE_SOCKET,
al@20512 114 "PTLib-PSSLChannel",
al@20512 115 @@ -1261,19 +1260,33 @@ static BIO_METHOD methods_Psock =
al@20512 116 Psock_free
al@20512 117 #endif
al@20512 118 };
al@20512 119 -
al@20512 120 +*/
al@20512 121
al@20512 122 PBoolean PSSLChannel::OnOpen()
al@20512 123 {
al@20512 124 - BIO * bio = BIO_new(&methods_Psock);
al@20512 125 + if (methods_Psock == NULL) {
al@20512 126 + methods_Psock = BIO_meth_new(BIO_TYPE_SOCKET | BIO_get_new_index(), "PTLib-PSSLChannel");
al@20512 127 + if (methods_Psock == NULL ||
al@20512 128 + BIO_meth_set_write(methods_Psock, Psock_write) ||
al@20512 129 + BIO_meth_set_read(methods_Psock, Psock_read) ||
al@20512 130 + BIO_meth_set_puts(methods_Psock, Psock_puts) ||
al@20512 131 + BIO_meth_set_gets(methods_Psock, NULL) ||
al@20512 132 + BIO_meth_set_ctrl(methods_Psock, Psock_ctrl) ||
al@20512 133 + BIO_meth_set_create(methods_Psock, Psock_new) ||
al@20512 134 + BIO_meth_set_destroy(methods_Psock, Psock_free)) {
al@20512 135 + SSLerr(SSL_F_SSL_SET_FD,ERR_R_BUF_LIB);
al@20512 136 + return PFalse;
al@20512 137 + }
al@20512 138 + }
al@20512 139 + BIO * bio = BIO_new(methods_Psock);
al@20512 140 if (bio == NULL) {
al@20512 141 SSLerr(SSL_F_SSL_SET_FD,ERR_R_BUF_LIB);
al@20512 142 return PFalse;
al@20512 143 }
al@20512 144
al@20512 145 // "Open" then bio
al@20512 146 - bio->ptr = this;
al@20512 147 - bio->init = 1;
al@20512 148 + BIO_set_data(bio, this);
al@20512 149 + BIO_set_init(bio, 1);
al@20512 150
al@20512 151 SSL_set_bio(ssl, bio, bio);
al@20512 152 return PTrue;