aa4611a4d1
This PR sacrifices passing some extra arguments to get rid of the global state. * Haraka needs state in all hash calls, this results in changes to the hash functions specified in `hash.h`. The extra pointers passed would not be necessary for SHA256 or SHAKE256. * SHAKE256 did not have global state, but uniformity in the implementations requires us to pass around the new state context anyway. Otherwise, @joostrijneveld's SPHINCS+ generator doesn't really work anymore). We introduce a new header file called `primitive.h` which defines the required state type for the generic functions. I did not go into replacing _all_ occurrences of state variables by the new `hash_state` macro.
21 lines
585 B
Makefile
21 lines
585 B
Makefile
# This Makefile can be used with GNU Make or BSD Make
|
|
|
|
LIB=libsphincs-sha256-192s-robust_clean.a
|
|
|
|
HEADERS = params.h address.h wots.h utils.h fors.h api.h hash.h primitive.h thash.h sha256.h
|
|
OBJECTS = address.o wots.o utils.o fors.o sign.o hash_sha256.o thash_sha256_robust.o sha256.o
|
|
|
|
CFLAGS=-O3 -Wall -Wconversion -Wextra -Wpedantic -Wvla -Werror -Wmissing-prototypes -Wredundant-decls -std=c99 -I../../../common $(EXTRAFLAGS)
|
|
|
|
all: $(LIB)
|
|
|
|
%.o: %.c $(HEADERS)
|
|
$(CC) $(CFLAGS) -c -o $@ $<
|
|
|
|
$(LIB): $(OBJECTS)
|
|
$(AR) -r $@ $(OBJECTS)
|
|
|
|
clean:
|
|
$(RM) $(OBJECTS)
|
|
$(RM) $(LIB)
|