Skip to content

Commit e548abb

Browse files
author
Shigeki Ohtsu
committed
deps: upgrade openssl sources to 1.0.2c
This just replaces all sources of openssl-1.0.2c.tar.gz into deps/openssl/openssl PR-URL: #1958 Reviewed-By: Fedor Indutny <[email protected]>
1 parent c65484a commit e548abb

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

90 files changed

+383
-143
lines changed

deps/openssl/openssl/CHANGES

+6
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,12 @@
22
OpenSSL CHANGES
33
_______________
44

5+
Changes between 1.0.2b and 1.0.2c [12 Jun 2015]
6+
7+
*) Fix HMAC ABI incompatibility. The previous version introduced an ABI
8+
incompatibility in the handling of HMAC. The previous ABI has now been
9+
restored.
10+
511
Changes between 1.0.2a and 1.0.2b [11 Jun 2015]
612

713
*) Malformed ECParameters causes infinite loop

deps/openssl/openssl/Makefile

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## Makefile for OpenSSL
55
##
66

7-
VERSION=1.0.2b
7+
VERSION=1.0.2c
88
MAJOR=1
99
MINOR=0.2
1010
SHLIB_VERSION_NUMBER=1.0.0

deps/openssl/openssl/Makefile.bak

+1-1
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
## Makefile for OpenSSL
55
##
66

7-
VERSION=1.0.2b-dev
7+
VERSION=1.0.2c-dev
88
MAJOR=1
99
MINOR=0.2
1010
SHLIB_VERSION_NUMBER=1.0.0

deps/openssl/openssl/NEWS

+4
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,10 @@
55
This file gives a brief overview of the major changes between each OpenSSL
66
release. For more details please read the CHANGES file.
77

8+
Major changes between OpenSSL 1.0.2b and OpenSSL 1.0.2c [12 Jun 2015]
9+
10+
o Fix HMAC ABI incompatibility
11+
812
Major changes between OpenSSL 1.0.2a and OpenSSL 1.0.2b [11 Jun 2015]
913

1014
o Malformed ECParameters causes infinite loop (CVE-2015-1788)

deps/openssl/openssl/README

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11

2-
OpenSSL 1.0.2b 11 Jun 2015
2+
OpenSSL 1.0.2c 12 Jun 2015
33

44
Copyright (c) 1998-2011 The OpenSSL Project
55
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson

deps/openssl/openssl/apps/app_rand.c

+4-10
Original file line numberDiff line numberDiff line change
@@ -124,16 +124,10 @@ int app_RAND_load_file(const char *file, BIO *bio_e, int dont_warn)
124124
char buffer[200];
125125

126126
#ifdef OPENSSL_SYS_WINDOWS
127-
/*
128-
* allocate 2 to dont_warn not to use RAND_screen() via
129-
* -no_rand_screen option in s_client
130-
*/
131-
if (dont_warn != 2) {
132-
BIO_printf(bio_e, "Loading 'screen' into random state -");
133-
BIO_flush(bio_e);
134-
RAND_screen();
135-
BIO_printf(bio_e, " done\n");
136-
}
127+
BIO_printf(bio_e, "Loading 'screen' into random state -");
128+
BIO_flush(bio_e);
129+
RAND_screen();
130+
BIO_printf(bio_e, " done\n");
137131
#endif
138132

139133
if (file == NULL)

deps/openssl/openssl/apps/s_client.c

+8-23
Original file line numberDiff line numberDiff line change
@@ -180,13 +180,6 @@ typedef unsigned int u_int;
180180
# include <fcntl.h>
181181
#endif
182182

183-
/* Use Windows API with STD_INPUT_HANDLE when checking for input?
184-
Don't look at OPENSSL_SYS_MSDOS for this, since it is always defined if
185-
OPENSSL_SYS_WINDOWS is defined */
186-
#if defined(OPENSSL_SYS_WINDOWS) && !defined(OPENSSL_SYS_WINCE) && defined(STD_INPUT_HANDLE)
187-
#define OPENSSL_USE_STD_INPUT_HANDLE
188-
#endif
189-
190183
#undef PROG
191184
#define PROG s_client_main
192185

