Showing with 37,927 additions and 355 deletions.
  1. +1 −0 AUTHORS
  2. +22 −2 ChangeLog
  3. +15 −1 Makefile
  4. +15 −0 deps/openssl/openssl/CHANGES
  5. +7 −6 deps/openssl/openssl/Makefile
  6. +7 −6 deps/openssl/openssl/Makefile.bak
  7. +6 −5 deps/openssl/openssl/Makefile.org
  8. +4 −0 deps/openssl/openssl/NEWS
  9. +1 −1 deps/openssl/openssl/README
  10. +1 −1 deps/openssl/openssl/crypto/bio/bio.h
  11. +1 −1 deps/openssl/openssl/crypto/evp/e_aes.c
  12. +1 −1 deps/openssl/openssl/crypto/opensslconf.h.in
  13. +3 −3 deps/openssl/openssl/crypto/opensslv.h
  14. +2 −0 deps/openssl/openssl/crypto/pkcs12/p12_kiss.c
  15. +184 −181 deps/openssl/openssl/crypto/threads/mttest.c
  16. +1 −2 deps/openssl/openssl/crypto/threads/pthread2.sh
  17. +1 −1 deps/openssl/openssl/crypto/x509/Makefile
  18. +209 −0 deps/openssl/openssl/crypto/x509/verify_extra_test.c
  19. +16 −10 deps/openssl/openssl/crypto/x509/x509_vfy.c
  20. +7 −0 deps/openssl/openssl/doc/crypto/X509_NAME_get_index_by_NID.pod
  21. +9 −4 deps/openssl/openssl/doc/crypto/X509_STORE_CTX_new.pod
  22. +2 −1 deps/openssl/openssl/doc/crypto/X509_verify_cert.pod
  23. +149 −1 deps/openssl/openssl/include/openssl/aes.h
  24. +1,417 −1 deps/openssl/openssl/include/openssl/asn1.h
  25. +579 −1 deps/openssl/openssl/include/openssl/asn1_mac.h
  26. +973 −1 deps/openssl/openssl/include/openssl/asn1t.h
  27. +875 −1 deps/openssl/openssl/include/openssl/bio.h
  28. +130 −1 deps/openssl/openssl/include/openssl/blowfish.h
  29. +957 −1 deps/openssl/openssl/include/openssl/bn.h
  30. +118 −1 deps/openssl/openssl/include/openssl/buffer.h
  31. +132 −1 deps/openssl/openssl/include/openssl/camellia.h
  32. +107 −1 deps/openssl/openssl/include/openssl/cast.h
  33. +82 −1 deps/openssl/openssl/include/openssl/cmac.h
  34. +505 −1 deps/openssl/openssl/include/openssl/cms.h
  35. +79 −1 deps/openssl/openssl/include/openssl/comp.h
  36. +267 −1 deps/openssl/openssl/include/openssl/conf.h
  37. +89 −1 deps/openssl/openssl/include/openssl/conf_api.h
  38. +661 −1 deps/openssl/openssl/include/openssl/crypto.h
  39. +257 −1 deps/openssl/openssl/include/openssl/des.h
  40. +497 −1 deps/openssl/openssl/include/openssl/des_old.h
  41. +287 −1 deps/openssl/openssl/include/openssl/dh.h
  42. +329 −1 deps/openssl/openssl/include/openssl/dsa.h
  43. +451 −1 deps/openssl/openssl/include/openssl/dso.h
  44. +268 −1 deps/openssl/openssl/include/openssl/dtls1.h
  45. +328 −1 deps/openssl/openssl/include/openssl/e_os2.h
  46. +26 −1 deps/openssl/openssl/include/openssl/ebcdic.h
  47. +1,193 −1 deps/openssl/openssl/include/openssl/ec.h
  48. +127 −1 deps/openssl/openssl/include/openssl/ecdh.h
  49. +260 −1 deps/openssl/openssl/include/openssl/ecdsa.h
  50. +961 −1 deps/openssl/openssl/include/openssl/engine.h
  51. +389 −1 deps/openssl/openssl/include/openssl/err.h
  52. +1,480 −1 deps/openssl/openssl/include/openssl/evp.h
  53. +109 −1 deps/openssl/openssl/include/openssl/hmac.h
  54. +105 −1 deps/openssl/openssl/include/openssl/idea.h
  55. +240 −1 deps/openssl/openssl/include/openssl/krb5_asn.h
  56. +197 −1 deps/openssl/openssl/include/openssl/kssl.h
  57. +240 −1 deps/openssl/openssl/include/openssl/lhash.h
  58. +119 −1 deps/openssl/openssl/include/openssl/md4.h
  59. +119 −1 deps/openssl/openssl/include/openssl/md5.h
  60. +94 −1 deps/openssl/openssl/include/openssl/mdc2.h
  61. +153 −1 deps/openssl/openssl/include/openssl/modes.h
  62. +4,031 −1 deps/openssl/openssl/include/openssl/obj_mac.h
  63. +1,143 −1 deps/openssl/openssl/include/openssl/objects.h
  64. +626 −1 deps/openssl/openssl/include/openssl/ocsp.h
  65. +97 −1 deps/openssl/openssl/include/openssl/opensslv.h
  66. +209 −1 deps/openssl/openssl/include/openssl/ossl_typ.h
  67. +611 −1 deps/openssl/openssl/include/openssl/pem.h
  68. +70 −1 deps/openssl/openssl/include/openssl/pem2.h
  69. +342 −1 deps/openssl/openssl/include/openssl/pkcs12.h
  70. +481 −1 deps/openssl/openssl/include/openssl/pkcs7.h
  71. +99 −1 deps/openssl/openssl/include/openssl/pqueue.h
  72. +150 −1 deps/openssl/openssl/include/openssl/rand.h
  73. +103 −1 deps/openssl/openssl/include/openssl/rc2.h
  74. +88 −1 deps/openssl/openssl/include/openssl/rc4.h
  75. +105 −1 deps/openssl/openssl/include/openssl/ripemd.h
  76. +610 −1 deps/openssl/openssl/include/openssl/rsa.h
  77. +2,536 −1 deps/openssl/openssl/include/openssl/safestack.h
  78. +149 −1 deps/openssl/openssl/include/openssl/seed.h
  79. +214 −1 deps/openssl/openssl/include/openssl/sha.h
  80. +169 −1 deps/openssl/openssl/include/openssl/srp.h
  81. +148 −1 deps/openssl/openssl/include/openssl/srtp.h
  82. +2,766 −1 deps/openssl/openssl/include/openssl/ssl.h
  83. +265 −1 deps/openssl/openssl/include/openssl/ssl2.h
  84. +84 −1 deps/openssl/openssl/include/openssl/ssl23.h
  85. +730 −1 deps/openssl/openssl/include/openssl/ssl3.h
  86. +106 −1 deps/openssl/openssl/include/openssl/stack.h
  87. +486 −1 deps/openssl/openssl/include/openssl/symhacks.h
  88. +788 −1 deps/openssl/openssl/include/openssl/tls1.h
  89. +862 −1 deps/openssl/openssl/include/openssl/ts.h
  90. +112 −1 deps/openssl/openssl/include/openssl/txt_db.h
  91. +415 −1 deps/openssl/openssl/include/openssl/ui.h
  92. +88 −1 deps/openssl/openssl/include/openssl/ui_compat.h
  93. +41 −1 deps/openssl/openssl/include/openssl/whrlpool.h
  94. +1,301 −1 deps/openssl/openssl/include/openssl/x509.h
  95. +595 −1 deps/openssl/openssl/include/openssl/x509_vfy.h
  96. +1,015 −1 deps/openssl/openssl/include/openssl/x509v3.h
  97. +1 −1 deps/openssl/openssl/openssl.spec
  98. +3 −14 deps/openssl/openssl/ssl/s3_clnt.c
  99. +1 −1 deps/openssl/openssl/ssl/s3_srvr.c
  100. +27 −4 deps/openssl/openssl/test/Makefile
  101. +27 −0 deps/openssl/openssl/test/certs/bad.key
  102. +21 −0 deps/openssl/openssl/test/certs/bad.pem
  103. +27 −0 deps/openssl/openssl/test/certs/interCA.key
  104. +21 −0 deps/openssl/openssl/test/certs/interCA.pem
  105. +27 −0 deps/openssl/openssl/test/certs/leaf.key
  106. +21 −0 deps/openssl/openssl/test/certs/leaf.pem
  107. +27 −0 deps/openssl/openssl/test/certs/rootCA.key
  108. +21 −0 deps/openssl/openssl/test/certs/rootCA.pem
  109. +42 −0 deps/openssl/openssl/test/certs/roots.pem
  110. +21 −0 deps/openssl/openssl/test/certs/subinterCA-ss.pem
  111. +27 −0 deps/openssl/openssl/test/certs/subinterCA.key
  112. +21 −0 deps/openssl/openssl/test/certs/subinterCA.pem
  113. +42 −0 deps/openssl/openssl/test/certs/untrusted.pem
  114. +9 −10 deps/openssl/openssl/test/testssl
  115. +1 −0 deps/openssl/openssl/test/verify_extra_test.c
  116. +1 −1 src/node_version.h
  117. +0 −3 test/internet/internet.status
  118. +0 −5 test/simple/simple.status
  119. +30 −11 tools/test.py
  120. +10 −5 vcbuild.bat
