From a5c33de79b3845782444a379f2739b1e915e8a4b Mon Sep 17 00:00:00 2001 From: Mike Hamburg Date: Thu, 15 Oct 2020 23:36:17 +0100 Subject: update HISTORY to mention the malleability flaw --- HISTORY.txt | 14 + Makefile | 867 ++++++++++++++++++++++++++++++++++++------------------------ 2 files changed, 539 insertions(+), 342 deletions(-) diff --git a/HISTORY.txt b/HISTORY.txt index 169286b..0fc14b1 100644 --- a/HISTORY.txt +++ b/HISTORY.txt @@ -1,3 +1,17 @@ +October 10, 2020: + A paper by Konstantinos Chalkias, François Garillot, and Valeria + Nikolaenko, to be found at: + + https://eprint.iacr.org/2020/1244.pdf + + discusses malleability in EdDSA implementations. Their test + vectors reveal unintentional malleability in libdecaf's version + of EdDSA verify, in violation of RFC 8032. With this malleability, + an attacker could modify an existing valid signature to create a + new signature that is still valid, but only for the same message. + + Releave v1.0.1, correcting this flaw. + July 12, 2018: Release 1.0 with Johan Pascal's build scripts. diff --git a/Makefile b/Makefile index b19fe3e..4881750 100644 --- a/Makefile +++ b/Makefile @@ -1,345 +1,528 @@ -# Copyright (c) 2014-2017 Cryptography Research, Inc. -# Released under the MIT License. See LICENSE.txt for license information. - - -UNAME := $(shell uname) -MACHINE := $(shell uname -m) - -# Subdirectories for objects etc. -# Many of them are mapped to build/obj right now, but could be split later. -# The non-build/obj directories are the public interface. -BUILD_OBJ = build/obj -BUILD_C = src/GENERATED/c -BUILD_H = src/GENERATED/c -BUILD_PY = build/obj -BUILD_LIB = build/lib -BUILD_INC = src/GENERATED/include -BUILD_BIN = build/bin -BUILD_IBIN = build/obj/bin - -DOXYGEN ?= doxygen - -ifeq ($(UNAME),Darwin) -CC ?= clang -CXX ?= clang++ -else -CC ?= gcc -CXX ?= g++ -endif -LD = $(CC) -LDXX = $(CXX) -ASM ?= $(CC) - -PYTHON ?= python - -WARNFLAGS = -pedantic -Wall -Wextra -Werror -Wunreachable-code \ - -Wmissing-declarations -Wunused-function -Wno-overlength-strings $(EXWARN) - -INCFLAGS = -Isrc/include -I$(BUILD_INC) -I$(BUILD_H) -PUB_INCFLAGS = -I$(BUILD_INC) -LANGFLAGS = -std=c99 -fno-strict-aliasing -LANGXXFLAGS = -fno-strict-aliasing -GENFLAGS = -ffunction-sections -fdata-sections -fvisibility=hidden -fomit-frame-pointer -fPIC -OFLAGS ?= -O2 - -MACOSX_VERSION_MIN ?= 10.9 -ifeq ($(UNAME),Darwin) -GENFLAGS += -mmacosx-version-min=$(MACOSX_VERSION_MIN) -endif - -TODAY = $(shell date "+%Y-%m-%d") - -ARCHFLAGS ?= -march=native - -ifeq ($(CC),clang) -WARNFLAGS_C += -Wgcc-compat -endif - -ifeq ($(CXX),clang++) -WARNFLAGS_CXX += -Wgcc-compat -endif - -ARCHFLAGS += $(XARCHFLAGS) -CFLAGS = $(LANGFLAGS) $(WARNFLAGS) $(WARNFLAGS_C) $(INCFLAGS) $(OFLAGS) $(ARCHFLAGS) $(GENFLAGS) $(XCFLAGS) -PUB_CFLAGS = $(LANGFLAGS) $(WARNFLAGS) $(WARNFLAGS_C) $(PUB_INCFLAGS) $(OFLAGS) $(ARCHFLAGS) $(GENFLAGS) $(XCFLAGS) -CXXFLAGS = $(LANGXXFLAGS) $(WARNFLAGS) $(WARNFLAGS_CXX) $(INCFLAGS) $(OFLAGS) $(ARCHFLAGS) $(GENFLAGS) $(XCXXFLAGS) -LDFLAGS = $(XLDFLAGS) -ASFLAGS = $(ARCHFLAGS) $(XASFLAGS) - -SAGE ?= sage -SAGES= $(shell ls test/*.sage) -BUILDPYS= $(SAGES:test/%.sage=$(BUILD_PY)/%.py) - -.PHONY: clean all test test_ct bench todo doc lib bat sage sagetest gen_code gen_code_static -.PRECIOUS: $(BUILD_C)/*/%.c $(BUILD_H)/*/%.h $(BUILD_H)/%.h $(BUILD_H)/%.hxx $(BUILD_H)/*/%.hxx $(BUILD_IBIN)/% - -HEADER_SRCS= $(shell find src/public_include -name "*.h*") -HEADER_PRIVATE_SRCS= $(shell find src/include -name "*.tmpl.h*") -GEN_CODE_0= $(HEADER_SRCS:src/public_include/%=$(BUILD_INC)/%) -GEN_CODE_0+= $(HEADER_PRIVATE_SRCS:src/include/%=$(BUILD_C)/%) -GEN_CODE_1= $(GEN_CODE_0:%.tmpl.h=%.h) -GEN_CODE= $(GEN_CODE_1:%.tmpl.hxx=%.hxx) -HEADERS= Makefile $(shell find src test -name "*.h") $(BUILD_OBJ)/timestamp $(GEN_CODE) - -# components needed by the lib -LIBCOMPONENTS = $(BUILD_OBJ)/utils.o $(BUILD_OBJ)/shake.o $(BUILD_OBJ)/sha512.o $(BUILD_OBJ)/spongerng.o -# and per-field components - -BENCHCOMPONENTS = $(BUILD_OBJ)/bench.o $(BUILD_OBJ)/shake.o - -all: lib $(BUILD_IBIN)/test $(BUILD_BIN)/ristretto $(BUILD_IBIN)/bench $(BUILD_BIN)/shakesum - -scan: clean - scan-build --use-analyzer=`which clang` \ - -enable-checker deadcode -enable-checker llvm \ - -enable-checker osx -enable-checker security -enable-checker unix \ - make all - -# Internal test programs, which are not part of the final build/bin directory. -$(BUILD_IBIN)/test: $(BUILD_OBJ)/test_decaf.o lib -ifeq ($(UNAME),Darwin) - $(LDXX) $(LDFLAGS) -o $@ $< -L$(BUILD_LIB) -ldecaf -else - $(LDXX) $(LDFLAGS) -Wl,-rpath,`pwd`/$(BUILD_LIB) -o $@ $< -L$(BUILD_LIB) -ldecaf -endif - -$(BUILD_BIN)/ristretto: $(BUILD_OBJ)/ristretto.o lib -ifeq ($(UNAME),Darwin) - $(LDXX) $(LDFLAGS) -o $@ $< -L$(BUILD_LIB) -ldecaf -else - $(LDXX) $(LDFLAGS) -Wl,-rpath,`pwd`/$(BUILD_LIB) -o $@ $< -L$(BUILD_LIB) -ldecaf -endif - -# Internal test programs, which are not part of the final build/bin directory. -$(BUILD_IBIN)/test_ct: $(BUILD_OBJ)/test_ct.o lib -ifeq ($(UNAME),Darwin) - $(LDXX) $(LDFLAGS) -o $@ $< -L$(BUILD_LIB) -ldecaf -else - $(LDXX) $(LDFLAGS) -Wl,-rpath,`pwd`/$(BUILD_LIB) -o $@ $< -L$(BUILD_LIB) -ldecaf -endif - -$(BUILD_IBIN)/bench: $(BUILD_OBJ)/bench_decaf.o lib -ifeq ($(UNAME),Darwin) - $(LDXX) $(LDFLAGS) -o $@ $< -L$(BUILD_LIB) -ldecaf -else - $(LDXX) $(LDFLAGS) -Wl,-rpath,`pwd`/$(BUILD_LIB) -o $@ $< -L$(BUILD_LIB) -ldecaf -endif - -# Create all the build subdirectories -$(BUILD_OBJ)/timestamp: - mkdir -p $(BUILD_OBJ) $(BUILD_C) $(BUILD_PY) \ - $(BUILD_LIB) $(BUILD_INC) $(BUILD_BIN) $(BUILD_IBIN) $(BUILD_H) $(BUILD_INC)/decaf \ - $(PER_OBJ_DIRS) $(BUILD_C)/decaf - touch $@ - -$(BUILD_INC)/%: src/public_include/% $(BUILD_OBJ)/timestamp - cp -f $< $@ - -$(BUILD_INC)/%.h: src/public_include/%.tmpl.h src/generator/* - $(PYTHON) -B src/generator/template.py --per=global --guard=$(@:$(BUILD_INC)/%=%) -o $@ $< - -$(BUILD_C)/%.h: src/include/%.tmpl.h src/generator/* - $(PYTHON) -B src/generator/template.py --per=global --guard=$(@:$(BUILD_C)/%=%) -o $@ $< - -$(BUILD_INC)/%.hxx: src/public_include/%.tmpl.hxx src/generator/* - $(PYTHON) -B src/generator/template.py --per=global --guard=$(@:$(BUILD_INC)/%=%) -o $@ $< - -$(BUILD_C)/%.hxx: src/include/%.tmpl.hxx src/generator/* - $(PYTHON) -B src/generator/template.py --per=global --guard=$(@:$(BUILD_C)/%=%) -o $@ $< - -################################################################ -# Per-field code: call with field, arch -################################################################ -PER_FIELD_C = $(wildcard src/per_field/*.tmpl.c) -PER_FIELD_H = $(wildcard src/per_field/*.tmpl.h*) -define define_field -ARCH_FOR_$(1) ?= $(2) -COMPONENTS_OF_$(1) = $$(BUILD_OBJ)/$(1)/f_impl.o $$(BUILD_OBJ)/$(1)/f_arithmetic.o $$(BUILD_OBJ)/$(1)/f_generic.o -HEADERS_OF_$(1) = $(HEADERS) $$(BUILD_H)/$(1)/f_field.h -LIBCOMPONENTS += $$(COMPONENTS_OF_$(1)) -GEN_CODE_FOR_$(1) = $$(patsubst src/per_field/%,$(BUILD_C)/$(1)/%,$(patsubst %.tmpl.c,%.c,$(PER_FIELD_C))) -GEN_CODE_FOR_$(1) += $$(patsubst src/per_field/%,$(BUILD_H)/$(1)/%,$(patsubst %.tmpl.h,%.h,$(PER_FIELD_H))) -GEN_CODE += $$(GEN_CODE_FOR_$(1)) -PER_OBJ_DIRS += $$(BUILD_OBJ)/$(1) - -$$(BUILD_C)/$(1)/%.c: src/per_field/%.tmpl.c src/generator/* Makefile - $(PYTHON) -B src/generator/template.py --per=field --guard=$(1)/`basename $$@` --item=$(1) -o $$@ $$< - -$$(BUILD_H)/$(1)/%.h: src/per_field/%.tmpl.h src/generator/* Makefile - $(PYTHON) -B src/generator/template.py --per=field --guard=$(1)/`basename $$@` --item=$(1) -o $$@ $$< - -$$(BUILD_OBJ)/$(1)/%.o: $$(BUILD_C)/$(1)/%.c $$(HEADERS_OF_$(1)) - $$(CC) $$(CFLAGS) -I src/$(1) -I src/$(1)/$$(ARCH_FOR_$(1)) -I $(BUILD_H)/$(1) \ - -I $(BUILD_H)/$(1)/$$(ARCH_FOR_$(1)) -I src/include/$$(ARCH_FOR_$(1)) \ - -c -o $$@ $$< - -$$(BUILD_OBJ)/$(1)/%.o: src/$(1)/%.c $$(HEADERS_OF_$(1)) - $$(CC) $$(CFLAGS) -I src/$(1) -I src/$(1)/$$(ARCH_FOR_$(1)) -I $(BUILD_H)/$(1) \ - -I $(BUILD_H)/$(1)/$$(ARCH_FOR_$(1)) -I src/include/$$(ARCH_FOR_$(1)) \ - -c -o $$@ $$< - -$$(BUILD_OBJ)/$(1)/%.o: src/$(1)/$$(ARCH_FOR_$(1))/%.c $$(HEADERS_OF_$(1)) - $$(CC) $$(CFLAGS) -I src/$(1) -I src/$(1)/$$(ARCH_FOR_$(1)) -I $(BUILD_H)/$(1) \ - -I $(BUILD_H)/$(1)/$$(ARCH_FOR_$(1)) -I src/include/$$(ARCH_FOR_$(1)) \ - -c -o $$@ $$< -endef - -################################################################ -# Per-field, per-curve code: call with curve, field -################################################################ -PER_CURVE_C = $(wildcard src/per_curve/*.tmpl.c) -define define_curve - -LIBCOMPONENTS += $$(BUILD_OBJ)/$(1)/decaf.o $$(BUILD_OBJ)/$(1)/elligator.o $$(BUILD_OBJ)/$(1)/scalar.o \ - $$(BUILD_OBJ)/$(1)/eddsa.o $$(BUILD_OBJ)/$(1)/decaf_tables.o -PER_OBJ_DIRS += $$(BUILD_OBJ)/$(1) -GLOBAL_HEADERS_OF_$(1) = $(BUILD_INC)/decaf/point_$(3).h $(BUILD_INC)/decaf/point_$(3).hxx \ - $(BUILD_INC)/decaf/ed$(3).h $(BUILD_INC)/decaf/ed$(3).hxx -HEADERS_OF_$(1) = $$(HEADERS_OF_$(2)) $$(GLOBAL_HEADERS_OF_$(1)) -HEADERS += $$(GLOBAL_HEADERS_OF_$(1)) - -GEN_CODE_FOR_$(1) = $$(patsubst src/per_curve/%,$(BUILD_C)/$(1)/%,$(patsubst %.tmpl.c,%.c,$(PER_CURVE_C))) -GEN_CODE_FOR_$(1) += $$(GLOBAL_HEADERS_OF_$(1)) -GEN_CODE_P2 += $(BUILD_C)/$(1)/decaf_tables.c -GEN_CODE += $$(GEN_CODE_FOR_$(1)) - -$$(BUILD_C)/$(1)/%.c: src/per_curve/%.tmpl.c src/generator/* Makefile - $(PYTHON) -B src/generator/template.py --per=curve --item=$(1) --guard=$(1)/`basename $$@` -o $$@ $$< - -$$(BUILD_H)/$(1)/%.h: src/per_curve/%.tmpl.h src/generator/* Makefile - $(PYTHON) -B src/generator/template.py --per=curve --item=$(1) --guard=$(1)/`basename $$@` -o $$@ $$< - -$$(BUILD_INC)/decaf/point_$(3).%: src/per_curve/point.tmpl.% src/generator/* Makefile - $(PYTHON) -B src/generator/template.py --per=curve --item=$(1) --guard=$$(@:$(BUILD_INC)/%=%) -o $$@ $$< - -$$(BUILD_INC)/decaf/ed$(3).%: src/per_curve/eddsa.tmpl.% src/generator/* Makefile - $(PYTHON) -B src/generator/template.py --per=curve --item=$(1) --guard=$$(@:$(BUILD_INC)/%=%) -o $$@ $$< - -$$(BUILD_INC)/decaf/elligator_$(3).%: src/per_curve/elligator.tmpl.% src/generator/* Makefile - $(PYTHON) -B src/generator/template.py --per=curve --item=$(1) --guard=$$(@:$(BUILD_INC)/%=%) -o $$@ $$< - -$$(BUILD_INC)/decaf/scalar_$(3).%: src/per_curve/scalar.tmpl.% src/generator/* Makefile - $(PYTHON) -B src/generator/template.py --per=curve --item=$(1) --guard=$$(@:$(BUILD_INC)/%=%) -o $$@ $$< - -$$(BUILD_IBIN)/decaf_gen_tables_$(1): $$(BUILD_OBJ)/$(1)/decaf_gen_tables.o \ - $$(BUILD_OBJ)/$(1)/decaf.o $$(BUILD_OBJ)/$(1)/scalar.o $$(BUILD_OBJ)/utils.o \ - $$(COMPONENTS_OF_$(2)) - $$(LD) $$(LDFLAGS) -o $$@ $$^ - -$$(BUILD_C)/$(1)/decaf_tables.c: $$(BUILD_IBIN)/decaf_gen_tables_$(1) - ./$$< > $$@ || (rm $$@; exit 1) - -$$(BUILD_OBJ)/$(1)/%.o: $$(BUILD_C)/$(1)/%.c $$(HEADERS_OF_$(1)) - $$(CC) $$(CFLAGS) -c -o $$@ $$< \ - -I build/obj/curve_$(1)/ -I src/$(2) -I src/$(2)/$$(ARCH_FOR_$(2)) -I src/include/$$(ARCH_FOR_$(2)) \ - -I $(BUILD_H)/$(1) -I $(BUILD_H)/$(2) -I $(BUILD_H)/$(2)/$$(ARCH_FOR_$(2)) - -$$(BUILD_OBJ)/decaf_gen_tables_$(1).o: src/decaf_gen_tables.c $$(HEADERS_OF_$(1)) - $$(CC) $$(CFLAGS) \ - -I build/obj/curve_$(1) -I src/$(2) -I src/$(2)/$$(ARCH_FOR_$(2)) -I src/include/$$(ARCH_FOR_$(2)) \ - -I $(BUILD_H)/$(1) -I $(BUILD_H)/$(2) -I $(BUILD_H)/$(2)/$$(ARCH_FOR_$(2)) \ - -c -o $$@ $$< -endef - -################################################################ -# call code above to generate curves and fields -$(eval $(call define_field,p25519,arch_x86_64)) -$(eval $(call define_curve,curve25519,p25519,255)) -$(eval $(call define_field,p448,arch_x86_64)) -$(eval $(call define_curve,ed448goldilocks,p448,448)) - -# The shakesum utility is in the public bin directory. -$(BUILD_BIN)/shakesum: $(BUILD_OBJ)/shakesum.o $(BUILD_OBJ)/shake.o $(BUILD_OBJ)/sha512.o $(BUILD_OBJ)/utils.o - $(LD) $(LDFLAGS) -o $@ $^ - -# The main decaf library, and its symlinks. -lib: $(BUILD_LIB)/libdecaf.so - -$(BUILD_LIB)/libdecaf.so: $(BUILD_LIB)/libdecaf.so.1 - ln -sf `basename $^` $@ - -$(BUILD_LIB)/libdecaf.so.1: $(LIBCOMPONENTS) - rm -f $@ -ifeq ($(UNAME),Darwin) - libtool -macosx_version_min $(MACOSX_VERSION_MIN) -dynamic -dead_strip -lc -x -o $@ \ - $(LIBCOMPONENTS) -else ifeq ($(UNAME),SunOS) - $(LD) $(LDFLAGS) -shared -Wl,-soname,`basename $@` -o $@ $(LIBCOMPONENTS) - strip --discard-all $@ -else - $(LD) $(LDFLAGS) -shared -Wl,-soname,`basename $@` -Wl,--gc-sections -o $@ $(LIBCOMPONENTS) - strip --discard-all $@ -endif - - -$(BUILD_OBJ)/%.o: src/%.c $(HEADERS) - $(CC) $(CFLAGS) -c -o $@ $< - -$(BUILD_OBJ)/%.o: test/%.c $(HEADERS) - $(CC) $(PUB_CFLAGS) -c -o $@ $< - -$(BUILD_OBJ)/%.o: test/%.cxx $(HEADERS) - $(CXX) $(CXXFLAGS) -c -o $@ $< - -# The sage test scripts -sage: $(BUILDPYS) - -sagetest: sage lib - $(SAGE) $(BUILD_PY)/test_decaf.sage - -$(BUILDPYS): $(SAGES) $(BUILD_OBJ)/timestamp - cp -f $(SAGES) $(BUILD_PY)/ - $(SAGE) --preparse $(SAGES:test/%.sage=$(BUILD_PY)/%.sage) - # some sage versions compile to .sage.py - for f in $(SAGES:test/%.sage=$(BUILD_PY)/%); do \ - if [ -e $$f.sage.py ]; then \ - mv $$f.sage.py $$f.py; \ - fi; \ - done - -# The documentation files -$(BUILD_DOC)/timestamp: - mkdir -p `dirname $@` - touch $@ -# -doc: Doxyfile $(BUILD_OBJ)/timestamp gen_code_static - $(DOXYGEN) > /dev/null - -gen_code_static: $(GEN_CODE) -gen_code: gen_code_static $(GEN_CODE_P2) - -# Finds todo items in .h and .c files -TODO_TYPES ?= HACK TODO @todo FIXME BUG XXX PERF FUTURE REMOVE MAGIC UNIFY -TODO_LOCATIONS ?= src/*.c src/include src/p* src/generator test Makefile Doxyfile -todo:: - @(find $(TODO_LOCATIONS) -name '*.h' -or -name '*.c' -or -name '*.cxx' -or -name '*.hxx' -or -name '*.py') | xargs egrep --color=auto -w \ - `echo $(TODO_TYPES) | tr ' ' '|'` - @echo '=============================' - @(for i in $(TODO_TYPES); do \ - (find $(TODO_LOCATIONS) -name '*.h' -or -name '*.c' -or -name '*.cxx' -or -name '*.hxx' -or -name '*.py') | xargs egrep -w $$i > /dev/null || continue; \ - /bin/echo -n $$i' ' | head -c 10; \ - (find $(TODO_LOCATIONS) -name '*.h' -or -name '*.c' -or -name '*.cxx' -or -name '*.hxx' -or -name '*.py') | xargs egrep -w $$i| wc -l; \ - done) - @echo '=============================' - @echo -n 'Total ' - @(find $(TODO_LOCATIONS) -name '*.h' -or -name '*.c' -or -name '*.cxx' -or -name '*.hxx' -or -name '*.py') | xargs egrep -w \ - `echo $(TODO_TYPES) | tr ' ' '|'` | wc -l - -bench: $(BUILD_IBIN)/bench - ./$< - -test: $(BUILD_IBIN)/test - ./$< - -test_ct: $(BUILD_IBIN)/test_ct - # NB: you must compile with XCFLAGS=-DNDEBUG or you will get lots of extra warnings due to assert(thing that is always true). - valgrind ./$< - -microbench: $(BUILD_IBIN)/bench - ./$< --micro +# CMAKE generated file: DO NOT EDIT! +# Generated by "Unix Makefiles" Generator, CMake Version 3.11 +# Default target executed when no arguments are given to make. +default_target: all + +.PHONY : default_target + +# Allow only one "make -f Makefile2" at a time, but pass parallelism. +.NOTPARALLEL: + + +#============================================================================= +# Special targets provided by cmake. + +# Disable implicit rules so canonical targets will work. +.SUFFIXES: + + +# Remove some rules from gmake that .SUFFIXES does not remove. +SUFFIXES = + +.SUFFIXES: .hpux_make_needs_suffix_list + + +# Suppress display of executed commands. +$(VERBOSE).SILENT: + + +# A target that is always out of date. +cmake_force: + +.PHONY : cmake_force + +#============================================================================= +# Set environment variables for the build. + +# The shell in which to execute make rules. +SHELL = /bin/sh + +# The CMake executable. +CMAKE_COMMAND = /usr/local/Cellar/cmake/3.11.3/bin/cmake + +# The command to remove a file. +RM = /usr/local/Cellar/cmake/3.11.3/bin/cmake -E remove -f + +# Escaping for special characters. +EQUALS = = + +# The top-level source directory on which CMake was run. +CMAKE_SOURCE_DIR = /Users/mike/projects/ed448goldilocks-code + +# The top-level build directory on which CMake was run. +CMAKE_BINARY_DIR = /Users/mike/projects/ed448goldilocks-code + +#============================================================================= +# Targets provided globally by CMake. + +# Special rule for the target install/strip +install/strip: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/local/Cellar/cmake/3.11.3/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip + +# Special rule for the target install/strip +install/strip/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing the project stripped..." + /usr/local/Cellar/cmake/3.11.3/bin/cmake -DCMAKE_INSTALL_DO_STRIP=1 -P cmake_install.cmake +.PHONY : install/strip/fast + +# Special rule for the target install +install: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/local/Cellar/cmake/3.11.3/bin/cmake -P cmake_install.cmake +.PHONY : install + +# Special rule for the target install +install/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Install the project..." + /usr/local/Cellar/cmake/3.11.3/bin/cmake -P cmake_install.cmake +.PHONY : install/fast + +# Special rule for the target list_install_components +list_install_components: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Available install components are: \"Unspecified\"" +.PHONY : list_install_components + +# Special rule for the target list_install_components +list_install_components/fast: list_install_components + +.PHONY : list_install_components/fast + +# Special rule for the target install/local +install/local: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/local/Cellar/cmake/3.11.3/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local + +# Special rule for the target install/local +install/local/fast: preinstall/fast + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Installing only the local directory..." + /usr/local/Cellar/cmake/3.11.3/bin/cmake -DCMAKE_INSTALL_LOCAL_ONLY=1 -P cmake_install.cmake +.PHONY : install/local/fast + +# Special rule for the target test +test: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running tests..." + /usr/local/Cellar/cmake/3.11.3/bin/ctest --force-new-ctest-process $(ARGS) +.PHONY : test + +# Special rule for the target test +test/fast: test + +.PHONY : test/fast + +# Special rule for the target edit_cache +edit_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake cache editor..." + /usr/local/Cellar/cmake/3.11.3/bin/ccmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : edit_cache + +# Special rule for the target edit_cache +edit_cache/fast: edit_cache + +.PHONY : edit_cache/fast + +# Special rule for the target rebuild_cache +rebuild_cache: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Running CMake to regenerate build system..." + /usr/local/Cellar/cmake/3.11.3/bin/cmake -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) +.PHONY : rebuild_cache + +# Special rule for the target rebuild_cache +rebuild_cache/fast: rebuild_cache + +.PHONY : rebuild_cache/fast + +# Special rule for the target package_source +package_source: + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool for source..." + /usr/local/Cellar/cmake/3.11.3/bin/cpack --config ./CPackSourceConfig.cmake /Users/mike/projects/ed448goldilocks-code/CPackSourceConfig.cmake +.PHONY : package_source + +# Special rule for the target package_source +package_source/fast: package_source + +.PHONY : package_source/fast + +# Special rule for the target package +package: preinstall + @$(CMAKE_COMMAND) -E cmake_echo_color --switch=$(COLOR) --cyan "Run CPack packaging tool..." + /usr/local/Cellar/cmake/3.11.3/bin/cpack --config ./CPackConfig.cmake +.PHONY : package + +# Special rule for the target package +package/fast: package + +.PHONY : package/fast + +# The main all target +all: cmake_check_build_system + $(CMAKE_COMMAND) -E cmake_progress_start /Users/mike/projects/ed448goldilocks-code/CMakeFiles /Users/mike/projects/ed448goldilocks-code/CMakeFiles/progress.marks + $(MAKE) -f CMakeFiles/Makefile2 all + $(CMAKE_COMMAND) -E cmake_progress_start /Users/mike/projects/ed448goldilocks-code/CMakeFiles 0 +.PHONY : all + +# The main clean target clean: - rm -fr build + $(MAKE) -f CMakeFiles/Makefile2 clean +.PHONY : clean + +# The main clean target +clean/fast: clean + +.PHONY : clean/fast + +# Prepare targets for installation. +preinstall: all + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall + +# Prepare targets for installation. +preinstall/fast: + $(MAKE) -f CMakeFiles/Makefile2 preinstall +.PHONY : preinstall/fast + +# clear depends +depend: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 1 +.PHONY : depend + +#============================================================================= +# Target rules for targets named doc + +# Build rule for target. +doc: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 doc +.PHONY : doc + +# fast build rule for target. +doc/fast: + $(MAKE) -f CMakeFiles/doc.dir/build.make CMakeFiles/doc.dir/build +.PHONY : doc/fast + +#============================================================================= +# Target rules for targets named decaf + +# Build rule for target. +decaf: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 decaf +.PHONY : decaf + +# fast build rule for target. +decaf/fast: + $(MAKE) -f src/CMakeFiles/decaf.dir/build.make src/CMakeFiles/decaf.dir/build +.PHONY : decaf/fast + +#============================================================================= +# Target rules for targets named decaf-static + +# Build rule for target. +decaf-static: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 decaf-static +.PHONY : decaf-static + +# fast build rule for target. +decaf-static/fast: + $(MAKE) -f src/CMakeFiles/decaf-static.dir/build.make src/CMakeFiles/decaf-static.dir/build +.PHONY : decaf-static/fast + +#============================================================================= +# Target rules for targets named CURVE25519 + +# Build rule for target. +CURVE25519: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 CURVE25519 +.PHONY : CURVE25519 + +# fast build rule for target. +CURVE25519/fast: + $(MAKE) -f src/curve25519/CMakeFiles/CURVE25519.dir/build.make src/curve25519/CMakeFiles/CURVE25519.dir/build +.PHONY : CURVE25519/fast + +#============================================================================= +# Target rules for targets named CURVE448 + +# Build rule for target. +CURVE448: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 CURVE448 +.PHONY : CURVE448 + +# fast build rule for target. +CURVE448/fast: + $(MAKE) -f src/ed448goldilocks/CMakeFiles/CURVE448.dir/build.make src/ed448goldilocks/CMakeFiles/CURVE448.dir/build +.PHONY : CURVE448/fast + +#============================================================================= +# Target rules for targets named p25519 + +# Build rule for target. +p25519: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 p25519 +.PHONY : p25519 + +# fast build rule for target. +p25519/fast: + $(MAKE) -f src/p25519/CMakeFiles/p25519.dir/build.make src/p25519/CMakeFiles/p25519.dir/build +.PHONY : p25519/fast + +#============================================================================= +# Target rules for targets named p448 + +# Build rule for target. +p448: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 p448 +.PHONY : p448 + +# fast build rule for target. +p448/fast: + $(MAKE) -f src/p448/CMakeFiles/p448.dir/build.make src/p448/CMakeFiles/p448.dir/build +.PHONY : p448/fast + +#============================================================================= +# Target rules for targets named generatedCode + +# Build rule for target. +generatedCode: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 generatedCode +.PHONY : generatedCode + +# fast build rule for target. +generatedCode/fast: + $(MAKE) -f src/generator/CMakeFiles/generatedCode.dir/build.make src/generator/CMakeFiles/generatedCode.dir/build +.PHONY : generatedCode/fast + +#============================================================================= +# Target rules for targets named decaf_tables + +# Build rule for target. +decaf_tables: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 decaf_tables +.PHONY : decaf_tables + +# fast build rule for target. +decaf_tables/fast: + $(MAKE) -f src/generator/CMakeFiles/decaf_tables.dir/build.make src/generator/CMakeFiles/decaf_tables.dir/build +.PHONY : decaf_tables/fast + +#============================================================================= +# Target rules for targets named generatorCommonCode + +# Build rule for target. +generatorCommonCode: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 generatorCommonCode +.PHONY : generatorCommonCode + +# fast build rule for target. +generatorCommonCode/fast: + $(MAKE) -f src/generator/CMakeFiles/generatorCommonCode.dir/build.make src/generator/CMakeFiles/generatorCommonCode.dir/build +.PHONY : generatorCommonCode/fast + +#============================================================================= +# Target rules for targets named decaf_gen_tables_curve25519 + +# Build rule for target. +decaf_gen_tables_curve25519: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 decaf_gen_tables_curve25519 +.PHONY : decaf_gen_tables_curve25519 + +# fast build rule for target. +decaf_gen_tables_curve25519/fast: + $(MAKE) -f src/generator/curve25519/CMakeFiles/decaf_gen_tables_curve25519.dir/build.make src/generator/curve25519/CMakeFiles/decaf_gen_tables_curve25519.dir/build +.PHONY : decaf_gen_tables_curve25519/fast + +#============================================================================= +# Target rules for targets named generatorP25519 + +# Build rule for target. +generatorP25519: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 generatorP25519 +.PHONY : generatorP25519 + +# fast build rule for target. +generatorP25519/fast: + $(MAKE) -f src/generator/curve25519/CMakeFiles/generatorP25519.dir/build.make src/generator/curve25519/CMakeFiles/generatorP25519.dir/build +.PHONY : generatorP25519/fast + +#============================================================================= +# Target rules for targets named decaf_tables_curve25519 + +# Build rule for target. +decaf_tables_curve25519: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 decaf_tables_curve25519 +.PHONY : decaf_tables_curve25519 + +# fast build rule for target. +decaf_tables_curve25519/fast: + $(MAKE) -f src/generator/curve25519/CMakeFiles/decaf_tables_curve25519.dir/build.make src/generator/curve25519/CMakeFiles/decaf_tables_curve25519.dir/build +.PHONY : decaf_tables_curve25519/fast + +#============================================================================= +# Target rules for targets named generatorCurve25519 + +# Build rule for target. +generatorCurve25519: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 generatorCurve25519 +.PHONY : generatorCurve25519 + +# fast build rule for target. +generatorCurve25519/fast: + $(MAKE) -f src/generator/curve25519/CMakeFiles/generatorCurve25519.dir/build.make src/generator/curve25519/CMakeFiles/generatorCurve25519.dir/build +.PHONY : generatorCurve25519/fast + +#============================================================================= +# Target rules for targets named decaf_tables_ed448goldilocks + +# Build rule for target. +decaf_tables_ed448goldilocks: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 decaf_tables_ed448goldilocks +.PHONY : decaf_tables_ed448goldilocks + +# fast build rule for target. +decaf_tables_ed448goldilocks/fast: + $(MAKE) -f src/generator/ed448goldilocks/CMakeFiles/decaf_tables_ed448goldilocks.dir/build.make src/generator/ed448goldilocks/CMakeFiles/decaf_tables_ed448goldilocks.dir/build +.PHONY : decaf_tables_ed448goldilocks/fast + +#============================================================================= +# Target rules for targets named generatorEd448goldilocks + +# Build rule for target. +generatorEd448goldilocks: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 generatorEd448goldilocks +.PHONY : generatorEd448goldilocks + +# fast build rule for target. +generatorEd448goldilocks/fast: + $(MAKE) -f src/generator/ed448goldilocks/CMakeFiles/generatorEd448goldilocks.dir/build.make src/generator/ed448goldilocks/CMakeFiles/generatorEd448goldilocks.dir/build +.PHONY : generatorEd448goldilocks/fast + +#============================================================================= +# Target rules for targets named decaf_gen_tables_ed448goldilocks + +# Build rule for target. +decaf_gen_tables_ed448goldilocks: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 decaf_gen_tables_ed448goldilocks +.PHONY : decaf_gen_tables_ed448goldilocks + +# fast build rule for target. +decaf_gen_tables_ed448goldilocks/fast: + $(MAKE) -f src/generator/ed448goldilocks/CMakeFiles/decaf_gen_tables_ed448goldilocks.dir/build.make src/generator/ed448goldilocks/CMakeFiles/decaf_gen_tables_ed448goldilocks.dir/build +.PHONY : decaf_gen_tables_ed448goldilocks/fast + +#============================================================================= +# Target rules for targets named generatorP448 + +# Build rule for target. +generatorP448: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 generatorP448 +.PHONY : generatorP448 + +# fast build rule for target. +generatorP448/fast: + $(MAKE) -f src/generator/ed448goldilocks/CMakeFiles/generatorP448.dir/build.make src/generator/ed448goldilocks/CMakeFiles/generatorP448.dir/build +.PHONY : generatorP448/fast + +#============================================================================= +# Target rules for targets named shakesum_tester + +# Build rule for target. +shakesum_tester: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 shakesum_tester +.PHONY : shakesum_tester + +# fast build rule for target. +shakesum_tester/fast: + $(MAKE) -f test/CMakeFiles/shakesum_tester.dir/build.make test/CMakeFiles/shakesum_tester.dir/build +.PHONY : shakesum_tester/fast + +#============================================================================= +# Target rules for targets named bench + +# Build rule for target. +bench: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 bench +.PHONY : bench + +# fast build rule for target. +bench/fast: + $(MAKE) -f test/CMakeFiles/bench.dir/build.make test/CMakeFiles/bench.dir/build +.PHONY : bench/fast + +#============================================================================= +# Target rules for targets named ristretto_tester + +# Build rule for target. +ristretto_tester: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 ristretto_tester +.PHONY : ristretto_tester + +# fast build rule for target. +ristretto_tester/fast: + $(MAKE) -f test/CMakeFiles/ristretto_tester.dir/build.make test/CMakeFiles/ristretto_tester.dir/build +.PHONY : ristretto_tester/fast + +#============================================================================= +# Target rules for targets named decaf_tester + +# Build rule for target. +decaf_tester: cmake_check_build_system + $(MAKE) -f CMakeFiles/Makefile2 decaf_tester +.PHONY : decaf_tester + +# fast build rule for target. +decaf_tester/fast: + $(MAKE) -f test/CMakeFiles/decaf_tester.dir/build.make test/CMakeFiles/decaf_tester.dir/build +.PHONY : decaf_tester/fast + +# Help Target +help: + @echo "The following are some of the valid targets for this Makefile:" + @echo "... all (the default if no target is provided)" + @echo "... clean" + @echo "... depend" + @echo "... install/strip" + @echo "... install" + @echo "... list_install_components" + @echo "... install/local" + @echo "... doc" + @echo "... test" + @echo "... edit_cache" + @echo "... rebuild_cache" + @echo "... package_source" + @echo "... package" + @echo "... decaf" + @echo "... decaf-static" + @echo "... CURVE25519" + @echo "... CURVE448" + @echo "... p25519" + @echo "... p448" + @echo "... generatedCode" + @echo "... decaf_tables" + @echo "... generatorCommonCode" + @echo "... decaf_gen_tables_curve25519" + @echo "... generatorP25519" + @echo "... decaf_tables_curve25519" + @echo "... generatorCurve25519" + @echo "... decaf_tables_ed448goldilocks" + @echo "... generatorEd448goldilocks" + @echo "... decaf_gen_tables_ed448goldilocks" + @echo "... generatorP448" + @echo "... shakesum_tester" + @echo "... bench" + @echo "... ristretto_tester" + @echo "... decaf_tester" +.PHONY : help + + + +#============================================================================= +# Special targets to cleanup operation of make. + +# Special rule to run CMake to check the build system integrity. +# No rule that depends on this can have commands that come from listfiles +# because they might be regenerated. +cmake_check_build_system: + $(CMAKE_COMMAND) -H$(CMAKE_SOURCE_DIR) -B$(CMAKE_BINARY_DIR) --check-build-system CMakeFiles/Makefile.cmake 0 +.PHONY : cmake_check_build_system -clean_generated: clean - rm -fr $(BUILD_C)/* $(BUILD_H)/* $(BUILD_INC)/* -- cgit v1.2.3-59-g8ed1b