summaryrefslogtreecommitdiffstats
path: root/src
diff options
context:
space:
mode:
authorTimothy Gu <timothygu99@gmail.com>2014-07-01 22:49:14 (GMT)
committerTimothy Gu <timothygu99@gmail.com>2014-07-01 22:49:31 (GMT)
commitf5fe7bce249b2d6471e28c080794394484a76801 (patch)
tree3edf5b4077c5e20286aa2b623175c2a00a58839b /src
parent2b42e831c9939f8d681c4e9e2564b1cec8fd2953 (diff)
downloadmxe-f5fe7bce249b2d6471e28c080794394484a76801.zip
mxe-f5fe7bce249b2d6471e28c080794394484a76801.tar.gz
mxe-f5fe7bce249b2d6471e28c080794394484a76801.tar.bz2
Backport openssl patches
Closes #429. Signed-off-by: Timothy Gu <timothygu99@gmail.com>
Diffstat (limited to 'src')
-rw-r--r--src/openssl-1-fixes.patch633
-rw-r--r--src/openssl-1-winsock2.patch42
-rw-r--r--src/openssl-2-pod.patch580
3 files changed, 633 insertions, 622 deletions
diff --git a/src/openssl-1-fixes.patch b/src/openssl-1-fixes.patch
new file mode 100644
index 0000000..4f1b087
--- /dev/null
+++ b/src/openssl-1-fixes.patch
@@ -0,0 +1,633 @@
+This file is part of MXE.
+See index.html for further information.
+
+From 27c7c56780a801db21ba49139239ecafd0e8fb88 Mon Sep 17 00:00:00 2001
+From: Mark Brand <mabrand@mabrand.nl>
+Date: Wed, 8 Jan 2014 02:19:10 +0100
+Subject: [PATCH 1/2] winsock2
+
+-This patch has been taken from:
+-http://rt.openssl.org/Ticket/Display.html?id=2285&user=guest&pass=guest
+
+diff --git a/e_os.h b/e_os.h
+index 6a0aad1..4928713 100644
+--- a/e_os.h
++++ b/e_os.h
+@@ -499,7 +499,7 @@ static unsigned int _strlen31(const char *str)
+ # endif
+ # if !defined(IPPROTO_IP)
+ /* winsock[2].h was included already? */
+-# include <winsock.h>
++# include <winsock2.h>
+ # endif
+ # ifdef getservbyname
+ # undef getservbyname
+diff --git a/ssl/dtls1.h b/ssl/dtls1.h
+index e65d501..7762089 100644
+--- a/ssl/dtls1.h
++++ b/ssl/dtls1.h
+@@ -68,7 +68,7 @@
+ #endif
+ #ifdef OPENSSL_SYS_WIN32
+ /* Needed for struct timeval */
+-#include <winsock.h>
++#include <winsock2.h>
+ #elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_)
+ #include <sys/timeval.h>
+ #else
+diff --git a/ssl/ssltest.c b/ssl/ssltest.c
+index 4f80be8..af5f1be 100644
+--- a/ssl/ssltest.c
++++ b/ssl/ssltest.c
+@@ -193,7 +193,7 @@
+ */
+
+ #ifdef OPENSSL_SYS_WINDOWS
+-#include <winsock.h>
++#include <winsock2.h>
+ #else
+ #include OPENSSL_UNISTD
+ #endif
+--
+1.8.4.5
+
+
+From 8f930a5f4b18990cf24383fde0e493afbb240c8b Mon Sep 17 00:00:00 2001
+From: Tom Molesworth <tom@entitymodel.com>
+Date: Wed, 8 Jan 2014 02:20:21 +0100
+Subject: [PATCH 2/2] Patch OpenSSL POD docs for perl-5.16+
+
+Stricter validation in recent Perl versions means the install
+stage fails without these applied.
+
+Should be harmless for earlier versions of perl.
+
+diff --git a/doc/apps/cms.pod b/doc/apps/cms.pod
+index a76b3e0..9a05fa4 100644
+--- a/doc/apps/cms.pod
++++ b/doc/apps/cms.pod
+@@ -465,28 +465,28 @@ with caution. For a fuller description see L<CMS_decrypt(3)|CMS_decrypt(3)>).
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ the operation was completely successfully.
+
+-=item Z<>1
++=item * Z<>1
+
+ an error occurred parsing the command options.
+
+-=item Z<>2
++=item * Z<>2
+
+ one of the input files could not be read.
+
+-=item Z<>3
++=item * Z<>3
+
+ an error occurred creating the CMS file or when reading the MIME
+ message.
+
+-=item Z<>4
++=item * Z<>4
+
+ an error occurred decrypting or verifying the message.
+
+-=item Z<>5
++=item * Z<>5
+
+ the message was verified correctly but an error occurred writing out
+ the signers certificates.
+diff --git a/doc/apps/smime.pod b/doc/apps/smime.pod
+index d39a59a..1a5cfa6 100644
+--- a/doc/apps/smime.pod
++++ b/doc/apps/smime.pod
+@@ -308,28 +308,28 @@ remains DER.
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ the operation was completely successfully.
+
+-=item Z<>1
++=item * Z<>1
+
+ an error occurred parsing the command options.
+
+-=item Z<>2
++=item * Z<>2
+
+ one of the input files could not be read.
+
+-=item Z<>3
++=item * Z<>3
+
+ an error occurred creating the PKCS#7 file or when reading the MIME
+ message.
+
+-=item Z<>4
++=item * Z<>4
+
+ an error occurred decrypting or verifying the message.
+
+-=item Z<>5
++=item * Z<>5
+
+ the message was verified correctly but an error occurred writing out
+ the signers certificates.
+diff --git a/doc/crypto/rand.pod b/doc/crypto/rand.pod
+index 1c068c8..8477fda 100644
+--- a/doc/crypto/rand.pod
++++ b/doc/crypto/rand.pod
+@@ -74,16 +74,16 @@ First up I will state the things I believe I need for a good RNG.
+
+ =over 4
+
+-=item 1
++=item * 1
+
+ A good hashing algorithm to mix things up and to convert the RNG 'state'
+ to random numbers.
+
+-=item 2
++=item * 2
+
+ An initial source of random 'state'.
+
+-=item 3
++=item * 3
+
+ The state should be very large. If the RNG is being used to generate
+ 4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
+@@ -93,13 +93,13 @@ carried away on this last point but it does indicate that it may not be
+ a bad idea to keep quite a lot of RNG state. It should be easier to
+ break a cipher than guess the RNG seed data.
+
+-=item 4
++=item * 4
+
+ Any RNG seed data should influence all subsequent random numbers
+ generated. This implies that any random seed data entered will have
+ an influence on all subsequent random numbers generated.
+
+-=item 5
++=item * 5
+
+ When using data to seed the RNG state, the data used should not be
+ extractable from the RNG state. I believe this should be a
+@@ -108,12 +108,12 @@ data would be a private key or a password. This data must
+ not be disclosed by either subsequent random numbers or a
+ 'core' dump left by a program crash.
+
+-=item 6
++=item * 6
+
+ Given the same initial 'state', 2 systems should deviate in their RNG state
+ (and hence the random numbers generated) over time if at all possible.
+
+-=item 7
++=item * 7
+
+ Given the random number output stream, it should not be possible to determine
+ the RNG state or the next random number.
+diff --git a/doc/ssl/SSL_COMP_add_compression_method.pod b/doc/ssl/SSL_COMP_add_compression_method.pod
+index f4d191c..5f2a3f1 100644
+--- a/doc/ssl/SSL_COMP_add_compression_method.pod
++++ b/doc/ssl/SSL_COMP_add_compression_method.pod
+@@ -53,11 +53,11 @@ SSL_COMP_add_compression_method() may return the following values:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The operation succeeded.
+
+-=item Z<>1
++=item * Z<>1
+
+ The operation failed. Check the error queue to find out the reason.
+
+diff --git a/doc/ssl/SSL_CTX_add_session.pod b/doc/ssl/SSL_CTX_add_session.pod
+index 8e0abd3..f5a487c 100644
+--- a/doc/ssl/SSL_CTX_add_session.pod
++++ b/doc/ssl/SSL_CTX_add_session.pod
+@@ -52,13 +52,13 @@ The following values are returned by all functions:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The operation failed. In case of the add operation, it was tried to add
+ the same (identical) session twice. In case of the remove operation, the
+ session was not found in the cache.
+
+-=item Z<>1
++=item * Z<>1
+
+ The operation succeeded.
+
+diff --git a/doc/ssl/SSL_CTX_load_verify_locations.pod b/doc/ssl/SSL_CTX_load_verify_locations.pod
+index d1d8977..449c8c9 100644
+--- a/doc/ssl/SSL_CTX_load_verify_locations.pod
++++ b/doc/ssl/SSL_CTX_load_verify_locations.pod
+@@ -100,13 +100,13 @@ The following return values can occur:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The operation failed because B<CAfile> and B<CApath> are NULL or the
+ processing at one of the locations specified failed. Check the error
+ stack to find out the reason.
+
+-=item Z<>1
++=item * Z<>1
+
+ The operation succeeded.
+
+diff --git a/doc/ssl/SSL_CTX_set_client_CA_list.pod b/doc/ssl/SSL_CTX_set_client_CA_list.pod
+index 5e97392..6b04440 100644
+--- a/doc/ssl/SSL_CTX_set_client_CA_list.pod
++++ b/doc/ssl/SSL_CTX_set_client_CA_list.pod
+@@ -66,13 +66,13 @@ values:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ A failure while manipulating the STACK_OF(X509_NAME) object occurred or
+ the X509_NAME could not be extracted from B<cacert>. Check the error stack
+ to find out the reason.
+
+-=item Z<>1
++=item * Z<>1
+
+ The operation succeeded.
+
+diff --git a/doc/ssl/SSL_CTX_set_session_id_context.pod b/doc/ssl/SSL_CTX_set_session_id_context.pod
+index 7c9e515..ea36746 100644
+--- a/doc/ssl/SSL_CTX_set_session_id_context.pod
++++ b/doc/ssl/SSL_CTX_set_session_id_context.pod
+@@ -64,13 +64,13 @@ return the following values:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The length B<sid_ctx_len> of the session id context B<sid_ctx> exceeded
+ the maximum allowed length of B<SSL_MAX_SSL_SESSION_ID_LENGTH>. The error
+ is logged to the error stack.
+
+-=item Z<>1
++=item * Z<>1
+
+ The operation succeeded.
+
+diff --git a/doc/ssl/SSL_CTX_set_ssl_version.pod b/doc/ssl/SSL_CTX_set_ssl_version.pod
+index e254f96..c15f86e 100644
+--- a/doc/ssl/SSL_CTX_set_ssl_version.pod
++++ b/doc/ssl/SSL_CTX_set_ssl_version.pod
+@@ -42,11 +42,11 @@ and SSL_set_ssl_method():
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The new choice failed, check the error stack to find out the reason.
+
+-=item Z<>1
++=item * Z<>1
+
+ The operation succeeded.
+
+diff --git a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod
+index 9da7201..a60d041 100644
+--- a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod
++++ b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod
+@@ -83,7 +83,7 @@ Return values from the server callback are interpreted as follows:
+
+ =over 4
+
+-=item > 0
++=item * > 0
+
+ PSK identity was found and the server callback has provided the PSK
+ successfully in parameter B<psk>. Return value is the length of
+@@ -96,7 +96,7 @@ data to B<psk> and return the length of the random data, so the
+ connection will fail with decryption_error before it will be finished
+ completely.
+
+-=item Z<>0
++=item * Z<>0
+
+ PSK identity was not found. An "unknown_psk_identity" alert message
+ will be sent and the connection setup fails.
+diff --git a/doc/ssl/SSL_accept.pod b/doc/ssl/SSL_accept.pod
+index 2239444..5e032e6 100644
+--- a/doc/ssl/SSL_accept.pod
++++ b/doc/ssl/SSL_accept.pod
+@@ -44,18 +44,18 @@ The following return values can occur:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The TLS/SSL handshake was not successful but was shut down controlled and
+ by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
+ return value B<ret> to find out the reason.
+
+-=item Z<>1
++=item * Z<>1
+
+ The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
+ established.
+
+-=item E<lt>0
++=item * E<lt>0
+
+ The TLS/SSL handshake was not successful because a fatal error occurred either
+ at the protocol level or a connection failure occurred. The shutdown was
+diff --git a/doc/ssl/SSL_clear.pod b/doc/ssl/SSL_clear.pod
+index ba192bd..479f97f 100644
+--- a/doc/ssl/SSL_clear.pod
++++ b/doc/ssl/SSL_clear.pod
+@@ -56,12 +56,12 @@ The following return values can occur:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The SSL_clear() operation could not be performed. Check the error stack to
+ find out the reason.
+
+-=item Z<>1
++=item * Z<>1
+
+ The SSL_clear() operation was successful.
+
+diff --git a/doc/ssl/SSL_connect.pod b/doc/ssl/SSL_connect.pod
+index 68e2b82..52c4aa9 100644
+--- a/doc/ssl/SSL_connect.pod
++++ b/doc/ssl/SSL_connect.pod
+@@ -41,18 +41,18 @@ The following return values can occur:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The TLS/SSL handshake was not successful but was shut down controlled and
+ by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
+ return value B<ret> to find out the reason.
+
+-=item Z<>1
++=item * Z<>1
+
+ The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
+ established.
+
+-=item E<lt>0
++=item * E<lt>0
+
+ The TLS/SSL handshake was not successful, because a fatal error occurred either
+ at the protocol level or a connection failure occurred. The shutdown was
+diff --git a/doc/ssl/SSL_do_handshake.pod b/doc/ssl/SSL_do_handshake.pod
+index b35ddf5..871f15c 100644
+--- a/doc/ssl/SSL_do_handshake.pod
++++ b/doc/ssl/SSL_do_handshake.pod
+@@ -45,18 +45,18 @@ The following return values can occur:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The TLS/SSL handshake was not successful but was shut down controlled and
+ by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
+ return value B<ret> to find out the reason.
+
+-=item Z<>1
++=item * Z<>1
+
+ The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
+ established.
+
+-=item E<lt>0
++=item * E<lt>0
+
+ The TLS/SSL handshake was not successful because a fatal error occurred either
+ at the protocol level or a connection failure occurred. The shutdown was
+diff --git a/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod b/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod
+index 165c6a5..073e99c 100644
+--- a/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod
++++ b/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod
+@@ -36,11 +36,11 @@ before the SSL index is created.
+
+ =over 4
+
+-=item E<gt>=0
++=item * E<gt>=0
+
+ The index value to access the pointer.
+
+-=item E<lt>0
++=item * E<lt>0
+
+ An error occurred, check the error stack for a detailed error message.
+
+diff --git a/doc/ssl/SSL_get_fd.pod b/doc/ssl/SSL_get_fd.pod
+index 89260b5..1207658 100644
+--- a/doc/ssl/SSL_get_fd.pod
++++ b/doc/ssl/SSL_get_fd.pod
+@@ -26,12 +26,12 @@ The following return values can occur:
+
+ =over 4
+
+-=item -1
++=item * -1
+
+ The operation failed, because the underlying BIO is not of the correct type
+ (suitable for file descriptors).
+
+-=item E<gt>=0
++=item * E<gt>=0
+
+ The file descriptor linked to B<ssl>.
+
+diff --git a/doc/ssl/SSL_read.pod b/doc/ssl/SSL_read.pod
+index 8ca0ce5..14c472f 100644
+--- a/doc/ssl/SSL_read.pod
++++ b/doc/ssl/SSL_read.pod
+@@ -81,12 +81,12 @@ The following return values can occur:
+
+ =over 4
+
+-=item E<gt>0
++=item * E<gt>0
+
+ The read operation was successful; the return value is the number of
+ bytes actually read from the TLS/SSL connection.
+
+-=item Z<>0
++=item * Z<>0
+
+ The read operation was not successful. The reason may either be a clean
+ shutdown due to a "close notify" alert sent by the peer (in which case
+@@ -103,7 +103,7 @@ only be detected, whether the underlying connection was closed. It cannot
+ be checked, whether the closure was initiated by the peer or by something
+ else.
+
+-=item E<lt>0
++=item * E<lt>0
+
+ The read operation was not successful, because either an error occurred
+ or action must be taken by the calling process. Call SSL_get_error() with the
+diff --git a/doc/ssl/SSL_session_reused.pod b/doc/ssl/SSL_session_reused.pod
+index b09d8a7..7f49da1 100644
+--- a/doc/ssl/SSL_session_reused.pod
++++ b/doc/ssl/SSL_session_reused.pod
+@@ -27,11 +27,11 @@ The following return values can occur:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ A new session was negotiated.
+
+-=item Z<>1
++=item * Z<>1
+
+ A session was reused.
+
+diff --git a/doc/ssl/SSL_set_fd.pod b/doc/ssl/SSL_set_fd.pod
+index 1480871..bfc39ed 100644
+--- a/doc/ssl/SSL_set_fd.pod
++++ b/doc/ssl/SSL_set_fd.pod
+@@ -35,11 +35,11 @@ The following return values can occur:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The operation failed. Check the error stack to find out why.
+
+-=item Z<>1
++=item * Z<>1
+
+ The operation succeeded.
+
+diff --git a/doc/ssl/SSL_set_session.pod b/doc/ssl/SSL_set_session.pod
+index 197b521..fbdee4c 100644
+--- a/doc/ssl/SSL_set_session.pod
++++ b/doc/ssl/SSL_set_session.pod
+@@ -37,11 +37,11 @@ The following return values can occur:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The operation failed; check the error stack to find out the reason.
+
+-=item Z<>1
++=item * Z<>1
+
+ The operation succeeded.
+
+diff --git a/doc/ssl/SSL_set_shutdown.pod b/doc/ssl/SSL_set_shutdown.pod
+index fe01308..879a33a 100644
+--- a/doc/ssl/SSL_set_shutdown.pod
++++ b/doc/ssl/SSL_set_shutdown.pod
+@@ -24,16 +24,16 @@ The shutdown state of an ssl connection is a bitmask of:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ No shutdown setting, yet.
+
+-=item SSL_SENT_SHUTDOWN
++=item * SSL_SENT_SHUTDOWN
+
+ A "close notify" shutdown alert was sent to the peer, the connection is being
+ considered closed and the session is closed and correct.
+
+-=item SSL_RECEIVED_SHUTDOWN
++=item * SSL_RECEIVED_SHUTDOWN
+
+ A shutdown alert was received form the peer, either a normal "close notify"
+ or a fatal error.
+diff --git a/doc/ssl/SSL_shutdown.pod b/doc/ssl/SSL_shutdown.pod
+index 85d4a64..9fe029b 100644
+--- a/doc/ssl/SSL_shutdown.pod
++++ b/doc/ssl/SSL_shutdown.pod
+@@ -92,19 +92,19 @@ The following return values can occur:
+
+ =over 4
+
+-=item Z<>0
++=item * Z<>0
+
+ The shutdown is not yet finished. Call SSL_shutdown() for a second time,
+ if a bidirectional shutdown shall be performed.
+ The output of L<SSL_get_error(3)|SSL_get_error(3)> may be misleading, as an
+ erroneous SSL_ERROR_SYSCALL may be flagged even though no error occurred.
+
+-=item Z<>1
++=item * Z<>1
+
+ The shutdown was successfully completed. The "close notify" alert was sent
+ and the peer's "close notify" alert was received.
+
+-=item -1
++=item * -1
+
+ The shutdown was not successful because a fatal error occurred either
+ at the protocol level or a connection failure occurred. It can also occur if
+diff --git a/doc/ssl/SSL_write.pod b/doc/ssl/SSL_write.pod
+index a57617f..70c1630 100644
+--- a/doc/ssl/SSL_write.pod
++++ b/doc/ssl/SSL_write.pod
+@@ -74,12 +74,12 @@ The following return values can occur:
+
+ =over 4
+
+-=item E<gt>0
++=item * E<gt>0
+
+ The write operation was successful, the return value is the number of
+ bytes actually written to the TLS/SSL connection.
+
+-=item Z<>0
++=item * Z<>0
+
+ The write operation was not successful. Probably the underlying connection
+ was closed. Call SSL_get_error() with the return value B<ret> to find out,
+@@ -90,7 +90,7 @@ SSLv2 (deprecated) does not support a shutdown alert protocol, so it can
+ only be detected, whether the underlying connection was closed. It cannot
+ be checked, why the closure happened.
+
+-=item E<lt>0
++=item * E<lt>0
+
+ The write operation was not successful, because either an error occurred
+ or action must be taken by the calling process. Call SSL_get_error() with the
+--
+1.8.4.5
+
diff --git a/src/openssl-1-winsock2.patch b/src/openssl-1-winsock2.patch
deleted file mode 100644
index 8d5a684..0000000
--- a/src/openssl-1-winsock2.patch
+++ /dev/null
@@ -1,42 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-This patch has been taken from:
-http://rt.openssl.org/Ticket/Display.html?id=2285&user=guest&pass=guest
-
-diff -urN a/e_os.h b/e_os.h
---- a/e_os.h 2010-05-31 15:18:08.000000000 +0200
-+++ b/e_os.h 2010-06-04 17:43:44.370181869 +0200
-@@ -492,7 +492,7 @@
- # endif
- # if !defined(IPPROTO_IP)
- /* winsock[2].h was included already? */
--# include <winsock.h>
-+# include <winsock2.h>
- # endif
- # ifdef getservbyname
- # undef getservbyname
-diff -urN a/ssl/dtls1.h b/ssl/dtls1.h
---- a/ssl/dtls1.h 2010-04-14 02:17:29.000000000 +0200
-+++ b/ssl/dtls1.h 2010-06-04 17:44:27.318182412 +0200
-@@ -68,7 +68,7 @@
- #endif
- #ifdef OPENSSL_SYS_WIN32
- /* Needed for struct timeval */
--#include <winsock.h>
-+#include <winsock2.h>
- #elif defined(OPENSSL_SYS_NETWARE) && !defined(_WINSOCK2API_)
- #include <sys/timeval.h>
- #else
-diff -urN a/ssl/ssltest.c b/ssl/ssltest.c
---- a/ssl/ssltest.c 2010-01-24 17:57:38.000000000 +0100
-+++ b/ssl/ssltest.c 2010-06-04 17:44:26.134181765 +0200
-@@ -193,7 +193,7 @@
- */
-
- #ifdef OPENSSL_SYS_WINDOWS
--#include <winsock.h>
-+#include <winsock2.h>
- #else
- #include OPENSSL_UNISTD
- #endif
diff --git a/src/openssl-2-pod.patch b/src/openssl-2-pod.patch
deleted file mode 100644
index 8c67521..0000000
--- a/src/openssl-2-pod.patch
+++ /dev/null
@@ -1,580 +0,0 @@
-This file is part of MXE.
-See index.html for further information.
-
-diff -uNPr a/doc/apps/cms.pod b/doc/apps/cms.pod
---- a/doc/apps/cms.pod 2013-02-11 15:26:04.000000000 +0000
-+++ b/doc/apps/cms.pod 2013-06-01 22:08:31.005787054 +0100
-@@ -450,28 +450,28 @@
-
- =over 4
-
--=item 0
-+=item * 0
-
- the operation was completely successfully.
-
--=item 1
-+=item * 1
-
- an error occurred parsing the command options.
-
--=item 2
-+=item * 2
-
- one of the input files could not be read.
-
--=item 3
-+=item * 3
-
- an error occurred creating the CMS file or when reading the MIME
- message.
-
--=item 4
-+=item * 4
-
- an error occurred decrypting or verifying the message.
-
--=item 5
-+=item * 5
-
- the message was verified correctly but an error occurred writing out
- the signers certificates.
-diff -uNPr a/doc/apps/smime.pod b/doc/apps/smime.pod
---- a/doc/apps/smime.pod 2013-02-11 15:26:04.000000000 +0000
-+++ b/doc/apps/smime.pod 2013-06-01 22:09:26.732719037 +0100
-@@ -308,28 +308,28 @@
-
- =over 4
-
--=item 0
-+=item * 0
-
- the operation was completely successfully.
-
--=item 1
-+=item * 1
-
- an error occurred parsing the command options.
-
--=item 2
-+=item * 2
-
- one of the input files could not be read.
-
--=item 3
-+=item * 3
-
- an error occurred creating the PKCS#7 file or when reading the MIME
- message.
-
--=item 4
-+=item * 4
-
- an error occurred decrypting or verifying the message.
-
--=item 5
-+=item * 5
-
- the message was verified correctly but an error occurred writing out
- the signers certificates.
-diff -uNPr a/doc/crypto/rand.pod b/doc/crypto/rand.pod
---- a/doc/crypto/rand.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/crypto/rand.pod 2013-06-01 22:15:07.474188667 +0100
-@@ -74,17 +74,14 @@
-
- =over 4
-
--=item 1
--
-+=item * 1
- A good hashing algorithm to mix things up and to convert the RNG 'state'
- to random numbers.
-
--=item 2
--
-+=item * 2
- An initial source of random 'state'.
-
--=item 3
--
-+=item * 3
- The state should be very large. If the RNG is being used to generate
- 4096 bit RSA keys, 2 2048 bit random strings are required (at a minimum).
- If your RNG state only has 128 bits, you are obviously limiting the
-@@ -93,14 +90,12 @@
- a bad idea to keep quite a lot of RNG state. It should be easier to
- break a cipher than guess the RNG seed data.
-
--=item 4
--
-+=item * 4
- Any RNG seed data should influence all subsequent random numbers
- generated. This implies that any random seed data entered will have
- an influence on all subsequent random numbers generated.
-
--=item 5
--
-+=item * 5
- When using data to seed the RNG state, the data used should not be
- extractable from the RNG state. I believe this should be a
- requirement because one possible source of 'secret' semi random
-@@ -108,13 +103,11 @@
- not be disclosed by either subsequent random numbers or a
- 'core' dump left by a program crash.
-
--=item 6
--
-+=item * 6
- Given the same initial 'state', 2 systems should deviate in their RNG state
- (and hence the random numbers generated) over time if at all possible.
-
--=item 7
--
-+=item * 7
- Given the random number output stream, it should not be possible to determine
- the RNG state or the next random number.
-
-diff -uNPr a/doc/crypto/X509_STORE_CTX_get_error.pod b/doc/crypto/X509_STORE_CTX_get_error.pod
---- a/doc/crypto/X509_STORE_CTX_get_error.pod 2013-02-11 15:26:04.000000000 +0000
-+++ b/doc/crypto/X509_STORE_CTX_get_error.pod 2013-06-01 22:11:00.014931266 +0100
-@@ -278,6 +278,8 @@
- an application specific error. This will never be returned unless explicitly
- set by an application.
-
-+=back
-+
- =head1 NOTES
-
- The above functions should be used instead of directly referencing the fields
-diff -uNPr a/doc/ssl/SSL_accept.pod b/doc/ssl/SSL_accept.pod
---- a/doc/ssl/SSL_accept.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_accept.pod 2013-06-01 22:21:46.302545052 +0100
-@@ -44,18 +44,16 @@
-
- =over 4
-
--=item 1
--
-+=item * 1
- The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
- established.
-
--=item 0
--
-+=item * 0
- The TLS/SSL handshake was not successful but was shut down controlled and
- by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
- return value B<ret> to find out the reason.
-
--=item E<lt>0
-+=item * E<lt>0
-
- The TLS/SSL handshake was not successful because a fatal error occurred either
- at the protocol level or a connection failure occurred. The shutdown was
-diff -uNPr a/doc/ssl/SSL_clear.pod b/doc/ssl/SSL_clear.pod
---- a/doc/ssl/SSL_clear.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_clear.pod 2013-06-01 22:15:07.474188667 +0100
-@@ -56,13 +56,11 @@
-
- =over 4
-
--=item 0
--
-+=item * 0
- The SSL_clear() operation could not be performed. Check the error stack to
- find out the reason.
-
--=item 1
--
-+=item * 1
- The SSL_clear() operation was successful.
-
- =back
-diff -uNPr a/doc/ssl/SSL_COMP_add_compression_method.pod b/doc/ssl/SSL_COMP_add_compression_method.pod
---- a/doc/ssl/SSL_COMP_add_compression_method.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_COMP_add_compression_method.pod 2013-06-01 22:12:10.753575547 +0100
-@@ -53,11 +53,11 @@
-
- =over 4
-
--=item 0
-+=item * 0
-
- The operation succeeded.
-
--=item 1
-+=item * 1
-
- The operation failed. Check the error queue to find out the reason.
-
-diff -uNPr a/doc/ssl/SSL_connect.pod b/doc/ssl/SSL_connect.pod
---- a/doc/ssl/SSL_connect.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_connect.pod 2013-06-01 22:22:44.109437174 +0100
-@@ -41,18 +41,16 @@
-
- =over 4
-
--=item 1
--
-+=item * 1
- The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
- established.
-
--=item 0
--
-+=item * 0
- The TLS/SSL handshake was not successful but was shut down controlled and
- by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
- return value B<ret> to find out the reason.
-
--=item E<lt>0
-+=item * E<lt>0
-
- The TLS/SSL handshake was not successful, because a fatal error occurred either
- at the protocol level or a connection failure occurred. The shutdown was
-diff -uNPr a/doc/ssl/SSL_CTX_add_session.pod b/doc/ssl/SSL_CTX_add_session.pod
---- a/doc/ssl/SSL_CTX_add_session.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_add_session.pod 2013-06-01 22:13:06.396509142 +0100
-@@ -52,15 +52,15 @@
-
- =over 4
-
--=item 0
-+=item * 0
-
-- The operation failed. In case of the add operation, it was tried to add
-- the same (identical) session twice. In case of the remove operation, the
-- session was not found in the cache.
-+The operation failed. In case of the add operation, it was tried to add
-+the same (identical) session twice. In case of the remove operation, the
-+session was not found in the cache.
-
--=item 1
-+=item * 1
-
-- The operation succeeded.
-+The operation succeeded.
-
- =back
-
-diff -uNPr a/doc/ssl/SSL_CTX_load_verify_locations.pod b/doc/ssl/SSL_CTX_load_verify_locations.pod
---- a/doc/ssl/SSL_CTX_load_verify_locations.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_load_verify_locations.pod 2013-06-01 22:13:55.759563092 +0100
-@@ -100,13 +100,13 @@
-
- =over 4
-
--=item 0
-+=item * 0
-
- The operation failed because B<CAfile> and B<CApath> are NULL or the
- processing at one of the locations specified failed. Check the error
- stack to find out the reason.
-
--=item 1
-+=item * 1
-
- The operation succeeded.
-
-diff -uNPr a/doc/ssl/SSL_CTX_set_client_CA_list.pod b/doc/ssl/SSL_CTX_set_client_CA_list.pod
---- a/doc/ssl/SSL_CTX_set_client_CA_list.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_set_client_CA_list.pod 2013-06-01 22:15:07.470188744 +0100
-@@ -66,12 +66,10 @@
-
- =over 4
-
--=item 1
--
-+=item * 1
- The operation succeeded.
-
--=item 0
--
-+=item * 0
- A failure while manipulating the STACK_OF(X509_NAME) object occurred or
- the X509_NAME could not be extracted from B<cacert>. Check the error stack
- to find out the reason.
-diff -uNPr a/doc/ssl/SSL_CTX_set_session_id_context.pod b/doc/ssl/SSL_CTX_set_session_id_context.pod
---- a/doc/ssl/SSL_CTX_set_session_id_context.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_set_session_id_context.pod 2013-06-01 22:15:07.470188744 +0100
-@@ -64,14 +64,12 @@
-
- =over 4
-
--=item 0
--
-+=item * 0
- The length B<sid_ctx_len> of the session id context B<sid_ctx> exceeded
- the maximum allowed length of B<SSL_MAX_SSL_SESSION_ID_LENGTH>. The error
- is logged to the error stack.
-
--=item 1
--
-+=item * 1
- The operation succeeded.
-
- =back
-diff -uNPr a/doc/ssl/SSL_CTX_set_ssl_version.pod b/doc/ssl/SSL_CTX_set_ssl_version.pod
---- a/doc/ssl/SSL_CTX_set_ssl_version.pod 2013-02-11 15:26:04.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_set_ssl_version.pod 2013-06-01 22:15:07.470188744 +0100
-@@ -42,12 +42,10 @@
-
- =over 4
-
--=item 0
--
-+=item * 0
- The new choice failed, check the error stack to find out the reason.
-
--=item 1
--
-+=item * 1
- The operation succeeded.
-
- =back
-diff -uNPr a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod
---- a/doc/ssl/SSL_CTX_use_psk_identity_hint.pod 2013-02-11 15:26:04.000000000 +0000
-+++ b/doc/ssl/SSL_CTX_use_psk_identity_hint.pod 2013-06-01 22:16:32.156565713 +0100
-@@ -81,7 +81,9 @@
-
- Return values from the server callback are interpreted as follows:
-
--=item > 0
-+=over 4
-+
-+=item * > 0
-
- PSK identity was found and the server callback has provided the PSK
- successfully in parameter B<psk>. Return value is the length of
-@@ -94,9 +96,11 @@
- connection will fail with decryption_error before it will be finished
- completely.
-
--=item 0
-+=item * 0
-
- PSK identity was not found. An "unknown_psk_identity" alert message
- will be sent and the connection setup fails.
-
-+=back
-+
- =cut
-diff -uNPr a/doc/ssl/SSL_do_handshake.pod b/doc/ssl/SSL_do_handshake.pod
---- a/doc/ssl/SSL_do_handshake.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_do_handshake.pod 2013-06-01 22:23:52.496126530 +0100
-@@ -45,18 +45,16 @@
-
- =over 4
-
--=item 1
--
-+=item * 1
- The TLS/SSL handshake was successfully completed, a TLS/SSL connection has been
- established.
-
--=item 0
--
-+=item * 0
- The TLS/SSL handshake was not successful but was shut down controlled and
- by the specifications of the TLS/SSL protocol. Call SSL_get_error() with the
- return value B<ret> to find out the reason.
-
--=item E<lt>0
-+=item * E<lt>0
-
- The TLS/SSL handshake was not successful because a fatal error occurred either
- at the protocol level or a connection failure occurred. The shutdown was
-diff -uNPr a/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod b/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod
---- a/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_get_ex_data_X509_STORE_CTX_idx.pod 2013-06-01 22:23:52.496126530 +0100
-@@ -36,11 +36,11 @@
-
- =over 4
-
--=item E<gt>=0
-+=item * E<gt>=0
-
- The index value to access the pointer.
-
--=item E<lt>0
-+=item * E<lt>0
-
- An error occurred, check the error stack for a detailed error message.
-
-diff -uNPr a/doc/ssl/SSL_get_fd.pod b/doc/ssl/SSL_get_fd.pod
---- a/doc/ssl/SSL_get_fd.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_get_fd.pod 2013-06-01 22:26:15.961376995 +0100
-@@ -26,12 +26,12 @@
-
- =over 4
-
--=item -1
-+=item * -1
-
- The operation failed, because the underlying BIO is not of the correct type
- (suitable for file descriptors).
-
--=item E<gt>=0
-+=item * E<gt>=0
-
- The file descriptor linked to B<ssl>.
-
-diff -uNPr a/doc/ssl/SSL_read.pod b/doc/ssl/SSL_read.pod
---- a/doc/ssl/SSL_read.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_read.pod 2013-06-01 22:23:52.496126530 +0100
-@@ -81,13 +81,12 @@
-
- =over 4
-
--=item E<gt>0
-+=item * E<gt>0
-
- The read operation was successful; the return value is the number of
- bytes actually read from the TLS/SSL connection.
-
--=item 0
--
-+=item * 0
- The read operation was not successful. The reason may either be a clean
- shutdown due to a "close notify" alert sent by the peer (in which case
- the SSL_RECEIVED_SHUTDOWN flag in the ssl shutdown state is set
-@@ -103,7 +102,7 @@
- be checked, whether the closure was initiated by the peer or by something
- else.
-
--=item E<lt>0
-+=item * E<lt>0
-
- The read operation was not successful, because either an error occurred
- or action must be taken by the calling process. Call SSL_get_error() with the
-diff -uNPr a/doc/ssl/SSL_session_reused.pod b/doc/ssl/SSL_session_reused.pod
---- a/doc/ssl/SSL_session_reused.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_session_reused.pod 2013-06-01 22:15:07.474188667 +0100
-@@ -27,12 +27,10 @@
-
- =over 4
-
--=item 0
--
-+=item * 0
- A new session was negotiated.
-
--=item 1
--
-+=item * 1
- A session was reused.
-
- =back
-diff -uNPr a/doc/ssl/SSL_set_fd.pod b/doc/ssl/SSL_set_fd.pod
---- a/doc/ssl/SSL_set_fd.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_set_fd.pod 2013-06-01 22:15:07.470188744 +0100
-@@ -35,12 +35,10 @@
-
- =over 4
-
--=item 0
--
-+=item * 0
- The operation failed. Check the error stack to find out why.
-
--=item 1
--
-+=item * 1
- The operation succeeded.
-
- =back
-diff -uNPr a/doc/ssl/SSL_set_session.pod b/doc/ssl/SSL_set_session.pod
---- a/doc/ssl/SSL_set_session.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_set_session.pod 2013-06-01 22:15:07.470188744 +0100
-@@ -37,12 +37,10 @@
-
- =over 4
-
--=item 0
--
-+=item * 0
- The operation failed; check the error stack to find out the reason.
-
--=item 1
--
-+=item * 1
- The operation succeeded.
-
- =back
-diff -uNPr a/doc/ssl/SSL_set_shutdown.pod b/doc/ssl/SSL_set_shutdown.pod
---- a/doc/ssl/SSL_set_shutdown.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_set_shutdown.pod 2013-06-01 22:29:14.361957917 +0100
-@@ -24,16 +24,16 @@
-
- =over 4
-
--=item 0
-+=item * 0
-
- No shutdown setting, yet.
-
--=item SSL_SENT_SHUTDOWN
-+=item * SSL_SENT_SHUTDOWN
-
- A "close notify" shutdown alert was sent to the peer, the connection is being
- considered closed and the session is closed and correct.
-
--=item SSL_RECEIVED_SHUTDOWN
-+=item * SSL_RECEIVED_SHUTDOWN
-
- A shutdown alert was received form the peer, either a normal "close notify"
- or a fatal error.
-diff -uNPr a/doc/ssl/SSL_shutdown.pod b/doc/ssl/SSL_shutdown.pod
---- a/doc/ssl/SSL_shutdown.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_shutdown.pod 2013-06-02 01:49:05.023205397 +0100
-@@ -92,19 +92,17 @@
-
- =over 4
-
--=item 1
--
-+=item * 1
- The shutdown was successfully completed. The "close notify" alert was sent
- and the peer's "close notify" alert was received.
-
--=item 0
--
-+=item * 0
- The shutdown is not yet finished. Call SSL_shutdown() for a second time,
- if a bidirectional shutdown shall be performed.
- The output of L<SSL_get_error(3)|SSL_get_error(3)> may be misleading, as an
- erroneous SSL_ERROR_SYSCALL may be flagged even though no error occurred.
-
--=item -1
-+=item * -1
-
- The shutdown was not successful because a fatal error occurred either
- at the protocol level or a connection failure occurred. It can also occur if
-diff -uNPr a/doc/ssl/SSL_write.pod b/doc/ssl/SSL_write.pod
---- a/doc/ssl/SSL_write.pod 2013-02-11 15:02:48.000000000 +0000
-+++ b/doc/ssl/SSL_write.pod 2013-06-01 22:23:52.496126530 +0100
-@@ -74,13 +74,12 @@
-
- =over 4
-
--=item E<gt>0
-+=item * E<gt>0
-
- The write operation was successful, the return value is the number of
- bytes actually written to the TLS/SSL connection.
-
--=item 0
--
-+=item * 0
- The write operation was not successful. Probably the underlying connection
- was closed. Call SSL_get_error() with the return value B<ret> to find out,
- whether an error occurred or the connection was shut down cleanly
-@@ -90,7 +89,7 @@
- only be detected, whether the underlying connection was closed. It cannot
- be checked, why the closure happened.
-
--=item E<lt>0
-+=item * E<lt>0
-
- The write operation was not successful, because either an error occurred
- or action must be taken by the calling process. Call SSL_get_error() with the