Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(125)

Side by Side Diff: README.chromium

Issue 10911247: Upstream openssl to version 1.0.1c (Closed) Base URL: http://src.chromium.org/svn/trunk/deps/third_party/openssl/
Patch Set: Created 8 years, 2 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « no previous file | config/android/openssl/opensslconf.h » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 Name: openssl 1 Name: openssl
2 URL: http://openssl.org/source/ 2 URL: http://openssl.org/source/
3 Version: 1.0.0f 3 Version: 1.0.1c
4 License: BSDish 4 License: BSDish
5 License File: openssl/LICENSE 5 License File: openssl/LICENSE
6 License Android Compatible: yes 6 License Android Compatible: yes
7 Security Critical: yes 7 Security Critical: yes
8 8
9 Description: 9 Description:
10 This is OpenSSL, the standard SSL/TLS library, which is used only in Android. 10 This is OpenSSL, the standard SSL/TLS library, which is used *only* in
11 the following cases:
11 12
12 It's an unmodified, upstream source except for the patches listed below. 13 - For Chrome/Chromium, only on Android to implement SSL/TLS support
14 (while certificate validation is performed through the platform APIs),
15 instead of using NSS as on other Linux-based operating systems.
13 16
17 Note that there is no plans to support OpenSSL in Chromium on other
18 platforms. For more context, please read:
14 19
15 ******************************************************************************** 20 https://groups.google.com/a/chromium.org/d/msg/chromium-dev/gmO3U9HLY3Y/RPG NiQ-NL-YJ
16 The following patches are taken from Android Open Source Project.
17 21
22 - To implement net/tools/flip_server, a host-side tool. Read more about
23 it at the following page:
18 24
19 progs.patch: 25 http://dev.chromium.org/spdy/running_flipinmemserver
20 26
21 Fixup sources under the apps/ directory that are not built under the android env ironment. 27 This means that the library must be built, at a minimum, for Android, Linux
28 and Darwin systems.
22 29
30 Android/ARM Android/x86 Linux/x86 Linux/x86_64 Darwin/x86 Darwin/x86_64
23 31
24 small_records.patch: 32 This source shall track the state of the Android platform's openssl version
33 of the library, with some important details listed here:
25 34
26 Reduce OpenSSL memory consumption. 35 - The Android version lives under $ANDROID/external/openssl, while
27 SSL records may be as large as 16K, but are typically < 2K. In 36 the Chromum version (these files) live under
28 addition, a historic bug in Windows allowed records to be as large 37 $CHROMIUM/src/third_party/openssl.
29 32K. OpenSSL statically allocates read and write buffers (34K and
30 18K respectively) used for processing records.
31 With this patch, OpenSSL statically allocates 4K + 4K buffers, with
32 the option of dynamically growing buffers to 34K + 4K, which is a
33 saving of 44K per connection for the typical case.
34 38
39 - The Android version corresponds to the upstream original sources with
40 the patches under $ANDROID/external/openssl/patches applied. It also
41 does not include many files and directories that are not necessary for
42 the Android build.
35 43
36 handshake_cutthrough.patch 44 - The Chromium version corresponds to the upstream original sources with
45 the patches under $CHROMIUM/src/third_party/openssl/patches/ applied.
46 Most of these patches come from the Android tree, with a few additional
47 ones.
37 48
38 Enables SSL3+ clients to send application data immediately following the 49 The file patches/README lists the purpose of each Android patch.
39 Finished message even when negotiating full-handshakes. With this patch, 50 Additional Chromium-specific patches also exist and are described
40 clients can negotiate SSL connections in 1-RTT even when performing 51 at the end of this document.
41 full-handshakes.
42 52
53 - The Chromium openssl.gyp tries to match the Android.mk when it comes
54 to listing all source files. There is no direct mapping due to many
55 differences in their structure. To make this slightly easier, this file
56 doesn't use the convention of listing *all* source files under openssl,
57 then conditionally removing them for an Android build.
43 58
44 jsse.patch 59 Instead, only the files needed for the build are listed in 'sources'.
60 Given that there is a very large number of files that are not used in
61 the build, this simplified the task of keeping both files in sync.
45 62
46 Support for JSSE implementation based on OpenSSL. 63 - The Android tree also includes auto-generated assembly files for
64 ARM, x86 and MIPS, used to speed up some crypto computations. They
65 are generated by the $ANDROID/external/openssl/import_openssl.sh
66 script (which itself invokes a bunch of Perl generations scripts)
67 and have a file extension of .s
47 68
69 These files are also copied into the Chromium tree, with an .S file
70 extension, because they require being sent to the C preprocessor
71 before the assembler.
48 72
49 npn.patch 73 The original Android.mk uses a feature not supported by gyp, which is:
50 74
51 Transport Layer Security (TLS) Next Protocol Negotiation Extension 75 LOCAL_AS_FLAGS := -x assembler-with-cpp
52 76
77 It tells the build system to apply the '-x assembler-with-cpp' flag
78 only to assembler files.
53 79
54 sha1_armv4_large.patch 80 By using .S instead, the build 'just works' on Chromium.
55 81
56 This patch eliminates memory stores to addresses below SP. 82 - The Android build holds all configuration in
83 external/openssl/android-config.mk which is a Makefile fragment used
84 to define compiler flags that define configuration macros, to be used
85 when building *and* using the library.
57 86
87 The Chromium version uses config/<name>/openssl/opensslconf.h instead,
88 where name can be 'android', 'piii' or 'k8', corresponding to the
89 Android, Posix/ia32 or Posix/x64 builds.
58 90
59 openssl_no_dtls1.patch 91 These headers hold the definition of these configuration variables.
92 Their parent directory must appear *before* openssl/include when
93 building and using the library. This is taken care of by openssl.gyp
94 here.
60 95
61 Add missing #ifndef OPENSSL_NO_DTLS1 96 Due to this, the Chromium tree also does not include obsolete copies
97 of opensslconf.h which appear in the Android source tree (and do not
98 seem to be really included during the build).
62 99
63 100 ***************************************************************************
64 ******************************************************************************** 101 The following patches are needed to compile this openssl on Chromium and
65 The following patches are needed to compile this openssl on Chromium and pass 102 pass the related net unit tests. They are applied on top of the
66 the related net unit tests. 103 Android-specific patches described under patches/README:
67
68
69 empty_OPENSSL_cpuid_setup.patch
70
71 Use a empty implementation for function OPENSSL_cpuid_setup to resolve link
72 error. We should figure out how to geenrate platform specific implementation
73 of OPENSSL_cpuid_setup by leveraging crypto/*cpuid.pl.
74
75 104
76 x509_hash_name_algorithm_change.patch 105 x509_hash_name_algorithm_change.patch
77 106
78 There are many symbolic links under /etc/ssl/certs created by using hash of 107 There are many symbolic links under /etc/ssl/certs created by using hash
79 the pem certificates in order for OpenSSL to find those certificate. 108 of the PEM certificates in order for OpenSSL to find those certificates.
80 Openssl has a tool to help you create hash symbolic links. (See tools/c_rehash) 109 Openssl has a tool to help you create hash symbolic links (tools/c_rehash).
81 However the new openssl changed the hash algorithm, Unless you compile/install 110 However the new openssl changed the hash algorithm. Unless you
82 the latest openssl library and re-create all related symbolic links, the new 111 compile/install the latest openssl library and re-create all related
83 openssl can not find some certificates because the links of those certificates 112 symbolic links, the new openssl can not find some certificates because
84 were created by using old hash algorithm, which causes some tests failed. 113 the links of those certificates were created by using old hash algorithm,
85 This patch gives a way to find a certificate according to its hash by using both 114 which causes some tests failed. This patch gives a way to find a
86 new algorithm and old algorithm. 115 certificate according to its hash by using both new algorithm and old
87 crbug.com/111045 is used to track this issue. 116 algorithm. crbug.com/111045 is used to track this issue.
88 117
118 fix-clang-build.patch
89 119
90 tls_exporter.patch 120 Small patch to fix various minor issues which prevent building the library
91 121 with Clang.
92 Keying Material Exporters for Transport Layer Security (RFC 5705).
93
94
95 Android platform support
96
97 Copy config/android/openssl/opensslconf.h from Android's
98 external/openssl/include/openssl/opensslconf.h
99
100
101 clang.patch
102 Fix warnings when building with clang
OLDNEW
« no previous file with comments | « no previous file | config/android/openssl/opensslconf.h » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698