arnaucube
arnaucube/blindsecp256k1-jsPublic Self-hosted repository
blindsecp256k1-js/test/index.test.ts
test/index.test.tsRaw
 1import * as assert from 'assert'
 2
 3import {
 4	bigNumberFromString,
 5	ecParams,
 6	newKeyPair,
 7	newRequestParameters,
 8	blind,
 9	blindSign,
10	unblind,
11	verify,
12	hashBigNumber,
13	Point,
14	BigNumber
15} from "../src/index"
16
17describe("keccak256", function () {
18	it("keccak256", async () => {
19		const msg = Buffer.from("test", 'utf8')
20		const m = new BigNumber(msg)
21		const hHex = hashBigNumber(m)
22		assert.strictEqual(hHex, '9c22ff5f21f0b81b113e63f7db6da94fedef11b2119b4088b89664fb9a3cb658')
23		const h = new BigNumber(Buffer.from(hHex, "hex"))
24		assert.strictEqual(h.toString(), '70622639689279718371527342103894932928233838121221666359043189029713682937432')
25	})
26})
27
28describe("test blind", function () {
29	it("should blind", async () => {
30		const { sk, pk } = newKeyPair()
31
32		const { k, signerR } = newRequestParameters()
33
34		const msg = new BigNumber(
35			Buffer.from("test", 'utf8')
36		)
37		assert.strictEqual('1952805748', msg.toString())
38
39		const { mBlinded, userSecretData } = blind(msg, signerR)
40
41		const sBlind = blindSign(sk, mBlinded, k)
42
43		const sig = unblind(sBlind, userSecretData)
44
45		const verified = verify(msg, sig, pk)
46		assert(verified)
47	})
48})