@@ -236,7 +229,6 @@ static BIO *bio_c_msg = NULL;
236229
static int c_quiet = 0;
237230
static int c_ign_eof = 0;
238231
static int c_brief = 0;
239-
static int c_no_rand_screen = 0;
240232

241233
#ifndef OPENSSL_NO_PSK
242234
/* Default PSK identity and key */
@@ -449,10 +441,6 @@ static void sc_usage(void)
449441
" -keymatexport label - Export keying material using label\n");
450442
BIO_printf(bio_err,
451443
" -keymatexportlen len - Export len bytes of keying material (default 20)\n");
452-
#ifdef OPENSSL_SYS_WINDOWS
453-
BIO_printf(bio_err,
454-
" -no_rand_screen - Do not use RAND_screen() to initialize random state\n");
455-
#endif
456444
}
457445

458446
#ifndef OPENSSL_NO_TLSEXT
@@ -1132,10 +1120,6 @@ int MAIN(int argc, char **argv)
11321120
keymatexportlen = atoi(*(++argv));
11331121
if (keymatexportlen == 0)
11341122
goto bad;
1135-
#ifdef OPENSSL_SYS_WINDOWS
1136-
} else if (strcmp(*argv, "-no_rand_screen") == 0) {
1137-
c_no_rand_screen = 1;
1138-
#endif
11391123
} else {
11401124
BIO_printf(bio_err, "unknown option %s\n", *argv);
11411125
badop = 1;
@@ -1241,7 +1225,7 @@ int MAIN(int argc, char **argv)
12411225
if (!load_excert(&exc, bio_err))
12421226
goto end;
12431227
1244-
if (!app_RAND_load_file(NULL, bio_err, ++c_no_rand_screen) && inrand == NULL
1228+
if (!app_RAND_load_file(NULL, bio_err, 1) && inrand == NULL
12451229
&& !RAND_status()) {
12461230
BIO_printf(bio_err,
12471231
"warning, not much extra random data, consider using the -rand option\n");
@@ -1774,16 +1758,17 @@ int MAIN(int argc, char **argv)
17741758
tv.tv_usec = 0;
17751759
i = select(width, (void *)&readfds, (void *)&writefds,
17761760
NULL, &tv);
1777-
#if defined(OPENSSL_USE_STD_INPUT_HANDLE)
1761+
# if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
1762+
if (!i && (!_kbhit() || !read_tty))
1763+
continue;
1764+
# else
17781765
if (!i && (!((_kbhit())
17791766
|| (WAIT_OBJECT_0 ==
17801767
WaitForSingleObject(GetStdHandle
17811768
(STD_INPUT_HANDLE),
17821769
0)))
17831770
|| !read_tty))
17841771
continue;
1785-
#else
1786-
if(!i && (!_kbhit() || !read_tty) ) continue;
17871772
# endif
17881773
} else
17891774
i = select(width, (void *)&readfds, (void *)&writefds,
@@ -1985,12 +1970,12 @@ int MAIN(int argc, char **argv)
19851970
}
19861971
}
19871972
#if defined(OPENSSL_SYS_WINDOWS) || defined(OPENSSL_SYS_MSDOS)
1988-
#if defined(OPENSSL_USE_STD_INPUT_HANDLE)
1973+
# if defined(OPENSSL_SYS_WINCE) || defined(OPENSSL_SYS_MSDOS)
1974+
else if (_kbhit())
1975+
# else
19891976
else if ((_kbhit())
19901977
|| (WAIT_OBJECT_0 ==
19911978
WaitForSingleObject(GetStdHandle(STD_INPUT_HANDLE), 0)))
1992-
#else
1993-
else if (_kbhit())
19941979
# endif
19951980
#elif defined (OPENSSL_SYS_NETWARE)
19961981
else if (_kbhit())

deps/openssl/openssl/crypto/hmac/hmac.c

+7-12
Original file line numberDiff line numberDiff line change
@@ -97,6 +97,9 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
9797
return FIPS_hmac_init_ex(ctx, key, len, md, NULL);
9898
}
9999
#endif
100+
/* If we are changing MD then we must have a key */
101+
if (md != NULL && md != ctx->md && (key == NULL || len < 0))
102+
return 0;
100103

