@peerbit/crypto 2.2.0 → 2.3.0-1d1274c

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 (122) hide show
  1. package/dist/benchmark/hash.d.ts +2 -0
  2. package/dist/benchmark/hash.d.ts.map +1 -0
  3. package/dist/benchmark/hash.js +69 -0
  4. package/dist/benchmark/hash.js.map +1 -0
  5. package/dist/benchmark/index.d.ts +2 -0
  6. package/dist/benchmark/index.d.ts.map +1 -0
  7. package/dist/benchmark/index.js +64 -0
  8. package/dist/benchmark/index.js.map +1 -0
  9. package/dist/benchmark/peer-ids.d.ts +2 -0
  10. package/dist/benchmark/peer-ids.d.ts.map +1 -0
  11. package/dist/benchmark/peer-ids.js +29 -0
  12. package/dist/benchmark/peer-ids.js.map +1 -0
  13. package/{lib/esm → dist/src}/bytes.d.ts +1 -0
  14. package/dist/src/bytes.d.ts.map +1 -0
  15. package/{lib/esm → dist/src}/bytes.js.map +1 -1
  16. package/{lib/esm/ed25519-sign-browser.d.ts → dist/src/ed25519-sign.browser.d.ts} +3 -2
  17. package/dist/src/ed25519-sign.browser.d.ts.map +1 -0
  18. package/{lib/esm/ed25519-sign-browser.js → dist/src/ed25519-sign.browser.js} +2 -2
  19. package/dist/src/ed25519-sign.browser.js.map +1 -0
  20. package/{lib/esm → dist/src}/ed25519-sign.d.ts +3 -2
  21. package/dist/src/ed25519-sign.d.ts.map +1 -0
  22. package/{lib/esm → dist/src}/ed25519-sign.js +8 -7
  23. package/dist/src/ed25519-sign.js.map +1 -0
  24. package/{lib/esm → dist/src}/ed25519.d.ts +4 -3
  25. package/dist/src/ed25519.d.ts.map +1 -0
  26. package/{lib/esm → dist/src}/ed25519.js +14 -13
  27. package/dist/src/ed25519.js.map +1 -0
  28. package/{lib/esm → dist/src}/encryption.d.ts +15 -11
  29. package/dist/src/encryption.d.ts.map +1 -0
  30. package/{lib/esm → dist/src}/encryption.js +33 -35
  31. package/dist/src/encryption.js.map +1 -0
  32. package/{lib/esm → dist/src}/errors.d.ts +1 -1
  33. package/dist/src/errors.d.ts.map +1 -0
  34. package/dist/src/errors.js +3 -0
  35. package/{lib/esm → dist/src}/errors.js.map +1 -1
  36. package/{lib/esm/hash-browser.d.ts → dist/src/hash.browser.d.ts} +1 -0
  37. package/dist/src/hash.browser.d.ts.map +1 -0
  38. package/{lib/esm/hash-browser.js → dist/src/hash.browser.js} +2 -2
  39. package/{lib/esm/hash-browser.js.map → dist/src/hash.browser.js.map} +1 -1
  40. package/{lib/esm → dist/src}/hash.d.ts +1 -0
  41. package/dist/src/hash.d.ts.map +1 -0
  42. package/{lib/esm → dist/src}/index.d.ts +1 -0
  43. package/dist/src/index.d.ts.map +1 -0
  44. package/{lib/esm → dist/src}/index.js +1 -1
  45. package/dist/src/index.js.map +1 -0
  46. package/{lib/esm → dist/src}/key.d.ts +2 -1
  47. package/dist/src/key.d.ts.map +1 -0
  48. package/{lib/esm → dist/src}/key.js +3 -2
  49. package/dist/src/key.js.map +1 -0
  50. package/{lib/esm → dist/src}/peerid.d.ts +2 -1
  51. package/dist/src/peerid.d.ts.map +1 -0
  52. package/{lib/esm → dist/src}/peerid.js +1 -0
  53. package/dist/src/peerid.js.map +1 -0
  54. package/{lib/esm → dist/src}/prehash.d.ts +1 -0
  55. package/dist/src/prehash.d.ts.map +1 -0
  56. package/{lib/esm → dist/src}/prehash.js +4 -4
  57. package/{lib/esm → dist/src}/prehash.js.map +1 -1
  58. package/{lib/esm/random-browser.d.ts → dist/src/random.browser.d.ts} +1 -0
  59. package/dist/src/random.browser.d.ts.map +1 -0
  60. package/{lib/esm/random-browser.js → dist/src/random.browser.js} +1 -1
  61. package/dist/src/random.browser.js.map +1 -0
  62. package/{lib/esm → dist/src}/random.d.ts +1 -1
  63. package/dist/src/random.d.ts.map +1 -0
  64. package/{lib/esm → dist/src}/random.js.map +1 -1
  65. package/{lib/esm → dist/src}/sepc256k1.d.ts +6 -5
  66. package/dist/src/sepc256k1.d.ts.map +1 -0
  67. package/{lib/esm → dist/src}/sepc256k1.js +19 -19
  68. package/dist/src/sepc256k1.js.map +1 -0
  69. package/{lib/esm → dist/src}/signature.d.ts +4 -7
  70. package/dist/src/signature.d.ts.map +1 -0
  71. package/dist/src/signature.js +113 -0
  72. package/dist/src/signature.js.map +1 -0
  73. package/{lib/esm → dist/src}/signer.d.ts +4 -3
  74. package/dist/src/signer.d.ts.map +1 -0
  75. package/{lib/esm → dist/src}/utils.d.ts +2 -0
  76. package/dist/src/utils.d.ts.map +1 -0
  77. package/{lib/esm → dist/src}/utils.js +4 -0
  78. package/dist/src/utils.js.map +1 -0
  79. package/{lib/esm → dist/src}/x25519.d.ts +4 -3
  80. package/dist/src/x25519.d.ts.map +1 -0
  81. package/{lib/esm → dist/src}/x25519.js +15 -14
  82. package/dist/src/x25519.js.map +1 -0
  83. package/package.json +77 -54
  84. package/src/bytes.ts +1 -1
  85. package/src/{ed25519-sign-browser.ts → ed25519-sign.browser.ts} +7 -7
  86. package/src/ed25519-sign.ts +11 -11
  87. package/src/ed25519.ts +21 -21
  88. package/src/encryption.ts +69 -68
  89. package/src/errors.ts +1 -5
  90. package/src/{hash-browser.ts → hash.browser.ts} +2 -1
  91. package/src/index.ts +3 -1
  92. package/src/key.ts +6 -5
  93. package/src/peerid.ts +3 -3
  94. package/src/prehash.ts +8 -8
  95. package/src/random.ts +1 -0
  96. package/src/sepc256k1.ts +39 -37
  97. package/src/signature.ts +16 -190
  98. package/src/signer.ts +5 -5
  99. package/src/utils.ts +6 -0
  100. package/src/x25519.ts +26 -28
  101. package/LICENSE +0 -202
  102. package/lib/esm/ed25519-sign-browser.js.map +0 -1
  103. package/lib/esm/ed25519-sign.js.map +0 -1
  104. package/lib/esm/ed25519.js.map +0 -1
  105. package/lib/esm/encryption.js.map +0 -1
  106. package/lib/esm/errors.js +0 -6
  107. package/lib/esm/index.js.map +0 -1
  108. package/lib/esm/key.js.map +0 -1
  109. package/lib/esm/peerid.js.map +0 -1
  110. package/lib/esm/random-browser.js.map +0 -1
  111. package/lib/esm/sepc256k1.js.map +0 -1
  112. package/lib/esm/signature.js +0 -285
  113. package/lib/esm/signature.js.map +0 -1
  114. package/lib/esm/utils.js.map +0 -1
  115. package/lib/esm/x25519.js.map +0 -1
  116. /package/{lib/esm → dist/src}/bytes.js +0 -0
  117. /package/{lib/esm → dist/src}/hash.js +0 -0
  118. /package/{lib/esm → dist/src}/hash.js.map +0 -0
  119. /package/{lib/esm → dist/src}/random.js +0 -0
  120. /package/{lib/esm → dist/src}/signer.js +0 -0
  121. /package/{lib/esm → dist/src}/signer.js.map +0 -0
  122. /package/src/{random-browser.ts → random.browser.ts} +0 -0
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=hash.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.d.ts","sourceRoot":"","sources":["../../benchmark/hash.ts"],"names":[],"mappings":""}
@@ -0,0 +1,69 @@
1
+ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
+ var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
+ if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
+ else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
+ return c > 3 && r && Object.defineProperty(target, key, r), r;
6
+ };
7
+ var __metadata = (this && this.__metadata) || function (k, v) {
8
+ if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
+ };
10
+ import { deserialize, field, serialize } from "@dao-xyz/borsh";
11
+ import B from "benchmark";
12
+ import crypto from "crypto";
13
+ import { sha256, sha256Base64 } from "../src/hash.js";
14
+ //node --loader ts-node/esm ./benchmark/hash.ts
15
+ /**
16
+ * Benchmark for hashing + serializing
17
+ */
18
+ const size = 1e3;
19
+ const data = [];
20
+ for (let i = 0; i < 100; i++) {
21
+ data.push(crypto.randomBytes(size));
22
+ }
23
+ class MSstring {
24
+ string;
25
+ constructor(string) {
26
+ this.string = string;
27
+ }
28
+ }
29
+ __decorate([
30
+ field({ type: "string" }),
31
+ __metadata("design:type", String)
32
+ ], MSstring.prototype, "string", void 0);
33
+ class MBytes {
34
+ bytes;
35
+ constructor(bytes) {
36
+ this.bytes = bytes;
37
+ }
38
+ }
39
+ __decorate([
40
+ field({ type: Uint8Array }),
41
+ __metadata("design:type", Uint8Array)
42
+ ], MBytes.prototype, "bytes", void 0);
43
+ const getSample = () => {
44
+ return data[Math.floor(Math.round(Math.random() * (data.length - 1)))];
45
+ };
46
+ const suite = new B.Suite("ed25519");
47
+ suite
48
+ .add("hash-to-bytes", {
49
+ fn: async (deferred) => {
50
+ deserialize(serialize(new MBytes(await sha256(getSample()))), MBytes);
51
+ deferred.resolve();
52
+ },
53
+ defer: true,
54
+ })
55
+ .add("hash-to-string", {
56
+ fn: async (deferred) => {
57
+ deserialize(serialize(new MSstring(await sha256Base64(getSample()))), MSstring);
58
+ deferred.resolve();
59
+ },
60
+ defer: true,
61
+ })
62
+ .on("error", (error) => {
63
+ throw error;
64
+ })
65
+ .on("cycle", (event) => {
66
+ console.log(String(event.target));
67
+ })
68
+ .run({ async: true });
69
+ //# sourceMappingURL=hash.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hash.js","sourceRoot":"","sources":["../../benchmark/hash.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,EAAE,WAAW,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC/D,OAAO,CAAC,MAAM,WAAW,CAAC;AAC1B,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAEtD,+CAA+C;AAE/C;;GAEG;AAEH,MAAM,IAAI,GAAG,GAAG,CAAC;AACjB,MAAM,IAAI,GAAiB,EAAE,CAAC;AAC9B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC;IAC9B,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,QAAQ;IAEb,MAAM,CAAS;IAEf,YAAY,MAAc;QACzB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACtB,CAAC;CACD;AALA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC;;wCACX;AAOhB,MAAM,MAAM;IAEX,KAAK,CAAa;IAElB,YAAY,KAAiB;QAC5B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;IACpB,CAAC;CACD;AALA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,CAAC;8BACrB,UAAU;qCAAC;AAOnB,MAAM,SAAS,GAAG,GAAG,EAAE;IACtB,OAAO,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;AACxE,CAAC,CAAC;AACF,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,KAAK;KACH,GAAG,CAAC,eAAe,EAAE;IACrB,EAAE,EAAE,KAAK,EAAE,QAAa,EAAE,EAAE;QAC3B,WAAW,CAAC,SAAS,CAAC,IAAI,MAAM,CAAC,MAAM,MAAM,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EAAE,MAAM,CAAC,CAAC;QACtE,QAAQ,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IACD,KAAK,EAAE,IAAI;CACX,CAAC;KACD,GAAG,CAAC,gBAAgB,EAAE;IACtB,EAAE,EAAE,KAAK,EAAE,QAAa,EAAE,EAAE;QAC3B,WAAW,CACV,SAAS,CAAC,IAAI,QAAQ,CAAC,MAAM,YAAY,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,EACxD,QAAQ,CACR,CAAC;QACF,QAAQ,CAAC,OAAO,EAAE,CAAC;IACpB,CAAC;IACD,KAAK,EAAE,IAAI;CACX,CAAC;KACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;IAC3B,MAAM,KAAK,CAAC;AACb,CAAC,CAAC;KACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC;KACD,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../benchmark/index.ts"],"names":[],"mappings":""}
@@ -0,0 +1,64 @@
1
+ import B from "benchmark";
2
+ import crypto from "crypto";
3
+ import { Ed25519Keypair } from "../src/ed25519.js";
4
+ import { PreHash } from "../src/prehash.js";
5
+ import { SignatureWithKey, verify } from "../src/signature.js";
6
+ //node --loader ts-node/esm ./benchmark/index.ts
7
+ const keypair = await Ed25519Keypair.create();
8
+ const signatures = [];
9
+ const size = 1e5;
10
+ for (let i = 0; i < 10000; i++) {
11
+ const data = crypto.randomBytes(size);
12
+ signatures.push([data, await keypair.sign(data, PreHash.NONE)]);
13
+ }
14
+ const signaturesHash = [];
15
+ for (let i = 0; i < 10000; i++) {
16
+ const data = crypto.randomBytes(size);
17
+ signaturesHash.push([data, await keypair.sign(data, PreHash.SHA_256)]);
18
+ }
19
+ const suite = new B.Suite("ed25519");
20
+ suite
21
+ .add("sign", {
22
+ fn: async (deferred) => {
23
+ const data = crypto.randomBytes(size); // 1kb
24
+ await keypair.sign(data, PreHash.NONE);
25
+ deferred.resolve();
26
+ },
27
+ defer: true,
28
+ })
29
+ .add("hash+sign", {
30
+ fn: async (deferred) => {
31
+ const data = crypto.randomBytes(size); // 1kb
32
+ await keypair.sign(data, PreHash.SHA_256);
33
+ deferred.resolve();
34
+ },
35
+ defer: true,
36
+ })
37
+ .add("verify", {
38
+ fn: async (deferred) => {
39
+ const [data, signature] = signatures[Math.floor(Math.random() * signatures.length)];
40
+ if (!(await verify(signature, data))) {
41
+ throw new Error("Unverified");
42
+ }
43
+ deferred.resolve();
44
+ },
45
+ defer: true,
46
+ })
47
+ .add("hash+verify", {
48
+ fn: async (deferred) => {
49
+ const [data, signature] = signaturesHash[Math.floor(Math.random() * signatures.length)];
50
+ if (!(await verify(signature, data))) {
51
+ throw new Error("Unexpected");
52
+ }
53
+ deferred.resolve();
54
+ },
55
+ defer: true,
56
+ })
57
+ .on("error", (error) => {
58
+ throw error;
59
+ })
60
+ .on("cycle", (event) => {
61
+ console.log(String(event.target));
62
+ })
63
+ .run({ async: true });
64
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../benchmark/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=peer-ids.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-ids.d.ts","sourceRoot":"","sources":["../../benchmark/peer-ids.ts"],"names":[],"mappings":""}
@@ -0,0 +1,29 @@
1
+ import { deserialize, serialize } from "@dao-xyz/borsh";
2
+ import { peerIdFromBytes, peerIdFromKeys } from "@libp2p/peer-id";
3
+ import { createEd25519PeerId } from "@libp2p/peer-id-factory";
4
+ import B from "benchmark";
5
+ import { Ed25519Keypair, Ed25519PublicKey } from "../src/ed25519.js";
6
+ //node --loader ts-node/esm ./benchmark/peer-ids.ts
7
+ const keypair = await Ed25519Keypair.create();
8
+ const peerId = await createEd25519PeerId();
9
+ const peerIdPublicKey = await peerIdFromKeys(peerId.publicKey);
10
+ const suite = new B.Suite("ed25519");
11
+ suite
12
+ .add("PublicSignKey", {
13
+ fn: async () => {
14
+ deserialize(serialize(keypair.publicKey), Ed25519PublicKey);
15
+ },
16
+ })
17
+ .add("PeerId ", {
18
+ fn: () => {
19
+ peerIdFromBytes(peerIdPublicKey.toBytes());
20
+ },
21
+ })
22
+ .on("error", (error) => {
23
+ throw error;
24
+ })
25
+ .on("cycle", (event) => {
26
+ console.log(String(event.target));
27
+ })
28
+ .run();
29
+ //# sourceMappingURL=peer-ids.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"peer-ids.js","sourceRoot":"","sources":["../../benchmark/peer-ids.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAClE,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,CAAC,MAAM,WAAW,CAAC;AAC1B,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAErE,mDAAmD;AAEnD,MAAM,OAAO,GAAG,MAAM,cAAc,CAAC,MAAM,EAAE,CAAC;AAC9C,MAAM,MAAM,GAAG,MAAM,mBAAmB,EAAE,CAAC;AAC3C,MAAM,eAAe,GAAG,MAAM,cAAc,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;AAC/D,MAAM,KAAK,GAAG,IAAI,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;AACrC,KAAK;KACH,GAAG,CAAC,eAAe,EAAE;IACrB,EAAE,EAAE,KAAK,IAAI,EAAE;QACd,WAAW,CAAC,SAAS,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,gBAAgB,CAAC,CAAC;IAC7D,CAAC;CACD,CAAC;KACD,GAAG,CAAC,SAAS,EAAE;IACf,EAAE,EAAE,GAAG,EAAE;QACR,eAAe,CAAC,eAAe,CAAC,OAAO,EAAE,CAAC,CAAC;IAC5C,CAAC;CACD,CAAC;KACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;IAC3B,MAAM,KAAK,CAAC;AACb,CAAC,CAAC;KACD,EAAE,CAAC,OAAO,EAAE,CAAC,KAAU,EAAE,EAAE;IAC3B,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;AACnC,CAAC,CAAC;KACD,GAAG,EAAE,CAAC"}
@@ -3,3 +3,4 @@
3
3
  * @returns {Uint8Array}
