@libp2p/crypto 5.1.4 → 5.1.5
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/index.min.js +1 -1
- package/dist/index.min.js.map +4 -4
- package/dist/src/keys/ecdsa/ecdsa.d.ts +3 -3
- package/dist/src/keys/ecdsa/ecdsa.d.ts.map +1 -1
- package/dist/src/keys/ecdsa/ecdsa.js +4 -4
- package/dist/src/keys/ecdsa/ecdsa.js.map +1 -1
- package/dist/src/keys/ecdsa/index.d.ts +3 -2
- package/dist/src/keys/ecdsa/index.d.ts.map +1 -1
- package/dist/src/keys/ecdsa/index.js +8 -3
- package/dist/src/keys/ecdsa/index.js.map +1 -1
- package/dist/src/keys/ed25519/ed25519.d.ts +3 -3
- package/dist/src/keys/ed25519/ed25519.d.ts.map +1 -1
- package/dist/src/keys/ed25519/ed25519.js +22 -4
- package/dist/src/keys/ed25519/ed25519.js.map +1 -1
- package/dist/src/keys/ed25519/index.browser.d.ts +2 -5
- package/dist/src/keys/ed25519/index.browser.d.ts.map +1 -1
- package/dist/src/keys/ed25519/index.browser.js +61 -5
- package/dist/src/keys/ed25519/index.browser.js.map +1 -1
- package/dist/src/keys/ed25519/index.d.ts +1 -1
- package/dist/src/keys/ed25519/index.d.ts.map +1 -1
- package/dist/src/keys/rsa/index.browser.d.ts +4 -3
- package/dist/src/keys/rsa/index.browser.d.ts.map +1 -1
- package/dist/src/keys/rsa/index.browser.js +15 -7
- package/dist/src/keys/rsa/index.browser.js.map +1 -1
- package/dist/src/keys/rsa/index.d.ts +4 -3
- package/dist/src/keys/rsa/index.d.ts.map +1 -1
- package/dist/src/keys/rsa/index.js +8 -5
- package/dist/src/keys/rsa/index.js.map +1 -1
- package/dist/src/keys/rsa/rsa.d.ts +3 -3
- package/dist/src/keys/rsa/rsa.d.ts.map +1 -1
- package/dist/src/keys/rsa/rsa.js +4 -4
- package/dist/src/keys/rsa/rsa.js.map +1 -1
- package/dist/src/keys/secp256k1/index.browser.d.ts +3 -2
- package/dist/src/keys/secp256k1/index.browser.d.ts.map +1 -1
- package/dist/src/keys/secp256k1/index.browser.js +19 -4
- package/dist/src/keys/secp256k1/index.browser.js.map +1 -1
- package/dist/src/keys/secp256k1/index.d.ts +3 -2
- package/dist/src/keys/secp256k1/index.d.ts.map +1 -1
- package/dist/src/keys/secp256k1/index.js +4 -2
- package/dist/src/keys/secp256k1/index.js.map +1 -1
- package/dist/src/keys/secp256k1/secp256k1.d.ts +3 -3
- package/dist/src/keys/secp256k1/secp256k1.d.ts.map +1 -1
- package/dist/src/keys/secp256k1/secp256k1.js +4 -4
- package/dist/src/keys/secp256k1/secp256k1.js.map +1 -1
- package/package.json +5 -5
- package/src/keys/ecdsa/ecdsa.ts +5 -5
- package/src/keys/ecdsa/index.ts +10 -3
- package/src/keys/ed25519/ed25519.ts +27 -5
- package/src/keys/ed25519/index.browser.ts +72 -5
- package/src/keys/ed25519/index.ts +1 -1
- package/src/keys/rsa/index.browser.ts +18 -7
- package/src/keys/rsa/index.ts +11 -5
- package/src/keys/rsa/rsa.ts +5 -5
- package/src/keys/secp256k1/index.browser.ts +22 -4
- package/src/keys/secp256k1/index.ts +6 -2
- package/src/keys/secp256k1/secp256k1.ts +5 -5
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid';
|
|
2
|
-
import type { ECDSAPublicKey as ECDSAPublicKeyInterface, ECDSAPrivateKey as ECDSAPrivateKeyInterface } from '@libp2p/interface';
|
|
2
|
+
import type { ECDSAPublicKey as ECDSAPublicKeyInterface, ECDSAPrivateKey as ECDSAPrivateKeyInterface, AbortOptions } from '@libp2p/interface';
|
|
3
3
|
import type { Digest } from 'multiformats/hashes/digest';
|
|
4
4
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
5
5
|
export declare class ECDSAPublicKey implements ECDSAPublicKeyInterface {
|
|
@@ -12,7 +12,7 @@ export declare class ECDSAPublicKey implements ECDSAPublicKeyInterface {
|
|
|
12
12
|
toCID(): CID<unknown, 114, 0x0, 1>;
|
|
13
13
|
toString(): string;
|
|
14
14
|
equals(key?: any): boolean;
|
|
15
|
-
verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array): Promise<boolean>;
|
|
15
|
+
verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array, options?: AbortOptions): Promise<boolean>;
|
|
16
16
|
}
|
|
17
17
|
export declare class ECDSAPrivateKey implements ECDSAPrivateKeyInterface {
|
|
18
18
|
readonly type = "ECDSA";
|
|
@@ -22,6 +22,6 @@ export declare class ECDSAPrivateKey implements ECDSAPrivateKeyInterface {
|
|
|
22
22
|
constructor(jwk: JsonWebKey);
|
|
23
23
|
get raw(): Uint8Array;
|
|
24
24
|
equals(key?: any): boolean;
|
|
25
|
-
sign(message: Uint8Array | Uint8ArrayList): Promise<Uint8Array>;
|
|
25
|
+
sign(message: Uint8Array | Uint8ArrayList, options?: AbortOptions): Promise<Uint8Array>;
|
|
26
26
|
}
|
|
27
27
|
//# sourceMappingURL=ecdsa.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../src/keys/ecdsa/ecdsa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAMtC,OAAO,KAAK,EAAE,cAAc,IAAI,uBAAuB,EAAE,eAAe,IAAI,wBAAwB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"ecdsa.d.ts","sourceRoot":"","sources":["../../../../src/keys/ecdsa/ecdsa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAMtC,OAAO,KAAK,EAAE,cAAc,IAAI,uBAAuB,EAAE,eAAe,IAAI,wBAAwB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AAC7I,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,qBAAa,cAAe,YAAW,uBAAuB;IAC5D,SAAgB,IAAI,WAAU;IAC9B,SAAgB,GAAG,EAAE,UAAU,CAAA;IAC/B,OAAO,CAAC,IAAI,CAAC,CAAY;gBAEZ,GAAG,EAAE,UAAU;IAI5B,IAAI,GAAG,IAAK,UAAU,CAMrB;IAED,WAAW,IAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;IAInC,KAAK,IAAK,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAInC,QAAQ,IAAK,MAAM;IAInB,MAAM,CAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO;IAQrB,MAAM,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC;CAG5G;AAED,qBAAa,eAAgB,YAAW,wBAAwB;IAC9D,SAAgB,IAAI,WAAU;IAC9B,SAAgB,GAAG,EAAE,UAAU,CAAA;IAC/B,SAAgB,SAAS,EAAE,cAAc,CAAA;IACzC,OAAO,CAAC,IAAI,CAAC,CAAY;gBAEZ,GAAG,EAAE,UAAU;IAY5B,IAAI,GAAG,IAAK,UAAU,CAMrB;IAED,MAAM,CAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO;IAQrB,IAAI,CAAE,OAAO,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC;CAG/F"}
|
|
@@ -33,8 +33,8 @@ export class ECDSAPublicKey {
|
|
|
33
33
|
}
|
|
34
34
|
return uint8ArrayEquals(this.raw, key.raw);
|
|
35
35
|
}
|
|
36
|
-
async verify(data, sig) {
|
|
37
|
-
return hashAndVerify(this.jwk, sig, data);
|
|
36
|
+
async verify(data, sig, options) {
|
|
37
|
+
return hashAndVerify(this.jwk, sig, data, options);
|
|
38
38
|
}
|
|
39
39
|
}
|
|
40
40
|
export class ECDSAPrivateKey {
|
|
@@ -65,8 +65,8 @@ export class ECDSAPrivateKey {
|
|
|
65
65
|
}
|
|
66
66
|
return uint8ArrayEquals(this.raw, key.raw);
|
|
67
67
|
}
|
|
68
|
-
async sign(message) {
|
|
69
|
-
return hashAndSign(this.jwk, message);
|
|
68
|
+
async sign(message, options) {
|
|
69
|
+
return hashAndSign(this.jwk, message, options);
|
|
70
70
|
}
|
|
71
71
|
}
|
|
72
72
|
//# sourceMappingURL=ecdsa.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../../../src/keys/ecdsa/ecdsa.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,sBAAsB,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAA;AAC1E,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAKvD,MAAM,OAAO,cAAc;IACT,IAAI,GAAG,OAAO,CAAA;IACd,GAAG,CAAY;IACvB,IAAI,CAAa;IAEzB,YAAa,GAAe;QAC1B,IAAI,CAAC,GAAG,GAAG,GAAG,CAAA;IAChB,CAAC;IAED,IAAI,GAAG;QACL,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA;QAC7C,CAAC;QAED,OAAO,IAAI,CAAC,IAAI,CAAA;IAClB,CAAC;IAED,WAAW;QACT,OAAO,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,KAAK;QACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,CAAE,GAAS;QACf,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,UAAU,CAAC,EAAE,CAAC;YACpD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,KAAK,CAAC,MAAM,CAAE,IAAiC,EAAE,GAAe;
|
|
1
|
+
{"version":3,"file":"ecdsa.js","sourceRoot":"","sources":["../../../../src/keys/ecdsa/ecdsa.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,10 +1,11 @@
|
|
|
1
1
|
import type { JWKKeyPair } from '../interface.js';
|
|
2
|
+
import type { AbortOptions } from '@libp2p/interface';
|
|
2
3
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
3
4
|
export type Curve = 'P-256' | 'P-384' | 'P-521';
|
|
4
5
|
export declare const ECDSA_P_256_OID = "1.2.840.10045.3.1.7";
|
|
5
6
|
export declare const ECDSA_P_384_OID = "1.3.132.0.34";
|
|
6
7
|
export declare const ECDSA_P_521_OID = "1.3.132.0.35";
|
|
7
8
|
export declare function generateECDSAKey(curve?: Curve): Promise<JWKKeyPair>;
|
|
8
|
-
export declare function hashAndSign(key: JsonWebKey, msg: Uint8Array | Uint8ArrayList): Promise<Uint8Array>;
|
|
9
|
-
export declare function hashAndVerify(key: JsonWebKey, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): Promise<boolean>;
|
|
9
|
+
export declare function hashAndSign(key: JsonWebKey, msg: Uint8Array | Uint8ArrayList, options?: AbortOptions): Promise<Uint8Array>;
|
|
10
|
+
export declare function hashAndVerify(key: JsonWebKey, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList, options?: AbortOptions): Promise<boolean>;
|
|
10
11
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/keys/ecdsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAE/C,eAAO,MAAM,eAAe,wBAAwB,CAAA;AACpD,eAAO,MAAM,eAAe,iBAAiB,CAAA;AAC7C,eAAO,MAAM,eAAe,iBAAiB,CAAA;AAE7C,wBAAsB,gBAAgB,CAAE,KAAK,GAAE,KAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAUnF;AAED,wBAAsB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/keys/ecdsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,MAAM,MAAM,KAAK,GAAG,OAAO,GAAG,OAAO,GAAG,OAAO,CAAA;AAE/C,eAAO,MAAM,eAAe,wBAAwB,CAAA;AACpD,eAAO,MAAM,eAAe,iBAAiB,CAAA;AAC7C,eAAO,MAAM,eAAe,iBAAiB,CAAA;AAE7C,wBAAsB,gBAAgB,CAAE,KAAK,GAAE,KAAe,GAAG,OAAO,CAAC,UAAU,CAAC,CAUnF;AAED,wBAAsB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBjI;AAED,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAgBjJ"}
|
|
@@ -11,29 +11,34 @@ export async function generateECDSAKey(curve = 'P-256') {
|
|
|
11
11
|
privateKey: await crypto.subtle.exportKey('jwk', keyPair.privateKey)
|
|
12
12
|
};
|
|
13
13
|
}
|
|
14
|
-
export async function hashAndSign(key, msg) {
|
|
14
|
+
export async function hashAndSign(key, msg, options) {
|
|
15
15
|
const privateKey = await crypto.subtle.importKey('jwk', key, {
|
|
16
16
|
name: 'ECDSA',
|
|
17
17
|
namedCurve: key.crv ?? 'P-256'
|
|
18
18
|
}, false, ['sign']);
|
|
19
|
+
options?.signal?.throwIfAborted();
|
|
19
20
|
const signature = await crypto.subtle.sign({
|
|
20
21
|
name: 'ECDSA',
|
|
21
22
|
hash: {
|
|
22
23
|
name: 'SHA-256'
|
|
23
24
|
}
|
|
24
25
|
}, privateKey, msg.subarray());
|
|
26
|
+
options?.signal?.throwIfAborted();
|
|
25
27
|
return new Uint8Array(signature, 0, signature.byteLength);
|
|
26
28
|
}
|
|
27
|
-
export async function hashAndVerify(key, sig, msg) {
|
|
29
|
+
export async function hashAndVerify(key, sig, msg, options) {
|
|
28
30
|
const publicKey = await crypto.subtle.importKey('jwk', key, {
|
|
29
31
|
name: 'ECDSA',
|
|
30
32
|
namedCurve: key.crv ?? 'P-256'
|
|
31
33
|
}, false, ['verify']);
|
|
32
|
-
|
|
34
|
+
options?.signal?.throwIfAborted();
|
|
35
|
+
const result = await crypto.subtle.verify({
|
|
33
36
|
name: 'ECDSA',
|
|
34
37
|
hash: {
|
|
35
38
|
name: 'SHA-256'
|
|
36
39
|
}
|
|
37
40
|
}, publicKey, sig, msg.subarray());
|
|
41
|
+
options?.signal?.throwIfAborted();
|
|
42
|
+
return result;
|
|
38
43
|
}
|
|
39
44
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/keys/ecdsa/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/keys/ecdsa/index.ts"],"names":[],"mappings":"AAMA,MAAM,CAAC,MAAM,eAAe,GAAG,qBAAqB,CAAA;AACpD,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAA;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,cAAc,CAAA;AAE7C,MAAM,CAAC,KAAK,UAAU,gBAAgB,CAAE,QAAe,OAAO;IAC5D,MAAM,OAAO,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC;QAC9C,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,KAAK;KAClB,EAAE,IAAI,EAAE,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,CAAA;IAE5B,OAAO;QACL,SAAS,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,SAAS,CAAC;QAClE,UAAU,EAAE,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC;KACrE,CAAA;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,GAAe,EAAE,GAAgC,EAAE,OAAsB;IAC1G,MAAM,UAAU,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE;QAC3D,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,GAAG,CAAC,GAAG,IAAI,OAAO;KAC/B,EAAE,KAAK,EAAE,CAAC,MAAM,CAAC,CAAC,CAAA;IACnB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;IAEjC,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC;QACzC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;SAChB;KACF,EAAE,UAAU,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IAC9B,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;IAEjC,OAAO,IAAI,UAAU,CAAC,SAAS,EAAE,CAAC,EAAE,SAAS,CAAC,UAAU,CAAC,CAAA;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAE,GAAe,EAAE,GAAe,EAAE,GAAgC,EAAE,OAAsB;IAC7H,MAAM,SAAS,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,EAAE;QAC1D,IAAI,EAAE,OAAO;QACb,UAAU,EAAE,GAAG,CAAC,GAAG,IAAI,OAAO;KAC/B,EAAE,KAAK,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAA;IACrB,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;IAEjC,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;QACxC,IAAI,EAAE,OAAO;QACb,IAAI,EAAE;YACJ,IAAI,EAAE,SAAS;SAChB;KACF,EAAE,SAAS,EAAE,GAAG,EAAE,GAAG,CAAC,QAAQ,EAAE,CAAC,CAAA;IAClC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;IAEjC,OAAO,MAAM,CAAA;AACf,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid';
|
|
2
|
-
import type { Ed25519PublicKey as Ed25519PublicKeyInterface, Ed25519PrivateKey as Ed25519PrivateKeyInterface } from '@libp2p/interface';
|
|
2
|
+
import type { Ed25519PublicKey as Ed25519PublicKeyInterface, Ed25519PrivateKey as Ed25519PrivateKeyInterface, AbortOptions } from '@libp2p/interface';
|
|
3
3
|
import type { Digest } from 'multiformats/hashes/digest';
|
|
4
4
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
5
5
|
export declare class Ed25519PublicKey implements Ed25519PublicKeyInterface {
|
|
@@ -10,7 +10,7 @@ export declare class Ed25519PublicKey implements Ed25519PublicKeyInterface {
|
|
|
10
10
|
toCID(): CID<unknown, 114, 0x0, 1>;
|
|
11
11
|
toString(): string;
|
|
12
12
|
equals(key?: any): boolean;
|
|
13
|
-
verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array): boolean
|
|
13
|
+
verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array, options?: AbortOptions): boolean | Promise<boolean>;
|
|
14
14
|
}
|
|
15
15
|
export declare class Ed25519PrivateKey implements Ed25519PrivateKeyInterface {
|
|
16
16
|
readonly type = "Ed25519";
|
|
@@ -18,6 +18,6 @@ export declare class Ed25519PrivateKey implements Ed25519PrivateKeyInterface {
|
|
|
18
18
|
readonly publicKey: Ed25519PublicKey;
|
|
19
19
|
constructor(key: Uint8Array, publicKey: Uint8Array);
|
|
20
20
|
equals(key?: any): boolean;
|
|
21
|
-
sign(message: Uint8Array | Uint8ArrayList): Uint8Array
|
|
21
|
+
sign(message: Uint8Array | Uint8ArrayList, options?: AbortOptions): Uint8Array | Promise<Uint8Array>;
|
|
22
22
|
}
|
|
23
23
|
//# sourceMappingURL=ed25519.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../../../src/keys/ed25519/ed25519.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;
|
|
1
|
+
{"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../../../src/keys/ed25519/ed25519.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAOtC,OAAO,KAAK,EAAE,gBAAgB,IAAI,yBAAyB,EAAE,iBAAiB,IAAI,0BAA0B,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrJ,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,qBAAa,gBAAiB,YAAW,yBAAyB;IAChE,SAAgB,IAAI,aAAY;IAChC,SAAgB,GAAG,EAAE,UAAU,CAAA;gBAElB,GAAG,EAAE,UAAU;IAI5B,WAAW,IAAK,MAAM,CAAC,GAAG,EAAE,MAAM,CAAC;IAInC,KAAK,IAAK,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,CAAC;IAInC,QAAQ,IAAK,MAAM;IAInB,MAAM,CAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO;IAQ3B,MAAM,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAahH;AAED,qBAAa,iBAAkB,YAAW,0BAA0B;IAClE,SAAgB,IAAI,aAAY;IAChC,SAAgB,GAAG,EAAE,UAAU,CAAA;IAC/B,SAAgB,SAAS,EAAE,gBAAgB,CAAA;gBAI9B,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU;IAKnD,MAAM,CAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO;IAQ3B,IAAI,CAAE,OAAO,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CActG"}
|
|
@@ -2,6 +2,7 @@ import { base58btc } from 'multiformats/bases/base58';
|
|
|
2
2
|
import { CID } from 'multiformats/cid';
|
|
3
3
|
import { identity } from 'multiformats/hashes/identity';
|
|
4
4
|
import { equals as uint8ArrayEquals } from 'uint8arrays/equals';
|
|
5
|
+
import { isPromise } from "../../util.js";
|
|
5
6
|
import { publicKeyToProtobuf } from '../index.js';
|
|
6
7
|
import { ensureEd25519Key } from './utils.js';
|
|
7
8
|
import * as crypto from './index.js';
|
|
@@ -26,8 +27,16 @@ export class Ed25519PublicKey {
|
|
|
26
27
|
}
|
|
27
28
|
return uint8ArrayEquals(this.raw, key.raw);
|
|
28
29
|
}
|
|
29
|
-
verify(data, sig) {
|
|
30
|
-
|
|
30
|
+
verify(data, sig, options) {
|
|
31
|
+
options?.signal?.throwIfAborted();
|
|
32
|
+
const result = crypto.hashAndVerify(this.raw, sig, data);
|
|
33
|
+
if (isPromise(result)) {
|
|
34
|
+
return result.then(res => {
|
|
35
|
+
options?.signal?.throwIfAborted();
|
|
36
|
+
return res;
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
return result;
|
|
31
40
|
}
|
|
32
41
|
}
|
|
33
42
|
export class Ed25519PrivateKey {
|
|
@@ -46,8 +55,17 @@ export class Ed25519PrivateKey {
|
|
|
46
55
|
}
|
|
47
56
|
return uint8ArrayEquals(this.raw, key.raw);
|
|
48
57
|
}
|
|
49
|
-
sign(message) {
|
|
50
|
-
|
|
58
|
+
sign(message, options) {
|
|
59
|
+
options?.signal?.throwIfAborted();
|
|
60
|
+
const sig = crypto.hashAndSign(this.raw, message);
|
|
61
|
+
if (isPromise(sig)) {
|
|
62
|
+
return sig.then(res => {
|
|
63
|
+
options?.signal?.throwIfAborted();
|
|
64
|
+
return res;
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
options?.signal?.throwIfAborted();
|
|
68
|
+
return sig;
|
|
51
69
|
}
|
|
52
70
|
}
|
|
53
71
|
//# sourceMappingURL=ed25519.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ed25519.js","sourceRoot":"","sources":["../../../../src/keys/ed25519/ed25519.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAA;AACrD,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AACtC,OAAO,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAA;AACvD,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAA;AACjD,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAA;AAC7C,OAAO,KAAK,MAAM,MAAM,YAAY,CAAA;AAKpC,MAAM,OAAO,gBAAgB;IACX,IAAI,GAAG,SAAS,CAAA;IAChB,GAAG,CAAY;IAE/B,YAAa,GAAe;QAC1B,IAAI,CAAC,GAAG,GAAG,gBAAgB,CAAC,GAAG,EAAE,MAAM,CAAC,eAAe,CAAC,CAAA;IAC1D,CAAC;IAED,WAAW;QACT,OAAO,QAAQ,CAAC,MAAM,CAAC,mBAAmB,CAAC,IAAI,CAAC,CAAC,CAAA;IACnD,CAAC;IAED,KAAK;QACH,OAAO,GAAG,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,WAAW,EAAE,CAAC,CAAA;IAC9C,CAAC;IAED,QAAQ;QACN,OAAO,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC,KAAK,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;IAChE,CAAC;IAED,MAAM,CAAE,GAAS;QACf,IAAI,GAAG,IAAI,IAAI,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,YAAY,UAAU,CAAC,EAAE,CAAC;YACpD,OAAO,KAAK,CAAA;QACd,CAAC;QAED,OAAO,gBAAgB,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,CAAC,GAAG,CAAC,CAAA;IAC5C,CAAC;IAED,MAAM,CAAE,IAAiC,EAAE,GAAe;
|
|
1
|
+
{"version":3,"file":"ed25519.js","sourceRoot":"","sources":["../../../../src/keys/ed25519/ed25519.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,10 +5,7 @@ declare const PRIVATE_KEY_BYTE_LENGTH = 64;
|
|
|
5
5
|
export { PUBLIC_KEY_BYTE_LENGTH as publicKeyLength };
|
|
6
6
|
export { PRIVATE_KEY_BYTE_LENGTH as privateKeyLength };
|
|
7
7
|
export declare function generateKey(): Uint8ArrayKeyPair;
|
|
8
|
-
/**
|
|
9
|
-
* Generate keypair from a 32 byte uint8array
|
|
10
|
-
*/
|
|
11
8
|
export declare function generateKeyFromSeed(seed: Uint8Array): Uint8ArrayKeyPair;
|
|
12
|
-
export declare function hashAndSign(privateKey: Uint8Array, msg: Uint8Array | Uint8ArrayList): Uint8Array
|
|
13
|
-
export declare function hashAndVerify(publicKey: Uint8Array, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): boolean
|
|
9
|
+
export declare function hashAndSign(privateKey: Uint8Array, msg: Uint8Array | Uint8ArrayList): Promise<Uint8Array>;
|
|
10
|
+
export declare function hashAndVerify(publicKey: Uint8Array, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): Promise<boolean>;
|
|
14
11
|
//# sourceMappingURL=index.browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../../../src/keys/ed25519/index.browser.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../../../src/keys/ed25519/index.browser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,QAAA,MAAM,sBAAsB,KAAK,CAAA;AACjC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAGlC,OAAO,EAAE,sBAAsB,IAAI,eAAe,EAAE,CAAA;AACpD,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,CAAA;AAatD,wBAAgB,WAAW,IAAK,iBAAiB,CAYhD;AAED,wBAAgB,mBAAmB,CAAE,IAAI,EAAE,UAAU,GAAG,iBAAiB,CAiBxE;AA+BD,wBAAsB,WAAW,CAAE,UAAU,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAUhH;AAgBD,wBAAsB,aAAa,CAAE,SAAS,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAU/H"}
|
|
@@ -1,9 +1,22 @@
|
|
|
1
1
|
import { ed25519 as ed } from '@noble/curves/ed25519';
|
|
2
|
+
import { toString as uint8arrayToString } from 'uint8arrays/to-string';
|
|
3
|
+
import crypto from '../../webcrypto/index.js';
|
|
2
4
|
const PUBLIC_KEY_BYTE_LENGTH = 32;
|
|
3
5
|
const PRIVATE_KEY_BYTE_LENGTH = 64; // private key is actually 32 bytes but for historical reasons we concat private and public keys
|
|
4
6
|
const KEYS_BYTE_LENGTH = 32;
|
|
5
7
|
export { PUBLIC_KEY_BYTE_LENGTH as publicKeyLength };
|
|
6
8
|
export { PRIVATE_KEY_BYTE_LENGTH as privateKeyLength };
|
|
9
|
+
// memoize support result to skip additional awaits every time we use an ed key
|
|
10
|
+
let ed25519Supported;
|
|
11
|
+
const webCryptoEd25519SupportedPromise = (async () => {
|
|
12
|
+
try {
|
|
13
|
+
await crypto.get().subtle.generateKey({ name: 'Ed25519' }, true, ['sign', 'verify']);
|
|
14
|
+
return true;
|
|
15
|
+
}
|
|
16
|
+
catch {
|
|
17
|
+
return false;
|
|
18
|
+
}
|
|
19
|
+
})();
|
|
7
20
|
export function generateKey() {
|
|
8
21
|
// the actual private key (32 bytes)
|
|
9
22
|
const privateKeyRaw = ed.utils.randomPrivateKey();
|
|
@@ -15,9 +28,6 @@ export function generateKey() {
|
|
|
15
28
|
publicKey
|
|
16
29
|
};
|
|
17
30
|
}
|
|
18
|
-
/**
|
|
19
|
-
* Generate keypair from a 32 byte uint8array
|
|
20
|
-
*/
|
|
21
31
|
export function generateKeyFromSeed(seed) {
|
|
22
32
|
if (seed.length !== KEYS_BYTE_LENGTH) {
|
|
23
33
|
throw new TypeError('"seed" must be 32 bytes in length.');
|
|
@@ -34,13 +44,59 @@ export function generateKeyFromSeed(seed) {
|
|
|
34
44
|
publicKey
|
|
35
45
|
};
|
|
36
46
|
}
|
|
37
|
-
|
|
47
|
+
async function hashAndSignWebCrypto(privateKey, msg) {
|
|
48
|
+
let privateKeyRaw;
|
|
49
|
+
if (privateKey.length === PRIVATE_KEY_BYTE_LENGTH) {
|
|
50
|
+
privateKeyRaw = privateKey.subarray(0, 32);
|
|
51
|
+
}
|
|
52
|
+
else {
|
|
53
|
+
privateKeyRaw = privateKey;
|
|
54
|
+
}
|
|
55
|
+
const jwk = {
|
|
56
|
+
crv: 'Ed25519',
|
|
57
|
+
kty: 'OKP',
|
|
58
|
+
x: uint8arrayToString(privateKey.subarray(32), 'base64url'),
|
|
59
|
+
d: uint8arrayToString(privateKeyRaw, 'base64url'),
|
|
60
|
+
ext: true,
|
|
61
|
+
key_ops: ['sign']
|
|
62
|
+
};
|
|
63
|
+
const key = await crypto.get().subtle.importKey('jwk', jwk, { name: 'Ed25519' }, true, ['sign']);
|
|
64
|
+
const sig = await crypto.get().subtle.sign({ name: 'Ed25519' }, key, msg instanceof Uint8Array ? msg : msg.subarray());
|
|
65
|
+
return new Uint8Array(sig, 0, sig.byteLength);
|
|
66
|
+
}
|
|
67
|
+
function hashAndSignNoble(privateKey, msg) {
|
|
38
68
|
const privateKeyRaw = privateKey.subarray(0, KEYS_BYTE_LENGTH);
|
|
39
69
|
return ed.sign(msg instanceof Uint8Array ? msg : msg.subarray(), privateKeyRaw);
|
|
40
70
|
}
|
|
41
|
-
export function
|
|
71
|
+
export async function hashAndSign(privateKey, msg) {
|
|
72
|
+
if (ed25519Supported == null) {
|
|
73
|
+
ed25519Supported = await webCryptoEd25519SupportedPromise;
|
|
74
|
+
}
|
|
75
|
+
if (ed25519Supported) {
|
|
76
|
+
return hashAndSignWebCrypto(privateKey, msg);
|
|
77
|
+
}
|
|
78
|
+
return hashAndSignNoble(privateKey, msg);
|
|
79
|
+
}
|
|
80
|
+
async function hashAndVerifyWebCrypto(publicKey, sig, msg) {
|
|
81
|
+
if (publicKey.buffer instanceof ArrayBuffer) {
|
|
82
|
+
const key = await crypto.get().subtle.importKey('raw', publicKey.buffer, { name: 'Ed25519' }, false, ['verify']);
|
|
83
|
+
const isValid = await crypto.get().subtle.verify({ name: 'Ed25519' }, key, sig, msg instanceof Uint8Array ? msg : msg.subarray());
|
|
84
|
+
return isValid;
|
|
85
|
+
}
|
|
86
|
+
throw new TypeError('WebCrypto does not support SharedArrayBuffer for Ed25519 keys');
|
|
87
|
+
}
|
|
88
|
+
function hashAndVerifyNoble(publicKey, sig, msg) {
|
|
42
89
|
return ed.verify(sig, msg instanceof Uint8Array ? msg : msg.subarray(), publicKey);
|
|
43
90
|
}
|
|
91
|
+
export async function hashAndVerify(publicKey, sig, msg) {
|
|
92
|
+
if (ed25519Supported == null) {
|
|
93
|
+
ed25519Supported = await webCryptoEd25519SupportedPromise;
|
|
94
|
+
}
|
|
95
|
+
if (ed25519Supported) {
|
|
96
|
+
return hashAndVerifyWebCrypto(publicKey, sig, msg);
|
|
97
|
+
}
|
|
98
|
+
return hashAndVerifyNoble(publicKey, sig, msg);
|
|
99
|
+
}
|
|
44
100
|
function concatKeys(privateKeyRaw, publicKey) {
|
|
45
101
|
const privateKey = new Uint8Array(PRIVATE_KEY_BYTE_LENGTH);
|
|
46
102
|
for (let i = 0; i < KEYS_BYTE_LENGTH; i++) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../../../src/keys/ed25519/index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,EAAE,EAAE,MAAM,uBAAuB,CAAA;
|
|
1
|
+
{"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../../../src/keys/ed25519/index.browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -9,6 +9,6 @@ export declare function generateKey(): Uint8ArrayKeyPair;
|
|
|
9
9
|
* Generate keypair from a 32 byte uint8array
|
|
10
10
|
*/
|
|
11
11
|
export declare function generateKeyFromSeed(seed: Uint8Array): Uint8ArrayKeyPair;
|
|
12
|
-
export declare function hashAndSign(key: Uint8Array, msg: Uint8Array | Uint8ArrayList):
|
|
12
|
+
export declare function hashAndSign(key: Uint8Array, msg: Uint8Array | Uint8ArrayList): Uint8Array;
|
|
13
13
|
export declare function hashAndVerify(key: Uint8Array, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): boolean;
|
|
14
14
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/keys/ed25519/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,QAAA,MAAM,sBAAsB,KAAK,CAAA;AACjC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAIlC,OAAO,EAAE,sBAAsB,IAAI,eAAe,EAAE,CAAA;AACpD,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,CAAA;AAuBtD,wBAAgB,WAAW,IAAK,iBAAiB,CAehD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAE,IAAI,EAAE,UAAU,GAAG,iBAAiB,CAcxE;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/keys/ed25519/index.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,QAAA,MAAM,sBAAsB,KAAK,CAAA;AACjC,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAIlC,OAAO,EAAE,sBAAsB,IAAI,eAAe,EAAE,CAAA;AACpD,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,CAAA;AAuBtD,wBAAgB,WAAW,IAAK,iBAAiB,CAehD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAE,IAAI,EAAE,UAAU,GAAG,iBAAiB,CAcxE;AAED,wBAAgB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CA6B1F;AAED,wBAAgB,aAAa,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAuB1G"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import randomBytes from '../../random-bytes.js';
|
|
2
2
|
import * as utils from './utils.js';
|
|
3
3
|
import type { JWKKeyPair } from '../interface.js';
|
|
4
|
+
import type { AbortOptions } from '@libp2p/interface';
|
|
4
5
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
5
6
|
export declare const RSAES_PKCS1_V1_5_OID = "1.2.840.113549.1.1.1";
|
|
6
7
|
export { utils };
|
|
7
|
-
export declare function generateRSAKey(bits: number): Promise<JWKKeyPair>;
|
|
8
|
+
export declare function generateRSAKey(bits: number, options?: AbortOptions): Promise<JWKKeyPair>;
|
|
8
9
|
export { randomBytes as getRandomValues };
|
|
9
|
-
export declare function hashAndSign(key: JsonWebKey, msg: Uint8Array | Uint8ArrayList): Promise<Uint8Array>;
|
|
10
|
-
export declare function hashAndVerify(key: JsonWebKey, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): Promise<boolean>;
|
|
10
|
+
export declare function hashAndSign(key: JsonWebKey, msg: Uint8Array | Uint8ArrayList, options?: AbortOptions): Promise<Uint8Array>;
|
|
11
|
+
export declare function hashAndVerify(key: JsonWebKey, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList, options?: AbortOptions): Promise<boolean>;
|
|
11
12
|
export declare function rsaKeySize(jwk: JsonWebKey): number;
|
|
12
13
|
//# sourceMappingURL=index.browser.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../../../src/keys/rsa/index.browser.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,uBAAuB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,wBAAsB,cAAc,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"index.browser.d.ts","sourceRoot":"","sources":["../../../../src/keys/rsa/index.browser.ts"],"names":[],"mappings":"AAEA,OAAO,WAAW,MAAM,uBAAuB,CAAA;AAE/C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAC1D,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,wBAAsB,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAmB/F;AAED,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAA;AAEzC,wBAAsB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAqBjI;AAED,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,OAAO,CAAC,CAsBjJ;AAgBD,wBAAgB,UAAU,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAQnD"}
|
|
@@ -5,43 +5,51 @@ import webcrypto from '../../webcrypto/index.js';
|
|
|
5
5
|
import * as utils from './utils.js';
|
|
6
6
|
export const RSAES_PKCS1_V1_5_OID = '1.2.840.113549.1.1.1';
|
|
7
7
|
export { utils };
|
|
8
|
-
export async function generateRSAKey(bits) {
|
|
8
|
+
export async function generateRSAKey(bits, options) {
|
|
9
9
|
const pair = await webcrypto.get().subtle.generateKey({
|
|
10
10
|
name: 'RSASSA-PKCS1-v1_5',
|
|
11
11
|
modulusLength: bits,
|
|
12
12
|
publicExponent: new Uint8Array([0x01, 0x00, 0x01]),
|
|
13
13
|
hash: { name: 'SHA-256' }
|
|
14
14
|
}, true, ['sign', 'verify']);
|
|
15
|
-
|
|
15
|
+
options?.signal?.throwIfAborted();
|
|
16
|
+
const keys = await exportKey(pair, options);
|
|
16
17
|
return {
|
|
17
18
|
privateKey: keys[0],
|
|
18
19
|
publicKey: keys[1]
|
|
19
20
|
};
|
|
20
21
|
}
|
|
21
22
|
export { randomBytes as getRandomValues };
|
|
22
|
-
export async function hashAndSign(key, msg) {
|
|
23
|
+
export async function hashAndSign(key, msg, options) {
|
|
23
24
|
const privateKey = await webcrypto.get().subtle.importKey('jwk', key, {
|
|
24
25
|
name: 'RSASSA-PKCS1-v1_5',
|
|
25
26
|
hash: { name: 'SHA-256' }
|
|
26
27
|
}, false, ['sign']);
|
|
28
|
+
options?.signal?.throwIfAborted();
|
|
27
29
|
const sig = await webcrypto.get().subtle.sign({ name: 'RSASSA-PKCS1-v1_5' }, privateKey, msg instanceof Uint8Array ? msg : msg.subarray());
|
|
30
|
+
options?.signal?.throwIfAborted();
|
|
28
31
|
return new Uint8Array(sig, 0, sig.byteLength);
|
|
29
32
|
}
|
|
30
|
-
export async function hashAndVerify(key, sig, msg) {
|
|
33
|
+
export async function hashAndVerify(key, sig, msg, options) {
|
|
31
34
|
const publicKey = await webcrypto.get().subtle.importKey('jwk', key, {
|
|
32
35
|
name: 'RSASSA-PKCS1-v1_5',
|
|
33
36
|
hash: { name: 'SHA-256' }
|
|
34
37
|
}, false, ['verify']);
|
|
35
|
-
|
|
38
|
+
options?.signal?.throwIfAborted();
|
|
39
|
+
const result = await webcrypto.get().subtle.verify({ name: 'RSASSA-PKCS1-v1_5' }, publicKey, sig, msg instanceof Uint8Array ? msg : msg.subarray());
|
|
40
|
+
options?.signal?.throwIfAborted();
|
|
41
|
+
return result;
|
|
36
42
|
}
|
|
37
|
-
async function exportKey(pair) {
|
|
43
|
+
async function exportKey(pair, options) {
|
|
38
44
|
if (pair.privateKey == null || pair.publicKey == null) {
|
|
39
45
|
throw new InvalidParametersError('Private and public key are required');
|
|
40
46
|
}
|
|
41
|
-
|
|
47
|
+
const result = await Promise.all([
|
|
42
48
|
webcrypto.get().subtle.exportKey('jwk', pair.privateKey),
|
|
43
49
|
webcrypto.get().subtle.exportKey('jwk', pair.publicKey)
|
|
44
50
|
]);
|
|
51
|
+
options?.signal?.throwIfAborted();
|
|
52
|
+
return result;
|
|
45
53
|
}
|
|
46
54
|
export function rsaKeySize(jwk) {
|
|
47
55
|
if (jwk.kty !== 'RSA') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../../../src/keys/rsa/index.browser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;AAC1D,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,WAAW,MAAM,uBAAuB,CAAA;AAC/C,OAAO,SAAS,MAAM,0BAA0B,CAAA;AAChD,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"index.browser.js","sourceRoot":"","sources":["../../../../src/keys/rsa/index.browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,12 +1,13 @@
|
|
|
1
1
|
import randomBytes from '../../random-bytes.js';
|
|
2
2
|
import * as utils from './utils.js';
|
|
3
3
|
import type { JWKKeyPair } from '../interface.js';
|
|
4
|
+
import type { AbortOptions } from '@libp2p/interface';
|
|
4
5
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
5
6
|
export declare const RSAES_PKCS1_V1_5_OID = "1.2.840.113549.1.1.1";
|
|
6
7
|
export { utils };
|
|
7
|
-
export declare function generateRSAKey(bits: number): Promise<JWKKeyPair>;
|
|
8
|
+
export declare function generateRSAKey(bits: number, options?: AbortOptions): Promise<JWKKeyPair>;
|
|
8
9
|
export { randomBytes as getRandomValues };
|
|
9
|
-
export declare function hashAndSign(key: JsonWebKey, msg: Uint8Array | Uint8ArrayList):
|
|
10
|
-
export declare function hashAndVerify(key: JsonWebKey, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList):
|
|
10
|
+
export declare function hashAndSign(key: JsonWebKey, msg: Uint8Array | Uint8ArrayList, options?: AbortOptions): Uint8Array;
|
|
11
|
+
export declare function hashAndVerify(key: JsonWebKey, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList, options?: AbortOptions): boolean;
|
|
11
12
|
export declare function rsaKeySize(jwk: JsonWebKey): number;
|
|
12
13
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/keys/rsa/index.ts"],"names":[],"mappings":"AAIA,OAAO,WAAW,MAAM,uBAAuB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAE1D,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,wBAAsB,cAAc,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/keys/rsa/index.ts"],"names":[],"mappings":"AAIA,OAAO,WAAW,MAAM,uBAAuB,CAAA;AAC/C,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AACjD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,eAAO,MAAM,oBAAoB,yBAAyB,CAAA;AAE1D,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,wBAAsB,cAAc,CAAE,IAAI,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,UAAU,CAAC,CAe/F;AAED,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAA;AAEzC,wBAAgB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,CAelH;AAED,wBAAgB,aAAa,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,CAelI;AAED,wBAAgB,UAAU,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAQnD"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import crypto from 'crypto';
|
|
2
|
-
import { promisify } from 'util';
|
|
1
|
+
import crypto from 'node:crypto';
|
|
2
|
+
import { promisify } from 'node:util';
|
|
3
3
|
import { InvalidParametersError } from '@libp2p/interface';
|
|
4
4
|
import { fromString as uint8ArrayFromString } from 'uint8arrays/from-string';
|
|
5
5
|
import randomBytes from '../../random-bytes.js';
|
|
@@ -7,13 +7,14 @@ import * as utils from './utils.js';
|
|
|
7
7
|
const keypair = promisify(crypto.generateKeyPair);
|
|
8
8
|
export const RSAES_PKCS1_V1_5_OID = '1.2.840.113549.1.1.1';
|
|
9
9
|
export { utils };
|
|
10
|
-
export async function generateRSAKey(bits) {
|
|
10
|
+
export async function generateRSAKey(bits, options) {
|
|
11
11
|
// @ts-expect-error node types are missing jwk as a format
|
|
12
12
|
const key = await keypair('rsa', {
|
|
13
13
|
modulusLength: bits,
|
|
14
14
|
publicKeyEncoding: { type: 'pkcs1', format: 'jwk' },
|
|
15
15
|
privateKeyEncoding: { type: 'pkcs1', format: 'jwk' }
|
|
16
16
|
});
|
|
17
|
+
options?.signal?.throwIfAborted();
|
|
17
18
|
return {
|
|
18
19
|
// @ts-expect-error node types are missing jwk as a format
|
|
19
20
|
privateKey: key.privateKey,
|
|
@@ -22,7 +23,8 @@ export async function generateRSAKey(bits) {
|
|
|
22
23
|
};
|
|
23
24
|
}
|
|
24
25
|
export { randomBytes as getRandomValues };
|
|
25
|
-
export
|
|
26
|
+
export function hashAndSign(key, msg, options) {
|
|
27
|
+
options?.signal?.throwIfAborted();
|
|
26
28
|
const hash = crypto.createSign('RSA-SHA256');
|
|
27
29
|
if (msg instanceof Uint8Array) {
|
|
28
30
|
hash.update(msg);
|
|
@@ -35,7 +37,8 @@ export async function hashAndSign(key, msg) {
|
|
|
35
37
|
// @ts-expect-error node types are missing jwk as a format
|
|
36
38
|
return hash.sign({ format: 'jwk', key });
|
|
37
39
|
}
|
|
38
|
-
export
|
|
40
|
+
export function hashAndVerify(key, sig, msg, options) {
|
|
41
|
+
options?.signal?.throwIfAborted();
|
|
39
42
|
const hash = crypto.createVerify('RSA-SHA256');
|
|
40
43
|
if (msg instanceof Uint8Array) {
|
|
41
44
|
hash.update(msg);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/keys/rsa/index.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/keys/rsa/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CID } from 'multiformats/cid';
|
|
2
|
-
import type { RSAPublicKey as RSAPublicKeyInterface, RSAPrivateKey as RSAPrivateKeyInterface } from '@libp2p/interface';
|
|
2
|
+
import type { RSAPublicKey as RSAPublicKeyInterface, RSAPrivateKey as RSAPrivateKeyInterface, AbortOptions } from '@libp2p/interface';
|
|
3
3
|
import type { Digest } from 'multiformats/hashes/digest';
|
|
4
4
|
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
5
5
|
export declare class RSAPublicKey implements RSAPublicKeyInterface {
|
|
@@ -13,7 +13,7 @@ export declare class RSAPublicKey implements RSAPublicKeyInterface {
|
|
|
13
13
|
toCID(): CID<unknown, 114, 18, 1>;
|
|
14
14
|
toString(): string;
|
|
15
15
|
equals(key?: any): boolean;
|
|
16
|
-
verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array): boolean | Promise<boolean>;
|
|
16
|
+
verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array, options?: AbortOptions): boolean | Promise<boolean>;
|
|
17
17
|
}
|
|
18
18
|
export declare class RSAPrivateKey implements RSAPrivateKeyInterface {
|
|
19
19
|
readonly type = "RSA";
|
|
@@ -23,6 +23,6 @@ export declare class RSAPrivateKey implements RSAPrivateKeyInterface {
|
|
|
23
23
|
constructor(jwk: JsonWebKey, publicKey: RSAPublicKey);
|
|
24
24
|
get raw(): Uint8Array;
|
|
25
25
|
equals(key: any): boolean;
|
|
26
|
-
sign(message: Uint8Array | Uint8ArrayList): Uint8Array | Promise<Uint8Array>;
|
|
26
|
+
sign(message: Uint8Array | Uint8ArrayList, options?: AbortOptions): Uint8Array | Promise<Uint8Array>;
|
|
27
27
|
}
|
|
28
28
|
//# sourceMappingURL=rsa.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.d.ts","sourceRoot":"","sources":["../../../../src/keys/rsa/rsa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,KAAK,EAAE,YAAY,IAAI,qBAAqB,EAAE,aAAa,IAAI,sBAAsB,EAAE,MAAM,mBAAmB,CAAA;
|
|
1
|
+
{"version":3,"file":"rsa.d.ts","sourceRoot":"","sources":["../../../../src/keys/rsa/rsa.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,GAAG,EAAE,MAAM,kBAAkB,CAAA;AAGtC,OAAO,KAAK,EAAE,YAAY,IAAI,qBAAqB,EAAE,aAAa,IAAI,sBAAsB,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAA;AACrI,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAA;AACxD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,qBAAa,YAAa,YAAW,qBAAqB;IACxD,SAAgB,IAAI,SAAQ;IAC5B,SAAgB,GAAG,EAAE,UAAU,CAAA;IAC/B,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAoB;gBAElC,GAAG,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;IAKxD,IAAI,GAAG,IAAK,UAAU,CAMrB;IAED,WAAW,IAAK,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC;IAIlC,KAAK,IAAK,GAAG,CAAC,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,CAAC,CAAC;IAIlC,QAAQ,IAAK,MAAM;IAInB,MAAM,CAAE,GAAG,CAAC,EAAE,GAAG,GAAG,OAAO;IAQ3B,MAAM,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,EAAE,GAAG,EAAE,UAAU,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC;CAGhH;AAED,qBAAa,aAAc,YAAW,sBAAsB;IAC1D,SAAgB,IAAI,SAAQ;IAC5B,SAAgB,GAAG,EAAE,UAAU,CAAA;IAC/B,OAAO,CAAC,IAAI,CAAC,CAAY;IACzB,SAAgB,SAAS,EAAE,YAAY,CAAA;gBAE1B,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY;IAKrD,IAAI,GAAG,IAAK,UAAU,CAMrB;IAED,MAAM,CAAE,GAAG,EAAE,GAAG,GAAG,OAAO;IAQ1B,IAAI,CAAE,OAAO,EAAE,UAAU,GAAG,cAAc,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC;CAGtG"}
|