@nuggetslife/vc-rn 0.2.1 → 0.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.bbs2023BlindSign = bbs2023BlindSign;
7
+ exports.bbs2023Derive = bbs2023Derive;
8
+ exports.bbs2023HolderCommit = bbs2023HolderCommit;
9
+ exports.bbs2023Sign = bbs2023Sign;
10
+ exports.bbs2023Verify = bbs2023Verify;
11
+ var _ = require(".");
12
+ // ---------------------------------------------------------------------------
13
+ // bbs2023Sign — create a base proof (issuer)
14
+ // ---------------------------------------------------------------------------
15
+
16
+ async function bbs2023Sign(options) {
17
+ const result = await (0, _.vc_facade)('bbs_2023_sign', JSON.stringify(options));
18
+ return JSON.parse(result);
19
+ }
20
+
21
+ // ---------------------------------------------------------------------------
22
+ // bbs2023Derive — create a derived proof (holder)
23
+ // ---------------------------------------------------------------------------
24
+
25
+ async function bbs2023Derive(options) {
26
+ const result = await (0, _.vc_facade)('bbs_2023_derive', JSON.stringify(options));
27
+ return JSON.parse(result);
28
+ }
29
+
30
+ // ---------------------------------------------------------------------------
31
+ // bbs2023Verify — verify a base or derived proof
32
+ // ---------------------------------------------------------------------------
33
+
34
+ async function bbs2023Verify(document, publicKey) {
35
+ const result = await (0, _.vc_facade)('bbs_2023_verify', JSON.stringify({
36
+ document,
37
+ publicKey
38
+ }));
39
+ return JSON.parse(result);
40
+ }
41
+
42
+ // ---------------------------------------------------------------------------
43
+ // bbs2023HolderCommit — holder creates Pedersen commitment for blind signing
44
+ // ---------------------------------------------------------------------------
45
+
46
+ async function bbs2023HolderCommit(options) {
47
+ const result = await (0, _.vc_facade)('bbs_2023_holder_commit', JSON.stringify(options));
48
+ return JSON.parse(result);
49
+ }
50
+
51
+ // ---------------------------------------------------------------------------
52
+ // bbs2023BlindSign — issuer creates blind base proof with holder's commitment
53
+ // ---------------------------------------------------------------------------
54
+
55
+ async function bbs2023BlindSign(options) {
56
+ const result = await (0, _.vc_facade)('bbs_2023_blind_sign', JSON.stringify(options));
57
+ return JSON.parse(result);
58
+ }
59
+ //# sourceMappingURL=bbs_2023.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_","require","bbs2023Sign","options","result","vc_facade","JSON","stringify","parse","bbs2023Derive","bbs2023Verify","document","publicKey","bbs2023HolderCommit","bbs2023BlindSign"],"sourceRoot":"../../src","sources":["bbs_2023.ts"],"mappings":";;;;;;;;;;AAAA,IAAAA,CAAA,GAAAC,OAAA;AAEA;AACA;AACA;;AAEO,eAAeC,WAAWA,CAACC,OAAY,EAAgB;EAC5D,MAAMC,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,eAAe,EACfC,IAAI,CAACC,SAAS,CAACJ,OAAO,CACxB,CAAC;EACD,OAAOG,IAAI,CAACE,KAAK,CAACJ,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEO,eAAeK,aAAaA,CAACN,OAAY,EAAgB;EAC9D,MAAMC,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,iBAAiB,EACjBC,IAAI,CAACC,SAAS,CAACJ,OAAO,CACxB,CAAC;EACD,OAAOG,IAAI,CAACE,KAAK,CAACJ,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEO,eAAeM,aAAaA,CACjCC,QAAa,EACbC,SAAkB,EACJ;EACd,MAAMR,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,iBAAiB,EACjBC,IAAI,CAACC,SAAS,CAAC;IAAEI,QAAQ;IAAEC;EAAU,CAAC,CACxC,CAAC;EACD,OAAON,IAAI,CAACE,KAAK,CAACJ,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEO,eAAeS,mBAAmBA,CAACV,OAAY,EAAgB;EACpE,MAAMC,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,wBAAwB,EACxBC,IAAI,CAACC,SAAS,CAACJ,OAAO,CACxB,CAAC;EACD,OAAOG,IAAI,CAACE,KAAK,CAACJ,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEO,eAAeU,gBAAgBA,CAACX,OAAY,EAAgB;EACjE,MAAMC,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,qBAAqB,EACrBC,IAAI,CAACC,SAAS,CAACJ,OAAO,CACxB,CAAC;EACD,OAAOG,IAAI,CAACE,KAAK,CAACJ,MAAM,CAAC;AAC3B","ignoreList":[]}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.bbsIetfKeygen = bbsIetfKeygen;
7
+ exports.bbsIetfProofGen = bbsIetfProofGen;
8
+ exports.bbsIetfProofVerify = bbsIetfProofVerify;
9
+ exports.bbsIetfSign = bbsIetfSign;
10
+ exports.bbsIetfVerify = bbsIetfVerify;
11
+ var _ = require(".");
12
+ // ---------------------------------------------------------------------------
13
+ // Key Generation
14
+ // ---------------------------------------------------------------------------
15
+
16
+ async function bbsIetfKeygen(ikm, keyInfo, ciphersuite) {
17
+ const result = await (0, _.vc_facade)('bbs_ietf_keygen', JSON.stringify({
18
+ ikm,
19
+ keyInfo,
20
+ ciphersuite
21
+ }));
22
+ return JSON.parse(result);
23
+ }
24
+
25
+ // ---------------------------------------------------------------------------
26
+ // Sign
27
+ // ---------------------------------------------------------------------------
28
+
29
+ async function bbsIetfSign(secretKey, publicKey, header, messages, ciphersuite) {
30
+ const result = await (0, _.vc_facade)('bbs_ietf_sign', JSON.stringify({
31
+ secretKey,
32
+ publicKey,
33
+ header,
34
+ messages,
35
+ ciphersuite
36
+ }));
37
+ return result;
38
+ }
39
+
40
+ // ---------------------------------------------------------------------------
41
+ // Verify
42
+ // ---------------------------------------------------------------------------
43
+
44
+ async function bbsIetfVerify(publicKey, signature, header, messages, ciphersuite) {
45
+ const result = await (0, _.vc_facade)('bbs_ietf_verify', JSON.stringify({
46
+ publicKey,
47
+ signature,
48
+ header,
49
+ messages,
50
+ ciphersuite
51
+ }));
52
+ return result === 'true';
53
+ }
54
+
55
+ // ---------------------------------------------------------------------------
56
+ // ProofGen
57
+ // ---------------------------------------------------------------------------
58
+
59
+ async function bbsIetfProofGen(publicKey, signature, header, presentationHeader, messages, disclosedIndices, ciphersuite) {
60
+ const result = await (0, _.vc_facade)('bbs_ietf_proof_gen', JSON.stringify({
61
+ publicKey,
62
+ signature,
63
+ header,
64
+ presentationHeader,
65
+ messages,
66
+ disclosedIndices,
67
+ ciphersuite
68
+ }));
69
+ return result;
70
+ }
71
+
72
+ // ---------------------------------------------------------------------------
73
+ // ProofVerify
74
+ // ---------------------------------------------------------------------------
75
+
76
+ async function bbsIetfProofVerify(publicKey, proof, header, presentationHeader, disclosedMessages, totalMessageCount, ciphersuite) {
77
+ const result = await (0, _.vc_facade)('bbs_ietf_proof_verify', JSON.stringify({
78
+ publicKey,
79
+ proof,
80
+ header,
81
+ presentationHeader,
82
+ disclosedMessages,
83
+ totalMessageCount,
84
+ ciphersuite
85
+ }));
86
+ return result === 'true';
87
+ }
88
+ //# sourceMappingURL=bbs_ietf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_","require","bbsIetfKeygen","ikm","keyInfo","ciphersuite","result","vc_facade","JSON","stringify","parse","bbsIetfSign","secretKey","publicKey","header","messages","bbsIetfVerify","signature","bbsIetfProofGen","presentationHeader","disclosedIndices","bbsIetfProofVerify","proof","disclosedMessages","totalMessageCount"],"sourceRoot":"../../src","sources":["bbs_ietf.ts"],"mappings":";;;;;;;;;;AAAA,IAAAA,CAAA,GAAAC,OAAA;AAEA;AACA;AACA;;AAEO,eAAeC,aAAaA,CACjCC,GAAY,EACZC,OAAgB,EAChBC,WAAoB,EAC+B;EACnD,MAAMC,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,iBAAiB,EACjBC,IAAI,CAACC,SAAS,CAAC;IAAEN,GAAG;IAAEC,OAAO;IAAEC;EAAY,CAAC,CAC9C,CAAC;EACD,OAAOG,IAAI,CAACE,KAAK,CAACJ,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEO,eAAeK,WAAWA,CAC/BC,SAAiB,EACjBC,SAAiB,EACjBC,MAA0B,EAC1BC,QAAkB,EAClBV,WAAoB,EACH;EACjB,MAAMC,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,eAAe,EACfC,IAAI,CAACC,SAAS,CAAC;IAAEG,SAAS;IAAEC,SAAS;IAAEC,MAAM;IAAEC,QAAQ;IAAEV;EAAY,CAAC,CACxE,CAAC;EACD,OAAOC,MAAM;AACf;;AAEA;AACA;AACA;;AAEO,eAAeU,aAAaA,CACjCH,SAAiB,EACjBI,SAAiB,EACjBH,MAA0B,EAC1BC,QAAkB,EAClBV,WAAoB,EACF;EAClB,MAAMC,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,iBAAiB,EACjBC,IAAI,CAACC,SAAS,CAAC;IAAEI,SAAS;IAAEI,SAAS;IAAEH,MAAM;IAAEC,QAAQ;IAAEV;EAAY,CAAC,CACxE,CAAC;EACD,OAAOC,MAAM,KAAK,MAAM;AAC1B;;AAEA;AACA;AACA;;AAEO,eAAeY,eAAeA,CACnCL,SAAiB,EACjBI,SAAiB,EACjBH,MAA0B,EAC1BK,kBAAsC,EACtCJ,QAAkB,EAClBK,gBAA0B,EAC1Bf,WAAoB,EACH;EACjB,MAAMC,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,oBAAoB,EACpBC,IAAI,CAACC,SAAS,CAAC;IACbI,SAAS;IACTI,SAAS;IACTH,MAAM;IACNK,kBAAkB;IAClBJ,QAAQ;IACRK,gBAAgB;IAChBf;EACF,CAAC,CACH,CAAC;EACD,OAAOC,MAAM;AACf;;AAEA;AACA;AACA;;AAEO,eAAee,kBAAkBA,CACtCR,SAAiB,EACjBS,KAAa,EACbR,MAA0B,EAC1BK,kBAAsC,EACtCI,iBAAyC,EACzCC,iBAAyB,EACzBnB,WAAoB,EACF;EAClB,MAAMC,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,uBAAuB,EACvBC,IAAI,CAACC,SAAS,CAAC;IACbI,SAAS;IACTS,KAAK;IACLR,MAAM;IACNK,kBAAkB;IAClBI,iBAAiB;IACjBC,iBAAiB;IACjBnB;EACF,CAAC,CACH,CAAC;EACD,OAAOC,MAAM,KAAK,MAAM;AAC1B","ignoreList":[]}
@@ -81,6 +81,66 @@ Object.defineProperty(exports, "JwkKty", {
81
81
  return _types.JwkKty;
82
82
  }
83
83
  });
84
+ Object.defineProperty(exports, "bbs2023BlindSign", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _bbs_.bbs2023BlindSign;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "bbs2023Derive", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _bbs_.bbs2023Derive;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "bbs2023HolderCommit", {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _bbs_.bbs2023HolderCommit;
100
+ }
101
+ });
102
+ Object.defineProperty(exports, "bbs2023Sign", {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _bbs_.bbs2023Sign;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, "bbs2023Verify", {
109
+ enumerable: true,
110
+ get: function () {
111
+ return _bbs_.bbs2023Verify;
112
+ }
113
+ });
114
+ Object.defineProperty(exports, "bbsIetfKeygen", {
115
+ enumerable: true,
116
+ get: function () {
117
+ return _bbs_ietf.bbsIetfKeygen;
118
+ }
119
+ });
120
+ Object.defineProperty(exports, "bbsIetfProofGen", {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _bbs_ietf.bbsIetfProofGen;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "bbsIetfProofVerify", {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _bbs_ietf.bbsIetfProofVerify;
130
+ }
131
+ });
132
+ Object.defineProperty(exports, "bbsIetfSign", {
133
+ enumerable: true,
134
+ get: function () {
135
+ return _bbs_ietf.bbsIetfSign;
136
+ }
137
+ });
138
+ Object.defineProperty(exports, "bbsIetfVerify", {
139
+ enumerable: true,
140
+ get: function () {
141
+ return _bbs_ietf.bbsIetfVerify;
142
+ }
143
+ });
84
144
  Object.defineProperty(exports, "compactJsonVerify", {
85
145
  enumerable: true,
86
146
  get: function () {
@@ -183,6 +243,24 @@ Object.defineProperty(exports, "ldVerify", {
183
243
  return _ld_signatures.ldVerify;
184
244
  }
185
245
  });
246
+ Object.defineProperty(exports, "sdJwtIssue", {
247
+ enumerable: true,
248
+ get: function () {
249
+ return _sd_jwt.sdJwtIssue;
250
+ }
251
+ });
252
+ Object.defineProperty(exports, "sdJwtPresent", {
253
+ enumerable: true,
254
+ get: function () {
255
+ return _sd_jwt.sdJwtPresent;
256
+ }
257
+ });
258
+ Object.defineProperty(exports, "sdJwtVerify", {
259
+ enumerable: true,
260
+ get: function () {
261
+ return _sd_jwt.sdJwtVerify;
262
+ }
263
+ });
186
264
  Object.defineProperty(exports, "unblindSignature", {
187
265
  enumerable: true,
188
266
  get: function () {
@@ -207,6 +285,9 @@ var _JsonLd = require("./JsonLd");
207
285
  var _ld_signatures = require("./ld_signatures");
208
286
  var _blind_signing = require("./blind_signing");
209
287
  var _jose = require("./jose");
288
+ var _sd_jwt = require("./sd_jwt");
289
+ var _bbs_ = require("./bbs_2023");
290
+ var _bbs_ietf = require("./bbs_ietf");
210
291
  var _types = require("./types");
211
292
  const LINKING_ERROR = `The package '@nuggetslife/vc' doesn't seem to be linked. Make sure: \n\n` + _reactNative.Platform.select({
212
293
  ios: "- You have run 'pod install'\n",
@@ -235,5 +316,11 @@ function vc_facade(action, options) {
235
316
 
236
317
  // JOSE operations
237
318
 
319
+ // SD-JWT operations
320
+
321
+ // BBS-2023 Data Integrity
322
+
323
+ // BBS IETF low-level crypto
324
+
238
325
  // Types
239
326
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","_Bls12381G2KeyPair","_BoundBls12381G2KeyPair","_BbsBlsSignature","_BbsBlsSignatureProof","_BbsBlsHolderBoundSignature","_BbsBlsHolderBoundSignatureProof","_JsonLd","_ld_signatures","_blind_signing","_jose","_types","LINKING_ERROR","Platform","select","ios","default","Vc","NativeModules","Proxy","get","Error","vc_facade","action","options"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAwBA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAGA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,qBAAA,GAAAJ,OAAA;AAGA,IAAAK,2BAAA,GAAAL,OAAA;AACA,IAAAM,gCAAA,GAAAN,OAAA;AAGA,IAAAO,OAAA,GAAAP,OAAA;AAGA,IAAAQ,cAAA,GAAAR,OAAA;AASA,IAAAS,cAAA,GAAAT,OAAA;AAOA,IAAAU,KAAA,GAAAV,OAAA;AA0BA,IAAAW,MAAA,GAAAX,OAAA;AA/EA,MAAMY,aAAa,GACjB,0EAA0E,GAC1EC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,EAAE,GAAGC,0BAAa,CAACD,EAAE,GACvBC,0BAAa,CAACD,EAAE,GAChB,IAAIE,KAAK,CACT,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEI,SAASU,SAASA,CAACC,MAAc,EAAEC,OAAe,EAAmB;EAC1E,OAAOP,EAAE,CAACK,SAAS,CAACC,MAAM,EAAEC,OAAO,CAAC;AACtC;;AAEA;;AAIA;;AAIA;;AAIA;;AAGA;;AASA;;AAOA;;AAoBA","ignoreList":[]}
1
+ {"version":3,"names":["_reactNative","require","_Bls12381G2KeyPair","_BoundBls12381G2KeyPair","_BbsBlsSignature","_BbsBlsSignatureProof","_BbsBlsHolderBoundSignature","_BbsBlsHolderBoundSignatureProof","_JsonLd","_ld_signatures","_blind_signing","_jose","_sd_jwt","_bbs_","_bbs_ietf","_types","LINKING_ERROR","Platform","select","ios","default","Vc","NativeModules","Proxy","get","Error","vc_facade","action","options"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAwBA,IAAAC,kBAAA,GAAAD,OAAA;AACA,IAAAE,uBAAA,GAAAF,OAAA;AAGA,IAAAG,gBAAA,GAAAH,OAAA;AACA,IAAAI,qBAAA,GAAAJ,OAAA;AAGA,IAAAK,2BAAA,GAAAL,OAAA;AACA,IAAAM,gCAAA,GAAAN,OAAA;AAGA,IAAAO,OAAA,GAAAP,OAAA;AAGA,IAAAQ,cAAA,GAAAR,OAAA;AASA,IAAAS,cAAA,GAAAT,OAAA;AAOA,IAAAU,KAAA,GAAAV,OAAA;AAoBA,IAAAW,OAAA,GAAAX,OAAA;AAGA,IAAAY,KAAA,GAAAZ,OAAA;AAGA,IAAAa,SAAA,GAAAb,OAAA;AASA,IAAAc,MAAA,GAAAd,OAAA;AAxFA,MAAMe,aAAa,GACjB,0EAA0E,GAC1EC,qBAAQ,CAACC,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,EAAE,GAAGC,0BAAa,CAACD,EAAE,GACvBC,0BAAa,CAACD,EAAE,GAChB,IAAIE,KAAK,CACT,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACT,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEI,SAASU,SAASA,CAACC,MAAc,EAAEC,OAAe,EAAmB;EAC1E,OAAOP,EAAE,CAACK,SAAS,CAACC,MAAM,EAAEC,OAAO,CAAC;AACtC;;AAEA;;AAIA;;AAIA;;AAIA;;AAGA;;AASA;;AAOA;;AAoBA;;AAGA;;AAGA;;AAGA","ignoreList":[]}
@@ -0,0 +1,56 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.sdJwtIssue = sdJwtIssue;
7
+ exports.sdJwtPresent = sdJwtPresent;
8
+ exports.sdJwtVerify = sdJwtVerify;
9
+ var _ = require(".");
10
+ // ---------------------------------------------------------------------------
11
+ // SD-JWT Issue
12
+ // ---------------------------------------------------------------------------
13
+
14
+ async function sdJwtIssue(claims, disclosable, jwk, alg, holderJwk, decoyCount) {
15
+ const result = await (0, _.vc_facade)('sd_jwt_issue', JSON.stringify({
16
+ claims,
17
+ disclosable,
18
+ jwk,
19
+ alg,
20
+ holderJwk,
21
+ decoyCount
22
+ }));
23
+ return JSON.parse(result);
24
+ }
25
+
26
+ // ---------------------------------------------------------------------------
27
+ // SD-JWT Present
28
+ // ---------------------------------------------------------------------------
29
+
30
+ async function sdJwtPresent(sdJwt, disclosuresToReveal, kbJwk, kbAlg, audience, nonce) {
31
+ const result = await (0, _.vc_facade)('sd_jwt_present', JSON.stringify({
32
+ sdJwt,
33
+ disclosuresToReveal,
34
+ kbJwk,
35
+ kbAlg,
36
+ audience,
37
+ nonce
38
+ }));
39
+ return JSON.parse(result);
40
+ }
41
+
42
+ // ---------------------------------------------------------------------------
43
+ // SD-JWT Verify
44
+ // ---------------------------------------------------------------------------
45
+
46
+ async function sdJwtVerify(presentation, issuerJwk, holderJwk, audience, nonce) {
47
+ const result = await (0, _.vc_facade)('sd_jwt_verify', JSON.stringify({
48
+ presentation,
49
+ issuerJwk,
50
+ holderJwk,
51
+ audience,
52
+ nonce
53
+ }));
54
+ return JSON.parse(result);
55
+ }
56
+ //# sourceMappingURL=sd_jwt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_","require","sdJwtIssue","claims","disclosable","jwk","alg","holderJwk","decoyCount","result","vc_facade","JSON","stringify","parse","sdJwtPresent","sdJwt","disclosuresToReveal","kbJwk","kbAlg","audience","nonce","sdJwtVerify","presentation","issuerJwk"],"sourceRoot":"../../src","sources":["sd_jwt.ts"],"mappings":";;;;;;;;AAAA,IAAAA,CAAA,GAAAC,OAAA;AAEA;AACA;AACA;;AAEO,eAAeC,UAAUA,CAC9BC,MAAW,EACXC,WAAqB,EACrBC,GAAQ,EACRC,GAAW,EACXC,SAAe,EACfC,UAAmB,EACL;EACd,MAAMC,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,cAAc,EACdC,IAAI,CAACC,SAAS,CAAC;IAAET,MAAM;IAAEC,WAAW;IAAEC,GAAG;IAAEC,GAAG;IAAEC,SAAS;IAAEC;EAAW,CAAC,CACzE,CAAC;EACD,OAAOG,IAAI,CAACE,KAAK,CAACJ,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEO,eAAeK,YAAYA,CAChCC,KAAa,EACbC,mBAA6B,EAC7BC,KAAW,EACXC,KAAc,EACdC,QAAiB,EACjBC,KAAc,EACA;EACd,MAAMX,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,gBAAgB,EAChBC,IAAI,CAACC,SAAS,CAAC;IAAEG,KAAK;IAAEC,mBAAmB;IAAEC,KAAK;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAM,CAAC,CAC9E,CAAC;EACD,OAAOT,IAAI,CAACE,KAAK,CAACJ,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEO,eAAeY,WAAWA,CAC/BC,YAAoB,EACpBC,SAAc,EACdhB,SAAe,EACfY,QAAiB,EACjBC,KAAc,EACA;EACd,MAAMX,MAAM,GAAG,MAAM,IAAAC,WAAS,EAC5B,eAAe,EACfC,IAAI,CAACC,SAAS,CAAC;IAAEU,YAAY;IAAEC,SAAS;IAAEhB,SAAS;IAAEY,QAAQ;IAAEC;EAAM,CAAC,CACxE,CAAC;EACD,OAAOT,IAAI,CAACE,KAAK,CAACJ,MAAM,CAAC;AAC3B","ignoreList":[]}
@@ -0,0 +1,50 @@
1
+ import { vc_facade } from '.';
2
+
3
+ // ---------------------------------------------------------------------------
4
+ // bbs2023Sign — create a base proof (issuer)
5
+ // ---------------------------------------------------------------------------
6
+
7
+ export async function bbs2023Sign(options) {
8
+ const result = await vc_facade('bbs_2023_sign', JSON.stringify(options));
9
+ return JSON.parse(result);
10
+ }
11
+
12
+ // ---------------------------------------------------------------------------
13
+ // bbs2023Derive — create a derived proof (holder)
14
+ // ---------------------------------------------------------------------------
15
+
16
+ export async function bbs2023Derive(options) {
17
+ const result = await vc_facade('bbs_2023_derive', JSON.stringify(options));
18
+ return JSON.parse(result);
19
+ }
20
+
21
+ // ---------------------------------------------------------------------------
22
+ // bbs2023Verify — verify a base or derived proof
23
+ // ---------------------------------------------------------------------------
24
+
25
+ export async function bbs2023Verify(document, publicKey) {
26
+ const result = await vc_facade('bbs_2023_verify', JSON.stringify({
27
+ document,
28
+ publicKey
29
+ }));
30
+ return JSON.parse(result);
31
+ }
32
+
33
+ // ---------------------------------------------------------------------------
34
+ // bbs2023HolderCommit — holder creates Pedersen commitment for blind signing
35
+ // ---------------------------------------------------------------------------
36
+
37
+ export async function bbs2023HolderCommit(options) {
38
+ const result = await vc_facade('bbs_2023_holder_commit', JSON.stringify(options));
39
+ return JSON.parse(result);
40
+ }
41
+
42
+ // ---------------------------------------------------------------------------
43
+ // bbs2023BlindSign — issuer creates blind base proof with holder's commitment
44
+ // ---------------------------------------------------------------------------
45
+
46
+ export async function bbs2023BlindSign(options) {
47
+ const result = await vc_facade('bbs_2023_blind_sign', JSON.stringify(options));
48
+ return JSON.parse(result);
49
+ }
50
+ //# sourceMappingURL=bbs_2023.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["vc_facade","bbs2023Sign","options","result","JSON","stringify","parse","bbs2023Derive","bbs2023Verify","document","publicKey","bbs2023HolderCommit","bbs2023BlindSign"],"sourceRoot":"../../src","sources":["bbs_2023.ts"],"mappings":"AAAA,SAASA,SAAS,QAAQ,GAAG;;AAE7B;AACA;AACA;;AAEA,OAAO,eAAeC,WAAWA,CAACC,OAAY,EAAgB;EAC5D,MAAMC,MAAM,GAAG,MAAMH,SAAS,CAC5B,eAAe,EACfI,IAAI,CAACC,SAAS,CAACH,OAAO,CACxB,CAAC;EACD,OAAOE,IAAI,CAACE,KAAK,CAACH,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeI,aAAaA,CAACL,OAAY,EAAgB;EAC9D,MAAMC,MAAM,GAAG,MAAMH,SAAS,CAC5B,iBAAiB,EACjBI,IAAI,CAACC,SAAS,CAACH,OAAO,CACxB,CAAC;EACD,OAAOE,IAAI,CAACE,KAAK,CAACH,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeK,aAAaA,CACjCC,QAAa,EACbC,SAAkB,EACJ;EACd,MAAMP,MAAM,GAAG,MAAMH,SAAS,CAC5B,iBAAiB,EACjBI,IAAI,CAACC,SAAS,CAAC;IAAEI,QAAQ;IAAEC;EAAU,CAAC,CACxC,CAAC;EACD,OAAON,IAAI,CAACE,KAAK,CAACH,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeQ,mBAAmBA,CAACT,OAAY,EAAgB;EACpE,MAAMC,MAAM,GAAG,MAAMH,SAAS,CAC5B,wBAAwB,EACxBI,IAAI,CAACC,SAAS,CAACH,OAAO,CACxB,CAAC;EACD,OAAOE,IAAI,CAACE,KAAK,CAACH,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeS,gBAAgBA,CAACV,OAAY,EAAgB;EACjE,MAAMC,MAAM,GAAG,MAAMH,SAAS,CAC5B,qBAAqB,EACrBI,IAAI,CAACC,SAAS,CAACH,OAAO,CACxB,CAAC;EACD,OAAOE,IAAI,CAACE,KAAK,CAACH,MAAM,CAAC;AAC3B","ignoreList":[]}
@@ -0,0 +1,79 @@
1
+ import { vc_facade } from '.';
2
+
3
+ // ---------------------------------------------------------------------------
4
+ // Key Generation
5
+ // ---------------------------------------------------------------------------
6
+
7
+ export async function bbsIetfKeygen(ikm, keyInfo, ciphersuite) {
8
+ const result = await vc_facade('bbs_ietf_keygen', JSON.stringify({
9
+ ikm,
10
+ keyInfo,
11
+ ciphersuite
12
+ }));
13
+ return JSON.parse(result);
14
+ }
15
+
16
+ // ---------------------------------------------------------------------------
17
+ // Sign
18
+ // ---------------------------------------------------------------------------
19
+
20
+ export async function bbsIetfSign(secretKey, publicKey, header, messages, ciphersuite) {
21
+ const result = await vc_facade('bbs_ietf_sign', JSON.stringify({
22
+ secretKey,
23
+ publicKey,
24
+ header,
25
+ messages,
26
+ ciphersuite
27
+ }));
28
+ return result;
29
+ }
30
+
31
+ // ---------------------------------------------------------------------------
32
+ // Verify
33
+ // ---------------------------------------------------------------------------
34
+
35
+ export async function bbsIetfVerify(publicKey, signature, header, messages, ciphersuite) {
36
+ const result = await vc_facade('bbs_ietf_verify', JSON.stringify({
37
+ publicKey,
38
+ signature,
39
+ header,
40
+ messages,
41
+ ciphersuite
42
+ }));
43
+ return result === 'true';
44
+ }
45
+
46
+ // ---------------------------------------------------------------------------
47
+ // ProofGen
48
+ // ---------------------------------------------------------------------------
49
+
50
+ export async function bbsIetfProofGen(publicKey, signature, header, presentationHeader, messages, disclosedIndices, ciphersuite) {
51
+ const result = await vc_facade('bbs_ietf_proof_gen', JSON.stringify({
52
+ publicKey,
53
+ signature,
54
+ header,
55
+ presentationHeader,
56
+ messages,
57
+ disclosedIndices,
58
+ ciphersuite
59
+ }));
60
+ return result;
61
+ }
62
+
63
+ // ---------------------------------------------------------------------------
64
+ // ProofVerify
65
+ // ---------------------------------------------------------------------------
66
+
67
+ export async function bbsIetfProofVerify(publicKey, proof, header, presentationHeader, disclosedMessages, totalMessageCount, ciphersuite) {
68
+ const result = await vc_facade('bbs_ietf_proof_verify', JSON.stringify({
69
+ publicKey,
70
+ proof,
71
+ header,
72
+ presentationHeader,
73
+ disclosedMessages,
74
+ totalMessageCount,
75
+ ciphersuite
76
+ }));
77
+ return result === 'true';
78
+ }
79
+ //# sourceMappingURL=bbs_ietf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["vc_facade","bbsIetfKeygen","ikm","keyInfo","ciphersuite","result","JSON","stringify","parse","bbsIetfSign","secretKey","publicKey","header","messages","bbsIetfVerify","signature","bbsIetfProofGen","presentationHeader","disclosedIndices","bbsIetfProofVerify","proof","disclosedMessages","totalMessageCount"],"sourceRoot":"../../src","sources":["bbs_ietf.ts"],"mappings":"AAAA,SAASA,SAAS,QAAQ,GAAG;;AAE7B;AACA;AACA;;AAEA,OAAO,eAAeC,aAAaA,CACjCC,GAAY,EACZC,OAAgB,EAChBC,WAAoB,EAC+B;EACnD,MAAMC,MAAM,GAAG,MAAML,SAAS,CAC5B,iBAAiB,EACjBM,IAAI,CAACC,SAAS,CAAC;IAAEL,GAAG;IAAEC,OAAO;IAAEC;EAAY,CAAC,CAC9C,CAAC;EACD,OAAOE,IAAI,CAACE,KAAK,CAACH,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeI,WAAWA,CAC/BC,SAAiB,EACjBC,SAAiB,EACjBC,MAA0B,EAC1BC,QAAkB,EAClBT,WAAoB,EACH;EACjB,MAAMC,MAAM,GAAG,MAAML,SAAS,CAC5B,eAAe,EACfM,IAAI,CAACC,SAAS,CAAC;IAAEG,SAAS;IAAEC,SAAS;IAAEC,MAAM;IAAEC,QAAQ;IAAET;EAAY,CAAC,CACxE,CAAC;EACD,OAAOC,MAAM;AACf;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeS,aAAaA,CACjCH,SAAiB,EACjBI,SAAiB,EACjBH,MAA0B,EAC1BC,QAAkB,EAClBT,WAAoB,EACF;EAClB,MAAMC,MAAM,GAAG,MAAML,SAAS,CAC5B,iBAAiB,EACjBM,IAAI,CAACC,SAAS,CAAC;IAAEI,SAAS;IAAEI,SAAS;IAAEH,MAAM;IAAEC,QAAQ;IAAET;EAAY,CAAC,CACxE,CAAC;EACD,OAAOC,MAAM,KAAK,MAAM;AAC1B;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeW,eAAeA,CACnCL,SAAiB,EACjBI,SAAiB,EACjBH,MAA0B,EAC1BK,kBAAsC,EACtCJ,QAAkB,EAClBK,gBAA0B,EAC1Bd,WAAoB,EACH;EACjB,MAAMC,MAAM,GAAG,MAAML,SAAS,CAC5B,oBAAoB,EACpBM,IAAI,CAACC,SAAS,CAAC;IACbI,SAAS;IACTI,SAAS;IACTH,MAAM;IACNK,kBAAkB;IAClBJ,QAAQ;IACRK,gBAAgB;IAChBd;EACF,CAAC,CACH,CAAC;EACD,OAAOC,MAAM;AACf;;AAEA;AACA;AACA;;AAEA,OAAO,eAAec,kBAAkBA,CACtCR,SAAiB,EACjBS,KAAa,EACbR,MAA0B,EAC1BK,kBAAsC,EACtCI,iBAAyC,EACzCC,iBAAyB,EACzBlB,WAAoB,EACF;EAClB,MAAMC,MAAM,GAAG,MAAML,SAAS,CAC5B,uBAAuB,EACvBM,IAAI,CAACC,SAAS,CAAC;IACbI,SAAS;IACTS,KAAK;IACLR,MAAM;IACNK,kBAAkB;IAClBI,iBAAiB;IACjBC,iBAAiB;IACjBlB;EACF,CAAC,CACH,CAAC;EACD,OAAOC,MAAM,KAAK,MAAM;AAC1B","ignoreList":[]}
@@ -35,6 +35,14 @@ export { createCommitment, verifyCommitment, unblindSignature } from './blind_si
35
35
 
36
36
  // JOSE operations
37
37
  export { JoseNamedCurve, JoseContentEncryption, JoseKeyEncryption, JoseSigningAlgorithm, generateJwk, generateKeyPair, joseEncrypt, joseDecrypt, generalEncryptJson, decryptJson, compactSignJson, compactJsonVerify, flattenedSignJson, jsonVerify, generalSignJson } from './jose';
38
+ // SD-JWT operations
39
+ export { sdJwtIssue, sdJwtPresent, sdJwtVerify } from './sd_jwt';
40
+
41
+ // BBS-2023 Data Integrity
42
+ export { bbs2023Sign, bbs2023Derive, bbs2023Verify, bbs2023HolderCommit, bbs2023BlindSign } from './bbs_2023';
43
+
44
+ // BBS IETF low-level crypto
45
+ export { bbsIetfKeygen, bbsIetfSign, bbsIetfVerify, bbsIetfProofGen, bbsIetfProofVerify } from './bbs_ietf';
38
46
 
39
47
  // Types
40
48
 
@@ -1 +1 @@
1
- {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","Vc","Proxy","get","Error","vc_facade","action","options","Bls12381G2KeyPair","BoundBls12381G2KeyPair","BbsBlsSignature2020","BbsBlsSignatureProof2020","BbsBlsHolderBoundSignature2022","BbsBlsHolderBoundSignatureProof2022","JsonLd","ldSign","ldVerify","ldDeriveProof","deriveProof","deriveProofHolderBound","createCommitment","verifyCommitment","unblindSignature","JoseNamedCurve","JoseContentEncryption","JoseKeyEncryption","JoseSigningAlgorithm","generateJwk","generateKeyPair","joseEncrypt","joseDecrypt","generalEncryptJson","decryptJson","compactSignJson","compactJsonVerify","flattenedSignJson","jsonVerify","generalSignJson","BlsCurveName","JwkKty"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GACjB,0EAA0E,GAC1ED,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,EAAE,GAAGN,aAAa,CAACM,EAAE,GACvBN,aAAa,CAACM,EAAE,GAChB,IAAIC,KAAK,CACT,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEH,OAAO,SAASQ,SAASA,CAACC,MAAc,EAAEC,OAAe,EAAmB;EAC1E,OAAON,EAAE,CAACI,SAAS,CAACC,MAAM,EAAEC,OAAO,CAAC;AACtC;;AAEA;AACA,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,sBAAsB,QAAQ,0BAA0B;;AAEjE;AACA,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,wBAAwB,QAAQ,4BAA4B;;AAErE;AACA,SAASC,8BAA8B,QAAQ,kCAAkC;AACjF,SAASC,mCAAmC,QAAQ,uCAAuC;;AAE3F;AACA,SAASC,MAAM,QAAQ,UAAU;;AAEjC;AACA,SACEC,MAAM,EACNC,QAAQ,EACRC,aAAa,EACbC,WAAW,EACXC,sBAAsB,QACjB,iBAAiB;;AAExB;AACA,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,gBAAgB,QACX,iBAAiB;;AAExB;AACA,SACEC,cAAc,EACdC,qBAAqB,EACrBC,iBAAiB,EACjBC,oBAAoB,EACpBC,WAAW,EACXC,eAAe,EACfC,WAAW,EACXC,WAAW,EACXC,kBAAkB,EAClBC,WAAW,EACXC,eAAe,EACfC,iBAAiB,EACjBC,iBAAiB,EACjBC,UAAU,EACVC,eAAe,QACV,QAAQ;;AAGf;;AAOA,SAASC,YAAY,EAAEC,MAAM,QAAQ,SAAS","ignoreList":[]}
1
+ {"version":3,"names":["NativeModules","Platform","LINKING_ERROR","select","ios","default","Vc","Proxy","get","Error","vc_facade","action","options","Bls12381G2KeyPair","BoundBls12381G2KeyPair","BbsBlsSignature2020","BbsBlsSignatureProof2020","BbsBlsHolderBoundSignature2022","BbsBlsHolderBoundSignatureProof2022","JsonLd","ldSign","ldVerify","ldDeriveProof","deriveProof","deriveProofHolderBound","createCommitment","verifyCommitment","unblindSignature","JoseNamedCurve","JoseContentEncryption","JoseKeyEncryption","JoseSigningAlgorithm","generateJwk","generateKeyPair","joseEncrypt","joseDecrypt","generalEncryptJson","decryptJson","compactSignJson","compactJsonVerify","flattenedSignJson","jsonVerify","generalSignJson","sdJwtIssue","sdJwtPresent","sdJwtVerify","bbs2023Sign","bbs2023Derive","bbs2023Verify","bbs2023HolderCommit","bbs2023BlindSign","bbsIetfKeygen","bbsIetfSign","bbsIetfVerify","bbsIetfProofGen","bbsIetfProofVerify","BlsCurveName","JwkKty"],"sourceRoot":"../../src","sources":["index.tsx"],"mappings":"AAAA,SAASA,aAAa,EAAEC,QAAQ,QAAQ,cAAc;AAEtD,MAAMC,aAAa,GACjB,0EAA0E,GAC1ED,QAAQ,CAACE,MAAM,CAAC;EAAEC,GAAG,EAAE,gCAAgC;EAAEC,OAAO,EAAE;AAAG,CAAC,CAAC,GACvE,sDAAsD,GACtD,+BAA+B;AAEjC,MAAMC,EAAE,GAAGN,aAAa,CAACM,EAAE,GACvBN,aAAa,CAACM,EAAE,GAChB,IAAIC,KAAK,CACT,CAAC,CAAC,EACF;EACEC,GAAGA,CAAA,EAAG;IACJ,MAAM,IAAIC,KAAK,CAACP,aAAa,CAAC;EAChC;AACF,CACF,CAAC;AAEH,OAAO,SAASQ,SAASA,CAACC,MAAc,EAAEC,OAAe,EAAmB;EAC1E,OAAON,EAAE,CAACI,SAAS,CAACC,MAAM,EAAEC,OAAO,CAAC;AACtC;;AAEA;AACA,SAASC,iBAAiB,QAAQ,qBAAqB;AACvD,SAASC,sBAAsB,QAAQ,0BAA0B;;AAEjE;AACA,SAASC,mBAAmB,QAAQ,uBAAuB;AAC3D,SAASC,wBAAwB,QAAQ,4BAA4B;;AAErE;AACA,SAASC,8BAA8B,QAAQ,kCAAkC;AACjF,SAASC,mCAAmC,QAAQ,uCAAuC;;AAE3F;AACA,SAASC,MAAM,QAAQ,UAAU;;AAEjC;AACA,SACEC,MAAM,EACNC,QAAQ,EACRC,aAAa,EACbC,WAAW,EACXC,sBAAsB,QACjB,iBAAiB;;AAExB;AACA,SACEC,gBAAgB,EAChBC,gBAAgB,EAChBC,gBAAgB,QACX,iBAAiB;;AAExB;AACA,SACEC,cAAc,EACdC,qBAAqB,EACrBC,iBAAiB,EACjBC,oBAAoB,EACpBC,WAAW,EACXC,eAAe,EACfC,WAAW,EACXC,WAAW,EACXC,kBAAkB,EAClBC,WAAW,EACXC,eAAe,EACfC,iBAAiB,EACjBC,iBAAiB,EACjBC,UAAU,EACVC,eAAe,QACV,QAAQ;AAGf;AACA,SAASC,UAAU,EAAEC,YAAY,EAAEC,WAAW,QAAQ,UAAU;;AAEhE;AACA,SAASC,WAAW,EAAEC,aAAa,EAAEC,aAAa,EAAEC,mBAAmB,EAAEC,gBAAgB,QAAQ,YAAY;;AAE7G;AACA,SAASC,aAAa,EAAEC,WAAW,EAAEC,aAAa,EAAEC,eAAe,EAAEC,kBAAkB,QAAQ,YAAY;;AAE3G;;AAOA,SAASC,YAAY,EAAEC,MAAM,QAAQ,SAAS","ignoreList":[]}
@@ -0,0 +1,49 @@
1
+ import { vc_facade } from '.';
2
+
3
+ // ---------------------------------------------------------------------------
4
+ // SD-JWT Issue
5
+ // ---------------------------------------------------------------------------
6
+
7
+ export async function sdJwtIssue(claims, disclosable, jwk, alg, holderJwk, decoyCount) {
8
+ const result = await vc_facade('sd_jwt_issue', JSON.stringify({
9
+ claims,
10
+ disclosable,
11
+ jwk,
12
+ alg,
13
+ holderJwk,
14
+ decoyCount
15
+ }));
16
+ return JSON.parse(result);
17
+ }
18
+
19
+ // ---------------------------------------------------------------------------
20
+ // SD-JWT Present
21
+ // ---------------------------------------------------------------------------
22
+
23
+ export async function sdJwtPresent(sdJwt, disclosuresToReveal, kbJwk, kbAlg, audience, nonce) {
24
+ const result = await vc_facade('sd_jwt_present', JSON.stringify({
25
+ sdJwt,
26
+ disclosuresToReveal,
27
+ kbJwk,
28
+ kbAlg,
29
+ audience,
30
+ nonce
31
+ }));
32
+ return JSON.parse(result);
33
+ }
34
+
35
+ // ---------------------------------------------------------------------------
36
+ // SD-JWT Verify
37
+ // ---------------------------------------------------------------------------
38
+
39
+ export async function sdJwtVerify(presentation, issuerJwk, holderJwk, audience, nonce) {
40
+ const result = await vc_facade('sd_jwt_verify', JSON.stringify({
41
+ presentation,
42
+ issuerJwk,
43
+ holderJwk,
44
+ audience,
45
+ nonce
46
+ }));
47
+ return JSON.parse(result);
48
+ }
49
+ //# sourceMappingURL=sd_jwt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["vc_facade","sdJwtIssue","claims","disclosable","jwk","alg","holderJwk","decoyCount","result","JSON","stringify","parse","sdJwtPresent","sdJwt","disclosuresToReveal","kbJwk","kbAlg","audience","nonce","sdJwtVerify","presentation","issuerJwk"],"sourceRoot":"../../src","sources":["sd_jwt.ts"],"mappings":"AAAA,SAASA,SAAS,QAAQ,GAAG;;AAE7B;AACA;AACA;;AAEA,OAAO,eAAeC,UAAUA,CAC9BC,MAAW,EACXC,WAAqB,EACrBC,GAAQ,EACRC,GAAW,EACXC,SAAe,EACfC,UAAmB,EACL;EACd,MAAMC,MAAM,GAAG,MAAMR,SAAS,CAC5B,cAAc,EACdS,IAAI,CAACC,SAAS,CAAC;IAAER,MAAM;IAAEC,WAAW;IAAEC,GAAG;IAAEC,GAAG;IAAEC,SAAS;IAAEC;EAAW,CAAC,CACzE,CAAC;EACD,OAAOE,IAAI,CAACE,KAAK,CAACH,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeI,YAAYA,CAChCC,KAAa,EACbC,mBAA6B,EAC7BC,KAAW,EACXC,KAAc,EACdC,QAAiB,EACjBC,KAAc,EACA;EACd,MAAMV,MAAM,GAAG,MAAMR,SAAS,CAC5B,gBAAgB,EAChBS,IAAI,CAACC,SAAS,CAAC;IAAEG,KAAK;IAAEC,mBAAmB;IAAEC,KAAK;IAAEC,KAAK;IAAEC,QAAQ;IAAEC;EAAM,CAAC,CAC9E,CAAC;EACD,OAAOT,IAAI,CAACE,KAAK,CAACH,MAAM,CAAC;AAC3B;;AAEA;AACA;AACA;;AAEA,OAAO,eAAeW,WAAWA,CAC/BC,YAAoB,EACpBC,SAAc,EACdf,SAAe,EACfW,QAAiB,EACjBC,KAAc,EACA;EACd,MAAMV,MAAM,GAAG,MAAMR,SAAS,CAC5B,eAAe,EACfS,IAAI,CAACC,SAAS,CAAC;IAAEU,YAAY;IAAEC,SAAS;IAAEf,SAAS;IAAEW,QAAQ;IAAEC;EAAM,CAAC,CACxE,CAAC;EACD,OAAOT,IAAI,CAACE,KAAK,CAACH,MAAM,CAAC;AAC3B","ignoreList":[]}
@@ -0,0 +1,6 @@
1
+ export declare function bbs2023Sign(options: any): Promise<any>;
2
+ export declare function bbs2023Derive(options: any): Promise<any>;
3
+ export declare function bbs2023Verify(document: any, publicKey?: string): Promise<any>;
4
+ export declare function bbs2023HolderCommit(options: any): Promise<any>;
5
+ export declare function bbs2023BlindSign(options: any): Promise<any>;
6
+ //# sourceMappingURL=bbs_2023.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bbs_2023.d.ts","sourceRoot":"","sources":["../../../src/bbs_2023.ts"],"names":[],"mappings":"AAMA,wBAAsB,WAAW,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAM5D;AAMD,wBAAsB,aAAa,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAM9D;AAMD,wBAAsB,aAAa,CACjC,QAAQ,EAAE,GAAG,EACb,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,GAAG,CAAC,CAMd;AAMD,wBAAsB,mBAAmB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAMpE;AAMD,wBAAsB,gBAAgB,CAAC,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,GAAG,CAAC,CAMjE"}
@@ -0,0 +1,9 @@
1
+ export declare function bbsIetfKeygen(ikm?: string, keyInfo?: string, ciphersuite?: string): Promise<{
2
+ secretKey: string;
3
+ publicKey: string;
4
+ }>;
5
+ export declare function bbsIetfSign(secretKey: string, publicKey: string, header: string | undefined, messages: string[], ciphersuite?: string): Promise<string>;
6
+ export declare function bbsIetfVerify(publicKey: string, signature: string, header: string | undefined, messages: string[], ciphersuite?: string): Promise<boolean>;
7
+ export declare function bbsIetfProofGen(publicKey: string, signature: string, header: string | undefined, presentationHeader: string | undefined, messages: string[], disclosedIndices: number[], ciphersuite?: string): Promise<string>;
8
+ export declare function bbsIetfProofVerify(publicKey: string, proof: string, header: string | undefined, presentationHeader: string | undefined, disclosedMessages: Record<string, string>, totalMessageCount: number, ciphersuite?: string): Promise<boolean>;
9
+ //# sourceMappingURL=bbs_ietf.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bbs_ietf.d.ts","sourceRoot":"","sources":["../../../src/bbs_ietf.ts"],"names":[],"mappings":"AAMA,wBAAsB,aAAa,CACjC,GAAG,CAAC,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,MAAM,EAChB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,CAAC,CAMnD;AAMD,wBAAsB,WAAW,CAC/B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAMjB;AAMD,wBAAsB,aAAa,CACjC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,QAAQ,EAAE,MAAM,EAAE,EAClB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAMlB;AAMD,wBAAsB,eAAe,CACnC,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,QAAQ,EAAE,MAAM,EAAE,EAClB,gBAAgB,EAAE,MAAM,EAAE,EAC1B,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,MAAM,CAAC,CAcjB;AAMD,wBAAsB,kBAAkB,CACtC,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,kBAAkB,EAAE,MAAM,GAAG,SAAS,EACtC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,EACzC,iBAAiB,EAAE,MAAM,EACzB,WAAW,CAAC,EAAE,MAAM,GACnB,OAAO,CAAC,OAAO,CAAC,CAclB"}
@@ -10,6 +10,9 @@ export { ldSign, ldVerify, ldDeriveProof, deriveProof, deriveProofHolderBound, }
10
10
  export { createCommitment, verifyCommitment, unblindSignature, } from './blind_signing';
11
11
  export { JoseNamedCurve, JoseContentEncryption, JoseKeyEncryption, JoseSigningAlgorithm, generateJwk, generateKeyPair, joseEncrypt, joseDecrypt, generalEncryptJson, decryptJson, compactSignJson, compactJsonVerify, flattenedSignJson, jsonVerify, generalSignJson, } from './jose';
12
12
  export type { JoseEncryptResult } from './jose';
13
+ export { sdJwtIssue, sdJwtPresent, sdJwtVerify } from './sd_jwt';
14
+ export { bbs2023Sign, bbs2023Derive, bbs2023Verify, bbs2023HolderCommit, bbs2023BlindSign } from './bbs_2023';
15
+ export { bbsIetfKeygen, bbsIetfSign, bbsIetfVerify, bbsIetfProofGen, bbsIetfProofVerify } from './bbs_ietf';
13
16
  export type { KeyPairOptions, GenerateKeyPairOptions, JsonWebKey, JwkKeyPairOptions, KeyPairSigner, KeyPairVerifier } from './types';
14
17
  export type { BoundKeyPairOptions } from './BoundBls12381G2KeyPair';
15
18
  export type { SignatureSuiteOptions, CreateProofOptions, VerifyProofOptions } from './BbsBlsSignature2020';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1E;AAGD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AAG5F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,aAAa,EACb,WAAW,EACX,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,eAAe,GAChB,MAAM,QAAQ,CAAC;AAChB,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAGhD,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACrI,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3G,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAChG,YAAY,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACrI,YAAY,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AACrH,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.tsx"],"names":[],"mappings":"AAmBA,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAE1E;AAGD,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AACxD,OAAO,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAGlE,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,EAAE,wBAAwB,EAAE,MAAM,4BAA4B,CAAC;AAGtE,OAAO,EAAE,8BAA8B,EAAE,MAAM,kCAAkC,CAAC;AAClF,OAAO,EAAE,mCAAmC,EAAE,MAAM,uCAAuC,CAAC;AAG5F,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAGlC,OAAO,EACL,MAAM,EACN,QAAQ,EACR,aAAa,EACb,WAAW,EACX,sBAAsB,GACvB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,iBAAiB,CAAC;AAGzB,OAAO,EACL,cAAc,EACd,qBAAqB,EACrB,iBAAiB,EACjB,oBAAoB,EACpB,WAAW,EACX,eAAe,EACf,WAAW,EACX,WAAW,EACX,kBAAkB,EAClB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,UAAU,EACV,eAAe,GAChB,MAAM,QAAQ,CAAC;AAChB,YAAY,EAAE,iBAAiB,EAAE,MAAM,QAAQ,CAAC;AAGhD,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAGjE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,aAAa,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAG9G,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,YAAY,CAAC;AAG5G,YAAY,EAAE,cAAc,EAAE,sBAAsB,EAAE,UAAU,EAAE,iBAAiB,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AACrI,YAAY,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,YAAY,EAAE,qBAAqB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;AAC3G,YAAY,EAAE,kBAAkB,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAChG,YAAY,EAAE,0BAA0B,EAAE,uBAAuB,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AACrI,YAAY,EAAE,uBAAuB,EAAE,8BAA8B,EAAE,MAAM,uCAAuC,CAAC;AACrH,OAAO,EAAE,YAAY,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC"}
@@ -0,0 +1,4 @@
1
+ export declare function sdJwtIssue(claims: any, disclosable: string[], jwk: any, alg: string, holderJwk?: any, decoyCount?: number): Promise<any>;
2
+ export declare function sdJwtPresent(sdJwt: string, disclosuresToReveal: string[], kbJwk?: any, kbAlg?: string, audience?: string, nonce?: string): Promise<any>;
3
+ export declare function sdJwtVerify(presentation: string, issuerJwk: any, holderJwk?: any, audience?: string, nonce?: string): Promise<any>;
4
+ //# sourceMappingURL=sd_jwt.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sd_jwt.d.ts","sourceRoot":"","sources":["../../../src/sd_jwt.ts"],"names":[],"mappings":"AAMA,wBAAsB,UAAU,CAC9B,MAAM,EAAE,GAAG,EACX,WAAW,EAAE,MAAM,EAAE,EACrB,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,MAAM,EACX,SAAS,CAAC,EAAE,GAAG,EACf,UAAU,CAAC,EAAE,MAAM,GAClB,OAAO,CAAC,GAAG,CAAC,CAMd;AAMD,wBAAsB,YAAY,CAChC,KAAK,EAAE,MAAM,EACb,mBAAmB,EAAE,MAAM,EAAE,EAC7B,KAAK,CAAC,EAAE,GAAG,EACX,KAAK,CAAC,EAAE,MAAM,EACd,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC,CAMd;AAMD,wBAAsB,WAAW,CAC/B,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,GAAG,EACd,SAAS,CAAC,EAAE,GAAG,EACf,QAAQ,CAAC,EAAE,MAAM,EACjB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,GAAG,CAAC,CAMd"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@nuggetslife/vc-rn",
3
- "version": "0.2.1",
3
+ "version": "0.2.2",
4
4
  "description": "verifiable credential utils",
5
5
  "main": "lib/commonjs/index",
6
6
  "module": "lib/module/index",
@@ -0,0 +1,64 @@
1
+ import { vc_facade } from '.';
2
+
3
+ // ---------------------------------------------------------------------------
4
+ // bbs2023Sign — create a base proof (issuer)
5
+ // ---------------------------------------------------------------------------
6
+
7
+ export async function bbs2023Sign(options: any): Promise<any> {
8
+ const result = await vc_facade(
9
+ 'bbs_2023_sign',
10
+ JSON.stringify(options)
11
+ );
12
+ return JSON.parse(result);
13
+ }
14
+
15
+ // ---------------------------------------------------------------------------
16
+ // bbs2023Derive — create a derived proof (holder)
17
+ // ---------------------------------------------------------------------------
18
+
19
+ export async function bbs2023Derive(options: any): Promise<any> {
20
+ const result = await vc_facade(
21
+ 'bbs_2023_derive',
22
+ JSON.stringify(options)
23
+ );
24
+ return JSON.parse(result);
25
+ }
26
+
27
+ // ---------------------------------------------------------------------------
28
+ // bbs2023Verify — verify a base or derived proof
29
+ // ---------------------------------------------------------------------------
30
+
31
+ export async function bbs2023Verify(
32
+ document: any,
33
+ publicKey?: string
34
+ ): Promise<any> {
35
+ const result = await vc_facade(
36
+ 'bbs_2023_verify',
37
+ JSON.stringify({ document, publicKey })
38
+ );
39
+ return JSON.parse(result);
40
+ }
41
+
42
+ // ---------------------------------------------------------------------------
43
+ // bbs2023HolderCommit — holder creates Pedersen commitment for blind signing
44
+ // ---------------------------------------------------------------------------
45
+
46
+ export async function bbs2023HolderCommit(options: any): Promise<any> {
47
+ const result = await vc_facade(
48
+ 'bbs_2023_holder_commit',
49
+ JSON.stringify(options)
50
+ );
51
+ return JSON.parse(result);
52
+ }
53
+
54
+ // ---------------------------------------------------------------------------
55
+ // bbs2023BlindSign — issuer creates blind base proof with holder's commitment
56
+ // ---------------------------------------------------------------------------
57
+
58
+ export async function bbs2023BlindSign(options: any): Promise<any> {
59
+ const result = await vc_facade(
60
+ 'bbs_2023_blind_sign',
61
+ JSON.stringify(options)
62
+ );
63
+ return JSON.parse(result);
64
+ }
@@ -0,0 +1,109 @@
1
+ import { vc_facade } from '.';
2
+
3
+ // ---------------------------------------------------------------------------
4
+ // Key Generation
5
+ // ---------------------------------------------------------------------------
6
+
7
+ export async function bbsIetfKeygen(
8
+ ikm?: string,
9
+ keyInfo?: string,
10
+ ciphersuite?: string
11
+ ): Promise<{ secretKey: string; publicKey: string }> {
12
+ const result = await vc_facade(
13
+ 'bbs_ietf_keygen',
14
+ JSON.stringify({ ikm, keyInfo, ciphersuite })
15
+ );
16
+ return JSON.parse(result);
17
+ }
18
+
19
+ // ---------------------------------------------------------------------------
20
+ // Sign
21
+ // ---------------------------------------------------------------------------
22
+
23
+ export async function bbsIetfSign(
24
+ secretKey: string,
25
+ publicKey: string,
26
+ header: string | undefined,
27
+ messages: string[],
28
+ ciphersuite?: string
29
+ ): Promise<string> {
30
+ const result = await vc_facade(
31
+ 'bbs_ietf_sign',
32
+ JSON.stringify({ secretKey, publicKey, header, messages, ciphersuite })
33
+ );
34
+ return result;
35
+ }
36
+
37
+ // ---------------------------------------------------------------------------
38
+ // Verify
39
+ // ---------------------------------------------------------------------------
40
+
41
+ export async function bbsIetfVerify(
42
+ publicKey: string,
43
+ signature: string,
44
+ header: string | undefined,
45
+ messages: string[],
46
+ ciphersuite?: string
47
+ ): Promise<boolean> {
48
+ const result = await vc_facade(
49
+ 'bbs_ietf_verify',
50
+ JSON.stringify({ publicKey, signature, header, messages, ciphersuite })
51
+ );
52
+ return result === 'true';
53
+ }
54
+
55
+ // ---------------------------------------------------------------------------
56
+ // ProofGen
57
+ // ---------------------------------------------------------------------------
58
+
59
+ export async function bbsIetfProofGen(
60
+ publicKey: string,
61
+ signature: string,
62
+ header: string | undefined,
63
+ presentationHeader: string | undefined,
64
+ messages: string[],
65
+ disclosedIndices: number[],
66
+ ciphersuite?: string
67
+ ): Promise<string> {
68
+ const result = await vc_facade(
69
+ 'bbs_ietf_proof_gen',
70
+ JSON.stringify({
71
+ publicKey,
72
+ signature,
73
+ header,
74
+ presentationHeader,
75
+ messages,
76
+ disclosedIndices,
77
+ ciphersuite,
78
+ })
79
+ );
80
+ return result;
81
+ }
82
+
83
+ // ---------------------------------------------------------------------------
84
+ // ProofVerify
85
+ // ---------------------------------------------------------------------------
86
+
87
+ export async function bbsIetfProofVerify(
88
+ publicKey: string,
89
+ proof: string,
90
+ header: string | undefined,
91
+ presentationHeader: string | undefined,
92
+ disclosedMessages: Record<string, string>,
93
+ totalMessageCount: number,
94
+ ciphersuite?: string
95
+ ): Promise<boolean> {
96
+ const result = await vc_facade(
97
+ 'bbs_ietf_proof_verify',
98
+ JSON.stringify({
99
+ publicKey,
100
+ proof,
101
+ header,
102
+ presentationHeader,
103
+ disclosedMessages,
104
+ totalMessageCount,
105
+ ciphersuite,
106
+ })
107
+ );
108
+ return result === 'true';
109
+ }
package/src/index.tsx CHANGED
@@ -72,6 +72,15 @@ export {
72
72
  } from './jose';
73
73
  export type { JoseEncryptResult } from './jose';
74
74
 
75
+ // SD-JWT operations
76
+ export { sdJwtIssue, sdJwtPresent, sdJwtVerify } from './sd_jwt';
77
+
78
+ // BBS-2023 Data Integrity
79
+ export { bbs2023Sign, bbs2023Derive, bbs2023Verify, bbs2023HolderCommit, bbs2023BlindSign } from './bbs_2023';
80
+
81
+ // BBS IETF low-level crypto
82
+ export { bbsIetfKeygen, bbsIetfSign, bbsIetfVerify, bbsIetfProofGen, bbsIetfProofVerify } from './bbs_ietf';
83
+
75
84
  // Types
76
85
  export type { KeyPairOptions, GenerateKeyPairOptions, JsonWebKey, JwkKeyPairOptions, KeyPairSigner, KeyPairVerifier } from './types';
77
86
  export type { BoundKeyPairOptions } from './BoundBls12381G2KeyPair';
package/src/sd_jwt.ts ADDED
@@ -0,0 +1,57 @@
1
+ import { vc_facade } from '.';
2
+
3
+ // ---------------------------------------------------------------------------
4
+ // SD-JWT Issue
5
+ // ---------------------------------------------------------------------------
6
+
7
+ export async function sdJwtIssue(
8
+ claims: any,
9
+ disclosable: string[],
10
+ jwk: any,
11
+ alg: string,
12
+ holderJwk?: any,
13
+ decoyCount?: number
14
+ ): Promise<any> {
15
+ const result = await vc_facade(
16
+ 'sd_jwt_issue',
17
+ JSON.stringify({ claims, disclosable, jwk, alg, holderJwk, decoyCount })
18
+ );
19
+ return JSON.parse(result);
20
+ }
21
+
22
+ // ---------------------------------------------------------------------------
23
+ // SD-JWT Present
24
+ // ---------------------------------------------------------------------------
25
+
26
+ export async function sdJwtPresent(
27
+ sdJwt: string,
28
+ disclosuresToReveal: string[],
29
+ kbJwk?: any,
30
+ kbAlg?: string,
31
+ audience?: string,
32
+ nonce?: string
33
+ ): Promise<any> {
34
+ const result = await vc_facade(
35
+ 'sd_jwt_present',
36
+ JSON.stringify({ sdJwt, disclosuresToReveal, kbJwk, kbAlg, audience, nonce })
37
+ );
38
+ return JSON.parse(result);
39
+ }
40
+
41
+ // ---------------------------------------------------------------------------
42
+ // SD-JWT Verify
43
+ // ---------------------------------------------------------------------------
44
+
45
+ export async function sdJwtVerify(
46
+ presentation: string,
47
+ issuerJwk: any,
48
+ holderJwk?: any,
49
+ audience?: string,
50
+ nonce?: string
51
+ ): Promise<any> {
52
+ const result = await vc_facade(
53
+ 'sd_jwt_verify',
54
+ JSON.stringify({ presentation, issuerJwk, holderJwk, audience, nonce })
55
+ );
56
+ return JSON.parse(result);
57
+ }