4
4
  */
5
5
  export declare const coerce: (o: any) => Uint8Array;
6
+ //# sourceMappingURL=bytes.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bytes.d.ts","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,eAAO,MAAM,MAAM,MAAO,GAAG,eAO5B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAC,EAAE,EAAE;IAC3B,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,CAAC,CAAC;IAC7E,IAAI,CAAC,YAAY,WAAW;QAAE,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACtD,CAAC,CAAC"}
1
+ {"version":3,"file":"bytes.js","sourceRoot":"","sources":["../../src/bytes.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,CAAC,MAAM,MAAM,GAAG,CAAC,CAAM,EAAE,EAAE;IAChC,IAAI,CAAC,YAAY,UAAU,IAAI,CAAC,CAAC,WAAW,CAAC,IAAI,KAAK,YAAY;QAAE,OAAO,CAAC,CAAC;IAC7E,IAAI,CAAC,YAAY,WAAW;QAAE,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,CAAC;IACvD,IAAI,WAAW,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC;QAC3B,OAAO,IAAI,UAAU,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC,UAAU,EAAE,CAAC,CAAC,UAAU,CAAC,CAAC;IAC7D,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,CAAC;AACtD,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
- import { Ed25519Keypair } from "./ed25519.js";
2
- import { PreHash } from "./prehash.js";
1
+ import type { Ed25519Keypair } from "./ed25519.js";
2
+ import { type PreHash } from "./prehash.js";
3
3
  import { SignatureWithKey } from "./signature.js";
4
4
  export declare const sign: (data: Uint8Array, keypair: Ed25519Keypair, prehash: PreHash) => Promise<SignatureWithKey>;
5
5
  export declare const verifySignatureEd25519: (signature: SignatureWithKey, data: Uint8Array) => Promise<boolean>;
6
+ //# sourceMappingURL=ed25519-sign.browser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519-sign.browser.d.ts","sourceRoot":"","sources":["../../src/ed25519-sign.browser.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAoB,MAAM,cAAc,CAAC;AACrE,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,IAAI,SACV,UAAU,WACP,cAAc,WACd,OAAO,8BAchB,CAAC;AAEF,eAAO,MAAM,sBAAsB,cACvB,gBAAgB,QACrB,UAAU,qBAgBhB,CAAC"}
@@ -9,7 +9,7 @@ export const sign = async (data, keypair, prehash) => {
9
9
  return new SignatureWithKey({
10
10
  prehash,
11
11
  publicKey: keypair.publicKey,
12
- signature: sodium.crypto_sign_detached(hashedData, keypair.privateKeyPublicKey)
12
+ signature: sodium.crypto_sign_detached(hashedData, keypair.privateKeyPublicKey),
13
13
  });
14
14
  };
15
15
  export const verifySignatureEd25519 = async (signature, data) => {
@@ -24,4 +24,4 @@ export const verifySignatureEd25519 = async (signature, data) => {
24
24
  }
25
25
  return res;
26
26
  };
27
- //# sourceMappingURL=ed25519-sign-browser.js.map
27
+ //# sourceMappingURL=ed25519-sign.browser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519-sign.browser.js","sourceRoot":"","sources":["../../src/ed25519-sign.browser.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AAExC,OAAO,EAAgB,SAAS,EAAE,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,MAAM,CAAC,MAAM,IAAI,GAAG,KAAK,EACxB,IAAgB,EAChB,OAAuB,EACvB,OAAgB,EACf,EAAE;IACH,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAClD;;2GAEuG;IACvG,OAAO,IAAI,gBAAgB,CAAC;QAC3B,OAAO;QACP,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,SAAS,EAAE,MAAM,CAAC,oBAAoB,CACrC,UAAU,EACV,OAAO,CAAC,mBAAmB,CAC3B;KACD,CAAC,CAAC;AACJ,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,sBAAsB,GAAG,KAAK,EAC1C,SAA2B,EAC3B,IAAgB,EACf,EAAE;IACH,IAAI,GAAG,GAAG,KAAK,CAAC;IAChB,IAAI,CAAC;QACJ,MAAM,UAAU,GAAG,MAAM,SAAS,CAAC,IAAI,EAAE,SAAS,CAAC,OAAO,CAAC,CAAC;QAE5D,MAAM,QAAQ,GAAG,MAAM,CAAC,2BAA2B,CAClD,SAAS,CAAC,SAAS,EACnB,UAAU,EACT,SAAS,CAAC,SAA8B,CAAC,SAAS,CACnD,CAAC;QACF,GAAG,GAAG,QAAQ,CAAC;IAChB,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QAChB,OAAO,KAAK,CAAC;IACd,CAAC;IACD,OAAO,GAAG,CAAC;AACZ,CAAC,CAAC"}
@@ -1,5 +1,6 @@
1
- import { Ed25519Keypair } from "./ed25519.js";
1
+ import { type Ed25519Keypair } from "./ed25519.js";
2
+ import { type PreHash } from "./prehash.js";
2
3
  import { SignatureWithKey } from "./signature.js";
3
- import { PreHash } from "./prehash.js";
4
4
  export declare const sign: (data: Uint8Array, keypair: Ed25519Keypair, prehash: PreHash) => Promise<SignatureWithKey>;
5
5
  export declare const verifySignatureEd25519: (signature: SignatureWithKey, data: Uint8Array) => Promise<boolean>;
6
+ //# sourceMappingURL=ed25519-sign.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519-sign.d.ts","sourceRoot":"","sources":["../../src/ed25519-sign.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,cAAc,EAAyB,MAAM,cAAc,CAAC;AAC1E,OAAO,EAAE,KAAK,OAAO,EAAa,MAAM,cAAc,CAAC;AACvD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAElD,eAAO,MAAM,IAAI,SACV,UAAU,WACP,cAAc,WACd,OAAO,8BAgBhB,CAAC;AAEF,eAAO,MAAM,sBAAsB,cACvB,gBAAgB,QACrB,UAAU,qBAiBhB,CAAC"}
@@ -1,20 +1,21 @@
1
- import sodium from "libsodium-wrappers";
2
1
  import crypto from "crypto";
3
- import { SignatureWithKey } from "./signature.js";
2
+ import sodium from "libsodium-wrappers";
3
+ import {} from "./ed25519.js";
4
4
  import { prehashFn } from "./prehash.js";
5
+ import { SignatureWithKey } from "./signature.js";
5
6
  export const sign = async (data, keypair, prehash) => {
6
7
  const hashedData = await prehashFn(data, prehash);
7
8
  if (!keypair.privateKey.keyObject) {
8
9
  keypair.privateKey.keyObject = crypto.createPrivateKey({
9
10
  format: "der",
10
11
  type: "pkcs8",
11
- key: toDER(keypair.privateKeyPublicKey, true)
12
+ key: toDER(keypair.privateKeyPublicKey, true),
12
13
  });
13
14
  }
14
15
  return new SignatureWithKey({
15
16
  prehash,
16
17
  publicKey: keypair.publicKey,
17
- signature: crypto.sign(null, hashedData, keypair.privateKey.keyObject)
18
+ signature: crypto.sign(null, hashedData, keypair.privateKey.keyObject),
18
19
  });
19
20
  };
20
21
  export const verifySignatureEd25519 = async (signature, data) => {
@@ -31,7 +32,7 @@ export const verifySignatureEd25519 = async (signature, data) => {
31
32
  return res;
32
33
  };
33
34
  const DER_PREFIX = Buffer.from([
34
- 48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 112, 4, 34, 4, 32
35
+ 48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 112, 4, 34, 4, 32,
35
36
  ]);
36
37
  const ED25519_OID = Buffer.from([0x06, 0x03, 0x2b, 0x65, 0x70]);
37
38
  const SEQUENCE_TAG = Buffer.from([0x30]); // Sequence tag
@@ -51,13 +52,13 @@ function toDER(key, p = false) {
51
52
  BIT_TAG,
52
53
  Buffer.from([key.length + 1]),
53
54
  ZERO_BIT_TAG,
54
- key
55
+ key,
55
56
  ]);
56
57
  // Wrap up by creating a sequence of elements
57
58
  const der = Buffer.concat([
58
59
  SEQUENCE_TAG,
59
60
  Buffer.from([elements.length]),
60
- elements
61
+ elements,
61
62
  ]);
62
63
  return der;
63
64
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519-sign.js","sourceRoot":"","sources":["../../src/ed25519-sign.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,8 @@
1
- import { PrivateSignKey, PublicSignKey, Keypair } from "./key.js";
2
- import { Identity, SignWithKey } from "./signer.js";
3
- import { SignatureWithKey } from "./signature.js";
4
1
  import type { Ed25519PeerId, PeerId } from "@libp2p/interface";
2
+ import { Keypair, PrivateSignKey, PublicSignKey } from "./key.js";
5
3
  import { PreHash } from "./prehash.js";
4
+ import { SignatureWithKey } from "./signature.js";
5
+ import { type Identity, type SignWithKey } from "./signer.js";
6
6
  export declare class Ed25519PublicKey extends PublicSignKey {
7
7
  publicKey: Uint8Array;
8
8
  constructor(properties: {
@@ -39,3 +39,4 @@ export declare class Ed25519Keypair extends Keypair implements Identity {
39
39
  get privateKeyPublicKey(): Uint8Array;
40
40
  toPeerId(): Promise<PeerId>;
41
41
  }
42
+ //# sourceMappingURL=ed25519.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../src/ed25519.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAM/D,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,KAAK,QAAQ,EAAE,KAAK,WAAW,EAAE,MAAM,aAAa,CAAC;AAG9D,qBACa,gBAAiB,SAAQ,aAAa;IAElD,SAAS,EAAE,UAAU,CAAC;gBAEV,UAAU,EAAE;QAAE,SAAS,EAAE,UAAU,CAAA;KAAE;IAQjD,MAAM,CAAC,KAAK,EAAE,aAAa,GAAG,OAAO;IAOrC,QAAQ,IAAI,MAAM;IAIlB,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;IAkB3B,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM;CAW5B;AAED,qBACa,iBAAkB,SAAQ,cAAc;IAEpD,UAAU,EAAE,UAAU,CAAC;gBAEX,UAAU,EAAE;QAAE,UAAU,EAAE,UAAU,CAAA;KAAE;IAUlD,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;IAOzC,QAAQ,IAAI,MAAM;IAIlB,SAAS,EAAE,GAAG,CAAC;IAEf,MAAM,CAAC,UAAU,CAAC,EAAE,EAAE,MAAM;CAW5B;AAED,qBACa,cAAe,SAAQ,OAAQ,YAAW,QAAQ;IAE9D,SAAS,EAAE,gBAAgB,CAAC;IAG5B,UAAU,EAAE,iBAAiB,CAAC;gBAElB,UAAU,EAAE;QACvB,SAAS,EAAE,gBAAgB,CAAC;QAC5B,UAAU,EAAE,iBAAiB,CAAC;KAC9B;WAMY,MAAM,IAAI,OAAO,CAAC,cAAc,CAAC;IAe9C,IAAI,CACH,IAAI,EAAE,UAAU,EAChB,OAAO,GAAE,OAAsB,GAC7B,OAAO,CAAC,gBAAgB,CAAC;IAI5B,MAAM,CAAC,OAAO,EAAE,OAAO,GAAG,WAAW;IAMrC,MAAM,CAAC,KAAK,EAAE,OAAO;IAUrB,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,aAAa;IAOhD,oBAAoB,EAAG,UAAU,CAAC;IAClC,IAAI,mBAAmB,IAAI,UAAU,CAQpC;IAED,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC;CAU3B"}
@@ -9,16 +9,17 @@ var __metadata = (this && this.__metadata) || function (k, v) {
9
9
  };
10
10
  var Ed25519PublicKey_1, Ed25519PrivateKey_1, Ed25519Keypair_1;
11
11
  import { field, fixedArray, variant } from "@dao-xyz/borsh";
12
- import { PrivateSignKey, PublicSignKey, Keypair } from "./key.js";
13
- import { equals } from "@peerbit/uint8arrays";
14
- import { toHexString } from "./utils.js";
15
- import { peerIdFromKeys } from "@libp2p/peer-id";
16
12
  import { supportedKeys } from "@libp2p/crypto/keys";
17
- import { coerce } from "./bytes.js";
13
+ import { peerIdFromKeys } from "@libp2p/peer-id";
18
14
  import sodium from "libsodium-wrappers";
15
+ import { concat, equals } from "uint8arrays";
16
+ import { coerce } from "./bytes.js";
19
17
  import { sign } from "./ed25519-sign.js";
18
+ import { Keypair, PrivateSignKey, PublicSignKey } from "./key.js";
20
19
  import { PreHash } from "./prehash.js";
21
- import { concat } from "uint8arrays";
20
+ import { SignatureWithKey } from "./signature.js";
21
+ import {} from "./signer.js";
22
+ import { toHexString } from "./utils.js";
22
23
  let Ed25519PublicKey = Ed25519PublicKey_1 = class Ed25519PublicKey extends PublicSignKey {
23
24
  publicKey;
24
25
  constructor(properties) {
@@ -58,7 +59,7 @@ let Ed25519PublicKey = Ed25519PublicKey_1 = class Ed25519PublicKey extends Publi
58
59
  }
59
60
  if (id.type === "Ed25519") {
60
61
  return new Ed25519PublicKey_1({
61
- publicKey: coerce(id.publicKey.slice(4))
62
+ publicKey: coerce(id.publicKey.slice(4)),
62
63
  });
63
64
  }
64
65
  throw new Error("Unsupported key type: " + id.type);
@@ -98,7 +99,7 @@ let Ed25519PrivateKey = Ed25519PrivateKey_1 = class Ed25519PrivateKey extends Pr
98
99
  }
99
100
  if (id.type === "Ed25519") {
100
101
  return new Ed25519PrivateKey_1({
101
- privateKey: coerce(id.privateKey.slice(4, 36))
102
+ privateKey: coerce(id.privateKey.slice(4, 36)),
102
103
  });
103
104
  }
104
105
  throw new Error("Unsupported key type: " + id.type);
@@ -126,11 +127,11 @@ let Ed25519Keypair = Ed25519Keypair_1 = class Ed25519Keypair extends Keypair {
126
127
  const generated = sodium.crypto_sign_keypair();
127
128
  const kp = new Ed25519Keypair_1({
128
129
  publicKey: new Ed25519PublicKey({
129
- publicKey: generated.publicKey
130
+ publicKey: generated.publicKey,
130
131
  }),
131
132
  privateKey: new Ed25519PrivateKey({
132
- privateKey: generated.privateKey.slice(0, 32) // Only the private key part (?)
133
- })
133
+ privateKey: generated.privateKey.slice(0, 32), // Only the private key part (?)
134
+ }),
134
135
  });
135
136
  return kp;
136
137
  }
@@ -152,7 +153,7 @@ let Ed25519Keypair = Ed25519Keypair_1 = class Ed25519Keypair extends Keypair {
152
153
  static fromPeerId(peerId) {
153
154
  return new Ed25519Keypair_1({
154
155
  privateKey: Ed25519PrivateKey.fromPeerID(peerId),
155
- publicKey: Ed25519PublicKey.fromPeerId(peerId)
156
+ publicKey: Ed25519PublicKey.fromPeerId(peerId),
156
157
  });
157
158
  }
158
159
  _privateKeyPublicKey; // length 64
@@ -160,7 +161,7 @@ let Ed25519Keypair = Ed25519Keypair_1 = class Ed25519Keypair extends Keypair {
160
161
  return (this._privateKeyPublicKey ||
161
162
  (this._privateKeyPublicKey = concat([
162
163
  this.privateKey.privateKey,
163
- this.publicKey.publicKey
164
+ this.publicKey.publicKey,
164
165
  ])));
165
166
  }
166
167
  toPeerId() {
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ed25519.js","sourceRoot":"","sources":["../../src/ed25519.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,OAAO,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AACpC,OAAO,EAAE,IAAI,EAAE,MAAM,mBAAmB,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACvC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAmC,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAGlC,IAAM,gBAAgB,wBAAtB,MAAM,gBAAiB,SAAQ,aAAa;IAElD,SAAS,CAAa;IAEtB,YAAY,UAAqC;QAChD,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;QACtC,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACxC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACpD,CAAC;IACF,CAAC;IAED,MAAM,CAAC,KAAoB;QAC1B,IAAI,KAAK,YAAY,kBAAgB,EAAE,CAAC;YACvC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAChD,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,QAAQ;QACP,OAAO,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;IAClD,CAAC;IAED,QAAQ;QACP,OAAO,cAAc,CACpB,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,KAAK,CACnE,CAAC;IACH,CAAC;IAED;;;;;;;;;;;QAWI;IACJ,MAAM,CAAC,UAAU,CAAC,EAAU;QAC3B,IAAI,CAAC,EAAE,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACvC,CAAC;QACD,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,kBAAgB,CAAC;gBAC3B,SAAS,EAAE,MAAM,CAAC,EAAE,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;aACxC,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;CACD,CAAA;AAlDA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;8BAC3B,UAAU;mDAAC;AAFV,gBAAgB;IAD5B,OAAO,CAAC,CAAC,CAAC;;GACE,gBAAgB,CAoD5B;;AAGM,IAAM,iBAAiB,yBAAvB,MAAM,iBAAkB,SAAQ,cAAc;IAEpD,UAAU,CAAa;IAEvB,YAAY,UAAsC;QACjD,KAAK,EAAE,CAAC;QAER,IAAI,UAAU,CAAC,UAAU,CAAC,MAAM,KAAK,EAAE,EAAE,CAAC;YACzC,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACpD,CAAC;QAED,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;IACzC,CAAC;IAED,MAAM,CAAC,KAAwB;QAC9B,IAAI,KAAK,YAAY,mBAAiB,EAAE,CAAC;YACxC,OAAO,MAAM,CAAC,IAAI,CAAC,UAAU,EAAE,KAAK,CAAC,UAAU,CAAC,CAAC;QAClD,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,QAAQ;QACP,OAAO,WAAW,GAAG,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,SAAS,CAAM,CAAC,oBAAoB;IAEpC,MAAM,CAAC,UAAU,CAAC,EAAU;QAC3B,IAAI,CAAC,EAAE,CAAC,UAAU,EAAE,CAAC;YACpB,MAAM,IAAI,KAAK,CAAC,wBAAwB,CAAC,CAAC;QAC3C,CAAC;QACD,IAAI,EAAE,CAAC,IAAI,KAAK,SAAS,EAAE,CAAC;YAC3B,OAAO,IAAI,mBAAiB,CAAC;gBAC5B,UAAU,EAAE,MAAM,CAAC,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;aAC9C,CAAC,CAAC;QACJ,CAAC;QACD,MAAM,IAAI,KAAK,CAAC,wBAAwB,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IACrD,CAAC;CACD,CAAA;AApCA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,CAAC,IAAI,EAAE,EAAE,CAAC,EAAE,CAAC;8BAC1B,UAAU;qDAAC;AAFX,iBAAiB;IAD7B,OAAO,CAAC,CAAC,CAAC;;GACE,iBAAiB,CAsC7B;;AAGM,IAAM,cAAc,sBAApB,MAAM,cAAe,SAAQ,OAAO;IAE1C,SAAS,CAAmB;IAG5B,UAAU,CAAoB;IAE9B,YAAY,UAGX;QACA,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC,UAAU,CAAC;QACxC,IAAI,CAAC,SAAS,GAAG,UAAU,CAAC,SAAS,CAAC;IACvC,CAAC;IAED,MAAM,CAAC,KAAK,CAAC,MAAM;QAClB,MAAM,MAAM,CAAC,KAAK,CAAC;QACnB,MAAM,SAAS,GAAG,MAAM,CAAC,mBAAmB,EAAE,CAAC;QAC/C,MAAM,EAAE,GAAG,IAAI,gBAAc,CAAC;YAC7B,SAAS,EAAE,IAAI,gBAAgB,CAAC;gBAC/B,SAAS,EAAE,SAAS,CAAC,SAAS;aAC9B,CAAC;YACF,UAAU,EAAE,IAAI,iBAAiB,CAAC;gBACjC,UAAU,EAAE,SAAS,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,EAAE,EAAE,CAAC,EAAE,gCAAgC;aAC/E,CAAC;SACF,CAAC,CAAC;QAEH,OAAO,EAAE,CAAC;IACX,CAAC;IAED,IAAI,CACH,IAAgB,EAChB,UAAmB,OAAO,CAAC,IAAI;QAE/B,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;IAClC,CAAC;IAED,MAAM,CAAC,OAAgB;QACtB,OAAO,KAAK,EAAE,IAAgB,EAAE,EAAE;YACjC,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QACjC,CAAC,CAAC;IACH,CAAC;IAED,MAAM,CAAC,KAAc;QACpB,IAAI,KAAK,YAAY,gBAAc,EAAE,CAAC;YACrC,OAAO,CACN,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,SAAS,CAAC;gBACtC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CACxC,CAAC;QACH,CAAC;QACD,OAAO,KAAK,CAAC;IACd,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,MAA8B;QAC/C,OAAO,IAAI,gBAAc,CAAC;YACzB,UAAU,EAAE,iBAAiB,CAAC,UAAU,CAAC,MAAM,CAAC;YAChD,SAAS,EAAE,gBAAgB,CAAC,UAAU,CAAC,MAAM,CAAC;SAC9C,CAAC,CAAC;IACJ,CAAC;IAED,oBAAoB,CAAc,CAAC,YAAY;IAC/C,IAAI,mBAAmB;QACtB,OAAO,CACN,IAAI,CAAC,oBAAoB;YACzB,CAAC,IAAI,CAAC,oBAAoB,GAAG,MAAM,CAAC;gBACnC,IAAI,CAAC,UAAU,CAAC,UAAU;gBAC1B,IAAI,CAAC,SAAS,CAAC,SAAS;aACxB,CAAC,CAAC,CACH,CAAC;IACH,CAAC;IAED,QAAQ;QACP,OAAO,cAAc,CACpB,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC;aACrE,KAAK,EACP,IAAI,aAAa,CAAC,SAAS,CAAC,CAAC,iBAAiB,CAC7C,IAAI,CAAC,mBAAmB,EACxB,IAAI,CAAC,SAAS,CAAC,SAAS,CACxB,CAAC,KAAK,CACP,CAAC;IACH,CAAC;CACD,CAAA;AAhFA;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,gBAAgB,EAAE,CAAC;8BACvB,gBAAgB;iDAAC;AAG5B;IADC,KAAK,CAAC,EAAE,IAAI,EAAE,iBAAiB,EAAE,CAAC;8BACvB,iBAAiB;kDAAC;AALlB,cAAc;IAD1B,OAAO,CAAC,CAAC,CAAC;;GACE,cAAc,CAkF1B"}
@@ -1,7 +1,8 @@
1
- export * from "./errors.js";
2
- import { AbstractType } from "@dao-xyz/borsh";
3
- import { X25519Keypair, X25519PublicKey } from "./x25519.js";
1
+ import { type AbstractType } from "@dao-xyz/borsh";
4
2
  import { Ed25519PublicKey } from "./ed25519.js";
3
+ import { X25519Keypair, X25519PublicKey } from "./x25519.js";
4
+ export * from "./errors.js";
5
+ export declare const equals: (array1?: Uint8Array, array2?: Uint8Array) => boolean;
5
6
  export type MaybePromise<T> = Promise<T> | T;
6
7
  export type PublicKeyEncryptionParameters = {
7
8
  type?: "publicKey";
@@ -17,12 +18,14 @@ type CipherWithEnvelope<E = PublicKeyEnvelope | HashedKeyEnvelope> = {
17
18
  nonce: Uint8Array;
18
19
  envelope: E;
19
20
  };
21
+ type SymmetricKeys = Uint8Array;
22
+ type PublicKeyEncryptionKeys = X25519Keypair;
20
23
  type EnvelopeFromParameter<Parameters extends KeyExchangeOptions> = Parameters extends PublicKeyEncryptionParameters ? PublicKeyEnvelope : HashedKeyEnvelope;
21
24
  type EncryptProvide<Parameters extends KeyExchangeOptions> = (bytes: Uint8Array, parameters: Parameters) => Promise<CipherWithEnvelope<EnvelopeFromParameter<Parameters>>>;
22
25
  interface KeyProvider {
23
26
  exportByKey(publicKey: X25519PublicKey): Promise<X25519Keypair | undefined>;
24
27
  }
25
- export declare const createLocalEncryptProvider: <K_1 extends Uint8Array | X25519Keypair, Parameters_1 extends KeyExchangeOptions = K_1 extends X25519Keypair ? PublicKeyEncryptionParameters : SymmetricKeyEncryptionParameters>(keys: K_1) => (bytes: Uint8Array, parameters: Parameters_1) => Promise<CipherWithEnvelope<EnvelopeFromParameter<Parameters_1>>>;
28
+ export declare const createLocalEncryptProvider: <K extends PublicKeyEncryptionKeys | SymmetricKeys, Parameters extends KeyExchangeOptions = K extends X25519Keypair ? PublicKeyEncryptionParameters : SymmetricKeyEncryptionParameters>(keys: K) => (bytes: Uint8Array, parameters: Parameters) => Promise<CipherWithEnvelope<EnvelopeFromParameter<Parameters>>>;
26
29
  export type DecryptProvider = (encrypted: Uint8Array, nonce: Uint8Array, exchange: Envelope) => Promise<Uint8Array>;
27
30
  type KeyResolver = <T extends X25519PublicKey | Uint8Array>(key: T) => Promise<(T extends X25519PublicKey ? X25519Keypair : Uint8Array) | undefined>;
28
31
  export declare const createDecrypterFromKeyResolver: (keyResolver: KeyResolver) => DecryptProvider;
@@ -50,8 +53,8 @@ export declare class DecryptedThing<T> extends MaybeEncrypted<T> {
50
53
  getValue(clazz: AbstractType<T>): T;
51
54
  encrypt<Parameters extends KeyExchangeOptions>(provider: EncryptProvide<Parameters>, parameters: Parameters): Promise<EncryptReturnValue<T, Parameters>>;
52
55
  encrypt(x25519Keypair: X25519Keypair, receiverPublicKeys: (X25519PublicKey | Ed25519PublicKey)[]): Promise<EncryptReturnValue<T, PublicKeyEncryptionParameters>>;
53
- get decrypted(): DecryptedThing<T>;
54
- decrypt(): DecryptedThing<T>;
56
+ get decrypted(): this;
57
+ decrypt(): this;
55
58
  equals(other: MaybeEncrypted<T>): boolean;
56
59
  clear(): void;
57
60
  get byteLength(): number;
@@ -59,7 +62,7 @@ export declare class DecryptedThing<T> extends MaybeEncrypted<T> {
59
62
  export declare class CipherWithNonce {
60
63
  nonce: Uint8Array;
61
64
  cipher: Uint8Array;
62
- constructor(props?: {
65
+ constructor(props: {
63
66
  nonce: Uint8Array;
64
67
  cipher: Uint8Array;
65
68
  });
@@ -68,7 +71,7 @@ export declare class CipherWithNonce {
68
71
  export declare class K {
69
72
  _encryptedKey: CipherWithNonce;
70
73
  _receiverPublicKey: X25519PublicKey;
71
- constructor(props?: {
74
+ constructor(props: {
72
75
  encryptedKey: CipherWithNonce;
73
76
  receiverPublicKey: X25519PublicKey;
74
77
  });
@@ -80,7 +83,7 @@ declare abstract class Envelope {
80
83
  declare class PublicKeyEnvelope extends Envelope {
81
84
  _senderPublicKey: X25519PublicKey;
82
85
  _ks: K[];
83
- constructor(props?: {
86
+ constructor(props: {
84
87
  senderPublicKey: X25519PublicKey;
85
88
  ks: K[];
86
89
  });
@@ -88,7 +91,7 @@ declare class PublicKeyEnvelope extends Envelope {
88
91
  }
89
92
  declare class HashedKeyEnvelope extends Envelope {
90
93
  hash: Uint8Array;
91
- constructor(props?: {
94
+ constructor(props: {
92
95
  hash: Uint8Array;
93
96
  });
94
97
  equals(other: HashedKeyEnvelope): boolean;
@@ -97,7 +100,7 @@ export declare class EncryptedThing<T, E extends Envelope = PublicKeyEnvelope |
97
100
  _encrypted: Uint8Array;
98
101
  _nonce: Uint8Array;
99
102
  _keyexchange: E;
100
- constructor(props?: {
103
+ constructor(props: {
101
104
  encrypted: Uint8Array;
102
105
  nonce: Uint8Array;
103
106
  envelope: E;
@@ -110,3 +113,4 @@ export declare class EncryptedThing<T, E extends Envelope = PublicKeyEnvelope |
110
113
  clear(): void;
111
114
  get byteLength(): number;
112
115
  }
116
+ //# sourceMappingURL=encryption.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"encryption.d.ts","sourceRoot":"","sources":["../../src/encryption.ts"],"names":[],"mappings":"AAAA,OAAO,EACN,KAAK,YAAY,EAOjB,MAAM,gBAAgB,CAAC;AAGxB,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIhD,OAAO,EAAE,aAAa,EAAE,eAAe,EAAmB,MAAM,aAAa,CAAC;AAE9E,cAAc,aAAa,CAAC;AAE5B,eAAO,MAAM,MAAM,YAAa,UAAU,WAAW,UAAU,YAM9D,CAAC;AAEF,MAAM,MAAM,YAAY,CAAC,CAAC,IAAI,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;AAE7C,MAAM,MAAM,6BAA6B,GAAG;IAC3C,IAAI,CAAC,EAAE,WAAW,CAAC;IACnB,kBAAkB,EAAE,CAAC,eAAe,GAAG,gBAAgB,CAAC,EAAE,CAAC;CAC3D,CAAC;AAEF,MAAM,MAAM,gCAAgC,GAAG;IAC9C,IAAI,CAAC,EAAE,MAAM,CAAC;CACd,CAAC;AAOF,MAAM,MAAM,kBAAkB,GAC3B,6BAA6B,GAC7B,gCAAgC,CAAC;AAEpC,KAAK,kBAAkB,CACtB,CAAC,EACD,UAAU,SAAS,kBAAkB,IAClC,cAAc,CAAC,CAAC,EAAE,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;AAEzD,KAAK,kBAAkB,CAAC,CAAC,GAAG,iBAAiB,GAAG,iBAAiB,IAAI;IACpE,MAAM,EAAE,UAAU,CAAC;IACnB,KAAK,EAAE,UAAU,CAAC;IAClB,QAAQ,EAAE,CAAC,CAAC;CACZ,CAAC;AAEF,KAAK,aAAa,GAAG,UAAU,CAAC;AAChC,KAAK,uBAAuB,GAAG,aAAa,CAAC;AAe7C,KAAK,qBAAqB,CAAC,UAAU,SAAS,kBAAkB,IAC/D,UAAU,SAAS,6BAA6B,GAC7C,iBAAiB,GACjB,iBAAiB,CAAC;AAEtB,KAAK,cAAc,CAAC,UAAU,SAAS,kBAAkB,IAAI,CAC5D,KAAK,EAAE,UAAU,EACjB,UAAU,EAAE,UAAU,KAClB,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;AAEpE,UAAU,WAAW;IACpB,WAAW,CAAC,SAAS,EAAE,eAAe,GAAG,OAAO,CAAC,aAAa,GAAG,SAAS,CAAC,CAAC;CAC5E;AAED,eAAO,MAAM,0BAA0B,GACtC,CAAC,SAAS,uBAAuB,GAAG,aAAa,EACjD,UAAU,SAAS,kBAAkB,qGAI/B,CAAC,aAGC,UAAU,cACL,UAAU,KACpB,OAAO,CAAC,kBAAkB,CAAC,qBAAqB,CAAC,UAAU,CAAC,CAAC,CA0DhE,CAAC;AAEF,MAAM,MAAM,eAAe,GAAG,CAC7B,SAAS,EAAE,UAAU,EACrB,KAAK,EAAE,UAAU,EACjB,QAAQ,EAAE,QAAQ,KACd,OAAO,CAAC,UAAU,CAAC,CAAC;AAEzB,KAAK,WAAW,GAAG,CAAC,CAAC,SAAS,eAAe,GAAG,UAAU,EACzD,GAAG,EAAE,CAAC,KACF,OAAO,CACX,CAAC,CAAC,SAAS,eAAe,GAAG,aAAa,GAAG,UAAU,CAAC,GAAG,SAAS,CACpE,CAAC;AAEF,eAAO,MAAM,8BAA8B,gBAC7B,WAAW,KACtB,eAsDF,CAAC;AAIF,8BACsB,cAAc,CAAC,CAAC;IACrC;;OAEG;IACH,IAAI,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,CAEjC;IAED,OAAO,CACN,WAAW,CAAC,EAAE,aAAa,GAAG,WAAW,GACvC,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAClC,OAAO,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAQpE,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO;IAIzC;;OAEG;IACH,KAAK;IAIL,QAAQ,KAAK,UAAU,IAAI,MAAM,CAAC;CAClC;AAED,qBACa,cAAc,CAAC,CAAC,CAAE,SAAQ,cAAc,CAAC,CAAC,CAAC;IAEvD,KAAK,CAAC,EAAE,UAAU,CAAC;gBAEP,KAAK,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,UAAU,CAAC;QAAC,KAAK,CAAC,EAAE,CAAC,CAAA;KAAE;IAQpD,MAAM,CAAC,EAAE,CAAC,CAAC;IACX,QAAQ,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,CAAC;IAU7B,OAAO,CAAC,UAAU,SAAS,kBAAkB,EAClD,QAAQ,EAAE,cAAc,CAAC,UAAU,CAAC,EACpC,UAAU,EAAE,UAAU,GACpB,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC;IAEvC,OAAO,CACZ,aAAa,EAAE,aAAa,EAC5B,kBAAkB,EAAE,CAAC,eAAe,GAAG,gBAAgB,CAAC,EAAE,GACxD,OAAO,CAAC,kBAAkB,CAAC,CAAC,EAAE,6BAA6B,CAAC,CAAC;IAiChE,IAAI,SAAS,IAAI,IAAI,CAEpB;IAED,OAAO,IAAI,IAAI;IAIf,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC;IAQ/B,KAAK;IAIL,IAAI,UAAU,WAEb;CACD;AAED,qBACa,eAAe;IAE3B,KAAK,EAAE,UAAU,CAAC;IAGlB,MAAM,EAAE,UAAU,CAAC;gBAEP,KAAK,EAAE;QAAE,KAAK,EAAE,UAAU,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE;IAK5D,MAAM,CAAC,KAAK,EAAE,eAAe,GAAG,OAAO;CASvC;AAED,qBACa,CAAC;IAEb,aAAa,EAAE,eAAe,CAAC;IAG/B,kBAAkB,EAAE,eAAe,CAAC;gBAExB,KAAK,EAAE;QAClB,YAAY,EAAE,eAAe,CAAC;QAC9B,iBAAiB,EAAE,eAAe,CAAC;KACnC;IAKD,MAAM,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO;CAUzB;AAED,uBAAe,QAAQ;IACtB,QAAQ,CAAC,MAAM,CAAC,KAAK,EAAE,QAAQ,GAAG,OAAO;CACzC;AAED,cACM,iBAAkB,SAAQ,QAAQ;IAEvC,gBAAgB,EAAE,eAAe,CAAC;IAGlC,GAAG,EAAE,CAAC,EAAE,CAAC;gBAEG,KAAK,EAAE;QAAE,eAAe,EAAE,eAAe,CAAC;QAAC,EAAE,EAAE,CAAC,EAAE,CAAA;KAAE;IAOhE,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;CAmBzC;AAED,cACM,iBAAkB,SAAQ,QAAQ;IAEvC,IAAI,EAAE,UAAU,CAAC;gBAGL,KAAK,EAAE;QAAE,IAAI,EAAE,UAAU,CAAA;KAAE;IAMvC,MAAM,CAAC,KAAK,EAAE,iBAAiB,GAAG,OAAO;CAUzC;AAED,qBACa,cAAc,CAC1B,CAAC,EACD,CAAC,SAAS,QAAQ,GAAG,iBAAiB,GAAG,iBAAiB,CACzD,SAAQ,cAAc,CAAC,CAAC,CAAC;IAE1B,UAAU,EAAE,UAAU,CAAC;IAGvB,MAAM,EAAE,UAAU,CAAC;IAGnB,YAAY,EAAE,CAAC,CAAC;gBAEJ,KAAK,EAAE;QAClB,SAAS,EAAE,UAAU,CAAC;QACtB,KAAK,EAAE,UAAU,CAAC;QAClB,QAAQ,EAAE,CAAC,CAAC;KACZ;IAOD,UAAU,CAAC,EAAE,cAAc,CAAC,CAAC,CAAC,CAAC;IAC/B,IAAI,SAAS,IAAI,cAAc,CAAC,CAAC,CAAC,CAOjC;IAEK,OAAO,CACZ,WAAW,CAAC,EAAE,aAAa,GAAG,WAAW,GACvC,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IACvB,OAAO,CAAC,QAAQ,CAAC,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC;IAkDrE,MAAM,CAAC,KAAK,EAAE,cAAc,CAAC,CAAC,CAAC,GAAG,OAAO;IAkBzC,KAAK;IAIL,IAAI,UAAU,WAEb;CACD"}