hbs-lms 0.1.1

Pure Rust implementation of the Leighton Micali Signature scheme with support for key generation, signature generation and verification.
Documentation
.phony: all test

all:
	cargo fmt
	cargo build
	cargo clippy --all-targets --all-features -- -D warnings
	cargo build --examples

test:
	cargo test

clean:
	cargo clean

riscv:
	cargo build --target riscv32imac-unknown-none-elf

check-for-todos:
	@git grep -n -i -e todo -e fixme -- \
	    :^Makefile \
	    :^.gitlab-ci.yml \
	    :^.github/ \
	    2>&1 | tee check_for_todos_results.txt

	@if [ ! -s check_for_todos_results.txt ]; then \
	    echo "Success: No TODO comments found."; \
	else \
	    echo "Failure: Found TODO comments"; \
	    exit 1; \
	fi

check-msrv:
	@$(eval readme=$(shell grep "Rust \*\*....\*\*" README.md | cut -d'*' -f3-3))
	@$(eval cargo=$(shell grep rust-version Cargo.toml | cut -d'"' -f2-2))
	@echo README.md :  $(readme)
	@echo Cargo.toml: $(cargo)

	@if [ "$(readme)" = "$(cargo)" ]; then \
	    echo "Success: MSRVs match."; \
	else \
	    echo "Failure: MSRVs don't match."; \
	    exit 1; \
	fi

run-pipeline-local: check-for-todos check-msrv
	gitlab-runner exec shell fmt
	gitlab-runner exec shell clippy

	gitlab-runner exec shell default-latest
	gitlab-runner exec shell default-nightly

	gitlab-runner exec shell feature-latest
	gitlab-runner exec shell feature-nightly