@twin.org/crypto 0.0.2-next.6 → 0.0.2-next.7
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/index.cjs +46 -49
- package/dist/esm/index.mjs +15 -18
- package/docs/changelog.md +18 -0
- package/docs/reference/variables/KeyType.md +1 -1
- package/package.json +10 -10
package/dist/cjs/index.cjs
CHANGED
|
@@ -2,21 +2,20 @@
|
|
|
2
2
|
|
|
3
3
|
var base = require('@scure/base');
|
|
4
4
|
var core = require('@twin.org/core');
|
|
5
|
-
var
|
|
6
|
-
var
|
|
7
|
-
var
|
|
5
|
+
var ed25519_js = require('@noble/curves/ed25519.js');
|
|
6
|
+
var secp256k1_js = require('@noble/curves/secp256k1.js');
|
|
7
|
+
var blake2_js = require('@noble/hashes/blake2.js');
|
|
8
8
|
var bip32 = require('@scure/bip32');
|
|
9
9
|
var slip10_js = require('micro-key-producer/slip10.js');
|
|
10
|
-
var
|
|
11
|
-
var
|
|
12
|
-
var
|
|
13
|
-
var
|
|
14
|
-
var
|
|
15
|
-
var
|
|
16
|
-
var
|
|
17
|
-
var sha3 = require('@noble/hashes/sha3');
|
|
10
|
+
var chacha_js = require('@noble/ciphers/chacha.js');
|
|
11
|
+
var blake3_js = require('@noble/hashes/blake3.js');
|
|
12
|
+
var hmac_js = require('@noble/hashes/hmac.js');
|
|
13
|
+
var legacy_js = require('@noble/hashes/legacy.js');
|
|
14
|
+
var sha2_js = require('@noble/hashes/sha2.js');
|
|
15
|
+
var pbkdf2_js = require('@noble/hashes/pbkdf2.js');
|
|
16
|
+
var sha3_js = require('@noble/hashes/sha3.js');
|
|
18
17
|
var bip39 = require('@scure/bip39');
|
|
19
|
-
var
|
|
18
|
+
var english_js = require('@scure/bip39/wordlists/english.js');
|
|
20
19
|
var otp = require('micro-key-producer/otp.js');
|
|
21
20
|
|
|
22
21
|
function _interopNamespaceDefault(e) {
|
|
@@ -143,7 +142,7 @@ class Ed25519 {
|
|
|
143
142
|
actualSize: privateKey.length
|
|
144
143
|
});
|
|
145
144
|
}
|
|
146
|
-
return
|
|
145
|
+
return ed25519_js.ed25519.getPublicKey(privateKey);
|
|
147
146
|
}
|
|
148
147
|
/**
|
|
149
148
|
* Sign the block with privateKey and returns a signature.
|
|
@@ -161,7 +160,7 @@ class Ed25519 {
|
|
|
161
160
|
actualSize: privateKey ? privateKey.length : 0
|
|
162
161
|
});
|
|
163
162
|
}
|
|
164
|
-
return
|
|
163
|
+
return ed25519_js.ed25519.sign(block, privateKey);
|
|
165
164
|
}
|
|
166
165
|
/**
|
|
167
166
|
* Verify reports whether sig is a valid signature of block by publicKey.
|
|
@@ -182,7 +181,7 @@ class Ed25519 {
|
|
|
182
181
|
});
|
|
183
182
|
}
|
|
184
183
|
try {
|
|
185
|
-
return
|
|
184
|
+
return ed25519_js.ed25519.verify(signature, block, publicKey);
|
|
186
185
|
}
|
|
187
186
|
catch {
|
|
188
187
|
return false;
|
|
@@ -256,7 +255,7 @@ class Secp256k1 {
|
|
|
256
255
|
actualSize: privateKey.length
|
|
257
256
|
});
|
|
258
257
|
}
|
|
259
|
-
return
|
|
258
|
+
return secp256k1_js.secp256k1.getPublicKey(privateKey);
|
|
260
259
|
}
|
|
261
260
|
/**
|
|
262
261
|
* Sign the block with privateKey and returns a signature.
|
|
@@ -271,11 +270,11 @@ class Secp256k1 {
|
|
|
271
270
|
if (privateKey.length !== Secp256k1.PRIVATE_KEY_SIZE) {
|
|
272
271
|
throw new core.GeneralError(Secp256k1._CLASS_NAME, "privateKeyLength", {
|
|
273
272
|
requiredSize: Secp256k1.PRIVATE_KEY_SIZE,
|
|
274
|
-
actualSize: privateKey
|
|
273
|
+
actualSize: privateKey.length
|
|
275
274
|
});
|
|
276
275
|
}
|
|
277
|
-
const res =
|
|
278
|
-
return res
|
|
276
|
+
const res = secp256k1_js.secp256k1.sign(block, privateKey, { prehash: false });
|
|
277
|
+
return res;
|
|
279
278
|
}
|
|
280
279
|
/**
|
|
281
280
|
* Verify reports whether sig is a valid signature of block by publicKey.
|
|
@@ -296,7 +295,7 @@ class Secp256k1 {
|
|
|
296
295
|
});
|
|
297
296
|
}
|
|
298
297
|
try {
|
|
299
|
-
return
|
|
298
|
+
return secp256k1_js.secp256k1.verify(signature, block, publicKey, { prehash: false });
|
|
300
299
|
}
|
|
301
300
|
catch {
|
|
302
301
|
return false;
|
|
@@ -339,7 +338,7 @@ class Blake2b {
|
|
|
339
338
|
* @param key Optional key for the hash.
|
|
340
339
|
*/
|
|
341
340
|
constructor(outputLength, key) {
|
|
342
|
-
this._instance =
|
|
341
|
+
this._instance = blake2_js.blake2b.create({
|
|
343
342
|
dkLen: outputLength,
|
|
344
343
|
key
|
|
345
344
|
});
|
|
@@ -484,7 +483,6 @@ const KeyType = {
|
|
|
484
483
|
|
|
485
484
|
// Copyright 2024 IOTA Stiftung.
|
|
486
485
|
// SPDX-License-Identifier: Apache-2.0.
|
|
487
|
-
/* eslint-disable no-bitwise */
|
|
488
486
|
/**
|
|
489
487
|
* Class to help with slip0010 key derivation
|
|
490
488
|
* https://github.com/satoshilabs/slips/blob/master/slip-0010.md.
|
|
@@ -692,7 +690,7 @@ class ChaCha20Poly1305 {
|
|
|
692
690
|
constructor(key, nonce, aad) {
|
|
693
691
|
core.Guards.uint8Array(ChaCha20Poly1305._CLASS_NAME, "key", key);
|
|
694
692
|
core.Guards.uint8Array(ChaCha20Poly1305._CLASS_NAME, "nonce", nonce);
|
|
695
|
-
this._instance =
|
|
693
|
+
this._instance = chacha_js.chacha20poly1305(key, nonce, aad);
|
|
696
694
|
}
|
|
697
695
|
/**
|
|
698
696
|
* Encrypt the block.
|
|
@@ -732,7 +730,7 @@ class X25519 {
|
|
|
732
730
|
*/
|
|
733
731
|
static convertPrivateKeyToX25519(ed25519PrivateKey) {
|
|
734
732
|
core.Guards.uint8Array(X25519._CLASS_NAME, "ed25519PrivateKey", ed25519PrivateKey);
|
|
735
|
-
return
|
|
733
|
+
return ed25519_js.ed25519.utils.toMontgomerySecret(ed25519PrivateKey.slice(0, Ed25519.PRIVATE_KEY_SIZE));
|
|
736
734
|
}
|
|
737
735
|
/**
|
|
738
736
|
* Convert Ed25519 public key to X25519 public key.
|
|
@@ -742,7 +740,7 @@ class X25519 {
|
|
|
742
740
|
*/
|
|
743
741
|
static convertPublicKeyToX25519(ed25519PublicKey) {
|
|
744
742
|
core.Guards.uint8Array(X25519._CLASS_NAME, "ed25519PublicKey", ed25519PublicKey);
|
|
745
|
-
return
|
|
743
|
+
return ed25519_js.ed25519.utils.toMontgomery(ed25519PublicKey);
|
|
746
744
|
}
|
|
747
745
|
}
|
|
748
746
|
|
|
@@ -773,7 +771,7 @@ class Zip215 {
|
|
|
773
771
|
if (publicKey.length !== Ed25519.PUBLIC_KEY_SIZE) {
|
|
774
772
|
return false;
|
|
775
773
|
}
|
|
776
|
-
return
|
|
774
|
+
return ed25519_js.ed25519.verify(sig, block, publicKey, { zip215: true });
|
|
777
775
|
}
|
|
778
776
|
}
|
|
779
777
|
|
|
@@ -808,7 +806,7 @@ class Blake3 {
|
|
|
808
806
|
* @param key Optional key for the hash.
|
|
809
807
|
*/
|
|
810
808
|
constructor(outputLength, key) {
|
|
811
|
-
this._instance =
|
|
809
|
+
this._instance = blake3_js.blake3.create({
|
|
812
810
|
dkLen: outputLength,
|
|
813
811
|
key
|
|
814
812
|
});
|
|
@@ -874,7 +872,7 @@ class HmacSha1 {
|
|
|
874
872
|
* @param key The key for the hmac.
|
|
875
873
|
*/
|
|
876
874
|
constructor(key) {
|
|
877
|
-
this._instance =
|
|
875
|
+
this._instance = hmac_js.hmac.create(legacy_js.sha1, key);
|
|
878
876
|
}
|
|
879
877
|
/**
|
|
880
878
|
* Perform Sum on the block.
|
|
@@ -940,7 +938,7 @@ class HmacSha256 {
|
|
|
940
938
|
if (bits !== HmacSha256.SIZE_224 && bits !== HmacSha256.SIZE_256) {
|
|
941
939
|
throw new core.GeneralError(HmacSha256._CLASS_NAME, "bitSize", { bitSize: bits });
|
|
942
940
|
}
|
|
943
|
-
this._instance =
|
|
941
|
+
this._instance = hmac_js.hmac.create(bits === HmacSha256.SIZE_256 ? sha2_js.sha256 : sha2_js.sha224, key);
|
|
944
942
|
}
|
|
945
943
|
/**
|
|
946
944
|
* Perform Sum 224 on the block.
|
|
@@ -1034,16 +1032,16 @@ class HmacSha512 {
|
|
|
1034
1032
|
throw new core.GeneralError(HmacSha512._CLASS_NAME, "bitSize", { bitSize: bits });
|
|
1035
1033
|
}
|
|
1036
1034
|
if (bits === HmacSha512.SIZE_224) {
|
|
1037
|
-
this._instance =
|
|
1035
|
+
this._instance = hmac_js.hmac.create(sha2_js.sha512_224, key);
|
|
1038
1036
|
}
|
|
1039
1037
|
else if (bits === HmacSha512.SIZE_256) {
|
|
1040
|
-
this._instance =
|
|
1038
|
+
this._instance = hmac_js.hmac.create(sha2_js.sha512_256, key);
|
|
1041
1039
|
}
|
|
1042
1040
|
else if (bits === HmacSha512.SIZE_384) {
|
|
1043
|
-
this._instance =
|
|
1041
|
+
this._instance = hmac_js.hmac.create(sha2_js.sha384, key);
|
|
1044
1042
|
}
|
|
1045
1043
|
else {
|
|
1046
|
-
this._instance =
|
|
1044
|
+
this._instance = hmac_js.hmac.create(sha2_js.sha512, key);
|
|
1047
1045
|
}
|
|
1048
1046
|
}
|
|
1049
1047
|
/**
|
|
@@ -1141,7 +1139,7 @@ class Pbkdf2 {
|
|
|
1141
1139
|
core.Guards.uint8Array(Pbkdf2._CLASS_NAME, "salt", salt);
|
|
1142
1140
|
core.Guards.number(Pbkdf2._CLASS_NAME, "iterations", iterations);
|
|
1143
1141
|
core.Guards.number(Pbkdf2._CLASS_NAME, "keyLength", keyLength);
|
|
1144
|
-
return
|
|
1142
|
+
return pbkdf2_js.pbkdf2(sha2_js.sha256, password, salt, { c: iterations, dkLen: keyLength });
|
|
1145
1143
|
}
|
|
1146
1144
|
/**
|
|
1147
1145
|
* Derive a key from the parameters using Sha512.
|
|
@@ -1156,7 +1154,7 @@ class Pbkdf2 {
|
|
|
1156
1154
|
core.Guards.uint8Array(Pbkdf2._CLASS_NAME, "salt", salt);
|
|
1157
1155
|
core.Guards.number(Pbkdf2._CLASS_NAME, "iterations", iterations);
|
|
1158
1156
|
core.Guards.number(Pbkdf2._CLASS_NAME, "keyLength", keyLength);
|
|
1159
|
-
return
|
|
1157
|
+
return pbkdf2_js.pbkdf2(sha2_js.sha512, password, salt, { c: iterations, dkLen: keyLength });
|
|
1160
1158
|
}
|
|
1161
1159
|
}
|
|
1162
1160
|
|
|
@@ -1181,7 +1179,7 @@ class Sha1 {
|
|
|
1181
1179
|
* Create a new instance of Sha1.
|
|
1182
1180
|
*/
|
|
1183
1181
|
constructor() {
|
|
1184
|
-
this._instance =
|
|
1182
|
+
this._instance = legacy_js.sha1.create();
|
|
1185
1183
|
}
|
|
1186
1184
|
/**
|
|
1187
1185
|
* Perform Sum on the block.
|
|
@@ -1244,7 +1242,7 @@ class Sha256 {
|
|
|
1244
1242
|
if (bits !== Sha256.SIZE_224 && bits !== Sha256.SIZE_256) {
|
|
1245
1243
|
throw new core.GeneralError(Sha256._CLASS_NAME, "bitSize", { bitSize: bits });
|
|
1246
1244
|
}
|
|
1247
|
-
this._instance = bits === Sha256.SIZE_256 ?
|
|
1245
|
+
this._instance = bits === Sha256.SIZE_256 ? sha2_js.sha256.create() : sha2_js.sha224.create();
|
|
1248
1246
|
}
|
|
1249
1247
|
/**
|
|
1250
1248
|
* Perform Sum 256 on the block.
|
|
@@ -1332,19 +1330,19 @@ class Sha3 {
|
|
|
1332
1330
|
}
|
|
1333
1331
|
if (bits === Sha3.SIZE_224) {
|
|
1334
1332
|
// eslint-disable-next-line camelcase
|
|
1335
|
-
this._instance =
|
|
1333
|
+
this._instance = sha3_js.sha3_224.create();
|
|
1336
1334
|
}
|
|
1337
1335
|
else if (bits === Sha3.SIZE_256) {
|
|
1338
1336
|
// eslint-disable-next-line camelcase
|
|
1339
|
-
this._instance =
|
|
1337
|
+
this._instance = sha3_js.sha3_256.create();
|
|
1340
1338
|
}
|
|
1341
1339
|
else if (bits === Sha3.SIZE_384) {
|
|
1342
1340
|
// eslint-disable-next-line camelcase
|
|
1343
|
-
this._instance =
|
|
1341
|
+
this._instance = sha3_js.sha3_384.create();
|
|
1344
1342
|
}
|
|
1345
1343
|
else {
|
|
1346
1344
|
// eslint-disable-next-line camelcase
|
|
1347
|
-
this._instance =
|
|
1345
|
+
this._instance = sha3_js.sha3_512.create();
|
|
1348
1346
|
}
|
|
1349
1347
|
}
|
|
1350
1348
|
/**
|
|
@@ -1452,16 +1450,16 @@ class Sha512 {
|
|
|
1452
1450
|
throw new core.GeneralError(Sha512._CLASS_NAME, "bitSize", { bitSize: bits });
|
|
1453
1451
|
}
|
|
1454
1452
|
if (bits === Sha512.SIZE_224) {
|
|
1455
|
-
this._instance =
|
|
1453
|
+
this._instance = sha2_js.sha512_224.create();
|
|
1456
1454
|
}
|
|
1457
1455
|
else if (bits === Sha512.SIZE_256) {
|
|
1458
|
-
this._instance =
|
|
1456
|
+
this._instance = sha2_js.sha512_256.create();
|
|
1459
1457
|
}
|
|
1460
1458
|
else if (bits === Sha512.SIZE_384) {
|
|
1461
|
-
this._instance =
|
|
1459
|
+
this._instance = sha2_js.sha384.create();
|
|
1462
1460
|
}
|
|
1463
1461
|
else {
|
|
1464
|
-
this._instance =
|
|
1462
|
+
this._instance = sha2_js.sha512.create();
|
|
1465
1463
|
}
|
|
1466
1464
|
}
|
|
1467
1465
|
/**
|
|
@@ -1583,7 +1581,7 @@ class Bip39 {
|
|
|
1583
1581
|
* @returns The random mnemonic.
|
|
1584
1582
|
* @throws Error if the length is not a multiple of 32.
|
|
1585
1583
|
*/
|
|
1586
|
-
static randomMnemonic(strength = 256, words =
|
|
1584
|
+
static randomMnemonic(strength = 256, words = english_js.wordlist) {
|
|
1587
1585
|
core.Guards.number(Bip39._CLASS_NAME, "strength", strength);
|
|
1588
1586
|
core.Guards.arrayValue(Bip39._CLASS_NAME, "words", words);
|
|
1589
1587
|
if (strength % 32 !== 0) {
|
|
@@ -1598,7 +1596,7 @@ class Bip39 {
|
|
|
1598
1596
|
* @returns The mnemonic.
|
|
1599
1597
|
* @throws Error if the length of the entropy is not a multiple of 4, or is less than 16 or greater than 32.
|
|
1600
1598
|
*/
|
|
1601
|
-
static entropyToMnemonic(entropy, words =
|
|
1599
|
+
static entropyToMnemonic(entropy, words = english_js.wordlist) {
|
|
1602
1600
|
core.Guards.uint8Array(Bip39._CLASS_NAME, "entropy", entropy);
|
|
1603
1601
|
core.Guards.arrayValue(Bip39._CLASS_NAME, "words", words);
|
|
1604
1602
|
if (entropy.length % 4 !== 0 || entropy.length < 16 || entropy.length > 32) {
|
|
@@ -1623,7 +1621,7 @@ class Bip39 {
|
|
|
1623
1621
|
* @returns The entropy.
|
|
1624
1622
|
* @throws Error if the number of words is not a multiple of 3.
|
|
1625
1623
|
*/
|
|
1626
|
-
static mnemonicToEntropy(mnemonic, words =
|
|
1624
|
+
static mnemonicToEntropy(mnemonic, words = english_js.wordlist) {
|
|
1627
1625
|
core.Guards.stringValue(Bip39._CLASS_NAME, "mnemonic", mnemonic);
|
|
1628
1626
|
core.Guards.arrayValue(Bip39._CLASS_NAME, "words", words);
|
|
1629
1627
|
return bip39__namespace.mnemonicToEntropy(mnemonic, words);
|
|
@@ -1632,7 +1630,6 @@ class Bip39 {
|
|
|
1632
1630
|
|
|
1633
1631
|
// Copyright 2024 IOTA Stiftung.
|
|
1634
1632
|
// SPDX-License-Identifier: Apache-2.0.
|
|
1635
|
-
/* eslint-disable no-bitwise */
|
|
1636
1633
|
/**
|
|
1637
1634
|
* Perform HOTP.
|
|
1638
1635
|
* Implementation of https://datatracker.ietf.org/doc/html/rfc4226 .
|
package/dist/esm/index.mjs
CHANGED
|
@@ -1,20 +1,19 @@
|
|
|
1
1
|
import { bech32 } from '@scure/base';
|
|
2
2
|
import { Guards, BaseError, GeneralError, Is, Uint8ArrayHelper, Converter, GuardError, Base32, RandomHelper, Validation } from '@twin.org/core';
|
|
3
|
-
import { ed25519 } from '@noble/curves/ed25519';
|
|
4
|
-
import { secp256k1 } from '@noble/curves/secp256k1';
|
|
5
|
-
import { blake2b } from '@noble/hashes/
|
|
3
|
+
import { ed25519 } from '@noble/curves/ed25519.js';
|
|
4
|
+
import { secp256k1 } from '@noble/curves/secp256k1.js';
|
|
5
|
+
import { blake2b } from '@noble/hashes/blake2.js';
|
|
6
6
|
import { HDKey as HDKey$1 } from '@scure/bip32';
|
|
7
7
|
import { HDKey } from 'micro-key-producer/slip10.js';
|
|
8
|
-
import { chacha20poly1305 } from '@noble/ciphers/chacha';
|
|
9
|
-
import { blake3 } from '@noble/hashes/blake3';
|
|
10
|
-
import { hmac } from '@noble/hashes/hmac';
|
|
11
|
-
import { sha1 } from '@noble/hashes/
|
|
12
|
-
import { sha256, sha224 } from '@noble/hashes/
|
|
13
|
-
import {
|
|
14
|
-
import {
|
|
15
|
-
import { sha3_224, sha3_256, sha3_384, sha3_512 } from '@noble/hashes/sha3';
|
|
8
|
+
import { chacha20poly1305 } from '@noble/ciphers/chacha.js';
|
|
9
|
+
import { blake3 } from '@noble/hashes/blake3.js';
|
|
10
|
+
import { hmac } from '@noble/hashes/hmac.js';
|
|
11
|
+
import { sha1 } from '@noble/hashes/legacy.js';
|
|
12
|
+
import { sha256, sha224, sha512_224, sha512_256, sha384, sha512 } from '@noble/hashes/sha2.js';
|
|
13
|
+
import { pbkdf2 } from '@noble/hashes/pbkdf2.js';
|
|
14
|
+
import { sha3_224, sha3_256, sha3_384, sha3_512 } from '@noble/hashes/sha3.js';
|
|
16
15
|
import * as bip39 from '@scure/bip39';
|
|
17
|
-
import { wordlist } from '@scure/bip39/wordlists/english';
|
|
16
|
+
import { wordlist } from '@scure/bip39/wordlists/english.js';
|
|
18
17
|
import * as otp from 'micro-key-producer/otp.js';
|
|
19
18
|
|
|
20
19
|
// Copyright 2024 IOTA Stiftung.
|
|
@@ -249,11 +248,11 @@ class Secp256k1 {
|
|
|
249
248
|
if (privateKey.length !== Secp256k1.PRIVATE_KEY_SIZE) {
|
|
250
249
|
throw new GeneralError(Secp256k1._CLASS_NAME, "privateKeyLength", {
|
|
251
250
|
requiredSize: Secp256k1.PRIVATE_KEY_SIZE,
|
|
252
|
-
actualSize: privateKey
|
|
251
|
+
actualSize: privateKey.length
|
|
253
252
|
});
|
|
254
253
|
}
|
|
255
|
-
const res = secp256k1.sign(block, privateKey);
|
|
256
|
-
return res
|
|
254
|
+
const res = secp256k1.sign(block, privateKey, { prehash: false });
|
|
255
|
+
return res;
|
|
257
256
|
}
|
|
258
257
|
/**
|
|
259
258
|
* Verify reports whether sig is a valid signature of block by publicKey.
|
|
@@ -274,7 +273,7 @@ class Secp256k1 {
|
|
|
274
273
|
});
|
|
275
274
|
}
|
|
276
275
|
try {
|
|
277
|
-
return secp256k1.verify(signature, block, publicKey);
|
|
276
|
+
return secp256k1.verify(signature, block, publicKey, { prehash: false });
|
|
278
277
|
}
|
|
279
278
|
catch {
|
|
280
279
|
return false;
|
|
@@ -462,7 +461,6 @@ const KeyType = {
|
|
|
462
461
|
|
|
463
462
|
// Copyright 2024 IOTA Stiftung.
|
|
464
463
|
// SPDX-License-Identifier: Apache-2.0.
|
|
465
|
-
/* eslint-disable no-bitwise */
|
|
466
464
|
/**
|
|
467
465
|
* Class to help with slip0010 key derivation
|
|
468
466
|
* https://github.com/satoshilabs/slips/blob/master/slip-0010.md.
|
|
@@ -1610,7 +1608,6 @@ class Bip39 {
|
|
|
1610
1608
|
|
|
1611
1609
|
// Copyright 2024 IOTA Stiftung.
|
|
1612
1610
|
// SPDX-License-Identifier: Apache-2.0.
|
|
1613
|
-
/* eslint-disable no-bitwise */
|
|
1614
1611
|
/**
|
|
1615
1612
|
* Perform HOTP.
|
|
1616
1613
|
* Implementation of https://datatracker.ietf.org/doc/html/rfc4226 .
|
package/docs/changelog.md
CHANGED
|
@@ -1,5 +1,23 @@
|
|
|
1
1
|
# @twin.org/crypto - Changelog
|
|
2
2
|
|
|
3
|
+
## [0.0.2-next.7](https://github.com/twinfoundation/framework/compare/crypto-v0.0.2-next.6...crypto-v0.0.2-next.7) (2025-08-29)
|
|
4
|
+
|
|
5
|
+
|
|
6
|
+
### Features
|
|
7
|
+
|
|
8
|
+
* eslint migration to flat config ([74427d7](https://github.com/twinfoundation/framework/commit/74427d78d342167f7850e49ab87269326355befe))
|
|
9
|
+
|
|
10
|
+
|
|
11
|
+
### Dependencies
|
|
12
|
+
|
|
13
|
+
* The following workspace dependencies were updated
|
|
14
|
+
* dependencies
|
|
15
|
+
* @twin.org/core bumped from 0.0.2-next.6 to 0.0.2-next.7
|
|
16
|
+
* @twin.org/nameof bumped from 0.0.2-next.6 to 0.0.2-next.7
|
|
17
|
+
* devDependencies
|
|
18
|
+
* @twin.org/nameof-transformer bumped from 0.0.2-next.6 to 0.0.2-next.7
|
|
19
|
+
* @twin.org/nameof-vitest-plugin bumped from 0.0.2-next.6 to 0.0.2-next.7
|
|
20
|
+
|
|
3
21
|
## [0.0.2-next.6](https://github.com/twinfoundation/framework/compare/crypto-v0.0.2-next.5...crypto-v0.0.2-next.6) (2025-08-27)
|
|
4
22
|
|
|
5
23
|
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@twin.org/crypto",
|
|
3
|
-
"version": "0.0.2-next.
|
|
3
|
+
"version": "0.0.2-next.7",
|
|
4
4
|
"description": "Contains helper methods and classes which implement cryptographic functions",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -14,16 +14,16 @@
|
|
|
14
14
|
"node": ">=20.0.0"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@noble/ciphers": "
|
|
18
|
-
"@noble/curves": "
|
|
19
|
-
"@noble/hashes": "
|
|
20
|
-
"@scure/base": "
|
|
21
|
-
"@scure/bip32": "
|
|
22
|
-
"@scure/bip39": "
|
|
23
|
-
"@twin.org/core": "0.0.2-next.
|
|
24
|
-
"@twin.org/nameof": "0.0.2-next.
|
|
17
|
+
"@noble/ciphers": "2.0.0",
|
|
18
|
+
"@noble/curves": "2.0.0",
|
|
19
|
+
"@noble/hashes": "2.0.0",
|
|
20
|
+
"@scure/base": "2.0.0",
|
|
21
|
+
"@scure/bip32": "2.0.0",
|
|
22
|
+
"@scure/bip39": "2.0.0",
|
|
23
|
+
"@twin.org/core": "0.0.2-next.7",
|
|
24
|
+
"@twin.org/nameof": "0.0.2-next.7",
|
|
25
25
|
"crypto-browserify": "3.12.1",
|
|
26
|
-
"micro-key-producer": "0.
|
|
26
|
+
"micro-key-producer": "0.8.1"
|
|
27
27
|
},
|
|
28
28
|
"main": "./dist/cjs/index.cjs",
|
|
29
29
|
"module": "./dist/esm/index.mjs",
|