├── CMakeLists.txt ├── LICENSE ├── README.md ├── corpus ├── brainpoolP256r1000 ├── brainpoolP256r1001 ├── brainpoolP256r1010 ├── brainpoolP256r1011 ├── brainpoolP256r1020 ├── brainpoolP256r1021 ├── brainpoolP256r1030 ├── brainpoolP256r1031 ├── brainpoolP256r1100 ├── brainpoolP256r1101 ├── brainpoolP256r1110 ├── brainpoolP256r1111 ├── brainpoolP256r1120 ├── brainpoolP256r1121 ├── brainpoolP256r1130 ├── brainpoolP256r1131 ├── brainpoolP256r1200 ├── brainpoolP256r1201 ├── brainpoolP256r1210 ├── brainpoolP256r1211 ├── brainpoolP256r1220 ├── brainpoolP256r1221 ├── brainpoolP256r1230 ├── brainpoolP256r1231 ├── brainpoolP256r1300 ├── brainpoolP256r1301 ├── brainpoolP256r1310 ├── brainpoolP256r1311 ├── brainpoolP256r1320 ├── brainpoolP256r1321 ├── brainpoolP256r1330 ├── brainpoolP256r1331 ├── brainpoolP256r1minus0 ├── brainpoolP256r1minus1 ├── brainpoolP256r1minus2 ├── brainpoolP256r1minus3 ├── brainpoolP256r1minus4 ├── brainpoolP256r1minus5 ├── brainpoolP256r1minus6 ├── brainpoolP256r1minus7 ├── brainpoolP256r1minus8 ├── brainpoolP256r1minus9 ├── brainpoolP256r1random0 ├── brainpoolP256r1random1 ├── brainpoolP256r1random2 ├── brainpoolP256r1random3 ├── brainpoolP256r1random4 ├── brainpoolP256r1random5 ├── brainpoolP256r1random6 ├── brainpoolP256r1random7 ├── brainpoolP256r1random8 ├── brainpoolP256r1random9 ├── brainpoolP384r1000 ├── brainpoolP384r1001 ├── brainpoolP384r1010 ├── brainpoolP384r1011 ├── brainpoolP384r1020 ├── brainpoolP384r1021 ├── brainpoolP384r1030 ├── brainpoolP384r1031 ├── brainpoolP384r1100 ├── brainpoolP384r1101 ├── brainpoolP384r1110 ├── brainpoolP384r1111 ├── brainpoolP384r1120 ├── brainpoolP384r1121 ├── brainpoolP384r1130 ├── brainpoolP384r1131 ├── brainpoolP384r1200 ├── brainpoolP384r1201 ├── brainpoolP384r1210 ├── brainpoolP384r1211 ├── brainpoolP384r1220 ├── brainpoolP384r1221 ├── brainpoolP384r1230 ├── brainpoolP384r1231 ├── brainpoolP384r1300 ├── brainpoolP384r1301 ├── brainpoolP384r1310 ├── brainpoolP384r1311 ├── brainpoolP384r1320 ├── brainpoolP384r1321 ├── brainpoolP384r1330 ├── brainpoolP384r1331 ├── brainpoolP384r1minus0 ├── brainpoolP384r1minus1 ├── brainpoolP384r1minus2 ├── brainpoolP384r1minus3 ├── brainpoolP384r1minus4 ├── brainpoolP384r1minus5 ├── brainpoolP384r1minus6 ├── brainpoolP384r1minus7 ├── brainpoolP384r1minus8 ├── brainpoolP384r1minus9 ├── brainpoolP384r1random0 ├── brainpoolP384r1random1 ├── brainpoolP384r1random2 ├── brainpoolP384r1random3 ├── brainpoolP384r1random4 ├── brainpoolP384r1random5 ├── brainpoolP384r1random6 ├── brainpoolP384r1random7 ├── brainpoolP384r1random8 ├── brainpoolP384r1random9 ├── brainpoolP512r1000 ├── brainpoolP512r1001 ├── brainpoolP512r1010 ├── brainpoolP512r1011 ├── brainpoolP512r1020 ├── brainpoolP512r1021 ├── brainpoolP512r1030 ├── brainpoolP512r1031 ├── brainpoolP512r1100 ├── brainpoolP512r1101 ├── brainpoolP512r1110 ├── brainpoolP512r1111 ├── brainpoolP512r1120 ├── brainpoolP512r1121 ├── brainpoolP512r1130 ├── brainpoolP512r1131 ├── brainpoolP512r1200 ├── brainpoolP512r1201 ├── brainpoolP512r1210 ├── brainpoolP512r1211 ├── brainpoolP512r1220 ├── brainpoolP512r1221 ├── brainpoolP512r1230 ├── brainpoolP512r1231 ├── brainpoolP512r1300 ├── brainpoolP512r1301 ├── brainpoolP512r1310 ├── brainpoolP512r1311 ├── brainpoolP512r1320 ├── brainpoolP512r1321 ├── brainpoolP512r1330 ├── brainpoolP512r1331 ├── brainpoolP512r1minus0 ├── brainpoolP512r1minus1 ├── brainpoolP512r1minus2 ├── brainpoolP512r1minus3 ├── brainpoolP512r1minus4 ├── brainpoolP512r1minus5 ├── brainpoolP512r1minus6 ├── brainpoolP512r1minus7 ├── brainpoolP512r1minus8 ├── brainpoolP512r1minus9 ├── brainpoolP512r1random0 ├── brainpoolP512r1random1 ├── brainpoolP512r1random2 ├── brainpoolP512r1random3 ├── brainpoolP512r1random4 ├── brainpoolP512r1random5 ├── brainpoolP512r1random6 ├── brainpoolP512r1random7 ├── brainpoolP512r1random8 ├── brainpoolP512r1random9 ├── secp192k1000 ├── secp192k1001 ├── secp192k1010 ├── secp192k1011 ├── secp192k1020 ├── secp192k1021 ├── secp192k1030 ├── secp192k1031 ├── secp192k1100 ├── secp192k1101 ├── secp192k1110 ├── secp192k1111 ├── secp192k1120 ├── secp192k1121 ├── secp192k1130 ├── secp192k1131 ├── secp192k1200 ├── secp192k1201 ├── secp192k1210 ├── secp192k1211 ├── secp192k1220 ├── secp192k1221 ├── secp192k1230 ├── secp192k1231 ├── secp192k1300 ├── secp192k1301 ├── secp192k1310 ├── secp192k1311 ├── secp192k1320 ├── secp192k1321 ├── secp192k1330 ├── secp192k1331 ├── secp192k1minus0 ├── secp192k1minus1 ├── secp192k1minus2 ├── secp192k1minus3 ├── secp192k1minus4 ├── secp192k1minus5 ├── secp192k1minus6 ├── secp192k1minus7 ├── secp192k1minus8 ├── secp192k1minus9 ├── secp192k1random0 ├── secp192k1random1 ├── secp192k1random2 ├── secp192k1random3 ├── secp192k1random4 ├── secp192k1random5 ├── secp192k1random6 ├── secp192k1random7 ├── secp192k1random8 ├── secp192k1random9 ├── secp192r1000 ├── secp192r1001 ├── secp192r1010 ├── secp192r1011 ├── secp192r1020 ├── secp192r1021 ├── secp192r1030 ├── secp192r1031 ├── secp192r1100 ├── secp192r1101 ├── secp192r1110 ├── secp192r1111 ├── secp192r1120 ├── secp192r1121 ├── secp192r1130 ├── secp192r1131 ├── secp192r1200 ├── secp192r1201 ├── secp192r1210 ├── secp192r1211 ├── secp192r1220 ├── secp192r1221 ├── secp192r1230 ├── secp192r1231 ├── secp192r1300 ├── secp192r1301 ├── secp192r1310 ├── secp192r1311 ├── secp192r1320 ├── secp192r1321 ├── secp192r1330 ├── secp192r1331 ├── secp192r1minus0 ├── secp192r1minus1 ├── secp192r1minus2 ├── secp192r1minus3 ├── secp192r1minus4 ├── secp192r1minus5 ├── secp192r1minus6 ├── secp192r1minus7 ├── secp192r1minus8 ├── secp192r1minus9 ├── secp192r1random0 ├── secp192r1random1 ├── secp192r1random2 ├── secp192r1random3 ├── secp192r1random4 ├── secp192r1random5 ├── secp192r1random6 ├── secp192r1random7 ├── secp192r1random8 ├── secp192r1random9 ├── secp224k1000 ├── secp224k1001 ├── secp224k1010 ├── secp224k1011 ├── secp224k1020 ├── secp224k1021 ├── secp224k1030 ├── secp224k1031 ├── secp224k1100 ├── secp224k1101 ├── secp224k1110 ├── secp224k1111 ├── secp224k1120 ├── secp224k1121 ├── secp224k1130 ├── secp224k1131 ├── secp224k1200 ├── secp224k1201 ├── secp224k1210 ├── secp224k1211 ├── secp224k1220 ├── secp224k1221 ├── secp224k1230 ├── secp224k1231 ├── secp224k1300 ├── secp224k1301 ├── secp224k1310 ├── secp224k1311 ├── secp224k1320 ├── secp224k1321 ├── secp224k1330 ├── secp224k1331 ├── secp224k1minus0 ├── secp224k1minus1 ├── secp224k1minus2 ├── secp224k1minus3 ├── secp224k1minus4 ├── secp224k1minus5 ├── secp224k1minus6 ├── secp224k1minus7 ├── secp224k1minus8 ├── secp224k1minus9 ├── secp224k1random0 ├── secp224k1random1 ├── secp224k1random2 ├── secp224k1random3 ├── secp224k1random4 ├── secp224k1random5 ├── secp224k1random6 ├── secp224k1random7 ├── secp224k1random8 ├── secp224k1random9 ├── secp224r1000 ├── secp224r1001 ├── secp224r1010 ├── secp224r1011 ├── secp224r1020 ├── secp224r1021 ├── secp224r1030 ├── secp224r1031 ├── secp224r1100 ├── secp224r1101 ├── secp224r1110 ├── secp224r1111 ├── secp224r1120 ├── secp224r1121 ├── secp224r1130 ├── secp224r1131 ├── secp224r1200 ├── secp224r1201 ├── secp224r1210 ├── secp224r1211 ├── secp224r1220 ├── secp224r1221 ├── secp224r1230 ├── secp224r1231 ├── secp224r1300 ├── secp224r1301 ├── secp224r1310 ├── secp224r1311 ├── secp224r1320 ├── secp224r1321 ├── secp224r1330 ├── secp224r1331 ├── secp224r1minus0 ├── secp224r1minus1 ├── secp224r1minus2 ├── secp224r1minus3 ├── secp224r1minus4 ├── secp224r1minus5 ├── secp224r1minus6 ├── secp224r1minus7 ├── secp224r1minus8 ├── secp224r1minus9 ├── secp224r1random0 ├── secp224r1random1 ├── secp224r1random2 ├── secp224r1random3 ├── secp224r1random4 ├── secp224r1random5 ├── secp224r1random6 ├── secp224r1random7 ├── secp224r1random8 ├── secp224r1random9 ├── secp256k1000 ├── secp256k1001 ├── secp256k1010 ├── secp256k1011 ├── secp256k1020 ├── secp256k1021 ├── secp256k1030 ├── secp256k1031 ├── secp256k1100 ├── secp256k1101 ├── secp256k1110 ├── secp256k1111 ├── secp256k1120 ├── secp256k1121 ├── secp256k1130 ├── secp256k1131 ├── secp256k1200 ├── secp256k1201 ├── secp256k1210 ├── secp256k1211 ├── secp256k1220 ├── secp256k1221 ├── secp256k1230 ├── secp256k1231 ├── secp256k1300 ├── secp256k1301 ├── secp256k1310 ├── secp256k1311 ├── secp256k1320 ├── secp256k1321 ├── secp256k1330 ├── secp256k1331 ├── secp256k1minus0 ├── secp256k1minus1 ├── secp256k1minus2 ├── secp256k1minus3 ├── secp256k1minus4 ├── secp256k1minus5 ├── secp256k1minus6 ├── secp256k1minus7 ├── secp256k1minus8 ├── secp256k1minus9 ├── secp256k1random0 ├── secp256k1random1 ├── secp256k1random2 ├── secp256k1random3 ├── secp256k1random4 ├── secp256k1random5 ├── secp256k1random6 ├── secp256k1random7 ├── secp256k1random8 ├── secp256k1random9 ├── secp256r1000 ├── secp256r1001 ├── secp256r1010 ├── secp256r1011 ├── secp256r1020 ├── secp256r1021 ├── secp256r1030 ├── secp256r1031 ├── secp256r1100 ├── secp256r1101 ├── secp256r1110 ├── secp256r1111 ├── secp256r1120 ├── secp256r1121 ├── secp256r1130 ├── secp256r1131 ├── secp256r1200 ├── secp256r1201 ├── secp256r1210 ├── secp256r1211 ├── secp256r1220 ├── secp256r1221 ├── secp256r1230 ├── secp256r1231 ├── secp256r1300 ├── secp256r1301 ├── secp256r1310 ├── secp256r1311 ├── secp256r1320 ├── secp256r1321 ├── secp256r1330 ├── secp256r1331 ├── secp256r1minus0 ├── secp256r1minus1 ├── secp256r1minus2 ├── secp256r1minus3 ├── secp256r1minus4 ├── secp256r1minus5 ├── secp256r1minus6 ├── secp256r1minus7 ├── secp256r1minus8 ├── secp256r1minus9 ├── secp256r1random0 ├── secp256r1random1 ├── secp256r1random2 ├── secp256r1random3 ├── secp256r1random4 ├── secp256r1random5 ├── secp256r1random6 ├── secp256r1random7 ├── secp256r1random8 ├── secp256r1random9 ├── secp384r1000 ├── secp384r1001 ├── secp384r1010 ├── secp384r1011 ├── secp384r1020 ├── secp384r1021 ├── secp384r1030 ├── secp384r1031 ├── secp384r1100 ├── secp384r1101 ├── secp384r1110 ├── secp384r1111 ├── secp384r1120 ├── secp384r1121 ├── secp384r1130 ├── secp384r1131 ├── secp384r1200 ├── secp384r1201 ├── secp384r1210 ├── secp384r1211 ├── secp384r1220 ├── secp384r1221 ├── secp384r1230 ├── secp384r1231 ├── secp384r1300 ├── secp384r1301 ├── secp384r1310 ├── secp384r1311 ├── secp384r1320 ├── secp384r1321 ├── secp384r1330 ├── secp384r1331 ├── secp384r1minus0 ├── secp384r1minus1 ├── secp384r1minus2 ├── secp384r1minus3 ├── secp384r1minus4 ├── secp384r1minus5 ├── secp384r1minus6 ├── secp384r1minus7 ├── secp384r1minus8 ├── secp384r1minus9 ├── secp384r1random0 ├── secp384r1random1 ├── secp384r1random2 ├── secp384r1random3 ├── secp384r1random4 ├── secp384r1random5 ├── secp384r1random6 ├── secp384r1random7 ├── secp384r1random8 ├── secp384r1random9 ├── secp521r1000 ├── secp521r1001 ├── secp521r1010 ├── secp521r1011 ├── secp521r1020 ├── secp521r1021 ├── secp521r1030 ├── secp521r1031 ├── secp521r1100 ├── secp521r1101 ├── secp521r1110 ├── secp521r1111 ├── secp521r1120 ├── secp521r1121 ├── secp521r1130 ├── secp521r1131 ├── secp521r1200 ├── secp521r1201 ├── secp521r1210 ├── secp521r1211 ├── secp521r1220 ├── secp521r1221 ├── secp521r1230 ├── secp521r1231 ├── secp521r1300 ├── secp521r1301 ├── secp521r1310 ├── secp521r1311 ├── secp521r1320 ├── secp521r1321 ├── secp521r1330 ├── secp521r1331 ├── secp521r1minus0 ├── secp521r1minus1 ├── secp521r1minus2 ├── secp521r1minus3 ├── secp521r1minus4 ├── secp521r1minus5 ├── secp521r1minus6 ├── secp521r1minus7 ├── secp521r1minus8 ├── secp521r1minus9 ├── secp521r1random0 ├── secp521r1random1 ├── secp521r1random2 ├── secp521r1random3 ├── secp521r1random4 ├── secp521r1random5 ├── secp521r1random6 ├── secp521r1random7 ├── secp521r1random8 └── secp521r1random9 ├── fuzz_ec.c ├── fuzz_ec.dict ├── fuzz_ec.h ├── gencorp.py ├── main.c └── modules ├── botan.cpp ├── cryptopp.cpp ├── ecadd.js ├── ecinit.js ├── ecmult.js ├── elliptic.go ├── gcrypt.c ├── golang.c ├── libecc.c ├── mbedtls.c ├── nettle.c ├── openssl.c ├── rust.c ├── rustlibsecp256k1 ├── Cargo.toml └── src │ └── lib.rs └── script.c /CMakeLists.txt: -------------------------------------------------------------------------------- 1 | cmake_minimum_required (VERSION 2.8) 2 | 3 | #Golang 4 | project (ecfuzzer CXX C) 5 | set(ECFUZZER_MAJOR_VERSION 0) 6 | set(ECFUZZER_MINOR_VERSION 1) 7 | set(ECFUZZER_MICRO_VERSION 0) 8 | set(ECFUZZER_VERSION ${ECFUZZER_MAJOR_VERSION}.${ECFUZZER_MINOR_VERSION}.${ECFUZZER_MICRO_VERSION}) 9 | 10 | set(CMAKE_C_FLAGS_DEBUG "${CMAKE_C_FLAGS_DEBUG} -Wall -DDEBUG") 11 | set(CMAKE_CXX_FLAGS_DEBUG "${CMAKE_CXX_FLAGS_DEBUG} -Wall -DDEBUG") 12 | add_definitions(-DWITH_STDLIB) 13 | set(CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} -std=c++20") 14 | 15 | #does not work : set(GLOBAL PROPERTY FIND_LIBRARY_USE_LIB32_PATHS TRUE) 16 | set (CMAKE_LIBRARY_PATH ${CMAKE_LIBRARY_PATH};/usr/local/lib32/) 17 | find_library(MBEDCRYPTO_LIB mbedcrypto) 18 | find_library(LIBECC_LIB ec) 19 | find_library(OPENSSL_LIB crypto HINTS "/usr/local/lib" "/usr/local/lib64") 20 | find_library(NETTLE0_LIB libgmp.a gmp) 21 | find_library(NETTLE1_LIB libhogweed.a hogweed HINTS "/usr/local/lib" "/usr/local/lib64") 22 | find_library(NETTLE2_LIB libnettle.a nettle HINTS "/usr/local/lib" "/usr/local/lib64") 23 | find_library(GCRYPT_LIB gcrypt) 24 | find_library(GPGERROR_LIB gpg-error) 25 | find_library(CRYPTOPP_LIB cryptopp) 26 | find_library(BOTAN_LIB botan-3) 27 | find_library(QUICKJS_LIB quickjs) 28 | 29 | include_directories(/usr/local/include/botan-3/) 30 | include_directories(${CMAKE_CURRENT_BINARY_DIR}) 31 | 32 | add_custom_command( 33 | OUTPUT goelliptic.a 34 | COMMAND go build -o goelliptic.a -buildmode=c-archive ${CMAKE_CURRENT_SOURCE_DIR}/modules/elliptic.go 35 | COMMAND cp goelliptic.h ${CMAKE_CURRENT_SOURCE_DIR}/ 36 | DEPENDS modules/elliptic.go 37 | COMMENT "Build c archive out of golang" 38 | ) 39 | 40 | add_custom_target(goelliptic_target DEPENDS goelliptic.a) 41 | 42 | add_library(goelliptic STATIC IMPORTED GLOBAL) 43 | add_dependencies(goelliptic goelliptic_target) 44 | 45 | set_target_properties(goelliptic 46 | PROPERTIES 47 | IMPORTED_LOCATION goelliptic.a 48 | ) 49 | 50 | add_custom_command( 51 | OUTPUT libecc_diff_fuzzer_rs.a 52 | COMMAND cd ${CMAKE_CURRENT_SOURCE_DIR}/modules/rustlibsecp256k1 && cargo build 53 | COMMAND cp ${CMAKE_CURRENT_SOURCE_DIR}/modules/rustlibsecp256k1/target/debug/libecc_diff_fuzzer_rs.a . || cp ${CMAKE_CURRENT_SOURCE_DIR}/modules/rustlibsecp256k1/target/$ENV{CARGO_BUILD_TARGET}/debug/libecc_diff_fuzzer_rs.a . 54 | DEPENDS modules/rustlibsecp256k1/src/lib.rs 55 | COMMENT "Build c archive out of rust" 56 | ) 57 | 58 | add_custom_target(rselliptic_target DEPENDS libecc_diff_fuzzer_rs.a) 59 | 60 | add_library(rselliptic STATIC IMPORTED GLOBAL) 61 | add_dependencies(rselliptic rselliptic_target) 62 | 63 | set_target_properties(rselliptic 64 | PROPERTIES 65 | IMPORTED_LOCATION libecc_diff_fuzzer_rs.a 66 | ) 67 | 68 | add_custom_command( 69 | OUTPUT genjsinit.h 70 | COMMAND browserify ${CMAKE_CURRENT_SOURCE_DIR}/modules/ecinit.js --bare -o bundle.js 71 | COMMAND qjsc -c -N genjsinit -o genjsinit.h bundle.js 72 | DEPENDS modules/ecinit.js 73 | COMMENT "Build c init out of javascript" 74 | ) 75 | 76 | add_custom_command( 77 | OUTPUT genjsmult.h 78 | COMMAND qjsc -c -N genjsmult -o genjsmult.h ${CMAKE_CURRENT_SOURCE_DIR}/modules/ecmult.js 79 | DEPENDS modules/ecmult.js 80 | COMMENT "Build c mult out of javascript" 81 | ) 82 | 83 | add_custom_command( 84 | OUTPUT genjsadd.h 85 | COMMAND qjsc -c -N genjsadd -o genjsadd.h ${CMAKE_CURRENT_SOURCE_DIR}/modules/ecadd.js 86 | DEPENDS modules/ecadd.js 87 | COMMENT "Build c add out of javascript" 88 | ) 89 | 90 | option(DISABLE_CRYPTOPP "disable cryptopp module" OFF) 91 | if(DISABLE_CRYPTOPP) 92 | add_definitions(-DFUZZ_CRYPTOPP_DISABLED) 93 | endif() 94 | option(DISABLE_JS "disable javascript module" OFF) 95 | if(DISABLE_JS) 96 | add_definitions(-DFUZZ_JS_DISABLED) 97 | endif() 98 | 99 | 100 | set(ecfuzzer_src fuzz_ec.c modules/mbedtls.c modules/libecc.c modules/openssl.c modules/nettle.c modules/gcrypt.c modules/cryptopp.cpp modules/botan.cpp modules/golang.c modules/rust.c modules/script.c genjsinit.h genjsmult.h genjsadd.h) 101 | set(ecfuzzer_libs "${MBEDCRYPTO_LIB}" "${LIBECC_LIB}" "${OPENSSL_LIB}" "${NETTLE1_LIB}" "${NETTLE2_LIB}" "${NETTLE0_LIB}" "${GCRYPT_LIB}" "${GPGERROR_LIB}" "${CRYPTOPP_LIB}" "${BOTAN_LIB}" "${QUICKJS_LIB}" goelliptic rselliptic) 102 | IF(DEFINED ENV{LIB_FUZZING_ENGINE}) 103 | set(ecfuzzer_libs ${ecfuzzer_libs} $ENV{LIB_FUZZING_ENGINE}) 104 | else() 105 | set(ecfuzzer_src ${ecfuzzer_src} main.c) 106 | endif() 107 | 108 | add_executable (ecfuzzer ${ecfuzzer_src}) 109 | target_link_libraries (ecfuzzer ${ecfuzzer_libs}) 110 | 111 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ecfuzzer 2 | Differential fuzzing for elliptic curves 3 | 4 | Build 5 | ------ 6 | 7 | You can build a standalone binary with classic cmake commands 8 | ``` 9 | mkdir build 10 | cd build 11 | cmake .. 12 | make 13 | ``` 14 | This standalone binary expects one argument, a file name, whose contents will be processed. 15 | 16 | You can check out `build.sh` from oss-fuzz to build a fuzzing binary. 17 | 18 | Architecture 19 | ------ 20 | 21 | List of files : 22 | - main.c : main function for processing one file 23 | - fuzz_ec.c : fuzz target, ie `LLVMFuzzerTestOneInput` function 24 | - fuzz_ec.h : common structures for modules 25 | - modules : directory with one file per module 26 | 27 | Processing 28 | ------ 29 | 30 | The input buffer must be at least 4 bytes : 31 | - 2 bytes are used to reference the curve (using the reference identifiers from TLS protocol) 32 | - at least 1 byte for two big integers 33 | 34 | For each module, the fuzzer will : 35 | - load the curve (if the module does not know the curve, it is ok) 36 | - do a scalar multiplication of first big integer with curve generator 37 | - do a second scalar multiplication of second big integer with point resulting from first multiplication 38 | - check the return code (abort on failure) 39 | - check the result (point coordinates) with the previous module (abort on first difference) 40 | -------------------------------------------------------------------------------- /corpus/brainpoolP256r1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP256r1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1minus0 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1minus1 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1minus2 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1minus3 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1minus4 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1minus5 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1minus6 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1minus7 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1minus8 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1minus9 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1random0 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1random1 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1random2 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1random3 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1random4 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1random5 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1random6 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1random7 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1random8 -------------------------------------------------------------------------------- /corpus/brainpoolP256r1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP256r1random9 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP384r1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1minus0 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1minus1 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1minus2 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1minus3 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1minus4 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1minus5 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1minus6 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1minus7 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1minus8 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1minus9 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1random0 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1random1 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1random2 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1random3 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1random4 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1random5 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1random6 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1random7 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1random8 -------------------------------------------------------------------------------- /corpus/brainpoolP384r1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP384r1random9 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/brainpoolP512r1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1minus0 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1minus1 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1minus2 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1minus3 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1minus4 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1minus5 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1minus6 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1minus7 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1minus8 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1minus9 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1random0 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1random1 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1random2 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1random3 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1random4 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1random5 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1random6 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1random7 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1random8 -------------------------------------------------------------------------------- /corpus/brainpoolP512r1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/brainpoolP512r1random9 -------------------------------------------------------------------------------- /corpus/secp192k1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192k1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1minus0 -------------------------------------------------------------------------------- /corpus/secp192k1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1minus1 -------------------------------------------------------------------------------- /corpus/secp192k1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1minus2 -------------------------------------------------------------------------------- /corpus/secp192k1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1minus3 -------------------------------------------------------------------------------- /corpus/secp192k1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1minus4 -------------------------------------------------------------------------------- /corpus/secp192k1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1minus5 -------------------------------------------------------------------------------- /corpus/secp192k1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1minus6 -------------------------------------------------------------------------------- /corpus/secp192k1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1minus7 -------------------------------------------------------------------------------- /corpus/secp192k1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1minus8 -------------------------------------------------------------------------------- /corpus/secp192k1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1minus9 -------------------------------------------------------------------------------- /corpus/secp192k1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1random0 -------------------------------------------------------------------------------- /corpus/secp192k1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1random1 -------------------------------------------------------------------------------- /corpus/secp192k1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1random2 -------------------------------------------------------------------------------- /corpus/secp192k1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1random3 -------------------------------------------------------------------------------- /corpus/secp192k1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1random4 -------------------------------------------------------------------------------- /corpus/secp192k1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1random5 -------------------------------------------------------------------------------- /corpus/secp192k1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1random6 -------------------------------------------------------------------------------- /corpus/secp192k1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1random7 -------------------------------------------------------------------------------- /corpus/secp192k1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1random8 -------------------------------------------------------------------------------- /corpus/secp192k1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192k1random9 -------------------------------------------------------------------------------- /corpus/secp192r1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp192r1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1minus0 -------------------------------------------------------------------------------- /corpus/secp192r1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1minus1 -------------------------------------------------------------------------------- /corpus/secp192r1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1minus2 -------------------------------------------------------------------------------- /corpus/secp192r1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1minus3 -------------------------------------------------------------------------------- /corpus/secp192r1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1minus4 -------------------------------------------------------------------------------- /corpus/secp192r1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1minus5 -------------------------------------------------------------------------------- /corpus/secp192r1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1minus6 -------------------------------------------------------------------------------- /corpus/secp192r1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1minus7 -------------------------------------------------------------------------------- /corpus/secp192r1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1minus8 -------------------------------------------------------------------------------- /corpus/secp192r1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1minus9 -------------------------------------------------------------------------------- /corpus/secp192r1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1random0 -------------------------------------------------------------------------------- /corpus/secp192r1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1random1 -------------------------------------------------------------------------------- /corpus/secp192r1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1random2 -------------------------------------------------------------------------------- /corpus/secp192r1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1random3 -------------------------------------------------------------------------------- /corpus/secp192r1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1random4 -------------------------------------------------------------------------------- /corpus/secp192r1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1random5 -------------------------------------------------------------------------------- /corpus/secp192r1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1random6 -------------------------------------------------------------------------------- /corpus/secp192r1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1random7 -------------------------------------------------------------------------------- /corpus/secp192r1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1random8 -------------------------------------------------------------------------------- /corpus/secp192r1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp192r1random9 -------------------------------------------------------------------------------- /corpus/secp224k1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224k1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1minus0 -------------------------------------------------------------------------------- /corpus/secp224k1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1minus1 -------------------------------------------------------------------------------- /corpus/secp224k1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1minus2 -------------------------------------------------------------------------------- /corpus/secp224k1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1minus3 -------------------------------------------------------------------------------- /corpus/secp224k1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1minus4 -------------------------------------------------------------------------------- /corpus/secp224k1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1minus5 -------------------------------------------------------------------------------- /corpus/secp224k1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1minus6 -------------------------------------------------------------------------------- /corpus/secp224k1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1minus7 -------------------------------------------------------------------------------- /corpus/secp224k1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1minus8 -------------------------------------------------------------------------------- /corpus/secp224k1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1minus9 -------------------------------------------------------------------------------- /corpus/secp224k1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1random0 -------------------------------------------------------------------------------- /corpus/secp224k1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1random1 -------------------------------------------------------------------------------- /corpus/secp224k1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1random2 -------------------------------------------------------------------------------- /corpus/secp224k1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1random3 -------------------------------------------------------------------------------- /corpus/secp224k1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1random4 -------------------------------------------------------------------------------- /corpus/secp224k1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1random5 -------------------------------------------------------------------------------- /corpus/secp224k1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1random6 -------------------------------------------------------------------------------- /corpus/secp224k1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1random7 -------------------------------------------------------------------------------- /corpus/secp224k1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1random8 -------------------------------------------------------------------------------- /corpus/secp224k1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224k1random9 -------------------------------------------------------------------------------- /corpus/secp224r1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp224r1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1minus0 -------------------------------------------------------------------------------- /corpus/secp224r1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1minus1 -------------------------------------------------------------------------------- /corpus/secp224r1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1minus2 -------------------------------------------------------------------------------- /corpus/secp224r1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1minus3 -------------------------------------------------------------------------------- /corpus/secp224r1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1minus4 -------------------------------------------------------------------------------- /corpus/secp224r1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1minus5 -------------------------------------------------------------------------------- /corpus/secp224r1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1minus6 -------------------------------------------------------------------------------- /corpus/secp224r1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1minus7 -------------------------------------------------------------------------------- /corpus/secp224r1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1minus8 -------------------------------------------------------------------------------- /corpus/secp224r1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1minus9 -------------------------------------------------------------------------------- /corpus/secp224r1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1random0 -------------------------------------------------------------------------------- /corpus/secp224r1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1random1 -------------------------------------------------------------------------------- /corpus/secp224r1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1random2 -------------------------------------------------------------------------------- /corpus/secp224r1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1random3 -------------------------------------------------------------------------------- /corpus/secp224r1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1random4 -------------------------------------------------------------------------------- /corpus/secp224r1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1random5 -------------------------------------------------------------------------------- /corpus/secp224r1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1random6 -------------------------------------------------------------------------------- /corpus/secp224r1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1random7 -------------------------------------------------------------------------------- /corpus/secp224r1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1random8 -------------------------------------------------------------------------------- /corpus/secp224r1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp224r1random9 -------------------------------------------------------------------------------- /corpus/secp256k1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256k1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1minus0 -------------------------------------------------------------------------------- /corpus/secp256k1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1minus1 -------------------------------------------------------------------------------- /corpus/secp256k1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1minus2 -------------------------------------------------------------------------------- /corpus/secp256k1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1minus3 -------------------------------------------------------------------------------- /corpus/secp256k1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1minus4 -------------------------------------------------------------------------------- /corpus/secp256k1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1minus5 -------------------------------------------------------------------------------- /corpus/secp256k1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1minus6 -------------------------------------------------------------------------------- /corpus/secp256k1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1minus7 -------------------------------------------------------------------------------- /corpus/secp256k1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1minus8 -------------------------------------------------------------------------------- /corpus/secp256k1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1minus9 -------------------------------------------------------------------------------- /corpus/secp256k1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1random0 -------------------------------------------------------------------------------- /corpus/secp256k1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1random1 -------------------------------------------------------------------------------- /corpus/secp256k1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1random2 -------------------------------------------------------------------------------- /corpus/secp256k1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1random3 -------------------------------------------------------------------------------- /corpus/secp256k1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1random4 -------------------------------------------------------------------------------- /corpus/secp256k1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1random5 -------------------------------------------------------------------------------- /corpus/secp256k1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1random6 -------------------------------------------------------------------------------- /corpus/secp256k1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1random7 -------------------------------------------------------------------------------- /corpus/secp256k1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1random8 -------------------------------------------------------------------------------- /corpus/secp256k1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256k1random9 -------------------------------------------------------------------------------- /corpus/secp256r1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp256r1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1minus0 -------------------------------------------------------------------------------- /corpus/secp256r1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1minus1 -------------------------------------------------------------------------------- /corpus/secp256r1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1minus2 -------------------------------------------------------------------------------- /corpus/secp256r1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1minus3 -------------------------------------------------------------------------------- /corpus/secp256r1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1minus4 -------------------------------------------------------------------------------- /corpus/secp256r1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1minus5 -------------------------------------------------------------------------------- /corpus/secp256r1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1minus6 -------------------------------------------------------------------------------- /corpus/secp256r1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1minus7 -------------------------------------------------------------------------------- /corpus/secp256r1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1minus8 -------------------------------------------------------------------------------- /corpus/secp256r1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1minus9 -------------------------------------------------------------------------------- /corpus/secp256r1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1random0 -------------------------------------------------------------------------------- /corpus/secp256r1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1random1 -------------------------------------------------------------------------------- /corpus/secp256r1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1random2 -------------------------------------------------------------------------------- /corpus/secp256r1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1random3 -------------------------------------------------------------------------------- /corpus/secp256r1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1random4 -------------------------------------------------------------------------------- /corpus/secp256r1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1random5 -------------------------------------------------------------------------------- /corpus/secp256r1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1random6 -------------------------------------------------------------------------------- /corpus/secp256r1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1random7 -------------------------------------------------------------------------------- /corpus/secp256r1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1random8 -------------------------------------------------------------------------------- /corpus/secp256r1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp256r1random9 -------------------------------------------------------------------------------- /corpus/secp384r1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp384r1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1minus0 -------------------------------------------------------------------------------- /corpus/secp384r1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1minus1 -------------------------------------------------------------------------------- /corpus/secp384r1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1minus2 -------------------------------------------------------------------------------- /corpus/secp384r1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1minus3 -------------------------------------------------------------------------------- /corpus/secp384r1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1minus4 -------------------------------------------------------------------------------- /corpus/secp384r1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1minus5 -------------------------------------------------------------------------------- /corpus/secp384r1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1minus6 -------------------------------------------------------------------------------- /corpus/secp384r1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1minus7 -------------------------------------------------------------------------------- /corpus/secp384r1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1minus8 -------------------------------------------------------------------------------- /corpus/secp384r1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1minus9 -------------------------------------------------------------------------------- /corpus/secp384r1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1random0 -------------------------------------------------------------------------------- /corpus/secp384r1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1random1 -------------------------------------------------------------------------------- /corpus/secp384r1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1random2 -------------------------------------------------------------------------------- /corpus/secp384r1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1random3 -------------------------------------------------------------------------------- /corpus/secp384r1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1random4 -------------------------------------------------------------------------------- /corpus/secp384r1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1random5 -------------------------------------------------------------------------------- /corpus/secp384r1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1random6 -------------------------------------------------------------------------------- /corpus/secp384r1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1random7 -------------------------------------------------------------------------------- /corpus/secp384r1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1random8 -------------------------------------------------------------------------------- /corpus/secp384r1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp384r1random9 -------------------------------------------------------------------------------- /corpus/secp521r1000: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1001: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1010: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1011: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1020: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1021: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1030: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1031: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1100: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1101: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1110: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1111: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1120: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1121: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1130: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1131: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1200: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1201: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1210: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1211: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1220: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1221: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1230: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1231: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1300: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1301: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1310: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1311: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1320: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1321: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1330: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1331: -------------------------------------------------------------------------------- 1 |  -------------------------------------------------------------------------------- /corpus/secp521r1minus0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1minus0 -------------------------------------------------------------------------------- /corpus/secp521r1minus1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1minus1 -------------------------------------------------------------------------------- /corpus/secp521r1minus2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1minus2 -------------------------------------------------------------------------------- /corpus/secp521r1minus3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1minus3 -------------------------------------------------------------------------------- /corpus/secp521r1minus4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1minus4 -------------------------------------------------------------------------------- /corpus/secp521r1minus5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1minus5 -------------------------------------------------------------------------------- /corpus/secp521r1minus6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1minus6 -------------------------------------------------------------------------------- /corpus/secp521r1minus7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1minus7 -------------------------------------------------------------------------------- /corpus/secp521r1minus8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1minus8 -------------------------------------------------------------------------------- /corpus/secp521r1minus9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1minus9 -------------------------------------------------------------------------------- /corpus/secp521r1random0: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1random0 -------------------------------------------------------------------------------- /corpus/secp521r1random1: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1random1 -------------------------------------------------------------------------------- /corpus/secp521r1random2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1random2 -------------------------------------------------------------------------------- /corpus/secp521r1random3: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1random3 -------------------------------------------------------------------------------- /corpus/secp521r1random4: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1random4 -------------------------------------------------------------------------------- /corpus/secp521r1random5: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1random5 -------------------------------------------------------------------------------- /corpus/secp521r1random6: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1random6 -------------------------------------------------------------------------------- /corpus/secp521r1random7: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1random7 -------------------------------------------------------------------------------- /corpus/secp521r1random8: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1random8 -------------------------------------------------------------------------------- /corpus/secp521r1random9: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/catenacyber/elliptic-curve-differential-fuzzer/d2043ad28563e8b99b521ed7f4f14211b80091eb/corpus/secp521r1random9 -------------------------------------------------------------------------------- /fuzz_ec.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include "fuzz_ec.h" 11 | 12 | size_t bitlenFromTlsId(uint16_t tlsid) { 13 | switch (tlsid) { 14 | //TODO complete curves from TLS 15 | case 18: 16 | //secp192k1 17 | return 192; 18 | case 19: 19 | //secp192r1 20 | return 192; 21 | case 20: 22 | //secp224k1 23 | return 224; 24 | case 21: 25 | //secp224r1 26 | return 224; 27 | case 22: 28 | //secp256k1 29 | return 256; 30 | case 23: 31 | //secp256r1 32 | return 256; 33 | case 24: 34 | //secp384r1 35 | return 384; 36 | case 25: 37 | //secp521r1 38 | return 521; 39 | case 26: 40 | //brainpoolP256r1 41 | return 256; 42 | case 27: 43 | //brainpoolP384r1 44 | return 384; 45 | case 28: 46 | //brainpoolP512r1 47 | return 512; 48 | } 49 | return 0; 50 | } 51 | 52 | #define NBMODULES 11 53 | //TODO integrate more modules 54 | void fuzzec_mbedtls_process(fuzzec_input_t * input, fuzzec_output_t * output); 55 | void fuzzec_libecc_process(fuzzec_input_t * input, fuzzec_output_t * output); 56 | void fuzzec_openssl_process(fuzzec_input_t * input, fuzzec_output_t * output); 57 | void fuzzec_nettle_process(fuzzec_input_t * input, fuzzec_output_t * output); 58 | void fuzzec_gcrypt_process(fuzzec_input_t * input, fuzzec_output_t * output); 59 | int fuzzec_gcrypt_init(); 60 | void fuzzec_cryptopp_process(fuzzec_input_t * input, fuzzec_output_t * output); 61 | void fuzzec_botan_process(fuzzec_input_t * input, fuzzec_output_t * output); 62 | void fuzzec_botanblind_process(fuzzec_input_t * input, fuzzec_output_t * output); 63 | void fuzzec_golang_process(fuzzec_input_t * input, fuzzec_output_t * output); 64 | void fuzzec_js_process(fuzzec_input_t * input, fuzzec_output_t * output); 65 | int fuzzec_js_init(); 66 | void fuzzec_rust_process(fuzzec_input_t * input, fuzzec_output_t * output); 67 | void fuzzec_mbedtls_add(fuzzec_input_t * input, fuzzec_output_t * output); 68 | void fuzzec_libecc_add(fuzzec_input_t * input, fuzzec_output_t * output); 69 | void fuzzec_openssl_add(fuzzec_input_t * input, fuzzec_output_t * output); 70 | void fuzzec_gcrypt_add(fuzzec_input_t * input, fuzzec_output_t * output); 71 | void fuzzec_cryptopp_add(fuzzec_input_t * input, fuzzec_output_t * output); 72 | void fuzzec_botan_add(fuzzec_input_t * input, fuzzec_output_t * output); 73 | void fuzzec_golang_add(fuzzec_input_t * input, fuzzec_output_t * output); 74 | void fuzzec_js_add(fuzzec_input_t * input, fuzzec_output_t * output); 75 | fuzzec_module_t modules[NBMODULES] = { 76 | { 77 | "mbedtls", 78 | fuzzec_mbedtls_process, 79 | fuzzec_mbedtls_add, 80 | NULL, 81 | }, 82 | { 83 | "libecc", 84 | fuzzec_libecc_process, 85 | fuzzec_libecc_add, 86 | NULL, 87 | }, 88 | { 89 | "openssl", 90 | fuzzec_openssl_process, 91 | fuzzec_openssl_add, 92 | NULL, 93 | }, 94 | { 95 | "nettle", 96 | fuzzec_nettle_process, 97 | NULL, 98 | NULL, 99 | }, 100 | { 101 | "gcrypt", 102 | fuzzec_gcrypt_process, 103 | fuzzec_gcrypt_add, 104 | fuzzec_gcrypt_init, 105 | }, 106 | { 107 | "cryptopp", 108 | fuzzec_cryptopp_process, 109 | fuzzec_cryptopp_add, 110 | NULL, 111 | }, 112 | { 113 | "botan", 114 | fuzzec_botan_process, 115 | fuzzec_botan_add, 116 | NULL, 117 | }, 118 | { 119 | "botanblind", 120 | fuzzec_botanblind_process, 121 | NULL, 122 | NULL, 123 | }, 124 | { 125 | "golang", 126 | fuzzec_golang_process, 127 | fuzzec_golang_add, 128 | NULL, 129 | }, 130 | { 131 | "nodesjs/elliptic", 132 | fuzzec_js_process, 133 | fuzzec_js_add, 134 | fuzzec_js_init, 135 | }, 136 | { 137 | "rust", 138 | fuzzec_rust_process, 139 | NULL, 140 | NULL, 141 | }, 142 | 143 | }; 144 | int decompressPoint(const uint8_t *Data, int compBit, size_t Size, uint8_t *decom, uint16_t tls_id, size_t coordlen); 145 | 146 | static int initialized = 0; 147 | 148 | static const char * nameOfCurve(uint16_t tlsid) { 149 | switch (tlsid) { 150 | case 18: 151 | return "secp192k1"; 152 | case 19: 153 | return "secp192r1"; 154 | case 20: 155 | return "secp224k1"; 156 | case 21: 157 | return "secp224r1"; 158 | case 22: 159 | return "secp256k1"; 160 | case 23: 161 | return "secp256r1"; 162 | case 24: 163 | return "secp384r1"; 164 | case 25: 165 | return "secp521r1"; 166 | case 26: 167 | return "brainpool256r1"; 168 | case 27: 169 | return "brainpool384r1"; 170 | case 28: 171 | return "brainpool512r1"; 172 | } 173 | return ""; 174 | } 175 | 176 | #define MAX_FAIL_MSG_SIZE 256 177 | static void failTest(uint16_t tlsid, size_t modNb) { 178 | char * failmsg = malloc(MAX_FAIL_MSG_SIZE); 179 | snprintf(failmsg, MAX_FAIL_MSG_SIZE-1, "%s:%s", modules[modNb].name, nameOfCurve(tlsid)); 180 | printf("Assertion failure: %s\n", failmsg); 181 | fflush(stdout); 182 | #ifndef FUZZ_RECOVER 183 | abort(); 184 | #endif 185 | free(failmsg); 186 | } 187 | 188 | int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size) { 189 | fuzzec_input_t input; 190 | fuzzec_output_t output[NBMODULES]; 191 | size_t i, k, lastok; 192 | 193 | if (initialized == 0) { 194 | for (i=0; i 1 + 2 * ECDF_BYTECEIL(input.groupBitLen)) { 222 | Size = 1 + 2 * ECDF_BYTECEIL(input.groupBitLen); 223 | } 224 | input.coordSize = ECDF_BYTECEIL(input.groupBitLen); 225 | input.bignumSize = Size/2; 226 | input.bignum = Data + 2; 227 | if (Data[2+input.bignumSize] & 0x80) { 228 | //adding 2 points 229 | if (decompressPoint(Data + 2, (Data[2+input.bignumSize] & 0x2) ? 1 : 0, Size-input.bignumSize, (uint8_t *)input.coord2, input.tls_id, ECDF_BYTECEIL(input.groupBitLen)) != 0) { 230 | //point not on curve 231 | return 0; 232 | } 233 | input.coord2x = input.coord2 + 1; 234 | input.coord2y = input.coord2 + 1 + input.coordSize; 235 | } else { 236 | //mulitplying a point by a scalar 237 | } 238 | if (decompressPoint(input.bignum+input.bignumSize, (Data[2+input.bignumSize] & 0x1) ? 1 : 0, Size-input.bignumSize, (uint8_t *)input.coord, input.tls_id, ECDF_BYTECEIL(input.groupBitLen)) != 0) { 239 | //point not on curve 240 | return 0; 241 | } 242 | input.coordx = input.coord + 1; 243 | input.coordy = input.coord + 1 + input.coordSize; 244 | #ifdef DEBUG 245 | printf("curve=%d %s\n", input.tls_id, nameOfCurve(input.tls_id)); 246 | printf("point="); 247 | for (i=0; i<2*input.coordSize+1; i++) { 248 | printf("%02x", input.coord[i]); 249 | } 250 | printf("\n"); 251 | if (Data[2+input.bignumSize] & 0x80) { 252 | printf("point2="); 253 | for (i=0; i<2*input.coordSize+1; i++) { 254 | printf("%02x", input.coord2[i]); 255 | } 256 | } else { 257 | printf("bignum="); 258 | for (i=0; i 3 | 4 | #include 5 | #include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | #define ECDF_BYTECEIL(numbits) (((numbits) + 7) >> 3) 12 | #define FUZZEC_NBPOINTS 1 13 | #define FUZZEC_MAXPOINTLEN 0x1000 14 | 15 | typedef struct _fuzzec_input_t { 16 | uint16_t tls_id; 17 | const uint8_t coord[FUZZEC_MAXPOINTLEN]; 18 | const uint8_t * coordx; 19 | const uint8_t * coordy; 20 | const uint8_t coord2[FUZZEC_MAXPOINTLEN]; 21 | const uint8_t * coord2x; 22 | const uint8_t * coord2y; 23 | const uint8_t * bignum; 24 | size_t coordSize; 25 | size_t bignumSize; 26 | //bit length of curve 27 | size_t groupBitLen; 28 | } fuzzec_input_t; 29 | 30 | /* TODO? more operations 31 | k2*G and (k2*G)+(k1*G) ? 32 | */ 33 | 34 | typedef enum 35 | { 36 | FUZZEC_ERROR_NONE = 0, 37 | FUZZEC_ERROR_UNSUPPORTED=1, 38 | FUZZEC_ERROR_UNKNOWN=2, 39 | } fuzzec_error_t; 40 | 41 | typedef struct _fuzzec_output_t { 42 | fuzzec_error_t errorCode; 43 | uint8_t points[FUZZEC_NBPOINTS][FUZZEC_MAXPOINTLEN]; 44 | size_t pointSizes[FUZZEC_NBPOINTS]; 45 | } fuzzec_output_t; 46 | 47 | typedef struct _fuzzec_module_t { 48 | const char * name; 49 | void (*process) (fuzzec_input_t *, fuzzec_output_t *); 50 | void (*add2p) (fuzzec_input_t *, fuzzec_output_t *); 51 | int (*init) (void); 52 | } fuzzec_module_t; 53 | 54 | #ifdef __cplusplus 55 | } 56 | #endif 57 | -------------------------------------------------------------------------------- /gencorp.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python 2 | 3 | # tool to generate corpus 4 | 5 | import os 6 | import binascii 7 | 8 | curves = { 9 | "secp192k1": (18, "FFFFFFFF FFFFFFFF FFFFFFFE 26F2FC17 0F69466A 74DEFD8C", "FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFEE37") , 10 | "secp192r1": (19, "FFFFFFFF FFFFFFFF FFFFFFFF 99DEF836 146BC9B1 B4D22830", "FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF FFFFFFFF") , 11 | "secp224k1": (20, "00000000 00000000 00000000 0001DCE8 D2EC6184 CAF0A971 769FB1F6", "FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFE56D") , 12 | "secp224r1": (21, "FFFFFFFF FFFFFFFF FFFFFFFF FFFF16A2 E0B8F03E 13DD2945 5C5C2A3C", "FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF 00000000 00000000 00000001") , 13 | "secp256k1": (22, "FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE BAAEDCE6 AF48A03B BFD25E8C D0364140", "FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFC2F") , 14 | "secp256r1": (23, "FFFFFFFF 00000000 FFFFFFFF FFFFFFFF BCE6FAAD A7179E84 F3B9CAC2 FC632550", "FFFFFFFF 00000001 00000000 00000000 00000000 FFFFFFFF FFFFFFFF FFFFFFFF") , 15 | "secp384r1": (24, "FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF C7634D81 F4372DDF 581A0DB2 48B0A77A ECEC196A CCC52972", "FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFE FFFFFFFF 00000000 00000000 FFFFFFFF") , 16 | "secp521r1": (25, "01FF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFA 51868783 BF2F966B 7FCC0148 F709A5D0 3BB5C9B8 899C47AE BB6FB71E 91386408", "01FF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF FFFFFFFF") , 17 | "brainpoolP256r1": (26, "A9FB57DB A1EEA9BC 3E660A90 9D838D71 8C397AA3 B561A6F7 901E0E82 974856A6", "A9FB57DB A1EEA9BC 3E660A90 9D838D72 6E3BF623 D5262028 2013481D 1F6E5377") , 18 | "brainpoolP384r1": (27, "8CB91E82 A3386D28 0F5D6F7E 50E641DF 152F7109 ED5456B3 1F166E6C AC0425A7 CF3AB6AF 6B7FC310 3B883202 E9046564", "8CB91E82 A3386D28 0F5D6F7E 50E641DF 152F7109 ED5456B4 12B1DA19 7FB71123 ACD3A729 901D1A71 87470013 3107EC53") , 19 | "brainpoolP512r1": (28, "AADD9DB8 DBE9C48B 3FD4E6AE 33C9FC07 CB308DB3 B3C9D20E D6639CCA 70330870 553E5C41 4CA92619 41866119 7FAC1047 1DB1D381 085DDADD B5879682 9CA90068", "AADD9DB8 DBE9C48B 3FD4E6AE 33C9FC07 CB308DB3 B3C9D20E D6639CCA 70330871 7D4D9B00 9BC66842 AECDA12A E6A380E6 2881FF2F 2D82C685 28AA6056 583A48F3") , 20 | } 21 | 22 | for c in curves: 23 | tlsid, order, prime = curves[c] 24 | order = order.replace(" ","") 25 | prime = prime.replace(" ","") 26 | 27 | #zero and identity double and triple 28 | for s in [0,1,2,3]: 29 | for y in [0, 1]: 30 | for x in [0, 1, 2, 3]: 31 | f = open("corpus/"+c+"0%d%d" % (x,y), "wb") 32 | f.write(bytes([0, tlsid])) 33 | f.write(bytes([0] * (len(order)-1))) 34 | f.write(bytes([s, y])) 35 | f.write(bytes([0] * (len(order)-1))) 36 | f.write(bytes([x])) 37 | f.close() 38 | 39 | for i in range(10): 40 | f = open("corpus/"+c+"random%d" % i, "wb") 41 | f.write(bytes([0, tlsid])) 42 | f.write(bytes(os.urandom(len(order)+1))) 43 | f.close() 44 | 45 | for i in range(10): 46 | f = open("corpus/"+c+"minus%d" % i, "wb") 47 | f.write(bytes([0, tlsid])) 48 | f.write(binascii.unhexlify(order)) 49 | f.write(bytes([i])) 50 | x=int(prime, 16) 51 | x-=i+1 52 | try: 53 | xb = binascii.unhexlify("%x" % x) 54 | except: 55 | #ugly hack for odd length strings 56 | xb = binascii.unhexlify("0%x" % x) 57 | f.write(xb) 58 | f.close() 59 | -------------------------------------------------------------------------------- /main.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | #include 5 | #include 6 | #include 7 | #include 8 | #include 9 | 10 | int LLVMFuzzerTestOneInput(const uint8_t *Data, size_t Size); 11 | 12 | static int runFile(const char *name) { 13 | FILE * fp; 14 | uint8_t *Data; 15 | size_t Size; 16 | 17 | //opens the file, get its size, and reads it into a buffer 18 | fp = fopen(name, "rb"); 19 | if (fp == NULL) { 20 | return 2; 21 | } 22 | if (fseek(fp, 0L, SEEK_END) != 0) { 23 | fclose(fp); 24 | return 2; 25 | } 26 | Size = ftell(fp); 27 | if (Size == (size_t) -1) { 28 | fclose(fp); 29 | return 2; 30 | } 31 | if (fseek(fp, 0L, SEEK_SET) != 0) { 32 | fclose(fp); 33 | return 2; 34 | } 35 | Data = malloc(Size); 36 | if (Data == NULL) { 37 | fclose(fp); 38 | return 2; 39 | } 40 | if (fread(Data, Size, 1, fp) != 1) { 41 | fclose(fp); 42 | return 2; 43 | } 44 | 45 | //lauch fuzzer 46 | LLVMFuzzerTestOneInput(Data, Size); 47 | fclose(fp); 48 | return 0; 49 | } 50 | 51 | int main(int argc, char** argv) 52 | { 53 | DIR *d; 54 | struct dirent *dir; 55 | int r = 0; 56 | int i; 57 | 58 | if (argc != 2) { 59 | return 1; 60 | } 61 | 62 | d = opendir(argv[1]); 63 | if (d == NULL) { 64 | //try as single file 65 | return runFile(argv[1]); 66 | return 0; 67 | } 68 | if (chdir(argv[1]) != 0) { 69 | closedir(d); 70 | printf("Invalid directory\n"); 71 | return 2; 72 | } 73 | while((dir = readdir(d)) != NULL) { 74 | //opens the file, get its size, and reads it into a buffer 75 | if (dir->d_type != DT_REG) { 76 | continue; 77 | } 78 | printf("Running file %s\n", dir->d_name); 79 | if (runFile(dir->d_name) != 0) { 80 | printf("Error while running file %s\n", dir->d_name); 81 | } 82 | } 83 | closedir(d); 84 | printf("Ok : whole directory finished\n"); 85 | 86 | return 0; 87 | } 88 | 89 | -------------------------------------------------------------------------------- /modules/botan.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | 5 | #include "../fuzz_ec.h" 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | #define BYTECEIL(numbits) (((numbits) + 7) >> 3) 12 | 13 | static const Botan::OID eccurvetypeFromTlsId(uint16_t tlsid) { 14 | switch (tlsid) { 15 | case 18: 16 | return Botan::OIDS::str2oid_or_empty("secp192k1"); 17 | case 19: 18 | return Botan::OIDS::str2oid_or_empty("secp192r1"); 19 | case 20: 20 | return Botan::OIDS::str2oid_or_empty("secp224k1"); 21 | case 21: 22 | return Botan::OIDS::str2oid_or_empty("secp224r1"); 23 | case 22: 24 | return Botan::OIDS::str2oid_or_empty("secp256k1"); 25 | case 23: 26 | return Botan::OIDS::str2oid_or_empty("secp256r1"); 27 | case 24: 28 | return Botan::OIDS::str2oid_or_empty("secp384r1"); 29 | case 25: 30 | return Botan::OIDS::str2oid_or_empty("secp521r1"); 31 | case 26: 32 | return Botan::OIDS::str2oid_or_empty("brainpool256r1"); 33 | case 27: 34 | return Botan::OIDS::str2oid_or_empty("brainpool384r1"); 35 | case 28: 36 | return Botan::OIDS::str2oid_or_empty("brainpool512r1"); 37 | } 38 | return Botan::OIDS::str2oid_or_empty(""); 39 | } 40 | 41 | static void botan_to_ecfuzzer(Botan::PointGFp pointZ, fuzzec_output_t * output, size_t index, size_t byteLen) { 42 | if (pointZ.is_zero()) { 43 | output->pointSizes[index] = 1; 44 | output->points[index][0] = 0; 45 | } else { 46 | output->pointSizes[index] = 1 + 2 * byteLen; 47 | output->points[index][0] = 4; 48 | pointZ.get_affine_x().binary_encode(output->points[index]+1, byteLen); 49 | pointZ.get_affine_y().binary_encode(output->points[index]+1+byteLen, byteLen); 50 | } 51 | } 52 | 53 | extern "C" void fuzzec_botan_process(fuzzec_input_t * input, fuzzec_output_t * output) { 54 | 55 | //initialize 56 | const Botan::OID oid = eccurvetypeFromTlsId(input->tls_id); 57 | if (oid.to_string().length() == 0) { 58 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 59 | return; 60 | } 61 | Botan::EC_Group group(oid); 62 | Botan::BigInt scalar(input->bignum, input->bignumSize); 63 | Botan::BigInt coordx(input->coordx, input->coordSize); 64 | Botan::BigInt coordy(input->coordy, input->coordSize); 65 | Botan::PointGFp point1 = group.point(coordx, coordy); 66 | 67 | //elliptic curve computations 68 | Botan::PointGFp point2 = point1 * scalar; 69 | 70 | //format output 71 | botan_to_ecfuzzer(point2, output, 0, BYTECEIL(input->groupBitLen)); 72 | 73 | output->errorCode = FUZZEC_ERROR_NONE; 74 | 75 | return; 76 | } 77 | 78 | extern "C" void fuzzec_botanblind_process(fuzzec_input_t * input, fuzzec_output_t * output) { 79 | 80 | //initialize 81 | const Botan::OID oid = eccurvetypeFromTlsId(input->tls_id); 82 | if (oid.to_string().length() == 0) { 83 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 84 | return; 85 | } 86 | Botan::EC_Group group(oid); 87 | Botan::BigInt scalar(input->bignum, input->bignumSize); 88 | Botan::BigInt coordx(input->coordx, input->coordSize); 89 | Botan::BigInt coordy(input->coordy, input->coordSize); 90 | Botan::PointGFp point1 = group.point(coordx, coordy); 91 | static std::vector ws(Botan::PointGFp::WORKSPACE_SIZE); 92 | static Botan::ChaCha_RNG rng(Botan::secure_vector(32)); 93 | //elliptic curve computations 94 | Botan::PointGFp point2 = group.blinded_var_point_multiply(point1, scalar, rng, ws); 95 | 96 | //format output 97 | botan_to_ecfuzzer(point2, output, 0, BYTECEIL(input->groupBitLen)); 98 | 99 | output->errorCode = FUZZEC_ERROR_NONE; 100 | 101 | return; 102 | } 103 | 104 | extern "C" void fuzzec_botan_add(fuzzec_input_t * input, fuzzec_output_t * output) { 105 | const Botan::OID oid = eccurvetypeFromTlsId(input->tls_id); 106 | if (oid.to_string().length() == 0) { 107 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 108 | return; 109 | } 110 | Botan::EC_Group group(oid); 111 | Botan::BigInt coordx(input->coordx, input->coordSize); 112 | Botan::BigInt coordy(input->coordy, input->coordSize); 113 | Botan::PointGFp point1 = group.point(coordx, coordy); 114 | Botan::BigInt coord2x(input->coord2x, input->coordSize); 115 | Botan::BigInt coord2y(input->coord2y, input->coordSize); 116 | Botan::PointGFp point2 = group.point(coord2x, coord2y); 117 | 118 | //elliptic curve computations 119 | Botan::PointGFp point3 = point1 + point2; 120 | 121 | //format output 122 | botan_to_ecfuzzer(point3, output, 0, BYTECEIL(input->groupBitLen)); 123 | 124 | output->errorCode = FUZZEC_ERROR_NONE; 125 | 126 | return; 127 | } 128 | -------------------------------------------------------------------------------- /modules/cryptopp.cpp: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | 5 | #include "../fuzz_ec.h" 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | static const CryptoPP::OID eccurvetypeFromTlsId(uint16_t tlsid) { 12 | switch (tlsid) { 13 | case 18: 14 | return CryptoPP::ASN1::secp192k1(); 15 | case 19: 16 | return CryptoPP::ASN1::secp192r1(); 17 | case 20: 18 | return CryptoPP::ASN1::secp224k1(); 19 | case 21: 20 | return CryptoPP::ASN1::secp224r1(); 21 | case 22: 22 | return CryptoPP::ASN1::secp256k1(); 23 | case 23: 24 | return CryptoPP::ASN1::secp256r1(); 25 | case 24: 26 | return CryptoPP::ASN1::secp384r1(); 27 | case 25: 28 | return CryptoPP::ASN1::secp521r1(); 29 | case 26: 30 | return CryptoPP::ASN1::brainpoolP256r1(); 31 | case 27: 32 | return CryptoPP::ASN1::brainpoolP384r1(); 33 | case 28: 34 | return CryptoPP::ASN1::brainpoolP512r1(); 35 | } 36 | return NULL; 37 | } 38 | 39 | extern "C" void fuzzec_cryptopp_process(fuzzec_input_t * input, fuzzec_output_t * output) { 40 | #ifdef FUZZ_CRYPTOPP_DISABLED 41 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 42 | return; 43 | #endif 44 | //initialize 45 | const CryptoPP::OID oid = eccurvetypeFromTlsId(input->tls_id); 46 | if (oid == NULL) { 47 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 48 | return; 49 | } 50 | CryptoPP::DL_GroupParameters_EC params(oid); 51 | CryptoPP::ECP ec = params.GetCurve(); 52 | CryptoPP::Integer coordx(input->coordx, input->coordSize); 53 | CryptoPP::Integer coordy(input->coordy, input->coordSize); 54 | CryptoPP::ECP::Point point1(coordx, coordy); 55 | CryptoPP::Integer scalar1(input->bignum, input->bignumSize); 56 | 57 | //elliptic curve computations 58 | //P2=scalar2*P1 59 | CryptoPP::ECP::Point point2(ec.Multiply(scalar1, point1)); 60 | 61 | //format output 62 | ec.EncodePoint(output->points[0], point2, false); 63 | if (output->points[0][0] == 0) { 64 | output->pointSizes[0] = 1; 65 | } else { 66 | output->pointSizes[0] = ec.EncodedPointSize(); 67 | } 68 | 69 | output->errorCode = FUZZEC_ERROR_NONE; 70 | 71 | return; 72 | } 73 | 74 | extern "C" void fuzzec_cryptopp_add(fuzzec_input_t * input, fuzzec_output_t * output) { 75 | #ifdef FUZZ_CRYPTOPP_DISABLED 76 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 77 | return; 78 | #endif 79 | //initialize 80 | const CryptoPP::OID oid = eccurvetypeFromTlsId(input->tls_id); 81 | if (oid == NULL) { 82 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 83 | return; 84 | } 85 | CryptoPP::DL_GroupParameters_EC params(oid); 86 | CryptoPP::ECP ec = params.GetCurve(); 87 | CryptoPP::Integer coordx(input->coordx, input->coordSize); 88 | CryptoPP::Integer coordy(input->coordy, input->coordSize); 89 | CryptoPP::ECP::Point point1(coordx, coordy); 90 | CryptoPP::Integer coord2x(input->coord2x, input->coordSize); 91 | CryptoPP::Integer coord2y(input->coord2y, input->coordSize); 92 | CryptoPP::ECP::Point point2(coord2x, coord2y); 93 | 94 | //elliptic curve computations 95 | //P3=P2+P1 96 | CryptoPP::ECP::Point point3(ec.Add(point1, point2)); 97 | 98 | //format output 99 | ec.EncodePoint(output->points[0], point3, false); 100 | if (output->points[0][0] == 0) { 101 | output->pointSizes[0] = 1; 102 | } else { 103 | output->pointSizes[0] = ec.EncodedPointSize(); 104 | } 105 | 106 | output->errorCode = FUZZEC_ERROR_NONE; 107 | 108 | return; 109 | } 110 | -------------------------------------------------------------------------------- /modules/ecadd.js: -------------------------------------------------------------------------------- 1 | //var ec = new EC(process.argv[2]); 2 | var pt1 = ec.curve.decodePoint(inputPoint, "hex") 3 | var pt2 = ec.curve.decodePoint(inputPoint2, "hex") 4 | var pt3 = pt1.add(pt2) 5 | r = pt3.encode('hex') 6 | //console.log(r); 7 | -------------------------------------------------------------------------------- /modules/ecinit.js: -------------------------------------------------------------------------------- 1 | EC = require('elliptic').ec; 2 | utils = require('elliptic').utils; 3 | //global declarations with precomputations 4 | p192 = new EC("p192"); 5 | p224 = new EC("p224"); 6 | p256 = new EC("p256"); 7 | p384 = new EC("p384"); 8 | p521 = new EC("p521"); 9 | secp256k1 = new EC("secp256k1"); 10 | -------------------------------------------------------------------------------- /modules/ecmult.js: -------------------------------------------------------------------------------- 1 | //var ec = new EC(process.argv[2]); 2 | var pt1 = ec.curve.decodePoint(inputPoint, "hex") 3 | var sc = utils.toArray(inputScalar, "hex") 4 | var pt2 = pt1.mul(sc) 5 | r = pt2.encode('hex') 6 | //console.log(r); 7 | -------------------------------------------------------------------------------- /modules/elliptic.go: -------------------------------------------------------------------------------- 1 | package main 2 | 3 | import "C" 4 | 5 | import ( 6 | "crypto/elliptic" 7 | // "fmt" 8 | "math/big" 9 | ) 10 | 11 | //go build -o elliptic.a -buildmode=c-archive elliptic.go 12 | 13 | func getCurve(tlsid uint16) elliptic.Curve { 14 | switch tlsid { 15 | case 21: 16 | return elliptic.P224() 17 | case 23: 18 | return elliptic.P256() 19 | case 24: 20 | return elliptic.P384() 21 | case 25: 22 | return elliptic.P521() 23 | } 24 | return nil 25 | } 26 | 27 | //export GoProcess 28 | func GoProcess(tlsid uint16, coordx []byte, coordy []byte, scalar []byte, output []byte) int { 29 | curve := getCurve(tlsid) 30 | if curve == nil { 31 | return 1 //FUZZEC_ERROR_UNSUPPORTED 32 | } 33 | 34 | px := new(big.Int) 35 | px.SetBytes(coordx) 36 | py := new(big.Int) 37 | py.SetBytes(coordy) 38 | 39 | rx, ry := curve.ScalarMult(px, py, scalar) 40 | if rx.BitLen() == 0 && ry.BitLen() == 0 { 41 | output[0] = 0 42 | return 0 //FUZZEC_ERROR_NONE 43 | } 44 | res := elliptic.Marshal(curve, rx, ry) 45 | if len(res) != len(output) { 46 | return 2 //FUZZEC_ERROR_UNKNOWN 47 | } 48 | copy(output, res) 49 | return 0 //FUZZEC_ERROR_NONE 50 | } 51 | 52 | //export GoAdd 53 | func GoAdd(tlsid uint16, coordx []byte, coordy []byte, coord2x []byte, coord2y []byte, output []byte) int { 54 | curve := getCurve(tlsid) 55 | if curve == nil { 56 | return 1 //FUZZEC_ERROR_UNSUPPORTED 57 | } 58 | 59 | px := new(big.Int) 60 | px.SetBytes(coordx) 61 | py := new(big.Int) 62 | py.SetBytes(coordy) 63 | qx := new(big.Int) 64 | qx.SetBytes(coord2x) 65 | qy := new(big.Int) 66 | qy.SetBytes(coord2y) 67 | 68 | rx, ry := curve.Add(px, py, qx, qy) 69 | if rx.BitLen() == 0 && ry.BitLen() == 0 { 70 | output[0] = 0 71 | return 0 //FUZZEC_ERROR_NONE 72 | } 73 | res := elliptic.Marshal(curve, rx, ry) 74 | if len(res) != len(output) { 75 | return 2 //FUZZEC_ERROR_UNKNOWN 76 | } 77 | copy(output, res) 78 | return 0 //FUZZEC_ERROR_NONE 79 | } 80 | 81 | func main() {} 82 | -------------------------------------------------------------------------------- /modules/gcrypt.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | 5 | #include "../fuzz_ec.h" 6 | #include 7 | #include 8 | 9 | 10 | static const char * eccurvetypeFromTlsId(uint16_t tlsid) { 11 | switch (tlsid) { 12 | case 19: 13 | return "NIST P-192"; 14 | case 21: 15 | return "NIST P-224"; 16 | case 22: 17 | return "secp256k1"; 18 | case 23: 19 | return "NIST P-256"; 20 | case 24: 21 | return "NIST P-384"; 22 | case 25: 23 | return "NIST P-521"; 24 | case 26: 25 | return "brainpoolP256r1"; 26 | case 27: 27 | return "brainpoolP384r1"; 28 | case 28: 29 | return "brainpoolP512r1"; 30 | } 31 | return ""; 32 | } 33 | 34 | static void my_gcry_logger (void *dummy, int level, const char *format, va_list arg_ptr) { 35 | return; 36 | } 37 | 38 | int fuzzec_gcrypt_init(){ 39 | gpg_error_t err; 40 | err=gcry_control(GCRYCTL_DISABLE_SECMEM, 0); 41 | if (err) 42 | return 1; 43 | err=gcry_control(GCRYCTL_ENABLE_QUICK_RANDOM, 0); 44 | if (err) 45 | return 1; 46 | err=gcry_control(GCRYCTL_INITIALIZATION_FINISHED, 0); 47 | if (err) 48 | return 1; 49 | gcry_set_log_handler (my_gcry_logger, NULL); 50 | return 0; 51 | } 52 | 53 | static void gcrypt_to_ecfuzzer(gcry_mpi_point_t pointZ, fuzzec_output_t * output, size_t index, size_t byteLen, gcry_ctx_t ctx) { 54 | gcry_mpi_t coordx; 55 | gcry_mpi_t coordy; 56 | gcry_mpi_t coordz; 57 | gpg_error_t err; 58 | size_t i, realLen, lapse; 59 | 60 | coordx = gcry_mpi_new(0); 61 | coordy = gcry_mpi_new(0); 62 | 63 | if (gcry_mpi_ec_get_affine (coordx, coordy, pointZ, ctx)) { 64 | coordz = gcry_mpi_new(0); 65 | gcry_mpi_point_get(coordx, coordy, coordz, pointZ); 66 | if (gcry_mpi_get_nbits(coordz) == 0) { 67 | output->pointSizes[index] = 1; 68 | output->points[index][0] = 0; 69 | } else { 70 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 71 | gcry_mpi_release(coordx); 72 | gcry_mpi_release(coordy); 73 | gcry_mpi_release(coordz); 74 | return; 75 | } 76 | gcry_mpi_release(coordz); 77 | } else if (gcry_mpi_get_nbits(coordx) == 0 && gcry_mpi_get_nbits(coordy) == 0) { 78 | output->pointSizes[index] = 1; 79 | output->points[index][0] = 0; 80 | } else { 81 | output->pointSizes[index] = 1 + 2 * byteLen; 82 | //uncompressed form 83 | memset(output->points[index], 0,FUZZEC_MAXPOINTLEN); 84 | output->points[index][0] = 4; 85 | 86 | err = gcry_mpi_print(GCRYMPI_FMT_USG, output->points[index]+1, byteLen, &realLen, coordx); 87 | if (err) { 88 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 89 | gcry_mpi_release(coordx); 90 | gcry_mpi_release(coordy); 91 | return; 92 | } 93 | if (realLen < byteLen) { 94 | lapse = byteLen - realLen; 95 | for (i=byteLen; i>lapse; i--) { 96 | output->points[index][i] = output->points[index][i-lapse]; 97 | } 98 | for(i=0; ipoints[index][i+1]=0; 100 | } 101 | } 102 | err = gcry_mpi_print(GCRYMPI_FMT_USG, output->points[index]+1+byteLen, byteLen, &realLen, coordy); 103 | if (err) { 104 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 105 | gcry_mpi_release(coordx); 106 | gcry_mpi_release(coordy); 107 | return; 108 | } 109 | if (realLen < byteLen) { 110 | lapse = byteLen - realLen; 111 | for (i=byteLen; i>lapse; i--) { 112 | output->points[index][byteLen+i] = output->points[index][byteLen+i-lapse]; 113 | } 114 | for(i=0; ipoints[index][1+byteLen+i]=0; 116 | } 117 | } 118 | 119 | } 120 | gcry_mpi_release(coordx); 121 | gcry_mpi_release(coordy); 122 | } 123 | 124 | void fuzzec_gcrypt_process(fuzzec_input_t * input, fuzzec_output_t * output) { 125 | gpg_error_t err; 126 | gcry_ctx_t ctx; 127 | gcry_mpi_t scalar1; 128 | gcry_mpi_t scalar2; 129 | gcry_mpi_t scalarz; 130 | gcry_mpi_point_t point1 = NULL; 131 | gcry_mpi_point_t point2 = NULL; 132 | 133 | //initialize 134 | //TODO fuzz custom curves 135 | err = gcry_mpi_ec_new (&ctx, NULL, eccurvetypeFromTlsId(input->tls_id)); 136 | if (err) { 137 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 138 | return; 139 | } 140 | 141 | err = gcry_mpi_scan(&scalar1, GCRYMPI_FMT_USG, input->coordx, input->coordSize, NULL); 142 | if (err) { 143 | gcry_ctx_release(ctx); 144 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 145 | return; 146 | } 147 | err = gcry_mpi_scan(&scalar2, GCRYMPI_FMT_USG, input->coordy, input->coordSize, NULL); 148 | if (err) { 149 | gcry_mpi_release(scalar1); 150 | gcry_ctx_release(ctx); 151 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 152 | return; 153 | } 154 | point1 = gcry_mpi_point_new(0); 155 | scalarz = gcry_mpi_set_ui (NULL, 1); 156 | gcry_mpi_point_set(point1, scalar1, scalar2, scalarz); 157 | gcry_mpi_release(scalarz); 158 | point2 = gcry_mpi_point_new(0); 159 | gcry_mpi_release(scalar1); 160 | err = gcry_mpi_scan(&scalar1, GCRYMPI_FMT_USG, input->bignum, input->bignumSize, NULL); 161 | if (err) { 162 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 163 | goto end; 164 | } 165 | 166 | //elliptic curve computations 167 | //P2=scalar2*P1 168 | gcry_mpi_ec_mul(point2, scalar1, point1, ctx); 169 | 170 | //format output 171 | gcrypt_to_ecfuzzer(point2, output, 0, ECDF_BYTECEIL(input->groupBitLen), ctx); 172 | 173 | output->errorCode = FUZZEC_ERROR_NONE; 174 | 175 | end: 176 | if (point1) { 177 | gcry_mpi_point_release(point1); 178 | } 179 | if (point2) { 180 | gcry_mpi_point_release(point2); 181 | } 182 | gcry_mpi_release(scalar2); 183 | gcry_mpi_release(scalar1); 184 | gcry_ctx_release(ctx); 185 | return; 186 | } 187 | 188 | void fuzzec_gcrypt_add(fuzzec_input_t * input, fuzzec_output_t * output) { 189 | gpg_error_t err; 190 | gcry_ctx_t ctx; 191 | gcry_mpi_t scalar1; 192 | gcry_mpi_t scalar2; 193 | gcry_mpi_t scalarz; 194 | gcry_mpi_point_t point1 = NULL; 195 | gcry_mpi_point_t point2 = NULL; 196 | gcry_mpi_point_t point3 = NULL; 197 | 198 | //initialize 199 | //TODO fuzz custom curves 200 | err = gcry_mpi_ec_new (&ctx, NULL, eccurvetypeFromTlsId(input->tls_id)); 201 | if (err) { 202 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 203 | return; 204 | } 205 | 206 | err = gcry_mpi_scan(&scalar1, GCRYMPI_FMT_USG, input->coordx, input->coordSize, NULL); 207 | if (err) { 208 | gcry_ctx_release(ctx); 209 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 210 | return; 211 | } 212 | err = gcry_mpi_scan(&scalar2, GCRYMPI_FMT_USG, input->coordy, input->coordSize, NULL); 213 | if (err) { 214 | gcry_mpi_release(scalar1); 215 | gcry_ctx_release(ctx); 216 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 217 | return; 218 | } 219 | point1 = gcry_mpi_point_new(0); 220 | scalarz = gcry_mpi_set_ui (NULL, 1); 221 | gcry_mpi_point_set(point1, scalar1, scalar2, scalarz); 222 | gcry_mpi_release(scalarz); 223 | gcry_mpi_release(scalar1); 224 | gcry_mpi_release(scalar2); 225 | 226 | err = gcry_mpi_scan(&scalar1, GCRYMPI_FMT_USG, input->coord2x, input->coordSize, NULL); 227 | if (err) { 228 | gcry_ctx_release(ctx); 229 | gcry_mpi_point_release(point1); 230 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 231 | return; 232 | } 233 | err = gcry_mpi_scan(&scalar2, GCRYMPI_FMT_USG, input->coord2y, input->coordSize, NULL); 234 | if (err) { 235 | gcry_mpi_release(scalar1); 236 | gcry_ctx_release(ctx); 237 | gcry_mpi_point_release(point1); 238 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 239 | return; 240 | } 241 | point2 = gcry_mpi_point_new(0); 242 | scalarz = gcry_mpi_set_ui (NULL, 1); 243 | gcry_mpi_point_set(point2, scalar1, scalar2, scalarz); 244 | gcry_mpi_release(scalarz); 245 | 246 | point3 = gcry_mpi_point_new(0); 247 | 248 | //elliptic curve computations 249 | //P3=P2+P1 250 | gcry_mpi_ec_add(point3, point2, point1, ctx); 251 | 252 | //format output 253 | gcrypt_to_ecfuzzer(point3, output, 0, ECDF_BYTECEIL(input->groupBitLen), ctx); 254 | 255 | output->errorCode = FUZZEC_ERROR_NONE; 256 | 257 | if (point1) { 258 | gcry_mpi_point_release(point1); 259 | } 260 | if (point2) { 261 | gcry_mpi_point_release(point2); 262 | } 263 | if (point3) { 264 | gcry_mpi_point_release(point3); 265 | } 266 | gcry_mpi_release(scalar2); 267 | gcry_mpi_release(scalar1); 268 | gcry_ctx_release(ctx); 269 | return; 270 | } 271 | -------------------------------------------------------------------------------- /modules/golang.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2020 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | 5 | #include "../fuzz_ec.h" 6 | #include "../goelliptic.h" 7 | #include 8 | #include 9 | 10 | void fuzzec_golang_process(fuzzec_input_t * input, fuzzec_output_t * output) { 11 | size_t clen = ECDF_BYTECEIL(input->groupBitLen); 12 | GoSlice px = {(void *) input->coordx, clen, clen}; 13 | GoSlice py = {(void *) input->coordy, clen, clen}; 14 | GoSlice sc = {(void *) input->bignum, clen, clen}; 15 | GoSlice out = {output->points[0], 1 + 2 * clen, 1 + 2 * clen}; 16 | 17 | int r = GoProcess(input->tls_id, px, py, sc, out); 18 | if (output->points[0][0] == 0) { 19 | output->pointSizes[0] = 1; 20 | } else { 21 | output->pointSizes[0] = 1 + 2 * clen; 22 | } 23 | output->errorCode = r; 24 | } 25 | 26 | void fuzzec_golang_add(fuzzec_input_t * input, fuzzec_output_t * output) { 27 | size_t clen = ECDF_BYTECEIL(input->groupBitLen); 28 | GoSlice px = {(void *) input->coordx, clen, clen}; 29 | GoSlice py = {(void *) input->coordy, clen, clen}; 30 | GoSlice qx = {(void *) input->coord2x, clen, clen}; 31 | GoSlice qy = {(void *) input->coord2y, clen, clen}; 32 | GoSlice out = {output->points[0], 1 + 2 * clen, 1 + 2 * clen}; 33 | 34 | int r = GoAdd(input->tls_id, px, py, qx, qy, out); 35 | if (output->points[0][0] == 0) { 36 | output->pointSizes[0] = 1; 37 | } else { 38 | output->pointSizes[0] = 1 + 2 * clen; 39 | } 40 | output->errorCode = r; 41 | } 42 | -------------------------------------------------------------------------------- /modules/libecc.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | 5 | #include "../fuzz_ec.h" 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | static ec_curve_type eccurvetypeFromTlsId(uint16_t tlsid) { 13 | switch (tlsid) { 14 | //TODO use curves GOST and FRP256V1 15 | case 19: 16 | return SECP192R1; 17 | case 21: 18 | return SECP224R1; 19 | case 23: 20 | return SECP256R1; 21 | case 24: 22 | return SECP384R1; 23 | case 25: 24 | return SECP521R1; 25 | case 26: 26 | return BRAINPOOLP256R1; 27 | case 27: 28 | return BRAINPOOLP384R1; 29 | case 28: 30 | return BRAINPOOLP512R1; 31 | } 32 | return UNKNOWN_CURVE; 33 | } 34 | 35 | static void libecc_to_ecfuzzer(prj_pt *pointZ, fuzzec_output_t * output, size_t index, size_t byteLen) { 36 | aff_pt point; 37 | 38 | int ret; 39 | int iszero; 40 | if (prj_pt_iszero(pointZ, &iszero) || iszero) { 41 | //null point is zero 42 | output->pointSizes[index] = 1; 43 | output->points[index][0] = 0; 44 | output->errorCode = FUZZEC_ERROR_NONE; 45 | return; 46 | } 47 | prj_pt_to_aff(&point, pointZ); 48 | 49 | output->pointSizes[index] = 1 + 2 * byteLen; 50 | //uncompressed form 51 | output->points[index][0] = 4; 52 | fp_export_to_buf(output->points[index]+1, byteLen, &(point.x)); 53 | fp_export_to_buf(output->points[index]+1+byteLen, byteLen, &(point.y)); 54 | aff_pt_uninit(&point); 55 | } 56 | 57 | void fuzzec_libecc_process_aux(fuzzec_input_t * input, fuzzec_output_t * output, void (*multiplyFunction)(prj_pt_t, nn_src_t, prj_pt_src_t)) { 58 | const ec_str_params *the_curve_const_parameters = NULL; 59 | ec_params curve_params; 60 | nn scalar1; 61 | fp coordx; 62 | fp coordy; 63 | fp coordz; 64 | prj_pt pointZ1; 65 | prj_pt pointZ2; 66 | size_t byteLen; 67 | int ret, iszero; 68 | 69 | //initialize 70 | ret = ec_get_curve_params_by_type(eccurvetypeFromTlsId(input->tls_id), &the_curve_const_parameters); 71 | if (ret || the_curve_const_parameters == NULL) { 72 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 73 | return; 74 | } 75 | import_params(&curve_params, the_curve_const_parameters); 76 | prj_pt_init(&pointZ2, &(curve_params.ec_curve)); 77 | fp_init_from_buf(&coordx, &(curve_params.ec_fp), input->coordx, input->coordSize); 78 | fp_init_from_buf(&coordy, &(curve_params.ec_fp), input->coordy, input->coordSize); 79 | fp_init(&coordz, &(curve_params.ec_fp)); 80 | fp_one(&coordz); 81 | prj_pt_init_from_coords(&pointZ1, &(curve_params.ec_curve), &coordx, &coordy, &coordz); 82 | fp_uninit(&coordx); 83 | fp_uninit(&coordy); 84 | fp_uninit(&coordz); 85 | nn_init_from_buf(&scalar1, input->bignum, input->bignumSize); 86 | 87 | //elliptic curve computations 88 | //P2=scalar2*P1 89 | ret = nn_iszero(&scalar1, &iszero); 90 | if (ret || iszero) { 91 | //multiplication by 0 is not allowed 92 | prj_pt_zero(&pointZ2); 93 | } else { 94 | multiplyFunction(&pointZ2, &scalar1, &pointZ1); 95 | } 96 | 97 | //format output 98 | byteLen = ECDF_BYTECEIL(curve_params.ec_fp.p_bitlen); 99 | libecc_to_ecfuzzer(&pointZ2, output, 0, byteLen); 100 | 101 | output->errorCode = FUZZEC_ERROR_NONE; 102 | 103 | prj_pt_uninit(&pointZ1); 104 | prj_pt_uninit(&pointZ2); 105 | nn_uninit(&scalar1); 106 | return; 107 | } 108 | 109 | void fuzzec_libecc_process(fuzzec_input_t * input, fuzzec_output_t * output) { 110 | fuzzec_libecc_process_aux(input, output, prj_pt_mul); 111 | } 112 | 113 | void fuzzec_libecc_add(fuzzec_input_t * input, fuzzec_output_t * output) { 114 | const ec_str_params *the_curve_const_parameters = NULL; 115 | ec_params curve_params; 116 | fp coordx; 117 | fp coordy; 118 | fp coordz; 119 | prj_pt pointZ1; 120 | prj_pt pointZ2; 121 | prj_pt pointZ3; 122 | size_t byteLen; 123 | 124 | //initialize 125 | int ret = ec_get_curve_params_by_type(eccurvetypeFromTlsId(input->tls_id), &the_curve_const_parameters); 126 | if (ret || the_curve_const_parameters == NULL) { 127 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 128 | return; 129 | } 130 | import_params(&curve_params, the_curve_const_parameters); 131 | prj_pt_init(&pointZ3, &(curve_params.ec_curve)); 132 | fp_init_from_buf(&coordx, &(curve_params.ec_fp), input->coordx, input->coordSize); 133 | fp_init_from_buf(&coordy, &(curve_params.ec_fp), input->coordy, input->coordSize); 134 | fp_init(&coordz, &(curve_params.ec_fp)); 135 | fp_one(&coordz); 136 | prj_pt_init_from_coords(&pointZ1, &(curve_params.ec_curve), &coordx, &coordy, &coordz); 137 | fp_uninit(&coordx); 138 | fp_uninit(&coordy); 139 | fp_uninit(&coordz); 140 | fp_init_from_buf(&coordx, &(curve_params.ec_fp), input->coord2x, input->coordSize); 141 | fp_init_from_buf(&coordy, &(curve_params.ec_fp), input->coord2y, input->coordSize); 142 | fp_init(&coordz, &(curve_params.ec_fp)); 143 | fp_one(&coordz); 144 | prj_pt_init_from_coords(&pointZ2, &(curve_params.ec_curve), &coordx, &coordy, &coordz); 145 | fp_uninit(&coordx); 146 | fp_uninit(&coordy); 147 | fp_uninit(&coordz); 148 | 149 | //elliptic curve computations 150 | //P3=P2+P1 151 | prj_pt_add(&pointZ3, &pointZ2, &pointZ1); 152 | 153 | //format output 154 | byteLen = ECDF_BYTECEIL(curve_params.ec_fp.p_bitlen); 155 | libecc_to_ecfuzzer(&pointZ3, output, 0, byteLen); 156 | 157 | output->errorCode = FUZZEC_ERROR_NONE; 158 | 159 | prj_pt_uninit(&pointZ1); 160 | prj_pt_uninit(&pointZ2); 161 | prj_pt_uninit(&pointZ3); 162 | return; 163 | } 164 | 165 | static int fimport(unsigned char *buf, u16 buflen, const char *path) 166 | { 167 | u16 rem = buflen, copied = 0; 168 | ssize_t ret; 169 | int fd; 170 | fd = open(path, O_RDONLY); 171 | if (fd == -1) { 172 | printf("Unable to open input file %s\n", path); 173 | return -1; 174 | } 175 | while (rem) { 176 | ret = (int)read(fd, buf + copied, rem); 177 | if (ret <= 0) { 178 | break; 179 | } else { 180 | rem -= (u16)ret; 181 | copied += (u16)ret; 182 | } 183 | } 184 | close(fd); 185 | return (copied == buflen) ? 0 : -1; 186 | } 187 | 188 | int get_random(unsigned char *buf, u16 len) 189 | { 190 | return fimport(buf, len, "/dev/urandom"); 191 | } 192 | -------------------------------------------------------------------------------- /modules/mbedtls.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | 5 | #include "../fuzz_ec.h" 6 | #include 7 | #include 8 | 9 | void fuzzec_mbedtls_process(fuzzec_input_t * input, fuzzec_output_t * output) { 10 | mbedtls_ecp_group group; 11 | const mbedtls_ecp_curve_info *curve_info; 12 | mbedtls_mpi scalar1; 13 | mbedtls_ecp_point point1; 14 | mbedtls_ecp_point point2; 15 | int r; 16 | 17 | mbedtls_ecp_group_init(&group); 18 | mbedtls_mpi_init(&scalar1); 19 | mbedtls_ecp_point_init(&point1); 20 | mbedtls_ecp_point_init(&point2); 21 | 22 | //initialize 23 | if( ( curve_info = mbedtls_ecp_curve_info_from_tls_id( input->tls_id ) ) == NULL ) { 24 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 25 | goto end; 26 | } 27 | if (mbedtls_ecp_group_load( &group, curve_info->grp_id ) != 0) { 28 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 29 | goto end; 30 | } 31 | if (mbedtls_mpi_read_binary(&scalar1, input->bignum, input->bignumSize)) { 32 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 33 | goto end; 34 | } 35 | if (mbedtls_ecp_point_read_binary( &group, &point1, input->coord, 2*input->coordSize+1)){ 36 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 37 | goto end; 38 | } 39 | 40 | //elliptic curve computations 41 | //P2=scalar1*P1 42 | if (mbedtls_mpi_cmp_int(&scalar1, 0) == 0) { 43 | //multiplication by 0 is MBEDTLS_ERR_ECP_BAD_INPUT_DATA 44 | mbedtls_ecp_set_zero(&point1); 45 | } 46 | else { 47 | r = mbedtls_ecp_mul(&group, &point2, &scalar1, &point1, NULL, NULL); 48 | if (r == MBEDTLS_ERR_ECP_INVALID_KEY || r == MBEDTLS_ERR_ECP_BAD_INPUT_DATA) { 49 | //mbedtls enforces the scalar to be lesser than curve order 50 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 51 | goto end; 52 | } 53 | else if (r != 0) { 54 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 55 | goto end; 56 | } 57 | } 58 | 59 | //format output 60 | if (mbedtls_ecp_point_write_binary(&group, &point2, MBEDTLS_ECP_PF_UNCOMPRESSED, &output->pointSizes[0], output->points[0], FUZZEC_MAXPOINTLEN) != 0 ) { 61 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 62 | goto end; 63 | } 64 | output->errorCode = FUZZEC_ERROR_NONE; 65 | 66 | end: 67 | mbedtls_mpi_free(&scalar1); 68 | mbedtls_ecp_point_free(&point1); 69 | mbedtls_ecp_point_free(&point2); 70 | mbedtls_ecp_group_free(&group); 71 | return; 72 | } 73 | 74 | void fuzzec_mbedtls_add(fuzzec_input_t * input, fuzzec_output_t * output) { 75 | mbedtls_ecp_group group; 76 | const mbedtls_ecp_curve_info *curve_info; 77 | mbedtls_ecp_point point1; 78 | mbedtls_ecp_point point2; 79 | mbedtls_ecp_point point3; 80 | mbedtls_mpi scalar1; 81 | int r; 82 | 83 | mbedtls_ecp_group_init(&group); 84 | mbedtls_mpi_init(&scalar1); 85 | mbedtls_ecp_point_init(&point1); 86 | mbedtls_ecp_point_init(&point2); 87 | mbedtls_ecp_point_init(&point3); 88 | 89 | //initialize 90 | if (mbedtls_mpi_lset(&scalar1, 1) != 0) { 91 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 92 | goto end; 93 | } 94 | if( ( curve_info = mbedtls_ecp_curve_info_from_tls_id( input->tls_id ) ) == NULL ) { 95 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 96 | goto end; 97 | } 98 | if (mbedtls_ecp_group_load( &group, curve_info->grp_id ) != 0) { 99 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 100 | goto end; 101 | } 102 | if (mbedtls_ecp_point_read_binary( &group, &point1, input->coord, 2*input->coordSize+1)){ 103 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 104 | goto end; 105 | } 106 | if (mbedtls_ecp_point_read_binary( &group, &point2, input->coord2, 2*input->coordSize+1)){ 107 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 108 | goto end; 109 | } 110 | 111 | //elliptic curve computations 112 | //P3=P2+P1 113 | r = mbedtls_ecp_muladd(&group, &point3, &scalar1, &point2, &scalar1, &point1); 114 | if (r == MBEDTLS_ERR_ECP_INVALID_KEY || r == MBEDTLS_ERR_ECP_BAD_INPUT_DATA) { 115 | //mbedtls enforces the scalar to be lesser than curve order 116 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 117 | goto end; 118 | } 119 | else if (r != 0) { 120 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 121 | goto end; 122 | } 123 | 124 | //format output 125 | if (mbedtls_ecp_point_write_binary(&group, &point3, MBEDTLS_ECP_PF_UNCOMPRESSED, &output->pointSizes[0], output->points[0], FUZZEC_MAXPOINTLEN) != 0 ) { 126 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 127 | goto end; 128 | } 129 | output->errorCode = FUZZEC_ERROR_NONE; 130 | 131 | end: 132 | mbedtls_mpi_free(&scalar1); 133 | mbedtls_ecp_point_free(&point1); 134 | mbedtls_ecp_point_free(&point2); 135 | mbedtls_ecp_point_free(&point3); 136 | mbedtls_ecp_group_free(&group); 137 | return; 138 | } 139 | -------------------------------------------------------------------------------- /modules/nettle.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | 5 | #include "../fuzz_ec.h" 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | static const struct ecc_curve * tls1_group_id_lookup(uint16_t tlsid) { 12 | switch (tlsid) { 13 | case 19: 14 | return nettle_get_secp_192r1(); 15 | case 21: 16 | return nettle_get_secp_224r1(); 17 | case 23: 18 | return nettle_get_secp_256r1(); 19 | case 24: 20 | return nettle_get_secp_384r1(); 21 | case 25: 22 | return nettle_get_secp_521r1(); 23 | } 24 | return NULL; 25 | } 26 | 27 | void fuzzec_nettle_process(fuzzec_input_t * input, fuzzec_output_t * output) { 28 | mpz_t scalar1; 29 | mpz_t scalar2; 30 | struct ecc_scalar ecscalar1; 31 | struct ecc_point point1; 32 | struct ecc_point point2; 33 | const struct ecc_curve * curve; 34 | 35 | //initialize 36 | curve = tls1_group_id_lookup(input->tls_id); 37 | if (curve == NULL) { 38 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 39 | return; 40 | } 41 | 42 | nettle_mpz_init_set_str_256_u(scalar1, input->coordSize, input->coordx); 43 | nettle_mpz_init_set_str_256_u(scalar2, input->coordSize, input->coordy); 44 | ecc_scalar_init(&ecscalar1, curve); 45 | ecc_point_init(&point1, curve); 46 | ecc_point_init(&point2, curve); 47 | 48 | if (ecc_point_set (&point1, scalar1, scalar2) == 0) { 49 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 50 | goto end; 51 | } 52 | nettle_mpz_set_str_256_u(scalar1, input->bignumSize, input->bignum); 53 | if (ecc_scalar_set (&ecscalar1, scalar1) == 0) { 54 | // above field prime 55 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 56 | goto end; 57 | } 58 | 59 | //elliptic curve computations 60 | //P2=scalar1*P1 61 | ecc_point_mul(&point2, &ecscalar1, &point1); 62 | 63 | //format output 64 | //TODO test null output 65 | ecc_point_get(&point2, scalar1, scalar2); 66 | output->pointSizes[0] = 1 + 2*input->coordSize; 67 | //uncompressed form 68 | output->points[0][0] = 4; 69 | nettle_mpz_get_str_256(input->coordSize, output->points[0]+1, scalar1); 70 | nettle_mpz_get_str_256(input->coordSize, output->points[0]+1+input->coordSize, scalar2); 71 | ecc_point_get(&point2, scalar1, scalar2); 72 | 73 | output->errorCode = FUZZEC_ERROR_NONE; 74 | 75 | end: 76 | mpz_clears(scalar1, scalar2, NULL); 77 | ecc_scalar_clear(&ecscalar1); 78 | ecc_point_clear(&point1); 79 | ecc_point_clear(&point2); 80 | return; 81 | } 82 | -------------------------------------------------------------------------------- /modules/openssl.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2018 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | 5 | #include "../fuzz_ec.h" 6 | #include 7 | #include 8 | #include 9 | #include 10 | 11 | static const int nid_list[28] = { 12 | NID_sect163k1, /* sect163k1 (1) */ 13 | NID_sect163r1, /* sect163r1 (2) */ 14 | NID_sect163r2, /* sect163r2 (3) */ 15 | NID_sect193r1, /* sect193r1 (4) */ 16 | NID_sect193r2, /* sect193r2 (5) */ 17 | NID_sect233k1, /* sect233k1 (6) */ 18 | NID_sect233r1, /* sect233r1 (7) */ 19 | NID_sect239k1, /* sect239k1 (8) */ 20 | NID_sect283k1, /* sect283k1 (9) */ 21 | NID_sect283r1, /* sect283r1 (10) */ 22 | NID_sect409k1, /* sect409k1 (11) */ 23 | NID_sect409r1, /* sect409r1 (12) */ 24 | NID_sect571k1, /* sect571k1 (13) */ 25 | NID_sect571r1, /* sect571r1 (14) */ 26 | NID_secp160k1, /* secp160k1 (15) */ 27 | NID_secp160r1, /* secp160r1 (16) */ 28 | NID_secp160r2, /* secp160r2 (17) */ 29 | NID_secp192k1, /* secp192k1 (18) */ 30 | NID_X9_62_prime192v1, /* secp192r1 (19) */ 31 | NID_secp224k1, /* secp224k1 (20) */ 32 | NID_secp224r1, /* secp224r1 (21) */ 33 | NID_secp256k1, /* secp256k1 (22) */ 34 | NID_X9_62_prime256v1, /* secp256r1 (23) */ 35 | NID_secp384r1, /* secp384r1 (24) */ 36 | NID_secp521r1, /* secp521r1 (25) */ 37 | NID_brainpoolP256r1, /* brainpoolP256r1 (26) */ 38 | NID_brainpoolP384r1, /* brainpoolP384r1 (27) */ 39 | NID_brainpoolP512r1, /* brainpool512r1 (28) */ 40 | }; 41 | 42 | static int tls1_group_id_lookup(uint16_t tlsid) { 43 | if (tlsid < 1 || tlsid > 28) 44 | return 0; 45 | return nid_list[tlsid - 1]; 46 | } 47 | 48 | int decompressPoint(const uint8_t *Data, int compBit, size_t Size, uint8_t *decom, uint16_t tls_id, size_t coordlen) { 49 | int r; 50 | EC_GROUP * group = NULL; 51 | BIGNUM * coordx = NULL; 52 | EC_POINT * point = NULL; 53 | uint8_t * buffer = NULL; 54 | 55 | group = EC_GROUP_new_by_curve_name(tls1_group_id_lookup(tls_id)); 56 | if (group == NULL) { 57 | r = 1; 58 | goto end; 59 | } 60 | 61 | point = EC_POINT_new(group); 62 | coordx = BN_bin2bn(Data+1, Size-1, NULL); 63 | 64 | if (EC_POINT_set_compressed_coordinates_GFp(group, point, coordx, compBit, NULL) == 0) { 65 | r = 2; 66 | goto end; 67 | } 68 | if (EC_POINT_is_on_curve(group, point, NULL) == 0) { 69 | r = 3; 70 | goto end; 71 | } 72 | r = EC_POINT_point2buf(group, point, POINT_CONVERSION_UNCOMPRESSED, &buffer, NULL); 73 | if (r == 0) { 74 | r = 4; 75 | goto end; 76 | } 77 | memcpy(decom, buffer, r); 78 | r = 0; 79 | free(buffer); 80 | end: 81 | EC_GROUP_clear_free(group); 82 | BN_clear_free(coordx); 83 | EC_POINT_clear_free(point); 84 | return r; 85 | } 86 | 87 | 88 | void fuzzec_openssl_process(fuzzec_input_t * input, fuzzec_output_t * output) { 89 | EC_GROUP * group = NULL; 90 | BIGNUM * scalar1 = NULL; 91 | BIGNUM * scalar2 = NULL; 92 | EC_POINT * point1 = NULL; 93 | EC_POINT * point2 = NULL; 94 | uint8_t * buffer = NULL; 95 | 96 | //initialize 97 | group = EC_GROUP_new_by_curve_name(tls1_group_id_lookup(input->tls_id)); 98 | if (group == NULL) { 99 | printf("fail %d\n", input->tls_id); 100 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 101 | return; 102 | } 103 | point1 = EC_POINT_new(group); 104 | point2 = EC_POINT_new(group); 105 | scalar1 = BN_bin2bn(input->coordx, input->coordSize, NULL); 106 | scalar2 = BN_bin2bn(input->coordy, input->coordSize, NULL); 107 | 108 | if (EC_POINT_set_affine_coordinates_GFp(group, point1, scalar1, scalar2, NULL) == 0) { 109 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 110 | goto end; 111 | } 112 | BN_clear_free(scalar1); 113 | scalar1 = BN_bin2bn(input->bignum, input->bignumSize, NULL); 114 | 115 | //elliptic curve computations 116 | //P2=scalar1*P1 117 | if (EC_POINT_mul(group, point2, NULL, point1, scalar1, NULL) == 0){ 118 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 119 | goto end; 120 | } 121 | 122 | //format output 123 | output->pointSizes[0] = EC_POINT_point2buf(group, point2, POINT_CONVERSION_UNCOMPRESSED, &buffer, NULL); 124 | if (output->pointSizes[0] == 0 ) { 125 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 126 | goto end; 127 | } 128 | memcpy(output->points[0], buffer, output->pointSizes[0]); 129 | free(buffer); 130 | 131 | output->errorCode = FUZZEC_ERROR_NONE; 132 | 133 | end: 134 | EC_GROUP_clear_free(group); 135 | BN_clear_free(scalar1); 136 | BN_clear_free(scalar2); 137 | EC_POINT_clear_free(point1); 138 | EC_POINT_clear_free(point2); 139 | return; 140 | } 141 | 142 | 143 | void fuzzec_openssl_add(fuzzec_input_t * input, fuzzec_output_t * output) { 144 | EC_GROUP * group = NULL; 145 | BIGNUM * scalar1 = NULL; 146 | BIGNUM * scalar2 = NULL; 147 | EC_POINT * point1 = NULL; 148 | EC_POINT * point2 = NULL; 149 | EC_POINT * point3 = NULL; 150 | uint8_t * buffer = NULL; 151 | 152 | //initialize 153 | group = EC_GROUP_new_by_curve_name(tls1_group_id_lookup(input->tls_id)); 154 | if (group == NULL) { 155 | printf("fail %d\n", input->tls_id); 156 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 157 | return; 158 | } 159 | point1 = EC_POINT_new(group); 160 | point2 = EC_POINT_new(group); 161 | point3 = EC_POINT_new(group); 162 | scalar1 = BN_bin2bn(input->coordx, input->coordSize, NULL); 163 | scalar2 = BN_bin2bn(input->coordy, input->coordSize, NULL); 164 | if (EC_POINT_set_affine_coordinates_GFp(group, point1, scalar1, scalar2, NULL) == 0) { 165 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 166 | goto end; 167 | } 168 | BN_clear_free(scalar1); 169 | BN_clear_free(scalar2); 170 | scalar1 = BN_bin2bn(input->coord2x, input->coordSize, NULL); 171 | scalar2 = BN_bin2bn(input->coord2y, input->coordSize, NULL); 172 | if (EC_POINT_set_affine_coordinates_GFp(group, point2, scalar1, scalar2, NULL) == 0) { 173 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 174 | goto end; 175 | } 176 | 177 | //elliptic curve computations 178 | //P3=P2+P1 179 | if (EC_POINT_add(group, point3, point2, point1, NULL) == 0){ 180 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 181 | goto end; 182 | } 183 | 184 | //format output 185 | output->pointSizes[0] = EC_POINT_point2buf(group, point3, POINT_CONVERSION_UNCOMPRESSED, &buffer, NULL); 186 | if (output->pointSizes[0] == 0 ) { 187 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 188 | goto end; 189 | } 190 | memcpy(output->points[0], buffer, output->pointSizes[0]); 191 | free(buffer); 192 | 193 | output->errorCode = FUZZEC_ERROR_NONE; 194 | 195 | end: 196 | EC_GROUP_clear_free(group); 197 | BN_clear_free(scalar1); 198 | BN_clear_free(scalar2); 199 | EC_POINT_clear_free(point1); 200 | EC_POINT_clear_free(point2); 201 | EC_POINT_clear_free(point3); 202 | return; 203 | } 204 | -------------------------------------------------------------------------------- /modules/rust.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2020 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | 5 | #include "../fuzz_ec.h" 6 | //#include "rust.h" 7 | #include 8 | #include 9 | 10 | int RustProcess(const uint8_t coordx[32], const uint8_t coordy[32], const uint8_t scalar[32], uint8_t result[65]); 11 | 12 | void fuzzec_rust_process(fuzzec_input_t * input, fuzzec_output_t * output) { 13 | //secp256k1 14 | if (input->tls_id != 22) { 15 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 16 | return; 17 | } 18 | size_t clen = ECDF_BYTECEIL(input->groupBitLen); 19 | output->errorCode = RustProcess(input->coordx, input->coordy, input->bignum, output->points[0]); 20 | if (output->points[0][0] == 0) { 21 | output->pointSizes[0] = 1; 22 | } else { 23 | output->pointSizes[0] = 2*clen+1; 24 | } 25 | } 26 | 27 | //TODO void fuzzec_rust_add(fuzzec_input_t * input, fuzzec_output_t * output) { 28 | -------------------------------------------------------------------------------- /modules/rustlibsecp256k1/Cargo.toml: -------------------------------------------------------------------------------- 1 | [package] 2 | name = "ecc-diff-fuzzer-rs" 3 | version = "0.1.0" 4 | authors = ["Philippe Antoine "] 5 | edition = "2018" 6 | 7 | [lib] 8 | crate-type = ["staticlib"] 9 | 10 | # See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html 11 | 12 | [dependencies] 13 | libsecp256k1 = "0.6.0" 14 | -------------------------------------------------------------------------------- /modules/rustlibsecp256k1/src/lib.rs: -------------------------------------------------------------------------------- 1 | use libsecp256k1::curve::*; 2 | use libsecp256k1::ECMULT_CONTEXT; 3 | 4 | #[no_mangle] 5 | pub extern "C" fn RustProcess( 6 | coordx: &mut [u8; 32], 7 | coordy: &mut [u8; 32], 8 | scalar: &mut [u8; 32], 9 | result: &mut [u8; 65], 10 | ) -> u32 { 11 | let mut rx = Field::from_int(0); 12 | let _ = rx.set_b32(coordx); 13 | let mut ry = Field::from_int(0); 14 | let _ = ry.set_b32(coordy); 15 | let mut sc = Scalar::from_int(0); 16 | let _ = sc.set_b32(scalar); 17 | if sc.is_zero() { 18 | result[0] = 0; 19 | return 0; 20 | } 21 | let mut pt = Affine::default(); 22 | pt.set_xy(&rx, &ry); 23 | let mut jac = Jacobian::default(); 24 | ECMULT_CONTEXT.ecmult_const(&mut jac, &pt, &sc); 25 | pt.set_gej(&jac); 26 | pt.x.normalize(); 27 | pt.y.normalize(); 28 | 29 | let rsx = pt.x.b32(); 30 | let rsy = pt.y.b32(); 31 | result[0] = 0x04; 32 | for i in 0..32 { 33 | result[i + 1] = rsx[i] 34 | } 35 | for i in 0..32 { 36 | result[i + 33] = rsy[i] 37 | } 38 | 39 | return 0; 40 | } 41 | -------------------------------------------------------------------------------- /modules/script.c: -------------------------------------------------------------------------------- 1 | // Copyright (c) 2020 Catena cyber 2 | // Author Philippe Antoine 3 | 4 | 5 | #include "../fuzz_ec.h" 6 | #include 7 | #include 8 | #include 9 | #include 10 | #include 11 | 12 | #include "genjsinit.h" 13 | #include "genjsmult.h" 14 | #include "genjsadd.h" 15 | 16 | static const char * nameOfCurve(uint16_t tlsid) { 17 | switch (tlsid) { 18 | case 19: 19 | return "p192"; 20 | case 21: 21 | return "p224"; 22 | case 22: 23 | return "secp256k1"; 24 | case 23: 25 | return "p256"; 26 | case 24: 27 | return "p384"; 28 | case 25: 29 | return "p521"; 30 | } 31 | return NULL; 32 | } 33 | 34 | JSRuntime *rt; 35 | JSContext *ctx; 36 | 37 | int fuzzec_js_init() { 38 | #ifdef FUZZ_JS_DISABLED 39 | return 0; 40 | #endif 41 | rt = JS_NewRuntime(); 42 | ctx = JS_NewContextRaw(rt); 43 | JS_SetModuleLoaderFunc(rt, NULL, js_module_loader, NULL); 44 | JS_AddIntrinsicBaseObjects(ctx); 45 | JS_AddIntrinsicDate(ctx); 46 | JS_AddIntrinsicEval(ctx); 47 | JS_AddIntrinsicStringNormalize(ctx); 48 | JS_AddIntrinsicRegExp(ctx); 49 | JS_AddIntrinsicJSON(ctx); 50 | JS_AddIntrinsicProxy(ctx); 51 | JS_AddIntrinsicMapSet(ctx); 52 | JS_AddIntrinsicTypedArrays(ctx); 53 | JS_AddIntrinsicPromise(ctx); 54 | JS_AddIntrinsicBigInt(ctx); 55 | js_std_add_helpers(ctx, 0, NULL); 56 | char cmd[2048]; 57 | //global js variables outside browserify 58 | snprintf(cmd, 2048,"var EClib; var utils; var p192; var p224; var p256; var p384; var p521; var p256k;"); 59 | JS_Eval(ctx, cmd, strlen(cmd), "", JS_EVAL_TYPE_GLOBAL); 60 | js_std_eval_binary(ctx, genjsinit, genjsinit_size, 0); 61 | js_std_loop(ctx); 62 | return 0; 63 | } 64 | 65 | void fuzzec_js_aux(fuzzec_input_t * input, fuzzec_output_t * output, const uint8_t *bytecode, size_t bytecode_size) { 66 | js_std_eval_binary(ctx, bytecode, bytecode_size, 0); 67 | js_std_loop(ctx); 68 | 69 | JSValue global = JS_GetGlobalObject(ctx); 70 | JSValue val = JS_GetPropertyStr(ctx, global, "r"); 71 | if (!JS_IsString(val)) { 72 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 73 | return; 74 | } 75 | size_t plen; 76 | const char * result = JS_ToCStringLen(ctx, &plen, val); 77 | JS_FreeValue(ctx, val); 78 | 79 | // hexdecode 80 | output->pointSizes[0] = plen/2; 81 | for (size_t i=0; ipointSizes[0]; i++) { 82 | if (!isxdigit(result[2*i]) || !isxdigit(result[2*i+1])) { 83 | //invalid hexadecimal 84 | output->errorCode = FUZZEC_ERROR_UNKNOWN; 85 | return; 86 | } 87 | output->points[0][i] = (result[2*i] >= 'A' ? ((result[2*i] & 0xdf) - 'A') + 10 : (result[2*i] - '0')) << 4; 88 | output->points[0][i] |= (result[2*i+1] >= 'A' ? ((result[2*i+1] & 0xdf) - 'A') + 10 : (result[2*i+1] - '0')); 89 | } 90 | JS_FreeCString(ctx, result); 91 | output->errorCode = FUZZEC_ERROR_NONE; 92 | 93 | } 94 | 95 | void fuzzec_js_process(fuzzec_input_t * input, fuzzec_output_t * output) { 96 | #ifdef FUZZ_JS_DISABLED 97 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 98 | return; 99 | #endif 100 | 101 | char cmd[2048]; 102 | const char *curve = nameOfCurve(input->tls_id); 103 | if (curve == NULL) { 104 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 105 | return; 106 | } 107 | int offset = snprintf(cmd, 2048, "ec = %s;\ninputPoint='", curve); 108 | //dangerous overflow 109 | for (size_t i=0; i<2*input->coordSize+1; i++) { 110 | offset += snprintf(cmd+offset, 2048-offset, "%02x", input->coord[i]); 111 | } 112 | offset += snprintf(cmd+offset, 2048-offset, "';\ninputScalar='"); 113 | for (size_t i=0; icoordSize; i++) { 114 | offset += snprintf(cmd+offset, 2048-offset, "%02x", input->bignum[i]); 115 | } 116 | offset += snprintf(cmd+offset, 2048-offset, "';\n"); 117 | 118 | JS_Eval(ctx, cmd, strlen(cmd), "", JS_EVAL_TYPE_GLOBAL); 119 | fuzzec_js_aux(input, output, genjsmult, genjsmult_size); 120 | } 121 | 122 | void fuzzec_js_add(fuzzec_input_t * input, fuzzec_output_t * output) { 123 | #ifdef FUZZ_JS_DISABLED 124 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 125 | return; 126 | #endif 127 | 128 | char cmd[2048]; 129 | const char *curve = nameOfCurve(input->tls_id); 130 | if (curve == NULL) { 131 | output->errorCode = FUZZEC_ERROR_UNSUPPORTED; 132 | return; 133 | } 134 | int offset = snprintf(cmd, 2048, "ec = %s;\ninputPoint='", curve); 135 | //dangerous overflow 136 | for (size_t i=0; i<2*input->coordSize+1; i++) { 137 | offset += snprintf(cmd+offset, 2048-offset, "%02x", input->coord[i]); 138 | } 139 | offset += snprintf(cmd+offset, 2048-offset, "';\ninputPoint2='"); 140 | for (size_t i=0; i<2*input->coordSize+1; i++) { 141 | offset += snprintf(cmd+offset, 2048-offset, "%02x", input->coord2[i]); 142 | } 143 | offset += snprintf(cmd+offset, 2048-offset, "';\n"); 144 | 145 | JS_Eval(ctx, cmd, strlen(cmd), "", JS_EVAL_TYPE_GLOBAL); 146 | fuzzec_js_aux(input, output, genjsadd, genjsadd_size); 147 | } 148 | --------------------------------------------------------------------------------