@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.
- package/dist/benchmark/hash.d.ts +2 -0
- package/dist/benchmark/hash.d.ts.map +1 -0
- package/dist/benchmark/hash.js +69 -0
- package/dist/benchmark/hash.js.map +1 -0
- package/dist/benchmark/index.d.ts +2 -0
- package/dist/benchmark/index.d.ts.map +1 -0
- package/dist/benchmark/index.js +64 -0
- package/dist/benchmark/index.js.map +1 -0
- package/dist/benchmark/peer-ids.d.ts +2 -0
- package/dist/benchmark/peer-ids.d.ts.map +1 -0
- package/dist/benchmark/peer-ids.js +29 -0
- package/dist/benchmark/peer-ids.js.map +1 -0
- package/{lib/esm → dist/src}/bytes.d.ts +1 -0
- package/dist/src/bytes.d.ts.map +1 -0
- package/{lib/esm → dist/src}/bytes.js.map +1 -1
- package/{lib/esm/ed25519-sign-browser.d.ts → dist/src/ed25519-sign.browser.d.ts} +3 -2
- package/dist/src/ed25519-sign.browser.d.ts.map +1 -0
- package/{lib/esm/ed25519-sign-browser.js → dist/src/ed25519-sign.browser.js} +2 -2
- package/dist/src/ed25519-sign.browser.js.map +1 -0
- package/{lib/esm → dist/src}/ed25519-sign.d.ts +3 -2
- package/dist/src/ed25519-sign.d.ts.map +1 -0
- package/{lib/esm → dist/src}/ed25519-sign.js +8 -7
- package/dist/src/ed25519-sign.js.map +1 -0
- package/{lib/esm → dist/src}/ed25519.d.ts +4 -3
- package/dist/src/ed25519.d.ts.map +1 -0
- package/{lib/esm → dist/src}/ed25519.js +14 -13
- package/dist/src/ed25519.js.map +1 -0
- package/{lib/esm → dist/src}/encryption.d.ts +15 -11
- package/dist/src/encryption.d.ts.map +1 -0
- package/{lib/esm → dist/src}/encryption.js +33 -35
- package/dist/src/encryption.js.map +1 -0
- package/{lib/esm → dist/src}/errors.d.ts +1 -1
- package/dist/src/errors.d.ts.map +1 -0
- package/dist/src/errors.js +3 -0
- package/{lib/esm → dist/src}/errors.js.map +1 -1
- package/{lib/esm/hash-browser.d.ts → dist/src/hash.browser.d.ts} +1 -0
- package/dist/src/hash.browser.d.ts.map +1 -0
- package/{lib/esm/hash-browser.js → dist/src/hash.browser.js} +2 -2
- package/{lib/esm/hash-browser.js.map → dist/src/hash.browser.js.map} +1 -1
- package/{lib/esm → dist/src}/hash.d.ts +1 -0
- package/dist/src/hash.d.ts.map +1 -0
- package/{lib/esm → dist/src}/index.d.ts +1 -0
- package/dist/src/index.d.ts.map +1 -0
- package/{lib/esm → dist/src}/index.js +1 -1
- package/dist/src/index.js.map +1 -0
- package/{lib/esm → dist/src}/key.d.ts +2 -1
- package/dist/src/key.d.ts.map +1 -0
- package/{lib/esm → dist/src}/key.js +3 -2
- package/dist/src/key.js.map +1 -0
- package/{lib/esm → dist/src}/peerid.d.ts +2 -1
- package/dist/src/peerid.d.ts.map +1 -0
- package/{lib/esm → dist/src}/peerid.js +1 -0
- package/dist/src/peerid.js.map +1 -0
- package/{lib/esm → dist/src}/prehash.d.ts +1 -0
- package/dist/src/prehash.d.ts.map +1 -0
- package/{lib/esm → dist/src}/prehash.js +4 -4
- package/{lib/esm → dist/src}/prehash.js.map +1 -1
- package/{lib/esm/random-browser.d.ts → dist/src/random.browser.d.ts} +1 -0
- package/dist/src/random.browser.d.ts.map +1 -0
- package/{lib/esm/random-browser.js → dist/src/random.browser.js} +1 -1
- package/dist/src/random.browser.js.map +1 -0
- package/{lib/esm → dist/src}/random.d.ts +1 -1
- package/dist/src/random.d.ts.map +1 -0
- package/{lib/esm → dist/src}/random.js.map +1 -1
- package/{lib/esm → dist/src}/sepc256k1.d.ts +6 -5
- package/dist/src/sepc256k1.d.ts.map +1 -0
- package/{lib/esm → dist/src}/sepc256k1.js +19 -19
- package/dist/src/sepc256k1.js.map +1 -0
- package/{lib/esm → dist/src}/signature.d.ts +4 -7
- package/dist/src/signature.d.ts.map +1 -0
- package/dist/src/signature.js +113 -0
- package/dist/src/signature.js.map +1 -0
- package/{lib/esm → dist/src}/signer.d.ts +4 -3
- package/dist/src/signer.d.ts.map +1 -0
- package/{lib/esm → dist/src}/utils.d.ts +2 -0
- package/dist/src/utils.d.ts.map +1 -0
- package/{lib/esm → dist/src}/utils.js +4 -0
- package/dist/src/utils.js.map +1 -0
- package/{lib/esm → dist/src}/x25519.d.ts +4 -3
- package/dist/src/x25519.d.ts.map +1 -0
- package/{lib/esm → dist/src}/x25519.js +15 -14
- package/dist/src/x25519.js.map +1 -0
- package/package.json +77 -54
- package/src/bytes.ts +1 -1
- package/src/{ed25519-sign-browser.ts → ed25519-sign.browser.ts} +7 -7
- package/src/ed25519-sign.ts +11 -11
- package/src/ed25519.ts +21 -21
- package/src/encryption.ts +69 -68
- package/src/errors.ts +1 -5
- package/src/{hash-browser.ts → hash.browser.ts} +2 -1
- package/src/index.ts +3 -1
- package/src/key.ts +6 -5
- package/src/peerid.ts +3 -3
- package/src/prehash.ts +8 -8
- package/src/random.ts +1 -0
- package/src/sepc256k1.ts +39 -37
- package/src/signature.ts +16 -190
- package/src/signer.ts +5 -5
- package/src/utils.ts +6 -0
- package/src/x25519.ts +26 -28
- package/LICENSE +0 -202
- package/lib/esm/ed25519-sign-browser.js.map +0 -1
- package/lib/esm/ed25519-sign.js.map +0 -1
- package/lib/esm/ed25519.js.map +0 -1
- package/lib/esm/encryption.js.map +0 -1
- package/lib/esm/errors.js +0 -6
- package/lib/esm/index.js.map +0 -1
- package/lib/esm/key.js.map +0 -1
- package/lib/esm/peerid.js.map +0 -1
- package/lib/esm/random-browser.js.map +0 -1
- package/lib/esm/sepc256k1.js.map +0 -1
- package/lib/esm/signature.js +0 -285
- package/lib/esm/signature.js.map +0 -1
- package/lib/esm/utils.js.map +0 -1
- package/lib/esm/x25519.js.map +0 -1
- /package/{lib/esm → dist/src}/bytes.js +0 -0
- /package/{lib/esm → dist/src}/hash.js +0 -0
- /package/{lib/esm → dist/src}/hash.js.map +0 -0
- /package/{lib/esm → dist/src}/random.js +0 -0
- /package/{lib/esm → dist/src}/signer.js +0 -0
- /package/{lib/esm → dist/src}/signer.js.map +0 -0
- /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
|
-
|
|
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 {
|
|
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 {
|
|
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
|
+
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 =
|
|
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
|
|
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
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
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 {
|
|
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;
|