Home | History | Annotate | Download | only in crypto
      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.
      4 
      5 {
      6   'variables': {
      7     'chromium_code': 1,
      8   },
      9   'includes': [
     10     'crypto.gypi',
     11   ],
     12   'targets': [
     13     {
     14       'target_name': 'crypto',
     15       'type': '<(component)',
     16       'product_name': 'crcrypto',  # Avoid colliding with OpenSSL's libcrypto
     17       'dependencies': [
     18         '../base/base.gyp:base',
     19         '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations',
     20       ],
     21       'defines': [
     22         'CRYPTO_IMPLEMENTATION',
     23       ],
     24       'msvs_disabled_warnings': [
     25         4018,
     26       ],
     27       'conditions': [
     28         [ 'os_posix == 1 and OS != "mac" and OS != "ios" and OS != "android"', {
     29           'dependencies': [
     30             '../build/linux/system.gyp:ssl',
     31           ],
     32           'export_dependent_settings': [
     33             '../build/linux/system.gyp:ssl',
     34           ],
     35           'conditions': [
     36             [ 'chromeos==1', {
     37                 'sources/': [ ['include', '_chromeos\\.cc$'] ]
     38               },
     39             ],
     40           ],
     41         }, {  # os_posix != 1 or OS == "mac" or OS == "ios" or OS == "android"
     42             'sources!': [
     43               'hmac_win.cc',
     44               'symmetric_key_win.cc',
     45             ],
     46         }],
     47         [ 'OS != "mac" and OS != "ios"', {
     48           'sources!': [
     49             'apple_keychain.h',
     50             'mock_apple_keychain.cc',
     51             'mock_apple_keychain.h',
     52           ],
     53         }],
     54         [ 'OS == "android"', {
     55             'includes': [
     56               '../build/android/cpufeatures.gypi',
     57             ],
     58         }],
     59         [ 'os_bsd==1', {
     60           'link_settings': {
     61             'libraries': [
     62               '-L/usr/local/lib -lexecinfo',
     63               ],
     64             },
     65           },
     66         ],
     67         [ 'OS == "mac"', {
     68           'link_settings': {
     69             'libraries': [
     70               '$(SDKROOT)/System/Library/Frameworks/Security.framework',
     71             ],
     72           },
     73         }, {  # OS != "mac"
     74           'sources!': [
     75             'cssm_init.cc',
     76             'cssm_init.h',
     77             'mac_security_services_lock.cc',
     78             'mac_security_services_lock.h',
     79           ],
     80         }],
     81         [ 'use_openssl == 0 and (OS == "mac" or OS == "ios" or OS == "win")', {
     82           'dependencies': [
     83             '../third_party/nss/nss.gyp:nspr',
     84             '../third_party/nss/nss.gyp:nss',
     85           ],
     86           'export_dependent_settings': [
     87             '../third_party/nss/nss.gyp:nspr',
     88             '../third_party/nss/nss.gyp:nss',
     89           ],
     90         }],
     91         [ 'OS != "win"', {
     92           'sources!': [
     93             'capi_util.h',
     94             'capi_util.cc',
     95           ],
     96         }],
     97         [ 'OS == "win"', {
     98           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
     99           'msvs_disabled_warnings': [4267, ],
    100         }],
    101         [ 'use_openssl==1', {
    102             'dependencies': [
    103               '../third_party/openssl/openssl.gyp:openssl',
    104             ],
    105             # TODO(joth): Use a glob to match exclude patterns once the
    106             #             OpenSSL file set is complete.
    107             'sources!': [
    108               'ec_private_key_nss.cc',
    109               'ec_signature_creator_nss.cc',
    110               'encryptor_nss.cc',
    111               'hmac_nss.cc',
    112               'nss_util.cc',
    113               'nss_util.h',
    114               'rsa_private_key_nss.cc',
    115               'secure_hash_default.cc',
    116               'signature_creator_nss.cc',
    117               'signature_verifier_nss.cc',
    118               'symmetric_key_nss.cc',
    119               'third_party/nss/chromium-blapi.h',
    120               'third_party/nss/chromium-blapit.h',
    121               'third_party/nss/chromium-nss.h',
    122               'third_party/nss/chromium-prtypes.h',
    123               'third_party/nss/chromium-sha256.h',
    124               'third_party/nss/pk11akey.cc',
    125               'third_party/nss/rsawrapr.c',
    126               'third_party/nss/secsign.cc',
    127               'third_party/nss/sha512.cc',
    128             ],
    129           }, {
    130             'sources!': [
    131               'ec_private_key_openssl.cc',
    132               'ec_signature_creator_openssl.cc',
    133               'encryptor_openssl.cc',
    134               'hmac_openssl.cc',
    135               'openssl_bio_string.cc',
    136               'openssl_bio_string.h',
    137               'openssl_util.cc',
    138               'openssl_util.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',
    144             ],
    145         },],
    146       ],
    147       'sources': [
    148         '<@(crypto_sources)',
    149       ],
    150     },
    151     {
    152       'target_name': 'crypto_unittests',
    153       'type': 'executable',
    154       'sources': [
    155         'curve25519_unittest.cc',
    156         'ec_private_key_unittest.cc',
    157         'ec_signature_creator_unittest.cc',
    158         'encryptor_unittest.cc',
    159         'ghash_unittest.cc',
    160         'hkdf_unittest.cc',
    161         'hmac_unittest.cc',
    162         'nss_util_unittest.cc',
    163         'openssl_bio_string_unittest.cc',
    164         'p224_unittest.cc',
    165         'p224_spake_unittest.cc',
    166         'random_unittest.cc',
    167         'rsa_private_key_unittest.cc',
    168         'rsa_private_key_nss_unittest.cc',
    169         'secure_hash_unittest.cc',
    170         'sha2_unittest.cc',
    171         'signature_creator_unittest.cc',
    172         'signature_verifier_unittest.cc',
    173         'symmetric_key_unittest.cc',
    174       ],
    175       'dependencies': [
    176         'crypto',
    177         '../base/base.gyp:base',
    178         '../base/base.gyp:run_all_unittests',
    179         '../base/base.gyp:test_support_base',
    180         '../testing/gmock.gyp:gmock',
    181         '../testing/gtest.gyp:gtest',
    182       ],
    183       'conditions': [
    184         [ 'os_posix == 1 and OS != "mac" and OS != "android" and OS != "ios"', {
    185           'conditions': [
    186             [ 'use_allocator!="none"', {
    187                 'dependencies': [
    188                   '../base/allocator/allocator.gyp:allocator',
    189                 ],
    190               },
    191             ],
    192           ],
    193           'dependencies': [
    194             '../build/linux/system.gyp:ssl',
    195           ],
    196         }, {  # os_posix != 1 or OS == "mac" or OS == "android" or OS == "ios"
    197           'sources!': [
    198             'rsa_private_key_nss_unittest.cc',
    199           ]
    200         }],
    201         [ 'use_openssl == 0 and (OS == "mac" or OS == "ios" or OS == "win")', {
    202           'dependencies': [
    203             '../third_party/nss/nss.gyp:nspr',
    204           ],
    205         }],
    206         [ 'OS == "win"', {
    207           # TODO(jschuh): crbug.com/167187 fix size_t to int truncations.
    208           'msvs_disabled_warnings': [4267, ],
    209         }],
    210         [ 'use_openssl==1', {
    211           'dependencies': [
    212             '../third_party/openssl/openssl.gyp:openssl',
    213           ],
    214           'sources!': [
    215             'nss_util_unittest.cc',
    216             'rsa_private_key_nss_unittest.cc',
    217           ],
    218         }, {
    219           'sources!': [
    220             'openssl_bio_string_unittest.cc',
    221           ],
    222         }],
    223       ],
    224     },
    225   ],
    226   'conditions': [
    227     ['OS == "win" and target_arch=="ia32"', {
    228       'targets': [
    229         {
    230           'target_name': 'crypto_nacl_win64',
    231           # We do not want nacl_helper to depend on NSS because this would
    232           # require including a 64-bit copy of NSS. Thus, use the native APIs
    233           # for the helper.
    234           'type': '<(component)',
    235           'dependencies': [
    236             '../base/base.gyp:base_win64',
    237             '../base/third_party/dynamic_annotations/dynamic_annotations.gyp:dynamic_annotations_win64',
    238           ],
    239           'sources': [
    240             '<@(hmac_win64_related_sources)',
    241           ],
    242           'defines': [
    243            'CRYPTO_IMPLEMENTATION',
    244            '<@(nacl_win64_defines)',
    245           ],
    246           'msvs_disabled_warnings': [
    247             4018,
    248           ],
    249           'configurations': {
    250             'Common_Base': {
    251               'msvs_target_platform': 'x64',
    252             },
    253           },
    254         },
    255       ],
    256     }],
    257   ],
    258 }
    259