123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308 |
- diff -ur kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssladapter.cc kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssladapter.cc
- --- kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssladapter.cc 2017-09-30 12:08:16.000000000 +0200
- +++ kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssladapter.cc 2018-01-05 22:49:27.805070408 +0100
- @@ -84,6 +84,7 @@
- static int socket_new(BIO* h);
- static int socket_free(BIO* data);
-
- +#if OPENSSL_VERSION_NUMBER < 0x10100000L
- static BIO_METHOD methods_socket = {
- BIO_TYPE_BIO,
- "socket",
- @@ -98,16 +99,40 @@
- };
-
- BIO_METHOD* BIO_s_socket2() { return(&methods_socket); }
- +#else
- +static BIO_METHOD *methods_socket = NULL;
- +
- +static const BIO_METHOD * BIO_s_socket2(void) {
- + if (methods_socket == NULL) {
- + methods_socket = BIO_meth_new (BIO_TYPE_BIO | BIO_get_new_index (), "socket");
- + if (methods_socket == NULL ||
- + BIO_meth_set_write (methods_socket, socket_write) ||
- + BIO_meth_set_read (methods_socket, socket_read) ||
- + BIO_meth_set_puts (methods_socket, socket_puts) ||
- + BIO_meth_set_gets (methods_socket, 0) ||
- + BIO_meth_set_ctrl (methods_socket, socket_ctrl) ||
- + BIO_meth_set_create (methods_socket, socket_new) ||
- + BIO_meth_set_destroy (methods_socket, socket_free))
- + return NULL;
- + }
- + return methods_socket;
- +}
- +#endif
-
- BIO* BIO_new_socket(talk_base::AsyncSocket* socket) {
- + const BIO_METHOD *socket2 = BIO_s_socket2();
- + if (socket2 == NULL) {
- + return NULL;
- + }
- - BIO* ret = BIO_new(BIO_s_socket2());
- + BIO* ret = BIO_new(socket2);
- if (ret == NULL) {
- return NULL;
- }
- - ret->ptr = socket;
- + BIO_set_data(ret, socket);
- return ret;
- }
-
- +#if OPENSSL_VERSION_NUMBER < 0x10100000L
- static int socket_new(BIO* b) {
- b->shutdown = 0;
- b->init = 1;
- @@ -115,6 +136,14 @@
- b->ptr = 0;
- return 1;
- }
- +#else
- +static int socket_new(BIO* b) {
- + BIO_set_shutdown(b, 0);
- + BIO_set_init(b, 1);
- + BIO_set_data(b, 0);
- + return 1;
- +}
- +#endif
-
- static int socket_free(BIO* b) {
- if (b == NULL)
- @@ -125,13 +154,11 @@
- static int socket_read(BIO* b, char* out, int outl) {
- if (!out)
- return -1;
- - talk_base::AsyncSocket* socket = static_cast<talk_base::AsyncSocket*>(b->ptr);
- + talk_base::AsyncSocket* socket = static_cast<talk_base::AsyncSocket*>(BIO_get_data(b));
- BIO_clear_retry_flags(b);
- int result = socket->Recv(out, outl);
- if (result > 0) {
- return result;
- - } else if (result == 0) {
- - b->num = 1;
- } else if (socket->IsBlocking()) {
- BIO_set_retry_read(b);
- }
- @@ -141,7 +168,7 @@
- static int socket_write(BIO* b, const char* in, int inl) {
- if (!in)
- return -1;
- - talk_base::AsyncSocket* socket = static_cast<talk_base::AsyncSocket*>(b->ptr);
- + talk_base::AsyncSocket* socket = static_cast<talk_base::AsyncSocket*>(BIO_get_data(b));
- BIO_clear_retry_flags(b);
- int result = socket->Send(in, inl);
- if (result > 0) {
- @@ -164,7 +191,6 @@
- case BIO_CTRL_RESET:
- return 0;
- case BIO_CTRL_EOF:
- - return b->num;
- case BIO_CTRL_WPENDING:
- case BIO_CTRL_PENDING:
- return 0;
- @@ -696,7 +722,9 @@
- // We assign this to a local variable, instead of passing the address
- // directly to ASN1_item_d2i.
- // See http://readlist.com/lists/openssl.org/openssl-users/0/4761.html.
- - unsigned char* ext_value_data = extension->value->data;
- + ASN1_OCTET_STRING *extension_data = X509_EXTENSION_get_data(extension);
- + unsigned char* ext_value_data = extension_data->data;
- + long length = extension_data->length;
-
- #if OPENSSL_VERSION_NUMBER >= 0x0090800fL
- const unsigned char **ext_value_data_ptr =
- @@ -707,10 +735,10 @@
-
- if (meth->it) {
- ext_str = ASN1_item_d2i(NULL, ext_value_data_ptr,
- - extension->value->length,
- + length,
- ASN1_ITEM_ptr(meth->it));
- } else {
- - ext_str = meth->d2i(NULL, ext_value_data_ptr, extension->value->length);
- + ext_str = meth->d2i(NULL, ext_value_data_ptr, length);
- }
-
- STACK_OF(CONF_VALUE)* value = meth->i2v(meth, ext_str, NULL);
- diff -ur kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssldigest.cc kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssldigest.cc
- --- kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssldigest.cc 2017-09-30 12:08:16.000000000 +0200
- +++ kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssldigest.cc 2018-01-05 22:49:27.869069361 +0100
- @@ -32,16 +32,16 @@
- namespace talk_base {
-
- OpenSSLDigest::OpenSSLDigest(const std::string& algorithm) {
- - EVP_MD_CTX_init(&ctx_);
- + EVP_MD_CTX_init(ctx_);
- if (GetDigestEVP(algorithm, &md_)) {
- - EVP_DigestInit_ex(&ctx_, md_, NULL);
- + EVP_DigestInit_ex(ctx_, md_, NULL);
- } else {
- md_ = NULL;
- }
- }
-
- OpenSSLDigest::~OpenSSLDigest() {
- - EVP_MD_CTX_cleanup(&ctx_);
- + EVP_MD_CTX_destroy(ctx_);
- }
-
- size_t OpenSSLDigest::Size() const {
- @@ -55,7 +55,7 @@
- if (!md_) {
- return;
- }
- - EVP_DigestUpdate(&ctx_, buf, len);
- + EVP_DigestUpdate(ctx_, buf, len);
- }
-
- size_t OpenSSLDigest::Finish(void* buf, size_t len) {
- @@ -63,8 +63,8 @@
- return 0;
- }
- unsigned int md_len;
- - EVP_DigestFinal_ex(&ctx_, static_cast<unsigned char*>(buf), &md_len);
- - EVP_DigestInit_ex(&ctx_, md_, NULL); // prepare for future Update()s
- + EVP_DigestFinal_ex(ctx_, static_cast<unsigned char*>(buf), &md_len);
- + EVP_DigestInit_ex(ctx_, md_, NULL); // prepare for future Update()s
- ASSERT(md_len == Size());
- return md_len;
- }
- diff -ur kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssldigest.h kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssldigest.h
- --- kopete-17.08.3/protocols/jabber/libjingle/talk/base/openssldigest.h 2017-09-30 12:08:16.000000000 +0200
- +++ kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/openssldigest.h 2018-01-05 22:49:27.869069361 +0100
- @@ -55,7 +55,7 @@
- size_t* len);
-
- private:
- - EVP_MD_CTX ctx_;
- + EVP_MD_CTX* ctx_ = EVP_MD_CTX_create();
- const EVP_MD* md_;
- };
-
- diff -ur kopete-17.08.3/protocols/jabber/libjingle/talk/base/opensslidentity.cc kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/opensslidentity.cc
- --- kopete-17.08.3/protocols/jabber/libjingle/talk/base/opensslidentity.cc 2017-09-30 12:08:16.000000000 +0200
- +++ kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/opensslidentity.cc 2018-01-05 22:49:27.867069394 +0100
- @@ -169,7 +169,12 @@
- }
-
- void OpenSSLKeyPair::AddReference() {
- +#if OPENSSL_VERSION_NUMBER < 0x10100000L
- CRYPTO_add(&pkey_->references, 1, CRYPTO_LOCK_EVP_PKEY);
- +#else
- + EVP_PKEY_up_ref(pkey_);
- +#endif
- +
- }
-
- #ifdef _DEBUG
- @@ -275,7 +280,11 @@
- }
-
- void OpenSSLCertificate::AddReference() {
- +#if OPENSSL_VERSION_NUMBER < 0x10100000L
- CRYPTO_add(&x509_->references, 1, CRYPTO_LOCK_X509);
- +#else
- + X509_up_ref(x509_);
- +#endif
- }
-
- OpenSSLIdentity* OpenSSLIdentity::Generate(const std::string& common_name) {
- diff -ur kopete-17.08.3/protocols/jabber/libjingle/talk/base/opensslstreamadapter.cc kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/opensslstreamadapter.cc
- --- kopete-17.08.3/protocols/jabber/libjingle/talk/base/opensslstreamadapter.cc 2017-09-30 12:08:16.000000000 +0200
- +++ kopete-17.08.3-openssl-1.1/protocols/jabber/libjingle/talk/base/opensslstreamadapter.cc 2018-01-05 22:49:27.868069378 +0100
- @@ -87,6 +87,7 @@
- static int stream_new(BIO* h);
- static int stream_free(BIO* data);
-
- +#if OPENSSL_VERSION_NUMBER < 0x10100000L
- static BIO_METHOD methods_stream = {
- BIO_TYPE_BIO,
- "stream",
- @@ -101,17 +102,37 @@
- };
-
- static BIO_METHOD* BIO_s_stream() { return(&methods_stream); }
- +#else
- +static BIO_METHOD *methods_stream = NULL;
- +
- +static const BIO_METHOD * BIO_s_stream(void) {
- + if (methods_stream == NULL) {
- + methods_stream = BIO_meth_new (BIO_TYPE_BIO | BIO_get_new_index (), "stream");
- + if (methods_stream == NULL ||
- + BIO_meth_set_write (methods_stream, stream_write) ||
- + BIO_meth_set_read (methods_stream, stream_read) ||
- + BIO_meth_set_puts (methods_stream, stream_puts) ||
- + BIO_meth_set_gets (methods_stream, 0) ||
- + BIO_meth_set_ctrl (methods_stream, stream_ctrl) ||
- + BIO_meth_set_create (methods_stream, stream_new) ||
- + BIO_meth_set_destroy (methods_stream, stream_free))
- + return NULL;
- + }
- + return methods_stream;
- +}
- +#endif
-
- static BIO* BIO_new_stream(StreamInterface* stream) {
- BIO* ret = BIO_new(BIO_s_stream());
- if (ret == NULL)
- return NULL;
- - ret->ptr = stream;
- + BIO_set_data(ret, stream);
- return ret;
- }
-
- // bio methods return 1 (or at least non-zero) on success and 0 on failure.
-
- +#if OPENSSL_VERSION_NUMBER < 0x10100000L
- static int stream_new(BIO* b) {
- b->shutdown = 0;
- b->init = 1;
- @@ -119,6 +140,14 @@
- b->ptr = 0;
- return 1;
- }
- +#else
- +static int stream_new(BIO* b) {
- + BIO_set_shutdown(b, 0);
- + BIO_set_init(b, 1);
- + BIO_set_data(b, 0);
- + return 1;
- +}
- +#endif
-
- static int stream_free(BIO* b) {
- if (b == NULL)
- @@ -129,15 +158,13 @@
- static int stream_read(BIO* b, char* out, int outl) {
- if (!out)
- return -1;
- - StreamInterface* stream = static_cast<StreamInterface*>(b->ptr);
- + StreamInterface* stream = static_cast<StreamInterface*>(BIO_get_data(b));
- BIO_clear_retry_flags(b);
- size_t read;
- int error;
- StreamResult result = stream->Read(out, outl, &read, &error);
- if (result == SR_SUCCESS) {
- return read;
- - } else if (result == SR_EOS) {
- - b->num = 1;
- } else if (result == SR_BLOCK) {
- BIO_set_retry_read(b);
- }
- @@ -147,7 +174,7 @@
- static int stream_write(BIO* b, const char* in, int inl) {
- if (!in)
- return -1;
- - StreamInterface* stream = static_cast<StreamInterface*>(b->ptr);
- + StreamInterface* stream = static_cast<StreamInterface*>(BIO_get_data(b));
- BIO_clear_retry_flags(b);
- size_t written;
- int error;
- @@ -172,7 +199,6 @@
- case BIO_CTRL_RESET:
- return 0;
- case BIO_CTRL_EOF:
- - return b->num;
- case BIO_CTRL_WPENDING:
- case BIO_CTRL_PENDING:
- return 0;
|