@@ -580,6 +580,7 @@ Steve Sharp
Steven Kabbes
Steven Loomis
Steven R. Loomis
Steven Rockarts
Stiliyan Lazarov
Stéphan Kochen
Sugendran Ganess
@@ -1,4 +1,15 @@
2015.07.03, Version 0.12.6 (Stable)
2015.07.09, Version 0.12.7 (Stable)

* openssl: upgrade to 1.0.1p

* npm: upgrade to 2.11.3

* V8: cherry-pick JitCodeEvent patch from upstream (Ben Noordhuis)

* win,msi: create npm folder in AppData directory (Steven Rockarts)


2015.07.03, Version 0.12.6 (Stable), 0be9a77bb18ec15b4fb6a1fb0762f313b7351201

* V8: fix out-of-band write in utf8 decoder

@@ -1056,7 +1067,16 @@
* console: `console.dir()` bypasses inspect() methods (Nathan Rajlich)


2015.06.18, Version 0.10.39 (Maintenance)
2015.07.09, Version 0.10.40 (Maintenance), 0439a28d519fb6efe228074b0588a59452fc1677

* openssl: upgrade to 1.0.1p

* V8: back-port JitCodeEvent patch from upstream (Ben Noordhuis)

* win,msi: create npm folder in AppData directory (Steven Rockarts)


