@libp2p/crypto 2.0.8-d8f5bc211 → 2.0.8-e2267d437
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 +3 -3
- package/dist/src/aes/cipher-mode.js.map +1 -1
- package/dist/src/aes/index.d.ts +1 -1
- package/dist/src/aes/index.d.ts.map +1 -1
- package/dist/src/aes/index.js +1 -1
- package/dist/src/aes/index.js.map +1 -1
- package/dist/src/ciphers/aes-gcm.browser.js.map +1 -1
- package/dist/src/ciphers/aes-gcm.js +3 -3
- package/dist/src/ciphers/aes-gcm.js.map +1 -1
- package/dist/src/keys/ecdh-browser.js +1 -1
- package/dist/src/keys/ecdh-browser.js.map +1 -1
- package/dist/src/keys/ecdh.js.map +1 -1
- package/dist/src/keys/ed25519-browser.d.ts +5 -4
- package/dist/src/keys/ed25519-browser.d.ts.map +1 -1
- package/dist/src/keys/ed25519-browser.js +6 -6
- package/dist/src/keys/ed25519-browser.js.map +1 -1
- package/dist/src/keys/ed25519-class.d.ts +3 -2
- package/dist/src/keys/ed25519-class.d.ts.map +1 -1
- package/dist/src/keys/ed25519-class.js +2 -2
- package/dist/src/keys/ed25519-class.js.map +1 -1
- package/dist/src/keys/ed25519.d.ts +5 -4
- package/dist/src/keys/ed25519.d.ts.map +1 -1
- package/dist/src/keys/ed25519.js +11 -19
- package/dist/src/keys/ed25519.js.map +1 -1
- package/dist/src/keys/index.js.map +1 -1
- package/dist/src/keys/key-stretcher.js.map +1 -1
- package/dist/src/keys/keys.js.map +1 -1
- package/dist/src/keys/rsa-browser.d.ts +5 -4
- package/dist/src/keys/rsa-browser.d.ts.map +1 -1
- package/dist/src/keys/rsa-browser.js +3 -3
- package/dist/src/keys/rsa-browser.js.map +1 -1
- package/dist/src/keys/rsa-class.d.ts +5 -4
- package/dist/src/keys/rsa-class.d.ts.map +1 -1
- package/dist/src/keys/rsa-class.js.map +1 -1
- package/dist/src/keys/rsa-utils.js.map +1 -1
- package/dist/src/keys/rsa.d.ts +5 -4
- package/dist/src/keys/rsa.d.ts.map +1 -1
- package/dist/src/keys/rsa.js +38 -12
- package/dist/src/keys/rsa.js.map +1 -1
- package/dist/src/keys/secp256k1-browser.d.ts +18 -0
- package/dist/src/keys/secp256k1-browser.d.ts.map +1 -0
- package/dist/src/keys/secp256k1-browser.js +66 -0
- package/dist/src/keys/secp256k1-browser.js.map +1 -0
- package/dist/src/keys/secp256k1-class.d.ts +3 -2
- package/dist/src/keys/secp256k1-class.d.ts.map +1 -1
- package/dist/src/keys/secp256k1-class.js.map +1 -1
- package/dist/src/keys/secp256k1.d.ts +3 -2
- package/dist/src/keys/secp256k1.d.ts.map +1 -1
- package/dist/src/keys/secp256k1.js +21 -3
- package/dist/src/keys/secp256k1.js.map +1 -1
- package/dist/src/pbkdf2.js.map +1 -1
- package/dist/src/random-bytes.js.map +1 -1
- package/dist/src/util.js.map +1 -1
- package/dist/src/webcrypto.js.map +1 -1
- package/package.json +4 -3
- package/src/aes/index.ts +1 -1
- package/src/ciphers/aes-gcm.ts +3 -3
- package/src/keys/ed25519-browser.ts +7 -6
- package/src/keys/ed25519-class.ts +5 -4
- package/src/keys/ed25519.ts +12 -20
- package/src/keys/rsa-browser.ts +9 -8
- package/src/keys/rsa-class.ts +5 -4
- package/src/keys/rsa.ts +43 -16
- package/src/keys/secp256k1-browser.ts +71 -0
- package/src/keys/secp256k1-class.ts +3 -2
- package/src/keys/secp256k1.ts +28 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-class.d.ts","sourceRoot":"","sources":["../../../src/keys/rsa-class.ts"],"names":[],"mappings":"AAKA,OAAO,0BAA0B,CAAA;AAKjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"rsa-class.d.ts","sourceRoot":"","sources":["../../../src/keys/rsa-class.ts"],"names":[],"mappings":"AAKA,OAAO,0BAA0B,CAAA;AAKjC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,eAAO,MAAM,YAAY,OAAO,CAAA;AAEhC,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;gBAEpB,GAAG,EAAE,UAAU;IAItB,MAAM,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAInF,OAAO,IAAK,UAAU;IAItB,IAAI,KAAK,IAAK,UAAU,CAKvB;IAED,OAAO,CAAE,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU;IAIxD,MAAM,CAAE,GAAG,EAAE,GAAG,GAAG,OAAO;IAIpB,IAAI,IAAK,OAAO,CAAC,UAAU,CAAC;CAKnC;AAED,qBAAa,aAAa;IACxB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;gBAE1B,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,UAAU;IAKnD,SAAS,IAAK,UAAU;IAIlB,IAAI,CAAE,OAAO,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAItE,IAAI,MAAM,IAAK,YAAY,CAM1B;IAED,OAAO,CAAE,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU;IAIxD,OAAO,IAAK,UAAU;IAItB,IAAI,KAAK,IAAK,UAAU,CAKvB;IAED,MAAM,CAAE,GAAG,EAAE,GAAG,GAAG,OAAO;IAIpB,IAAI,IAAK,OAAO,CAAC,UAAU,CAAC;IAMlC;;;;;;OAMG;IACG,EAAE,IAAK,OAAO,CAAC,MAAM,CAAC;IAK5B;;OAEG;IACG,MAAM,CAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAW,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CAmB5E;AAED,wBAAsB,sBAAsB,CAAE,KAAK,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAUvF;AAED,wBAAgB,qBAAqB,CAAE,KAAK,EAAE,UAAU,GAAG,YAAY,CAQtE;AAED,wBAAsB,OAAO,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,CAAC,CAQtE;AAED,wBAAsB,eAAe,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAQ3E"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-class.js","sourceRoot":"","sources":["../../../src/keys/rsa-class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,qCAAqC;AACrC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,0BAA0B,CAAA;AACjC,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,GAAG,MAAM,WAAW,CAAA;AAChC,OAAO,KAAK,MAAM,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"rsa-class.js","sourceRoot":"","sources":["../../../src/keys/rsa-class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa-utils.js","sourceRoot":"","sources":["../../../src/keys/rsa-utils.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAA;AAC/B,OAAO,uBAAuB,CAAA;AAC9B,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,qCAAqC;AACrC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,yBAAyB,EAAE,qBAAqB,EAAE,MAAM,cAAc,CAAA;AAE/E,mDAAmD;AACnD,MAAM,UAAU,UAAU,CAAE,KAAiB;IAC3C,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,kBAAkB,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC,CAAA;IACnE,MAAM,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC,kBAAkB,CAAC,IAAI,CAAC,CAAA;IAErD,oDAAoD;IACpD,OAAO;QACL,GAAG,EAAE,KAAK;QACV,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1C,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1C,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1C,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1C,CAAC,EAAE,yBAAyB,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1C,EAAE,EAAE,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,EAAE,EAAE,yBAAyB,CAAC,UAAU,CAAC,EAAE,CAAC;QAC5C,EAAE,EAAE,yBAAyB,CAAC,UAAU,CAAC,IAAI,CAAC;QAC9C,GAAG,EAAE,OAAO;KACb,CAAA;AACH,CAAC;AAED,mDAAmD;AACnD,MAAM,UAAU,UAAU,CAAE,GAAe;IACzC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,IAAI,GAAG,CAAC,EAAE,IAAI,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"rsa-utils.js","sourceRoot":"","sources":["../../../src/keys/rsa-utils.ts"],"names":[],"mappings":"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"}
|
package/dist/src/keys/rsa.d.ts
CHANGED
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import randomBytes from '../random-bytes.js';
|
|
2
2
|
import * as utils from './rsa-utils.js';
|
|
3
3
|
import type { JWKKeyPair } from './interface.js';
|
|
4
|
+
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
4
5
|
export { utils };
|
|
5
6
|
export declare function generateKey(bits: number): Promise<JWKKeyPair>;
|
|
6
7
|
export declare function unmarshalPrivateKey(key: JsonWebKey): Promise<JWKKeyPair>;
|
|
7
8
|
export { randomBytes as getRandomValues };
|
|
8
|
-
export declare function hashAndSign(key: JsonWebKey, msg: Uint8Array): Promise<Uint8Array>;
|
|
9
|
-
export declare function hashAndVerify(key: JsonWebKey, sig: Uint8Array, msg: Uint8Array): Promise<boolean>;
|
|
10
|
-
export declare function encrypt(key: JsonWebKey, bytes: Uint8Array): Uint8Array;
|
|
11
|
-
export declare function decrypt(key: JsonWebKey, bytes: Uint8Array): Uint8Array;
|
|
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>;
|
|
11
|
+
export declare function encrypt(key: JsonWebKey, bytes: Uint8Array | Uint8ArrayList): Uint8Array;
|
|
12
|
+
export declare function decrypt(key: JsonWebKey, bytes: Uint8Array | Uint8ArrayList): Uint8Array;
|
|
12
13
|
export declare function keySize(jwk: JsonWebKey): number;
|
|
13
14
|
//# sourceMappingURL=rsa.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.d.ts","sourceRoot":"","sources":["../../../src/keys/rsa.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"rsa.d.ts","sourceRoot":"","sources":["../../../src/keys/rsa.ts"],"names":[],"mappings":"AAGA,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AACvC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAIpD,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,wBAAsB,WAAW,CAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAcpE;AAGD,wBAAsB,mBAAmB,CAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,UAAU,CAAC,CAY/E;AAED,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAA;AAEzC,wBAAsB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAazG;AAED,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAazH;AAID,wBAAgB,OAAO,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAQxF;AAED,wBAAgB,OAAO,CAAE,GAAG,EAAE,UAAU,EAAE,KAAK,EAAE,UAAU,GAAG,cAAc,GAAG,UAAU,CAQxF;AAED,wBAAgB,OAAO,CAAE,GAAG,EAAE,UAAU,GAAG,MAAM,CAQhD"}
|
package/dist/src/keys/rsa.js
CHANGED
|
@@ -35,25 +35,51 @@ export async function unmarshalPrivateKey(key) {
|
|
|
35
35
|
}
|
|
36
36
|
export { randomBytes as getRandomValues };
|
|
37
37
|
export async function hashAndSign(key, msg) {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
38
|
+
const hash = crypto.createSign('RSA-SHA256');
|
|
39
|
+
if (msg instanceof Uint8Array) {
|
|
40
|
+
hash.update(msg);
|
|
41
|
+
}
|
|
42
|
+
else {
|
|
43
|
+
for (const buf of msg) {
|
|
44
|
+
hash.update(buf);
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
// @ts-expect-error node types are missing jwk as a format
|
|
48
|
+
return hash.sign({ format: 'jwk', key });
|
|
42
49
|
}
|
|
43
50
|
export async function hashAndVerify(key, sig, msg) {
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
51
|
+
const hash = crypto.createVerify('RSA-SHA256');
|
|
52
|
+
if (msg instanceof Uint8Array) {
|
|
53
|
+
hash.update(msg);
|
|
54
|
+
}
|
|
55
|
+
else {
|
|
56
|
+
for (const buf of msg) {
|
|
57
|
+
hash.update(buf);
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
// @ts-expect-error node types are missing jwk as a format
|
|
61
|
+
return hash.verify({ format: 'jwk', key }, sig);
|
|
48
62
|
}
|
|
49
63
|
const padding = crypto.constants.RSA_PKCS1_PADDING;
|
|
50
64
|
export function encrypt(key, bytes) {
|
|
51
|
-
|
|
52
|
-
|
|
65
|
+
if (bytes instanceof Uint8Array) {
|
|
66
|
+
// @ts-expect-error node types are missing jwk as a format
|
|
67
|
+
return crypto.publicEncrypt({ format: 'jwk', key, padding }, bytes);
|
|
68
|
+
}
|
|
69
|
+
else {
|
|
70
|
+
// @ts-expect-error node types are missing jwk as a format
|
|
71
|
+
return crypto.publicEncrypt({ format: 'jwk', key, padding }, bytes.subarray());
|
|
72
|
+
}
|
|
53
73
|
}
|
|
54
74
|
export function decrypt(key, bytes) {
|
|
55
|
-
|
|
56
|
-
|
|
75
|
+
if (bytes instanceof Uint8Array) {
|
|
76
|
+
// @ts-expect-error node types are missing jwk as a format
|
|
77
|
+
return crypto.privateDecrypt({ format: 'jwk', key, padding }, bytes);
|
|
78
|
+
}
|
|
79
|
+
else {
|
|
80
|
+
// @ts-expect-error node types are missing jwk as a format
|
|
81
|
+
return crypto.privateDecrypt({ format: 'jwk', key, padding }, bytes.subarray());
|
|
82
|
+
}
|
|
57
83
|
}
|
|
58
84
|
export function keySize(jwk) {
|
|
59
85
|
if (jwk.kty !== 'RSA') {
|
package/dist/src/keys/rsa.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"rsa.js","sourceRoot":"","sources":["../../../src/keys/rsa.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"rsa.js","sourceRoot":"","sources":["../../../src/keys/rsa.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAA;AAC3B,OAAO,EAAE,SAAS,EAAE,MAAM,MAAM,CAAA;AAChC,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,WAAW,MAAM,oBAAoB,CAAA;AAC5C,OAAO,KAAK,KAAK,MAAM,gBAAgB,CAAA;AAIvC,MAAM,OAAO,GAAG,SAAS,CAAC,MAAM,CAAC,eAAe,CAAC,CAAA;AAEjD,OAAO,EAAE,KAAK,EAAE,CAAA;AAEhB,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,IAAY;IAC7C,0DAA0D;IAC1D,MAAM,GAAG,GAAG,MAAM,OAAO,CAAC,KAAK,EAAE;QAC/B,aAAa,EAAE,IAAI;QACnB,iBAAiB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;QACnD,kBAAkB,EAAE,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE;KACrD,CAAC,CAAA;IAEF,OAAO;QACL,0DAA0D;QAC1D,UAAU,EAAE,GAAG,CAAC,UAAU;QAC1B,0DAA0D;QAC1D,SAAS,EAAE,GAAG,CAAC,SAAS;KACzB,CAAA;AACH,CAAC;AAED,kBAAkB;AAClB,MAAM,CAAC,KAAK,UAAU,mBAAmB,CAAE,GAAe;IACxD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,MAAM,IAAI,SAAS,CAAC,uBAAuB,EAAE,iBAAiB,CAAC,CAAA;IACjE,CAAC;IACD,OAAO;QACL,UAAU,EAAE,GAAG;QACf,SAAS,EAAE;YACT,GAAG,EAAE,GAAG,CAAC,GAAG;YACZ,CAAC,EAAE,GAAG,CAAC,CAAC;YACR,CAAC,EAAE,GAAG,CAAC,CAAC;SACT;KACF,CAAA;AACH,CAAC;AAED,OAAO,EAAE,WAAW,IAAI,eAAe,EAAE,CAAA;AAEzC,MAAM,CAAC,KAAK,UAAU,WAAW,CAAE,GAAe,EAAE,GAAgC;IAClF,MAAM,IAAI,GAAG,MAAM,CAAC,UAAU,CAAC,YAAY,CAAC,CAAA;IAE5C,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,CAAC,CAAA;AAC1C,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,aAAa,CAAE,GAAe,EAAE,GAAe,EAAE,GAAgC;IACrG,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,YAAY,CAAC,CAAA;IAE9C,IAAI,GAAG,YAAY,UAAU,EAAE,CAAC;QAC9B,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;IAClB,CAAC;SAAM,CAAC;QACN,KAAK,MAAM,GAAG,IAAI,GAAG,EAAE,CAAC;YACtB,IAAI,CAAC,MAAM,CAAC,GAAG,CAAC,CAAA;QAClB,CAAC;IACH,CAAC;IAED,0DAA0D;IAC1D,OAAO,IAAI,CAAC,MAAM,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE,GAAG,CAAC,CAAA;AACjD,CAAC;AAED,MAAM,OAAO,GAAG,MAAM,CAAC,SAAS,CAAC,iBAAiB,CAAA;AAElD,MAAM,UAAU,OAAO,CAAE,GAAe,EAAE,KAAkC;IAC1E,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,0DAA0D;QAC1D,OAAO,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;IACrE,CAAC;SAAM,CAAC;QACN,0DAA0D;QAC1D,OAAO,MAAM,CAAC,aAAa,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IAChF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAE,GAAe,EAAE,KAAkC;IAC1E,IAAI,KAAK,YAAY,UAAU,EAAE,CAAC;QAChC,0DAA0D;QAC1D,OAAO,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,CAAA;IACtE,CAAC;SAAM,CAAC;QACN,0DAA0D;QAC1D,OAAO,MAAM,CAAC,cAAc,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE,KAAK,CAAC,QAAQ,EAAE,CAAC,CAAA;IACjF,CAAC;AACH,CAAC;AAED,MAAM,UAAU,OAAO,CAAE,GAAe;IACtC,IAAI,GAAG,CAAC,GAAG,KAAK,KAAK,EAAE,CAAC;QACtB,MAAM,IAAI,SAAS,CAAC,kBAAkB,EAAE,sBAAsB,CAAC,CAAA;IACjE,CAAC;SAAM,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,IAAI,SAAS,CAAC,qBAAqB,EAAE,yBAAyB,CAAC,CAAA;IACvE,CAAC;IACD,MAAM,OAAO,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,QAAQ,CAAC,CAAA;IAC5C,OAAO,OAAO,CAAC,MAAM,GAAG,CAAC,CAAA;AAC3B,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
2
|
+
declare const PRIVATE_KEY_BYTE_LENGTH = 32;
|
|
3
|
+
export { PRIVATE_KEY_BYTE_LENGTH as privateKeyLength };
|
|
4
|
+
export declare function generateKey(): Uint8Array;
|
|
5
|
+
/**
|
|
6
|
+
* Hash and sign message with private key
|
|
7
|
+
*/
|
|
8
|
+
export declare function hashAndSign(key: Uint8Array, msg: Uint8Array | Uint8ArrayList): Promise<Uint8Array>;
|
|
9
|
+
/**
|
|
10
|
+
* Hash message and verify signature with public key
|
|
11
|
+
*/
|
|
12
|
+
export declare function hashAndVerify(key: Uint8Array, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): Promise<boolean>;
|
|
13
|
+
export declare function compressPublicKey(key: Uint8Array): Uint8Array;
|
|
14
|
+
export declare function decompressPublicKey(key: Uint8Array): Uint8Array;
|
|
15
|
+
export declare function validatePrivateKey(key: Uint8Array): void;
|
|
16
|
+
export declare function validatePublicKey(key: Uint8Array): void;
|
|
17
|
+
export declare function computePublicKey(privateKey: Uint8Array): Uint8Array;
|
|
18
|
+
//# sourceMappingURL=secp256k1-browser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256k1-browser.d.ts","sourceRoot":"","sources":["../../../src/keys/secp256k1-browser.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAElC,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,CAAA;AAEtD,wBAAgB,WAAW,IAAK,UAAU,CAEzC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAQzG;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAOzH;AAED,wBAAgB,iBAAiB,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAG9D;AAED,wBAAgB,mBAAmB,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAGhE;AAED,wBAAgB,kBAAkB,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAMzD;AAED,wBAAgB,iBAAiB,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAMxD;AAED,wBAAgB,gBAAgB,CAAE,UAAU,EAAE,UAAU,GAAG,UAAU,CAMpE"}
|
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
import { CodeError } from '@libp2p/interface/errors';
|
|
2
|
+
import { secp256k1 as secp } from '@noble/curves/secp256k1';
|
|
3
|
+
import { sha256 } from 'multiformats/hashes/sha2';
|
|
4
|
+
const PRIVATE_KEY_BYTE_LENGTH = 32;
|
|
5
|
+
export { PRIVATE_KEY_BYTE_LENGTH as privateKeyLength };
|
|
6
|
+
export function generateKey() {
|
|
7
|
+
return secp.utils.randomPrivateKey();
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Hash and sign message with private key
|
|
11
|
+
*/
|
|
12
|
+
export async function hashAndSign(key, msg) {
|
|
13
|
+
const { digest } = await sha256.digest(msg instanceof Uint8Array ? msg : msg.subarray());
|
|
14
|
+
try {
|
|
15
|
+
const signature = secp.sign(digest, key);
|
|
16
|
+
return signature.toDERRawBytes();
|
|
17
|
+
}
|
|
18
|
+
catch (err) {
|
|
19
|
+
throw new CodeError(String(err), 'ERR_INVALID_INPUT');
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Hash message and verify signature with public key
|
|
24
|
+
*/
|
|
25
|
+
export async function hashAndVerify(key, sig, msg) {
|
|
26
|
+
try {
|
|
27
|
+
const { digest } = await sha256.digest(msg instanceof Uint8Array ? msg : msg.subarray());
|
|
28
|
+
return secp.verify(sig, digest, key);
|
|
29
|
+
}
|
|
30
|
+
catch (err) {
|
|
31
|
+
throw new CodeError(String(err), 'ERR_INVALID_INPUT');
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
export function compressPublicKey(key) {
|
|
35
|
+
const point = secp.ProjectivePoint.fromHex(key).toRawBytes(true);
|
|
36
|
+
return point;
|
|
37
|
+
}
|
|
38
|
+
export function decompressPublicKey(key) {
|
|
39
|
+
const point = secp.ProjectivePoint.fromHex(key).toRawBytes(false);
|
|
40
|
+
return point;
|
|
41
|
+
}
|
|
42
|
+
export function validatePrivateKey(key) {
|
|
43
|
+
try {
|
|
44
|
+
secp.getPublicKey(key, true);
|
|
45
|
+
}
|
|
46
|
+
catch (err) {
|
|
47
|
+
throw new CodeError(String(err), 'ERR_INVALID_PRIVATE_KEY');
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
export function validatePublicKey(key) {
|
|
51
|
+
try {
|
|
52
|
+
secp.ProjectivePoint.fromHex(key);
|
|
53
|
+
}
|
|
54
|
+
catch (err) {
|
|
55
|
+
throw new CodeError(String(err), 'ERR_INVALID_PUBLIC_KEY');
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
export function computePublicKey(privateKey) {
|
|
59
|
+
try {
|
|
60
|
+
return secp.getPublicKey(privateKey, true);
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
throw new CodeError(String(err), 'ERR_INVALID_PRIVATE_KEY');
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
//# sourceMappingURL=secp256k1-browser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"secp256k1-browser.js","sourceRoot":"","sources":["../../../src/keys/secp256k1-browser.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import type { Multibase } from 'multiformats';
|
|
2
|
+
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
2
3
|
export declare class Secp256k1PublicKey {
|
|
3
4
|
private readonly _key;
|
|
4
5
|
constructor(key: Uint8Array);
|
|
5
|
-
verify(data: Uint8Array, sig: Uint8Array): Promise<boolean>;
|
|
6
|
+
verify(data: Uint8Array | Uint8ArrayList, sig: Uint8Array): Promise<boolean>;
|
|
6
7
|
marshal(): Uint8Array;
|
|
7
8
|
get bytes(): Uint8Array;
|
|
8
9
|
equals(key: any): boolean;
|
|
@@ -12,7 +13,7 @@ export declare class Secp256k1PrivateKey {
|
|
|
12
13
|
private readonly _key;
|
|
13
14
|
private readonly _publicKey;
|
|
14
15
|
constructor(key: Uint8Array, publicKey?: Uint8Array);
|
|
15
|
-
sign(message: Uint8Array): Promise<Uint8Array>;
|
|
16
|
+
sign(message: Uint8Array | Uint8ArrayList): Promise<Uint8Array>;
|
|
16
17
|
get public(): Secp256k1PublicKey;
|
|
17
18
|
marshal(): Uint8Array;
|
|
18
19
|
get bytes(): Uint8Array;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1-class.d.ts","sourceRoot":"","sources":["../../../src/keys/secp256k1-class.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;
|
|
1
|
+
{"version":3,"file":"secp256k1-class.d.ts","sourceRoot":"","sources":["../../../src/keys/secp256k1-class.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAC7C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;gBAEpB,GAAG,EAAE,UAAU;IAKtB,MAAM,CAAE,IAAI,EAAE,UAAU,GAAG,cAAc,EAAE,GAAG,EAAE,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC;IAInF,OAAO,IAAK,UAAU;IAItB,IAAI,KAAK,IAAK,UAAU,CAKvB;IAED,MAAM,CAAE,GAAG,EAAE,GAAG,GAAG,OAAO;IAIpB,IAAI,IAAK,OAAO,CAAC,UAAU,CAAC;CAKnC;AAED,qBAAa,mBAAmB;IAC9B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAY;IACjC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAY;gBAE1B,GAAG,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,UAAU;IAO9C,IAAI,CAAE,OAAO,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC;IAItE,IAAI,MAAM,IAAK,kBAAkB,CAEhC;IAED,OAAO,IAAK,UAAU;IAItB,IAAI,KAAK,IAAK,UAAU,CAKvB;IAED,MAAM,CAAE,GAAG,EAAE,GAAG,GAAG,OAAO;IAIpB,IAAI,IAAK,OAAO,CAAC,UAAU,CAAC;IAMlC;;;;;;OAMG;IACG,EAAE,IAAK,OAAO,CAAC,MAAM,CAAC;IAK5B;;OAEG;IACG,MAAM,CAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,SAAe,GAAG,OAAO,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;CAOhF;AAED,wBAAgB,4BAA4B,CAAE,KAAK,EAAE,UAAU,GAAG,mBAAmB,CAEpF;AAED,wBAAgB,2BAA2B,CAAE,KAAK,EAAE,UAAU,GAAG,kBAAkB,CAElF;AAED,wBAAsB,eAAe,IAAK,OAAO,CAAC,mBAAmB,CAAC,CAGrE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1-class.js","sourceRoot":"","sources":["../../../src/keys/secp256k1-class.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,MAAM,EAAE,MAAM,0BAA0B,CAAA;AACjD,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AACtE,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAA;AACxC,OAAO,KAAK,YAAY,MAAM,WAAW,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"secp256k1-class.js","sourceRoot":"","sources":["../../../src/keys/secp256k1-class.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,14 +1,15 @@
|
|
|
1
|
+
import type { Uint8ArrayList } from 'uint8arraylist';
|
|
1
2
|
declare const PRIVATE_KEY_BYTE_LENGTH = 32;
|
|
2
3
|
export { PRIVATE_KEY_BYTE_LENGTH as privateKeyLength };
|
|
3
4
|
export declare function generateKey(): Uint8Array;
|
|
4
5
|
/**
|
|
5
6
|
* Hash and sign message with private key
|
|
6
7
|
*/
|
|
7
|
-
export declare function hashAndSign(key: Uint8Array, msg: Uint8Array): Promise<Uint8Array>;
|
|
8
|
+
export declare function hashAndSign(key: Uint8Array, msg: Uint8Array | Uint8ArrayList): Promise<Uint8Array>;
|
|
8
9
|
/**
|
|
9
10
|
* Hash message and verify signature with public key
|
|
10
11
|
*/
|
|
11
|
-
export declare function hashAndVerify(key: Uint8Array, sig: Uint8Array, msg: Uint8Array): Promise<boolean>;
|
|
12
|
+
export declare function hashAndVerify(key: Uint8Array, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): Promise<boolean>;
|
|
12
13
|
export declare function compressPublicKey(key: Uint8Array): Uint8Array;
|
|
13
14
|
export declare function decompressPublicKey(key: Uint8Array): Uint8Array;
|
|
14
15
|
export declare function validatePrivateKey(key: Uint8Array): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1.d.ts","sourceRoot":"","sources":["../../../src/keys/secp256k1.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"secp256k1.d.ts","sourceRoot":"","sources":["../../../src/keys/secp256k1.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAA;AAEpD,QAAA,MAAM,uBAAuB,KAAK,CAAA;AAElC,OAAO,EAAE,uBAAuB,IAAI,gBAAgB,EAAE,CAAA;AAEtD,wBAAgB,WAAW,IAAK,UAAU,CAEzC;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,UAAU,CAAC,CAmBzG;AAED;;GAEG;AACH,wBAAsB,aAAa,CAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,EAAE,GAAG,EAAE,UAAU,GAAG,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC,CAkBzH;AAED,wBAAgB,iBAAiB,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAG9D;AAED,wBAAgB,mBAAmB,CAAE,GAAG,EAAE,UAAU,GAAG,UAAU,CAGhE;AAED,wBAAgB,kBAAkB,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAMzD;AAED,wBAAgB,iBAAiB,CAAE,GAAG,EAAE,UAAU,GAAG,IAAI,CAMxD;AAED,wBAAgB,gBAAgB,CAAE,UAAU,EAAE,UAAU,GAAG,UAAU,CAMpE"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
+
import crypto from 'node:crypto';
|
|
1
2
|
import { CodeError } from '@libp2p/interface/errors';
|
|
2
3
|
import { secp256k1 as secp } from '@noble/curves/secp256k1';
|
|
3
|
-
import { sha256 } from 'multiformats/hashes/sha2';
|
|
4
4
|
const PRIVATE_KEY_BYTE_LENGTH = 32;
|
|
5
5
|
export { PRIVATE_KEY_BYTE_LENGTH as privateKeyLength };
|
|
6
6
|
export function generateKey() {
|
|
@@ -10,7 +10,16 @@ export function generateKey() {
|
|
|
10
10
|
* Hash and sign message with private key
|
|
11
11
|
*/
|
|
12
12
|
export async function hashAndSign(key, msg) {
|
|
13
|
-
const
|
|
13
|
+
const hash = crypto.createHash('sha256');
|
|
14
|
+
if (msg instanceof Uint8Array) {
|
|
15
|
+
hash.update(msg);
|
|
16
|
+
}
|
|
17
|
+
else {
|
|
18
|
+
for (const buf of msg) {
|
|
19
|
+
hash.update(buf);
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
const digest = hash.digest();
|
|
14
23
|
try {
|
|
15
24
|
const signature = secp.sign(digest, key);
|
|
16
25
|
return signature.toDERRawBytes();
|
|
@@ -23,8 +32,17 @@ export async function hashAndSign(key, msg) {
|
|
|
23
32
|
* Hash message and verify signature with public key
|
|
24
33
|
*/
|
|
25
34
|
export async function hashAndVerify(key, sig, msg) {
|
|
35
|
+
const hash = crypto.createHash('sha256');
|
|
36
|
+
if (msg instanceof Uint8Array) {
|
|
37
|
+
hash.update(msg);
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
for (const buf of msg) {
|
|
41
|
+
hash.update(buf);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
const digest = hash.digest();
|
|
26
45
|
try {
|
|
27
|
-
const { digest } = await sha256.digest(msg);
|
|
28
46
|
return secp.verify(sig, digest, key);
|
|
29
47
|
}
|
|
30
48
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secp256k1.js","sourceRoot":"","sources":["../../../src/keys/secp256k1.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"secp256k1.js","sourceRoot":"","sources":["../../../src/keys/secp256k1.ts"],"names":[],"mappings":"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"}
|
package/dist/src/pbkdf2.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,qCAAqC;AACrC,OAAO,WAAW,MAAM,0BAA0B,CAAA;AAClD,qCAAqC;AACrC,OAAO,SAAS,MAAM,wBAAwB,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAE,QAAgB,EAAE,IAAY,EAAE,UAAkB,EAAE,OAAe,EAAE,IAAY;IAC/G,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,EAAE;
|
|
1
|
+
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../src/pbkdf2.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,qCAAqC;AACrC,OAAO,WAAW,MAAM,0BAA0B,CAAA;AAClD,qCAAqC;AACrC,OAAO,SAAS,MAAM,wBAAwB,CAAA;AAE9C;;;;;;GAMG;AACH,MAAM,QAAQ,GAAG;IACf,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,QAAQ;IACpB,UAAU,EAAE,QAAQ;CACrB,CAAA;AAED;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,MAAM,CAAE,QAAgB,EAAE,IAAY,EAAE,UAAkB,EAAE,OAAe,EAAE,IAAY;IAC/G,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,KAAK,UAAU,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;QAClE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;QAC/C,MAAM,IAAI,SAAS,CAAC,SAAS,IAAI,0CAA0C,KAAK,EAAE,EAAE,2BAA2B,CAAC,CAAA;IAClH,CAAC;IAED,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAA;IAC7B,MAAM,GAAG,GAAG,WAAW,CACrB,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,OAAO,EACP,MAAM,CACP,CAAA;IAED,OAAO,SAAS,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,CAAC,CAAA;AACtC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"random-bytes.js","sourceRoot":"","sources":["../../src/random-bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE1D;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAE,MAAc;IACjD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"random-bytes.js","sourceRoot":"","sources":["../../src/random-bytes.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,WAAW,IAAI,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAE1D;;GAEG;AACH,MAAM,CAAC,OAAO,UAAU,WAAW,CAAE,MAAc;IACjD,IAAI,KAAK,CAAC,MAAM,CAAC,IAAI,MAAM,IAAI,CAAC,EAAE,CAAC;QACjC,MAAM,IAAI,SAAS,CAAC,oDAAoD,EAAE,oBAAoB,CAAC,CAAA;IACjG,CAAC;IACD,OAAO,KAAK,CAAC,MAAM,CAAC,CAAA;AACtB,CAAC"}
|
package/dist/src/util.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAA;AAC/B,OAAO,wBAAwB,CAAA;AAC/B,qCAAqC;AACrC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEtE,MAAM,UAAU,yBAAyB,CAAE,GAAmB,EAAE,GAAY;IAC1E,uCAAuC;IACvC,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA,CAAC,qCAAqC;IAExF,6EAA6E;IAC7E,uDAAuD;IACvD,6EAA6E;IAC7E,8EAA8E;IAC9E,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAE1C,IAAI,GAAG,IAAI,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"util.js","sourceRoot":"","sources":["../../src/util.ts"],"names":[],"mappings":"AAAA,OAAO,wBAAwB,CAAA;AAC/B,OAAO,wBAAwB,CAAA;AAC/B,qCAAqC;AACrC,OAAO,KAAK,MAAM,yBAAyB,CAAA;AAC3C,OAAO,EAAE,MAAM,IAAI,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAC/D,OAAO,EAAE,UAAU,IAAI,oBAAoB,EAAE,MAAM,yBAAyB,CAAA;AAC5E,OAAO,EAAE,QAAQ,IAAI,kBAAkB,EAAE,MAAM,uBAAuB,CAAA;AAEtE,MAAM,UAAU,yBAAyB,CAAE,GAAmB,EAAE,GAAY;IAC1E,uCAAuC;IACvC,IAAI,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC,CAAA,CAAC,qCAAqC;IAExF,6EAA6E;IAC7E,uDAAuD;IACvD,6EAA6E;IAC7E,8EAA8E;IAC9E,GAAG,GAAG,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAA;IAE1C,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC9E,GAAG,GAAG,gBAAgB,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,kBAAkB,CAAC,GAAG,EAAE,WAAW,CAAC,CAAA;AAC7C,CAAC;AAED,qDAAqD;AACrD,MAAM,UAAU,qBAAqB,CAAE,GAAW;IAChD,MAAM,GAAG,GAAG,iBAAiB,CAAC,GAAG,CAAC,CAAA;IAClC,OAAO,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,kBAAkB,CAAC,GAAG,EAAE,QAAQ,CAAC,EAAE,EAAE,CAAC,CAAA;AACzE,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAE,GAAW,EAAE,GAAY;IAC1D,IAAI,GAAG,GAAG,oBAAoB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAA;IAEnD,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;QAChB,IAAI,GAAG,CAAC,MAAM,GAAG,GAAG;YAAE,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAA;QAC9E,GAAG,GAAG,gBAAgB,CAAC,CAAC,IAAI,UAAU,CAAC,GAAG,GAAG,GAAG,CAAC,MAAM,CAAC,EAAE,GAAG,CAAC,CAAC,CAAA;IACjE,CAAC;IAED,OAAO,GAAG,CAAA;AACZ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webcrypto.js","sourceRoot":"","sources":["../../src/webcrypto.ts"],"names":[],"mappings":"AAAA,wBAAwB;AAExB,+EAA+E;AAC/E,6CAA6C;AAC7C,eAAe;IACb,GAAG,CAAE,GAAG,GAAG,UAAU;QACnB,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAA;QAE/B,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI,EAAE;
|
|
1
|
+
{"version":3,"file":"webcrypto.js","sourceRoot":"","sources":["../../src/webcrypto.ts"],"names":[],"mappings":"AAAA,wBAAwB;AAExB,+EAA+E;AAC/E,6CAA6C;AAC7C,eAAe;IACb,GAAG,CAAE,GAAG,GAAG,UAAU;QACnB,MAAM,YAAY,GAAG,GAAG,CAAC,MAAM,CAAA;QAE/B,IAAI,YAAY,IAAI,IAAI,IAAI,YAAY,CAAC,MAAM,IAAI,IAAI,EAAE,CAAC;YACxD,MAAM,MAAM,CAAC,MAAM,CACjB,IAAI,KAAK,CACP,0BAA0B;gBAC1B,0EAA0E;gBAC1E,sEAAsE;gBACtE,2BAA2B;gBAC3B,wFAAwF,CACzF,EACD,EAAE,IAAI,EAAE,wBAAwB,EAAE,CACnC,CAAA;QACH,CAAC;QAED,OAAO,YAAY,CAAA;IACrB,CAAC;CACF,CAAA"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@libp2p/crypto",
|
|
3
|
-
"version": "2.0.8-
|
|
3
|
+
"version": "2.0.8-e2267d437",
|
|
4
4
|
"description": "Crypto primitives for libp2p",
|
|
5
5
|
"license": "Apache-2.0 OR MIT",
|
|
6
6
|
"homepage": "https://github.com/libp2p/js-libp2p/tree/main/packages/crypto#readme",
|
|
@@ -86,7 +86,7 @@
|
|
|
86
86
|
"generate": "protons ./src/keys/keys.proto"
|
|
87
87
|
},
|
|
88
88
|
"dependencies": {
|
|
89
|
-
"@libp2p/interface": "0.1.6-
|
|
89
|
+
"@libp2p/interface": "0.1.6-e2267d437",
|
|
90
90
|
"@noble/curves": "^1.1.0",
|
|
91
91
|
"@noble/hashes": "^1.3.1",
|
|
92
92
|
"multiformats": "^12.1.3",
|
|
@@ -107,6 +107,7 @@
|
|
|
107
107
|
"./dist/src/hmac/index.js": "./dist/src/hmac/index-browser.js",
|
|
108
108
|
"./dist/src/keys/ecdh.js": "./dist/src/keys/ecdh-browser.js",
|
|
109
109
|
"./dist/src/keys/ed25519.js": "./dist/src/keys/ed25519-browser.js",
|
|
110
|
-
"./dist/src/keys/rsa.js": "./dist/src/keys/rsa-browser.js"
|
|
110
|
+
"./dist/src/keys/rsa.js": "./dist/src/keys/rsa-browser.js",
|
|
111
|
+
"./dist/src/keys/secp256k1.js": "./dist/src/keys/secp256k1-browser.js"
|
|
111
112
|
}
|
|
112
113
|
}
|
package/src/aes/index.ts
CHANGED
|
@@ -51,7 +51,7 @@ export interface AESCipher {
|
|
|
51
51
|
* @param key - The key, if length `16` then `AES 128` is used. For length `32`, `AES 256` is used
|
|
52
52
|
* @param iv - Must have length `16`
|
|
53
53
|
*/
|
|
54
|
-
export
|
|
54
|
+
export function create (key: Uint8Array, iv: Uint8Array): AESCipher {
|
|
55
55
|
const mode = cipherMode(key)
|
|
56
56
|
const cipher = ciphers.createCipheriv(mode, key, iv)
|
|
57
57
|
const decipher = ciphers.createDecipheriv(mode, key, iv)
|
package/src/ciphers/aes-gcm.ts
CHANGED
|
@@ -14,7 +14,7 @@ export function create (opts?: CreateOptions): AESCipher {
|
|
|
14
14
|
const iterations = opts?.iterations ?? 32767
|
|
15
15
|
const algorithmTagLength = opts?.algorithmTagLength ?? 16
|
|
16
16
|
|
|
17
|
-
|
|
17
|
+
function encryptWithKey (data: Uint8Array, key: Uint8Array): Uint8Array {
|
|
18
18
|
const nonce = crypto.randomBytes(nonceLength)
|
|
19
19
|
|
|
20
20
|
// Create the cipher instance.
|
|
@@ -43,7 +43,7 @@ export function create (opts?: CreateOptions): AESCipher {
|
|
|
43
43
|
const key = crypto.pbkdf2Sync(password, salt, iterations, keyLength, digest)
|
|
44
44
|
|
|
45
45
|
// Encrypt and prepend salt.
|
|
46
|
-
return uint8ArrayConcat([salt,
|
|
46
|
+
return uint8ArrayConcat([salt, encryptWithKey(Uint8Array.from(data), key)])
|
|
47
47
|
}
|
|
48
48
|
|
|
49
49
|
/**
|
|
@@ -53,7 +53,7 @@ export function create (opts?: CreateOptions): AESCipher {
|
|
|
53
53
|
* this decryption cipher must be the same as those used to create
|
|
54
54
|
* the encryption cipher.
|
|
55
55
|
*/
|
|
56
|
-
|
|
56
|
+
function decryptWithKey (ciphertextAndNonce: Uint8Array, key: Uint8Array): Uint8Array {
|
|
57
57
|
// Create Uint8Arrays of nonce, ciphertext and tag.
|
|
58
58
|
const nonce = ciphertextAndNonce.subarray(0, nonceLength)
|
|
59
59
|
const ciphertext = ciphertextAndNonce.subarray(nonceLength, ciphertextAndNonce.length - algorithmTagLength)
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ed25519 as ed } from '@noble/curves/ed25519'
|
|
2
2
|
import type { Uint8ArrayKeyPair } from './interface'
|
|
3
|
+
import type { Uint8ArrayList } from 'uint8arraylist'
|
|
3
4
|
|
|
4
5
|
const PUBLIC_KEY_BYTE_LENGTH = 32
|
|
5
6
|
const PRIVATE_KEY_BYTE_LENGTH = 64 // private key is actually 32 bytes but for historical reasons we concat private and public keys
|
|
@@ -8,7 +9,7 @@ const KEYS_BYTE_LENGTH = 32
|
|
|
8
9
|
export { PUBLIC_KEY_BYTE_LENGTH as publicKeyLength }
|
|
9
10
|
export { PRIVATE_KEY_BYTE_LENGTH as privateKeyLength }
|
|
10
11
|
|
|
11
|
-
export
|
|
12
|
+
export function generateKey (): Uint8ArrayKeyPair {
|
|
12
13
|
// the actual private key (32 bytes)
|
|
13
14
|
const privateKeyRaw = ed.utils.randomPrivateKey()
|
|
14
15
|
const publicKey = ed.getPublicKey(privateKeyRaw)
|
|
@@ -25,7 +26,7 @@ export async function generateKey (): Promise<Uint8ArrayKeyPair> {
|
|
|
25
26
|
/**
|
|
26
27
|
* Generate keypair from a 32 byte uint8array
|
|
27
28
|
*/
|
|
28
|
-
export
|
|
29
|
+
export function generateKeyFromSeed (seed: Uint8Array): Uint8ArrayKeyPair {
|
|
29
30
|
if (seed.length !== KEYS_BYTE_LENGTH) {
|
|
30
31
|
throw new TypeError('"seed" must be 32 bytes in length.')
|
|
31
32
|
} else if (!(seed instanceof Uint8Array)) {
|
|
@@ -44,14 +45,14 @@ export async function generateKeyFromSeed (seed: Uint8Array): Promise<Uint8Array
|
|
|
44
45
|
}
|
|
45
46
|
}
|
|
46
47
|
|
|
47
|
-
export
|
|
48
|
+
export function hashAndSign (privateKey: Uint8Array, msg: Uint8Array | Uint8ArrayList): Uint8Array {
|
|
48
49
|
const privateKeyRaw = privateKey.subarray(0, KEYS_BYTE_LENGTH)
|
|
49
50
|
|
|
50
|
-
return ed.sign(msg, privateKeyRaw)
|
|
51
|
+
return ed.sign(msg instanceof Uint8Array ? msg : msg.subarray(), privateKeyRaw)
|
|
51
52
|
}
|
|
52
53
|
|
|
53
|
-
export
|
|
54
|
-
return ed.verify(sig, msg, publicKey)
|
|
54
|
+
export function hashAndVerify (publicKey: Uint8Array, sig: Uint8Array, msg: Uint8Array | Uint8ArrayList): boolean {
|
|
55
|
+
return ed.verify(sig, msg instanceof Uint8Array ? msg : msg.subarray(), publicKey)
|
|
55
56
|
}
|
|
56
57
|
|
|
57
58
|
function concatKeys (privateKeyRaw: Uint8Array, publicKey: Uint8Array): Uint8Array {
|
|
@@ -7,6 +7,7 @@ import * as crypto from './ed25519.js'
|
|
|
7
7
|
import { exporter } from './exporter.js'
|
|
8
8
|
import * as pbm from './keys.js'
|
|
9
9
|
import type { Multibase } from 'multiformats'
|
|
10
|
+
import type { Uint8ArrayList } from 'uint8arraylist'
|
|
10
11
|
|
|
11
12
|
export class Ed25519PublicKey {
|
|
12
13
|
private readonly _key: Uint8Array
|
|
@@ -15,7 +16,7 @@ export class Ed25519PublicKey {
|
|
|
15
16
|
this._key = ensureKey(key, crypto.publicKeyLength)
|
|
16
17
|
}
|
|
17
18
|
|
|
18
|
-
async verify (data: Uint8Array, sig: Uint8Array): Promise<boolean> {
|
|
19
|
+
async verify (data: Uint8Array | Uint8ArrayList, sig: Uint8Array): Promise<boolean> {
|
|
19
20
|
return crypto.hashAndVerify(this._key, sig, data)
|
|
20
21
|
}
|
|
21
22
|
|
|
@@ -52,7 +53,7 @@ export class Ed25519PrivateKey {
|
|
|
52
53
|
this._publicKey = ensureKey(publicKey, crypto.publicKeyLength)
|
|
53
54
|
}
|
|
54
55
|
|
|
55
|
-
async sign (message: Uint8Array): Promise<Uint8Array> {
|
|
56
|
+
async sign (message: Uint8Array | Uint8ArrayList): Promise<Uint8Array> {
|
|
56
57
|
return crypto.hashAndSign(this._key, message)
|
|
57
58
|
}
|
|
58
59
|
|
|
@@ -128,12 +129,12 @@ export function unmarshalEd25519PublicKey (bytes: Uint8Array): Ed25519PublicKey
|
|
|
128
129
|
}
|
|
129
130
|
|
|
130
131
|
export async function generateKeyPair (): Promise<Ed25519PrivateKey> {
|
|
131
|
-
const { privateKey, publicKey } =
|
|
132
|
+
const { privateKey, publicKey } = crypto.generateKey()
|
|
132
133
|
return new Ed25519PrivateKey(privateKey, publicKey)
|
|
133
134
|
}
|
|
134
135
|
|
|
135
136
|
export async function generateKeyPairFromSeed (seed: Uint8Array): Promise<Ed25519PrivateKey> {
|
|
136
|
-
const { privateKey, publicKey } =
|
|
137
|
+
const { privateKey, publicKey } = crypto.generateKeyFromSeed(seed)
|
|
137
138
|
return new Ed25519PrivateKey(privateKey, publicKey)
|
|
138
139
|
}
|
|
139
140
|
|