@peerbit/crypto 2.2.0-efee9d3 → 2.3.0-3a75d6e
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.
- package/dist/benchmark/hash.js +4 -4
- package/dist/benchmark/hash.js.map +1 -1
- package/dist/benchmark/index.js +5 -5
- package/dist/benchmark/index.js.map +1 -1
- package/dist/benchmark/peer-ids.js +6 -6
- package/dist/benchmark/peer-ids.js.map +1 -1
- package/dist/src/ed25519-sign.browser.d.ts +2 -2
- package/dist/src/ed25519-sign.browser.d.ts.map +1 -1
- package/dist/src/ed25519-sign.browser.js +2 -3
- package/dist/src/ed25519-sign.browser.js.map +1 -1
- package/dist/src/ed25519-sign.d.ts +2 -2
- package/dist/src/ed25519-sign.d.ts.map +1 -1
- package/dist/src/ed25519-sign.js +8 -8
- package/dist/src/ed25519-sign.js.map +1 -1
- package/dist/src/ed25519.d.ts +3 -3
- package/dist/src/ed25519.d.ts.map +1 -1
- package/dist/src/ed25519.js +14 -15
- package/dist/src/ed25519.js.map +1 -1
- package/dist/src/encryption.d.ts +12 -10
- package/dist/src/encryption.d.ts.map +1 -1
- package/dist/src/encryption.js +26 -36
- package/dist/src/encryption.js.map +1 -1
- package/dist/src/errors.d.ts +0 -1
- package/dist/src/errors.d.ts.map +1 -1
- package/dist/src/errors.js +0 -3
- package/dist/src/errors.js.map +1 -1
- package/dist/src/hash.browser.d.ts.map +1 -1
- package/dist/src/hash.browser.js +1 -1
- package/dist/src/hash.browser.js.map +1 -1
- package/dist/src/hash.d.ts.map +1 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/key.d.ts.map +1 -1
- package/dist/src/key.js +2 -2
- package/dist/src/key.js.map +1 -1
- package/dist/src/prehash.d.ts.map +1 -1
- package/dist/src/prehash.js +4 -4
- package/dist/src/prehash.js.map +1 -1
- package/dist/src/random.d.ts +0 -1
- package/dist/src/random.d.ts.map +1 -1
- package/dist/src/random.js.map +1 -1
- package/dist/src/sepc256k1.d.ts +4 -4
- package/dist/src/sepc256k1.d.ts.map +1 -1
- package/dist/src/sepc256k1.js +18 -20
- package/dist/src/sepc256k1.js.map +1 -1
- package/dist/src/signature.d.ts +1 -5
- package/dist/src/signature.d.ts.map +1 -1
- package/dist/src/signature.js +12 -185
- package/dist/src/signature.js.map +1 -1
- package/dist/src/signer.d.ts +3 -3
- package/dist/src/signer.d.ts.map +1 -1
- package/dist/src/signer.js +1 -3
- package/dist/src/signer.js.map +1 -1
- package/dist/src/utils.d.ts +1 -0
- package/dist/src/utils.d.ts.map +1 -1
- package/dist/src/utils.js +4 -0
- package/dist/src/utils.js.map +1 -1
- package/dist/src/x25519.d.ts +3 -3
- package/dist/src/x25519.d.ts.map +1 -1
- package/dist/src/x25519.js +15 -15
- package/dist/src/x25519.js.map +1 -1
- package/package.json +11 -9
- package/src/ed25519-sign.browser.ts +7 -7
- package/src/ed25519-sign.ts +11 -11
- package/src/ed25519.ts +21 -21
- package/src/encryption.ts +63 -72
- package/src/errors.ts +1 -5
- package/src/hash.browser.ts +2 -1
- package/src/index.ts +3 -1
- package/src/key.ts +9 -8
- package/src/peerid.ts +2 -2
- package/src/prehash.ts +8 -8
- package/src/random.ts +1 -0
- package/src/sepc256k1.ts +37 -35
- package/src/signature.ts +14 -188
- package/src/signer.ts +5 -5
- package/src/utils.ts +6 -0
- package/src/x25519.ts +26 -27
package/dist/src/signature.js
CHANGED
|
@@ -7,7 +7,7 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
|
|
|
7
7
|
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
|
-
import { deserialize,
|
|
10
|
+
import { deserialize, field, option, serialize, variant, } from "@dao-xyz/borsh";
|
|
11
11
|
import { compare, equals } from "uint8arrays";
|
|
12
12
|
import { verifySignatureEd25519 } from "./ed25519-sign.js";
|
|
13
13
|
import { Ed25519PublicKey } from "./ed25519.js";
|
|
@@ -20,18 +20,16 @@ let SignatureWithKey = class SignatureWithKey {
|
|
|
20
20
|
publicKey;
|
|
21
21
|
prehash = PreHash.NONE; // 0 no prehash, 1 sha256, 2 blake3?
|
|
22
22
|
constructor(props) {
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
this.prehash = props.prehash;
|
|
27
|
-
}
|
|
23
|
+
this.signature = props.signature;
|
|
24
|
+
this.publicKey = props.publicKey;
|
|
25
|
+
this.prehash = props.prehash;
|
|
28
26
|
}
|
|
29
27
|
equals(other) {
|
|
30
28
|
if (!equals(this.signature, other.signature)) {
|
|
31
29
|
return false;
|
|
32
30
|
}
|
|
33
|
-
return (compare(serialize(this.publicKey), serialize(other.publicKey)) ===
|
|
34
|
-
|
|
31
|
+
return (compare(serialize(this.publicKey), serialize(other.publicKey)) === 0 &&
|
|
32
|
+
this.prehash === other.prehash);
|
|
35
33
|
}
|
|
36
34
|
};
|
|
37
35
|
__decorate([
|
|
@@ -55,11 +53,9 @@ let MaybeSigned = class MaybeSigned {
|
|
|
55
53
|
data;
|
|
56
54
|
signature;
|
|
57
55
|
constructor(props) {
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
this._value = props.value;
|
|
62
|
-
}
|
|
56
|
+
this.data = props.data;
|
|
57
|
+
this.signature = props.signature;
|
|
58
|
+
this._value = props.value;
|
|
63
59
|
}
|
|
64
60
|
_value;
|
|
65
61
|
getValue(constructor) {
|
|
@@ -83,10 +79,9 @@ let MaybeSigned = class MaybeSigned {
|
|
|
83
79
|
}
|
|
84
80
|
return true;
|
|
85
81
|
}
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
*/
|
|
82
|
+
/*
|
|
83
|
+
In place signing
|
|
84
|
+
*/
|
|
90
85
|
async sign(signer) {
|
|
91
86
|
const signatureResult = await signer(this.data);
|
|
92
87
|
this.signature = signatureResult;
|
|
@@ -115,172 +110,4 @@ export const verify = async (signature, data) => {
|
|
|
115
110
|
}
|
|
116
111
|
return false;
|
|
117
112
|
};
|
|
118
|
-
/*
|
|
119
|
-
|
|
120
|
-
@variant(0)
|
|
121
|
-
export class SignatureWithKey {
|
|
122
|
-
@field({ type: Uint8Array })
|
|
123
|
-
signature: Uint8Array;
|
|
124
|
-
|
|
125
|
-
@field({ type: PublicSignKey })
|
|
126
|
-
publicKey: PublicSignKey;
|
|
127
|
-
|
|
128
|
-
constructor(props?: { signature: Uint8Array; publicKey: PublicSignKey }) {
|
|
129
|
-
if (props) {
|
|
130
|
-
this.signature = props.signature;
|
|
131
|
-
this.publicKey = props.publicKey;
|
|
132
|
-
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
equals(other: SignatureWithKey): boolean {
|
|
136
|
-
if (!equals(this.signature, other.signature)) {
|
|
137
|
-
return false;
|
|
138
|
-
}
|
|
139
|
-
return (
|
|
140
|
-
Buffer.compare(
|
|
141
|
-
serialize(this.publicKey),
|
|
142
|
-
serialize(other.publicKey)
|
|
143
|
-
) === 0
|
|
144
|
-
);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
|
|
148
|
-
@variant(0)
|
|
149
|
-
export abstract class MaybeSigned<T> {
|
|
150
|
-
|
|
151
|
-
@field({ type: Uint8Array })
|
|
152
|
-
data: Uint8Array;
|
|
153
|
-
|
|
154
|
-
constructor(props: {
|
|
155
|
-
data: Uint8Array;
|
|
156
|
-
value?: T;
|
|
157
|
-
}) {
|
|
158
|
-
this.data = props.data;
|
|
159
|
-
this._value = props.value;
|
|
160
|
-
}
|
|
161
|
-
|
|
162
|
-
_value?: T;
|
|
163
|
-
|
|
164
|
-
getValue(constructor: AbstractType<T>): T {
|
|
165
|
-
return deserialize(this.data, constructor);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
abstract verify(): Promise<boolean>
|
|
169
|
-
|
|
170
|
-
equals(other: MaybeSigned<T>): boolean {
|
|
171
|
-
if (!equals(this.data, other.data)) {
|
|
172
|
-
return false;
|
|
173
|
-
}
|
|
174
|
-
return true;
|
|
175
|
-
}
|
|
176
|
-
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
@variant(0)
|
|
180
|
-
export class Signed<T> extends MaybeSigned<T> {
|
|
181
|
-
|
|
182
|
-
@field({ type: option(SignatureWithKey) })
|
|
183
|
-
signature: SignatureWithKey;
|
|
184
|
-
|
|
185
|
-
constructor(props: {
|
|
186
|
-
data: Uint8Array;
|
|
187
|
-
value?: T;
|
|
188
|
-
signature: SignatureWithKey;
|
|
189
|
-
}) {
|
|
190
|
-
super(props)
|
|
191
|
-
this.signature = props.signature;
|
|
192
|
-
|
|
193
|
-
}
|
|
194
|
-
|
|
195
|
-
async verify(): Promise<boolean> {
|
|
196
|
-
return verify(
|
|
197
|
-
this.signature.signature,
|
|
198
|
-
this.signature.publicKey,
|
|
199
|
-
this.data
|
|
200
|
-
);
|
|
201
|
-
}
|
|
202
|
-
|
|
203
|
-
equals(other: MaybeSigned<T>): boolean {
|
|
204
|
-
if (other instanceof Signed<T>) {
|
|
205
|
-
if (!this.signature !== !other.signature) {
|
|
206
|
-
return false;
|
|
207
|
-
}
|
|
208
|
-
if (this.signature && other.signature) {
|
|
209
|
-
return this.signature.equals(other.signature);
|
|
210
|
-
}
|
|
211
|
-
return super.equals(other)
|
|
212
|
-
}
|
|
213
|
-
else {
|
|
214
|
-
return false;
|
|
215
|
-
}
|
|
216
|
-
}
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
async sign(signer: SignWithKey): Promise<MaybeSigned<T>> {
|
|
220
|
-
const signatureResult = await signer(this.data);
|
|
221
|
-
this.signature = new SignatureWithKey({
|
|
222
|
-
publicKey: signatureResult.publicKey,
|
|
223
|
-
signature: signatureResult.signature,
|
|
224
|
-
});
|
|
225
|
-
return this;
|
|
226
|
-
}
|
|
227
|
-
}
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
@variant(0)
|
|
231
|
-
export class Unsigned<T> extends MaybeSigned<T> {
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
constructor(props: {
|
|
235
|
-
data: Uint8Array;
|
|
236
|
-
value?: T;
|
|
237
|
-
}) {
|
|
238
|
-
super(props)
|
|
239
|
-
}
|
|
240
|
-
|
|
241
|
-
equals(other: MaybeSigned<T>): boolean {
|
|
242
|
-
if (other instanceof Unsigned) {
|
|
243
|
-
return super.equals(other)
|
|
244
|
-
}
|
|
245
|
-
else {
|
|
246
|
-
return false;
|
|
247
|
-
}
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
async sign(signer: SignWithKey): Promise<Signed<T>> {
|
|
252
|
-
const signatureResult = await signer(this.data);
|
|
253
|
-
return new Signed({
|
|
254
|
-
data: this.data,
|
|
255
|
-
signature: new SignatureWithKey({
|
|
256
|
-
publicKey: signatureResult.publicKey,
|
|
257
|
-
signature: signatureResult.signature,
|
|
258
|
-
}),
|
|
259
|
-
value: this._value
|
|
260
|
-
});
|
|
261
|
-
}
|
|
262
|
-
|
|
263
|
-
async verify(): Promise<boolean> {
|
|
264
|
-
return true;
|
|
265
|
-
}
|
|
266
|
-
}
|
|
267
|
-
|
|
268
|
-
|
|
269
|
-
export const verify = (
|
|
270
|
-
signature: Uint8Array,
|
|
271
|
-
publicKey: PublicSignKey,
|
|
272
|
-
data: Uint8Array
|
|
273
|
-
) => {
|
|
274
|
-
if (!signature) {
|
|
275
|
-
return true;
|
|
276
|
-
}
|
|
277
|
-
if (publicKey instanceof Ed25519PublicKey) {
|
|
278
|
-
return verifySignatureEd25519(signature, publicKey, data);
|
|
279
|
-
} else if (publicKey instanceof Secp256k1PublicKey) {
|
|
280
|
-
return verifySignatureSecp256k1(signature, publicKey, data);
|
|
281
|
-
}
|
|
282
|
-
return false;
|
|
283
|
-
};
|
|
284
|
-
|
|
285
|
-
*/
|
|
286
113
|
//# sourceMappingURL=signature.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":";;;;;;;;;AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"signature.js","sourceRoot":"","sources":["../../src/signature.ts"],"names":[],"mappings":"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"}
|
package/dist/src/signer.d.ts
CHANGED
|
@@ -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
|
}
|
package/dist/src/signer.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.d.ts","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;
|
|
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"}
|
package/dist/src/signer.js
CHANGED
package/dist/src/signer.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"signer.js","sourceRoot":"","sources":["../../src/signer.ts"],"names":[],"mappings":""}
|
package/dist/src/utils.d.ts
CHANGED
|
@@ -4,4 +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;
|
|
7
8
|
//# sourceMappingURL=utils.d.ts.map
|
package/dist/src/utils.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/src/utils.js
CHANGED
|
@@ -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
|
package/dist/src/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,oBAAoB,CAAC;AACxC,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"}
|
|
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"}
|
package/dist/src/x25519.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
export * from "./errors.js";
|
|
2
|
-
import { Keypair, PrivateEncryptionKey, PublicKeyEncryptionKey } from "./key.js";
|
|
3
|
-
import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
|
|
4
1
|
import { type PeerId } from "@libp2p/interface";
|
|
2
|
+
import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
|
|
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: {
|
package/dist/src/x25519.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x25519.d.ts","sourceRoot":"","sources":["../../src/x25519.ts"],"names":[],"mappings":"
|
|
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"}
|
package/dist/src/x25519.js
CHANGED
|
@@ -8,14 +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 {
|
|
12
|
+
import {} from "@libp2p/interface";
|
|
14
13
|
import sodium from "libsodium-wrappers";
|
|
15
|
-
import {
|
|
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
|
-
|
|
18
|
+
export * from "./errors.js";
|
|
19
19
|
let X25519PublicKey = X25519PublicKey_1 = class X25519PublicKey extends PublicKeyEncryptionKey {
|
|
20
20
|
publicKey;
|
|
21
21
|
constructor(properties) {
|
|
@@ -37,18 +37,18 @@ let X25519PublicKey = X25519PublicKey_1 = class X25519PublicKey extends PublicKe
|
|
|
37
37
|
static async from(ed25119PublicKey) {
|
|
38
38
|
await sodium.ready;
|
|
39
39
|
return new X25519PublicKey_1({
|
|
40
|
-
publicKey: sodium.crypto_sign_ed25519_pk_to_curve25519(ed25119PublicKey.publicKey)
|
|
40
|
+
publicKey: sodium.crypto_sign_ed25519_pk_to_curve25519(ed25119PublicKey.publicKey),
|
|
41
41
|
});
|
|
42
42
|
}
|
|
43
43
|
static async fromPeerId(peerId) {
|
|
44
44
|
await sodium.ready;
|
|
45
|
-
const ed =
|
|
45
|
+
const ed = Ed25519PublicKey.fromPeerId(peerId);
|
|
46
46
|
return X25519PublicKey_1.from(ed);
|
|
47
47
|
}
|
|
48
48
|
static async create() {
|
|
49
49
|
await sodium.ready;
|
|
50
50
|
return new X25519PublicKey_1({
|
|
51
|
-
publicKey: sodium.crypto_box_keypair().publicKey
|
|
51
|
+
publicKey: sodium.crypto_box_keypair().publicKey,
|
|
52
52
|
});
|
|
53
53
|
}
|
|
54
54
|
};
|
|
@@ -72,7 +72,7 @@ let X25519SecretKey = X25519SecretKey_1 = class X25519SecretKey extends PrivateE
|
|
|
72
72
|
}
|
|
73
73
|
equals(other) {
|
|
74
74
|
if (other instanceof X25519SecretKey_1) {
|
|
75
|
-
return
|
|
75
|
+
return compare(this.secretKey, other.secretKey) === 0;
|
|
76
76
|
}
|
|
77
77
|
return false;
|
|
78
78
|
}
|
|
@@ -81,19 +81,19 @@ let X25519SecretKey = X25519SecretKey_1 = class X25519SecretKey extends PrivateE
|
|
|
81
81
|
}
|
|
82
82
|
async publicKey() {
|
|
83
83
|
return new X25519PublicKey({
|
|
84
|
-
publicKey: sodium.crypto_scalarmult_base(this.secretKey)
|
|
84
|
+
publicKey: sodium.crypto_scalarmult_base(this.secretKey),
|
|
85
85
|
});
|
|
86
86
|
}
|
|
87
87
|
static async from(ed25119Keypair) {
|
|
88
88
|
await sodium.ready;
|
|
89
89
|
return new X25519SecretKey_1({
|
|
90
|
-
secretKey: sodium.crypto_sign_ed25519_sk_to_curve25519(ed25119Keypair.privateKeyPublicKey)
|
|
90
|
+
secretKey: sodium.crypto_sign_ed25519_sk_to_curve25519(ed25119Keypair.privateKeyPublicKey),
|
|
91
91
|
});
|
|
92
92
|
}
|
|
93
93
|
static async create() {
|
|
94
94
|
await sodium.ready;
|
|
95
95
|
return new X25519SecretKey_1({
|
|
96
|
-
secretKey: sodium.crypto_box_keypair().privateKey
|
|
96
|
+
secretKey: sodium.crypto_box_keypair().privateKey,
|
|
97
97
|
});
|
|
98
98
|
}
|
|
99
99
|
};
|
|
@@ -119,18 +119,18 @@ let X25519Keypair = X25519Keypair_1 = class X25519Keypair extends Keypair {
|
|
|
119
119
|
const generated = sodium.crypto_box_keypair();
|
|
120
120
|
const kp = new X25519Keypair_1({
|
|
121
121
|
publicKey: new X25519PublicKey({
|
|
122
|
-
publicKey: generated.publicKey
|
|
122
|
+
publicKey: generated.publicKey,
|
|
123
123
|
}),
|
|
124
124
|
secretKey: new X25519SecretKey({
|
|
125
|
-
secretKey: generated.privateKey
|
|
126
|
-
})
|
|
125
|
+
secretKey: generated.privateKey,
|
|
126
|
+
}),
|
|
127
127
|
});
|
|
128
128
|
return kp;
|
|
129
129
|
}
|
|
130
130
|
static async from(ed25119Keypair) {
|
|
131
131
|
const kp = new X25519Keypair_1({
|
|
132
132
|
publicKey: await X25519PublicKey.from(ed25119Keypair.publicKey),
|
|
133
|
-
secretKey: await X25519SecretKey.from(ed25119Keypair)
|
|
133
|
+
secretKey: await X25519SecretKey.from(ed25119Keypair),
|
|
134
134
|
});
|
|
135
135
|
return kp;
|
|
136
136
|
}
|
package/dist/src/x25519.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../src/x25519.ts"],"names":[],"mappings":";;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../src/x25519.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@peerbit/crypto",
|
|
3
|
-
"version": "2.
|
|
3
|
+
"version": "2.3.0-3a75d6e",
|
|
4
4
|
"description": "Crypto fn",
|
|
5
5
|
"sideEffects": false,
|
|
6
6
|
"type": "module",
|
|
@@ -34,7 +34,7 @@
|
|
|
34
34
|
}
|
|
35
35
|
},
|
|
36
36
|
"eslintConfig": {
|
|
37
|
-
"extends": "
|
|
37
|
+
"extends": "peerbit",
|
|
38
38
|
"parserOptions": {
|
|
39
39
|
"project": true,
|
|
40
40
|
"sourceType": "module"
|
|
@@ -56,22 +56,24 @@
|
|
|
56
56
|
"scripts": {
|
|
57
57
|
"clean": "aegir clean",
|
|
58
58
|
"build": "aegir build --no-bundle",
|
|
59
|
-
"test": "aegir test"
|
|
59
|
+
"test": "aegir test",
|
|
60
|
+
"lint": "aegir lint"
|
|
60
61
|
},
|
|
61
62
|
"author": "dao.xyz",
|
|
62
63
|
"license": "MIT",
|
|
63
64
|
"devDependencies": {
|
|
64
65
|
"@types/libsodium-wrappers": "^0.7.10",
|
|
65
66
|
"uint8arrays": "^4.0.4",
|
|
66
|
-
"@types/elliptic": "^6.4.18"
|
|
67
|
+
"@types/elliptic": "^6.4.18",
|
|
68
|
+
"multiformats": "^13.1.0"
|
|
67
69
|
},
|
|
68
70
|
"dependencies": {
|
|
69
|
-
"@peerbit/cache": "2.0
|
|
70
|
-
"@dao-xyz/borsh": "^5.2.
|
|
71
|
-
"@stablelib/sha256": "^
|
|
71
|
+
"@peerbit/cache": "2.1.0-3a75d6e",
|
|
72
|
+
"@dao-xyz/borsh": "^5.2.3",
|
|
73
|
+
"@stablelib/sha256": "^2.0.0",
|
|
72
74
|
"@ethersproject/wallet": "^5.7.0",
|
|
73
|
-
"@libp2p/crypto": "^
|
|
74
|
-
"@libp2p/peer-id": "^4.0
|
|
75
|
+
"@libp2p/crypto": "^4.1.5",
|
|
76
|
+
"@libp2p/peer-id": "^4.2.0",
|
|
75
77
|
"libsodium-wrappers": "^0.7.13"
|
|
76
78
|
}
|
|
77
79
|
}
|
|
@@ -1,12 +1,12 @@
|
|
|
1
|
-
import { Ed25519Keypair, Ed25519PublicKey } from "./ed25519.js";
|
|
2
1
|
import sodium from "libsodium-wrappers";
|
|
3
|
-
import {
|
|
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) {
|
package/src/ed25519-sign.ts
CHANGED
|
@@ -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;
|