Skip to content

Commit f21ad90

Browse files
committed
Add more tests and github hooks
Signed-off-by: lovesh <lovesh.bond@gmail.com>
1 parent fa82a3a commit f21ad90

File tree

11 files changed

+1555
-984
lines changed

11 files changed

+1555
-984
lines changed

.github/workspaces/test.yml

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
name: test
2+
3+
on: [push, pull_request]
4+
5+
jobs:
6+
build_test:
7+
name: Build test
8+
runs-on: ${{matrix.os}}
9+
strategy:
10+
matrix:
11+
node-version: [14.x, 15.x, 16.x]
12+
os: [ubuntu-latest]
13+
steps:
14+
- uses: actions/checkout@v1
15+
- uses: actions/setup-node@v1
16+
with:
17+
node-version: ${{ matrix.node-version }}
18+
- run: yarn install --frozen-lockfile
19+
- run: yarn build
20+
- run: yarn test

README.md

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ const main = async () => {
6363

6464
const messageCount = 10;
6565
const messages: Uint8Array[] = [];
66-
for (let i = 0; i < count; i++) {
66+
for (let i = 0; i < messageCount; i++) {
6767
messages.push(stringToBytes(`Message-${i + 1}`));
6868
}
6969

@@ -79,8 +79,15 @@ const main = async () => {
7979
console.log(`Signature verified ? ${JSON.stringify(result)}`);
8080

8181
// 2 revealed messages and 1 user supplied blinding
82+
let revealed: Set<number> = new Set();
83+
let revealedMsgs: Map<number, Uint8Array> = new Map();
84+
revealed.add(0);
85+
revealed.add(2);
86+
revealedMsgs.set(0, messages[0]);
87+
revealedMsgs.set(2, messages[2]);
8288
const blindings: Map<number, Uint8Array> = new Map();
8389
blindings.set(1, generateRandomFieldElement());
90+
8491
const protocol = PoKSigProtocol.initialize(messages, sig, params, true, blindings, revealed);
8592
const challengeContributionP = protocol.challengeContribution(params, true, revealedMsgs);
8693
const challengeProver = bytesToChallenge(challengeContributionP);

package.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
{
22
"name": "@docknetwork/crypto-wasm-ts",
3-
"version": "0.3.0",
3+
"version": "0.4.0",
44
"description": "Typescript abstractions over Dock's Rust crypto library's WASM wrapper",
55
"homepage": "https://github.com/docknetwork/crypto-wasm-ts",
66
"main": "lib/crypto-wasm-ts/src/index.js",
@@ -21,7 +21,7 @@
2121
"lib": "lib"
2222
},
2323
"dependencies": {
24-
"@docknetwork/crypto-wasm": "0.3.0"
24+
"@docknetwork/crypto-wasm": "0.4.0"
2525
},
2626
"devDependencies": {
2727
"eslint-config-prettier": "^8.3.0",

src/accumulator/accumulator.ts

Lines changed: 18 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { IKeypair, AccumulatorParams } from '@docknetwork/crypto-wasm';
1+
import { IKeypair } from '@docknetwork/crypto-wasm';
22
import {
33
positiveAccumulatorAdd,
44
positiveAccumulatorAddBatch,
@@ -57,7 +57,7 @@ import { IInitialElementsStore } from './IInitialElementsStore';
5757
export abstract class Accumulator {
5858
value: Uint8Array | object;
5959
secretKey: Uint8Array | undefined;
60-
params: AccumulatorParams | undefined;
60+
params: Uint8Array | undefined;
6161

6262
/**
6363
* Construct an accumulator object.
@@ -103,7 +103,7 @@ export abstract class Accumulator {
103103
* @param label - Pass to generate parameters deterministically.
104104
* @returns
105105
*/
106-
static generateParams(label?: Uint8Array): AccumulatorParams {
106+
static generateParams(label?: Uint8Array): Uint8Array {
107107
return generateAccumulatorParams(label);
108108
}
109109

@@ -113,7 +113,7 @@ export abstract class Accumulator {
113113
* @param params
114114
* @returns true if key is valid, false otherwise
115115
*/
116-
static isParamsValid(params: AccumulatorParams): boolean {
116+
static isParamsValid(params: Uint8Array): boolean {
117117
return isAccumulatorParamsValid(params);
118118
}
119119

@@ -132,7 +132,7 @@ export abstract class Accumulator {
132132
* @param params
133133
* @returns
134134
*/
135-
static generatePublicKeyFromSecretKey(secretKey: Uint8Array, params: AccumulatorParams): Uint8Array {
135+
static generatePublicKeyFromSecretKey(secretKey: Uint8Array, params: Uint8Array): Uint8Array {
136136
return generateAccumulatorPublicKey(secretKey, params);
137137
}
138138

@@ -152,7 +152,7 @@ export abstract class Accumulator {
152152
* @param seed - Pass to generate keys deterministically.
153153
* @returns
154154
*/
155-
static generateKeypair(params: AccumulatorParams, seed?: Uint8Array): IKeypair {
155+
static generateKeypair(params: Uint8Array, seed?: Uint8Array): IKeypair {
156156
return generateAccumulatorKeyPair(params, seed);
157157
}
158158

@@ -198,7 +198,7 @@ export abstract class Accumulator {
198198
* @param params
199199
* @returns params or throws error if cannot find params
200200
*/
201-
protected getParams(params?: AccumulatorParams): AccumulatorParams {
201+
protected getParams(params?: Uint8Array): Uint8Array {
202202
if (params === undefined) {
203203
if (this.params === undefined) {
204204
throw new Error('Params needs to be provided');
@@ -303,7 +303,7 @@ export abstract class Accumulator {
303303
member: Uint8Array,
304304
witness: MembershipWitness,
305305
pk: Uint8Array,
306-
params?: AccumulatorParams
306+
params?: Uint8Array
307307
): boolean;
308308

309309
/**
@@ -436,7 +436,7 @@ export class PositiveAccumulator extends Accumulator {
436436
* @param params
437437
* @param secretKey - Optional. If provided, its stored to do any future updates.
438438
*/
439-
static initialize(params: AccumulatorParams, secretKey?: Uint8Array): PositiveAccumulator {
439+
static initialize(params: Uint8Array, secretKey?: Uint8Array): PositiveAccumulator {
440440
const value = positiveAccumulatorInitialize(params);
441441
return new PositiveAccumulator({ value, params, sk: secretKey });
442442
}
@@ -561,7 +561,7 @@ export class PositiveAccumulator extends Accumulator {
561561
member: Uint8Array,
562562
witness: MembershipWitness,
563563
publicKey: Uint8Array,
564-
params?: AccumulatorParams
564+
params?: Uint8Array
565565
): boolean {
566566
const params_ = this.getParams(params);
567567
return positiveAccumulatorVerifyMembership(this.value, member, witness.value, publicKey, params_);
@@ -615,7 +615,7 @@ export class UniversalAccumulator extends Accumulator {
615615
*/
616616
static async initialize(
617617
maxSize: number,
618-
params: AccumulatorParams,
618+
params: Uint8Array,
619619
secretKey: Uint8Array,
620620
initialElementsStore?: IInitialElementsStore,
621621
batchSize = 100
@@ -655,7 +655,7 @@ export class UniversalAccumulator extends Accumulator {
655655
static initializeGivenInitialElementsProduct(
656656
maxSize: number,
657657
initialElementsProduct: Uint8Array,
658-
params: AccumulatorParams,
658+
params: Uint8Array,
659659
secretKey?: Uint8Array
660660
): UniversalAccumulator {
661661
const value = universalAccumulatorInitialiseGivenFv(initialElementsProduct, params, maxSize);
@@ -791,7 +791,7 @@ export class UniversalAccumulator extends Accumulator {
791791
nonMember: Uint8Array,
792792
state: IUniversalAccumulatorState,
793793
secretKey?: Uint8Array,
794-
params?: AccumulatorParams,
794+
params?: Uint8Array,
795795
initialElementsStore?: IInitialElementsStore,
796796
batchSize = 100
797797
): Promise<NonMembershipWitness> {
@@ -831,7 +831,7 @@ export class UniversalAccumulator extends Accumulator {
831831
nonMember: Uint8Array,
832832
d: Uint8Array,
833833
secretKey?: Uint8Array,
834-
params?: AccumulatorParams,
834+
params?: Uint8Array,
835835
state?: IUniversalAccumulatorState,
836836
initialElementsStore?: IInitialElementsStore
837837
): Promise<NonMembershipWitness> {
@@ -857,7 +857,7 @@ export class UniversalAccumulator extends Accumulator {
857857
nonMembers: Uint8Array[],
858858
state: IUniversalAccumulatorState,
859859
secretKey?: Uint8Array,
860-
params?: AccumulatorParams,
860+
params?: Uint8Array,
861861
initialElementsStore?: IInitialElementsStore,
862862
batchSize = 100
863863
): Promise<NonMembershipWitness[]> {
@@ -908,7 +908,7 @@ export class UniversalAccumulator extends Accumulator {
908908
nonMembers: Uint8Array[],
909909
d: Uint8Array[],
910910
secretKey?: Uint8Array,
911-
params?: AccumulatorParams,
911+
params?: Uint8Array,
912912
state?: IUniversalAccumulatorState,
913913
initialElementsStore?: IInitialElementsStore
914914
): Promise<NonMembershipWitness[]> {
@@ -925,7 +925,7 @@ export class UniversalAccumulator extends Accumulator {
925925
member: Uint8Array,
926926
witness: MembershipWitness,
927927
pk: Uint8Array,
928-
params?: AccumulatorParams
928+
params?: Uint8Array
929929
): boolean {
930930
const params_ = this.getParams(params);
931931
return universalAccumulatorVerifyMembership(this.value.V, member, witness.value, pk, params_);
@@ -935,7 +935,7 @@ export class UniversalAccumulator extends Accumulator {
935935
nonMember: Uint8Array,
936936
witness: NonMembershipWitness,
937937
pk: Uint8Array,
938-
params?: AccumulatorParams
938+
params?: Uint8Array
939939
): boolean {
940940
const params_ = this.getParams(params);
941941
return universalAccumulatorVerifyNonMembership(this.value.V, nonMember, witness.value, pk, params_);

src/accumulator/proof.ts

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { AccumulatorParams, VerifyResult } from '@docknetwork/crypto-wasm';
1+
import { VerifyResult } from '@docknetwork/crypto-wasm';
22
import {
33
accumulatorChallengeContributionFromNonMembershipProof,
44
accumulatorInitializeMembershipProof,
@@ -25,7 +25,7 @@ export class MembershipProofProtocol {
2525
member: Uint8Array,
2626
witness: MembershipWitness,
2727
publicKey: Uint8Array,
28-
params: AccumulatorParams,
28+
params: Uint8Array,
2929
provingKey: Uint8Array,
3030
blinding?: Uint8Array
3131
): MembershipProofProtocol {
@@ -42,7 +42,7 @@ export class MembershipProofProtocol {
4242
challengeContribution(
4343
accumulated: Uint8Array,
4444
publicKey: Uint8Array,
45-
params: AccumulatorParams,
45+
params: Uint8Array,
4646
provingKey: Uint8Array
4747
): Uint8Array {
4848
return accumulatorChallengeContributionFromMembershipProtocol(
@@ -66,7 +66,7 @@ export class NonMembershipProofProtocol {
6666
nonMember: Uint8Array,
6767
witness: NonMembershipWitness,
6868
publicKey: Uint8Array,
69-
params: AccumulatorParams,
69+
params: Uint8Array,
7070
provingKey: Uint8Array,
7171
blinding?: Uint8Array
7272
): MembershipProofProtocol {
@@ -90,7 +90,7 @@ export class NonMembershipProofProtocol {
9090
challengeContribution(
9191
accumulated: Uint8Array,
9292
publicKey: Uint8Array,
93-
params: AccumulatorParams,
93+
params: Uint8Array,
9494
provingKey: Uint8Array
9595
): Uint8Array {
9696
return accumulatorChallengeContributionFromNonMembershipProtocol(
@@ -114,7 +114,7 @@ export class MembershipProof {
114114
accumulated: Uint8Array,
115115
challenge: Uint8Array,
116116
publicKey: Uint8Array,
117-
params: AccumulatorParams,
117+
params: Uint8Array,
118118
provingKey: Uint8Array
119119
): VerifyResult {
120120
return accumulatorVerifyMembershipProof(this.value, accumulated, challenge, publicKey, params, provingKey);
@@ -123,7 +123,7 @@ export class MembershipProof {
123123
challengeContribution(
124124
accumulated: Uint8Array,
125125
publicKey: Uint8Array,
126-
params: AccumulatorParams,
126+
params: Uint8Array,
127127
provingKey: Uint8Array
128128
): Uint8Array {
129129
return accumulatorChallengeContributionFromMembershipProof(this.value, accumulated, publicKey, params, provingKey);
@@ -141,7 +141,7 @@ export class NonMembershipProof {
141141
accumulated: Uint8Array,
142142
challenge: Uint8Array,
143143
publicKey: Uint8Array,
144-
params: AccumulatorParams,
144+
params: Uint8Array,
145145
provingKey: Uint8Array
146146
): VerifyResult {
147147
return accumulatorVerifyNonMembershipProof(this.value, accumulated, challenge, publicKey, params, provingKey);
@@ -150,7 +150,7 @@ export class NonMembershipProof {
150150
challengeContribution(
151151
accumulated: Uint8Array,
152152
publicKey: Uint8Array,
153-
params: AccumulatorParams,
153+
params: Uint8Array,
154154
provingKey: Uint8Array
155155
): Uint8Array {
156156
return accumulatorChallengeContributionFromNonMembershipProof(

src/composite-proof/statement.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,3 @@
1-
import { AccumulatorParams } from '@docknetwork/crypto-wasm';
21
import {
32
generateAccumulatorMembershipStatement,
43
generatePedersenCommitmentG1Statement,
@@ -45,7 +44,7 @@ export class Statement {
4544
* @param accumulated
4645
*/
4746
static accumulatorMembership(
48-
params: AccumulatorParams,
47+
params: Uint8Array,
4948
publicKey: Uint8Array,
5049
provingKey: Uint8Array,
5150
accumulated: Uint8Array
@@ -61,7 +60,7 @@ export class Statement {
6160
* @param accumulated
6261
*/
6362
static accumulatorNonMembership(
64-
params: AccumulatorParams,
63+
params: Uint8Array,
6564
publicKey: Uint8Array,
6665
provingKey: Uint8Array,
6766
accumulated: Uint8Array

0 commit comments

Comments
 (0)