Commit Graph

39 Commits (5691e8aca7dc46f6b7c92defca61c6d91002657e)

Author SHA1 Message Date
Bert Belder 9423aa995b openssl: fix the Windows x64 build 2012-09-17 17:54:59 -07:00
isaacs 22974a1acd openssl: Set flags to properly build on sunos 2012-09-17 17:54:59 -07:00
Shigeki Ohtsu 1bcf29ef33 openssl: disable EC_NISTP_64_GCC_128 on ia32
uint128_t won't work on 32-bit platform

Closes #4008.
2012-09-12 20:51:40 -07:00
Ben Noordhuis d3fa0dcb89 openssl: disable harmless compiler warnings
Compile with -Wno-missing-field-initializers and -Wno-old-style-declaration.
The warnings are harmless but they clutter the build output a great deal.
2012-09-12 17:57:22 +02:00
Bert Belder 4b8721aad0 openssl: remove obsolete patch files
These patches were provided by Android and Chromium. In this form they
are not useful. The ones that we need are landed as separate commits.

As of openssl 1.0.1c, three of them made it upstream:
  * npn.patch (Next Protocol Negotiation support)
  * tls_exporter.patch (RFC 5705 Keying Material Exporters for TLS)
  * openssl_no_dtls1.patch (minor bugfix)
