- add sources.
[platform/framework/web/crosswalk.git] / src / net / third_party / nss / README.chromium
1 Name: Network Security Services (NSS)
2 URL: http://www.mozilla.org/projects/security/pki/nss/
3 Version: 3.15.1
4 Security Critical: Yes
5 License: MPL 2
6 License File: NOT_SHIPPED
7
8 This directory includes a copy of NSS's libssl from the hg repo at:
9   https://hg.mozilla.org/projects/nss
10
11 The same module appears in crypto/third_party/nss (and third_party/nss on some
12 platforms), so we don't repeat the license file here.
13
14 The snapshot was updated to the hg tag: NSS_3_15_1_RTM
15
16 Patches:
17
18   * Commenting out a couple of functions because they need NSS symbols
19     which may not exist in the system NSS library.
20     patches/versionskew.patch
21
22   * Send empty renegotiation info extension instead of SCSV unless TLS is
23     disabled.
24     patches/renegoscsv.patch
25     https://bugzilla.mozilla.org/show_bug.cgi?id=549042
26
27   * Cache the peer's intermediate CA certificates in session ID, so that
28     they're available when we resume a session.
29     patches/cachecerts.patch
30     https://bugzilla.mozilla.org/show_bug.cgi?id=731478
31
32   * Add the SSL_PeerCertificateChain function
33     patches/peercertchain.patch
34     patches/peercertchain2.patch
35     https://bugzilla.mozilla.org/show_bug.cgi?id=731485
36
37   * Add support for client auth with native crypto APIs on Mac and Windows
38     patches/clientauth.patch
39     ssl/sslplatf.c
40
41   * Add a function to export whether the last handshake on a socket resumed a
42     previous session.
43     patches/didhandshakeresume.patch
44     https://bugzilla.mozilla.org/show_bug.cgi?id=731798
45
46   * Allow SSL_HandshakeNegotiatedExtension to be called before the handshake
47     is finished.
48     https://bugzilla.mozilla.org/show_bug.cgi?id=681839
49     patches/negotiatedextension.patch
50
51   * Add function to retrieve TLS client cert types requested by server.
52     https://bugzilla.mozilla.org/show_bug.cgi?id=51413
53     patches/getrequestedclientcerttypes.patch
54
55   * Add a function to restart a handshake after a client certificate request.
56     patches/restartclientauth.patch
57
58   * Add support for TLS Channel IDs
59     patches/channelid.patch
60
61   * Add support for extracting the tls-unique channel binding value
62     patches/tlsunique.patch
63     https://bugzilla.mozilla.org/show_bug.cgi?id=563276
64
65   * Define the EC_POINT_FORM_UNCOMPRESSED macro. In NSS 3.13.2 the macro
66     definition was moved from the internal header ec.h to blapit.h. When
67     compiling against older system NSS headers, we need to define the macro.
68     patches/ecpointform.patch
69
70   * SSL_ExportKeyingMaterial should get the RecvBufLock and SSL3HandshakeLock.
71     This change was made in https://chromiumcodereview.appspot.com/10454066.
72     patches/secretexporterlocks.patch
73
74   * Allow the constant-time CBC processing code to be compiled against older
75     NSS that doesn't contain the CBC constant-time changes.
76     patches/cbc.patch
77     https://code.google.com/p/chromium/issues/detail?id=172658#c12
78     TODO(wtc): remove this patch now that NSS 3.14.3 is the minimum
79     compile-time and run-time version.
80
81   * Change ssl3_SuiteBOnly to always return PR_TRUE. The softoken in NSS
82     versions older than 3.15 report an EC key size range of 112 bits to 571
83     bits, even when it is compiled to support only the NIST P-256, P-384, and
84     P-521 curves. Remove this patch when all system NSS softoken packages are
85     NSS 3.15 or later.
86     patches/suitebonly.patch
87
88   * Define the SECItemArray type and declare the SECItemArray handling
89     functions, which were added in NSS 3.15. Remove this patch when all system
90     NSS packages are NSS 3.15 or later.
91     patches/secitemarray.patch
92
93   * Update Chromium-specific code for TLS 1.2.
94     patches/tls12chromium.patch
95
96   * Add the Application Layer Protocol Negotiation extension.
97     patches/alpn.patch
98
99   * Fix an issue with allocating an SSL socket when under memory pressure.
100     https://bugzilla.mozilla.org/show_bug.cgi?id=903565
101     patches/sslsock_903565.patch
102
103   * Implement the AES GCM cipher suites.
104     https://bugzilla.mozilla.org/show_bug.cgi?id=880543
105     patches/aesgcm.patch
106
107   * Add Chromium-specific code to detect AES GCM support in the system NSS
108     libraries at run time.
109     patches/aesgcmchromium.patch
110
111   * Prefer to generate SHA-1 signatures for TLS 1.2 client authentication if
112     the client private key is in a CAPI service provider on Windows or if the
113     client private key is a 1024-bit RSA or DSA key.
114     patches/tls12backuphash.patch
115
116   * Support ChaCha20+Poly1305 ciphersuites
117     http://tools.ietf.org/html/draft-agl-tls-chacha20poly1305-01
118     patches/chacha20poly1305.patch
119
120   * Fix session cache lock creation race.
121     patches/cachelocks.patch
122     https://bugzilla.mozilla.org/show_bug.cgi?id=764646
123
124   * Don't advertise TLS 1.2-only cipher suites in a TLS 1.1 ClientHello.
125     https://bugzilla.mozilla.org/show_bug.cgi?id=919677
126     patches/ciphersuiteversion.patch
127
128   * Don't use record versions greater than 0x0301 in resumption ClientHello
129     records either.
130     https://bugzilla.mozilla.org/show_bug.cgi?id=923696
131     https://code.google.com/p/chromium/issues/detail?id=303398
132     patches/resumeclienthelloversion.patch
133
134   * Make SSL False Start work with asynchronous certificate validation.
135     https://bugzilla.mozilla.org/show_bug.cgi?id=713933
136     patches/canfalsestart.patch
137
138   * Have the Null Cipher limit output to the maximum allowed
139     https://bugzilla.mozilla.org/show_bug.cgi?id=934016
140     patches/nullcipher_934016.patch
141
142 Apply the patches to NSS by running the patches/applypatches.sh script.  Read
143 the comments at the top of patches/applypatches.sh for instructions.
144
145 The ssl/bodge directory contains files taken from the NSS repo that we required
146 for building libssl outside of its usual build environment.