You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
arnaucube ec095bba83 Implement https://sci-hub.do/10.1109/ICCKE.2013.6682844 3 years ago
.github/workflows Add WASM wrappers & compiled 3 years ago
v0 Implement https://sci-hub.do/10.1109/ICCKE.2013.6682844 3 years ago
wasm Implement https://sci-hub.do/10.1109/ICCKE.2013.6682844 3 years ago
.gitignore Add WASM wrappers & compiled 3 years ago
.golangci.yml Add GHA (tests & lint), add descr, update readme 3 years ago
LICENSE init repo add LICENSE 3 years ago
README.md Implement https://sci-hub.do/10.1109/ICCKE.2013.6682844 3 years ago
blindsecp256k1.go Implement https://sci-hub.do/10.1109/ICCKE.2013.6682844 3 years ago
blindsecp256k1_test.go Add blind signature scheme methods 3 years ago
go.mod Implement https://sci-hub.do/10.1109/ICCKE.2013.6682844 3 years ago
go.sum Implement https://sci-hub.do/10.1109/ICCKE.2013.6682844 3 years ago

README.md

go-blindsecp256k1 GoDoc Go Report Card Test

Blind signature over secp256k1, based on "New Blind Signature Schemes Based on the (Elliptic Curve) Discrete Logarithm Problem" paper by Hamid Mala & Nafiseh Nezhadansari.

WARNING: this repo is experimental, do not use in production.

Usage

// message to be signed
msg := new(big.Int).SetBytes([]byte("test"))

// create new signer
signerPrivateData := blindsecp256k1.NewSigner()
signerPublicData := signerPrivateData.PublicData()

// user blinds the msg
msgBlinded, user := blindsecp256k1.Blind(msg, signerPublicData)

// signer signs the blinded message
sBlind := signerPrivateData.BlindSign(msgBlinded)

// user unblinds the blinded signature
sig := blindsecp256k1.Unblind(sBlind, msg, user)

// signature can be verified with signer PublicKey
verified := blindsecp256k1.Verify(msg, sig, signerPublicData.Q)
assert.True(t, verified)

WASM usage

WASM wrappers for browser usage can be found at the wasm directory with an example in html&js.