2012-09-12 05:24:03 +02:00
Bert Belder 8d082d0f88 openssl: update the GYP build to work with openssl 1.0.1c 2012-09-12 05:24:01 +02:00
Bert Belder c4b9be7c5a openssl: replace symlinks by #include shims
Git for Windows can't create symlinks. This works too.
2012-09-12 05:23:59 +02:00
Bert Belder 709e935239 openssl: use dummy OPENSSL_cpuid_setup function
Use a empty implementation for function OPENSSL_cpuid_setup to resolve link
error. We should figure out how to geenrate platform specific implementation
of OPENSSL_cpuid_setup by leveraging crypto/*cpuid.pl.

This patch is taken from Chromium.
2012-09-12 05:23:58 +02:00
Bert Belder 9fc84fdad9 openssl: don't read user input from the TTY 2012-09-12 05:23:56 +02:00
Ben Noordhuis 988a164cd8 openssl: fix uninitialized memory access
ASN1_STRING_to_UTF8() passes an ASN1_STRING to ASN1_STRING_set() but
forgot to initialize the `length` field.

Fixes the following valgrind error:

  $ valgrind -q --track-origins=yes --num-callers=19 \
      out/Debug/node test/simple/test-tls-client-abort.js
  ==2690== Conditional jump or move depends on uninitialised value(s)
  ==2690==    at 0x784B69: ASN1_STRING_set (asn1_lib.c:382)
  ==2690==    by 0x809564: ASN1_mbstring_ncopy (a_mbstr.c:204)
  ==2690==    by 0x8090F0: ASN1_mbstring_copy (a_mbstr.c:86)
  ==2690==    by 0x782F1F: ASN1_STRING_to_UTF8 (a_strex.c:570)
  ==2690==    by 0x78F090: asn1_string_canon (x_name.c:409)
  ==2690==    by 0x78EF17: x509_name_canon (x_name.c:354)
  ==2690==    by 0x78EA7D: x509_name_ex_d2i (x_name.c:210)
  ==2690==    by 0x788058: ASN1_item_ex_d2i (tasn_dec.c:239)
  ==2690==    by 0x7890D4: asn1_template_noexp_d2i (tasn_dec.c:746)
  ==2690==    by 0x788CB6: asn1_template_ex_d2i (tasn_dec.c:607)
  ==2690==    by 0x78877A: ASN1_item_ex_d2i (tasn_dec.c:448)
  ==2690==    by 0x7890D4: asn1_template_noexp_d2i (tasn_dec.c:746)
  ==2690==    by 0x788CB6: asn1_template_ex_d2i (tasn_dec.c:607)
  ==2690==    by 0x78877A: ASN1_item_ex_d2i (tasn_dec.c:448)
  ==2690==    by 0x787C93: ASN1_item_d2i (tasn_dec.c:136)
  ==2690==    by 0x78F5E4: d2i_X509 (x_x509.c:141)
  ==2690==    by 0x7C9B91: PEM_ASN1_read_bio (pem_oth.c:81)
  ==2690==    by 0x7CA506: PEM_read_bio_X509 (pem_x509.c:67)
  ==2690==    by 0x703C9A: node::crypto::SecureContext::AddRootCerts(v8::Arguments const&) (node_crypto.cc:497)
  ==2690==  Uninitialised value was created by a stack allocation
  ==2690==    at 0x782E89: ASN1_STRING_to_UTF8 (a_strex.c:560)
2012-09-12 05:23:54 +02:00
Bert Belder c23ac14cba openssl: backward compatibility after x509 hash function change
There are many symbolic links under /etc/ssl/certs created by using hash of
the pem certificates in order for OpenSSL to find those certificate.
Openssl has a tool to help you create hash symbolic links. (See tools/c_rehash)
However the new openssl changed the hash algorithm, Unless you compile/install
the latest openssl library and re-create all related symbolic links, the new
openssl can not find some certificates because the links of those certificates
were created by using old hash algorithm, which causes some tests failed.

This patch gives a way to find a certificate according to its hash by using both
new algorithm and old algorithm.

crbug.com/111045 is used to track this issue.

This patch is taken from the Chromium project.
2012-09-12 05:23:52 +02:00
Ben Noordhuis 2fad7a8c1b openssl: apply upstream sha1-armv4-large.pl patch
This is a back-port of r22768: sha1-armv4-large.pl: comply with ABI.
2012-09-12 05:23:51 +02:00
Bert Belder 1d9b4ace8a openssl: support handshake cut-through
Enables SSL3+ clients to send application data immediately following the
Finished message even when negotiating full-handshakes.  With this patch,
clients can negotiate SSL connections in 1-RTT even when performing
full-handshakes.

This patch is taken from the Android Open Source Project.
2012-09-12 05:23:49 +02:00
Bert Belder ff22a0cb15 openssl: reduce memory consumption
SSL records may be as large as 16K, but are typically < 2K.  In
addition, a historic bug in Windows allowed records to be as large
32K.  OpenSSL statically allocates read and write buffers (34K and
18K respectively) used for processing records.

With this patch, OpenSSL statically allocates 4K + 4K buffers, with
the option of dynamically growing buffers to 34K + 4K, which is a
saving of 44K per connection for the typical case.

This patch is taken from the Android Open Source Project.
2012-09-12 05:23:47 +02:00
Bert Belder b61ae54e18 openssl: upgrade to vanilla openssl 1.0.1c 2012-09-12 00:40:55 +02:00
Bert Belder bf16d9280e Merge branch 'v0.8'
Conflicts:
	ChangeLog
	deps/openssl/openssl.gyp
	src/node_version.h
2012-08-28 02:54:22 +02:00
Nathan Rajlich 7142b260c6 build: tweak the openssl android configuration to build
Removed NO_CAST, NO_MD2 and NO_STORE because otherwise there were build errors.

Added NO_CAMELLIA, NO_MDC2, and NO_CMS because otherwise there were linker errors.
2012-08-23 16:46:03 -07:00
Nathan Rajlich f8fd9aca8b build: use the openssl android configuration for "arm" builds 2012-08-23 16:45:55 -07:00
Ben Noordhuis a177f55b0c Merge remote-tracking branch 'origin/v0.8'
Conflicts:
	ChangeLog
	src/node_version.h
	test/message/stdin_messages.out
	tools/install.py
2012-08-17 13:05:20 +02:00
Ben Noordhuis 2c13cbbc0b crypto: fix uninitialized memory access in openssl
ASN1_STRING_to_UTF8() passes an ASN1_STRING to ASN1_STRING_set() but forgot to
initialize the `length` field.

Fixes the following valgrind error:

  $ valgrind -q --track-origins=yes --num-callers=19 \
      out/Debug/node test/simple/test-tls-client-abort.js
  ==2690== Conditional jump or move depends on uninitialised value(s)
  ==2690==    at 0x784B69: ASN1_STRING_set (asn1_lib.c:382)
  ==2690==    by 0x809564: ASN1_mbstring_ncopy (a_mbstr.c:204)
  ==2690==    by 0x8090F0: ASN1_mbstring_copy (a_mbstr.c:86)
  ==2690==    by 0x782F1F: ASN1_STRING_to_UTF8 (a_strex.c:570)
  ==2690==    by 0x78F090: asn1_string_canon (x_name.c:409)
  ==2690==    by 0x78EF17: x509_name_canon (x_name.c:354)
  ==2690==    by 0x78EA7D: x509_name_ex_d2i (x_name.c:210)
  ==2690==    by 0x788058: ASN1_item_ex_d2i (tasn_dec.c:239)
  ==2690==    by 0x7890D4: asn1_template_noexp_d2i (tasn_dec.c:746)
  ==2690==    by 0x788CB6: asn1_template_ex_d2i (tasn_dec.c:607)
  ==2690==    by 0x78877A: ASN1_item_ex_d2i (tasn_dec.c:448)
  ==2690==    by 0x7890D4: asn1_template_noexp_d2i (tasn_dec.c:746)
  ==2690==    by 0x788CB6: asn1_template_ex_d2i (tasn_dec.c:607)
  ==2690==    by 0x78877A: ASN1_item_ex_d2i (tasn_dec.c:448)
  ==2690==    by 0x787C93: ASN1_item_d2i (tasn_dec.c:136)
  ==2690==    by 0x78F5E4: d2i_X509 (x_x509.c:141)
  ==2690==    by 0x7C9B91: PEM_ASN1_read_bio (pem_oth.c:81)
  ==2690==    by 0x7CA506: PEM_read_bio_X509 (pem_x509.c:67)
  ==2690==    by 0x703C9A: node::crypto::SecureContext::AddRootCerts(v8::Arguments const&) (node_crypto.cc:497)
  ==2690==  Uninitialised value was created by a stack allocation
  ==2690==    at 0x782E89: ASN1_STRING_to_UTF8 (a_strex.c:560)
2012-08-15 02:15:47 +02:00
isaacs 3bf1846bb7 Merge remote-tracking branch 'ry/v0.8'
Conflicts:
	ChangeLog
	deps/uv/src/unix/sunos.c
	deps/uv/test/test-tcp-unexpected-read.c
	src/node_version.h
2012-08-03 16:23:14 -07:00
Ben Noordhuis 6db9e12de5 deps: remove openssl apps and tests
Shrinks the tarball by a few hundred kilobytes and fixes a broken symlinks
issue on Windows.

Fixes #3813.
2012-08-02 12:20:19 +02:00
Fedor Indutny d923269e13 tls: make tls a little bit faster
Compile OpenSSL with inline assembly for big numbers
2012-07-05 00:23:49 -04:00
Ben Noordhuis 89e311b1ae deps: back-port openssl patch
Check for potentially exploitable overflows in asn1_d2i_read_bio
BUF_mem_grow and BUF_mem_grow_clean. Refuse attempts to shrink buffer
in CRYPTO_realloc_clean.

Taken from OpenSSL CVS. Addresses CVE-2012-2110.
2012-05-01 00:40:38 +02:00
Ben Noordhuis c945eae942 deps: fix -DOPENSSL_NO_SOCK on sunos
The OPENSSL_NO_SOCK macro in OpenSSL missed a couple of networking functions
that called other functions that OPENSSL_NO_SOCK *had* filtered out. None of
the functions (filtered or not) were actually used but it was enough to trip
up the Solaris linker.
2012-04-14 22:05:17 +00:00
Bert Belder 1c88c3b3b5 Disable OpenSSL UI 2012-04-12 01:34:05 +02:00
Ben Noordhuis 2639566c6e build: configure openssl
* compile with -DOPENSSL_NO_SOCK and -DOPENSSL_NO_DGRAM, we don't need it
* compile with -DOPENSSL_NO_GOST and -DOPENSSL_NO_HW_PADLOCK, works around the
  brain dead linker on solaris and maybe others
* compile with -DTERMIOS, OS X doesn't have <termio.h>
* compile with -D__EXTENSIONS__ on solaris, makes siginfo_t available
* compile without -ansi on linux, it hides a number of POSIX declarations
  (sigaction, NI_MAXHOST, etc.)
2012-04-12 01:34:05 +02:00
Ben Noordhuis 3694b6914a deps: reapply 0a34755 to bundled openssl 2012-04-12 01:34:05 +02:00
Ben Noordhuis 0f9d201183 deps: reapply 0110c90 to bundled openssl 2012-04-12 01:34:05 +02:00
Ben Noordhuis 30e7fb7307 deps: upgrade openssl to 1.0.0f 2012-04-12 01:34:05 +02:00
Ben Noordhuis 8a6576f764 Merge remote-tracking branch 'origin/v0.6'
Conflicts:
	common.gypi
2012-02-12 16:12:26 +01:00
Igor Zinkovsky 0a347559bf enable x64 windows build
use "vcbuild x64" to do x64 build of node.exe
2012-02-07 13:32:53 -08:00
Ben Noordhuis a82f5389d9 deps: fix openssl build on x86_64 2011-12-21 18:35:50 +01:00
Ben Noordhuis 213b8af2f6 gyp: include opensslconf.h on x64
Good news, it means we don't have to compile with OPENSSL_NO_ASM=1 after all.
2011-12-19 23:24:29 +01:00
Ben Noordhuis 15d0fa6dc1 gyp: compile openssl with OPENSSL_NO_ASM=1
Fixes linker error "undefined reference to `OPENSSL_ia32_cpuid'". This is
sub-optimal and needs to be revisited, the plain C implementations are often
much slower.
2011-12-19 22:55:11 +01:00
Ben Noordhuis c18ef0fed5 openssl: fixups for sunos 2011-09-12 21:48:30 +00:00
Evan Martin 8a29e5ea5b gyp: Don't pass C++ flags to C compiler, and don't pass -ansi in OpenSSL builds. 2011-08-23 13:19:17 -07:00
Peter Bright 0110c90382 Upgrade to 0.9.8r.
Build in Win32.
2011-08-22 11:30:47 -07:00
Ryan Dahl e80cac6225 import openssl from chrome 2011-08-22 11:30:45 -07:00