@peerbit/crypto 2.2.0 → 2.3.0-55cebfe

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,113 @@
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, option, serialize, variant, } from "@dao-xyz/borsh";
11
+ import { compare, equals } from "uint8arrays";
12
+ import { verifySignatureEd25519 } from "./ed25519-sign.js";
13
+ import { Ed25519PublicKey } from "./ed25519.js";
14
+ import { PublicSignKey } from "./key.js";
15
+ import { PreHash } from "./prehash.js";
16
+ import { Secp256k1PublicKey, verifySignatureSecp256k1 } from "./sepc256k1.js";
17
+ import {} from "./signer.js";
18
+ let SignatureWithKey = class SignatureWithKey {
19
+ signature;
20
+ publicKey;
21
+ prehash = PreHash.NONE; // 0 no prehash, 1 sha256, 2 blake3?
22
+ constructor(props) {
23
+ this.signature = props.signature;
24
+ this.publicKey = props.publicKey;
25
+ this.prehash = props.prehash;
26
+ }
27
+ equals(other) {
28
+ if (!equals(this.signature, other.signature)) {
29
+ return false;
30
+ }
31
+ return (compare(serialize(this.publicKey), serialize(other.publicKey)) === 0 &&
32
+ this.prehash === other.prehash);
33
+ }
34
+ };
35
+ __decorate([
36
+ field({ type: Uint8Array }),
37
+ __metadata("design:type", Uint8Array)
38
+ ], SignatureWithKey.prototype, "signature", void 0);
39
+ __decorate([
40
+ field({ type: PublicSignKey }),
41
+ __metadata("design:type", PublicSignKey)
42
+ ], SignatureWithKey.prototype, "publicKey", void 0);
43
+ __decorate([
44
+ field({ type: "u8" }),
45
+ __metadata("design:type", Number)
46
+ ], SignatureWithKey.prototype, "prehash", void 0);
47
+ SignatureWithKey = __decorate([
48
+ variant(0),
49
+ __metadata("design:paramtypes", [Object])
50
+ ], SignatureWithKey);
51
+ export { SignatureWithKey };
52
+ let MaybeSigned = class MaybeSigned {
53
+ data;
54
+ signature;
55
+ constructor(props) {
56
+ this.data = props.data;
57
+ this.signature = props.signature;
58
+ this._value = props.value;
59
+ }
60
+ _value;
61
+ getValue(constructor) {
62
+ return deserialize(this.data, constructor);
63
+ }
64
+ async verify() {
65
+ if (!this.signature) {
66
+ return true;
67
+ }
68
+ return verify(this.signature, this.data);
69
+ }
70
+ equals(other) {
71
+ if (!equals(this.data, other.data)) {
72
+ return false;
73
+ }
74
+ if (!this.signature !== !other.signature) {
75
+ return false;
76
+ }
77
+ if (this.signature && other.signature) {
78
+ return this.signature.equals(other.signature);
79
+ }
80
+ return true;
81
+ }
82
+ /*
83
+ In place signing
84
+ */
85
+ async sign(signer) {
86
+ const signatureResult = await signer(this.data);
87
+ this.signature = signatureResult;
88
+ return this;
89
+ }
90
+ };
91
+ __decorate([
92
+ field({ type: Uint8Array }),
93
+ __metadata("design:type", Uint8Array)
94
+ ], MaybeSigned.prototype, "data", void 0);
95
+ __decorate([
96
+ field({ type: option(SignatureWithKey) }),
97
+ __metadata("design:type", SignatureWithKey)
98
+ ], MaybeSigned.prototype, "signature", void 0);
99
+ MaybeSigned = __decorate([
100
+ variant(0),
101
+ __metadata("design:paramtypes", [Object])
102
+ ], MaybeSigned);
103
+ export { MaybeSigned };
104
+ export const verify = async (signature, data) => {
105
+ if (signature.publicKey instanceof Ed25519PublicKey) {
106
+ return verifySignatureEd25519(signature, data);
107
+ }
108
+ else if (signature.publicKey instanceof Secp256k1PublicKey) {
109
+ return verifySignatureSecp256k1(signature, data);
110
+ }
111
+ return false;
112
+ };
113
+ //# sourceMappingURL=signature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,6 @@
1
- import { PublicSignKey } from "./key.js";
2
- import { PreHash } from "./prehash.js";
3
- import { SignatureWithKey } from "./signature.js";
1
+ import type { PublicSignKey } from "./key.js";
2
+ import type { PreHash } from "./prehash.js";
3
+ import type { SignatureWithKey } from "./signature.js";
4
4
  export interface Signer {
5
5
  sign: (bytes: Uint8Array, prehash?: PreHash) => Promise<SignatureWithKey> | SignatureWithKey;
6
6
  }