2015.06.18, Version 0.10.39 (Maintenance), 615a35ccd2cb5cba80901862aefe51a940995f44

* openssl: upgrade to 1.0.1o (Addressing multiple CVEs)

@@ -6,6 +6,7 @@ NINJA ?= ninja
DESTDIR ?=
SIGN ?=
PREFIX ?= /usr/local
FLAKY_TESTS ?= run

NODE ?= ./node

@@ -127,6 +128,9 @@ test-all-http1: test-build
test-all-valgrind: test-build
$(PYTHON) tools/test.py --mode=debug,release --valgrind

test-ci:
$(PYTHON) tools/test.py -p tap --logfile test.tap --mode=release --arch=$(DESTCPU) --flaky-tests=$(FLAKY_TESTS) simple message internet

test-release: test-build
$(PYTHON) tools/test.py --mode=release

@@ -240,6 +244,11 @@ docopen: out/doc/api/all.html
docclean:
-rm -rf out/doc

run-ci:
$(PYTHON) ./configure --without-snapshot $(CONFIG_FLAGS)
$(MAKE)
$(MAKE) test-ci

RAWVER=$(shell $(PYTHON) tools/getnodeversion.py)
VERSION=v$(RAWVER)
NODE_DOC_VERSION=$(VERSION)
@@ -439,4 +448,9 @@ cpplint:

lint: jslint cpplint

