Lines Matching +full:- +full:- +full:disable +full:- +full:dict
1 #!/bin/bash -eu
8 # http://www.apache.org/licenses/LICENSE-2.0
19 # https://github.com/google/oss-fuzz/issues/2336
23 if [[ $CFLAGS != *sanitize=memory* && $CFLAGS != *-m32* ]]
26 # It is required for building noble-bls12-381
28 tar Jxf node-v14.17.1-linux-x64.tar.xz
29 export PATH="$PATH:$SRC/node-v14.17.1-linux-x64/bin/"
33 $CC $SRC/xxd.c -o /usr/bin/xxd
36 rm -rf $SRC/cryptofuzz/modules/reference/xxHash/
37 cp -R $SRC/xxHash/ $SRC/cryptofuzz/modules/reference/
45 cp -R boost/ /usr/include/
59 # This enables runtime checks for C++-specific undefined behaviour.
60 export CXXFLAGS="$CXXFLAGS -D_GLIBCXX_DEBUG"
62 export CXXFLAGS="$CXXFLAGS -I $SRC/cryptofuzz/fuzzing-headers/include"
65 export CXXFLAGS="$CXXFLAGS -DMSAN"
68 if [[ $CFLAGS != *sanitize=memory* && $CFLAGS != *-m32* ]]
70 # Compile libfuzzer-js (required for all JavaScript libraries)
72 cd $SRC/libfuzzer-js/
79 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BN_JS"
85 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BIGNUMBER_JS"
89 export CRYPTO_JS_PATH="$SRC/crypto-js/"
90 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_CRYPTO_JS"
91 cd $SRC/cryptofuzz/modules/crypto-js/
96 #if [[ $CFLAGS != *-m32* ]]
98 # mkdir $SRC/nss-nspr
99 # mv $SRC/nss $SRC/nss-nspr/
100 # mv $SRC/nspr $SRC/nss-nspr/
101 # cd $SRC/nss-nspr/
103 # CXX="$CXX -stdlib=libc++" LDFLAGS="$CFLAGS" nss/build.sh --enable-fips --static --disable-test…
105 # export NSS_NSPR_PATH=$(realpath $SRC/nss-nspr/)
106 # export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NSS"
107 # export LINK_FLAGS="$LINK_FLAGS -lsqlite3"
111 # make -B
119 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_MONOCYPHER"
123 make -B
126 cd $SRC/trezor-firmware/crypto
127 sed -i "s/\<blake2b_\([A-Za-z_]\)/trezor_blake2b_\1/g" *.c *.h
128 sed -i 's/\<blake2b(/trezor_blake2b(/g' *.c *.h
131 export TREZOR_FIRMWARE_PATH=$(realpath $SRC/trezor-firmware)
132 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_TREZOR_FIRMWARE"
134 make -B
140 make -j$(nproc)
141 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBTOMCRYPT"
147 make -B
152 ## Patch to disable assembly
154 ## https://github.com/google/oss-fuzz/issues/5914
163 #CFLAGS="$CFLAGS -D__BLST_NO_ASM__ -D__BLST_PORTABLE__" ./build.sh
166 #export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BLST"
170 #make -B -j$(nproc)
174 autoreconf -ivf
175 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_SECP256K1"
178 …--enable-static --disable-tests --disable-benchmark --disable-exhaustive-tests --enable-module-rec…
180 …--enable-static --disable-tests --disable-benchmark --disable-exhaustive-tests --enable-module-rec…
188 make -B -j$(nproc)
190 if [[ $CFLAGS != *sanitize=memory* && $CFLAGS != *-m32* ]]
192 # noble-secp256k1
193 cd $SRC/cryptofuzz/modules/noble-secp256k1/
194 export NOBLE_SECP256K1_PATH="$SRC/noble-secp256k1/index.js"
195 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NOBLE_SECP256K1"
196 make -B
198 # noble-bls12-381
199 cd $SRC/noble-bls12-381/
201 $(awk '/^export/ {print "tail -n +"FNR+1" index.ts"; exit}' index.ts) >>new_index.ts
205 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NOBLE_BLS12_381"
206 cd $SRC/cryptofuzz/modules/noble-bls12-381/
207 make -B
209 # noble-ed25519
210 cd $SRC/cryptofuzz/modules/noble-ed25519/
211 export NOBLE_ED25519_PATH="$SRC/noble-ed25519/index.js"
212 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NOBLE_ED25519"
213 make -B
218 #if [[ $CFLAGS != *sanitize=array-bounds* ]]
221 # sed -i "s/^add_subdirectory(unittest)$//g" CMakeLists.txt
226 # make -j$(nproc)
228 # export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_SYMCRYPT"
235 # make -B
242 autoreconf -ivf
243 if [[ $CFLAGS != *-m32* ]]
245 ./configure --enable-maintainer-mode
247 setarch i386 ./configure --enable-maintainer-mode
249 make -j$(nproc)
250 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBGMP"
255 make -B
260 tar zxf mpdecimal-2.5.1.tar.gz
261 cd mpdecimal-2.5.1/
264 make libmpdec.a -j$(nproc)
266 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_MPDECIMAL"
271 make -B
275 if [[ $CFLAGS != *-m32* ]]
277 CXXFLAGS="$CXXFLAGS -msse4.2" ./configure --disable-shared >/dev/null 2>&1
279 ./configure --disable-shared >/dev/null 2>&1
281 make -j$(nproc) >/dev/null 2>&1
283 export CXXFLAGS="$CXXFLAGS -I$SRC/cityhash/src"
291 make libcryptopp.a -j$(nproc) >/dev/null 2>&1
293 export CXXFLAGS="$CXXFLAGS -DCRYPTOPP_DISABLE_ASM=1"
294 make libcryptopp.a -j$(nproc) >/dev/null 2>&1
297 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_CRYPTOPP"
303 make -B
322 cmake .. -DENABLE_PROGRAMS=0 -DENABLE_TESTING=0
323 make -j$(nproc) >/dev/null 2>&1
326 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_MBEDTLS"
329 make -B
334 if [[ $CFLAGS != *-m32* ]]
336 …configure.py --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=locking_a…
338 …re.py --cpu=x86_32 --cc-bin=$CXX --cc-abi-flags="$CXXFLAGS" --disable-shared --disable-modules=loc…
340 make -j$(nproc)
342 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BOTAN"
343 export LIBBOTAN_A_PATH="$SRC/botan/libbotan-3.a"
348 make -B
353 # Compile libgpg-error (dependency of libgcrypt)
355 tar jxvf libgpg-error-1.36.tar.bz2
356 cd libgpg-error-1.36/
357 if [[ $CFLAGS != *-m32* ]]
359 ./configure --enable-static
361 ./configure --enable-static --host=i386
363 make -j$(nproc) >/dev/null 2>&1
365 export LINK_FLAGS="$LINK_FLAGS $SRC/libgpg-error-1.36/src/.libs/libgpg-error.a"
369 autoreconf -ivf
370 if [[ $CFLAGS = *-m32* ]]
372 ./configure --enable-static --disable-doc --host=i386
374 ./configure --enable-static --disable-doc
376 make -j$(nproc) >/dev/null 2>&1
378 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBGCRYPT"
384 make -B
389 autoreconf -ivf
394 ./configure --disable-asm
396 make -j$(nproc) >/dev/null 2>&1
398 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBSODIUM"
404 make -B
406 if [[ $CFLAGS != *sanitize=memory* && $CFLAGS != *-m32* ]]
410 make -C portable -j$(nproc) libevercrypt.a >/dev/null 2>&1
411 make -C kremlin/kremlib/dist/minimal -j$(nproc) >/dev/null 2>&1
413 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_EVERCRYPT"
418 …export INCLUDE_PATH_FLAGS="$INCLUDE_PATH_FLAGS -I $EVERCRYPT_INCLUDE_PATH -I $KREMLIN_INCLUDE_PATH"
422 make -B
427 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_REFERENCE"
429 make -B
433 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_VERACRYPT"
435 make -B
439 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_MONERO"
441 make -B
447 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_GOLANG"
449 make -B
452 #if [[ $CFLAGS != *-m32* ]]
454 # # Compile Cryptofuzz (NSS-based)
456 …R_LINK="$LIB_FUZZING_ENGINE" CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_NO_OPENSSL $INCLUDE_PATH_FLAGS" make…
462 # cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz-nss
464 # cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-nss.dict
466 # cp $SRC/cryptofuzz-corpora/libressl_latest.zip $OUT/cryptofuzz-nss_seed_corpus.zip
470 # CXXFLAGS=${CXXFLAGS//"-DCRYPTOFUZZ_NSS"/}
471 # LINK_FLAGS=${LINK_FLAGS//"-lsqlite3"/}
479 # So, now that NSS-based Cryptofuzz has been compiled, remove libtomcrypt
480 export CXXFLAGS=${CXXFLAGS/-DCRYPTOFUZZ_LIBTOMCRYPT/}
481 rm -rf "$LIBTOMCRYPT_A_PATH"
488 …="$CFLAGS -DHAVE_AES_ECB -DWOLFSSL_DES_ECB -DHAVE_ECC_SECPR2 -DHAVE_ECC_SECPR3 -DHAVE_ECC_BRAINPOO…
489 autoreconf -ivf
491 …--enable-static --enable-md2 --enable-md4 --enable-ripemd --enable-blake2 --enable-blake2s --enabl…
495 export WOLFCRYPT_CONFIGURE_PARAMS="$WOLFCRYPT_CONFIGURE_PARAMS -disable-asm"
498 if [[ $CFLAGS = *-m32* ]]
500 export WOLFCRYPT_CONFIGURE_PARAMS="$WOLFCRYPT_CONFIGURE_PARAMS -disable-fastmath"
504 make -j$(nproc) >/dev/null 2>&1
506 export CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_WOLFCRYPT"
512 make -B
520 rm -rf build ; mkdir build
522 if [[ $CFLAGS != *-m32* ]]
524 …cmake -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLA…
526 …setarch i386 cmake -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_CXX_FLAGS="$CXXFLAGS" …
528 make -j$(nproc) crypto >/dev/null 2>&1
532 …_A_PATH="$SRC/libressl/build/crypto/libcrypto.a" CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBRESSL" make -B
536 …B_FUZZING_ENGINE" CXXFLAGS="$CXXFLAGS -I $SRC/libressl/include -DCRYPTOFUZZ_LIBRESSL $INCLUDE_PATH…
542 cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz-libressl
544 cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-libressl.dict
546 cp $SRC/cryptofuzz-corpora/libressl_latest.zip $OUT/cryptofuzz-libressl_seed_corpus.zip
549 if [[ $CFLAGS != *-m32* ]]
553 rm -rf build ; mkdir build
555 …cmake -DCMAKE_C_COMPILER=$CC -DCMAKE_CXX_COMPILER=$CXX -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLA…
556 make -j$(nproc) crypto >/dev/null 2>&1
560 …_A_PATH="$SRC/libressl/build/crypto/libcrypto.a" CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_LIBRESSL" make -B
564 …B_FUZZING_ENGINE" CXXFLAGS="$CXXFLAGS -I $SRC/libressl/include -DCRYPTOFUZZ_LIBRESSL $INCLUDE_PATH…
570 cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz-libressl-noasm
572 cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-libressl-noasm.dict
574 cp $SRC/cryptofuzz-corpora/libressl_latest.zip $OUT/cryptofuzz-libressl-noasm_seed_corpus.zip
579 export CXXFLAGS=${CXXFLAGS/-DCRYPTOFUZZ_WOLFCRYPT/}
586 if [[ $CFLAGS != *-m32* ]]
588 ./config --debug enable-md2 enable-rc5
590 setarch i386 ./config --debug enable-md2 enable-rc5
592 make -j$(nproc) >/dev/null 2>&1
596 …SSL_INCLUDE_PATH="$SRC/openssl/include" OPENSSL_LIBCRYPTO_A_PATH="$SRC/openssl/libcrypto.a" make -B
600 …R_LINK="$LIB_FUZZING_ENGINE" CXXFLAGS="$CXXFLAGS -I $SRC/openssl/include $INCLUDE_PATH_FLAGS" make…
606 cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz-openssl
608 cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-openssl.dict
610 cp $SRC/cryptofuzz-corpora/openssl_latest.zip $OUT/cryptofuzz-openssl_seed_corpus.zip
616 if [[ $CFLAGS != *-m32* ]]
618 ./config --debug no-asm enable-md2 enable-rc5
620 setarch i386 ./config --debug no-asm enable-md2 enable-rc5
623 make -j$(nproc) >/dev/null 2>&1
627 …SSL_INCLUDE_PATH="$SRC/openssl/include" OPENSSL_LIBCRYPTO_A_PATH="$SRC/openssl/libcrypto.a" make -B
631 …R_LINK="$LIB_FUZZING_ENGINE" CXXFLAGS="$CXXFLAGS -I $SRC/openssl/include $INCLUDE_PATH_FLAGS" make…
637 cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz-openssl-noasm
639 cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-openssl-noasm.dict
641 cp $SRC/cryptofuzz-corpora/openssl_latest.zip $OUT/cryptofuzz-openssl-noasm_seed_corpus.zip
650 rm -rf build ; mkdir build
652 if [[ $CFLAGS = *-m32* ]]
654 …setarch i386 cmake -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLAGS="$CFLAGS" -DBORINGSSL_ALLOW_CXX_R…
656 … cmake -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLAGS="$CFLAGS" -DBORINGSSL_ALLOW_CXX_RUNTIME=1 ..
658 make -j$(nproc) crypto >/dev/null 2>&1
662 …_PATH="$SRC/boringssl/build/crypto/libcrypto.a" CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BORINGSSL" make -B
666 …R_LINK="$LIB_FUZZING_ENGINE" CXXFLAGS="$CXXFLAGS -I $SRC/openssl/include $INCLUDE_PATH_FLAGS" make…
672 cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz-boringssl
674 cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-boringssl.dict
676 cp $SRC/cryptofuzz-corpora/boringssl_latest.zip $OUT/cryptofuzz-boringssl_seed_corpus.zip
682 rm -rf build ; mkdir build
684 cmake -DCMAKE_CXX_FLAGS="$CXXFLAGS" -DCMAKE_C_FLAGS="$CFLAGS" -DBORINGSSL_ALLOW_CXX_RUNTIME=1 -DOPE…
685 make -j$(nproc) crypto >/dev/null 2>&1
689 …_PATH="$SRC/boringssl/build/crypto/libcrypto.a" CXXFLAGS="$CXXFLAGS -DCRYPTOFUZZ_BORINGSSL" make -B
693 …R_LINK="$LIB_FUZZING_ENGINE" CXXFLAGS="$CXXFLAGS -I $SRC/openssl/include $INCLUDE_PATH_FLAGS" make…
699 cp $SRC/cryptofuzz/cryptofuzz $OUT/cryptofuzz-boringssl-noasm
701 cp $SRC/cryptofuzz/cryptofuzz-dict.txt $OUT/cryptofuzz-boringssl-noasm.dict
703 cp $SRC/cryptofuzz-corpora/boringssl_latest.zip $OUT/cryptofuzz-boringssl-noasm_seed_corpus.zip