@@ -8,3 +8,4 @@ export type SignWithKey = (bytes: Uint8Array) => Promise<SignatureWithKey> | Sig
8
8
  export type Identity<T extends PublicSignKey = PublicSignKey> = Signer & {
9
9
  publicKey: T;
10
10
  };
11
+ //# sourceMappingURL=signer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAC5C,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAEvD,MAAM,WAAW,MAAM;IACtB,IAAI,EAAE,CACL,KAAK,EAAE,UAAU,EACjB,OAAO,CAAC,EAAE,OAAO,KACb,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;CAClD;AAED,MAAM,MAAM,WAAW,GAAG,CACzB,KAAK,EAAE,UAAU,KACb,OAAO,CAAC,gBAAgB,CAAC,GAAG,gBAAgB,CAAC;AAElD,MAAM,MAAM,QAAQ,CAAC,CAAC,SAAS,aAAa,GAAG,aAAa,IAAI,MAAM,GAAG;IACxE,SAAS,EAAE,CAAC,CAAC;CACb,CAAC"}
@@ -4,3 +4,5 @@ export declare const toBase64: (arr: Uint8Array) => string;
4
4
  export declare const fromBase64: (base64: string) => Uint8Array;
5
5
  export declare const toBase64URL: (arr: Uint8Array) => string;
6
6
  export declare const fromBase64URL: (base64: string) => Uint8Array;
7
+ export declare const toBase58: (arr: Uint8Array) => string;
8
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,cAAe,MAAM,eAA+B,CAAC;AAE/E,eAAO,MAAM,WAAW,UAAW,UAAU,WAAyB,CAAC;AAEvE,eAAO,MAAM,QAAQ,QAAS,UAAU,WAEvC,CAAC;AACF,eAAO,MAAM,UAAU,WAAY,MAAM,eAExC,CAAC;AAEF,eAAO,MAAM,WAAW,QAAS,UAAU,WAE1C,CAAC;AACF,eAAO,MAAM,aAAa,WAAY,MAAM,eAE3C,CAAC;AAEF,eAAO,MAAM,QAAQ,QAAS,UAAU,WAEvC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import sodium from "libsodium-wrappers";
2
+ import { base58btc } from "multiformats/bases/base58";
2
3
  export const fromHexString = (hexString) => sodium.from_hex(hexString);
3
4
  export const toHexString = (bytes) => sodium.to_hex(bytes);
