sidh: updates algorithm to SIDHv3 and refactoring (#6)
* tests: adds continues integration
* Makefile has targets for running tests, benchmarks and code coverage. It also
contains target for env preparation. In order to run sidh tests
GOPATH must contain p751toolbox package. I've chosen to manualy
copy this package to the temporary GOPATH directory. It could also be done
by calling "go get", but then any commit to both p751toolbox and sidh would need
to be done in 2 steps.
* .travis.yml calls make and uploads code coverage to Codecov
* move sidh to seperated folder
* sidh: updates algorithm to SIDHv3 and refactoring
* makes an algorithm compatible with Microsoft's SIDHv3
implementation. This is required to implement SIKE key
encapsulation mechanism, as specified in PQC NIST submission
from Nov, 30 2017
* removes SIDHBobPublicKey/SIDHAlicePublicKey/SIDHBobPrivateKey/
SIDHAlicePrivateKey. Instead PrivateKey and PublicKey structures
where introduced. Each of this structure stores variant of a key
A or B. Implementation uses a key variant in order to differentiate
between 2- and 3-torision groups.
Main goal of removing "Alice" and "Bob" specific structures is to
remove code duplication
* Introduces SidhParams: structure to store prime field and SIDH
domain parameters.
* Refactors public API. Introduces:
- Functions to generate, import, export keypair
- DeriveSecret function to create shared secret
- Supporting functions and types
* Removes code which is not used by implementation anymore, like
DistortAndDifference(), SecretPoint(), DblAdd(),
OkeyaSakuraiCoordinateRecovery() and many more. Also tests for those
functions are removed.
* Adds fixes for key import/export
преди 6 години sidh: updates algorithm to SIDHv3 and refactoring (#6)
* tests: adds continues integration
* Makefile has targets for running tests, benchmarks and code coverage. It also
contains target for env preparation. In order to run sidh tests
GOPATH must contain p751toolbox package. I've chosen to manualy
copy this package to the temporary GOPATH directory. It could also be done
by calling "go get", but then any commit to both p751toolbox and sidh would need
to be done in 2 steps.
* .travis.yml calls make and uploads code coverage to Codecov
* move sidh to seperated folder
* sidh: updates algorithm to SIDHv3 and refactoring
* makes an algorithm compatible with Microsoft's SIDHv3
implementation. This is required to implement SIKE key
encapsulation mechanism, as specified in PQC NIST submission
from Nov, 30 2017
* removes SIDHBobPublicKey/SIDHAlicePublicKey/SIDHBobPrivateKey/
SIDHAlicePrivateKey. Instead PrivateKey and PublicKey structures
where introduced. Each of this structure stores variant of a key
A or B. Implementation uses a key variant in order to differentiate
between 2- and 3-torision groups.
Main goal of removing "Alice" and "Bob" specific structures is to
remove code duplication
* Introduces SidhParams: structure to store prime field and SIDH
domain parameters.
* Refactors public API. Introduces:
- Functions to generate, import, export keypair
- DeriveSecret function to create shared secret
- Supporting functions and types
* Removes code which is not used by implementation anymore, like
DistortAndDifference(), SecretPoint(), DblAdd(),
OkeyaSakuraiCoordinateRecovery() and many more. Also tests for those
functions are removed.
* Adds fixes for key import/export
преди 6 години sidh: updates algorithm to SIDHv3 and refactoring (#6)
* tests: adds continues integration
* Makefile has targets for running tests, benchmarks and code coverage. It also
contains target for env preparation. In order to run sidh tests
GOPATH must contain p751toolbox package. I've chosen to manualy
copy this package to the temporary GOPATH directory. It could also be done
by calling "go get", but then any commit to both p751toolbox and sidh would need
to be done in 2 steps.
* .travis.yml calls make and uploads code coverage to Codecov
* move sidh to seperated folder
* sidh: updates algorithm to SIDHv3 and refactoring
* makes an algorithm compatible with Microsoft's SIDHv3
implementation. This is required to implement SIKE key
encapsulation mechanism, as specified in PQC NIST submission
from Nov, 30 2017
* removes SIDHBobPublicKey/SIDHAlicePublicKey/SIDHBobPrivateKey/
SIDHAlicePrivateKey. Instead PrivateKey and PublicKey structures
where introduced. Each of this structure stores variant of a key
A or B. Implementation uses a key variant in order to differentiate
between 2- and 3-torision groups.
Main goal of removing "Alice" and "Bob" specific structures is to
remove code duplication
* Introduces SidhParams: structure to store prime field and SIDH
domain parameters.
* Refactors public API. Introduces:
- Functions to generate, import, export keypair
- DeriveSecret function to create shared secret
- Supporting functions and types
* Removes code which is not used by implementation anymore, like
DistortAndDifference(), SecretPoint(), DblAdd(),
OkeyaSakuraiCoordinateRecovery() and many more. Also tests for those
functions are removed.
* Adds fixes for key import/export
преди 6 години sidh: updates algorithm to SIDHv3 and refactoring (#6)
* tests: adds continues integration
* Makefile has targets for running tests, benchmarks and code coverage. It also
contains target for env preparation. In order to run sidh tests
GOPATH must contain p751toolbox package. I've chosen to manualy
copy this package to the temporary GOPATH directory. It could also be done
by calling "go get", but then any commit to both p751toolbox and sidh would need
to be done in 2 steps.
* .travis.yml calls make and uploads code coverage to Codecov
* move sidh to seperated folder
* sidh: updates algorithm to SIDHv3 and refactoring
* makes an algorithm compatible with Microsoft's SIDHv3
implementation. This is required to implement SIKE key
encapsulation mechanism, as specified in PQC NIST submission
from Nov, 30 2017
* removes SIDHBobPublicKey/SIDHAlicePublicKey/SIDHBobPrivateKey/
SIDHAlicePrivateKey. Instead PrivateKey and PublicKey structures
where introduced. Each of this structure stores variant of a key
A or B. Implementation uses a key variant in order to differentiate
between 2- and 3-torision groups.
Main goal of removing "Alice" and "Bob" specific structures is to
remove code duplication
* Introduces SidhParams: structure to store prime field and SIDH
domain parameters.
* Refactors public API. Introduces:
- Functions to generate, import, export keypair
- DeriveSecret function to create shared secret
- Supporting functions and types
* Removes code which is not used by implementation anymore, like
DistortAndDifference(), SecretPoint(), DblAdd(),
OkeyaSakuraiCoordinateRecovery() and many more. Also tests for those
functions are removed.
* Adds fixes for key import/export
преди 6 години sidh: updates algorithm to SIDHv3 and refactoring (#6)
* tests: adds continues integration
* Makefile has targets for running tests, benchmarks and code coverage. It also
contains target for env preparation. In order to run sidh tests
GOPATH must contain p751toolbox package. I've chosen to manualy
copy this package to the temporary GOPATH directory. It could also be done
by calling "go get", but then any commit to both p751toolbox and sidh would need
to be done in 2 steps.
* .travis.yml calls make and uploads code coverage to Codecov
* move sidh to seperated folder
* sidh: updates algorithm to SIDHv3 and refactoring
* makes an algorithm compatible with Microsoft's SIDHv3
implementation. This is required to implement SIKE key
encapsulation mechanism, as specified in PQC NIST submission
from Nov, 30 2017
* removes SIDHBobPublicKey/SIDHAlicePublicKey/SIDHBobPrivateKey/
SIDHAlicePrivateKey. Instead PrivateKey and PublicKey structures
where introduced. Each of this structure stores variant of a key
A or B. Implementation uses a key variant in order to differentiate
between 2- and 3-torision groups.
Main goal of removing "Alice" and "Bob" specific structures is to
remove code duplication
* Introduces SidhParams: structure to store prime field and SIDH
domain parameters.
* Refactors public API. Introduces:
- Functions to generate, import, export keypair
- DeriveSecret function to create shared secret
- Supporting functions and types
* Removes code which is not used by implementation anymore, like
DistortAndDifference(), SecretPoint(), DblAdd(),
OkeyaSakuraiCoordinateRecovery() and many more. Also tests for those
functions are removed.
* Adds fixes for key import/export
преди 6 години sidh: updates algorithm to SIDHv3 and refactoring (#6)
* tests: adds continues integration
* Makefile has targets for running tests, benchmarks and code coverage. It also
contains target for env preparation. In order to run sidh tests
GOPATH must contain p751toolbox package. I've chosen to manualy
copy this package to the temporary GOPATH directory. It could also be done
by calling "go get", but then any commit to both p751toolbox and sidh would need
to be done in 2 steps.
* .travis.yml calls make and uploads code coverage to Codecov
* move sidh to seperated folder
* sidh: updates algorithm to SIDHv3 and refactoring
* makes an algorithm compatible with Microsoft's SIDHv3
implementation. This is required to implement SIKE key
encapsulation mechanism, as specified in PQC NIST submission
from Nov, 30 2017
* removes SIDHBobPublicKey/SIDHAlicePublicKey/SIDHBobPrivateKey/
SIDHAlicePrivateKey. Instead PrivateKey and PublicKey structures
where introduced. Each of this structure stores variant of a key
A or B. Implementation uses a key variant in order to differentiate
between 2- and 3-torision groups.
Main goal of removing "Alice" and "Bob" specific structures is to
remove code duplication
* Introduces SidhParams: structure to store prime field and SIDH
domain parameters.
* Refactors public API. Introduces:
- Functions to generate, import, export keypair
- DeriveSecret function to create shared secret
- Supporting functions and types
* Removes code which is not used by implementation anymore, like
DistortAndDifference(), SecretPoint(), DblAdd(),
OkeyaSakuraiCoordinateRecovery() and many more. Also tests for those
functions are removed.
* Adds fixes for key import/export
преди 6 години sidh: updates algorithm to SIDHv3 and refactoring (#6)
* tests: adds continues integration
* Makefile has targets for running tests, benchmarks and code coverage. It also
contains target for env preparation. In order to run sidh tests
GOPATH must contain p751toolbox package. I've chosen to manualy
copy this package to the temporary GOPATH directory. It could also be done
by calling "go get", but then any commit to both p751toolbox and sidh would need
to be done in 2 steps.
* .travis.yml calls make and uploads code coverage to Codecov
* move sidh to seperated folder
* sidh: updates algorithm to SIDHv3 and refactoring
* makes an algorithm compatible with Microsoft's SIDHv3
implementation. This is required to implement SIKE key
encapsulation mechanism, as specified in PQC NIST submission
from Nov, 30 2017
* removes SIDHBobPublicKey/SIDHAlicePublicKey/SIDHBobPrivateKey/
SIDHAlicePrivateKey. Instead PrivateKey and PublicKey structures
where introduced. Each of this structure stores variant of a key
A or B. Implementation uses a key variant in order to differentiate
between 2- and 3-torision groups.
Main goal of removing "Alice" and "Bob" specific structures is to
remove code duplication
* Introduces SidhParams: structure to store prime field and SIDH
domain parameters.
* Refactors public API. Introduces:
- Functions to generate, import, export keypair
- DeriveSecret function to create shared secret
- Supporting functions and types
* Removes code which is not used by implementation anymore, like
DistortAndDifference(), SecretPoint(), DblAdd(),
OkeyaSakuraiCoordinateRecovery() and many more. Also tests for those
functions are removed.
* Adds fixes for key import/export
преди 6 години sidh: updates algorithm to SIDHv3 and refactoring (#6)
* tests: adds continues integration
* Makefile has targets for running tests, benchmarks and code coverage. It also
contains target for env preparation. In order to run sidh tests
GOPATH must contain p751toolbox package. I've chosen to manualy
copy this package to the temporary GOPATH directory. It could also be done
by calling "go get", but then any commit to both p751toolbox and sidh would need
to be done in 2 steps.
* .travis.yml calls make and uploads code coverage to Codecov
* move sidh to seperated folder
* sidh: updates algorithm to SIDHv3 and refactoring
* makes an algorithm compatible with Microsoft's SIDHv3
implementation. This is required to implement SIKE key
encapsulation mechanism, as specified in PQC NIST submission
from Nov, 30 2017
* removes SIDHBobPublicKey/SIDHAlicePublicKey/SIDHBobPrivateKey/
SIDHAlicePrivateKey. Instead PrivateKey and PublicKey structures
where introduced. Each of this structure stores variant of a key
A or B. Implementation uses a key variant in order to differentiate
between 2- and 3-torision groups.
Main goal of removing "Alice" and "Bob" specific structures is to
remove code duplication
* Introduces SidhParams: structure to store prime field and SIDH
domain parameters.
* Refactors public API. Introduces:
- Functions to generate, import, export keypair
- DeriveSecret function to create shared secret
- Supporting functions and types
* Removes code which is not used by implementation anymore, like
DistortAndDifference(), SecretPoint(), DblAdd(),
OkeyaSakuraiCoordinateRecovery() and many more. Also tests for those
functions are removed.
* Adds fixes for key import/export
преди 6 години sidh: updates algorithm to SIDHv3 and refactoring (#6)
* tests: adds continues integration
* Makefile has targets for running tests, benchmarks and code coverage. It also
contains target for env preparation. In order to run sidh tests
GOPATH must contain p751toolbox package. I've chosen to manualy
copy this package to the temporary GOPATH directory. It could also be done
by calling "go get", but then any commit to both p751toolbox and sidh would need
to be done in 2 steps.
* .travis.yml calls make and uploads code coverage to Codecov
* move sidh to seperated folder
* sidh: updates algorithm to SIDHv3 and refactoring
* makes an algorithm compatible with Microsoft's SIDHv3
implementation. This is required to implement SIKE key
encapsulation mechanism, as specified in PQC NIST submission
from Nov, 30 2017
* removes SIDHBobPublicKey/SIDHAlicePublicKey/SIDHBobPrivateKey/
SIDHAlicePrivateKey. Instead PrivateKey and PublicKey structures
where introduced. Each of this structure stores variant of a key
A or B. Implementation uses a key variant in order to differentiate
between 2- and 3-torision groups.
Main goal of removing "Alice" and "Bob" specific structures is to
remove code duplication
* Introduces SidhParams: structure to store prime field and SIDH
domain parameters.
* Refactors public API. Introduces:
- Functions to generate, import, export keypair
- DeriveSecret function to create shared secret
- Supporting functions and types
* Removes code which is not used by implementation anymore, like
DistortAndDifference(), SecretPoint(), DblAdd(),
OkeyaSakuraiCoordinateRecovery() and many more. Also tests for those
functions are removed.
* Adds fixes for key import/export
преди 6 години sidh: updates algorithm to SIDHv3 and refactoring (#6)
* tests: adds continues integration
* Makefile has targets for running tests, benchmarks and code coverage. It also
contains target for env preparation. In order to run sidh tests
GOPATH must contain p751toolbox package. I've chosen to manualy
copy this package to the temporary GOPATH directory. It could also be done
by calling "go get", but then any commit to both p751toolbox and sidh would need
to be done in 2 steps.
* .travis.yml calls make and uploads code coverage to Codecov
* move sidh to seperated folder
* sidh: updates algorithm to SIDHv3 and refactoring
* makes an algorithm compatible with Microsoft's SIDHv3
implementation. This is required to implement SIKE key
encapsulation mechanism, as specified in PQC NIST submission
from Nov, 30 2017
* removes SIDHBobPublicKey/SIDHAlicePublicKey/SIDHBobPrivateKey/
SIDHAlicePrivateKey. Instead PrivateKey and PublicKey structures
where introduced. Each of this structure stores variant of a key
A or B. Implementation uses a key variant in order to differentiate
between 2- and 3-torision groups.
Main goal of removing "Alice" and "Bob" specific structures is to
remove code duplication
* Introduces SidhParams: structure to store prime field and SIDH
domain parameters.
* Refactors public API. Introduces:
- Functions to generate, import, export keypair
- DeriveSecret function to create shared secret
- Supporting functions and types
* Removes code which is not used by implementation anymore, like
DistortAndDifference(), SecretPoint(), DblAdd(),
OkeyaSakuraiCoordinateRecovery() and many more. Also tests for those
functions are removed.
* Adds fixes for key import/export
преди 6 години |
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465 |
- # Constants
- MK_FILE_PATH = $(lastword $(MAKEFILE_LIST))
- PRJ_DIR = $(abspath $(dir $(MK_FILE_PATH)))
- GOPATH_LOCAL = $(PRJ_DIR)/build
- GOPATH_DIR = github.com/cloudflare/p751sidh
- CSHAKE_PKG ?= github.com/henrydcase/nobs/hash/sha3
- CPU_PKG = golang.org/x/sys/cpu
- TARGETS = p503 p751 sidh sike
- GO ?= go
- GOARCH ?=
- OPTS_GCCGO ?= -compiler gccgo -O2 -g
- OPTS ?=
- OPTS_TAGS ?= -tags=noasm
- NOASM ?=
- # -run="NonExistent" is set to make sure tests are not run before benchmarking
- BENCH_OPTS ?= -bench=. -run="NonExistent"
- # whether to be verbose
- V ?= 1
-
- ifeq ($(NOASM),1)
- OPTS+=$(OPTS_TAGS)
- endif
-
- ifeq ($(V),1)
- OPTS += -v # Be verbose
- BENCH_OPTS += -gcflags=-m # Show results from inlining
- endif
-
- all: test
- clean:
- rm -rf $(GOPATH_LOCAL)
- rm -rf coverage*.txt
-
- build_env:
- GOPATH=$(GOPATH_LOCAL) $(GO) get $(CSHAKE_PKG) $(CPU_PKG)
- mkdir -p $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
- cp -rf internal $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
- cp -rf etc $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
-
- copy-target-%:
- cp -rf $* $(GOPATH_LOCAL)/src/$(GOPATH_DIR)
-
- prep_targets: build_env $(addprefix copy-target-, $(TARGETS))
-
- install-%: prep_targets
- GOPATH=$(GOPATH_LOCAL) $(GO) install $(OPTS) $(GOPATH_DIR)/$*
-
- test-%: prep_targets
- GOPATH=$(GOPATH_LOCAL) $(GO) vet $(GOPATH_DIR)/$*
- GOPATH=$(GOPATH_LOCAL) $(GO) test $(OPTS) $(GOPATH_DIR)/$*
-
- bench-%: prep_targets
- GOMAXPROCS=1 GOPATH=$(GOPATH_LOCAL) $(GO) test $(OPTS) $(GOPATH_DIR)/$* $(BENCH_OPTS)
-
- cover-%: prep_targets
- GOPATH=$(GOPATH_LOCAL) $(GO) test \
- -race -coverprofile=coverage_$*.txt -covermode=atomic $(OPTS) $(GOPATH_DIR)/$*
- cat coverage_$*.txt >> coverage.txt
- rm coverage_$*.txt
-
- bench: $(addprefix bench-, $(TARGETS))
- cover: $(addprefix cover-, $(TARGETS))
- install: $(addprefix install-, $(TARGETS))
- test: $(addprefix test-, $(TARGETS))
-
|