Skip to content

Commit 188d12a

Browse files
committed
Adapt fuzzer code
1 parent 6844445 commit 188d12a

File tree

3 files changed

+57
-89
lines changed

3 files changed

+57
-89
lines changed

tests/sphincsplus/fuzzer/Makefile

Lines changed: 53 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -6,70 +6,69 @@ LLVM_COV=llvm-cov
66

77
NPROC?=16
88

9+
PARAMS = sphincs-shake-256f
10+
THASH = robust
11+
912
SOURCES_DIR = ref
1013
COVERAGE_DIR=coverage
1114
CORPUS_DIR=corpus
1215

16+
SPHINCS_PLUS_DIR = ../../../deps/sphincsplus/ref/
17+
1318
SOURCES = \
14-
../../../c/$(SOURCES_DIR)/params.c \
15-
../../../c/$(SOURCES_DIR)/address.c \
16-
../../../c/$(SOURCES_DIR)/merkle.c \
17-
../../../c/$(SOURCES_DIR)/wots.c \
18-
../../../c/$(SOURCES_DIR)/wotsx1.c \
19-
../../../c/$(SOURCES_DIR)/utils.c \
20-
../../../c/$(SOURCES_DIR)/utilsx1.c \
21-
../../../c/$(SOURCES_DIR)/fors.c \
22-
../../../c/$(SOURCES_DIR)/sign.c \
23-
../../../c/$(SOURCES_DIR)/randombytes.c \
19+
$(SPHINCS_PLUS_DIR)address.c \
20+
$(SPHINCS_PLUS_DIR)merkle.c \
21+
$(SPHINCS_PLUS_DIR)wots.c \
22+
$(SPHINCS_PLUS_DIR)wotsx1.c \
23+
$(SPHINCS_PLUS_DIR)utils.c \
24+
$(SPHINCS_PLUS_DIR)utilsx1.c \
25+
$(SPHINCS_PLUS_DIR)fors.c \
26+
$(SPHINCS_PLUS_DIR)sign.c \
27+
$(SPHINCS_PLUS_DIR)randombytes.c \
2428
../../../c/ckb-sphincsplus.c
2529

2630
HEADERS = \
27-
../../../c/$(SOURCES_DIR)/params.h \
28-
../../../c/$(SOURCES_DIR)/address.h \
29-
../../../c/$(SOURCES_DIR)/merkle.h \
30-
../../../c/$(SOURCES_DIR)/wots.h \
31-
../../../c/$(SOURCES_DIR)/wotsx1.h \
32-
../../../c/$(SOURCES_DIR)/utils.h \
33-
../../../c/$(SOURCES_DIR)/utilsx1.h \
34-
../../../c/$(SOURCES_DIR)/fors.h \
35-
../../../c/$(SOURCES_DIR)/api.h \
36-
../../../c/$(SOURCES_DIR)/hash.h \
37-
../../../c/$(SOURCES_DIR)/thash.h \
38-
../../../c/$(SOURCES_DIR)/randombytes.h \
31+
$(SPHINCS_PLUS_DIR)params.h \
32+
$(SPHINCS_PLUS_DIR)address.h \
33+
$(SPHINCS_PLUS_DIR)merkle.h \
34+
$(SPHINCS_PLUS_DIR)wots.h \
35+
$(SPHINCS_PLUS_DIR)wotsx1.h \
36+
$(SPHINCS_PLUS_DIR)utils.h \
37+
$(SPHINCS_PLUS_DIR)utilsx1.h \
38+
$(SPHINCS_PLUS_DIR)fors.h \
39+
$(SPHINCS_PLUS_DIR)api.h \
40+
$(SPHINCS_PLUS_DIR)hash.h \
41+
$(SPHINCS_PLUS_DIR)thash.h \
42+
$(SPHINCS_PLUS_DIR)randombytes.h \
3943
../../../c/ckb-sphincsplus.h
4044

