summaryrefslogtreecommitdiffstats
path: root/security/nss/lib/freebl/freebl_base.gypi
diff options
context:
space:
mode:
Diffstat (limited to 'security/nss/lib/freebl/freebl_base.gypi')
-rw-r--r--security/nss/lib/freebl/freebl_base.gypi249
1 files changed, 249 insertions, 0 deletions
diff --git a/security/nss/lib/freebl/freebl_base.gypi b/security/nss/lib/freebl/freebl_base.gypi
new file mode 100644
index 0000000000..8ef46da630
--- /dev/null
+++ b/security/nss/lib/freebl/freebl_base.gypi
@@ -0,0 +1,249 @@
+# This Source Code Form is subject to the terms of the Mozilla Public
+# License, v. 2.0. If a copy of the MPL was not distributed with this
+# file, You can obtain one at http://mozilla.org/MPL/2.0/.
+{
+ 'sources': [
+ 'aeskeywrap.c',
+ 'cmac.c',
+ 'alghmac.c',
+ 'arcfive.c',
+ 'arcfour.c',
+ 'blake2b.c',
+ 'camellia.c',
+ 'chacha20poly1305.c',
+ 'crypto_primitives.c',
+ 'ctr.c',
+ 'cts.c',
+ 'des.c',
+ 'desblapi.c',
+ 'dh.c',
+ 'drbg.c',
+ 'dsa.c',
+ 'ec.c',
+ 'ecdecode.c',
+ 'ecl/ec_naf.c',
+ 'ecl/ecl.c',
+ 'ecl/ecl_gf.c',
+ 'ecl/ecl_mult.c',
+ 'ecl/ecp_25519.c',
+ 'ecl/ecp_256.c',
+ 'ecl/ecp_256_32.c',
+ 'ecl/ecp_384.c',
+ 'ecl/ecp_521.c',
+ 'ecl/ecp_aff.c',
+ 'ecl/ecp_jac.c',
+ 'ecl/ecp_jm.c',
+ 'ecl/ecp_mont.c',
+ 'ecl/ecp_secp256r1.c',
+ 'ecl/ecp_secp384r1.c',
+ 'ecl/ecp_secp384r1_wrap.c',
+ 'ecl/ecp_secp521r1.c',
+ 'ecl/ecp_secp521r1_wrap.c',
+ 'verified/Hacl_P256.c',
+ 'verified/Hacl_P384.c',
+ 'verified/Hacl_P521.c',
+ 'fipsfreebl.c',
+ 'blinit.c',
+ 'freeblver.c',
+ 'gcm.c',
+ 'hmacct.c',
+ 'jpake.c',
+ 'kyber.c',
+ 'kyber-pqcrystals-ref.c',
+ 'ldvector.c',
+ 'md2.c',
+ 'md5.c',
+ 'mpi/mp_gf2m.c',
+ 'mpi/mpcpucache.c',
+ 'mpi/mpi.c',
+ 'mpi/mplogic.c',
+ 'mpi/mpmontg.c',
+ 'mpi/mpprime.c',
+ 'pqg.c',
+ 'rawhash.c',
+ 'rijndael.c',
+ 'rsa.c',
+ 'rsa_blind.c',
+ 'rsapkcs.c',
+ 'sha_fast.c',
+ 'shvfy.c',
+ 'sysrand.c',
+ 'tlsprfalg.c',
+ 'secmpi.c',
+ 'verified/Hacl_Hash_SHA3.c',
+ 'sha3.c',
+ 'shake.c',
+ ],
+ 'defines': [
+ # For kyber-pqcrystals-ref.c. If we ever decide to support Kyber512 or
+ # Kyber1024, we'll need to build separate static libraries with different
+ # values of KYBER_K.
+ 'KYBER_K=3',
+ ],
+ 'conditions': [
+ [ 'OS=="linux" or OS=="android"', {
+ 'conditions': [
+ [ 'target_arch=="x64"', {
+ 'sources': [
+ 'arcfour-amd64-gas.s',
+ 'mpi/mpi_amd64.c',
+ 'mpi/mpi_amd64_common.S',
+ 'mpi/mp_comba.c',
+ ],
+ 'conditions': [
+ [ 'cc_is_clang==1 and fuzz!=1 and coverage!=1 and force_integrated_as!=1', {
+ 'cflags': [
+ '-no-integrated-as',
+ ],
+ 'cflags_mozilla': [
+ '-no-integrated-as',
+ ],
+ 'asflags_mozilla': [
+ '-no-integrated-as',
+ ],
+ }],
+ ],
+ }],
+ [ 'target_arch=="ia32"', {
+ 'sources': [
+ 'mpi/mpi_x86.s',
+ ],
+ }],
+ [ 'target_arch=="arm"', {
+ 'sources': [
+ 'mpi/mpi_arm.c',
+ ],
+ }],
+ [ 'target_arch=="ppc64le"', {
+ 'sources': [
+ 'chacha20poly1305-ppc.c',
+ 'chacha20-ppc64le.S',
+ ],
+ }]
+ ],
+ }],
+ [ 'OS=="win"', {
+ 'libraries': [
+ '-ladvapi32',
+ ],
+ 'conditions': [
+ [ 'cc_use_gnu_ld!=1 and target_arch=="x64"', {
+ 'sources': [
+ 'arcfour-amd64-masm.asm',
+ 'mpi/mpi_amd64.c',
+ 'mpi/mpi_amd64_masm.asm',
+ 'mpi/mp_comba_amd64_masm.asm',
+ 'intel-aes-x64-masm.asm',
+ 'intel-gcm-x64-masm.asm',
+ ],
+ }],
+ [ 'cc_use_gnu_ld!=1 and target_arch=="ia32"', {
+ 'sources': [
+ 'mpi/mpi_x86_asm.c',
+ 'intel-aes-x86-masm.asm',
+ 'intel-gcm-x86-masm.asm',
+ ],
+ }],
+ [ 'cc_use_gnu_ld==1', {
+ # mingw
+ 'sources': [
+ ],
+ }],
+ [ 'cc_is_clang!=1', {
+ # MSVC
+ 'sources': [
+ 'intel-gcm-wrap.c',
+ ],
+ }],
+ ],
+ }],
+ ['have_int128_support==1', {
+ 'sources': [
+ # All intel x64 and 64-bit ARM architectures get the 64 bit version.
+ 'ecl/curve25519_64.c',
+ 'verified/Hacl_Curve25519_51.c',
+ ],
+ }, {
+ 'sources': [
+ # All other architectures get the generic 32 bit implementation.
+ 'ecl/curve25519_32.c',
+ ],
+ }],
+ ['(target_arch!="ppc64" and target_arch!="ppc64le") or disable_altivec==1', {
+ 'sources': [
+ # Gyp does not support per-file cflags, so working around like this.
+ # ppc performance greatly benefits from specific flags.
+ 'sha512.c',
+ ],
+ }],
+ [ 'disable_chachapoly==0', {
+ # The ChaCha20 code is linked in through the static ssse3-crypto lib on
+ # all platforms that support SSSE3. There are runtime checks in place to
+ # choose the correct ChaCha implementation at runtime.
+ 'sources': [
+ 'verified/Hacl_Chacha20.c',
+ 'verified/Hacl_Chacha20Poly1305_32.c',
+ 'verified/Hacl_Poly1305_32.c',
+ ],
+ }],
+ [ 'disable_deprecated_seed==0', {
+ 'sources': [
+ 'deprecated/seed.c',
+ ],
+ }],
+ [ 'disable_deprecated_rc2==0', {
+ 'sources': [
+ 'deprecated/alg2268.c',
+ ],
+ }],
+ [ 'fuzz==1', {
+ 'sources!': [ 'drbg.c' ],
+ 'sources': [ 'det_rng.c' ],
+ }],
+ [ 'fuzz_tls==1', {
+ 'defines': [
+ 'UNSAFE_FUZZER_MODE',
+ ],
+ }],
+ [ 'ct_verif==1', {
+ 'defines': [
+ 'CT_VERIF',
+ ],
+ }],
+ [ 'only_dev_random==1', {
+ 'defines': [
+ 'SEED_ONLY_DEV_URANDOM',
+ ]
+ }],
+ [ 'OS=="mac"', {
+ 'conditions': [
+ [ 'target_arch=="ia32"', {
+ 'sources': [
+ 'mpi/mpi_sse2.s',
+ ],
+ 'defines': [
+ 'MP_USE_UINT_DIGIT',
+ 'MP_ASSEMBLY_MULTIPLY',
+ 'MP_ASSEMBLY_SQUARE',
+ 'MP_ASSEMBLY_DIV_2DX1D',
+ ],
+ }, 'target_arch=="x64"', {
+ 'sources': [
+ 'mpi/mpi_amd64.c',
+ 'mpi/mpi_amd64_common.S',
+ 'mpi/mp_comba.c',
+ ],
+ 'defines': [
+ 'MP_IS_LITTLE_ENDIAN',
+ 'MPI_AMD64',
+ 'MP_ASSEMBLY_MULTIPLY',
+ 'NSS_USE_COMBA',
+ ],
+ }],
+ ],
+ }],
+ ],
+ 'ldflags': [
+ '-Wl,-Bsymbolic'
+ ],
+}