--- a/components/openssl/openssl-1.0.1/patches/30_wanboot.patch Wed May 27 12:25:12 2015 -0700
+++ b/components/openssl/openssl-1.0.1/patches/30_wanboot.patch Wed May 27 16:32:47 2015 -0700
@@ -2,8 +2,8 @@
# This patch file makes the changes neccessary to build wanboot-openssl.o
# binary. This is Solaris-specific: not suitable for upstream.
#
---- openssl-1.0.0g/Makefile.org 2010-01-27 08:06:58.000000000 -0800
-+++ openssl-1.0.0g-1/Makefile.org 2012-03-26 03:04:08.440194448 -0700
+--- openssl-1.0.0g/Makefile.org 2010-01-27 08:06:58.000000000 -0800
++++ openssl-1.0.0g-1/Makefile.org 2012-03-26 03:04:08.440194448 -0700
@@ -138,7 +138,13 @@
BASEADDR=
@@ -18,8 +18,8 @@
ENGDIRS= ccgost
SHLIBDIRS= crypto ssl
---- openssl-1.0.0g/Makefile 2012-01-18 05:42:28.000000000 -0800
-+++ openssl-1.0.0g-1/Makefile 2012-03-26 03:03:59.170540344 -0700
+--- openssl-1.0.0g/Makefile 2012-01-18 05:42:28.000000000 -0800
++++ openssl-1.0.0g-1/Makefile 2012-03-26 03:03:59.170540344 -0700
@@ -137,7 +137,13 @@
BASEADDR=0xFB00000
@@ -34,47 +34,91 @@
ENGDIRS= ccgost
SHLIBDIRS= crypto ssl
---- openssl-1.0.0e/crypto/cryptlib.c 2011-06-22 08:39:00.000000000 -0700
-+++ openssl-1.0.0e_patched/crypto/cryptlib.c 2011-12-12 06:17:45.422476900 -0800
-@@ -412,6 +412,7 @@
+--- openssl-1.0.0e/crypto/cryptlib.c 2011-06-22 08:39:00.000000000 -0700
++++ openssl-1.0.0e_patched/crypto/cryptlib.c 2011-12-12 06:17:45.422476900 -0800
+@@ -421,11 +421,13 @@
static void solaris_locking_callback(int mode, int type, const char *file,
int line)
- {
-+#ifndef _BOOT
- if (mode & CRYPTO_LOCK)
- {
- pthread_mutex_lock(&solaris_openssl_locks[type]);
-@@ -420,6 +421,7 @@
- {
- pthread_mutex_unlock(&solaris_openssl_locks[type]);
- }
+ {
++#ifndef _BOOT
+ if (mode & CRYPTO_LOCK) {
+ pthread_mutex_lock(&solaris_openssl_locks[type]);
+ } else {
+ pthread_mutex_unlock(&solaris_openssl_locks[type]);
+ }
+#endif
- }
+ }
-@@ -453,6 +455,12 @@
- }
+@@ -435,6 +437,7 @@
+ static struct CRYPTO_dynlock_value *
+ solaris_dynlock_create(const char *file, int line)
+ {
++#ifndef _BOOT
+ int ret;
+ pthread_mutex_t *dynlock;
+
+@@ -447,6 +450,9 @@
+ OPENSSL_assert(ret);
+
+ return ((struct CRYPTO_dynlock_value *)dynlock);
++#else
++ return (NULL);
++#endif
+ }
+
+ static void
+@@ -453,6 +459,7 @@
+ solaris_dynlock_lock(int mode, struct CRYPTO_dynlock_valud *dynlock,
+ const char *file, int line)
+ {
++#ifndef _BOOT
+ int ret;
+
+ if (mode & CRYPTO_LOCK) {
+@@ -462,6 +469,7 @@
+ }
+
+ OPENSSL_assert(ret == 0);
++#endif
+ }
+
+ static void
+@@ -468,9 +476,11 @@
+ solaris_dynlock_destroy(struct CRYPTO_dynlock_value *dynlock,
+ const char *file, int line)
+ {
++#ifndef _BOOT
+ int ret;
+ ret = pthread_mutex_destroy((pthread_mutex_t *)dynlock);
+ OPENSSL_assert(ret);
++#endif
+ }
+
+
+@@ -514,6 +524,12 @@
+ }
- /*
-+ * pthread_* can't be used in wanboot.
-+ * wanboot needs not be thread-safe and mutexes and locking callback
-+ * function will not be setup for wanboot.
-+ */
-+#ifndef _BOOT
-+ /*
- * Set atfork handler so that child can setup its own mutexes and
- * locking callbacks when it is forked
- */
-@@ -475,7 +483,7 @@
- pthread_mutex_init(&solaris_openssl_locks[i], NULL);
- }
- locking_callback = solaris_locking_callback;
+ /*
++ * pthread_* can't be used in wanboot.
++ * wanboot needs not be thread-safe and mutexes and locking callback
++ * function will not be setup for wanboot.
++ */
++#ifndef _BOOT
++ /*
+ * Set atfork handler so that child can setup its own mutexes and
+ * locking callbacks when it is forked
+ */
+@@ -534,7 +550,7 @@
+ pthread_mutex_init(&solaris_openssl_locks[i], NULL);
+ }
+ locking_callback = solaris_locking_callback;
-
+#endif
}
void CRYPTO_set_locking_callback(void (*func) (int mode, int type,
-@@ -1021,6 +1029,12 @@
+@@ -1084,6 +1100,12 @@
MessageBox(NULL, buf, _T("OpenSSL: FATAL"), MB_OK | MB_ICONSTOP);
}
#else
@@ -83,36 +127,36 @@
+ * OPENSSL_showfatal() is not used anywhere else then here we can safely use
+ * the code from 0.9.7d version.
+ */
-+#ifndef _BOOT
++#ifndef _BOOT
void OPENSSL_showfatal(const char *fmta, ...)
{
va_list ap;
-@@ -1029,6 +1043,7 @@
+@@ -1092,6 +1114,7 @@
vfprintf(stderr, fmta, ap);
va_end(ap);
}
-+#endif /* _BOOT */
++#endif /* _BOOT */
int OPENSSL_isservice(void)
{
-@@ -1038,9 +1053,15 @@
+@@ -1101,9 +1124,15 @@
void OpenSSLDie(const char *file, int line, const char *assertion)
{
-+#ifndef _BOOT
++#ifndef _BOOT
OPENSSL_showfatal
("%s(%d): OpenSSL internal error, assertion failed: %s\n", file, line,
assertion);
+#else
-+ fprintf(stderr,
-+ "%s(%d): OpenSSL internal error, assertion failed: %s\n",
-+ file,line,assertion);
-+#endif
++ fprintf(stderr,
++ "%s(%d): OpenSSL internal error, assertion failed: %s\n",
++ file,line,assertion);
++#endif
#if !defined(_WIN32) || defined(__CYGWIN__)
abort();
#else
---- openssl-1.0.0e/crypto/err/err_all.c 2009-08-09 07:58:05.000000000 -0700
-+++ openssl-1.0.0e_patched/crypto/err/err_all.c 2011-12-13 05:22:01.205351400 -0800
+--- openssl-1.0.0e/crypto/err/err_all.c 2009-08-09 07:58:05.000000000 -0700
++++ openssl-1.0.0e_patched/crypto/err/err_all.c 2011-12-13 05:22:01.205351400 -0800
@@ -148,7 +148,9 @@
ERR_load_X509V3_strings();
ERR_load_PKCS12_strings();
@@ -123,14 +167,14 @@
ERR_load_TS_strings();
# ifndef OPENSSL_NO_ENGINE
ERR_load_ENGINE_strings();
---- openssl-1.0.0e/crypto/evp/evp_key.c 2010-03-27 12:27:50.000000000 -0700
-+++ openssl-1.0.0e_patched/crypto/evp/evp_key.c 2011-12-13 05:19:32.956908600 -0800
+--- openssl-1.0.0e/crypto/evp/evp_key.c 2010-03-27 12:27:50.000000000 -0700
++++ openssl-1.0.0e_patched/crypto/evp/evp_key.c 2011-12-13 05:19:32.956908600 -0800
@@ -83,7 +83,7 @@
else
return (prompt_string);
}
-
-+#ifndef _BOOT
++#ifndef _BOOT
/*
* For historical reasons, the standard function for reading passwords is in
* the DES library -- if someone ever wants to disable DES, this function
@@ -138,17 +182,17 @@
OPENSSL_cleanse(buff, BUFSIZ);
return ret;
}
-+#endif /* !_BOOT */
++#endif /* !_BOOT */
int EVP_BytesToKey(const EVP_CIPHER *type, const EVP_MD *md,
const unsigned char *salt, const unsigned char *data,
---- openssl-1.0.0e/crypto/rand/rand_unix.c 2009-04-06 07:31:36.000000000 -0700
-+++ openssl-1.0.0e_patched/crypto/rand/rand_unix.c 2011-12-19 07:28:39.988944800 -0800
+--- openssl-1.0.0e/crypto/rand/rand_unix.c 2009-04-06 07:31:36.000000000 -0700
++++ openssl-1.0.0e_patched/crypto/rand/rand_unix.c 2011-12-19 07:28:39.988944800 -0800
@@ -122,7 +122,11 @@
# include <sys/time.h>
# include <sys/times.h>
# include <sys/stat.h>
-+#ifdef _BOOT
++#ifdef _BOOT
+# include <sys/fcntl.h>
+#else
# include <fcntl.h>
@@ -216,7 +260,7 @@
}
# endif
-+#ifndef _BOOT
++#ifndef _BOOT
/* put in some default random data, we need more than just this */
l = curr_pid;
RAND_add(&l, sizeof(l), 0.0);
@@ -224,21 +268,21 @@
l = time(NULL);
RAND_add(&l, sizeof(l), 0.0);
-+#endif /* !_BOOT */
++#endif /* !_BOOT */
# if defined(OPENSSL_SYS_BEOS)
{
---- openssl-1.0.0e/crypto/rand/randfile.c 2011-03-19 02:44:37.000000000 -0700
-+++ openssl-1.0.0e_patched/crypto/rand/randfile.c 2011-12-13 05:26:51.884824200 -0800
+--- openssl-1.0.0e/crypto/rand/randfile.c 2011-03-19 02:44:37.000000000 -0700
++++ openssl-1.0.0e_patched/crypto/rand/randfile.c 2011-12-13 05:26:51.884824200 -0800
@@ -57,9 +57,11 @@
*/
/* We need to define this to get macros like S_IFBLK and S_IFCHR */
-+#ifndef _BOOT
++#ifndef _BOOT
#if !defined(OPENSSL_SYS_VXWORKS)
# define _XOPEN_SOURCE 500
#endif
-+#endif /* _BOOT */
++#endif /* _BOOT */
#include <errno.h>
#include <stdio.h>
@@ -246,7 +290,7 @@
return (ret);
}
-+#ifndef _BOOT
++#ifndef _BOOT
int RAND_write_file(const char *file)
{
unsigned char buf[BUFSIZE];
@@ -256,13 +300,13 @@
}
+
+#endif /* _BOOT */
---- openssl-1.0.0e/crypto/x509v3/v3_utl.c 2009-07-27 14:08:53.000000000 -0700
-+++ openssl-1.0.0e_patched/crypto/x509v3/v3_utl.c 2011-12-13 05:10:08.844191400 -0800
+--- openssl-1.0.0e/crypto/x509v3/v3_utl.c 2009-07-27 14:08:53.000000000 -0700
++++ openssl-1.0.0e_patched/crypto/x509v3/v3_utl.c 2011-12-13 05:10:08.844191400 -0800
@@ -715,9 +715,50 @@
}
}
-+#if defined(_BOOT)
++#if defined(_BOOT)
+/* This function was copied from bio/b_sock.c */
+static int get_ip(const char *str, unsigned char ip[4])
+{
@@ -302,10 +346,10 @@
{
int a0, a1, a2, a3;
+
-+#if defined(_BOOT)
-+ if (get_ip(in, v4) != 1)
-+ return 0;
-+#else /* _BOOT */
++#if defined(_BOOT)
++ if (get_ip(in, v4) != 1)
++ return 0;
++#else /* _BOOT */
if (sscanf(in, "%d.%d.%d.%d", &a0, &a1, &a2, &a3) != 4)
return 0;
if ((a0 < 0) || (a0 > 255) || (a1 < 0) || (a1 > 255)
@@ -313,17 +357,17 @@
v4[1] = a1;
v4[2] = a2;
v4[3] = a3;
-+#endif /* _BOOT */
++#endif /* _BOOT */
return 1;
}
---- openssl-1.0.0e/e_os.h 2011-12-19 04:17:51.631087400 -0800
-+++ openssl-1.0.0e_patched/e_os.h 2011-12-19 04:15:15.776668900 -0800
+--- openssl-1.0.0e/e_os.h 2011-12-19 04:17:51.631087400 -0800
++++ openssl-1.0.0e_patched/e_os.h 2011-12-19 04:15:15.776668900 -0800
@@ -213,10 +213,19 @@
# define get_last_socket_error() errno
# define clear_socket_error() errno=0
# define ioctlsocket(a,b,c) ioctl(a,b,c)
-+#ifdef _BOOT
++#ifdef _BOOT
+#include <netinet/in.h>
+extern int socket_read(int, void *, size_t, int);
+extern int socket_close(int);
@@ -339,8 +383,8 @@
# ifdef WIN16 /* never the case */
# define MS_CALLBACK _far _loadds
---- openssl-1.0.0e/crypto/sparcv9cap.c 2010-09-05 12:48:01.000000000 -0700
-+++ openssl-1.0.0e_patched/crypto/sparcv9cap.c 2011-12-23 05:24:02.011607700 -0800
+--- openssl-1.0.0e/crypto/sparcv9cap.c 2010-09-05 12:48:01.000000000 -0700
++++ openssl-1.0.0e_patched/crypto/sparcv9cap.c 2011-12-23 05:24:02.011607700 -0800
@@ -12,7 +12,11 @@
#define SPARCV9_VIS2 (1<<3) /* reserved */
#define SPARCV9_FMADD (1<<4) /* reserved for SPARC64 V */
@@ -382,8 +426,8 @@
/*
* This code path is disabled, because of incompatibility of libdevinfo.so.1
* and libmalloc.so.1 (see below for details)
---- openssl-1.0.0e/crypto/sparccpuid.S 2010-09-05 12:48:01.000000000 -0700
-+++ openssl-1.0.0e_patched/crypto/sparccpuid.S 2012-02-13 07:42:58.259478325 -0800
+--- openssl-1.0.0e/crypto/sparccpuid.S 2010-09-05 12:48:01.000000000 -0700
++++ openssl-1.0.0e_patched/crypto/sparccpuid.S 2012-02-13 07:42:58.259478325 -0800
@@ -397,8 +397,13 @@
.type OPENSSL_cleanse,#function
.size OPENSSL_cleanse,.-OPENSSL_cleanse
@@ -392,8 +436,8 @@
.section ".init",#alloc,#execinstr
call solaris_locking_setup
nop
- call OPENSSL_cpuid_setup
- nop
+ call OPENSSL_cpuid_setup
+ nop
+#else
+ nop
+ nop
@@ -418,7 +462,7 @@
p = s->s3->client_random;
-+#ifndef _BOOT
++#ifndef _BOOT
if (ssl_fill_hello_random(s, 0, p, SSL3_RANDOM_SIZE) <= 0)
+#else
+ if (RAND_pseudo_bytes(p,SSL3_RANDOM_SIZE) <= 0)
@@ -432,7 +476,7 @@
* Apparently we're using a version-flexible SSL_METHOD (not at its
* highest protocol version).
*/
-+#ifndef _BOOT
++#ifndef _BOOT
if (s->ctx->method->version == SSLv23_method()->version) {
+#else
+ if (s->ctx->method->version == TLS1_2_VERSION) {