2021-02-09 20:51:50 +01:00
2021-01-10 23:32:24 +01:00
2021-01-16 20:53:55 +01:00
2021-01-16 20:53:55 +01:00
2021-01-10 14:16:55 +01:00
2021-02-01 19:32:24 +01:00
2021-02-01 17:47:12 +01:00

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

// signer: create new signer key pair
sk := NewPrivateKey()
signerPubK := sk.Public()

// signer: when user requests new R parameter to blind a new msg,
// create new signerR (public) with its secret k
k, signerR := NewRequestParameters()

// user: blinds the msg using signer's R
msg := new(big.Int).SetBytes([]byte("test"))
msgBlinded, userSecretData, err := Blind(msg, signerR)
require.Nil(t, err)

// signer: signs the blinded message using its private key & secret k
sBlind, err := sk.BlindSign(msgBlinded, k)
require.Nil(t, err)

// user: unblinds the blinded signature
sig := Unblind(sBlind, userSecretData)

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

WASM usage

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

Description
No description provided
Readme GPL-3.0 4.8 MiB
Languages
Go 93.3%
JavaScript 5.2%
HTML 1.1%
Shell 0.4%