@cardano-sdk/crypto 0.1.26 → 0.1.28
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 -4
|
@@ -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,6 +1,6 @@
|
|
|
1
1
|
import { InvalidArgumentError } from '@cardano-sdk/util';
|
|
2
2
|
import { add256bits, add28Mul8 } from './arithmetic.js';
|
|
3
|
-
import
|
|
3
|
+
import sodium from 'libsodium-wrappers-sumo';
|
|
4
4
|
const isHardenedDerivation = (index) => index >= 2147483648;
|
|
5
5
|
const deriveHardened = (index, scalar, iv, chainCode) => {
|
|
6
6
|
const data = Buffer.allocUnsafe(1 + 64 + 4);
|
|
@@ -8,25 +8,25 @@ const deriveHardened = (index, scalar, iv, chainCode) => {
|
|
|
8
8
|
scalar.copy(data, 1);
|
|
9
9
|
iv.copy(data, 1 + 32);
|
|
10
10
|
data[0] = 0x00;
|
|
11
|
-
const zMac = crypto_auth_hmacsha512(data, chainCode);
|
|
11
|
+
const zMac = sodium.crypto_auth_hmacsha512(data, chainCode);
|
|
12
12
|
data[0] = 0x01;
|
|
13
|
-
const ccMac = crypto_auth_hmacsha512(data, chainCode);
|
|
13
|
+
const ccMac = sodium.crypto_auth_hmacsha512(data, chainCode);
|
|
14
14
|
return { ccMac, zMac };
|
|
15
15
|
};
|
|
16
16
|
const deriveSoft = (index, scalar, chainCode) => {
|
|
17
17
|
const data = Buffer.allocUnsafe(1 + 32 + 4);
|
|
18
18
|
data.writeUInt32LE(index, 1 + 32);
|
|
19
|
-
const vk = Buffer.from(crypto_scalarmult_ed25519_base_noclamp(scalar));
|
|
19
|
+
const vk = Buffer.from(sodium.crypto_scalarmult_ed25519_base_noclamp(scalar));
|
|
20
20
|
vk.copy(data, 1);
|
|
21
21
|
data[0] = 0x02;
|
|
22
|
-
const zMac = crypto_auth_hmacsha512(data, chainCode);
|
|
22
|
+
const zMac = sodium.crypto_auth_hmacsha512(data, chainCode);
|
|
23
23
|
data[0] = 0x03;
|
|
24
|
-
const ccMac = crypto_auth_hmacsha512(data, chainCode);
|
|
24
|
+
const ccMac = sodium.crypto_auth_hmacsha512(data, chainCode);
|
|
25
25
|
return { ccMac, zMac };
|
|
26
26
|
};
|
|
27
27
|
const pointOfTrunc28Mul8 = (sk) => {
|
|
28
28
|
const scalar = add28Mul8(new Uint8Array(32).fill(0), sk);
|
|
29
|
-
return crypto_scalarmult_ed25519_base_noclamp(scalar);
|
|
29
|
+
return sodium.crypto_scalarmult_ed25519_base_noclamp(scalar);
|
|
30
30
|
};
|
|
31
31
|
export const derivePrivate = (key, index) => {
|
|
32
32
|
const kl = key.subarray(0, 32);
|
|
@@ -49,12 +49,12 @@ export const derivePublic = (key, index) => {
|
|
|
49
49
|
throw new InvalidArgumentError('index', 'Public key can not be derived from a hardened index.');
|
|
50
50
|
pk.copy(data, 1);
|
|
51
51
|
data[0] = 0x02;
|
|
52
|
-
const z = crypto_auth_hmacsha512(data, cc);
|
|
52
|
+
const z = sodium.crypto_auth_hmacsha512(data, cc);
|
|
53
53
|
data[0] = 0x03;
|
|
54
|
-
const c = crypto_auth_hmacsha512(data, cc);
|
|
54
|
+
const c = sodium.crypto_auth_hmacsha512(data, cc);
|
|
55
55
|
const chainCode = c.slice(32, 64);
|
|
56
56
|
const zl = z.slice(0, 32);
|
|
57
57
|
const p = pointOfTrunc28Mul8(zl);
|
|
58
|
-
return Buffer.concat([crypto_core_ed25519_add(p, pk), chainCode]);
|
|
58
|
+
return Buffer.concat([sodium.crypto_core_ed25519_add(p, pk), chainCode]);
|
|
59
59
|
};
|
|
60
60
|
//# sourceMappingURL=Bip32KeyDerivation.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bip32KeyDerivation.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32KeyDerivation.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACrD,OAAO,
|
|
1
|
+
{"version":3,"file":"Bip32KeyDerivation.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32KeyDerivation.ts"],"names":[],"mappings":"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"}
|
|
@@ -15,8 +15,8 @@ import { Bip32PrivateKeyHex } from '../hexTypes.js';
|
|
|
15
15
|
import { Bip32PublicKey } from './Bip32PublicKey.js';
|
|
16
16
|
import { EXTENDED_ED25519_PRIVATE_KEY_LENGTH, Ed25519PrivateKey } from '../Ed25519e/index.js';
|
|
17
17
|
import { InvalidArgumentError } from '@cardano-sdk/util';
|
|
18
|
-
import { crypto_scalarmult_ed25519_base_noclamp, ready } from 'libsodium-wrappers-sumo';
|
|
19
18
|
import { pbkdf2Sync } from 'pbkdf2';
|
|
19
|
+
import sodium from 'libsodium-wrappers-sumo';
|
|
20
20
|
const SCALAR_INDEX = 0;
|
|
21
21
|
const SCALAR_SIZE = 32;
|
|
22
22
|
const PBKDF2_ITERATIONS = 4096;
|
|
@@ -50,7 +50,7 @@ export class Bip32PrivateKey {
|
|
|
50
50
|
return Bip32PrivateKey.fromBytes(Buffer.from(key, 'hex'));
|
|
51
51
|
}
|
|
52
52
|
async derive(derivationIndices) {
|
|
53
|
-
await ready;
|
|
53
|
+
await sodium.ready;
|
|
54
54
|
let key = Buffer.from(__classPrivateFieldGet(this, _Bip32PrivateKey_key, "f"));
|
|
55
55
|
for (const index of derivationIndices) {
|
|
56
56
|
key = Bip32KeyDerivation.derivePrivate(key, index);
|
|
@@ -61,9 +61,9 @@ export class Bip32PrivateKey {
|
|
|
61
61
|
return Ed25519PrivateKey.fromExtendedBytes(__classPrivateFieldGet(this, _Bip32PrivateKey_key, "f").slice(0, EXTENDED_ED25519_PRIVATE_KEY_LENGTH));
|
|
62
62
|
}
|
|
63
63
|
async toPublic() {
|
|
64
|
-
await ready;
|
|
64
|
+
await sodium.ready;
|
|
65
65
|
const scalar = extendedScalar(__classPrivateFieldGet(this, _Bip32PrivateKey_key, "f").slice(0, EXTENDED_ED25519_PRIVATE_KEY_LENGTH));
|
|
66
|
-
const publicKey = crypto_scalarmult_ed25519_base_noclamp(scalar);
|
|
66
|
+
const publicKey = sodium.crypto_scalarmult_ed25519_base_noclamp(scalar);
|
|
67
67
|
return Bip32PublicKey.fromBytes(Buffer.concat([publicKey, __classPrivateFieldGet(this, _Bip32PrivateKey_key, "f").slice(CHAIN_CODE_INDEX, CHAIN_CODE_INDEX + CHAIN_CODE_SIZE)]));
|
|
68
68
|
}
|
|
69
69
|
bytes() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bip32PrivateKey.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32PrivateKey.ts"],"names":[],"mappings":";;;;;;;;;;;;AACA,OAAO,KAAK,kBAAkB,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,OAAO,EAAE,mCAAmC,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrF,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Bip32PrivateKey.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32PrivateKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -14,7 +14,7 @@ import * as Bip32KeyDerivation from './Bip32KeyDerivation.js';
|
|
|
14
14
|
import { BIP32_PUBLIC_KEY_HASH_LENGTH, Bip32PublicKeyHashHex, Bip32PublicKeyHex } from '../hexTypes.js';
|
|
15
15
|
import { ED25519_PUBLIC_KEY_LENGTH, Ed25519PublicKey } from '../Ed25519e/index.js';
|
|
16
16
|
import { InvalidArgumentError } from '@cardano-sdk/util';
|
|
17
|
-
import
|
|
17
|
+
import sodium from 'libsodium-wrappers-sumo';
|
|
18
18
|
export const BIP32_ED25519_PUBLIC_KEY_LENGTH = 64;
|
|
19
19
|
export class Bip32PublicKey {
|
|
20
20
|
constructor(key) {
|
|
@@ -33,7 +33,7 @@ export class Bip32PublicKey {
|
|
|
33
33
|
return Ed25519PublicKey.fromBytes(__classPrivateFieldGet(this, _Bip32PublicKey_key, "f").slice(0, ED25519_PUBLIC_KEY_LENGTH));
|
|
34
34
|
}
|
|
35
35
|
async derive(derivationIndices) {
|
|
36
|
-
await ready;
|
|
36
|
+
await sodium.ready;
|
|
37
37
|
let key = Buffer.from(__classPrivateFieldGet(this, _Bip32PublicKey_key, "f"));
|
|
38
38
|
for (const index of derivationIndices) {
|
|
39
39
|
key = Bip32KeyDerivation.derivePublic(key, index);
|
|
@@ -47,8 +47,8 @@ export class Bip32PublicKey {
|
|
|
47
47
|
return Bip32PublicKeyHex(Buffer.from(__classPrivateFieldGet(this, _Bip32PublicKey_key, "f")).toString('hex'));
|
|
48
48
|
}
|
|
49
49
|
async hash() {
|
|
50
|
-
await ready;
|
|
51
|
-
const hash = crypto_generichash(BIP32_PUBLIC_KEY_HASH_LENGTH, __classPrivateFieldGet(this, _Bip32PublicKey_key, "f"));
|
|
50
|
+
await sodium.ready;
|
|
51
|
+
const hash = sodium.crypto_generichash(BIP32_PUBLIC_KEY_HASH_LENGTH, __classPrivateFieldGet(this, _Bip32PublicKey_key, "f"));
|
|
52
52
|
return Bip32PublicKeyHashHex(Buffer.from(hash).toString('hex'));
|
|
53
53
|
}
|
|
54
54
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bip32PublicKey.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32PublicKey.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,KAAK,kBAAkB,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,
|
|
1
|
+
{"version":3,"file":"Bip32PublicKey.js","sourceRoot":"","sources":["../../../src/Bip32/Bip32PublicKey.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,KAAK,kBAAkB,MAAM,sBAAsB,CAAC;AAC3D,OAAO,EAAE,4BAA4B,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,aAAa,CAAC;AACrG,OAAO,EAAE,yBAAyB,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC1E,OAAO,EAAE,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAE7C,MAAM,CAAC,MAAM,+BAA+B,GAAG,EAAE,CAAC;AAGlD,MAAM,OAAO,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,+BAA+B;YAChD,MAAM,IAAI,oBAAoB,CAC5B,KAAK,EACL,iBAAiB,+BAA+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,gBAAgB,CAAC,SAAS,CAAC,uBAAA,IAAI,2BAAK,CAAC,KAAK,CAAC,CAAC,EAAE,yBAAyB,CAAC,CAAC,CAAC;IACnF,CAAC;IAQD,KAAK,CAAC,MAAM,CAAC,iBAA2B;QACtC,MAAM,MAAM,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,iBAAiB,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAA,IAAI,2BAAK,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IACnE,CAAC;IAGD,KAAK,CAAC,IAAI;QACR,MAAM,MAAM,CAAC,KAAK,CAAC;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAAC,4BAA4B,EAAE,uBAAA,IAAI,2BAAK,CAAC,CAAC;QAChF,OAAO,qBAAqB,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAClE,CAAC;CACF"}
|
|
@@ -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"}
|
|
@@ -14,7 +14,7 @@ import { Ed25519PrivateExtendedKeyHex, Ed25519PrivateNormalKeyHex } from '../hex
|
|
|
14
14
|
import { Ed25519PublicKey } from './Ed25519PublicKey.js';
|
|
15
15
|
import { Ed25519Signature } from './Ed25519Signature.js';
|
|
16
16
|
import { InvalidArgumentError } from '@cardano-sdk/util';
|
|
17
|
-
import
|
|
17
|
+
import sodium from 'libsodium-wrappers-sumo';
|
|
18
18
|
const SCALAR_INDEX = 0;
|
|
19
19
|
const SCALAR_SIZE = 32;
|
|
20
20
|
const IV_INDEX = 32;
|
|
@@ -25,12 +25,15 @@ const extendedScalar = (extendedKey) => extendedKey.slice(SCALAR_INDEX, SCALAR_S
|
|
|
25
25
|
const extendedIv = (extendedKey) => extendedKey.slice(IV_INDEX, IV_INDEX + IV_SIZE);
|
|
26
26
|
const signExtendedDetached = (extendedKey, message) => {
|
|
27
27
|
const scalar = extendedScalar(extendedKey);
|
|
28
|
-
const publicKey = crypto_scalarmult_ed25519_base_noclamp(scalar);
|
|
29
|
-
const nonce = crypto_core_ed25519_scalar_reduce(crypto_hash_sha512(Buffer.concat([extendedIv(extendedKey), message])));
|
|
30
|
-
const r = crypto_scalarmult_ed25519_base_noclamp(nonce);
|
|
31
|
-
let hram = crypto_hash_sha512(Buffer.concat([r, publicKey, message]));
|
|
32
|
-
hram = crypto_core_ed25519_scalar_reduce(hram);
|
|
33
|
-
return Buffer.concat([
|
|
28
|
+
const publicKey = sodium.crypto_scalarmult_ed25519_base_noclamp(scalar);
|
|
29
|
+
const nonce = sodium.crypto_core_ed25519_scalar_reduce(sodium.crypto_hash_sha512(Buffer.concat([extendedIv(extendedKey), message])));
|
|
30
|
+
const r = sodium.crypto_scalarmult_ed25519_base_noclamp(nonce);
|
|
31
|
+
let hram = sodium.crypto_hash_sha512(Buffer.concat([r, publicKey, message]));
|
|
32
|
+
hram = sodium.crypto_core_ed25519_scalar_reduce(hram);
|
|
33
|
+
return Buffer.concat([
|
|
34
|
+
r,
|
|
35
|
+
sodium.crypto_core_ed25519_scalar_add(sodium.crypto_core_ed25519_scalar_mul(hram, scalar), nonce)
|
|
36
|
+
]);
|
|
34
37
|
};
|
|
35
38
|
export var Ed25519PrivateKeyType;
|
|
36
39
|
(function (Ed25519PrivateKeyType) {
|
|
@@ -44,16 +47,16 @@ export class Ed25519PrivateKey {
|
|
|
44
47
|
this.__type = type;
|
|
45
48
|
}
|
|
46
49
|
async toPublic() {
|
|
47
|
-
await ready;
|
|
50
|
+
await sodium.ready;
|
|
48
51
|
return Ed25519PublicKey.fromBytes(this.__type === Ed25519PrivateKeyType.Extended
|
|
49
|
-
? crypto_scalarmult_ed25519_base_noclamp(extendedScalar(__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f")))
|
|
50
|
-
: crypto_sign_seed_keypair(__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f")).publicKey);
|
|
52
|
+
? sodium.crypto_scalarmult_ed25519_base_noclamp(extendedScalar(__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f")))
|
|
53
|
+
: sodium.crypto_sign_seed_keypair(__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f")).publicKey);
|
|
51
54
|
}
|
|
52
55
|
async sign(message) {
|
|
53
|
-
await ready;
|
|
56
|
+
await sodium.ready;
|
|
54
57
|
return Ed25519Signature.fromBytes(this.__type === Ed25519PrivateKeyType.Extended
|
|
55
58
|
? signExtendedDetached(__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f"), Buffer.from(message, 'hex'))
|
|
56
|
-
: crypto_sign_detached(Buffer.from(message, 'hex'), Buffer.concat([__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f"), (await this.toPublic()).bytes()])));
|
|
59
|
+
: sodium.crypto_sign_detached(Buffer.from(message, 'hex'), Buffer.concat([__classPrivateFieldGet(this, _Ed25519PrivateKey_keyMaterial, "f"), (await this.toPublic()).bytes()])));
|
|
57
60
|
}
|
|
58
61
|
static fromNormalBytes(keyMaterial) {
|
|
59
62
|
if (keyMaterial.length !== NORMAL_ED25519_PRIVATE_KEY_LENGTH)
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ed25519PrivateKey.js","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,EAAW,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"Ed25519PrivateKey.js","sourceRoot":"","sources":["../../../src/Ed25519e/Ed25519PrivateKey.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,7 +13,7 @@ var _Ed25519PublicKey_keyMaterial;
|
|
|
13
13
|
import { ED25519_PUBLIC_KEY_HASH_LENGTH, Ed25519KeyHash } from './Ed25519KeyHash.js';
|
|
14
14
|
import { Ed25519PublicKeyHex } from '../hexTypes.js';
|
|
15
15
|
import { InvalidArgumentError } from '@cardano-sdk/util';
|
|
16
|
-
import
|
|
16
|
+
import sodium from 'libsodium-wrappers-sumo';
|
|
17
17
|
export const ED25519_PUBLIC_KEY_LENGTH = 32;
|
|
18
18
|
export class Ed25519PublicKey {
|
|
19
19
|
constructor(keyMaterial) {
|
|
@@ -21,8 +21,8 @@ export class Ed25519PublicKey {
|
|
|
21
21
|
__classPrivateFieldSet(this, _Ed25519PublicKey_keyMaterial, keyMaterial, "f");
|
|
22
22
|
}
|
|
23
23
|
async verify(signature, message) {
|
|
24
|
-
await ready;
|
|
25
|
-
return crypto_sign_verify_detached(signature.bytes(), Buffer.from(message, 'hex'), __classPrivateFieldGet(this, _Ed25519PublicKey_keyMaterial, "f"));
|
|
24
|
+
await sodium.ready;
|
|
25
|
+
return sodium.crypto_sign_verify_detached(signature.bytes(), Buffer.from(message, 'hex'), __classPrivateFieldGet(this, _Ed25519PublicKey_keyMaterial, "f"));
|
|
26
26
|
}
|
|
27
27
|
static fromBytes(keyMaterial) {
|
|
28
28
|
if (keyMaterial.length !== ED25519_PUBLIC_KEY_LENGTH)
|
|
@@ -33,8 +33,8 @@ export class Ed25519PublicKey {
|
|
|
33
33
|
return Ed25519PublicKey.fromBytes(Buffer.from(keyMaterial, 'hex'));
|
|
34
34
|
}
|
|
35
35
|
async hash() {
|
|
36
|
-
await ready;
|
|
37
|
-
const hash = crypto_generichash(ED25519_PUBLIC_KEY_HASH_LENGTH, __classPrivateFieldGet(this, _Ed25519PublicKey_keyMaterial, "f"));
|
|
36
|
+
await sodium.ready;
|
|
37
|
+
const hash = sodium.crypto_generichash(ED25519_PUBLIC_KEY_HASH_LENGTH, __classPrivateFieldGet(this, _Ed25519PublicKey_keyMaterial, "f"));
|
|
38
38
|
return Ed25519KeyHash.fromBytes(hash);
|
|
39
39
|
}
|
|
40
40
|
bytes() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ed25519PublicKey.js","sourceRoot":"","sources":["../../../src/Ed25519e/Ed25519PublicKey.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAW,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,
|
|
1
|
+
{"version":3,"file":"Ed25519PublicKey.js","sourceRoot":"","sources":["../../../src/Ed25519e/Ed25519PublicKey.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,OAAO,EAAE,8BAA8B,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClF,OAAO,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAElD,OAAO,EAAW,oBAAoB,EAAE,MAAM,mBAAmB,CAAC;AAClE,OAAO,MAAM,MAAM,yBAAyB,CAAC;AAE7C,MAAM,CAAC,MAAM,yBAAyB,GAAG,EAAE,CAAC;AAM5C,MAAM,OAAO,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,MAAM,CAAC,KAAK,CAAC;QACnB,OAAO,MAAM,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,yBAAyB;YAClD,MAAM,IAAI,oBAAoB,CAC5B,aAAa,EACb,iBAAiB,yBAAyB,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,MAAM,CAAC,KAAK,CAAC;QACnB,MAAM,IAAI,GAAG,MAAM,CAAC,kBAAkB,CAAC,8BAA8B,EAAE,uBAAA,IAAI,qCAAa,CAAC,CAAC;QAC1F,OAAO,cAAc,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;IACxC,CAAC;IAGD,KAAK;QACH,OAAO,uBAAA,IAAI,qCAAa,CAAC;IAC3B,CAAC;IAGD,GAAG;QACD,OAAO,mBAAmB,CAAC,MAAM,CAAC,IAAI,CAAC,uBAAA,IAAI,qCAAa,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7E,CAAC;CACF"}
|