Skip to content
/ golang-pallier-fhe Public template

Familiarizing myself with Go and FHE by working on an implementation of the fully homomorphic encryption scheme presented by Pascal Paillier in 1999.

Notifications You must be signed in to change notification settings

a-t-0/golang-pallier-fhe

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Golang implementation of Paillier FHE scheme

This is used by myself to learn, not for production.

Prerequisites

sudo apt install golang-go
pre-commit install

# Install errcheck
#go get -u github.com/kisielk/errcheck # Did not resolve issue
sudo snap install errcheck # Worked.

# Install staticcheck
go install honnef.co/go/tools/cmd/staticcheck@latest

# Install goimports
go install golang.org/x/tools/cmd/goimports@latest

# Install gocyclo
go install github.com/fzipp/gocyclo/cmd/gocyclo@latest

# Install gocritic
go install -v github.com/go-critic/go-critic/cmd/gocritic@latest

# Install documentation viewer.
sudo apt install golang-golang-x-tools

# Colorize test output.
go install -v github.com/kyoh86/richgo
go get github.com/kyoh86/richgo

# Optional (if it says ... gostatic not found etc):
export GOPATH="$HOME/go"
export PATH=$PATH:$GOPATH/bin

Run code

go build -o out && ./out

Run tests

Source

clear && go test ./... -coverprofile=coverage.out

or with colour:

richgo test ./... -coverprofile=coverage.out

View documentation

godoc -http=:6060

Import dependencies

go mod tidy && go run .

Creating pip-package like dependency

Source

Go=Golang resources

handbook

pre-commit

Template repo

pre-commit example

FHE resources

  • Explanations:

Wiki

blog-on-Pailier-cryptosystem

Verification

  • Python:

e-voting

fhe

  • Go:

fhe

fabmorph

paillier

About

Familiarizing myself with Go and FHE by working on an implementation of the fully homomorphic encryption scheme presented by Pascal Paillier in 1999.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages