@mysten/seal 0.9.6 → 1.0.0

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.
Files changed (157) hide show
  1. package/CHANGELOG.md +36 -0
  2. package/dist/bcs.d.mts +40 -0
  3. package/dist/bcs.d.mts.map +1 -0
  4. package/dist/bcs.mjs +89 -0
  5. package/dist/bcs.mjs.map +1 -0
  6. package/dist/bls12381.d.mts +30 -0
  7. package/dist/bls12381.d.mts.map +1 -0
  8. package/dist/bls12381.mjs +135 -0
  9. package/dist/bls12381.mjs.map +1 -0
  10. package/dist/client.d.mts +106 -0
  11. package/dist/client.d.mts.map +1 -0
  12. package/dist/client.mjs +274 -0
  13. package/dist/client.mjs.map +1 -0
  14. package/dist/decrypt.mjs +53 -0
  15. package/dist/decrypt.mjs.map +1 -0
  16. package/dist/dem.d.mts +1 -0
  17. package/dist/dem.mjs +134 -0
  18. package/dist/dem.mjs.map +1 -0
  19. package/dist/elgamal.mjs +35 -0
  20. package/dist/elgamal.mjs.map +1 -0
  21. package/dist/encrypt.d.mts +15 -0
  22. package/dist/encrypt.d.mts.map +1 -0
  23. package/dist/encrypt.mjs +61 -0
  24. package/dist/encrypt.mjs.map +1 -0
  25. package/dist/error.d.mts +75 -0
  26. package/dist/error.d.mts.map +1 -0
  27. package/dist/error.mjs +150 -0
  28. package/dist/error.mjs.map +1 -0
  29. package/dist/ibe.mjs +176 -0
  30. package/dist/ibe.mjs.map +1 -0
  31. package/dist/index.d.mts +7 -0
  32. package/dist/index.mjs +7 -0
  33. package/dist/kdf.mjs +81 -0
  34. package/dist/kdf.mjs.map +1 -0
  35. package/dist/key-server.d.mts +22 -0
  36. package/dist/key-server.d.mts.map +1 -0
  37. package/dist/key-server.mjs +195 -0
  38. package/dist/key-server.mjs.map +1 -0
  39. package/dist/session-key.d.mts +83 -0
  40. package/dist/session-key.d.mts.map +1 -0
  41. package/dist/session-key.mjs +171 -0
  42. package/dist/session-key.mjs.map +1 -0
  43. package/dist/shamir.mjs +730 -0
  44. package/dist/shamir.mjs.map +1 -0
  45. package/dist/types.d.mts +79 -0
  46. package/dist/types.d.mts.map +1 -0
  47. package/dist/utils.mjs +89 -0
  48. package/dist/utils.mjs.map +1 -0
  49. package/dist/version.mjs +6 -0
  50. package/dist/version.mjs.map +1 -0
  51. package/package.json +23 -22
  52. package/dist/cjs/bcs.d.ts +0 -71
  53. package/dist/cjs/bcs.js +0 -74
  54. package/dist/cjs/bcs.js.map +0 -7
  55. package/dist/cjs/bls12381.d.ts +0 -44
  56. package/dist/cjs/bls12381.js +0 -151
  57. package/dist/cjs/bls12381.js.map +0 -7
  58. package/dist/cjs/client.d.ts +0 -84
  59. package/dist/cjs/client.js +0 -414
  60. package/dist/cjs/client.js.map +0 -7
  61. package/dist/cjs/decrypt.d.ts +0 -22
  62. package/dist/cjs/decrypt.js +0 -109
  63. package/dist/cjs/decrypt.js.map +0 -7
  64. package/dist/cjs/dem.d.ts +0 -38
  65. package/dist/cjs/dem.js +0 -185
  66. package/dist/cjs/dem.js.map +0 -7
  67. package/dist/cjs/elgamal.d.ts +0 -13
  68. package/dist/cjs/elgamal.js +0 -46
  69. package/dist/cjs/elgamal.js.map +0 -7
  70. package/dist/cjs/encrypt.d.ts +0 -32
  71. package/dist/cjs/encrypt.js +0 -104
  72. package/dist/cjs/encrypt.js.map +0 -7
  73. package/dist/cjs/error.d.ts +0 -83
  74. package/dist/cjs/error.js +0 -231
  75. package/dist/cjs/error.js.map +0 -7
  76. package/dist/cjs/ibe.d.ts +0 -98
  77. package/dist/cjs/ibe.js +0 -167
  78. package/dist/cjs/ibe.js.map +0 -7
  79. package/dist/cjs/index.d.ts +0 -6
  80. package/dist/cjs/index.js +0 -33
  81. package/dist/cjs/index.js.map +0 -7
  82. package/dist/cjs/kdf.d.ts +0 -30
  83. package/dist/cjs/kdf.js +0 -97
  84. package/dist/cjs/kdf.js.map +0 -7
  85. package/dist/cjs/key-server.d.ts +0 -98
  86. package/dist/cjs/key-server.js +0 -171
  87. package/dist/cjs/key-server.js.map +0 -7
  88. package/dist/cjs/package.json +0 -5
  89. package/dist/cjs/session-key.d.ts +0 -74
  90. package/dist/cjs/session-key.js +0 -245
  91. package/dist/cjs/session-key.js.map +0 -7
  92. package/dist/cjs/shamir.d.ts +0 -91
  93. package/dist/cjs/shamir.js +0 -770
  94. package/dist/cjs/shamir.js.map +0 -7
  95. package/dist/cjs/types.d.ts +0 -83
  96. package/dist/cjs/types.js +0 -17
  97. package/dist/cjs/types.js.map +0 -7
  98. package/dist/cjs/utils.d.ts +0 -47
  99. package/dist/cjs/utils.js +0 -106
  100. package/dist/cjs/utils.js.map +0 -7
  101. package/dist/cjs/version.d.ts +0 -1
  102. package/dist/cjs/version.js +0 -25
  103. package/dist/cjs/version.js.map +0 -7
  104. package/dist/esm/bcs.d.ts +0 -71
  105. package/dist/esm/bcs.js +0 -54
  106. package/dist/esm/bcs.js.map +0 -7
  107. package/dist/esm/bls12381.d.ts +0 -44
  108. package/dist/esm/bls12381.js +0 -131
  109. package/dist/esm/bls12381.js.map +0 -7
  110. package/dist/esm/client.d.ts +0 -84
  111. package/dist/esm/client.js +0 -407
  112. package/dist/esm/client.js.map +0 -7
  113. package/dist/esm/decrypt.d.ts +0 -22
  114. package/dist/esm/decrypt.js +0 -94
  115. package/dist/esm/decrypt.js.map +0 -7
  116. package/dist/esm/dem.d.ts +0 -38
  117. package/dist/esm/dem.js +0 -165
  118. package/dist/esm/dem.js.map +0 -7
  119. package/dist/esm/elgamal.d.ts +0 -13
  120. package/dist/esm/elgamal.js +0 -26
  121. package/dist/esm/elgamal.js.map +0 -7
  122. package/dist/esm/encrypt.d.ts +0 -32
  123. package/dist/esm/encrypt.js +0 -84
  124. package/dist/esm/encrypt.js.map +0 -7
  125. package/dist/esm/error.d.ts +0 -83
  126. package/dist/esm/error.js +0 -211
  127. package/dist/esm/error.js.map +0 -7
  128. package/dist/esm/ibe.d.ts +0 -98
  129. package/dist/esm/ibe.js +0 -147
  130. package/dist/esm/ibe.js.map +0 -7
  131. package/dist/esm/index.d.ts +0 -6
  132. package/dist/esm/index.js +0 -12
  133. package/dist/esm/index.js.map +0 -7
  134. package/dist/esm/kdf.d.ts +0 -30
  135. package/dist/esm/kdf.js +0 -83
  136. package/dist/esm/kdf.js.map +0 -7
  137. package/dist/esm/key-server.d.ts +0 -98
  138. package/dist/esm/key-server.js +0 -151
  139. package/dist/esm/key-server.js.map +0 -7
  140. package/dist/esm/package.json +0 -5
  141. package/dist/esm/session-key.d.ts +0 -74
  142. package/dist/esm/session-key.js +0 -230
  143. package/dist/esm/session-key.js.map +0 -7
  144. package/dist/esm/shamir.d.ts +0 -91
  145. package/dist/esm/shamir.js +0 -750
  146. package/dist/esm/shamir.js.map +0 -7
  147. package/dist/esm/types.d.ts +0 -83
  148. package/dist/esm/types.js +0 -1
  149. package/dist/esm/types.js.map +0 -7
  150. package/dist/esm/utils.d.ts +0 -47
  151. package/dist/esm/utils.js +0 -86
  152. package/dist/esm/utils.js.map +0 -7
  153. package/dist/esm/version.d.ts +0 -1
  154. package/dist/esm/version.js +0 -5
  155. package/dist/esm/version.js.map +0 -7
  156. package/dist/tsconfig.esm.tsbuildinfo +0 -1
  157. package/dist/tsconfig.tsbuildinfo +0 -1
package/CHANGELOG.md CHANGED
@@ -1,5 +1,41 @@
1
1
  # @mysten/seal
2
2
 
3
+ ## 1.0.0
4
+
5
+ ### Minor Changes
6
+
7
+ - e00788c: remove asClientExtension static method
8
+ - e00788c: Update to use SuiJsonRpcClient instead of SuiClient
9
+
10
+ Updated all type signatures, internal usages, examples, and documentation to use
11
+ `SuiJsonRpcClient` from `@mysten/sui/jsonRpc` instead of the deprecated `SuiClient` from
12
+ `@mysten/sui/client`.
13
+
14
+ ### Patch Changes
15
+
16
+ - Updated dependencies [e00788c]
17
+ - Updated dependencies [e00788c]
18
+ - Updated dependencies [e00788c]
19
+ - Updated dependencies [e00788c]
20
+ - Updated dependencies [e00788c]
21
+ - Updated dependencies [e00788c]
22
+ - Updated dependencies [e00788c]
23
+ - Updated dependencies [e00788c]
24
+ - Updated dependencies [e00788c]
25
+ - Updated dependencies [e00788c]
26
+ - Updated dependencies [e00788c]
27
+ - Updated dependencies [e00788c]
28
+ - Updated dependencies [e00788c]
29
+ - Updated dependencies [e00788c]
30
+ - @mysten/sui@2.0.0
31
+ - @mysten/bcs@2.0.0
32
+
33
+ ## 0.10.0
34
+
35
+ ### Minor Changes
36
+
37
+ - daeecd0: Handle key server v2 and aggregator for a committee of key servers
38
+
3
39
  ## 0.9.6
4
40
 
5
41
  ### Patch Changes
package/dist/bcs.d.mts ADDED
@@ -0,0 +1,40 @@
1
+ import * as _mysten_bcs0 from "@mysten/bcs";
2
+
3
+ //#region src/bcs.d.ts
4
+
5
+ /**
6
+ * The encrypted object format. Should be aligned with the Rust implementation.
7
+ */
8
+ declare const EncryptedObject: _mysten_bcs0.BcsStruct<{
9
+ version: _mysten_bcs0.BcsType<number, number, "u8">;
10
+ packageId: _mysten_bcs0.BcsType<string, string | Uint8Array<ArrayBufferLike>, "bytes[32]">;
11
+ id: _mysten_bcs0.BcsType<string, string, string>;
12
+ services: _mysten_bcs0.BcsType<[string, number][], Iterable<readonly [string | Uint8Array<ArrayBufferLike>, number]> & {
13
+ length: number;
14
+ }, string>;
15
+ threshold: _mysten_bcs0.BcsType<number, number, "u8">;
16
+ encryptedShares: _mysten_bcs0.BcsEnum<{
17
+ BonehFranklinBLS12381: _mysten_bcs0.BcsStruct<{
18
+ nonce: _mysten_bcs0.BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "bytes[96]">;
19
+ encryptedShares: _mysten_bcs0.BcsType<Uint8Array<ArrayBufferLike>[], Iterable<Iterable<number>> & {
20
+ length: number;
21
+ }, string>;
22
+ encryptedRandomness: _mysten_bcs0.BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "bytes[32]">;
23
+ }, string>;
24
+ }, "IBEEncryptions">;
25
+ ciphertext: _mysten_bcs0.BcsEnum<{
26
+ Aes256Gcm: _mysten_bcs0.BcsStruct<{
27
+ blob: _mysten_bcs0.BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "vector<u8>">;
28
+ aad: _mysten_bcs0.BcsType<Uint8Array<ArrayBufferLike> | null, Iterable<number> | null | undefined, "Option<vector<u8>>">;
29
+ }, string>;
30
+ Hmac256Ctr: _mysten_bcs0.BcsStruct<{
31
+ blob: _mysten_bcs0.BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "vector<u8>">;
32
+ aad: _mysten_bcs0.BcsType<Uint8Array<ArrayBufferLike> | null, Iterable<number> | null | undefined, "Option<vector<u8>>">;
33
+ mac: _mysten_bcs0.BcsType<Uint8Array<ArrayBufferLike>, Iterable<number>, "bytes[32]">;
34
+ }, string>;
35
+ Plain: _mysten_bcs0.BcsStruct<{}, string>;
36
+ }, "Ciphertext">;
37
+ }, string>;
38
+ //#endregion
39
+ export { EncryptedObject };
40
+ //# sourceMappingURL=bcs.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcs.d.mts","names":[],"sources":["../src/bcs.ts"],"sourcesContent":[],"mappings":";;;;;;;cA8Ba,8BAAe;WAW1B,YAAA,CAAA"}
package/dist/bcs.mjs ADDED
@@ -0,0 +1,89 @@
1
+ import { fromHex, toHex } from "@mysten/bcs";
2
+ import { bcs as bcs$1 } from "@mysten/sui/bcs";
3
+
4
+ //#region src/bcs.ts
5
+ const IBEEncryptions = bcs$1.enum("IBEEncryptions", { BonehFranklinBLS12381: bcs$1.struct("BonehFranklinBLS12381", {
6
+ nonce: bcs$1.bytes(96),
7
+ encryptedShares: bcs$1.vector(bcs$1.bytes(32)),
8
+ encryptedRandomness: bcs$1.bytes(32)
9
+ }) });
10
+ const Ciphertext = bcs$1.enum("Ciphertext", {
11
+ Aes256Gcm: bcs$1.struct("Aes256Gcm", {
12
+ blob: bcs$1.byteVector(),
13
+ aad: bcs$1.option(bcs$1.byteVector())
14
+ }),
15
+ Hmac256Ctr: bcs$1.struct("Hmac256Ctr", {
16
+ blob: bcs$1.byteVector(),
17
+ aad: bcs$1.option(bcs$1.byteVector()),
18
+ mac: bcs$1.bytes(32)
19
+ }),
20
+ Plain: bcs$1.struct("Plain", {})
21
+ });
22
+ /**
23
+ * The encrypted object format. Should be aligned with the Rust implementation.
24
+ */
25
+ const EncryptedObject = bcs$1.struct("EncryptedObject", {
26
+ version: bcs$1.u8(),
27
+ packageId: bcs$1.Address,
28
+ id: bcs$1.byteVector().transform({
29
+ output: (val) => toHex(val),
30
+ input: (val) => fromHex(val)
31
+ }),
32
+ services: bcs$1.vector(bcs$1.tuple([bcs$1.Address, bcs$1.u8()])),
33
+ threshold: bcs$1.u8(),
34
+ encryptedShares: IBEEncryptions,
35
+ ciphertext: Ciphertext
36
+ });
37
+ /**
38
+ * The Move struct for the KeyServerV1 object.
39
+ */
40
+ const KeyServerMoveV1 = bcs$1.struct("KeyServerV1", {
41
+ name: bcs$1.string(),
42
+ url: bcs$1.string(),
43
+ keyType: bcs$1.u8(),
44
+ pk: bcs$1.byteVector()
45
+ });
46
+ /**
47
+ * The Move struct for PartialKeyServer.
48
+ */
49
+ const PartialKeyServer = bcs$1.struct("PartialKeyServer", {
50
+ name: bcs$1.string(),
51
+ url: bcs$1.string(),
52
+ partialPk: bcs$1.byteVector(),
53
+ partyId: bcs$1.u16()
54
+ });
55
+ /**
56
+ * The Move enum for ServerType (V2).
57
+ */
58
+ const ServerType = bcs$1.enum("ServerType", {
59
+ Independent: bcs$1.struct("Independent", { url: bcs$1.string() }),
60
+ Committee: bcs$1.struct("Committee", {
61
+ version: bcs$1.u32(),
62
+ threshold: bcs$1.u16(),
63
+ partialKeyServers: bcs$1.vector(bcs$1.struct("VecMapEntry", {
64
+ key: bcs$1.Address,
65
+ value: PartialKeyServer
66
+ }))
67
+ })
68
+ });
69
+ /**
70
+ * The Move struct for the KeyServerV2 object.
71
+ */
72
+ const KeyServerMoveV2 = bcs$1.struct("KeyServerV2", {
73
+ name: bcs$1.string(),
74
+ keyType: bcs$1.u8(),
75
+ pk: bcs$1.byteVector(),
76
+ serverType: ServerType
77
+ });
78
+ /**
79
+ * The Move struct for the parent object.
80
+ */
81
+ const KeyServerMove = bcs$1.struct("KeyServer", {
82
+ id: bcs$1.Address,
83
+ firstVersion: bcs$1.u64(),
84
+ lastVersion: bcs$1.u64()
85
+ });
86
+
87
+ //#endregion
88
+ export { EncryptedObject, KeyServerMove, KeyServerMoveV1, KeyServerMoveV2 };
89
+ //# sourceMappingURL=bcs.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bcs.mjs","names":["bcs"],"sources":["../src/bcs.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport { fromHex, toHex } from '@mysten/bcs';\nimport { bcs } from '@mysten/sui/bcs';\n\nexport const IBEEncryptions = bcs.enum('IBEEncryptions', {\n\tBonehFranklinBLS12381: bcs.struct('BonehFranklinBLS12381', {\n\t\tnonce: bcs.bytes(96),\n\t\tencryptedShares: bcs.vector(bcs.bytes(32)),\n\t\tencryptedRandomness: bcs.bytes(32),\n\t}),\n});\n\nexport const Ciphertext = bcs.enum('Ciphertext', {\n\tAes256Gcm: bcs.struct('Aes256Gcm', {\n\t\tblob: bcs.byteVector(),\n\t\taad: bcs.option(bcs.byteVector()),\n\t}),\n\tHmac256Ctr: bcs.struct('Hmac256Ctr', {\n\t\tblob: bcs.byteVector(),\n\t\taad: bcs.option(bcs.byteVector()),\n\t\tmac: bcs.bytes(32),\n\t}),\n\tPlain: bcs.struct('Plain', {}),\n});\n\n/**\n * The encrypted object format. Should be aligned with the Rust implementation.\n */\nexport const EncryptedObject = bcs.struct('EncryptedObject', {\n\tversion: bcs.u8(),\n\tpackageId: bcs.Address,\n\tid: bcs.byteVector().transform({\n\t\toutput: (val) => toHex(val),\n\t\tinput: (val: string) => fromHex(val),\n\t}),\n\tservices: bcs.vector(bcs.tuple([bcs.Address, bcs.u8()])),\n\tthreshold: bcs.u8(),\n\tencryptedShares: IBEEncryptions,\n\tciphertext: Ciphertext,\n});\n\n/**\n * The Move struct for the KeyServerV1 object.\n */\nexport const KeyServerMoveV1 = bcs.struct('KeyServerV1', {\n\tname: bcs.string(),\n\turl: bcs.string(),\n\tkeyType: bcs.u8(),\n\tpk: bcs.byteVector(),\n});\n\n/**\n * The Move struct for PartialKeyServer.\n */\nexport const PartialKeyServer = bcs.struct('PartialKeyServer', {\n\tname: bcs.string(),\n\turl: bcs.string(),\n\tpartialPk: bcs.byteVector(),\n\tpartyId: bcs.u16(),\n});\n\n/**\n * The Move enum for ServerType (V2).\n */\nexport const ServerType = bcs.enum('ServerType', {\n\tIndependent: bcs.struct('Independent', {\n\t\turl: bcs.string(),\n\t}),\n\tCommittee: bcs.struct('Committee', {\n\t\tversion: bcs.u32(),\n\t\tthreshold: bcs.u16(),\n\t\tpartialKeyServers: bcs.vector(\n\t\t\tbcs.struct('VecMapEntry', {\n\t\t\t\tkey: bcs.Address,\n\t\t\t\tvalue: PartialKeyServer,\n\t\t\t}),\n\t\t),\n\t}),\n});\n\n/**\n * The Move struct for the KeyServerV2 object.\n */\nexport const KeyServerMoveV2 = bcs.struct('KeyServerV2', {\n\tname: bcs.string(),\n\tkeyType: bcs.u8(),\n\tpk: bcs.byteVector(),\n\tserverType: ServerType,\n});\n\n/**\n * The Move struct for the parent object.\n */\nexport const KeyServerMove = bcs.struct('KeyServer', {\n\tid: bcs.Address,\n\tfirstVersion: bcs.u64(), // latest version\n\tlastVersion: bcs.u64(), // oldest version\n});\n"],"mappings":";;;;AAMA,MAAa,iBAAiBA,MAAI,KAAK,kBAAkB,EACxD,uBAAuBA,MAAI,OAAO,yBAAyB;CAC1D,OAAOA,MAAI,MAAM,GAAG;CACpB,iBAAiBA,MAAI,OAAOA,MAAI,MAAM,GAAG,CAAC;CAC1C,qBAAqBA,MAAI,MAAM,GAAG;CAClC,CAAC,EACF,CAAC;AAEF,MAAa,aAAaA,MAAI,KAAK,cAAc;CAChD,WAAWA,MAAI,OAAO,aAAa;EAClC,MAAMA,MAAI,YAAY;EACtB,KAAKA,MAAI,OAAOA,MAAI,YAAY,CAAC;EACjC,CAAC;CACF,YAAYA,MAAI,OAAO,cAAc;EACpC,MAAMA,MAAI,YAAY;EACtB,KAAKA,MAAI,OAAOA,MAAI,YAAY,CAAC;EACjC,KAAKA,MAAI,MAAM,GAAG;EAClB,CAAC;CACF,OAAOA,MAAI,OAAO,SAAS,EAAE,CAAC;CAC9B,CAAC;;;;AAKF,MAAa,kBAAkBA,MAAI,OAAO,mBAAmB;CAC5D,SAASA,MAAI,IAAI;CACjB,WAAWA,MAAI;CACf,IAAIA,MAAI,YAAY,CAAC,UAAU;EAC9B,SAAS,QAAQ,MAAM,IAAI;EAC3B,QAAQ,QAAgB,QAAQ,IAAI;EACpC,CAAC;CACF,UAAUA,MAAI,OAAOA,MAAI,MAAM,CAACA,MAAI,SAASA,MAAI,IAAI,CAAC,CAAC,CAAC;CACxD,WAAWA,MAAI,IAAI;CACnB,iBAAiB;CACjB,YAAY;CACZ,CAAC;;;;AAKF,MAAa,kBAAkBA,MAAI,OAAO,eAAe;CACxD,MAAMA,MAAI,QAAQ;CAClB,KAAKA,MAAI,QAAQ;CACjB,SAASA,MAAI,IAAI;CACjB,IAAIA,MAAI,YAAY;CACpB,CAAC;;;;AAKF,MAAa,mBAAmBA,MAAI,OAAO,oBAAoB;CAC9D,MAAMA,MAAI,QAAQ;CAClB,KAAKA,MAAI,QAAQ;CACjB,WAAWA,MAAI,YAAY;CAC3B,SAASA,MAAI,KAAK;CAClB,CAAC;;;;AAKF,MAAa,aAAaA,MAAI,KAAK,cAAc;CAChD,aAAaA,MAAI,OAAO,eAAe,EACtC,KAAKA,MAAI,QAAQ,EACjB,CAAC;CACF,WAAWA,MAAI,OAAO,aAAa;EAClC,SAASA,MAAI,KAAK;EAClB,WAAWA,MAAI,KAAK;EACpB,mBAAmBA,MAAI,OACtBA,MAAI,OAAO,eAAe;GACzB,KAAKA,MAAI;GACT,OAAO;GACP,CAAC,CACF;EACD,CAAC;CACF,CAAC;;;;AAKF,MAAa,kBAAkBA,MAAI,OAAO,eAAe;CACxD,MAAMA,MAAI,QAAQ;CAClB,SAASA,MAAI,IAAI;CACjB,IAAIA,MAAI,YAAY;CACpB,YAAY;CACZ,CAAC;;;;AAKF,MAAa,gBAAgBA,MAAI,OAAO,aAAa;CACpD,IAAIA,MAAI;CACR,cAAcA,MAAI,KAAK;CACvB,aAAaA,MAAI,KAAK;CACtB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import { Fp2 } from "@noble/curves/abstract/tower.js";
2
+ import { WeierstrassPoint } from "@noble/curves/abstract/weierstrass.js";
3
+
4
+ //#region src/bls12381.d.ts
5
+
6
+ declare class G2Element {
7
+ point: WeierstrassPoint<Fp2>;
8
+ static readonly SIZE = 96;
9
+ constructor(point: WeierstrassPoint<Fp2>);
10
+ static generator(): G2Element;
11
+ static fromBytes(bytes: Uint8Array): G2Element;
12
+ toBytes(): Uint8Array<ArrayBuffer>;
13
+ multiply(scalar: Scalar): G2Element;
14
+ add(other: G2Element): G2Element;
15
+ static hashToCurve(data: Uint8Array): G2Element;
16
+ equals(other: G2Element): boolean;
17
+ }
18
+ declare class Scalar {
19
+ scalar: bigint;
20
+ static readonly SIZE = 32;
21
+ constructor(scalar: bigint);
22
+ static fromBigint(scalar: bigint): Scalar;
23
+ static random(): Scalar;
24
+ toBytes(): Uint8Array;
25
+ static fromBytes(bytes: Uint8Array): Scalar;
26
+ static fromBytesLE(bytes: Uint8Array): Scalar;
27
+ }
28
+ //#endregion
29
+ export { G2Element };
30
+ //# sourceMappingURL=bls12381.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bls12381.d.mts","names":[],"sources":["../src/bls12381.ts"],"sourcesContent":[],"mappings":";;;;;AA+E2B,cAzBd,SAAA,CAyBc;EAIf,KAAA,EA5BJ,gBA4BI,CA5Ba,GA4Bb,CAAA;EAAY,gBAAA,IAAA,GAAA,EAAA;EAIE,WAAA,CAAA,KAAA,EA5BN,gBA4BM,CA5BW,GA4BX,CAAA;EAAa,OAAA,SAAA,CAAA,CAAA,EAxBlB,SAwBkB;EAIxB,OAAA,SAAA,CAAA,KAAA,EAxBU,UAwBV,CAAA,EAxBuB,SAwBvB;EAAS,OAAA,CAAA,CAAA,EAhBZ,UAgBY,CAhBD,WAgBC,CAAA;EA4CX,QAAA,CAAM,MAAA,EAxDD,MAwDC,CAAA,EAxDQ,SAwDR;EASiB,GAAA,CAAA,KAAA,EA7DxB,SA6DwB,CAAA,EA7DZ,SA6DY;EAOlB,OAAA,WAAA,CAAA,IAAA,EAhEQ,UAgER,CAAA,EAhEqB,SAgErB;EAKN,MAAA,CAAA,KAAA,EAjEG,SAiEH,CAAA,EAAA,OAAA;;cArBC,MAAA;;;;qCASuB;mBAOlB;aAKN;0BAIa,aAAa;4BAOX,aAAa"}
@@ -0,0 +1,135 @@
1
+ import { bls12_381 } from "@noble/curves/bls12-381.js";
2
+ import { bytesToNumberBE, bytesToNumberLE, numberToBytesBE } from "@noble/curves/utils.js";
3
+
4
+ //#region src/bls12381.ts
5
+ var G1Element = class G1Element {
6
+ static {
7
+ this.SIZE = 48;
8
+ }
9
+ constructor(point) {
10
+ this.point = point;
11
+ }
12
+ static generator() {
13
+ return new G1Element(bls12_381.G1.Point.BASE);
14
+ }
15
+ static fromBytes(bytes) {
16
+ try {
17
+ return new G1Element(bls12_381.G1.Point.fromBytes(bytes));
18
+ } catch {
19
+ throw new Error("Invalid G1 point");
20
+ }
21
+ }
22
+ toBytes() {
23
+ return this.point.toBytes();
24
+ }
25
+ multiply(scalar) {
26
+ return new G1Element(this.point.multiply(scalar.scalar));
27
+ }
28
+ add(other) {
29
+ return new G1Element(this.point.add(other.point));
30
+ }
31
+ subtract(other) {
32
+ return new G1Element(this.point.subtract(other.point));
33
+ }
34
+ static hashToCurve(data) {
35
+ return new G1Element(bls12_381.G1.Point.fromAffine(bls12_381.G1.hashToCurve(data).toAffine()));
36
+ }
37
+ pairing(other) {
38
+ return new GTElement(bls12_381.pairing(this.point, other.point));
39
+ }
40
+ };
41
+ var G2Element = class G2Element {
42
+ static {
43
+ this.SIZE = 96;
44
+ }
45
+ constructor(point) {
46
+ this.point = point;
47
+ }
48
+ static generator() {
49
+ return new G2Element(bls12_381.G2.Point.BASE);
50
+ }
51
+ static fromBytes(bytes) {
52
+ try {
53
+ return new G2Element(bls12_381.G2.Point.fromBytes(bytes));
54
+ } catch {
55
+ throw new Error("Invalid G2 point");
56
+ }
57
+ }
58
+ toBytes() {
59
+ return this.point.toBytes();
60
+ }
61
+ multiply(scalar) {
62
+ return new G2Element(this.point.multiply(scalar.scalar));
63
+ }
64
+ add(other) {
65
+ return new G2Element(this.point.add(other.point));
66
+ }
67
+ static hashToCurve(data) {
68
+ return new G2Element(bls12_381.G2.Point.fromAffine(bls12_381.G2.hashToCurve(data).toAffine()));
69
+ }
70
+ equals(other) {
71
+ return this.point.equals(other.point);
72
+ }
73
+ };
74
+ var GTElement = class GTElement {
75
+ static {
76
+ this.SIZE = 576;
77
+ }
78
+ constructor(element) {
79
+ this.element = element;
80
+ }
81
+ toBytes() {
82
+ const P = [
83
+ 0,
84
+ 3,
85
+ 1,
86
+ 4,
87
+ 2,
88
+ 5
89
+ ];
90
+ const PAIR_SIZE = GTElement.SIZE / P.length;
91
+ const bytes = bls12_381.fields.Fp12.toBytes(this.element);
92
+ const result = new Uint8Array(GTElement.SIZE);
93
+ for (let i = 0; i < P.length; i++) {
94
+ const sourceStart = P[i] * PAIR_SIZE;
95
+ const sourceEnd = sourceStart + PAIR_SIZE;
96
+ const targetStart = i * PAIR_SIZE;
97
+ result.set(bytes.subarray(sourceStart, sourceEnd), targetStart);
98
+ }
99
+ return result;
100
+ }
101
+ equals(other) {
102
+ return bls12_381.fields.Fp12.eql(this.element, other.element);
103
+ }
104
+ };
105
+ var Scalar = class Scalar {
106
+ static {
107
+ this.SIZE = 32;
108
+ }
109
+ constructor(scalar) {
110
+ this.scalar = scalar;
111
+ }
112
+ static fromBigint(scalar) {
113
+ if (scalar < 0n || scalar >= bls12_381.fields.Fr.ORDER) throw new Error("Scalar out of range");
114
+ return new Scalar(scalar);
115
+ }
116
+ static random() {
117
+ const randomSecretKey = bls12_381.utils.randomSecretKey();
118
+ return Scalar.fromBytes(randomSecretKey);
119
+ }
120
+ toBytes() {
121
+ return numberToBytesBE(this.scalar, Scalar.SIZE);
122
+ }
123
+ static fromBytes(bytes) {
124
+ if (bytes.length !== Scalar.SIZE) throw new Error("Invalid scalar length");
125
+ return this.fromBigint(bytesToNumberBE(bytes));
126
+ }
127
+ static fromBytesLE(bytes) {
128
+ if (bytes.length !== Scalar.SIZE) throw new Error("Invalid scalar length");
129
+ return this.fromBigint(bytesToNumberLE(bytes));
130
+ }
131
+ };
132
+
133
+ //#endregion
134
+ export { G1Element, G2Element, Scalar };
135
+ //# sourceMappingURL=bls12381.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bls12381.mjs","names":[],"sources":["../src/bls12381.ts"],"sourcesContent":["// Copyright (c) Mysten Labs, Inc.\n// SPDX-License-Identifier: Apache-2.0\n\nimport type { Fp2, Fp12 } from '@noble/curves/abstract/tower.js';\nimport type { WeierstrassPoint } from '@noble/curves/abstract/weierstrass.js';\nimport { bls12_381 } from '@noble/curves/bls12-381.js';\nimport { bytesToNumberBE, bytesToNumberLE, numberToBytesBE } from '@noble/curves/utils.js';\n\nexport class G1Element {\n\tpoint: WeierstrassPoint<bigint>;\n\n\tpublic static readonly SIZE = 48;\n\n\tconstructor(point: WeierstrassPoint<bigint>) {\n\t\tthis.point = point;\n\t}\n\n\tstatic generator(): G1Element {\n\t\treturn new G1Element(bls12_381.G1.Point.BASE);\n\t}\n\n\tstatic fromBytes(bytes: Uint8Array): G1Element {\n\t\ttry {\n\t\t\treturn new G1Element(bls12_381.G1.Point.fromBytes(bytes));\n\t\t} catch {\n\t\t\tthrow new Error('Invalid G1 point');\n\t\t}\n\t}\n\n\ttoBytes(): Uint8Array<ArrayBuffer> {\n\t\treturn this.point.toBytes() as Uint8Array<ArrayBuffer>;\n\t}\n\n\tmultiply(scalar: Scalar): G1Element {\n\t\treturn new G1Element(this.point.multiply(scalar.scalar));\n\t}\n\n\tadd(other: G1Element): G1Element {\n\t\treturn new G1Element(this.point.add(other.point));\n\t}\n\n\tsubtract(other: G1Element): G1Element {\n\t\treturn new G1Element(this.point.subtract(other.point));\n\t}\n\n\tstatic hashToCurve(data: Uint8Array): G1Element {\n\t\treturn new G1Element(bls12_381.G1.Point.fromAffine(bls12_381.G1.hashToCurve(data).toAffine()));\n\t}\n\n\tpairing(other: G2Element): GTElement {\n\t\treturn new GTElement(bls12_381.pairing(this.point, other.point));\n\t}\n}\n\nexport class G2Element {\n\tpoint: WeierstrassPoint<Fp2>;\n\n\tpublic static readonly SIZE = 96;\n\n\tconstructor(point: WeierstrassPoint<Fp2>) {\n\t\tthis.point = point;\n\t}\n\n\tstatic generator(): G2Element {\n\t\treturn new G2Element(bls12_381.G2.Point.BASE);\n\t}\n\n\tstatic fromBytes(bytes: Uint8Array): G2Element {\n\t\ttry {\n\t\t\treturn new G2Element(bls12_381.G2.Point.fromBytes(bytes));\n\t\t} catch {\n\t\t\tthrow new Error('Invalid G2 point');\n\t\t}\n\t}\n\n\ttoBytes(): Uint8Array<ArrayBuffer> {\n\t\treturn this.point.toBytes() as Uint8Array<ArrayBuffer>;\n\t}\n\n\tmultiply(scalar: Scalar): G2Element {\n\t\treturn new G2Element(this.point.multiply(scalar.scalar));\n\t}\n\n\tadd(other: G2Element): G2Element {\n\t\treturn new G2Element(this.point.add(other.point));\n\t}\n\n\tstatic hashToCurve(data: Uint8Array): G2Element {\n\t\treturn new G2Element(bls12_381.G2.Point.fromAffine(bls12_381.G2.hashToCurve(data).toAffine()));\n\t}\n\n\tequals(other: G2Element): boolean {\n\t\treturn this.point.equals(other.point);\n\t}\n}\n\nexport class GTElement {\n\telement: Fp12;\n\n\tpublic static readonly SIZE = 576;\n\n\tconstructor(element: Fp12) {\n\t\tthis.element = element;\n\t}\n\n\ttoBytes(): Uint8Array<ArrayBuffer> {\n\t\t// This permutation reorders the 6 pairs of coefficients of the GT element for compatability with the Rust and Move implementations.\n\t\t//\n\t\t// The permutation P may be computed as:\n\t\t// for i in 0..3 {\n\t\t// for j in 0..2 {\n\t\t// P[2 * i + j] = i + 3 * j;\n\t\t// }\n\t\t// }\n\t\tconst P = [0, 3, 1, 4, 2, 5];\n\t\tconst PAIR_SIZE = GTElement.SIZE / P.length;\n\n\t\tconst bytes = bls12_381.fields.Fp12.toBytes(this.element);\n\t\tconst result = new Uint8Array(GTElement.SIZE);\n\n\t\tfor (let i = 0; i < P.length; i++) {\n\t\t\tconst sourceStart = P[i] * PAIR_SIZE;\n\t\t\tconst sourceEnd = sourceStart + PAIR_SIZE;\n\t\t\tconst targetStart = i * PAIR_SIZE;\n\t\t\tresult.set(bytes.subarray(sourceStart, sourceEnd), targetStart);\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tequals(other: GTElement): boolean {\n\t\treturn bls12_381.fields.Fp12.eql(this.element, other.element);\n\t}\n}\n\nexport class Scalar {\n\tscalar: bigint;\n\n\tpublic static readonly SIZE = 32;\n\n\tconstructor(scalar: bigint) {\n\t\tthis.scalar = scalar;\n\t}\n\n\tstatic fromBigint(scalar: bigint): Scalar {\n\t\tif (scalar < 0n || scalar >= bls12_381.fields.Fr.ORDER) {\n\t\t\tthrow new Error('Scalar out of range');\n\t\t}\n\t\treturn new Scalar(scalar);\n\t}\n\n\tstatic random(): Scalar {\n\t\tconst randomSecretKey = bls12_381.utils.randomSecretKey();\n\t\treturn Scalar.fromBytes(randomSecretKey)!;\n\t}\n\n\ttoBytes(): Uint8Array {\n\t\treturn numberToBytesBE(this.scalar, Scalar.SIZE);\n\t}\n\n\tstatic fromBytes(bytes: Uint8Array): Scalar {\n\t\tif (bytes.length !== Scalar.SIZE) {\n\t\t\tthrow new Error('Invalid scalar length');\n\t\t}\n\t\treturn this.fromBigint(bytesToNumberBE(bytes));\n\t}\n\n\tstatic fromBytesLE(bytes: Uint8Array): Scalar {\n\t\tif (bytes.length !== Scalar.SIZE) {\n\t\t\tthrow new Error('Invalid scalar length');\n\t\t}\n\t\treturn this.fromBigint(bytesToNumberLE(bytes));\n\t}\n}\n"],"mappings":"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"}
@@ -0,0 +1,106 @@
1
+ import { G2Element } from "./bls12381.mjs";
2
+ import { DecryptOptions, EncryptOptions, FetchKeysOptions, GetDerivedKeysOptions, SealClientOptions } from "./types.mjs";
3
+ import { DerivedKey, KeyServer } from "./key-server.mjs";
4
+
5
+ //#region src/client.d.ts
6
+
7
+ declare class SealClient {
8
+ #private;
9
+ constructor(options: SealClientOptions);
10
+ /**
11
+ * Return an encrypted message under the identity.
12
+ *
13
+ * @param kemType - The type of KEM to use.
14
+ * @param demType - The type of DEM to use.
15
+ * @param threshold - The threshold for the TSS encryption.
16
+ * @param packageId - the packageId namespace.
17
+ * @param id - the identity to use.
18
+ * @param data - the data to encrypt.
19
+ * @param aad - optional additional authenticated data.
20
+ * @returns The bcs bytes of the encrypted object containing all metadata and the 256-bit symmetric key that was used to encrypt the object.
21
+ * Since the symmetric key can be used to decrypt, it should not be shared but can be used e.g. for backup.
22
+ */
23
+ encrypt({
24
+ kemType,
25
+ demType,
26
+ threshold,
27
+ packageId,
28
+ id,
29
+ data,
30
+ aad
31
+ }: EncryptOptions): Promise<{
32
+ encryptedObject: Uint8Array<ArrayBuffer>;
33
+ key: Uint8Array<ArrayBuffer>;
34
+ }>;
35
+ /**
36
+ * Decrypt the given encrypted bytes using cached keys.
37
+ * Calls fetchKeys in case one or more of the required keys is not cached yet.
38
+ * The function throws an error if the client's key servers are not a subset of
39
+ * the encrypted object's key servers or if the threshold cannot be met.
40
+ *
41
+ * If checkShareConsistency is true, the decrypted shares are checked for consistency, meaning that
42
+ * any combination of at least threshold shares should either succesfully combine to the plaintext or fail.
43
+ * This is useful in case the encryptor is not trusted and the decryptor wants to ensure all decryptors
44
+ * receive the same output (e.g., for onchain encrypted voting).
45
+ *
46
+ * @param data - The encrypted bytes to decrypt.
47
+ * @param sessionKey - The session key to use.
48
+ * @param txBytes - The transaction bytes to use (that calls seal_approve* functions).
49
+ * @param checkShareConsistency - If true, the shares are checked for consistency.
50
+ * @param checkLEEncoding - If true, the encryption is also checked using an LE encoded nonce.
51
+ * @returns - The decrypted plaintext corresponding to ciphertext.
52
+ */
53
+ decrypt({
54
+ data,
55
+ sessionKey,
56
+ txBytes,
57
+ checkShareConsistency,
58
+ checkLEEncoding
59
+ }: DecryptOptions): Promise<Uint8Array<ArrayBufferLike>>;
60
+ getKeyServers(): Promise<Map<string, KeyServer>>;
61
+ /**
62
+ * Get the public keys for the given services.
63
+ * If all public keys are not in the cache, they are retrieved.
64
+ *
65
+ * @param services - The services to get the public keys for.
66
+ * @returns The public keys for the given services in the same order as the given services.
67
+ */
68
+ getPublicKeys(services: string[]): Promise<G2Element[]>;
69
+ /**
70
+ * Fetch keys from the key servers and update the cache.
71
+ *
72
+ * It is recommended to call this function once for all ids of all encrypted objects if
73
+ * there are multiple, then call decrypt for each object. This avoids calling fetchKey
74
+ * individually for each decrypt.
75
+ *
76
+ * @param ids - The ids of the encrypted objects.
77
+ * @param txBytes - The transaction bytes to use (that calls seal_approve* functions).
78
+ * @param sessionKey - The session key to use.
79
+ * @param threshold - The threshold for the TSS encryptions. The function returns when a threshold of key servers had returned keys for all ids.
80
+ */
81
+ fetchKeys({
82
+ ids,
83
+ txBytes,
84
+ sessionKey,
85
+ threshold
86
+ }: FetchKeysOptions): Promise<void>;
87
+ /**
88
+ * Get derived keys from the given services.
89
+ *
90
+ * @param id - The id of the encrypted object.
91
+ * @param txBytes - The transaction bytes to use (that calls seal_approve* functions).
92
+ * @param sessionKey - The session key to use.
93
+ * @param threshold - The threshold.
94
+ * @returns - Derived keys for the given services that are in the cache as a "service object ID" -> derived key map. If the call is succesful, exactly threshold keys will be returned.
95
+ */
96
+ getDerivedKeys({
97
+ kemType,
98
+ id,
99
+ txBytes,
100
+ sessionKey,
101
+ threshold
102
+ }: GetDerivedKeysOptions): Promise<Map<string, DerivedKey>>;
103
+ }
104
+ //#endregion
105
+ export { SealClient };
106
+ //# sourceMappingURL=client.d.mts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"client.d.mts","names":[],"sources":["../src/client.ts"],"sourcesContent":[],"mappings":";;;;;;AAsGE,cAnDW,UAAA,CAmDX;EACA,CAAA,OAAA;EACA,WAAA,CAAA,OAAA,EA1CoB,iBA0CpB;EACA;;;;;;;;;;;;;EA2DA,OAAA,CAAA;IAAA,OAAA;IAAA,OAAA;IAAA,SAAA;IAAA,SAAA;IAAA,EAAA;IAAA,IAAA;IAAA;EAAA,CAAA,EAvDE,cAuDF,CAAA,EAvDgB,OAuDhB,CAAA;IACA,eAAA,YAAA,YAAA,CAAA;IACE,GAAA,YAAA,YAAA,CAAA;EAAc,CAAA,CAAA;EAAA;;;;;;;;;;;;;;;;;;EA4Qd,OAAA,CAAA;IAAA,IAAA;IAAA,UAAA;IAAA,OAAA;IAAA,qBAAA;IAAA;EAAA,CAAA,EA5QA,cA4QA,CAAA,EA5Qc,OA4Qd,CA5Qc,UA4Qd,CA5Qc,eA4Qd,CAAA,CAAA;EAA4C,aAAA,CAAA,CAAA,EAvNxB,OAuNwB,CAvNhB,GAuNgB,CAAA,MAAA,EAvNJ,SAuNI,CAAA,CAAA;EAAZ;;;;;;;qCAtMM,QAAQ;;;;;;;;;;;;;;;;;;KAsFQ,mBAAgB;;;;;;;;;;;;;;;;KAgHtE,wBAAwB,QAAQ,YAAY"}