@keplr-wallet/crypto 0.12.6 → 0.12.7-rc.0
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/build/key.d.ts +5 -11
- package/build/key.js +5 -15
- package/build/key.js.map +1 -1
- package/build/key.spec.js +1 -3
- package/build/key.spec.js.map +1 -1
- package/package.json +2 -2
- package/src/key.spec.ts +6 -3
- package/src/key.ts +10 -20
package/build/key.d.ts
CHANGED
|
@@ -5,12 +5,11 @@ export declare class PrivKeySecp256k1 {
|
|
|
5
5
|
constructor(privKey: Uint8Array);
|
|
6
6
|
toBytes(): Uint8Array;
|
|
7
7
|
getPubKey(): PubKeySecp256k1;
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
signDigest32(digest: Uint8Array): Uint8Array;
|
|
8
|
+
signDigest32(digest: Uint8Array): {
|
|
9
|
+
readonly r: Uint8Array;
|
|
10
|
+
readonly s: Uint8Array;
|
|
11
|
+
readonly v: number | null;
|
|
12
|
+
};
|
|
14
13
|
}
|
|
15
14
|
export declare class PubKeySecp256k1 {
|
|
16
15
|
protected readonly pubKey: Uint8Array;
|
|
@@ -23,10 +22,5 @@ export declare class PubKeySecp256k1 {
|
|
|
23
22
|
getCosmosAddress(): Uint8Array;
|
|
24
23
|
getEthAddress(): Uint8Array;
|
|
25
24
|
toKeyPair(): ec.KeyPair;
|
|
26
|
-
/**
|
|
27
|
-
* @deprecated Use `verifyDigest32(Hash.sha256(data))` instead.
|
|
28
|
-
* @param msg
|
|
29
|
-
*/
|
|
30
|
-
verify(msg: Uint8Array, signature: Uint8Array): boolean;
|
|
31
25
|
verifyDigest32(digest: Uint8Array, signature: Uint8Array): boolean;
|
|
32
26
|
}
|
package/build/key.js
CHANGED
|
@@ -24,13 +24,6 @@ class PrivKeySecp256k1 {
|
|
|
24
24
|
const key = secp256k1.keyFromPrivate(this.privKey);
|
|
25
25
|
return new PubKeySecp256k1(new Uint8Array(key.getPublic().encodeCompressed("array")));
|
|
26
26
|
}
|
|
27
|
-
/**
|
|
28
|
-
* @deprecated Use `signDigest32(Hash.sha256(data))` instead.
|
|
29
|
-
* @param msg
|
|
30
|
-
*/
|
|
31
|
-
sign(msg) {
|
|
32
|
-
return this.signDigest32(hash_1.Hash.sha256(msg));
|
|
33
|
-
}
|
|
34
27
|
signDigest32(digest) {
|
|
35
28
|
if (digest.length !== 32) {
|
|
36
29
|
throw new Error(`Invalid length of digest to sign: ${digest.length}`);
|
|
@@ -40,7 +33,11 @@ class PrivKeySecp256k1 {
|
|
|
40
33
|
const signature = key.sign(digest, {
|
|
41
34
|
canonical: true,
|
|
42
35
|
});
|
|
43
|
-
return
|
|
36
|
+
return {
|
|
37
|
+
r: new Uint8Array(signature.r.toArray("be", 32)),
|
|
38
|
+
s: new Uint8Array(signature.s.toArray("be", 32)),
|
|
39
|
+
v: signature.recoveryParam,
|
|
40
|
+
};
|
|
44
41
|
}
|
|
45
42
|
}
|
|
46
43
|
exports.PrivKeySecp256k1 = PrivKeySecp256k1;
|
|
@@ -88,13 +85,6 @@ class PubKeySecp256k1 {
|
|
|
88
85
|
const secp256k1 = new elliptic_1.ec("secp256k1");
|
|
89
86
|
return secp256k1.keyFromPublic(buffer_1.Buffer.from(this.pubKey).toString("hex"), "hex");
|
|
90
87
|
}
|
|
91
|
-
/**
|
|
92
|
-
* @deprecated Use `verifyDigest32(Hash.sha256(data))` instead.
|
|
93
|
-
* @param msg
|
|
94
|
-
*/
|
|
95
|
-
verify(msg, signature) {
|
|
96
|
-
return this.verifyDigest32(hash_1.Hash.sha256(msg), signature);
|
|
97
|
-
}
|
|
98
88
|
verifyDigest32(digest, signature) {
|
|
99
89
|
if (digest.length !== 32) {
|
|
100
90
|
throw new Error(`Invalid length of digest to verify: ${digest.length}`);
|
package/build/key.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key.js","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":";;;;;;AAAA,uCAA8B;AAC9B,0DAAiC;AAEjC,oCAAiC;AACjC,iCAA8B;AAE9B,MAAa,gBAAgB;IAC3B,MAAM,CAAC,iBAAiB;QACtB,MAAM,SAAS,GAAG,IAAI,aAAE,CAAC,WAAW,CAAC,CAAC;QAEtC,OAAO,IAAI,gBAAgB,CACzB,eAAM,CAAC,IAAI,CAAC,SAAS,CAAC,UAAU,EAAE,CAAC,UAAU,EAAE,CAAC,OAAO,EAAE,CAAC,CAC3D,CAAC;IACJ,CAAC;IAED,YAA+B,OAAmB;QAAnB,YAAO,GAAP,OAAO,CAAY;IAAG,CAAC;IAEtD,OAAO;QACL,OAAO,IAAI,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IACtC,CAAC;IAED,SAAS;QACP,MAAM,SAAS,GAAG,IAAI,aAAE,CAAC,WAAW,CAAC,CAAC;QAEtC,MAAM,GAAG,GAAG,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEnD,OAAO,IAAI,eAAe,CACxB,IAAI,UAAU,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC,CAC1D,CAAC;IACJ,CAAC;IAED
|
|
1
|
+
{"version":3,"file":"key.js","sourceRoot":"","sources":["../src/key.ts"],"names":[],"mappings":"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"}
|
package/build/key.spec.js
CHANGED
|
@@ -20,9 +20,7 @@ describe("Test priv key", () => {
|
|
|
20
20
|
const pubKey = privKey.getPubKey();
|
|
21
21
|
const data = new Uint8Array([1, 2, 3]);
|
|
22
22
|
const signature = privKey.signDigest32(hash_1.Hash.sha256(data));
|
|
23
|
-
expect(
|
|
24
|
-
expect(pubKey.verify(data, signature)).toBe(true);
|
|
25
|
-
expect(pubKey.verifyDigest32(hash_1.Hash.sha256(data), signature)).toBe(true);
|
|
23
|
+
expect(pubKey.verifyDigest32(hash_1.Hash.sha256(data), new Uint8Array([...signature.r, ...signature.s]))).toBe(true);
|
|
26
24
|
});
|
|
27
25
|
it("test assertions", () => {
|
|
28
26
|
const privKey = key_1.PrivKeySecp256k1.generateRandomKey();
|
package/build/key.spec.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"key.spec.js","sourceRoot":"","sources":["../src/key.spec.ts"],"names":[],"mappings":";;AAAA,yCAAsC;AACtC,+BAA0D;AAC1D,iCAA8B;AAE9B,QAAQ,CAAC,eAAe,EAAE,GAAG,EAAE;IAC7B,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QACpD,MAAM,QAAQ,GACZ,gFAAgF,CAAC;QAEnF,MAAM,OAAO,GAAG,IAAI,sBAAgB,CAClC,mBAAQ,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAC9C,CAAC;QACF,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC,CAAC,aAAa,CACpC,IAAI,UAAU,CAAC;YACb,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG;YACrE,CAAC,EAAE,EAAE,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG;YACnE,GAAG;SACJ,CAAC,CACH,CAAC;QACF,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAC5D,oIAAoI,CACrI,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,8CAA8C,EAAE,GAAG,EAAE;QACtD,MAAM,OAAO,GAAG,sBAAgB,CAAC,iBAAiB,EAAE,CAAC;QACrD,MAAM,MAAM,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;QAEnC,MAAM,IAAI,GAAG,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,OAAO,CAAC,YAAY,CAAC,WAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"key.spec.js","sourceRoot":"","sources":["../src/key.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@keplr-wallet/crypto",
|
|
3
|
-
"version": "0.12.
|
|
3
|
+
"version": "0.12.7-rc.0",
|
|
4
4
|
"main": "build/index.js",
|
|
5
5
|
"author": "chainapsis",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -30,5 +30,5 @@
|
|
|
30
30
|
"elliptic": "^6.5.3",
|
|
31
31
|
"sha.js": "^2.4.11"
|
|
32
32
|
},
|
|
33
|
-
"gitHead": "
|
|
33
|
+
"gitHead": "17daba5182fb6125a202c2c393a24fe246e54edb"
|
|
34
34
|
}
|
package/src/key.spec.ts
CHANGED
|
@@ -29,10 +29,13 @@ describe("Test priv key", () => {
|
|
|
29
29
|
|
|
30
30
|
const data = new Uint8Array([1, 2, 3]);
|
|
31
31
|
const signature = privKey.signDigest32(Hash.sha256(data));
|
|
32
|
-
expect(signature).toStrictEqual(privKey.sign(data));
|
|
33
32
|
|
|
34
|
-
expect(
|
|
35
|
-
|
|
33
|
+
expect(
|
|
34
|
+
pubKey.verifyDigest32(
|
|
35
|
+
Hash.sha256(data),
|
|
36
|
+
new Uint8Array([...signature.r, ...signature.s])
|
|
37
|
+
)
|
|
38
|
+
).toBe(true);
|
|
36
39
|
});
|
|
37
40
|
|
|
38
41
|
it("test assertions", () => {
|
package/src/key.ts
CHANGED
|
@@ -29,15 +29,11 @@ export class PrivKeySecp256k1 {
|
|
|
29
29
|
);
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
return this.signDigest32(Hash.sha256(msg));
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
signDigest32(digest: Uint8Array): Uint8Array {
|
|
32
|
+
signDigest32(digest: Uint8Array): {
|
|
33
|
+
readonly r: Uint8Array;
|
|
34
|
+
readonly s: Uint8Array;
|
|
35
|
+
readonly v: number | null;
|
|
36
|
+
} {
|
|
41
37
|
if (digest.length !== 32) {
|
|
42
38
|
throw new Error(`Invalid length of digest to sign: ${digest.length}`);
|
|
43
39
|
}
|
|
@@ -49,9 +45,11 @@ export class PrivKeySecp256k1 {
|
|
|
49
45
|
canonical: true,
|
|
50
46
|
});
|
|
51
47
|
|
|
52
|
-
return
|
|
53
|
-
|
|
54
|
-
|
|
48
|
+
return {
|
|
49
|
+
r: new Uint8Array(signature.r.toArray("be", 32)),
|
|
50
|
+
s: new Uint8Array(signature.s.toArray("be", 32)),
|
|
51
|
+
v: signature.recoveryParam,
|
|
52
|
+
};
|
|
55
53
|
}
|
|
56
54
|
}
|
|
57
55
|
|
|
@@ -115,14 +113,6 @@ export class PubKeySecp256k1 {
|
|
|
115
113
|
);
|
|
116
114
|
}
|
|
117
115
|
|
|
118
|
-
/**
|
|
119
|
-
* @deprecated Use `verifyDigest32(Hash.sha256(data))` instead.
|
|
120
|
-
* @param msg
|
|
121
|
-
*/
|
|
122
|
-
verify(msg: Uint8Array, signature: Uint8Array): boolean {
|
|
123
|
-
return this.verifyDigest32(Hash.sha256(msg), signature);
|
|
124
|
-
}
|
|
125
|
-
|
|
126
116
|
verifyDigest32(digest: Uint8Array, signature: Uint8Array): boolean {
|
|
127
117
|
if (digest.length !== 32) {
|
|
128
118
|
throw new Error(`Invalid length of digest to verify: ${digest.length}`);
|