Implementation of the Paillier Cryptosystem.
Alongside regular encryption and decryption, the implementation also supports homomorphic operations such as the addition of two underlying plaintexts as well as the multiplication of an underlying plaintext with a second plaintext value.
There are also two proof implementations. One allows for proving knowledge of an Nth Root while the second proof can be used to prove that an encrypted value falls into a certain range (range proof).
git clone <url>
asdf install
(optional)go test -count 1 -race ./...
go run <package-path>
go build [<package-path>]
go test [<package-path>][/...] [-v] [-cover] [-race] [-short] [-parallel <number>]
go test -bench=. [<package-path>] [-count <number>] [-benchmem] [-benchtime 2s] [-memprofile <name>]
go test -coverprofile <name> [<package-path>]
go tool cover -html <name>
go tool cover -func <name>
go fmt [<package-path>]
go mod init [<module-path>]
go mod tidy