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

Side by Side Diff: net/BUILD.gn

Issue 881213004: Support building BoringSSL with NSS certificates. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 5 years, 10 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
OLDNEW
1 # Copyright (c) 2013 The Chromium Authors. All rights reserved. 1 # Copyright (c) 2013 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be 2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file. 3 # found in the LICENSE file.
4 4
5 import("//build/config/crypto.gni") 5 import("//build/config/crypto.gni")
6 import("//build/config/features.gni") 6 import("//build/config/features.gni")
7 import("//build/config/ui.gni") 7 import("//build/config/ui.gni")
8 import("//build/module_args/v8.gni") 8 import("//build/module_args/v8.gni")
9 import("//url/config.gni") 9 import("//url/config.gni")
10 import("//testing/test.gni") 10 import("//testing/test.gni")
(...skipping 179 matching lines...) Expand 10 before | Expand all | Expand 10 after
190 } 190 }
191 191
192 if (use_openssl) { 192 if (use_openssl) {
193 sources -= [ 193 sources -= [
194 "base/nss_memio.c", 194 "base/nss_memio.c",
195 "base/nss_memio.h", 195 "base/nss_memio.h",
196 "cert/ct_log_verifier_nss.cc", 196 "cert/ct_log_verifier_nss.cc",
197 "cert/ct_objects_extractor_nss.cc", 197 "cert/ct_objects_extractor_nss.cc",
198 "cert/jwk_serializer_nss.cc", 198 "cert/jwk_serializer_nss.cc",
199 "cert/scoped_nss_types.h", 199 "cert/scoped_nss_types.h",
200 "cert/test_root_certs_nss.cc",
201 "cert/x509_util_nss.cc", 200 "cert/x509_util_nss.cc",
202 "cert/x509_util_nss.h",
203 "ocsp/nss_ocsp.cc",
204 "ocsp/nss_ocsp.h",
205 "quic/crypto/aead_base_decrypter_nss.cc", 201 "quic/crypto/aead_base_decrypter_nss.cc",
206 "quic/crypto/aead_base_encrypter_nss.cc", 202 "quic/crypto/aead_base_encrypter_nss.cc",
207 "quic/crypto/aes_128_gcm_12_decrypter_nss.cc", 203 "quic/crypto/aes_128_gcm_12_decrypter_nss.cc",
208 "quic/crypto/aes_128_gcm_12_encrypter_nss.cc", 204 "quic/crypto/aes_128_gcm_12_encrypter_nss.cc",
209 "quic/crypto/chacha20_poly1305_decrypter_nss.cc", 205 "quic/crypto/chacha20_poly1305_decrypter_nss.cc",
210 "quic/crypto/chacha20_poly1305_encrypter_nss.cc", 206 "quic/crypto/chacha20_poly1305_encrypter_nss.cc",
211 "quic/crypto/channel_id_nss.cc", 207 "quic/crypto/channel_id_nss.cc",
212 "quic/crypto/p256_key_exchange_nss.cc", 208 "quic/crypto/p256_key_exchange_nss.cc",
213 "socket/nss_ssl_util.cc", 209 "socket/nss_ssl_util.cc",
214 "socket/nss_ssl_util.h", 210 "socket/nss_ssl_util.h",
215 "socket/ssl_client_socket_nss.cc", 211 "socket/ssl_client_socket_nss.cc",
216 "socket/ssl_client_socket_nss.h", 212 "socket/ssl_client_socket_nss.h",
217 "socket/ssl_server_socket_nss.cc", 213 "socket/ssl_server_socket_nss.cc",
218 "socket/ssl_server_socket_nss.h", 214 "socket/ssl_server_socket_nss.h",
219 ] 215 ]
220 if (is_chromeos) { 216 if (is_chromeos) {
221 sources -= [ 217 sources -= [
222 "cert/nss_cert_database_chromeos.cc", 218 "cert/nss_cert_database_chromeos.cc",
223 "cert/nss_cert_database_chromeos.h", 219 "cert/nss_cert_database_chromeos.h",
224 "cert/nss_profile_filter_chromeos.cc", 220 "cert/nss_profile_filter_chromeos.cc",
225 "cert/nss_profile_filter_chromeos.h", 221 "cert/nss_profile_filter_chromeos.h",
226 ] 222 ]
227 } 223 }
228 if (is_linux) {
229 # These are always removed for non-Linux cases below.
230 sources -= [
231 "base/crypto_module_nss.cc",
232 "base/keygen_handler_nss.cc",
233 "cert/cert_database_nss.cc",
234 "cert/nss_cert_database.cc",
235 "cert/nss_cert_database.h",
236 "cert/x509_certificate_nss.cc",
237 "third_party/mozilla_security_manager/nsKeygenHandler.cpp",
238 "third_party/mozilla_security_manager/nsKeygenHandler.h",
239 "third_party/mozilla_security_manager/nsNSSCertificateDB.cpp",
240 "third_party/mozilla_security_manager/nsNSSCertificateDB.h",
241 "third_party/mozilla_security_manager/nsPKCS12Blob.cpp",
242 "third_party/mozilla_security_manager/nsPKCS12Blob.h",
243 ]
244 }
245 if (is_ios) { 224 if (is_ios) {
246 # Always removed for !ios below. 225 # Always removed for !ios below.
247 sources -= [ 226 sources -= [
248 "cert/cert_verify_proc_nss.cc", 227 "cert/cert_verify_proc_nss.cc",
249 "cert/cert_verify_proc_nss.h", 228 "cert/cert_verify_proc_nss.h",
250 ] 229 ]
251 } 230 }
252 if (is_win) { 231 if (is_win) {
253 sources -= [ "cert/sha256_legacy_support_nss_win.cc" ] 232 sources -= [ "cert/sha256_legacy_support_nss_win.cc" ]
254 } 233 }
234 if (!use_nss_certs && !is_ios) {
235 sources -= [ "cert/x509_util_nss.h" ]
236 }
255 } else { 237 } else {
256 sources -= [ 238 sources -= [
257 "base/crypto_module_openssl.cc", 239 "base/crypto_module_openssl.cc",
258 "cert/ct_log_verifier_openssl.cc", 240 "cert/ct_log_verifier_openssl.cc",
259 "cert/ct_objects_extractor_openssl.cc", 241 "cert/ct_objects_extractor_openssl.cc",
260 "cert/jwk_serializer_openssl.cc", 242 "cert/jwk_serializer_openssl.cc",
261 "cert/x509_util_openssl.cc", 243 "cert/x509_util_openssl.cc",
262 "cert/x509_util_openssl.h", 244 "cert/x509_util_openssl.h",
263 "quic/crypto/aead_base_decrypter_openssl.cc", 245 "quic/crypto/aead_base_decrypter_openssl.cc",
264 "quic/crypto/aead_base_encrypter_openssl.cc", 246 "quic/crypto/aead_base_encrypter_openssl.cc",
265 "quic/crypto/aes_128_gcm_12_decrypter_openssl.cc", 247 "quic/crypto/aes_128_gcm_12_decrypter_openssl.cc",
266 "quic/crypto/aes_128_gcm_12_encrypter_openssl.cc", 248 "quic/crypto/aes_128_gcm_12_encrypter_openssl.cc",
267 "quic/crypto/chacha20_poly1305_decrypter_openssl.cc", 249 "quic/crypto/chacha20_poly1305_decrypter_openssl.cc",
268 "quic/crypto/chacha20_poly1305_encrypter_openssl.cc", 250 "quic/crypto/chacha20_poly1305_encrypter_openssl.cc",
269 "quic/crypto/channel_id_openssl.cc", 251 "quic/crypto/channel_id_openssl.cc",
270 "quic/crypto/p256_key_exchange_openssl.cc", 252 "quic/crypto/p256_key_exchange_openssl.cc",
271 "quic/crypto/scoped_evp_aead_ctx.cc", 253 "quic/crypto/scoped_evp_aead_ctx.cc",
272 "quic/crypto/scoped_evp_aead_ctx.h", 254 "quic/crypto/scoped_evp_aead_ctx.h",
273 "socket/ssl_client_socket_openssl.cc", 255 "socket/ssl_client_socket_openssl.cc",
274 "socket/ssl_client_socket_openssl.h", 256 "socket/ssl_client_socket_openssl.h",
275 "socket/ssl_server_socket_openssl.cc", 257 "socket/ssl_server_socket_openssl.cc",
276 "socket/ssl_server_socket_openssl.h", 258 "socket/ssl_server_socket_openssl.h",
277 "socket/ssl_session_cache_openssl.cc", 259 "socket/ssl_session_cache_openssl.cc",
278 "socket/ssl_session_cache_openssl.h", 260 "socket/ssl_session_cache_openssl.h",
279 "ssl/openssl_platform_key.h", 261 "ssl/openssl_platform_key.h",
262 "ssl/openssl_platform_key_nss.cc",
280 "ssl/openssl_ssl_util.cc", 263 "ssl/openssl_ssl_util.cc",
281 "ssl/openssl_ssl_util.h", 264 "ssl/openssl_ssl_util.h",
282 ] 265 ]
283 if (is_mac) { 266 if (is_mac) {
284 sources -= [ "ssl/openssl_platform_key_mac.cc" ] 267 sources -= [ "ssl/openssl_platform_key_mac.cc" ]
285 } 268 }
286 if (is_win) { 269 if (is_win) {
287 sources -= [ 270 sources -= [
288 "cert/sha256_legacy_support_openssl_win.cc", 271 "cert/sha256_legacy_support_openssl_win.cc",
289 "ssl/openssl_platform_key_win.cc", 272 "ssl/openssl_platform_key_win.cc",
(...skipping 27 matching lines...) Expand all
317 ] 300 ]
318 } 301 }
319 302
320 if (use_glib && !is_chromeos) { 303 if (use_glib && !is_chromeos) {
321 configs += [ "//build/config/linux:gconf" ] 304 configs += [ "//build/config/linux:gconf" ]
322 deps += [ "//build/config/linux:gio" ] 305 deps += [ "//build/config/linux:gio" ]
323 } 306 }
324 307
325 if (is_linux) { 308 if (is_linux) {
326 configs += [ "//build/config/linux:libresolv" ] 309 configs += [ "//build/config/linux:libresolv" ]
327 } else { 310 }
311
312 if (!use_nss_certs) {
328 sources -= [ 313 sources -= [
329 "base/crypto_module_nss.cc", 314 "base/crypto_module_nss.cc",
330 "base/keygen_handler_nss.cc", 315 "base/keygen_handler_nss.cc",
331 "cert/cert_database_nss.cc", 316 "cert/cert_database_nss.cc",
332 "cert/nss_cert_database.cc", 317 "cert/nss_cert_database.cc",
333 "cert/nss_cert_database.h", 318 "cert/nss_cert_database.h",
334 "cert/x509_certificate_nss.cc", 319 "cert/x509_certificate_nss.cc",
320 "ssl/client_cert_store_nss.cc",
321 "ssl/client_cert_store_nss.h",
335 "third_party/mozilla_security_manager/nsKeygenHandler.cpp", 322 "third_party/mozilla_security_manager/nsKeygenHandler.cpp",
336 "third_party/mozilla_security_manager/nsKeygenHandler.h", 323 "third_party/mozilla_security_manager/nsKeygenHandler.h",
337 "third_party/mozilla_security_manager/nsNSSCertificateDB.cpp", 324 "third_party/mozilla_security_manager/nsNSSCertificateDB.cpp",
338 "third_party/mozilla_security_manager/nsNSSCertificateDB.h", 325 "third_party/mozilla_security_manager/nsNSSCertificateDB.h",
339 "third_party/mozilla_security_manager/nsPKCS12Blob.cpp", 326 "third_party/mozilla_security_manager/nsPKCS12Blob.cpp",
340 "third_party/mozilla_security_manager/nsPKCS12Blob.h", 327 "third_party/mozilla_security_manager/nsPKCS12Blob.h",
341 ] 328 ]
342
343 if (!is_ios && !use_openssl) {
344 # These files are part of the partial implementation of NSS on iOS so
345 # keep them in that case.
346 sources -= [
347 "cert/test_root_certs_nss.cc",
348 "ocsp/nss_ocsp.cc",
349 "ocsp/nss_ocsp.h",
350 ]
351 }
352 }
353
354 if (!use_nss_certs) {
355 sources -= [
356 "ssl/client_cert_store_nss.cc",
357 "ssl/client_cert_store_nss.h",
358 ]
359 if (!is_ios) { 329 if (!is_ios) {
360 # These files are part of the partial implementation of NSS on iOS so 330 # These files are part of the partial implementation of NSS on iOS so
361 # keep them in that case (even though use_nss_certs is not set). 331 # keep them in that case (even though use_nss_certs is not set).
362 sources -= [ 332 sources -= [
363 "cert/cert_verify_proc_nss.cc", 333 "cert/cert_verify_proc_nss.cc",
364 "cert/cert_verify_proc_nss.h", 334 "cert/cert_verify_proc_nss.h",
335 "cert/test_root_certs_nss.cc",
336 "cert/x509_util_nss_certs.cc",
337 "ocsp/nss_ocsp.cc",
338 "ocsp/nss_ocsp.h",
365 ] 339 ]
366 } 340 }
367 if (is_chromeos) { 341 if (is_chromeos) {
368 # These were already removed on non-ChromeOS. 342 # These were already removed on non-ChromeOS.
369 sources -= [ 343 sources -= [
370 "ssl/client_cert_store_chromeos.cc", 344 "ssl/client_cert_store_chromeos.cc",
371 "ssl/client_cert_store_chromeos.h", 345 "ssl/client_cert_store_chromeos.h",
372 ] 346 ]
373 } 347 }
348 if (use_openssl) {
349 sources -= [ "ssl/openssl_platform_key_nss.cc" ]
350 }
351 } else if (use_openssl) {
352 # client_cert_store_nss.c requires NSS_CmpCertChainWCANames from NSS's
353 # libssl, but our bundled copy is not built in OpenSSL ports. Pull that file
354 # in directly.
355 sources += [ "third_party/nss/ssl/cmpcert.c" ]
374 } 356 }
375 357
376 if (!enable_websockets) { 358 if (!enable_websockets) {
377 sources -= [ 359 sources -= [
378 "websockets/websocket_basic_handshake_stream.cc", 360 "websockets/websocket_basic_handshake_stream.cc",
379 "websockets/websocket_basic_handshake_stream.h", 361 "websockets/websocket_basic_handshake_stream.h",
380 "websockets/websocket_basic_stream.cc", 362 "websockets/websocket_basic_stream.cc",
381 "websockets/websocket_basic_stream.h", 363 "websockets/websocket_basic_stream.h",
382 "websockets/websocket_channel.cc", 364 "websockets/websocket_channel.cc",
383 "websockets/websocket_channel.h", 365 "websockets/websocket_channel.h",
(...skipping 72 matching lines...) Expand 10 before | Expand all | Expand 10 after
456 if (is_mac) { 438 if (is_mac) {
457 libs = [ 439 libs = [
458 "Foundation.framework", 440 "Foundation.framework",
459 "Security.framework", 441 "Security.framework",
460 "SystemConfiguration.framework", 442 "SystemConfiguration.framework",
461 "resolv", 443 "resolv",
462 ] 444 ]
463 } 445 }
464 446
465 if (is_ios) { 447 if (is_ios) {
466 # Add back some sources that were otherwise filtered out. iOS additionally 448 # Add back some sources that were otherwise filtered out. iOS needs some Mac
467 # doesn't set USE_NSS but needs some of the files. 449 # files.
468 set_sources_assignment_filter([]) 450 set_sources_assignment_filter([])
469 sources += [ 451 sources += [
470 "base/net_util_mac.cc", 452 "base/net_util_mac.cc",
471 "base/net_util_mac.h", 453 "base/net_util_mac.h",
472 "base/network_change_notifier_mac.cc", 454 "base/network_change_notifier_mac.cc",
473 "base/network_config_watcher_mac.cc", 455 "base/network_config_watcher_mac.cc",
474 "base/platform_mime_util_mac.mm", 456 "base/platform_mime_util_mac.mm",
475 "cert/cert_verify_proc_nss.cc",
476 "cert/cert_verify_proc_nss.h",
477 "cert/test_root_certs_nss.cc",
478 "cert/x509_util_nss.cc",
479 "cert/x509_util_nss.h",
480 "proxy/proxy_resolver_mac.cc", 457 "proxy/proxy_resolver_mac.cc",
481 "proxy/proxy_server_mac.cc", 458 "proxy/proxy_server_mac.cc",
482 "ocsp/nss_ocsp.cc",
483 "ocsp/nss_ocsp.h",
484 ] 459 ]
485 set_sources_assignment_filter(sources_assignment_filter) 460 set_sources_assignment_filter(sources_assignment_filter)
486 461
487 sources -= [ "disk_cache/blockfile/file_posix.cc" ] 462 sources -= [ "disk_cache/blockfile/file_posix.cc" ]
488 libs = [ 463 libs = [
489 "CFNetwork.framework", 464 "CFNetwork.framework",
490 "MobileCoreServices.framework", 465 "MobileCoreServices.framework",
491 "Security.framework", 466 "Security.framework",
492 "SystemConfiguration.framework", 467 "SystemConfiguration.framework",
493 "resolv", 468 "resolv",
(...skipping 912 matching lines...) Expand 10 before | Expand all | Expand 10 after
1406 "quic/quic_server_bin.cc", 1381 "quic/quic_server_bin.cc",
1407 ] 1382 ]
1408 deps = [ 1383 deps = [
1409 ":quic_tools", 1384 ":quic_tools",
1410 ":net", 1385 ":net",
1411 "//base", 1386 "//base",
1412 "//third_party/boringssl", 1387 "//third_party/boringssl",
1413 ] 1388 ]
1414 } 1389 }
1415 } # !is_android && !is_win && !is_mac 1390 } # !is_android && !is_win && !is_mac
OLDNEW

Powered by Google App Engine
This is Rietveld 408576698