101104
if (md != NULL) {
102105
reset = 1;
@@ -107,9 +110,6 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
107110
return 0;
108111
}
109112

110-
if (!ctx->key_init && key == NULL)
111-
return 0;
112-
113113
if (key != NULL) {
114114
reset = 1;
115115
j = EVP_MD_block_size(md);
@@ -131,7 +131,6 @@ int HMAC_Init_ex(HMAC_CTX *ctx, const void *key, int len,
131131
if (ctx->key_length != HMAC_MAX_MD_CBLOCK)
132132
memset(&ctx->key[ctx->key_length], 0,
133133
HMAC_MAX_MD_CBLOCK - ctx->key_length);
134-
ctx->key_init = 1;
135134
}
136135

137136
if (reset) {
@@ -169,7 +168,7 @@ int HMAC_Update(HMAC_CTX *ctx, const unsigned char *data, size_t len)
169168
if (FIPS_mode() && !ctx->i_ctx.engine)
170169
return FIPS_hmac_update(ctx, data, len);
171170
#endif
172-
if (!ctx->key_init)
171+
if (!ctx->md)
173172
return 0;
174173

175174
return EVP_DigestUpdate(&ctx->md_ctx, data, len);
@@ -184,7 +183,7 @@ int HMAC_Final(HMAC_CTX *ctx, unsigned char *md, unsigned int *len)
184183
return FIPS_hmac_final(ctx, md, len);
185184
#endif
186185

187-
if (!ctx->key_init)
186+
if (!ctx->md)
188187
goto err;
189188

190189
if (!EVP_DigestFinal_ex(&ctx->md_ctx, buf, &i))
@@ -205,7 +204,6 @@ void HMAC_CTX_init(HMAC_CTX *ctx)
205204
EVP_MD_CTX_init(&ctx->i_ctx);
206205
EVP_MD_CTX_init(&ctx->o_ctx);
207206
EVP_MD_CTX_init(&ctx->md_ctx);
208-
ctx->key_init = 0;
209207
ctx->md = NULL;
210208
}
211209

@@ -217,11 +215,8 @@ int HMAC_CTX_copy(HMAC_CTX *dctx, HMAC_CTX *sctx)
217215
goto err;
218216
if (!EVP_MD_CTX_copy(&dctx->md_ctx, &sctx->md_ctx))
219217
goto err;
220-
dctx->key_init = sctx->key_init;
221-
if (sctx->key_init) {
222-
memcpy(dctx->key, sctx->key, HMAC_MAX_MD_CBLOCK);
223-
dctx->key_length = sctx->key_length;
224-
}
218+
memcpy(dctx->key, sctx->key, HMAC_MAX_MD_CBLOCK);
219+
dctx->key_length = sctx->key_length;
225220
dctx->md = sctx->md;
226221
return 1;
227222
err:

deps/openssl/openssl/crypto/hmac/hmac.h

-1
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,6 @@ typedef struct hmac_ctx_st {
7979
EVP_MD_CTX o_ctx;
8080
unsigned int key_length;
8181
unsigned char key[HMAC_MAX_MD_CBLOCK];
82-
int key_init;
8382
} HMAC_CTX;
8483

8584
# define HMAC_size(e) (EVP_MD_size((e)->md))

deps/openssl/openssl/crypto/hmac/hmactest.c

+6-1
Original file line numberDiff line numberDiff line change
@@ -233,7 +233,12 @@ int main(int argc, char *argv[])
233233
err++;
234234
goto test6;
235235
}
236-
if (!HMAC_Init_ex(&ctx, NULL, 0, EVP_sha256(), NULL)) {
236+
if (HMAC_Init_ex(&ctx, NULL, 0, EVP_sha256(), NULL)) {
237+
printf("Should disallow changing MD without a new key (test 5)\n");
238+
err++;
239+
goto test6;
240+
}
241+
if (!HMAC_Init_ex(&ctx, test[4].key, test[4].key_len, EVP_sha256(), NULL)) {
237242
printf("Failed to reinitialise HMAC (test 5)\n");
238243
err++;
239244
goto test6;

0 commit comments

Comments
 (0)