@cardano-sdk/crypto 0.1.27 → 0.1.29
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/cjs/Bip32/Bip32KeyDerivation.d.ts.map +1 -1
- package/dist/cjs/Bip32/Bip32KeyDerivation.js +13 -10
- package/dist/cjs/Bip32/Bip32KeyDerivation.js.map +1 -1
- package/dist/cjs/Bip32/Bip32PrivateKey.js +7 -4
- package/dist/cjs/Bip32/Bip32PrivateKey.js.map +1 -1
- package/dist/cjs/Bip32/Bip32PublicKey.js +7 -4
- package/dist/cjs/Bip32/Bip32PublicKey.js.map +1 -1
- package/dist/cjs/Ed25519e/Ed25519PrivateKey.d.ts.map +1 -1
- package/dist/cjs/Ed25519e/Ed25519PrivateKey.js +18 -12
- package/dist/cjs/Ed25519e/Ed25519PrivateKey.js.map +1 -1
- package/dist/cjs/Ed25519e/Ed25519PublicKey.js +8 -5
- package/dist/cjs/Ed25519e/Ed25519PublicKey.js.map +1 -1
- package/dist/cjs/tsconfig.tsbuildinfo +1 -1
- package/dist/esm/Bip32/Bip32KeyDerivation.d.ts.map +1 -1
- package/dist/esm/Bip32/Bip32KeyDerivation.js +10 -10
- package/dist/esm/Bip32/Bip32KeyDerivation.js.map +1 -1
- package/dist/esm/Bip32/Bip32PrivateKey.js +4 -4
- package/dist/esm/Bip32/Bip32PrivateKey.js.map +1 -1
- package/dist/esm/Bip32/Bip32PublicKey.js +4 -4
- package/dist/esm/Bip32/Bip32PublicKey.js.map +1 -1
- package/dist/esm/Ed25519e/Ed25519PrivateKey.d.ts.map +1 -1
- package/dist/esm/Ed25519e/Ed25519PrivateKey.js +15 -12
- package/dist/esm/Ed25519e/Ed25519PrivateKey.js.map +1 -1
- package/dist/esm/Ed25519e/Ed25519PublicKey.js +5 -5
- package/dist/esm/Ed25519e/Ed25519PublicKey.js.map +1 -1
- package/dist/esm/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bip32KeyDerivation.d.ts","sourceRoot":"","sources":["../../../src/Bip32/Bip32KeyDerivation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Bip32KeyDerivation.d.ts","sourceRoot":"","sources":["../../../src/Bip32/Bip32KeyDerivation.ts"],"names":[],"mappings":"AAkGA,eAAO,MAAM,aAAa,QAAS,MAAM,SAAS,MAAM,KAAG,MAe1D,CAAC;AAWF,eAAO,MAAM,YAAY,QAAS,MAAM,SAAS,MAAM,KAAG,MAuBzD,CAAC"}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
"use strict";
|
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
4
|
+
};
|
|
2
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
6
|
exports.derivePublic = exports.derivePrivate = void 0;
|
|
4
7
|
const util_1 = require("@cardano-sdk/util");
|
|
5
8
|
const arithmetic_1 = require("./arithmetic");
|
|
6
|
-
const libsodium_wrappers_sumo_1 = require("libsodium-wrappers-sumo");
|
|
9
|
+
const libsodium_wrappers_sumo_1 = __importDefault(require("libsodium-wrappers-sumo"));
|
|
7
10
|
const isHardenedDerivation = (index) => index >= 2147483648;
|
|
8
11
|
const deriveHardened = (index, scalar, iv, chainCode) => {
|
|
9
12
|
const data = Buffer.allocUnsafe(1 + 64 + 4);
|
|
@@ -11,25 +14,25 @@ const deriveHardened = (index, scalar, iv, chainCode) => {
|
|
|
11
14
|
scalar.copy(data, 1);
|
|
12
15
|
iv.copy(data, 1 + 32);
|
|
13
16
|
data[0] = 0x00;
|
|
14
|
-
const zMac =
|
|
17
|
+
const zMac = libsodium_wrappers_sumo_1.default.crypto_auth_hmacsha512(data, chainCode);
|
|
15
18
|
data[0] = 0x01;
|
|
16
|
-
const ccMac =
|
|
19
|
+
const ccMac = libsodium_wrappers_sumo_1.default.crypto_auth_hmacsha512(data, chainCode);
|
|
17
20
|
return { ccMac, zMac };
|
|
18
21
|
};
|
|
19
22
|
const deriveSoft = (index, scalar, chainCode) => {
|
|
20
23
|
const data = Buffer.allocUnsafe(1 + 32 + 4);
|
|
21
24
|
data.writeUInt32LE(index, 1 + 32);
|
|
22
|
-
const vk = Buffer.from(
|
|
25
|
+
const vk = Buffer.from(libsodium_wrappers_sumo_1.default.crypto_scalarmult_ed25519_base_noclamp(scalar));
|
|
23
26
|
vk.copy(data, 1);
|
|
24
27
|
data[0] = 0x02;
|
|
25
|
-
const zMac =
|
|
28
|
+
const zMac = libsodium_wrappers_sumo_1.default.crypto_auth_hmacsha512(data, chainCode);
|
|
26
29
|
data[0] = 0x03;
|
|
27
|
-
const ccMac =
|
|
30
|
+
const ccMac = libsodium_wrappers_sumo_1.default.crypto_auth_hmacsha512(data, chainCode);
|
|
28
31
|
return { ccMac, zMac };
|
|
29
32
|
};
|
|
30
33
|
const pointOfTrunc28Mul8 = (sk) => {
|
|
31
34
|
const scalar = (0, arithmetic_1.add28Mul8)(new Uint8Array(32).fill(0), sk);
|
|
32
|
-
return
|
|
35
|
+
return libsodium_wrappers_sumo_1.default.crypto_scalarmult_ed25519_base_noclamp(scalar);
|
|
33
36
|
};
|
|
34
37
|
const derivePrivate = (key, index) => {
|
|
35
38
|
const kl = key.subarray(0, 32);
|
|
@@ -53,13 +56,13 @@ const derivePublic = (key, index) => {
|
|
|
53
56
|
throw new util_1.InvalidArgumentError('index', 'Public key can not be derived from a hardened index.');
|
|
54
57
|
pk.copy(data, 1);
|
|
55
58
|
data[0] = 0x02;
|
|
56
|
-
const z =
|
|
59
|
+
const z = libsodium_wrappers_sumo_1.default.crypto_auth_hmacsha512(data, cc);
|
|
57
60
|
data[0] = 0x03;
|
|
58
|
-
const c =
|
|
61
|
+
const c = libsodium_wrappers_sumo_1.default.crypto_auth_hmacsha512(data, cc);
|
|
59
62
|
const chainCode = c.slice(32, 64);
|
|
60
63
|
const zl = z.slice(0, 32);
|
|
61
64
|
const p = pointOfTrunc28Mul8(zl);
|
|
62
|
-
return Buffer.concat([
|
|
65
|
+
return Buffer.concat([libsodium_wrappers_sumo_1.default.crypto_core_ed25519_add(p, pk), chainCode]);
|
|
63
66
|
};
|
|
64
67
|
exports.derivePublic = derivePublic;
|
|
65
68
|
//# sourceMappingURL=Bip32KeyDerivation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bip32KeyDerivation.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32KeyDerivation.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Bip32KeyDerivation.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32KeyDerivation.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
33
33
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
34
34
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
35
35
|
};
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
36
39
|
var _Bip32PrivateKey_key;
|
|
37
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
41
|
exports.Bip32PrivateKey = exports.BIP32_ED25519_PRIVATE_KEY_LENGTH = void 0;
|
|
@@ -41,8 +44,8 @@ const hexTypes_1 = require("../hexTypes");
|
|
|
41
44
|
const Bip32PublicKey_1 = require("./Bip32PublicKey");
|
|
42
45
|
const Ed25519e_1 = require("../Ed25519e");
|
|
43
46
|
const util_1 = require("@cardano-sdk/util");
|
|
44
|
-
const libsodium_wrappers_sumo_1 = require("libsodium-wrappers-sumo");
|
|
45
47
|
const pbkdf2_1 = require("pbkdf2");
|
|
48
|
+
const libsodium_wrappers_sumo_1 = __importDefault(require("libsodium-wrappers-sumo"));
|
|
46
49
|
const SCALAR_INDEX = 0;
|
|
47
50
|
const SCALAR_SIZE = 32;
|
|
48
51
|
const PBKDF2_ITERATIONS = 4096;
|
|
@@ -76,7 +79,7 @@ class Bip32PrivateKey {
|
|
|
76
79
|
return Bip32PrivateKey.fromBytes(Buffer.from(key, 'hex'));
|
|
77
80
|
}
|
|
78
81
|
async derive(derivationIndices) {
|
|
79
|
-
await libsodium_wrappers_sumo_1.ready;
|
|
82
|
+
await libsodium_wrappers_sumo_1.default.ready;
|
|
80
83
|
let key = Buffer.from(__classPrivateFieldGet(this, _Bip32PrivateKey_key, "f"));
|
|
81
84
|
for (const index of derivationIndices) {
|
|
82
85
|
key = Bip32KeyDerivation.derivePrivate(key, index);
|
|
@@ -87,9 +90,9 @@ class Bip32PrivateKey {
|
|
|
87
90
|
return Ed25519e_1.Ed25519PrivateKey.fromExtendedBytes(__classPrivateFieldGet(this, _Bip32PrivateKey_key, "f").slice(0, Ed25519e_1.EXTENDED_ED25519_PRIVATE_KEY_LENGTH));
|
|
88
91
|
}
|
|
89
92
|
async toPublic() {
|
|
90
|
-
await libsodium_wrappers_sumo_1.ready;
|
|
93
|
+
await libsodium_wrappers_sumo_1.default.ready;
|
|
91
94
|
const scalar = extendedScalar(__classPrivateFieldGet(this, _Bip32PrivateKey_key, "f").slice(0, Ed25519e_1.EXTENDED_ED25519_PRIVATE_KEY_LENGTH));
|
|
92
|
-
const publicKey =
|
|
95
|
+
const publicKey = libsodium_wrappers_sumo_1.default.crypto_scalarmult_ed25519_base_noclamp(scalar);
|
|
93
96
|
return Bip32PublicKey_1.Bip32PublicKey.fromBytes(Buffer.concat([publicKey, __classPrivateFieldGet(this, _Bip32PrivateKey_key, "f").slice(CHAIN_CODE_INDEX, CHAIN_CODE_INDEX + CHAIN_CODE_SIZE)]));
|
|
94
97
|
}
|
|
95
98
|
bytes() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bip32PrivateKey.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32PrivateKey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Bip32PrivateKey.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32PrivateKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -33,6 +33,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
33
33
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
34
34
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
35
35
|
};
|
|
36
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
37
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
38
|
+
};
|
|
36
39
|
var _Bip32PublicKey_key;
|
|
37
40
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
38
41
|
exports.Bip32PublicKey = exports.BIP32_ED25519_PUBLIC_KEY_LENGTH = void 0;
|
|
@@ -40,7 +43,7 @@ const Bip32KeyDerivation = __importStar(require("./Bip32KeyDerivation"));
|
|
|
40
43
|
const hexTypes_1 = require("../hexTypes");
|
|
41
44
|
const Ed25519e_1 = require("../Ed25519e");
|
|
42
45
|
const util_1 = require("@cardano-sdk/util");
|
|
43
|
-
const libsodium_wrappers_sumo_1 = require("libsodium-wrappers-sumo");
|
|
46
|
+
const libsodium_wrappers_sumo_1 = __importDefault(require("libsodium-wrappers-sumo"));
|
|
44
47
|
exports.BIP32_ED25519_PUBLIC_KEY_LENGTH = 64;
|
|
45
48
|
class Bip32PublicKey {
|
|
46
49
|
constructor(key) {
|
|
@@ -59,7 +62,7 @@ class Bip32PublicKey {
|
|
|
59
62
|
return Ed25519e_1.Ed25519PublicKey.fromBytes(__classPrivateFieldGet(this, _Bip32PublicKey_key, "f").slice(0, Ed25519e_1.ED25519_PUBLIC_KEY_LENGTH));
|
|
60
63
|
}
|
|
61
64
|
async derive(derivationIndices) {
|
|
62
|
-
await libsodium_wrappers_sumo_1.ready;
|
|
65
|
+
await libsodium_wrappers_sumo_1.default.ready;
|
|
63
66
|
let key = Buffer.from(__classPrivateFieldGet(this, _Bip32PublicKey_key, "f"));
|
|
64
67
|
for (const index of derivationIndices) {
|
|
65
68
|
key = Bip32KeyDerivation.derivePublic(key, index);
|
|
@@ -73,8 +76,8 @@ class Bip32PublicKey {
|
|
|
73
76
|
return (0, hexTypes_1.Bip32PublicKeyHex)(Buffer.from(__classPrivateFieldGet(this, _Bip32PublicKey_key, "f")).toString('hex'));
|
|
74
77
|
}
|
|
75
78
|
async hash() {
|
|
76
|
-
await libsodium_wrappers_sumo_1.ready;
|
|
77
|
-
const hash =
|
|
79
|
+
await libsodium_wrappers_sumo_1.default.ready;
|
|
80
|
+
const hash = libsodium_wrappers_sumo_1.default.crypto_generichash(hexTypes_1.BIP32_PUBLIC_KEY_HASH_LENGTH, __classPrivateFieldGet(this, _Bip32PublicKey_key, "f"));
|
|
78
81
|
return (0, hexTypes_1.Bip32PublicKeyHashHex)(Buffer.from(hash).toString('hex'));
|
|
79
82
|
}
|
|
80
83
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bip32PublicKey.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32PublicKey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Bip32PublicKey.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32PublicKey.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,yEAA2D;AAC3D,0CAAqG;AACrG,0CAA0E;AAC1E,4CAAyD;AACzD,sFAA6C;AAEhC,QAAA,+BAA+B,GAAG,EAAE,CAAC;AAGlD,MAAa,cAAc;IAQzB,YAAoB,GAAe;QAPnC,sCAA0B;QAQxB,uBAAA,IAAI,uBAAQ,GAAG,MAAA,CAAC;IAClB,CAAC;IAOD,MAAM,CAAC,SAAS,CAAC,GAAe;QAC9B,IAAI,GAAG,CAAC,MAAM,KAAK,uCAA+B;YAChD,MAAM,IAAI,2BAAoB,CAC5B,KAAK,EACL,iBAAiB,uCAA+B,mBAAmB,GAAG,CAAC,MAAM,uBAAuB,CACrG,CAAC;QACJ,OAAO,IAAI,cAAc,CAAC,GAAG,CAAC,CAAC;IACjC,CAAC;IAOD,MAAM,CAAC,OAAO,CAAC,GAAsB;QACnC,OAAO,cAAc,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC,CAAC;IAC3D,CAAC;IAMD,QAAQ;QACN,OAAO,2BAAgB,CAAC,SAAS,CAAC,uBAAA,IAAI,2BAAK,CAAC,KAAK,CAAC,CAAC,EAAE,oCAAyB,CAAC,CAAC,CAAC;IACnF,CAAC;IAQD,KAAK,CAAC,MAAM,CAAC,iBAA2B;QACtC,MAAM,iCAAM,CAAC,KAAK,CAAC;QACnB,IAAI,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,uBAAA,IAAI,2BAAK,CAAC,CAAC;QAEjC,KAAK,MAAM,KAAK,IAAI,iBAAiB,EAAE;YACrC,GAAG,GAAG,kBAAkB,CAAC,YAAY,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;SACnD;QAED,OAAO,cAAc,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;IACvC,CAAC;IAGD,KAAK;QACH,OAAO,uBAAA,IAAI,2BAAK,CAAC;IACnB,CAAC;IAGD,GAAG;QACD,OAAO,IAAA,4BAAiB,EAAC,MAAM,CAAC,IAAI,CAAC,uBAAA,IAAI,2BAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAGD,KAAK,CAAC,IAAI;QACR,MAAM,iCAAM,CAAC,KAAK,CAAC;QACnB,MAAM,IAAI,GAAG,iCAAM,CAAC,kBAAkB,CAAC,uCAA4B,EAAE,uBAAA,IAAI,2BAAK,CAAC,CAAC;QAChF,OAAO,IAAA,gCAAqB,EAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;CACF;AA5ED,wCA4EC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ed25519PrivateKey.d.ts","sourceRoot":"","sources":["../../../src/Ed25519e/Ed25519PrivateKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAwB,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"Ed25519PrivateKey.d.ts","sourceRoot":"","sources":["../../../src/Ed25519e/Ed25519PrivateKey.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,4BAA4B,EAAE,0BAA0B,EAAE,MAAM,aAAa,CAAC;AACvF,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,OAAO,EAAwB,MAAM,mBAAmB,CAAC;AAQlE,eAAO,MAAM,iCAAiC,KAAK,CAAC;AACpD,eAAO,MAAM,mCAAmC,KAAK,CAAC;AA2CtD,oBAAY,qBAAqB;IAC/B,MAAM,WAAW;IACjB,QAAQ,aAAa;CACtB;AAGD,qBAAa,iBAAiB;;IAE5B,QAAQ,CAAC,MAAM,EAAE,qBAAqB,CAAC;IAQvC,OAAO;IAUD,QAAQ,IAAI,OAAO,CAAC,gBAAgB,CAAC;IAgBrC,IAAI,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAiBvD,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,UAAU,GAAG,iBAAiB;IAelE,MAAM,CAAC,iBAAiB,CAAC,WAAW,EAAE,UAAU,GAAG,iBAAiB;IAcpE,MAAM,CAAC,aAAa,CAAC,WAAW,EAAE,0BAA0B,GAAG,iBAAiB;IAShF,MAAM,CAAC,eAAe,CAAC,WAAW,EAAE,4BAA4B,GAAG,iBAAiB;IAKpF,KAAK,IAAI,UAAU;IAKnB,GAAG,IAAI,0BAA0B,GAAG,4BAA4B;CAKjE"}
|
|
@@ -10,6 +10,9 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
13
16
|
var _Ed25519PrivateKey_keyMaterial;
|
|
14
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
18
|
exports.Ed25519PrivateKey = exports.Ed25519PrivateKeyType = exports.EXTENDED_ED25519_PRIVATE_KEY_LENGTH = exports.NORMAL_ED25519_PRIVATE_KEY_LENGTH = void 0;
|
|
@@ -17,7 +20,7 @@ const hexTypes_1 = require("../hexTypes");
|
|
|
17
20
|
const Ed25519PublicKey_1 = require("./Ed25519PublicKey");
|
|
18
21
|
const Ed25519Signature_1 = require("./Ed25519Signature");
|
|
19
22
|
const util_1 = require("@cardano-sdk/util");
|
|
20
|
-
const libsodium_wrappers_sumo_1 = require("libsodium-wrappers-sumo");
|
|
23
|
+
const libsodium_wrappers_sumo_1 = __importDefault(require("libsodium-wrappers-sumo"));
|
|
21
24
|
const SCALAR_INDEX = 0;
|
|
22
25
|
const SCALAR_SIZE = 32;
|
|
23
26
|
const IV_INDEX = 32;
|
|
@@ -28,12 +31,15 @@ const extendedScalar = (extendedKey) => extendedKey.slice(SCALAR_INDEX, SCALAR_S
|
|
|
28
31
|
const extendedIv = (extendedKey) => extendedKey.slice(IV_INDEX, IV_INDEX + IV_SIZE);
|
|
29
32
|
const signExtendedDetached = (extendedKey, message) => {
|
|
30
33
|
const scalar = extendedScalar(extendedKey);
|
|
31
|
-
const publicKey =
|
|
32
|
-
const nonce =
|
|
33
|
-
const r =
|
|
34
|
-
let hram =
|
|
35
|
-
hram =
|
|
36
|
-
return Buffer.concat([
|
|
34
|
+
const publicKey = libsodium_wrappers_sumo_1.default.crypto_scalarmult_ed25519_base_noclamp(scalar);
|
|
35
|
+
const nonce = libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_reduce(libsodium_wrappers_sumo_1.default.crypto_hash_sha512(Buffer.concat([extendedIv(extendedKey), message])));
|
|
36
|
+
const r = libsodium_wrappers_sumo_1.default.crypto_scalarmult_ed25519_base_noclamp(nonce);
|
|
37
|
+
let hram = libsodium_wrappers_sumo_1.default.crypto_hash_sha512(Buffer.concat([r, publicKey, message]));
|
|
38
|
+
hram = libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_reduce(hram);
|
|
39
|
+
return Buffer.concat([
|
|
40
|
+
r,
|
|
41
|
+
libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_add(libsodium_wrappers_sumo_1.default.crypto_core_ed25519_scalar_mul(hram, scalar), nonce)
|
|
42
|
+
]);
|
|
37
43
|
};
|
|
38
44
|
var Ed25519PrivateKeyType;
|
|
39
45
|
(function (Ed25519PrivateKeyType) {
|
|
@@ -47,16 +53,16 @@ class Ed25519PrivateKey {
|
|
|
47
53
|
this.__type = type;
|
|
48
54
|
}
|
|
49
55
|
async toPublic() {
|
|
50
|
-
await libsodium_wrappers_sumo_1.ready;
|
|
56
|
+
await libsodium_wrappers_sumo_1.default.ready;
|
|
51
57
|
return Ed25519PublicKey_1.Ed25519PublicKey.fromBytes(this.__type === Ed25519PrivateKeyType.Extended
|
|
52
|
-
?
|
|
53
|
-
:
|
|
58
|
+
? libsodium_wrappers_sumo_1.default.crypto_scalarmult_ed25519_base_noclamp(extendedScalar(__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f")))
|
|
59
|
+
: libsodium_wrappers_sumo_1.default.crypto_sign_seed_keypair(__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f")).publicKey);
|
|
54
60
|
}
|
|
55
61
|
async sign(message) {
|
|
56
|
-
await libsodium_wrappers_sumo_1.ready;
|
|
62
|
+
await libsodium_wrappers_sumo_1.default.ready;
|
|
57
63
|
return Ed25519Signature_1.Ed25519Signature.fromBytes(this.__type === Ed25519PrivateKeyType.Extended
|
|
58
64
|
? signExtendedDetached(__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f"), Buffer.from(message, 'hex'))
|
|
59
|
-
:
|
|
65
|
+
: libsodium_wrappers_sumo_1.default.crypto_sign_detached(Buffer.from(message, 'hex'), Buffer.concat([__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f"), (await this.toPublic()).bytes()])));
|
|
60
66
|
}
|
|
61
67
|
static fromNormalBytes(keyMaterial) {
|
|
62
68
|
if (keyMaterial.length !== exports.NORMAL_ED25519_PRIVATE_KEY_LENGTH)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ed25519PrivateKey.js","sourceRoot":"","sources":["../../../src/Ed25519e/Ed25519PrivateKey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Ed25519PrivateKey.js","sourceRoot":"","sources":["../../../src/Ed25519e/Ed25519PrivateKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -10,13 +10,16 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
|
|
|
10
10
|
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
11
11
|
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
12
12
|
};
|
|
13
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
14
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
15
|
+
};
|
|
13
16
|
var _Ed25519PublicKey_keyMaterial;
|
|
14
17
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
15
18
|
exports.Ed25519PublicKey = exports.ED25519_PUBLIC_KEY_LENGTH = void 0;
|
|
16
19
|
const Ed25519KeyHash_1 = require("./Ed25519KeyHash");
|
|
17
20
|
const hexTypes_1 = require("../hexTypes");
|
|
18
21
|
const util_1 = require("@cardano-sdk/util");
|
|
19
|
-
const libsodium_wrappers_sumo_1 = require("libsodium-wrappers-sumo");
|
|
22
|
+
const libsodium_wrappers_sumo_1 = __importDefault(require("libsodium-wrappers-sumo"));
|
|
20
23
|
exports.ED25519_PUBLIC_KEY_LENGTH = 32;
|
|
21
24
|
class Ed25519PublicKey {
|
|
22
25
|
constructor(keyMaterial) {
|
|
@@ -24,8 +27,8 @@ class Ed25519PublicKey {
|
|
|
24
27
|
__classPrivateFieldSet(this, _Ed25519PublicKey_keyMaterial, keyMaterial, "f");
|
|
25
28
|
}
|
|
26
29
|
async verify(signature, message) {
|
|
27
|
-
await libsodium_wrappers_sumo_1.ready;
|
|
28
|
-
return
|
|
30
|
+
await libsodium_wrappers_sumo_1.default.ready;
|
|
31
|
+
return libsodium_wrappers_sumo_1.default.crypto_sign_verify_detached(signature.bytes(), Buffer.from(message, 'hex'), __classPrivateFieldGet(this, _Ed25519PublicKey_keyMaterial, "f"));
|
|
29
32
|
}
|
|
30
33
|
static fromBytes(keyMaterial) {
|
|
31
34
|
if (keyMaterial.length !== exports.ED25519_PUBLIC_KEY_LENGTH)
|
|
@@ -36,8 +39,8 @@ class Ed25519PublicKey {
|
|
|
36
39
|
return Ed25519PublicKey.fromBytes(Buffer.from(keyMaterial, 'hex'));
|
|
37
40
|
}
|
|
38
41
|
async hash() {
|
|
39
|
-
await libsodium_wrappers_sumo_1.ready;
|
|
40
|
-
const hash =
|
|
42
|
+
await libsodium_wrappers_sumo_1.default.ready;
|
|
43
|
+
const hash = libsodium_wrappers_sumo_1.default.crypto_generichash(Ed25519KeyHash_1.ED25519_PUBLIC_KEY_HASH_LENGTH, __classPrivateFieldGet(this, _Ed25519PublicKey_keyMaterial, "f"));
|
|
41
44
|
return Ed25519KeyHash_1.Ed25519KeyHash.fromBytes(hash);
|
|
42
45
|
}
|
|
43
46
|
bytes() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ed25519PublicKey.js","sourceRoot":"","sources":["../../../src/Ed25519e/Ed25519PublicKey.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Ed25519PublicKey.js","sourceRoot":"","sources":["../../../src/Ed25519e/Ed25519PublicKey.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;AAAA,qDAAkF;AAClF,0CAAkD;AAElD,4CAAkE;AAClE,sFAA6C;AAEhC,QAAA,yBAAyB,GAAG,EAAE,CAAC;AAM5C,MAAa,gBAAgB;IAQ3B,YAAY,WAAuB;QAPnC,gDAAkC;QAQhC,uBAAA,IAAI,iCAAgB,WAAW,MAAA,CAAC;IAClC,CAAC;IAUD,KAAK,CAAC,MAAM,CAAC,SAA2B,EAAE,OAAgB;QACxD,MAAM,iCAAM,CAAC,KAAK,CAAC;QACnB,OAAO,iCAAM,CAAC,2BAA2B,CAAC,SAAS,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,OAAO,EAAE,KAAK,CAAC,EAAE,uBAAA,IAAI,qCAAa,CAAC,CAAC;IAC/G,CAAC;IAOD,MAAM,CAAC,SAAS,CAAC,WAAuB;QACtC,IAAI,WAAW,CAAC,MAAM,KAAK,iCAAyB;YAClD,MAAM,IAAI,2BAAoB,CAC5B,aAAa,EACb,iBAAiB,iCAAyB,mBAAmB,WAAW,CAAC,MAAM,uBAAuB,CACvG,CAAC;QACJ,OAAO,IAAI,gBAAgB,CAAC,WAAW,CAAC,CAAC;IAC3C,CAAC;IAOD,MAAM,CAAC,OAAO,CAAC,WAAgC;QAC7C,OAAO,gBAAgB,CAAC,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,CAAC,CAAC;IACrE,CAAC;IAGD,KAAK,CAAC,IAAI;QACR,MAAM,iCAAM,CAAC,KAAK,CAAC;QACnB,MAAM,IAAI,GAAG,iCAAM,CAAC,kBAAkB,CAAC,+CAA8B,EAAE,uBAAA,IAAI,qCAAa,CAAC,CAAC;QAC1F,OAAO,+BAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAGD,KAAK;QACH,OAAO,uBAAA,IAAI,qCAAa,CAAC;IAC3B,CAAC;IAGD,GAAG;QACD,OAAO,IAAA,8BAAmB,EAAC,MAAM,CAAC,IAAI,CAAC,uBAAA,IAAI,qCAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;CACF;AAhED,4CAgEC"}
|