.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean check uninstall install install-includes install-bin all staticlib dynamiclib test test-all test-addons build-addons website-upload pkg blog blogclean tar binary release-only bench-http-simple bench-idle bench-all bench bench-misc bench-array bench-buffer bench-net bench-http bench-fs bench-tls
.PHONY: lint cpplint jslint bench clean docopen docclean doc dist distclean \
check uninstall install install-includes install-bin all staticlib \
dynamiclib test test-all test-addons build-addons website-upload pkg \
blog blogclean tar binary release-only bench-http-simple bench-idle \
bench-all bench bench-misc bench-array bench-buffer bench-net \
bench-http bench-fs bench-tls run-ci
@@ -2,6 +2,21 @@
OpenSSL CHANGES
_______________

Changes between 1.0.1o and 1.0.1p [9 Jul 2015]

*) Alternate chains certificate forgery

During certificate verfification, OpenSSL will attempt to find an
alternative certificate chain if the first attempt to build such a chain
fails. An error in the implementation of this logic can mean that an
attacker could cause certain checks on untrusted certificates to be
bypassed, such as the CA flag, enabling them to use a valid leaf
certificate to act as a CA and "issue" an invalid certificate.

This issue was reported to OpenSSL by Adam Langley/David Benjamin
(Google/BoringSSL).
[Matt Caswell]

Changes between 1.0.1n and 1.0.1o [12 Jun 2015]

*) Fix HMAC ABI incompatibility. The previous version introduced an ABI
@@ -4,7 +4,7 @@
## Makefile for OpenSSL
##

VERSION=1.0.1o
VERSION=1.0.1p
MAJOR=1
MINOR=0.1
SHLIB_VERSION_NUMBER=1.0.0
@@ -270,6 +270,7 @@ reflect:
@[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)

sub_all: build_all

build_all: build_libs build_apps build_tests build_tools

build_libs: build_libcrypto build_libssl openssl.pc
@@ -279,15 +280,15 @@ build_libssl: build_ssl libssl.pc

build_crypto:
@dir=crypto; target=all; $(BUILD_ONE_CMD)
build_ssl:
build_ssl: build_crypto
@dir=ssl; target=all; $(BUILD_ONE_CMD)
build_engines:
build_engines: build_crypto
@dir=engines; target=all; $(BUILD_ONE_CMD)
build_apps:
build_apps: build_libs
@dir=apps; target=all; $(BUILD_ONE_CMD)
build_tests:
build_tests: build_libs
@dir=test; target=all; $(BUILD_ONE_CMD)
build_tools:
build_tools: build_libs
@dir=tools; target=all; $(BUILD_ONE_CMD)

all_testapps: build_libs build_testapps
@@ -4,7 +4,7 @@
## Makefile for OpenSSL
##

VERSION=1.0.1o-dev
VERSION=1.0.1p-dev
MAJOR=1
MINOR=0.1
SHLIB_VERSION_NUMBER=1.0.0
@@ -270,6 +270,7 @@ reflect:
@[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)

sub_all: build_all

build_all: build_libs build_apps build_tests build_tools

build_libs: build_libcrypto build_libssl openssl.pc
@@ -279,15 +280,15 @@ build_libssl: build_ssl libssl.pc

build_crypto:
@dir=crypto; target=all; $(BUILD_ONE_CMD)
build_ssl:
build_ssl: build_crypto
@dir=ssl; target=all; $(BUILD_ONE_CMD)
build_engines:
build_engines: build_crypto
@dir=engines; target=all; $(BUILD_ONE_CMD)
build_apps:
build_apps: build_libs
@dir=apps; target=all; $(BUILD_ONE_CMD)
build_tests:
build_tests: build_libs
@dir=test; target=all; $(BUILD_ONE_CMD)
build_tools:
build_tools: build_libs
@dir=tools; target=all; $(BUILD_ONE_CMD)

all_testapps: build_libs build_testapps
@@ -268,6 +268,7 @@ reflect:
@[ -n "$(THIS)" ] && $(CLEARENV) && $(MAKE) $(THIS) -e $(BUILDENV)

sub_all: build_all

build_all: build_libs build_apps build_tests build_tools