41-
# shake
42-
SOURCES += \
43-
../../../c/$(SOURCES_DIR)/fips202.c \
44-
../../../c/$(SOURCES_DIR)/hash_shake.c \
45-
../../../c/$(SOURCES_DIR)/thash_shake_robust.c\
46-
../../../c/$(SOURCES_DIR)/thash_shake_simple.c
47-
HEADERS += \
48-
../../../c/$(SOURCES_DIR)/fips202.h
49-
50-
# sha2
51-
SOURCES += \
52-
../../../c/$(SOURCES_DIR)/sha2.c \
53-
../../../c/$(SOURCES_DIR)/hash_sha2.c \
54-
../../../c/$(SOURCES_DIR)/thash_sha2_robust.c \
55-
../../../c/$(SOURCES_DIR)/thash_sha2_simple.c
56-
HEADERS += \
57-
../../../c/$(SOURCES_DIR)/sha2.h
58-
59-
# haraka
60-
SOURCES += \
61-
../../../c/$(SOURCES_DIR)/haraka.c \
62-
../../../c/$(SOURCES_DIR)/hash_haraka.c \
63-
../../../c/$(SOURCES_DIR)/thash_haraka_robust.c \
64-
../../../c/$(SOURCES_DIR)/thash_haraka_simple.c
65-
HEADERS += \
66-
../../../c/$(SOURCES_DIR)/haraka.h
67-
68-
FUZZER_FLAGS=-g -O1 -fsanitize=fuzzer,address,undefined -fsanitize-recover=address
69-
FUZZER_FLAGS := $(FUZZER_FLAGS) -I ../../../c -I ../../../c/ref
70-
71-
COVERAGE_FLAGS=-fprofile-instr-generate -fcoverage-mapping
72-
COVERAGE_FLAGS := $(COVERAGE_FLAGS) -I ../../../c -I ../../../c/ref
45+
ifneq (,$(findstring shake,$(PARAMS)))
46+
SOURCES += \
47+
$(SPHINCS_PLUS_DIR)fips202.c \
48+
$(SPHINCS_PLUS_DIR)hash_shake.c \
49+
$(SPHINCS_PLUS_DIR)thash_shake_$(THASH).c
50+
HEADERS += $(SPHINCS_PLUS_DIR)fips202.h
51+
endif
52+
ifneq (,$(findstring haraka,$(PARAMS)))
53+
SOURCES += \
54+
$(SPHINCS_PLUS_DIR)haraka.c \
55+
$(SPHINCS_PLUS_DIR)hash_haraka.c \
56+
$(SPHINCS_PLUS_DIR)thash_haraka_$(THASH).c
57+
HEADERS += $(SPHINCS_PLUS_DIR)haraka.h
58+
endif
59+
ifneq (,$(findstring sha2,$(PARAMS)))
60+
SOURCES += \
61+
$(SPHINCS_PLUS_DIR)sha2.c \
62+
$(SPHINCS_PLUS_DIR)hash_sha2.c \
63+
$(SPHINCS_PLUS_DIR)thash_sha2_$(THASH).c
64+
HEADERS += $(SPHINCS_PLUS_DIR)sha2.h
65+
endif
66+
67+
FUZZER_FLAGS=-g -O1 -fsanitize=fuzzer,address,undefined -fsanitize-recover=address -DPARAMS=$(PARAMS) -DTEST_DATA=$(PARAMS)-$(THASH)
68+
FUZZER_FLAGS := $(FUZZER_FLAGS) -I ../../../c -I ../../../deps/sphincsplus/ref
69+
70+
COVERAGE_FLAGS=-fprofile-instr-generate -fcoverage-mapping -DPARAMS=$(PARAMS) -DTEST_DATA=$(PARAMS)-$(THASH)
71+
COVERAGE_FLAGS := $(COVERAGE_FLAGS) -I ../../../c -I ../../../deps/sphincsplus/ref
7372

7473
ifeq ($(OS),MacOS)
7574
COVERAGE_FLAGS+=-Wl,-U,_LLVMFuzzerCustomMutator -Wl,-U,_LLVMFuzzerInitialize

tests/sphincsplus/fuzzer/run.sh

Lines changed: 0 additions & 18 deletions
This file was deleted.

tests/sphincsplus/fuzzer/sphincs_plus_fuzzer.c

Lines changed: 4 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -20,25 +20,12 @@ size_t fill_buf(uint8_t *buf, size_t buf_size, uint8_t *data, size_t size) {
2020
}
2121

2222
int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) {
23-
uint32_t hash_type = 0;
24-
if (size > 0) {
25-
hash_type = data[0] % 37;
26-
}
27-
data += 1;
28-
size -= 1;
29-
30-
crypto_context cctx = {0};
31-
int err = sphincs_plus_init_context(hash_type, &cctx);
32-
if (err != 0) {
33-
return 0;
34-
}
35-
3623
uint8_t message[SPX_MLEN];
3724

38-
uint32_t pubkey_size = sphincs_plus_get_pk_size(&cctx);
25+
uint32_t pubkey_size = sphincs_plus_get_pk_size();
3926
uint8_t pubkey[pubkey_size];
4027

41-
uint32_t sign_size = sphincs_plus_get_sign_size(&cctx);
28+
uint32_t sign_size = sphincs_plus_get_sign_size();
4229
uint8_t sign[sign_size];
4330

4431
size_t offset = fill_buf(message, SPX_MLEN, data, size);
@@ -53,8 +40,8 @@ int LLVMFuzzerTestOneInput(uint8_t *data, size_t size) {
5340
data += offset;
5441
size -= offset;
5542

56-
err = sphincs_plus_verify(&cctx, sign, sign_size, message, SPX_MLEN, pubkey,
57-
pubkey_size);
43+
int err = sphincs_plus_verify(sign, sign_size, message, SPX_MLEN, pubkey,
44+
pubkey_size);
5845
if (err != 0) {
5946
return 0;
6047
};

0 commit comments

Comments
 (0)