@bsv/sdk 1.0.13 → 1.0.15
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/README.md +1 -1
- package/dist/cjs/package.json +2 -2
- package/dist/cjs/src/compat/BSM.js.map +1 -1
- package/dist/cjs/src/compat/ECIES.js +105 -76
- package/dist/cjs/src/compat/ECIES.js.map +1 -1
- package/dist/cjs/src/compat/HD.js +65 -65
- package/dist/cjs/src/compat/HD.js.map +1 -1
- package/dist/cjs/src/compat/Mnemonic.js +79 -79
- package/dist/cjs/src/compat/Mnemonic.js.map +1 -1
- package/dist/cjs/src/compat/bip-39-wordlist-en.js +2 -2
- package/dist/cjs/src/compat/bip-39-wordlist-en.js.map +1 -1
- package/dist/cjs/src/primitives/AESGCM.js.map +1 -1
- package/dist/cjs/src/primitives/BigNumber.js.map +1 -1
- package/dist/cjs/src/primitives/DRBG.js.map +1 -1
- package/dist/cjs/src/primitives/ECDSA.js.map +1 -1
- package/dist/cjs/src/primitives/Hash.js +26 -13
- package/dist/cjs/src/primitives/Hash.js.map +1 -1
- package/dist/cjs/src/primitives/PrivateKey.js +3 -2
- package/dist/cjs/src/primitives/PrivateKey.js.map +1 -1
- package/dist/cjs/src/primitives/PublicKey.js +1 -2
- package/dist/cjs/src/primitives/PublicKey.js.map +1 -1
- package/dist/cjs/src/primitives/Random.js +2 -2
- package/dist/cjs/src/primitives/Random.js.map +1 -1
- package/dist/cjs/src/primitives/Signature.js +141 -4
- package/dist/cjs/src/primitives/Signature.js.map +1 -1
- package/dist/cjs/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/cjs/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/cjs/src/primitives/utils.js +14 -9
- package/dist/cjs/src/primitives/utils.js.map +1 -1
- package/dist/cjs/src/script/Spend.js.map +1 -1
- package/dist/cjs/src/script/templates/P2PKH.js +1 -1
- package/dist/cjs/src/script/templates/P2PKH.js.map +1 -1
- package/dist/cjs/src/transaction/MerklePath.js +3 -3
- package/dist/cjs/src/transaction/MerklePath.js.map +1 -1
- package/dist/cjs/src/transaction/Transaction.js +2 -2
- package/dist/cjs/src/transaction/Transaction.js.map +1 -1
- package/dist/cjs/tsconfig.cjs.tsbuildinfo +1 -1
- package/dist/esm/src/compat/BSM.js.map +1 -1
- package/dist/esm/src/compat/ECIES.js +105 -76
- package/dist/esm/src/compat/ECIES.js.map +1 -1
- package/dist/esm/src/compat/HD.js +65 -65
- package/dist/esm/src/compat/HD.js.map +1 -1
- package/dist/esm/src/compat/Mnemonic.js +79 -79
- package/dist/esm/src/compat/Mnemonic.js.map +1 -1
- package/dist/esm/src/compat/bip-39-wordlist-en.js +2 -2
- package/dist/esm/src/compat/bip-39-wordlist-en.js.map +1 -1
- package/dist/esm/src/primitives/AESGCM.js.map +1 -1
- package/dist/esm/src/primitives/BigNumber.js.map +1 -1
- package/dist/esm/src/primitives/DRBG.js.map +1 -1
- package/dist/esm/src/primitives/ECDSA.js.map +1 -1
- package/dist/esm/src/primitives/Hash.js +26 -13
- package/dist/esm/src/primitives/Hash.js.map +1 -1
- package/dist/esm/src/primitives/PrivateKey.js +3 -2
- package/dist/esm/src/primitives/PrivateKey.js.map +1 -1
- package/dist/esm/src/primitives/PublicKey.js +1 -2
- package/dist/esm/src/primitives/PublicKey.js.map +1 -1
- package/dist/esm/src/primitives/Random.js +2 -2
- package/dist/esm/src/primitives/Random.js.map +1 -1
- package/dist/esm/src/primitives/Signature.js +141 -4
- package/dist/esm/src/primitives/Signature.js.map +1 -1
- package/dist/esm/src/primitives/SymmetricKey.js.map +1 -1
- package/dist/esm/src/primitives/TransactionSignature.js.map +1 -1
- package/dist/esm/src/primitives/utils.js +14 -9
- package/dist/esm/src/primitives/utils.js.map +1 -1
- package/dist/esm/src/script/Spend.js.map +1 -1
- package/dist/esm/src/script/templates/P2PKH.js +1 -1
- package/dist/esm/src/script/templates/P2PKH.js.map +1 -1
- package/dist/esm/src/transaction/MerklePath.js +3 -3
- package/dist/esm/src/transaction/MerklePath.js.map +1 -1
- package/dist/esm/src/transaction/Transaction.js +2 -2
- package/dist/esm/src/transaction/Transaction.js.map +1 -1
- package/dist/esm/tsconfig.esm.tsbuildinfo +1 -1
- package/dist/types/src/compat/ECIES.d.ts +36 -36
- package/dist/types/src/compat/ECIES.d.ts.map +1 -1
- package/dist/types/src/compat/HD.d.ts +65 -65
- package/dist/types/src/compat/HD.d.ts.map +1 -1
- package/dist/types/src/compat/Mnemonic.d.ts +79 -79
- package/dist/types/src/compat/Mnemonic.d.ts.map +1 -1
- package/dist/types/src/primitives/AESGCM.d.ts.map +1 -1
- package/dist/types/src/primitives/BigNumber.d.ts.map +1 -1
- package/dist/types/src/primitives/Hash.d.ts.map +1 -1
- package/dist/types/src/primitives/PrivateKey.d.ts.map +1 -1
- package/dist/types/src/primitives/PublicKey.d.ts.map +1 -1
- package/dist/types/src/primitives/Signature.d.ts +62 -0
- package/dist/types/src/primitives/Signature.d.ts.map +1 -1
- package/dist/types/src/primitives/SymmetricKey.d.ts.map +1 -1
- package/dist/types/src/primitives/TransactionSignature.d.ts.map +1 -1
- package/dist/types/src/primitives/utils.d.ts.map +1 -1
- package/dist/types/src/script/Spend.d.ts.map +1 -1
- package/dist/types/src/transaction/Transaction.d.ts.map +1 -1
- package/dist/types/tsconfig.types.tsbuildinfo +1 -1
- package/docs/compat.md +4 -4
- package/docs/primitives.md +288 -79
- package/mod.ts +8 -0
- package/package.json +5 -3
- package/src/compat/BSM.ts +12 -12
- package/src/compat/ECIES.ts +417 -418
- package/src/compat/HD.ts +228 -228
- package/src/compat/Mnemonic.ts +173 -173
- package/src/compat/__tests/BSM.test.ts +13 -2
- package/src/compat/bip-39-wordlist-en.ts +2052 -2052
- package/src/primitives/AESGCM.ts +30 -30
- package/src/primitives/BigNumber.ts +0 -1
- package/src/primitives/DRBG.ts +5 -5
- package/src/primitives/ECDSA.ts +1 -1
- package/src/primitives/Hash.ts +278 -293
- package/src/primitives/PrivateKey.ts +18 -19
- package/src/primitives/PublicKey.ts +9 -10
- package/src/primitives/Random.ts +4 -4
- package/src/primitives/Signature.ts +158 -14
- package/src/primitives/SymmetricKey.ts +3 -3
- package/src/primitives/TransactionSignature.ts +9 -9
- package/src/primitives/index.ts +1 -1
- package/src/primitives/utils.ts +60 -64
- package/src/script/Spend.ts +12 -12
- package/src/script/index.ts +1 -1
- package/src/script/templates/P2PKH.ts +1 -1
- package/src/transaction/MerklePath.ts +3 -3
- package/src/transaction/Transaction.ts +23 -23
package/src/primitives/AESGCM.ts
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
const SBox = [[0x63, 0x7c, 0x77, 0x7b, 0xf2, 0x6b, 0x6f, 0xc5, 0x30, 0x01, 0x67, 0x2b, 0xfe, 0xd7, 0xab, 0x76],
|
|
2
|
-
[0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0],
|
|
3
|
-
[0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15],
|
|
4
|
-
[0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75],
|
|
5
|
-
[0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84],
|
|
6
|
-
[0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf],
|
|
7
|
-
[0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8],
|
|
8
|
-
[0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2],
|
|
9
|
-
[0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73],
|
|
10
|
-
[0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb],
|
|
11
|
-
[0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79],
|
|
12
|
-
[0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08],
|
|
13
|
-
[0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a],
|
|
14
|
-
[0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e],
|
|
15
|
-
[0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf],
|
|
16
|
-
[0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]]
|
|
2
|
+
[0xca, 0x82, 0xc9, 0x7d, 0xfa, 0x59, 0x47, 0xf0, 0xad, 0xd4, 0xa2, 0xaf, 0x9c, 0xa4, 0x72, 0xc0],
|
|
3
|
+
[0xb7, 0xfd, 0x93, 0x26, 0x36, 0x3f, 0xf7, 0xcc, 0x34, 0xa5, 0xe5, 0xf1, 0x71, 0xd8, 0x31, 0x15],
|
|
4
|
+
[0x04, 0xc7, 0x23, 0xc3, 0x18, 0x96, 0x05, 0x9a, 0x07, 0x12, 0x80, 0xe2, 0xeb, 0x27, 0xb2, 0x75],
|
|
5
|
+
[0x09, 0x83, 0x2c, 0x1a, 0x1b, 0x6e, 0x5a, 0xa0, 0x52, 0x3b, 0xd6, 0xb3, 0x29, 0xe3, 0x2f, 0x84],
|
|
6
|
+
[0x53, 0xd1, 0x00, 0xed, 0x20, 0xfc, 0xb1, 0x5b, 0x6a, 0xcb, 0xbe, 0x39, 0x4a, 0x4c, 0x58, 0xcf],
|
|
7
|
+
[0xd0, 0xef, 0xaa, 0xfb, 0x43, 0x4d, 0x33, 0x85, 0x45, 0xf9, 0x02, 0x7f, 0x50, 0x3c, 0x9f, 0xa8],
|
|
8
|
+
[0x51, 0xa3, 0x40, 0x8f, 0x92, 0x9d, 0x38, 0xf5, 0xbc, 0xb6, 0xda, 0x21, 0x10, 0xff, 0xf3, 0xd2],
|
|
9
|
+
[0xcd, 0x0c, 0x13, 0xec, 0x5f, 0x97, 0x44, 0x17, 0xc4, 0xa7, 0x7e, 0x3d, 0x64, 0x5d, 0x19, 0x73],
|
|
10
|
+
[0x60, 0x81, 0x4f, 0xdc, 0x22, 0x2a, 0x90, 0x88, 0x46, 0xee, 0xb8, 0x14, 0xde, 0x5e, 0x0b, 0xdb],
|
|
11
|
+
[0xe0, 0x32, 0x3a, 0x0a, 0x49, 0x06, 0x24, 0x5c, 0xc2, 0xd3, 0xac, 0x62, 0x91, 0x95, 0xe4, 0x79],
|
|
12
|
+
[0xe7, 0xc8, 0x37, 0x6d, 0x8d, 0xd5, 0x4e, 0xa9, 0x6c, 0x56, 0xf4, 0xea, 0x65, 0x7a, 0xae, 0x08],
|
|
13
|
+
[0xba, 0x78, 0x25, 0x2e, 0x1c, 0xa6, 0xb4, 0xc6, 0xe8, 0xdd, 0x74, 0x1f, 0x4b, 0xbd, 0x8b, 0x8a],
|
|
14
|
+
[0x70, 0x3e, 0xb5, 0x66, 0x48, 0x03, 0xf6, 0x0e, 0x61, 0x35, 0x57, 0xb9, 0x86, 0xc1, 0x1d, 0x9e],
|
|
15
|
+
[0xe1, 0xf8, 0x98, 0x11, 0x69, 0xd9, 0x8e, 0x94, 0x9b, 0x1e, 0x87, 0xe9, 0xce, 0x55, 0x28, 0xdf],
|
|
16
|
+
[0x8c, 0xa1, 0x89, 0x0d, 0xbf, 0xe6, 0x42, 0x68, 0x41, 0x99, 0x2d, 0x0f, 0xb0, 0x54, 0xbb, 0x16]]
|
|
17
17
|
const Rcon = [[0x00, 0x00, 0x00, 0x00], [0x01, 0x00, 0x00, 0x00], [0x02, 0x00, 0x00, 0x00], [0x04, 0x00, 0x00, 0x00],
|
|
18
|
-
[0x08, 0x00, 0x00, 0x00], [0x10, 0x00, 0x00, 0x00], [0x20, 0x00, 0x00, 0x00], [0x40, 0x00, 0x00, 0x00],
|
|
19
|
-
[0x80, 0x00, 0x00, 0x00], [0x1b, 0x00, 0x00, 0x00], [0x36, 0x00, 0x00, 0x00]]
|
|
18
|
+
[0x08, 0x00, 0x00, 0x00], [0x10, 0x00, 0x00, 0x00], [0x20, 0x00, 0x00, 0x00], [0x40, 0x00, 0x00, 0x00],
|
|
19
|
+
[0x80, 0x00, 0x00, 0x00], [0x1b, 0x00, 0x00, 0x00], [0x36, 0x00, 0x00, 0x00]]
|
|
20
20
|
|
|
21
|
-
function addRoundKey(
|
|
21
|
+
function addRoundKey (
|
|
22
22
|
state: number[][],
|
|
23
23
|
roundKeyArray: number[][],
|
|
24
24
|
offset: number
|
|
@@ -32,7 +32,7 @@ function addRoundKey(
|
|
|
32
32
|
}
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
function subBytes(state: number[][]): void {
|
|
35
|
+
function subBytes (state: number[][]): void {
|
|
36
36
|
let i
|
|
37
37
|
let j
|
|
38
38
|
for (i = 0; i < 4; i++) {
|
|
@@ -42,14 +42,14 @@ function subBytes(state: number[][]): void {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
function subWord(value: number[]): void {
|
|
45
|
+
function subWord (value: number[]): void {
|
|
46
46
|
let i
|
|
47
47
|
for (i = 0; i < 4; i++) {
|
|
48
48
|
value[i] = SBox[(value[i] & 0xF0) >> 4][(value[i] & 0x0F)]
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
-
function rotWord(value: number[]): void {
|
|
52
|
+
function rotWord (value: number[]): void {
|
|
53
53
|
const temp = value[0]
|
|
54
54
|
|
|
55
55
|
value[0] = value[1]
|
|
@@ -58,7 +58,7 @@ function rotWord(value: number[]): void {
|
|
|
58
58
|
value[3] = temp
|
|
59
59
|
}
|
|
60
60
|
|
|
61
|
-
function shiftRows(state: number[][]): void {
|
|
61
|
+
function shiftRows (state: number[][]): void {
|
|
62
62
|
let i: number
|
|
63
63
|
let j: number
|
|
64
64
|
let k: number
|
|
@@ -88,7 +88,7 @@ function shiftRows(state: number[][]): void {
|
|
|
88
88
|
}
|
|
89
89
|
}
|
|
90
90
|
|
|
91
|
-
function finiteFieldMultiplication(value0: number, value1: number): number {
|
|
91
|
+
function finiteFieldMultiplication (value0: number, value1: number): number {
|
|
92
92
|
let i
|
|
93
93
|
let result = 0
|
|
94
94
|
|
|
@@ -110,7 +110,7 @@ function finiteFieldMultiplication(value0: number, value1: number): number {
|
|
|
110
110
|
return result
|
|
111
111
|
}
|
|
112
112
|
|
|
113
|
-
function mixColumns(state: number[][]): void {
|
|
113
|
+
function mixColumns (state: number[][]): void {
|
|
114
114
|
let i
|
|
115
115
|
let j
|
|
116
116
|
const temp: number[][] = [[], [], [], []]
|
|
@@ -133,7 +133,7 @@ function mixColumns(state: number[][]): void {
|
|
|
133
133
|
}
|
|
134
134
|
}
|
|
135
135
|
|
|
136
|
-
function keyExpansion(roundLimit: number, key: number[]): number[][] {
|
|
136
|
+
function keyExpansion (roundLimit: number, key: number[]): number[][] {
|
|
137
137
|
let i
|
|
138
138
|
let j
|
|
139
139
|
const nK = parseInt(String(key.length / 4))
|
|
@@ -170,7 +170,7 @@ function keyExpansion(roundLimit: number, key: number[]): number[][] {
|
|
|
170
170
|
return result
|
|
171
171
|
}
|
|
172
172
|
|
|
173
|
-
export function AES(input: number[], key: number[]): number[] {
|
|
173
|
+
export function AES (input: number[], key: number[]): number[] {
|
|
174
174
|
let i
|
|
175
175
|
let j
|
|
176
176
|
let round: number
|
|
@@ -316,7 +316,7 @@ export const incrementLeastSignificantThirtyTwoBits = function (
|
|
|
316
316
|
return result
|
|
317
317
|
}
|
|
318
318
|
|
|
319
|
-
export function ghash(input: number[], hashSubKey: number[]): number[] {
|
|
319
|
+
export function ghash (input: number[], hashSubKey: number[]): number[] {
|
|
320
320
|
let i: number
|
|
321
321
|
let result = createZeroBlock(16)
|
|
322
322
|
|
|
@@ -333,7 +333,7 @@ export function ghash(input: number[], hashSubKey: number[]): number[] {
|
|
|
333
333
|
return result
|
|
334
334
|
}
|
|
335
335
|
|
|
336
|
-
function gctr(
|
|
336
|
+
function gctr (
|
|
337
337
|
input: number[],
|
|
338
338
|
initialCounterBlock: number[],
|
|
339
339
|
key: number[]
|
|
@@ -365,7 +365,7 @@ function gctr(
|
|
|
365
365
|
return output
|
|
366
366
|
}
|
|
367
367
|
|
|
368
|
-
export function AESGCM(
|
|
368
|
+
export function AESGCM (
|
|
369
369
|
plainText: number[],
|
|
370
370
|
additionalAuthenticatedData: number[],
|
|
371
371
|
initializationVector: number[],
|
|
@@ -418,7 +418,7 @@ export function AESGCM(
|
|
|
418
418
|
}
|
|
419
419
|
}
|
|
420
420
|
|
|
421
|
-
export function AESGCMDecrypt(
|
|
421
|
+
export function AESGCMDecrypt (
|
|
422
422
|
cipherText: number[],
|
|
423
423
|
additionalAuthenticatedData: number[],
|
|
424
424
|
initializationVector: number[],
|
package/src/primitives/DRBG.ts
CHANGED
|
@@ -65,16 +65,16 @@ export default class DRBG {
|
|
|
65
65
|
.update(this.V)
|
|
66
66
|
.update([0x00])
|
|
67
67
|
if (seed !== undefined) { kmac = kmac.update(seed) }
|
|
68
|
-
this.K = kmac.digest()
|
|
69
|
-
this.V = this.hmac().update(this.V).digest()
|
|
68
|
+
this.K = kmac.digest()
|
|
69
|
+
this.V = this.hmac().update(this.V).digest()
|
|
70
70
|
if (seed === undefined) { return }
|
|
71
71
|
|
|
72
72
|
this.K = this.hmac()
|
|
73
73
|
.update(this.V)
|
|
74
74
|
.update([0x01])
|
|
75
75
|
.update(seed)
|
|
76
|
-
.digest()
|
|
77
|
-
this.V = this.hmac().update(this.V).digest()
|
|
76
|
+
.digest()
|
|
77
|
+
this.V = this.hmac().update(this.V).digest()
|
|
78
78
|
}
|
|
79
79
|
|
|
80
80
|
/**
|
|
@@ -91,7 +91,7 @@ export default class DRBG {
|
|
|
91
91
|
generate (len: number): string {
|
|
92
92
|
let temp = []
|
|
93
93
|
while (temp.length < len) {
|
|
94
|
-
this.V = this.hmac().update(this.V).digest()
|
|
94
|
+
this.V = this.hmac().update(this.V).digest()
|
|
95
95
|
temp = temp.concat(this.V)
|
|
96
96
|
}
|
|
97
97
|
|
package/src/primitives/ECDSA.ts
CHANGED
|
@@ -23,7 +23,7 @@ import DRBG from './DRBG.js'
|
|
|
23
23
|
* let msg = new BigNumber('1234567890abcdef', 16);
|
|
24
24
|
* let truncatedMsg = truncateToN(msg);
|
|
25
25
|
*/
|
|
26
|
-
function truncateToN(msg: BigNumber, truncOnly?: boolean): BigNumber {
|
|
26
|
+
function truncateToN (msg: BigNumber, truncOnly?: boolean): BigNumber {
|
|
27
27
|
const curve = new Curve()
|
|
28
28
|
const delta = msg.byteLength() * 8 - curve.n.bitLength()
|
|
29
29
|
if (delta > 0) { msg = msg.ushrn(delta) }
|