4
5
  export const toBase64 = (arr) => {
@@ -13,4 +14,7 @@ export const toBase64URL = (arr) => {
13
14
  export const fromBase64URL = (base64) => {
14
15
  return sodium.from_base64(base64, sodium.base64_variants.URLSAFE);
15
16
  };
17
+ export const toBase58 = (arr) => {
18
+ return base58btc.baseEncode(arr);
19
+ };
16
20
  //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAEtD,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,SAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC;AAE/E,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,KAAiB,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;AAEvE,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAe,EAAE,EAAE;IAC3C,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AAC/D,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,MAAc,EAAE,EAAE;IAC5C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,QAAQ,CAAC,CAAC;AACpE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,GAAe,EAAE,EAAE;IAC9C,OAAO,MAAM,CAAC,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AAC9D,CAAC,CAAC;AACF,MAAM,CAAC,MAAM,aAAa,GAAG,CAAC,MAAc,EAAE,EAAE;IAC/C,OAAO,MAAM,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;AACnE,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,QAAQ,GAAG,CAAC,GAAe,EAAE,EAAE;IAC3C,OAAO,SAAS,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC;AAClC,CAAC,CAAC"}
@@ -1,7 +1,7 @@
1
- export * from "./errors.js";
2
- import { Keypair, PrivateEncryptionKey, PublicKeyEncryptionKey } from "./key.js";
1
+ import { type PeerId } from "@libp2p/interface";
3
2
  import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
4
- import { PeerId } from "@libp2p/interface";
3
+ import { Keypair, PrivateEncryptionKey, PublicKeyEncryptionKey } from "./key.js";
4
+ export * from "./errors.js";
5
5
  export declare class X25519PublicKey extends PublicKeyEncryptionKey {
6
6
  publicKey: Uint8Array;
7
7
  constructor(properties: {
@@ -36,3 +36,4 @@ export declare class X25519Keypair extends Keypair {
36
36
  static fromPeerId(peerId: PeerId): Promise<X25519Keypair>;
37
37
  equals(other: Keypair): boolean;
38
38
  }
39
+ //# sourceMappingURL=x25519.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x25519.d.ts","sourceRoot":"","sources":["../../src/x25519.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EACN,OAAO,EACP,oBAAoB,EACpB,sBAAsB,EACtB,MAAM,UAAU,CAAC;AAGlB,cAAc,aAAa,CAAC;AAE5B,qBACa,eAAgB,SAAQ,sBAAsB;IAE1D,SAAS,EAAE,UAAU,CAAC;gBAEV,UAAU,EAAE;QAAE,SAAS,EAAE,UAAU,CAAA;KAAE;IAQjD,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO;IAO9C,QAAQ,IAAI,MAAM;WAIL,IAAI,CAChB,gBAAgB,EAAE,gBAAgB,GAChC,OAAO,CAAC,eAAe,CAAC;WASd,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,CAAC;WAMpD,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;CAM/C;AAED,qBACa,eAAgB,SAAQ,oBAAoB;IAExD,SAAS,EAAE,UAAU,CAAC;gBAEV,UAAU,EAAE;QAAE,SAAS,EAAE,UAAU,CAAA;KAAE;IAQjD,MAAM,CAAC,KAAK,EAAE,sBAAsB,GAAG,OAAO;IAO9C,QAAQ,IAAI,MAAM;IAIZ,SAAS,IAAI,OAAO,CAAC,eAAe,CAAC;WAM9B,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;WAS9D,MAAM,IAAI,OAAO,CAAC,eAAe,CAAC;CAM/C;AAED,qBACa,aAAc,SAAQ,OAAO;IAEzC,SAAS,EAAE,eAAe,CAAC;IAG3B,SAAS,EAAE,eAAe,CAAC;gBAEf,UAAU,EAAE;QACvB,SAAS,EAAE,eAAe,CAAC;QAC3B,SAAS,EAAE,eAAe,CAAC;KAC3B;WAMY,MAAM,IAAI,OAAO,CAAC,aAAa,CAAC;WAehC,IAAI,CAAC,cAAc,EAAE,cAAc,GAAG,OAAO,CAAC,aAAa,CAAC;IAQzE,MAAM,CAAC,UAAU,CAAC,MAAM,EAAE,MAAM;IAKhC,MAAM,CAAC,KAAK,EAAE,OAAO;CASrB"}
@@ -8,13 +8,14 @@ var __metadata = (this && this.__metadata) || function (k, v) {
8
8
  if (typeof Reflect === "object" && typeof Reflect.metadata === "function") return Reflect.metadata(k, v);
9
9
  };
10
10
  var X25519PublicKey_1, X25519SecretKey_1, X25519Keypair_1;
11
- export * from "./errors.js";
12
11
  import { field, fixedArray, variant } from "@dao-xyz/borsh";
13
- import { compare } from "@peerbit/uint8arrays";
12
+ import {} from "@libp2p/interface";
14
13
  import sodium from "libsodium-wrappers";
15
- import { Keypair, PrivateEncryptionKey, PublicKeyEncryptionKey } from "./key.js";
14
+ import { compare } from "uint8arrays";
16
15
  import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
16
+ import { Keypair, PrivateEncryptionKey, PublicKeyEncryptionKey, } from "./key.js";
17
17
  import { toHexString } from "./utils.js";
18
+ export * from "./errors.js";
18
19
  let X25519PublicKey = X25519PublicKey_1 = class X25519PublicKey extends PublicKeyEncryptionKey {
19
20
  publicKey;
20
21
  constructor(properties) {
@@ -36,18 +37,18 @@ let X25519PublicKey = X25519PublicKey_1 = class X25519PublicKey extends PublicKe
36
37
  static async from(ed25119PublicKey) {
37
38
  await sodium.ready;
38
39
  return new X25519PublicKey_1({
39
- publicKey: sodium.crypto_sign_ed25519_pk_to_curve25519(ed25119PublicKey.publicKey)
40
+ publicKey: sodium.crypto_sign_ed25519_pk_to_curve25519(ed25119PublicKey.publicKey),
40
41
  });
41
42
  }
42
43
  static async fromPeerId(peerId) {
43
44
  await sodium.ready;
44
- const ed = await Ed25519PublicKey.fromPeerId(peerId);
45
+ const ed = Ed25519PublicKey.fromPeerId(peerId);
45
46
  return X25519PublicKey_1.from(ed);
46
47
  }
47
48
  static async create() {
48
49
  await sodium.ready;
49
50
  return new X25519PublicKey_1({
50
- publicKey: sodium.crypto_box_keypair().publicKey
51
+ publicKey: sodium.crypto_box_keypair().publicKey,
51
52
  });
52
53
  }
53
54
  };
@@ -71,7 +72,7 @@ let X25519SecretKey = X25519SecretKey_1 = class X25519SecretKey extends PrivateE
71
72
  }
72
73
  equals(other) {
73
74
  if (other instanceof X25519SecretKey_1) {
74
- return (compare(this.secretKey, other.secretKey) === 0);
75
+ return compare(this.secretKey, other.secretKey) === 0;
75
76
  }
76
77
  return false;
77
78
  }
@@ -80,19 +81,19 @@ let X25519SecretKey = X25519SecretKey_1 = class X25519SecretKey extends PrivateE
80
81
  }
81
82
  async publicKey() {
82
83
  return new X25519PublicKey({
83
- publicKey: sodium.crypto_scalarmult_base(this.secretKey)
84
+ publicKey: sodium.crypto_scalarmult_base(this.secretKey),
84
85
  });
85
86
  }
86
87
  static async from(ed25119Keypair) {
87
88
  await sodium.ready;
88
89
  return new X25519SecretKey_1({
89
- secretKey: sodium.crypto_sign_ed25519_sk_to_curve25519(ed25119Keypair.privateKeyPublicKey)
90
+ secretKey: sodium.crypto_sign_ed25519_sk_to_curve25519(ed25119Keypair.privateKeyPublicKey),
90
91
  });
91
92
  }
92
93
  static async create() {
93
94
  await sodium.ready;
94
95
  return new X25519SecretKey_1({
95
- secretKey: sodium.crypto_box_keypair().privateKey
96
+ secretKey: sodium.crypto_box_keypair().privateKey,
96
97
  });
97
98
  }
98
99
  };
@@ -118,18 +119,18 @@ let X25519Keypair = X25519Keypair_1 = class X25519Keypair extends Keypair {
118
119
  const generated = sodium.crypto_box_keypair();
119
120
  const kp = new X25519Keypair_1({
120
121
  publicKey: new X25519PublicKey({
121
- publicKey: generated.publicKey
122
+ publicKey: generated.publicKey,
122
123
  }),
123
124
  secretKey: new X25519SecretKey({
124
- secretKey: generated.privateKey
125
- })
125
+ secretKey: generated.privateKey,
126
+ }),
126
127
  });
127
128
  return kp;
128
129
  }
129
130
  static async from(ed25119Keypair) {
130
131
  const kp = new X25519Keypair_1({
131
132
  publicKey: await X25519PublicKey.from(ed25119Keypair.publicKey),
132
- secretKey: await X25519SecretKey.from(ed25119Keypair)
133
+ secretKey: await X25519SecretKey.from(ed25119Keypair),
133
134
  });
134
135
  return kp;
135
136
  }
@@ -0,0 +1 @@
1
+ {"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../src/x25519.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,56 +1,79 @@
1
1
  {
2
- "name": "@peerbit/crypto",
3
- "version": "2.2.0",
4
- "description": "Crypto fn",
5
- "type": "module",
6
- "sideEffects": false,
7
- "module": "lib/esm/index.js",
8
- "types": "lib/esm/index.d.ts",
9
- "exports": {
10
- "import": "./lib/esm/index.js"
11
- },
12
- "files": [
13
- "lib",
14
- "src",
15
- "!src/**/__tests__",
16
- "!lib/**/__tests__",
17
- "!src/**/__benchmark__",
18
- "!lib/**/__benchmark__",
19
- "LICENSE"
20
- ],
21
- "publishConfig": {
22
- "access": "public"
23
- },
24
- "browser": {
25
- "./lib/esm/hash.js": "./lib/esm/hash-browser.js",
26
- "./hash.js": "./lib/esm/hash-browser.js",
27
- "./lib/esm/random.js": "./lib/esm/random-browser.js",
28
- "./random.js": "./lib/esm/random-browser.js",
29
- "./lib/esm/ed25519-sign.js": "./lib/esm/ed25519-sign-browser.js",
30
- "./ed25519-sign.js": "./lib/esm/ed25519-sign-browser.js"
31
- },
32
- "scripts": {
33
- "clean": "shx rm -rf lib/*",
34
- "build": "yarn clean && tsc -p tsconfig.json",
35
- "test": "node ../../../node_modules/.bin/jest test -c ../../../jest.config.ts --runInBand --forceExit",
36
- "test:unit": "node ../../../node_modules/.bin/jest test -c ../../../jest.config.unit.ts --runInBand --forceExit",
37
- "test:integration": "node ../node_modules/.bin/jest test -c ../../../jest.config.integration.ts --runInBand --forceExit"
38
- },
39
- "author": "dao.xyz",
40
- "license": "MIT",
41
- "devDependencies": {
42
- "@types/libsodium-wrappers": "^0.7.10",
43
- "uint8arrays": "^4.0.4"
44
- },
45
- "dependencies": {
46
- "@dao-xyz/borsh": "^5.2.1",
47
- "@ethersproject/wallet": "^5.7.0",
48
- "@libp2p/crypto": "^3.0.3",
49
- "@libp2p/peer-id": "^4.0.3",
50
- "@peerbit/cache": "^2.0.6",
51
- "@peerbit/uint8arrays": "3.0.1",
52
- "@stablelib/sha256": "^1.0.1",
53
- "libsodium-wrappers": "^0.7.13"
54
- },
55
- "gitHead": "fcd486b9a5c3b7d94e2ae14f1b06ab2a0f7841ad"
2
+ "name": "@peerbit/crypto",
3
+ "version": "2.3.0-55cebfe",
4
+ "description": "Crypto fn",
5
+ "sideEffects": false,
6
+ "type": "module",
7
+ "types": "./dist/src/index.d.ts",
8
+ "typesVersions": {
9
+ "*": {
10
+ "*": [
11
+ "*",
12
+ "dist/*",
13
+ "dist/src/*",
14
+ "dist/src/*/index"
15
+ ],
16
+ "src/*": [
17
+ "*",
18
+ "dist/*",
19
+ "dist/src/*",
20
+ "dist/src/*/index"
21
+ ]
22
+ }
23
+ },
24
+ "files": [
25
+ "src",
26
+ "dist",
27
+ "!dist/test",
28
+ "!**/*.tsbuildinfo"
29
+ ],
30
+ "exports": {
31
+ ".": {
32
+ "types": "./dist/src/index.d.ts",
33
+ "import": "./dist/src/index.js"
34
+ }
35
+ },
36
+ "eslintConfig": {
37
+ "extends": "peerbit",
38
+ "parserOptions": {
39
+ "project": true,
40
+ "sourceType": "module"
41
+ },
42
+ "ignorePatterns": [
43
+ "!.aegir.js",
44
+ "test/ts-use",
45
+ "*.d.ts"
46
+ ]
47
+ },
48
+ "publishConfig": {
49
+ "access": "public"
50
+ },
51
+ "browser": {
52
+ "./dist/src/hash.js": "./dist/src/hash.browser.js",
53
+ "./dist/src/random.js": "./dist/src/random.browser.js",
54
+ "./dist/src/ed25519-sign.js": "./dist/src/ed25519-sign.browser.js"
55
+ },
56
+ "scripts": {
57
+ "clean": "aegir clean",
58
+ "build": "aegir build --no-bundle",
59
+ "test": "aegir test",
60
+ "lint": "aegir lint"
61
+ },
62
+ "author": "dao.xyz",
63
+ "license": "MIT",
64
+ "devDependencies": {
65
+ "@types/libsodium-wrappers": "^0.7.10",
66
+ "uint8arrays": "^4.0.4",
67
+ "@types/elliptic": "^6.4.18",
68
+ "multiformats": "^13.1.0"
69
+ },
70
+ "dependencies": {
71
+ "@peerbit/cache": "2.1.0-55cebfe",
72
+ "@dao-xyz/borsh": "^5.2.3",
73
+ "@stablelib/sha256": "^2.0.0",
74
+ "@ethersproject/wallet": "^5.7.0",
75
+ "@libp2p/crypto": "^4.1.5",
76
+ "@libp2p/peer-id": "^4.2.0",
77
+ "libsodium-wrappers": "^0.7.13"
78
+ }
56
79
  }
package/src/bytes.ts CHANGED
@@ -2,7 +2,7 @@
2
2
  * @param {ArrayBufferView|ArrayBuffer|Uint8Array} o
3
3
  * @returns {Uint8Array}
4
4
  */
5
- export const coerce = (o) => {
5
+ export const coerce = (o: any) => {
6
6
  if (o instanceof Uint8Array && o.constructor.name === "Uint8Array") return o;
7
7
  if (o instanceof ArrayBuffer) return new Uint8Array(o);
8
8
  if (ArrayBuffer.isView(o)) {
@@ -1,12 +1,12 @@
1
- import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
2
1
  import sodium from "libsodium-wrappers";
3
- import { PreHash, prehashFn } from "./prehash.js";
2
+ import type { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
3
+ import { type PreHash, prehashFn } from "./prehash.js";
4
4
  import { SignatureWithKey } from "./signature.js";
5
5
 
6
6
  export const sign = async (
7
7
  data: Uint8Array,
8
8
  keypair: Ed25519Keypair,
9
- prehash: PreHash
9
+ prehash: PreHash,
10
10
  ) => {
11
11
  const hashedData = await prehashFn(data, prehash);
12
12
  /* const init = sodium.crypto_sign_init()
@@ -17,14 +17,14 @@ export const sign = async (
17
17
  publicKey: keypair.publicKey,
18
18
  signature: sodium.crypto_sign_detached(
19
19
  hashedData,
20
- keypair.privateKeyPublicKey
21
- )
20
+ keypair.privateKeyPublicKey,
21
+ ),
22
22
  });
23
23
  };
24
24
 
25
25
  export const verifySignatureEd25519 = async (
26
26
  signature: SignatureWithKey,
27
- data: Uint8Array
27
+ data: Uint8Array,
28
28
  ) => {
29
29
  let res = false;
30
30
  try {
@@ -33,7 +33,7 @@ export const verifySignatureEd25519 = async (
33
33
  const verified = sodium.crypto_sign_verify_detached(
34
34
  signature.signature,
35
35
  hashedData,
36
- (signature.publicKey as Ed25519PublicKey).publicKey
36
+ (signature.publicKey as Ed25519PublicKey).publicKey,
37
37
  );
38
38
  res = verified;
39
39
  } catch (error) {
@@ -1,13 +1,13 @@
1
- import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
2
- import sodium from "libsodium-wrappers";
3
1
  import crypto from "crypto";
2
+ import sodium from "libsodium-wrappers";
3
+ import { type Ed25519Keypair, type Ed25519PublicKey } from "./ed25519.js";
4
+ import { type PreHash, prehashFn } from "./prehash.js";
4
5
  import { SignatureWithKey } from "./signature.js";
5
- import { PreHash, prehashFn } from "./prehash.js";
6
6
 
7
7
  export const sign = async (
8
8
  data: Uint8Array,
9
9
  keypair: Ed25519Keypair,
10
- prehash: PreHash
10
+ prehash: PreHash,
11
11
  ) => {
12
12
  const hashedData = await prehashFn(data, prehash);
13
13
 
@@ -15,19 +15,19 @@ export const sign = async (
15
15
  keypair.privateKey.keyObject = crypto.createPrivateKey({
16
16
  format: "der",
17
17
  type: "pkcs8",
18
- key: toDER(keypair.privateKeyPublicKey, true)
18
+ key: toDER(keypair.privateKeyPublicKey, true),
19
19
  });
20
20
  }
21
21
  return new SignatureWithKey({
22
22
  prehash,
23
23
  publicKey: keypair.publicKey,
24
- signature: crypto.sign(null, hashedData, keypair.privateKey.keyObject)
24
+ signature: crypto.sign(null, hashedData, keypair.privateKey.keyObject),
25
25
  });
26
26
  };
27
27
 
28
28
  export const verifySignatureEd25519 = async (
29
29
  signature: SignatureWithKey,
30
- data: Uint8Array
30
+ data: Uint8Array,
31
31
  ) => {
32
32
  let res = false;
33
33
  try {
@@ -37,7 +37,7 @@ export const verifySignatureEd25519 = async (
37
37
  const verified = sodium.crypto_sign_verify_detached(
38
38
  signature.signature,
39
39
  hashedData,
40
- (signature.publicKey as Ed25519PublicKey).publicKey
40
+ (signature.publicKey as Ed25519PublicKey).publicKey,
41
41
  );
42
42
  res = verified;
43
43
  } catch (error) {
@@ -47,7 +47,7 @@ export const verifySignatureEd25519 = async (
47
47
  };
48
48
 
49
49
  const DER_PREFIX = Buffer.from([
50
- 48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 112, 4, 34, 4, 32
50
+ 48, 46, 2, 1, 0, 48, 5, 6, 3, 43, 101, 112, 4, 34, 4, 32,
51
51
  ]);
52
52
  const ED25519_OID = Buffer.from([0x06, 0x03, 0x2b, 0x65, 0x70]);
53
53
  const SEQUENCE_TAG = Buffer.from([0x30]); // Sequence tag
@@ -69,14 +69,14 @@ function toDER(key: Uint8Array, p = false) {
69
69
  BIT_TAG,
70
70
  Buffer.from([key.length + 1]),
71
71
  ZERO_BIT_TAG,
72
- key
72
+ key,
73
73
  ]);
74
74
 
75
75
  // Wrap up by creating a sequence of elements
76
76
  const der = Buffer.concat([
77
77
  SEQUENCE_TAG,
78
78
  Buffer.from([elements.length]),
79
- elements
79
+ elements,
80
80
  ]);
81
81
 
82
82
  return der;