1 # Copyright (c) 2012 The Chromium Authors. All rights reserved.
2 # Use of this source code is governed by a BSD-style license that can be
3 # found in the LICENSE file.
14 'target_name': 'crypto',
15 'type': '<(component)',
16 'product_name': 'crcrypto', # Avoid colliding with OpenSSL's libcrypto
18 '../base/base.gyp:base',
19 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
22 'CRYPTO_IMPLEMENTATION',
25 [ 'os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
27 '../build/linux/system.gyp:ssl',
29 'export_dependent_settings': [
30 '../build/linux/system.gyp:ssl',
34 'sources/': [ ['include', '_chromeos\\.cc$'] ]
38 }, { # os_posix != 1 or OS == "mac" or OS == "ios" or OS == "android"
41 'symmetric_key_win.cc',
44 [ 'OS != "mac" and OS != "ios"', {
47 'mock_apple_keychain.cc',
48 'mock_apple_keychain.h',
51 [ 'OS == "android"', {
53 '../build/android/ndk.gyp:cpu_features',
59 '-L/usr/local/lib -lexecinfo',
67 '$(SDKROOT)/System/Library/Frameworks/Security.framework',
74 'mac_security_services_lock.cc',
75 'mac_security_services_lock.h',
78 [ 'use_openssl == 0 and (OS == "mac" or OS == "ios" or OS == "win")', {
80 '../third_party/nss/nss.gyp:nspr',
81 '../third_party/nss/nss.gyp:nss',
83 'export_dependent_settings': [
84 '../third_party/nss/nss.gyp:nspr',
85 '../third_party/nss/nss.gyp:nss',
95 'msvs_disabled_warnings': [
96 4267, # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
101 '../third_party/boringssl/boringssl.gyp:boringssl',
103 # TODO(joth): Use a glob to match exclude patterns once the
104 # OpenSSL file set is complete.
106 'aes_128_gcm_helpers_nss.cc',
107 'aes_128_gcm_helpers_nss.h',
108 'ec_private_key_nss.cc',
109 'ec_signature_creator_nss.cc',
112 'rsa_private_key_nss.cc',
113 'secure_hash_default.cc',
114 'signature_creator_nss.cc',
115 'signature_verifier_nss.cc',
116 'symmetric_key_nss.cc',
117 'third_party/nss/chromium-blapi.h',
118 'third_party/nss/chromium-blapit.h',
119 'third_party/nss/chromium-nss.h',
120 'third_party/nss/chromium-prtypes.h',
121 'third_party/nss/chromium-sha256.h',
122 'third_party/nss/pk11akey.cc',
123 'third_party/nss/rsawrapr.c',
124 'third_party/nss/secsign.cc',
125 'third_party/nss/sha512.cc',
131 'ec_private_key_openssl.cc',
132 'ec_signature_creator_openssl.cc',
133 'encryptor_openssl.cc',
135 'openssl_bio_string.cc',
136 'openssl_bio_string.h',
139 'rsa_private_key_openssl.cc',
140 'secure_hash_openssl.cc',
141 'signature_creator_openssl.cc',
142 'signature_verifier_openssl.cc',
143 'symmetric_key_openssl.cc',
146 [ 'use_openssl==1 and use_nss_certs==0', {
147 # Some files are built when NSS is used at all, either for the
148 # internal crypto library or the platform certificate library.
154 'nss_util_internal.h',
159 '<@(crypto_sources)',
163 'target_name': 'crypto_unittests',
164 'type': 'executable',
166 'aead_openssl_unittest.cc',
167 'aes_128_gcm_helpers_nss_unittest.cc',
168 'curve25519_unittest.cc',
169 'ec_private_key_unittest.cc',
170 'ec_signature_creator_unittest.cc',
171 'encryptor_unittest.cc',
175 'nss_key_util_unittest.cc',
176 'nss_util_unittest.cc',
177 'openssl_bio_string_unittest.cc',
179 'p224_spake_unittest.cc',
180 'random_unittest.cc',
181 'rsa_private_key_unittest.cc',
182 'secure_hash_unittest.cc',
184 'signature_creator_unittest.cc',
185 'signature_verifier_unittest.cc',
186 'symmetric_key_unittest.cc',
190 'crypto_test_support',
191 '../base/base.gyp:base',
192 '../base/base.gyp:run_all_unittests',
193 '../base/base.gyp:test_support_base',
194 '../testing/gmock.gyp:gmock',
195 '../testing/gtest.gyp:gtest',
198 [ 'use_nss_certs == 1', {
200 [ 'use_allocator!="none"', {
202 '../base/allocator/allocator.gyp:allocator',
208 '../build/linux/system.gyp:ssl',
211 [ 'use_openssl == 1 and use_nss_certs == 0', {
212 # Some files are built when NSS is used at all, either for the
213 # internal crypto library or the platform certificate library.
215 'nss_key_util_unittest.cc',
216 'nss_util_unittest.cc',
219 [ 'use_openssl == 0 and (OS == "mac" or OS == "ios" or OS == "win")', {
221 '../third_party/nss/nss.gyp:nspr',
225 # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
226 'msvs_disabled_warnings': [4267, ],
228 [ 'use_openssl==1', {
230 '../third_party/boringssl/boringssl.gyp:boringssl',
233 'aes_128_gcm_helpers_nss_unittest.cc',
237 'openssl_bio_string_unittest.cc',
244 ['OS == "win" and target_arch=="ia32"', {
247 'target_name': 'crypto_nacl_win64',
248 # We do not want nacl_helper to depend on NSS because this would
249 # require including a 64-bit copy of NSS. Thus, use the native APIs
251 'type': '<(component)',
253 '../base/base.gyp:base_win64',
254 '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
257 '<@(nacl_win64_sources)',
260 'CRYPTO_IMPLEMENTATION',
261 '<@(nacl_win64_defines)',
265 'msvs_target_platform': 'x64',
271 ['use_nss_certs==1', {
274 'target_name': 'crypto_test_support',
275 'type': 'static_library',
277 '../base/base.gyp:base',
281 'scoped_test_nss_db.cc',
282 'scoped_test_nss_db.h',
283 'scoped_test_nss_chromeos_user.cc',
284 'scoped_test_nss_chromeos_user.h',
285 'scoped_test_system_nss_key_slot.cc',
286 'scoped_test_system_nss_key_slot.h',
289 ['use_nss_certs==0', {
291 'scoped_test_nss_db.cc',
292 'scoped_test_nss_db.h',
297 'scoped_test_nss_chromeos_user.cc',
298 'scoped_test_nss_chromeos_user.h',
299 'scoped_test_system_nss_key_slot.cc',
300 'scoped_test_system_nss_key_slot.h',
305 ]}, { # use_nss_certs==0
308 'target_name': 'crypto_test_support',
313 ['test_isolation_mode != "noop"', {
316 'target_name': 'crypto_unittests_run',
322 '../build/isolate.gypi',
325 'crypto_unittests.isolate',