build_libs: build_libcrypto build_libssl openssl.pc
@@ -277,15 +278,15 @@ build_libssl: build_ssl libssl.pc

build_crypto:
@dir=crypto; target=all; $(BUILD_ONE_CMD)
build_ssl:
build_ssl: build_crypto
@dir=ssl; target=all; $(BUILD_ONE_CMD)
build_engines:
build_engines: build_crypto
@dir=engines; target=all; $(BUILD_ONE_CMD)
build_apps:
build_apps: build_libs
@dir=apps; target=all; $(BUILD_ONE_CMD)
build_tests:
build_tests: build_libs
@dir=test; target=all; $(BUILD_ONE_CMD)
build_tools:
build_tools: build_libs
@dir=tools; target=all; $(BUILD_ONE_CMD)

all_testapps: build_libs build_testapps
@@ -5,6 +5,10 @@
This file gives a brief overview of the major changes between each OpenSSL
release. For more details please read the CHANGES file.

Major changes between OpenSSL 1.0.1o and OpenSSL 1.0.1p [9 Jul 2015]

o Alternate chains certificate forgery (CVE-2015-1793)

Major changes between OpenSSL 1.0.1n and OpenSSL 1.0.1o [12 Jun 2015]

o Fix HMAC ABI incompatibility
@@ -1,5 +1,5 @@

OpenSSL 1.0.1o 12 Jun 2015
OpenSSL 1.0.1p 9 Jul 2015

Copyright (c) 1998-2011 The OpenSSL Project
Copyright (c) 1995-1998 Eric A. Young, Tim J. Hudson
@@ -290,7 +290,7 @@ void BIO_clear_flags(BIO *b, int flags);
* BIO_CB_RETURN flag indicates if it is after the call
*/
# define BIO_CB_RETURN 0x80
# define BIO_CB_return(a) ((a)|BIO_CB_RETURN))
# define BIO_CB_return(a) ((a)|BIO_CB_RETURN)
# define BIO_cb_pre(a) (!((a)&BIO_CB_RETURN))
# define BIO_cb_post(a) ((a)&BIO_CB_RETURN)

@@ -1146,7 +1146,7 @@ static int aes_ccm_ctrl(EVP_CIPHER_CTX *c, int type, int arg, void *ptr)
case EVP_CTRL_CCM_SET_TAG:
if ((arg & 1) || arg < 4 || arg > 16)
return 0;
if ((c->encrypt && ptr) || (!c->encrypt && !ptr))
if (c->encrypt && ptr)
return 0;
if (ptr) {
cctx->tag_set = 1;
@@ -101,7 +101,7 @@
#endif

#if defined(DES_RISC1) && defined(DES_RISC2)
YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
#error YOU SHOULD NOT HAVE BOTH DES_RISC1 AND DES_RISC2 DEFINED!!!!!
#endif

/* Unroll the inner loop, this sometimes helps, sometimes hinders.
@@ -30,11 +30,11 @@ extern "C" {
* (Prior to 0.9.5a beta1, a different scheme was used: MMNNFFRBB for
* major minor fix final patch/beta)
*/
# define OPENSSL_VERSION_NUMBER 0x100010ffL
# define OPENSSL_VERSION_NUMBER 0x1000110fL
# ifdef OPENSSL_FIPS
# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1o-fips 12 Jun 2015"
# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1p-fips 9 Jul 2015"
# else
# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1o 12 Jun 2015"
# define OPENSSL_VERSION_TEXT "OpenSSL 1.0.1p 9 Jul 2015"
# endif
# define OPENSSL_VERSION_PTEXT " part of " OPENSSL_VERSION_TEXT

@@ -135,10 +135,12 @@ int PKCS12_parse(PKCS12 *p12, const char *pass, EVP_PKEY **pkey, X509 **cert,

while ((x = sk_X509_pop(ocerts))) {
if (pkey && *pkey && cert && !*cert) {
ERR_set_mark();
if (X509_check_private_key(x, *pkey)) {
*cert = x;
x = NULL;
}
ERR_pop_to_mark();
}

if (ca && x) {