ox 1.0.4 → 1.1.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/CHANGELOG.md +62 -0
- package/dist/core/Base64.d.ts +10 -21
- package/dist/core/Base64.d.ts.map +1 -1
- package/dist/core/Base64.js +8 -127
- package/dist/core/Base64.js.map +1 -1
- package/dist/core/BinaryStateTree.d.ts.map +1 -1
- package/dist/core/BinaryStateTree.js +2 -2
- package/dist/core/BinaryStateTree.js.map +1 -1
- package/dist/core/Bls.d.ts.map +1 -1
- package/dist/core/Bls.js +19 -44
- package/dist/core/Bls.js.map +1 -1
- package/dist/core/Ed25519.d.ts.map +1 -1
- package/dist/core/Ed25519.js +7 -6
- package/dist/core/Ed25519.js.map +1 -1
- package/dist/core/Engine.d.ts +124 -0
- package/dist/core/Engine.d.ts.map +1 -0
- package/dist/core/Engine.js +180 -0
- package/dist/core/Engine.js.map +1 -0
- package/dist/core/Hash.d.ts +4 -4
- package/dist/core/Hash.d.ts.map +1 -1
- package/dist/core/Hash.js +9 -12
- package/dist/core/Hash.js.map +1 -1
- package/dist/core/Keystore.d.ts.map +1 -1
- package/dist/core/Keystore.js +15 -10
- package/dist/core/Keystore.js.map +1 -1
- package/dist/core/Mnemonic.d.ts.map +1 -1
- package/dist/core/Mnemonic.js +3 -2
- package/dist/core/Mnemonic.js.map +1 -1
- package/dist/core/P256.d.ts.map +1 -1
- package/dist/core/P256.js +8 -9
- package/dist/core/P256.js.map +1 -1
- package/dist/core/Secp256k1.d.ts.map +1 -1
- package/dist/core/Secp256k1.js +8 -9
- package/dist/core/Secp256k1.js.map +1 -1
- package/dist/core/WebCryptoP256.d.ts.map +1 -1
- package/dist/core/WebCryptoP256.js +2 -2
- package/dist/core/WebCryptoP256.js.map +1 -1
- package/dist/core/X25519.d.ts.map +1 -1
- package/dist/core/X25519.js +4 -3
- package/dist/core/X25519.js.map +1 -1
- package/dist/core/internal/bls.d.ts +12 -0
- package/dist/core/internal/bls.d.ts.map +1 -0
- package/dist/core/internal/bls.js +79 -0
- package/dist/core/internal/bls.js.map +1 -0
- package/dist/core/internal/codec/base64.d.ts +84 -0
- package/dist/core/internal/codec/base64.d.ts.map +1 -0
- package/dist/core/internal/codec/base64.js +177 -0
- package/dist/core/internal/codec/base64.js.map +1 -0
- package/dist/core/internal/codec/hex.d.ts +49 -4
- package/dist/core/internal/codec/hex.d.ts.map +1 -1
- package/dist/core/internal/codec/hex.js +109 -35
- package/dist/core/internal/codec/hex.js.map +1 -1
- package/dist/core/internal/curves.d.ts +17 -0
- package/dist/core/internal/curves.d.ts.map +1 -0
- package/dist/core/internal/curves.js +17 -0
- package/dist/core/internal/curves.js.map +1 -0
- package/dist/core/internal/ed25519.d.ts +14 -0
- package/dist/core/internal/ed25519.d.ts.map +1 -0
- package/dist/core/internal/ed25519.js +29 -0
- package/dist/core/internal/ed25519.js.map +1 -0
- package/dist/core/internal/engine.d.ts +278 -0
- package/dist/core/internal/engine.d.ts.map +1 -0
- package/dist/core/internal/engine.js +131 -0
- package/dist/core/internal/engine.js.map +1 -0
- package/dist/core/internal/hash.d.ts +12 -0
- package/dist/core/internal/hash.d.ts.map +1 -0
- package/dist/core/internal/hash.js +30 -0
- package/dist/core/internal/hash.js.map +1 -0
- package/dist/core/internal/keystore.d.ts +14 -0
- package/dist/core/internal/keystore.d.ts.map +1 -0
- package/dist/core/internal/keystore.js +32 -0
- package/dist/core/internal/keystore.js.map +1 -0
- package/dist/core/internal/mnemonic.d.ts +4 -0
- package/dist/core/internal/mnemonic.d.ts.map +1 -0
- package/dist/core/internal/mnemonic.js +14 -0
- package/dist/core/internal/mnemonic.js.map +1 -0
- package/dist/core/internal/p256.d.ts +14 -0
- package/dist/core/internal/p256.d.ts.map +1 -0
- package/dist/core/internal/p256.js +36 -0
- package/dist/core/internal/p256.js.map +1 -0
- package/dist/core/internal/secp256k1.d.ts +14 -0
- package/dist/core/internal/secp256k1.d.ts.map +1 -0
- package/dist/core/internal/secp256k1.js +36 -0
- package/dist/core/internal/secp256k1.js.map +1 -0
- package/dist/core/internal/x25519.d.ts +8 -0
- package/dist/core/internal/x25519.d.ts.map +1 -0
- package/dist/core/internal/x25519.js +20 -0
- package/dist/core/internal/x25519.js.map +1 -0
- package/dist/index.d.ts +35 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.docs.d.ts +2 -0
- package/dist/index.docs.d.ts.map +1 -1
- package/dist/index.docs.js +2 -0
- package/dist/index.docs.js.map +1 -1
- package/dist/index.js +35 -0
- package/dist/index.js.map +1 -1
- package/dist/node/Engine.d.ts +55 -0
- package/dist/node/Engine.d.ts.map +1 -0
- package/dist/node/Engine.js +51 -0
- package/dist/node/Engine.js.map +1 -0
- package/dist/node/Hash.d.ts +39 -0
- package/dist/node/Hash.d.ts.map +1 -0
- package/dist/node/Hash.js +37 -0
- package/dist/node/Hash.js.map +1 -0
- package/dist/node/index.d.ts +39 -0
- package/dist/node/index.d.ts.map +1 -0
- package/dist/node/index.js +39 -0
- package/dist/node/index.js.map +1 -0
- package/dist/tempo/VirtualMaster.d.ts +2 -0
- package/dist/tempo/VirtualMaster.d.ts.map +1 -1
- package/dist/tempo/VirtualMaster.js +19 -5
- package/dist/tempo/VirtualMaster.js.map +1 -1
- package/dist/tempo/ZoneId.d.ts +35 -17
- package/dist/tempo/ZoneId.d.ts.map +1 -1
- package/dist/tempo/ZoneId.js +41 -16
- package/dist/tempo/ZoneId.js.map +1 -1
- package/dist/tempo/index.d.ts +5 -6
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +5 -6
- package/dist/tempo/index.js.map +1 -1
- package/dist/tempo/internal/mine.wasm.d.ts +2 -4
- package/dist/tempo/internal/mine.wasm.d.ts.map +1 -1
- package/dist/tempo/internal/mine.wasm.js +7 -12
- package/dist/tempo/internal/mine.wasm.js.map +1 -1
- package/dist/tempo/internal/virtualMasterPool.js +4 -1
- package/dist/tempo/internal/virtualMasterPool.js.map +1 -1
- package/dist/wasm/Engine.d.ts +62 -0
- package/dist/wasm/Engine.d.ts.map +1 -0
- package/dist/wasm/Engine.js +57 -0
- package/dist/wasm/Engine.js.map +1 -0
- package/dist/wasm/Hash.d.ts +49 -0
- package/dist/wasm/Hash.d.ts.map +1 -0
- package/dist/wasm/Hash.js +70 -0
- package/dist/wasm/Hash.js.map +1 -0
- package/dist/wasm/index.d.ts +46 -0
- package/dist/wasm/index.d.ts.map +1 -0
- package/dist/wasm/index.js +46 -0
- package/dist/wasm/index.js.map +1 -0
- package/dist/wasm/internal/hash.d.ts +9 -0
- package/dist/wasm/internal/hash.d.ts.map +1 -0
- package/dist/wasm/internal/hash.js +26 -0
- package/dist/wasm/internal/hash.js.map +1 -0
- package/dist/wasm/internal/hashes.wasm.d.ts +5 -0
- package/dist/wasm/internal/hashes.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/hashes.wasm.js +12 -0
- package/dist/wasm/internal/hashes.wasm.js.map +1 -0
- package/dist/wasm/internal/instantiate.d.ts +56 -0
- package/dist/wasm/internal/instantiate.d.ts.map +1 -0
- package/dist/wasm/internal/instantiate.js +92 -0
- package/dist/wasm/internal/instantiate.js.map +1 -0
- package/dist/zod/TypedData.d.ts +12 -12
- package/package.json +36 -1
- package/src/core/Base64.ts +19 -166
- package/src/core/BinaryStateTree.ts +2 -3
- package/src/core/Bls.ts +27 -77
- package/src/core/Ed25519.ts +7 -7
- package/src/core/Engine.ts +235 -0
- package/src/core/Hash.ts +9 -12
- package/src/core/Keystore.ts +17 -17
- package/src/core/Mnemonic.ts +3 -6
- package/src/core/P256.ts +15 -24
- package/src/core/Rlp_tx.bench.ts +2 -4
- package/src/core/Secp256k1.ts +9 -14
- package/src/core/TxEnvelopeEip1559.bench.ts +0 -5
- package/src/core/WebCryptoP256.ts +2 -2
- package/src/core/X25519.ts +4 -3
- package/src/core/_test/AbiParameters.adversarial.fuzz.ts +1 -2
- package/src/core/_test/AbiParameters.fuzz.ts +1 -2
- package/src/core/_test/Base.fuzz.ts +1 -2
- package/src/core/_test/Cbor.fuzz.ts +1 -2
- package/src/core/_test/Engine.fuzz.ts +293 -0
- package/src/core/_test/Engine.test-d.ts +84 -0
- package/src/core/_test/Engine.test.ts +523 -0
- package/src/core/_test/Hash.vectors.test.ts +56 -0
- package/src/core/_test/Hex.fuzz.ts +1 -2
- package/src/core/_test/Rlp.fuzz.ts +1 -2
- package/src/core/_test/Signature.fuzz.ts +1 -2
- package/src/core/_test/curves.test.ts +7 -0
- package/src/core/_test/index.test.ts +1 -0
- package/src/core/internal/bls.ts +121 -0
- package/src/core/internal/codec/_test/base64.conformance.ts +156 -0
- package/src/core/internal/codec/_test/hex.conformance.ts +204 -0
- package/src/core/internal/codec/_test/hex.fuzz.ts +234 -0
- package/src/core/internal/codec/_test/hex.test.ts +124 -0
- package/src/core/internal/codec/base64.ts +222 -0
- package/src/core/internal/codec/hex.ts +115 -34
- package/src/core/internal/curves.ts +18 -0
- package/src/core/internal/ed25519.ts +64 -0
- package/src/core/internal/engine.ts +410 -0
- package/src/core/internal/hash.ts +48 -0
- package/src/core/internal/keystore.ts +107 -0
- package/src/core/internal/mnemonic.ts +18 -0
- package/src/core/internal/p256.ts +91 -0
- package/src/core/internal/secp256k1.ts +91 -0
- package/src/core/internal/x25519.ts +40 -0
- package/src/index.docs.ts +2 -0
- package/src/index.ts +36 -0
- package/src/node/Engine.ts +69 -0
- package/src/node/Hash.ts +56 -0
- package/src/node/_test/Engine.test.ts +62 -0
- package/src/node/_test/Hash.test-d.ts +26 -0
- package/src/node/_test/Hash.test.ts +102 -0
- package/src/node/index.ts +40 -0
- package/src/tempo/VirtualMaster.test.ts +75 -0
- package/src/tempo/VirtualMaster.ts +28 -6
- package/src/tempo/ZoneId.test-d.ts +16 -0
- package/src/tempo/ZoneId.test.ts +48 -13
- package/src/tempo/ZoneId.ts +55 -19
- package/src/tempo/index.ts +5 -6
- package/src/tempo/internal/mine.wasm.ts +7 -13
- package/src/tempo/internal/virtualMasterPool.ts +4 -1
- package/src/tsconfig.json +2 -1
- package/src/version.ts +1 -1
- package/src/wasm/Engine.ts +76 -0
- package/src/wasm/Hash.bench.ts +60 -0
- package/src/wasm/Hash.ts +109 -0
- package/src/wasm/_test/Engine.test.ts +62 -0
- package/src/wasm/_test/Hash.browser.test.ts +50 -0
- package/src/wasm/_test/Hash.fuzz.ts +188 -0
- package/src/wasm/_test/Hash.test-d.ts +28 -0
- package/src/wasm/_test/Hash.test.ts +211 -0
- package/src/wasm/_test/Hash.vectors.test.ts +117 -0
- package/src/wasm/_test/Runtime.test.ts +21 -0
- package/src/wasm/_test/runtime.wasm.ts +11 -0
- package/src/wasm/index.ts +47 -0
- package/src/wasm/internal/hash.ts +50 -0
- package/src/wasm/internal/hashes.wasm.ts +14 -0
- package/src/wasm/internal/instantiate.ts +135 -0
- package/src/zod/tempo/_test/ZoneId.test.ts +2 -2
- package/src/tempo/internal/mine.c +0 -182
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,67 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 1.1.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#321](https://github.com/wevm/ox/pull/321) [`3e5c27b`](https://github.com/wevm/ox/commit/3e5c27b40284ec973d782d21afbceb4a4dee0f7d) Thanks [@jxom](https://github.com/jxom)! - Added `ox/node` for native SHA-256, RIPEMD-160, and HMAC-SHA256, and `ox/wasm` for those hashes plus WASM-backed Keccak256.
|
|
8
|
+
|
|
9
|
+
```ts
|
|
10
|
+
import { Engine } from "ox/wasm";
|
|
11
|
+
|
|
12
|
+
await Engine.load();
|
|
13
|
+
```
|
|
14
|
+
|
|
15
|
+
- [#321](https://github.com/wevm/ox/pull/321) [`3e5c27b`](https://github.com/wevm/ox/commit/3e5c27b40284ec973d782d21afbceb4a4dee0f7d) Thanks [@jxom](https://github.com/jxom)! - Added `Engine`, which swaps ox's cryptography for another implementation across the `Bls`, `Ed25519`, `Hash`, `Keystore`, `Mnemonic`, `P256`, `Secp256k1` and `X25519` slots.
|
|
16
|
+
|
|
17
|
+
### Patch Changes
|
|
18
|
+
|
|
19
|
+
- [#319](https://github.com/wevm/ox/pull/319) [`96bd9ce`](https://github.com/wevm/ox/commit/96bd9ce0b4b09eca740e9eb728b30635b3e0e589) Thanks [@jxom](https://github.com/jxom)! - Fixed `Hex.toBytes` silently accepting characters above `U+00FF`, and sped up decoding of short values and encoding on runtimes without `Uint8Array.prototype.toHex`.
|
|
20
|
+
|
|
21
|
+
`Buffer.from(…, 'hex')` masks each UTF-16 code unit to 8 bits, so a character
|
|
22
|
+
above `U+00FF` could alias a hex digit rather than being rejected:
|
|
23
|
+
|
|
24
|
+
```ts
|
|
25
|
+
Hex.toBytes("0x숰0");
|
|
26
|
+
// before: Uint8Array [0] (U+C230 masked to the digit `0`)
|
|
27
|
+
// after: throws Hex.InvalidHexValueError
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
- [#321](https://github.com/wevm/ox/pull/321) [`3e5c27b`](https://github.com/wevm/ox/commit/3e5c27b40284ec973d782d21afbceb4a4dee0f7d) Thanks [@jxom](https://github.com/jxom)! - Fixed `VirtualMaster.mineSaltAsync` accepting non-positive, non-finite, non-integer or larger-than-uint32 chunk sizes.
|
|
31
|
+
|
|
32
|
+
- [#319](https://github.com/wevm/ox/pull/319) [`96bd9ce`](https://github.com/wevm/ox/commit/96bd9ce0b4b09eca740e9eb728b30635b3e0e589) Thanks [@jxom](https://github.com/jxom)! - Fixed `Base64.fromBytes` double-padding URL-safe output, and `Base64.toBytes` silently accepting characters above `U+00FF`.
|
|
33
|
+
|
|
34
|
+
`omitPadding` governs both alphabets, so padding was appended to an
|
|
35
|
+
already-padded `base64url` string on every runtime with
|
|
36
|
+
`Uint8Array.prototype.toBase64` — browsers and Bun, but not Node:
|
|
37
|
+
|
|
38
|
+
```ts
|
|
39
|
+
Base64.fromBytes(Bytes.from([0xfa]), { url: true, pad: true });
|
|
40
|
+
// before: '-g===='
|
|
41
|
+
// after: '-g=='
|
|
42
|
+
```
|
|
43
|
+
|
|
44
|
+
Separately, the decoder's alphabet table only spans Latin-1, so a character
|
|
45
|
+
above it read as `undefined` and decoded as `A` rather than being refused:
|
|
46
|
+
|
|
47
|
+
```ts
|
|
48
|
+
Base64.toBytes("숰GVsbG8=");
|
|
49
|
+
// before: Uint8Array of "\u0000ello"
|
|
50
|
+
// after: throws Base64.InvalidCharacterError
|
|
51
|
+
```
|
|
52
|
+
|
|
53
|
+
## 1.0.5
|
|
54
|
+
|
|
55
|
+
### Patch Changes
|
|
56
|
+
|
|
57
|
+
- [#314](https://github.com/wevm/ox/pull/314) [`b179677`](https://github.com/wevm/ox/commit/b17967709e4f88a1925e865e3a86fa1040e9ff15) Thanks [@jxom](https://github.com/jxom)! - Corrected Zone chain ID conversion for Presto and Moderato source chains.
|
|
58
|
+
|
|
59
|
+
```ts
|
|
60
|
+
import { ZoneId } from "ox/tempo";
|
|
61
|
+
|
|
62
|
+
ZoneId.toChainId(1, 42_431);
|
|
63
|
+
```
|
|
64
|
+
|
|
3
65
|
## 1.0.4
|
|
4
66
|
|
|
5
67
|
### Patch Changes
|
package/dist/core/Base64.d.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import * as Bytes from './Bytes.js';
|
|
2
|
-
import * as Errors from './Errors.js';
|
|
2
|
+
import type * as Errors from './Errors.js';
|
|
3
3
|
import * as Hex from './Hex.js';
|
|
4
|
+
import * as internal from './internal/codec/base64.js';
|
|
4
5
|
/**
|
|
5
6
|
* Encodes a {@link ox#Bytes.Bytes} to a Base64-encoded string (with optional padding and/or URL-safe characters).
|
|
6
7
|
*
|
|
@@ -238,25 +239,13 @@ export declare function toString(value: string): string;
|
|
|
238
239
|
export declare namespace toString {
|
|
239
240
|
type ErrorType = toBytes.ErrorType | Errors.GlobalErrorType;
|
|
240
241
|
}
|
|
241
|
-
/** Thrown when a Base64 string contains
|
|
242
|
-
export declare
|
|
243
|
-
|
|
244
|
-
constructor({ character }: {
|
|
245
|
-
character: string;
|
|
246
|
-
});
|
|
247
|
-
}
|
|
242
|
+
/** Thrown when a Base64 string contains a character outside its alphabet. */
|
|
243
|
+
export declare const InvalidCharacterError: typeof internal.InvalidCharacterError;
|
|
244
|
+
export type InvalidCharacterError = InstanceType<typeof internal.InvalidCharacterError>;
|
|
248
245
|
/** Thrown when a Base64 string has an impossible length. */
|
|
249
|
-
export declare
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
}
|
|
255
|
-
/** Thrown when a Base64 string contains too many trailing `=` padding characters. */
|
|
256
|
-
export declare class InvalidPaddingError extends Errors.BaseError {
|
|
257
|
-
readonly name = "Base64.InvalidPaddingError";
|
|
258
|
-
constructor({ padding }: {
|
|
259
|
-
padding: number;
|
|
260
|
-
});
|
|
261
|
-
}
|
|
246
|
+
export declare const InvalidLengthError: typeof internal.InvalidLengthError;
|
|
247
|
+
export type InvalidLengthError = InstanceType<typeof internal.InvalidLengthError>;
|
|
248
|
+
/** Thrown when a Base64 string carries more than two padding characters. */
|
|
249
|
+
export declare const InvalidPaddingError: typeof internal.InvalidPaddingError;
|
|
250
|
+
export type InvalidPaddingError = InstanceType<typeof internal.InvalidPaddingError>;
|
|
262
251
|
//# sourceMappingURL=Base64.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base64.d.ts","sourceRoot":"","sources":["../../src/core/Base64.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;
|
|
1
|
+
{"version":3,"file":"Base64.d.ts","sourceRoot":"","sources":["../../src/core/Base64.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Base64.js
CHANGED
|
@@ -1,31 +1,6 @@
|
|
|
1
1
|
import * as Bytes from './Bytes.js';
|
|
2
|
-
import * as Errors from './Errors.js';
|
|
3
2
|
import * as Hex from './Hex.js';
|
|
4
|
-
import
|
|
5
|
-
// Standard Base64 alphabet (RFC 4648 section 4) and URL-safe alphabet (section 5).
|
|
6
|
-
const stdAlphabet = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
|
|
7
|
-
// Char-code -> 6-bit integer lookup. Sentinel `0xff` = invalid character.
|
|
8
|
-
// Standard alphabet plus URL-safe `-`/`_` (decoders are alphabet-agnostic).
|
|
9
|
-
const characterToInteger = /*#__PURE__*/ (() => {
|
|
10
|
-
const table = new Uint8Array(256).fill(0xff);
|
|
11
|
-
for (let i = 0; i < stdAlphabet.length; i++)
|
|
12
|
-
table[stdAlphabet.charCodeAt(i)] = i;
|
|
13
|
-
// URL-safe alternates: `-` for `+` (62), `_` for `/` (63).
|
|
14
|
-
table[45 /* '-' */] = 62;
|
|
15
|
-
table[95 /* '_' */] = 63;
|
|
16
|
-
return table;
|
|
17
|
-
})();
|
|
18
|
-
// Integer -> char-code table for the standard alphabet, indexed by 6-bit value.
|
|
19
|
-
const integerToCharacter = /*#__PURE__*/ (() => {
|
|
20
|
-
const table = new Uint8Array(64);
|
|
21
|
-
for (let i = 0; i < stdAlphabet.length; i++)
|
|
22
|
-
table[i] = stdAlphabet.charCodeAt(i);
|
|
23
|
-
return table;
|
|
24
|
-
})();
|
|
25
|
-
// Phase 2 native fast-path detection: `Uint8Array.prototype.toBase64` /
|
|
26
|
-
// `Uint8Array.fromBase64` ship in Node 22+, Safari 18+, Firefox 133+.
|
|
27
|
-
const nativeToBase64 = Uint8Array.prototype.toBase64;
|
|
28
|
-
const nativeFromBase64 = Uint8Array.fromBase64;
|
|
3
|
+
import * as internal from './internal/codec/base64.js';
|
|
29
4
|
/**
|
|
30
5
|
* Encodes a {@link ox#Bytes.Bytes} to a Base64-encoded string (with optional padding and/or URL-safe characters).
|
|
31
6
|
*
|
|
@@ -73,40 +48,7 @@ const nativeFromBase64 = Uint8Array.fromBase64;
|
|
|
73
48
|
* @returns The Base64 encoded string.
|
|
74
49
|
*/
|
|
75
50
|
export function fromBytes(value, options = {}) {
|
|
76
|
-
|
|
77
|
-
if (nativeToBase64) {
|
|
78
|
-
const out = nativeToBase64.call(value, {
|
|
79
|
-
alphabet: url ? 'base64url' : 'base64',
|
|
80
|
-
omitPadding: !pad,
|
|
81
|
-
});
|
|
82
|
-
// Native `base64url` already omits padding; if pad was requested, restore it.
|
|
83
|
-
if (url && pad) {
|
|
84
|
-
const k = value.length % 3;
|
|
85
|
-
if (k === 1)
|
|
86
|
-
return `${out}==`;
|
|
87
|
-
if (k === 2)
|
|
88
|
-
return `${out}=`;
|
|
89
|
-
}
|
|
90
|
-
return out;
|
|
91
|
-
}
|
|
92
|
-
const encoded = new Uint8Array(Math.ceil(value.length / 3) * 4);
|
|
93
|
-
for (let i = 0, j = 0; j < value.length; i += 4, j += 3) {
|
|
94
|
-
const y = (value[j] << 16) + (value[j + 1] << 8) + (value[j + 2] | 0);
|
|
95
|
-
encoded[i] = integerToCharacter[y >> 18];
|
|
96
|
-
encoded[i + 1] = integerToCharacter[(y >> 12) & 0x3f];
|
|
97
|
-
encoded[i + 2] = integerToCharacter[(y >> 6) & 0x3f];
|
|
98
|
-
encoded[i + 3] = integerToCharacter[y & 0x3f];
|
|
99
|
-
}
|
|
100
|
-
const k = value.length % 3;
|
|
101
|
-
const end = Math.floor(value.length / 3) * 4 + (k && k + 1);
|
|
102
|
-
let base64 = decoder.decode(new Uint8Array(encoded.buffer, 0, end));
|
|
103
|
-
if (pad && k === 1)
|
|
104
|
-
base64 += '==';
|
|
105
|
-
if (pad && k === 2)
|
|
106
|
-
base64 += '=';
|
|
107
|
-
if (url)
|
|
108
|
-
base64 = base64.replaceAll('+', '-').replaceAll('/', '_');
|
|
109
|
-
return base64;
|
|
51
|
+
return internal.fromBytes(value, options);
|
|
110
52
|
}
|
|
111
53
|
/**
|
|
112
54
|
* Encodes a {@link ox#Hex.Hex} to a Base64-encoded string (with optional padding and/or URL-safe characters).
|
|
@@ -212,53 +154,7 @@ export function fromString(value, options = {}) {
|
|
|
212
154
|
* @returns The Base64 decoded {@link ox#Bytes.Bytes}.
|
|
213
155
|
*/
|
|
214
156
|
export function toBytes(value) {
|
|
215
|
-
|
|
216
|
-
let bodyEnd = value.length;
|
|
217
|
-
let pad = 0;
|
|
218
|
-
while (bodyEnd > 0 && value.charCodeAt(bodyEnd - 1) === 61 /* '=' */) {
|
|
219
|
-
bodyEnd--;
|
|
220
|
-
pad++;
|
|
221
|
-
}
|
|
222
|
-
const size = bodyEnd;
|
|
223
|
-
// Reject impossible lengths and excessive padding.
|
|
224
|
-
if (size % 4 === 1)
|
|
225
|
-
throw new InvalidLengthError({ length: value.length });
|
|
226
|
-
if (pad > 2)
|
|
227
|
-
throw new InvalidPaddingError({ padding: pad });
|
|
228
|
-
if (nativeFromBase64) {
|
|
229
|
-
try {
|
|
230
|
-
// `base64url-or-base64` accepts both alphabets transparently.
|
|
231
|
-
return nativeFromBase64(value.slice(0, bodyEnd), {
|
|
232
|
-
alphabet: 'base64url-or-base64',
|
|
233
|
-
lastChunkHandling: 'loose',
|
|
234
|
-
});
|
|
235
|
-
}
|
|
236
|
-
catch {
|
|
237
|
-
// Fall through to the JS path so we throw the typed error class.
|
|
238
|
-
}
|
|
239
|
-
}
|
|
240
|
-
// Validate characters: every char must be in the standard or URL-safe
|
|
241
|
-
// alphabet, and '=' may not appear in the body (only stripped trailing
|
|
242
|
-
// padding).
|
|
243
|
-
const decoded = new Uint8Array((size >> 2) * 3 + (size % 4 ? (size % 4) - 1 : 0));
|
|
244
|
-
let acc = 0;
|
|
245
|
-
let bits = 0;
|
|
246
|
-
let n = 0;
|
|
247
|
-
for (let i = 0; i < size; i++) {
|
|
248
|
-
const code = value.charCodeAt(i);
|
|
249
|
-
if (code === 61 /* '=' */)
|
|
250
|
-
throw new InvalidCharacterError({ character: '=' });
|
|
251
|
-
const v = characterToInteger[code];
|
|
252
|
-
if (v === 0xff)
|
|
253
|
-
throw new InvalidCharacterError({ character: value[i] });
|
|
254
|
-
acc = (acc << 6) | v;
|
|
255
|
-
bits += 6;
|
|
256
|
-
if (bits >= 8) {
|
|
257
|
-
bits -= 8;
|
|
258
|
-
decoded[n++] = (acc >>> bits) & 0xff;
|
|
259
|
-
}
|
|
260
|
-
}
|
|
261
|
-
return decoded;
|
|
157
|
+
return internal.toBytes(value);
|
|
262
158
|
}
|
|
263
159
|
/**
|
|
264
160
|
* Decodes a Base64-encoded string (with optional padding and/or URL-safe characters) to {@link ox#Hex.Hex}.
|
|
@@ -294,25 +190,10 @@ export function toHex(value) {
|
|
|
294
190
|
export function toString(value) {
|
|
295
191
|
return Bytes.toString(toBytes(value));
|
|
296
192
|
}
|
|
297
|
-
/** Thrown when a Base64 string contains
|
|
298
|
-
export
|
|
299
|
-
name = 'Base64.InvalidCharacterError';
|
|
300
|
-
constructor({ character }) {
|
|
301
|
-
super(`Invalid Base64 character: "${character}".`);
|
|
302
|
-
}
|
|
303
|
-
}
|
|
193
|
+
/** Thrown when a Base64 string contains a character outside its alphabet. */
|
|
194
|
+
export const InvalidCharacterError = internal.InvalidCharacterError;
|
|
304
195
|
/** Thrown when a Base64 string has an impossible length. */
|
|
305
|
-
export
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
super(`Invalid Base64 input length \`${length}\`.`);
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
/** Thrown when a Base64 string contains too many trailing `=` padding characters. */
|
|
312
|
-
export class InvalidPaddingError extends Errors.BaseError {
|
|
313
|
-
name = 'Base64.InvalidPaddingError';
|
|
314
|
-
constructor({ padding }) {
|
|
315
|
-
super(`Invalid Base64 padding length \`${padding}\` (must be 0, 1, or 2).`);
|
|
316
|
-
}
|
|
317
|
-
}
|
|
196
|
+
export const InvalidLengthError = internal.InvalidLengthError;
|
|
197
|
+
/** Thrown when a Base64 string carries more than two padding characters. */
|
|
198
|
+
export const InvalidPaddingError = internal.InvalidPaddingError;
|
|
318
199
|
//# sourceMappingURL=Base64.js.map
|
package/dist/core/Base64.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Base64.js","sourceRoot":"","sources":["../../src/core/Base64.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;
|
|
1
|
+
{"version":3,"file":"Base64.js","sourceRoot":"","sources":["../../src/core/Base64.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAC/B,OAAO,KAAK,QAAQ,MAAM,4BAA4B,CAAA;AAEtD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA6CG;AACH,MAAM,UAAU,SAAS,CAAC,KAAkB,EAAE,UAA6B,EAAE;IAC3E,OAAO,QAAQ,CAAC,SAAS,CAAC,KAAK,EAAE,OAAO,CAAC,CAAA;AAC3C,CAAC;AAqBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA0CG;AACH,MAAM,UAAU,OAAO,CAAC,KAAc,EAAE,UAA2B,EAAE;IACnE,OAAO,SAAS,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;AACjD,CAAC;AAqBD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAuCG;AACH,MAAM,UAAU,UAAU,CAAC,KAAa,EAAE,UAA8B,EAAE;IACxE,OAAO,SAAS,CAAC,KAAK,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,CAAA;AACpD,CAAC;AAqBD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,OAAO,CAAC,KAAa;IACnC,OAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAChC,CAAC;AAUD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,KAAK,CAAC,KAAa;IACjC,OAAO,GAAG,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AACtC,CAAC;AAMD;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,QAAQ,CAAC,KAAa;IACpC,OAAO,KAAK,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAA;AACvC,CAAC;AAMD,6EAA6E;AAC7E,MAAM,CAAC,MAAM,qBAAqB,GAAG,QAAQ,CAAC,qBAAqB,CAAA;AAKnE,4DAA4D;AAC5D,MAAM,CAAC,MAAM,kBAAkB,GAAG,QAAQ,CAAC,kBAAkB,CAAA;AAK7D,4EAA4E;AAC5E,MAAM,CAAC,MAAM,mBAAmB,GAAG,QAAQ,CAAC,mBAAmB,CAAA"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryStateTree.d.ts","sourceRoot":"","sources":["../../src/core/BinaryStateTree.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"BinaryStateTree.d.ts","sourceRoot":"","sources":["../../src/core/BinaryStateTree.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAEnC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qBAAqB,CAAA;AAEhD,sDAAsD;AACtD,MAAM,MAAM,eAAe,GAAG;IAC5B,IAAI,EAAE,IAAI,CAAA;CACX,CAAA;AAED,uCAAuC;AACvC,MAAM,MAAM,IAAI,GAAG,KAAK,CAAC,SAAS,GAAG,QAAQ,GAAG,YAAY,CAAC,CAAA;AAE7D;;;;;;;;;;;GAWG;AACH,wBAAgB,MAAM,IAAI,eAAe,CAIxC;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,MAAM,CACpB,IAAI,EAAE,eAAe,EACrB,GAAG,EAAE,KAAK,CAAC,KAAK,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,GACjB,IAAI,CAgDN;AAED;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AACH,wBAAgB,SAAS,CAAC,IAAI,EAAE,eAAe,GAAG,KAAK,CAAC,KAAK,CAqB5D;AAMD,gBAAgB;AAChB,KAAK,SAAS,GAAG;IACf,IAAI,EAAE,OAAO,CAAA;CACd,CAAA;AAED,gBAAgB;AAChB,KAAK,YAAY,GAAG;IAClB,IAAI,EAAE,IAAI,CAAA;IACV,KAAK,EAAE,IAAI,CAAA;IACX,IAAI,EAAE,UAAU,CAAA;CACjB,CAAA;AAED,gBAAgB;AAChB,KAAK,QAAQ,GAAG;IACd,IAAI,EAAE,KAAK,CAAC,KAAK,CAAA;IACjB,MAAM,EAAE,CAAC,KAAK,CAAC,KAAK,GAAG,SAAS,CAAC,EAAE,CAAA;IACnC,IAAI,EAAE,MAAM,CAAA;CACb,CAAA"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { blake3 } from '@noble/hashes/blake3.js';
|
|
2
1
|
import * as Bytes from './Bytes.js';
|
|
2
|
+
import * as engine from './internal/hash.js';
|
|
3
3
|
/**
|
|
4
4
|
* Creates a new Binary State Tree instance.
|
|
5
5
|
*
|
|
@@ -200,6 +200,6 @@ function hash(bytes) {
|
|
|
200
200
|
return new Uint8Array(32).fill(0);
|
|
201
201
|
if (!bytes.some((byte) => byte !== 0))
|
|
202
202
|
return new Uint8Array(32).fill(0);
|
|
203
|
-
return blake3(bytes);
|
|
203
|
+
return engine.blake3(bytes);
|
|
204
204
|
}
|
|
205
205
|
//# sourceMappingURL=BinaryStateTree.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"BinaryStateTree.js","sourceRoot":"","sources":["../../src/core/BinaryStateTree.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"BinaryStateTree.js","sourceRoot":"","sources":["../../src/core/BinaryStateTree.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Bls.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bls.d.ts","sourceRoot":"","sources":["../../src/core/Bls.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"Bls.d.ts","sourceRoot":"","sources":["../../src/core/Bls.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Bls.js
CHANGED
|
@@ -3,6 +3,7 @@ import * as BlsPoint from './BlsPoint.js';
|
|
|
3
3
|
import * as Bytes from './Bytes.js';
|
|
4
4
|
import * as Errors from './Errors.js';
|
|
5
5
|
import * as Hex from './Hex.js';
|
|
6
|
+
import * as engine from './internal/bls.js';
|
|
6
7
|
/**
|
|
7
8
|
* Coerces a serialized or structured BLS point into a structured
|
|
8
9
|
* {@link ox#BlsPoint.BlsPoint}.
|
|
@@ -55,23 +56,18 @@ export function aggregate(points, options = {}) {
|
|
|
55
56
|
}
|
|
56
57
|
return point;
|
|
57
58
|
});
|
|
58
|
-
|
|
59
|
-
//
|
|
59
|
+
// A single point aggregates to itself. The engine is not consulted because
|
|
60
|
+
// there is no addition to perform, only the identity.
|
|
60
61
|
if (normalized.length === 1)
|
|
61
|
-
return
|
|
62
|
-
const isG1 = typeof
|
|
62
|
+
return normalized[0];
|
|
63
|
+
const isG1 = typeof normalized[0].x === 'string';
|
|
63
64
|
for (let i = 1; i < normalized.length; i++) {
|
|
64
65
|
if ((typeof normalized[i].x === 'string') !== isG1)
|
|
65
66
|
throw new Errors.BaseError('Bls.aggregate expects all points to be from the same group (G1 or G2).');
|
|
66
67
|
}
|
|
67
68
|
const groupName = isG1 ? 'G1' : 'G2';
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
for (let i = 0; i < normalized.length; i++) {
|
|
71
|
-
const p = normalized[i];
|
|
72
|
-
acc = acc.add(BlsPoint.toNoblePoint(p, groupName));
|
|
73
|
-
}
|
|
74
|
-
return BlsPoint.fromNoblePoint(acc, groupName);
|
|
69
|
+
const point = engine.aggregate(normalized.map((point) => BlsPoint.toBytes(point)), groupName);
|
|
70
|
+
return BlsPoint.fromBytes(point, groupName);
|
|
75
71
|
}
|
|
76
72
|
/**
|
|
77
73
|
* Creates a new BLS12-381 key pair consisting of a private key and its corresponding public key.
|
|
@@ -154,9 +150,8 @@ export function createKeyPair(options = {}) {
|
|
|
154
150
|
export function getPublicKey(options) {
|
|
155
151
|
const { as = 'Object', privateKey, size = 'short-key:long-sig' } = options;
|
|
156
152
|
const groupName = size === 'short-key:long-sig' ? 'G1' : 'G2';
|
|
157
|
-
const
|
|
158
|
-
const
|
|
159
|
-
const publicKey = BlsPoint.fromNoblePoint(point, groupName);
|
|
153
|
+
const point = engine.getPublicKey(Bytes.from(privateKey), groupName);
|
|
154
|
+
const publicKey = BlsPoint.fromBytes(point, groupName);
|
|
160
155
|
return formatBlsPoint(publicKey, as);
|
|
161
156
|
}
|
|
162
157
|
/**
|
|
@@ -174,7 +169,7 @@ export function getPublicKey(options) {
|
|
|
174
169
|
*/
|
|
175
170
|
export function randomPrivateKey(options = {}) {
|
|
176
171
|
const { as = 'Hex' } = options;
|
|
177
|
-
const bytes =
|
|
172
|
+
const bytes = engine.randomSecretKey();
|
|
178
173
|
if (as === 'Hex')
|
|
179
174
|
return Hex.fromBytes(bytes);
|
|
180
175
|
return bytes;
|
|
@@ -183,11 +178,11 @@ export function randomPrivateKey(options = {}) {
|
|
|
183
178
|
export function sign(options) {
|
|
184
179
|
const { as = 'Object', payload, privateKey, suite, size = 'short-key:long-sig', } = options;
|
|
185
180
|
const signatureGroupName = size === 'short-key:long-sig' ? 'G2' : 'G1';
|
|
186
|
-
const
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
const result = BlsPoint.
|
|
181
|
+
const signature = engine.sign(Bytes.from(payload), Bytes.from(privateKey), {
|
|
182
|
+
dst: suite ? Bytes.fromString(suite) : undefined,
|
|
183
|
+
group: signatureGroupName,
|
|
184
|
+
});
|
|
185
|
+
const result = BlsPoint.fromBytes(signature, signatureGroupName);
|
|
191
186
|
return formatBlsPoint(result, as);
|
|
192
187
|
}
|
|
193
188
|
/**
|
|
@@ -272,29 +267,9 @@ export function verify(options) {
|
|
|
272
267
|
const publicKey = (publicKeyIsStructured
|
|
273
268
|
? publicKeyRaw
|
|
274
269
|
: normalizeBlsPoint(publicKeyRaw, publicKeyGroup));
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
{
|
|
280
|
-
g1: payloadPoint,
|
|
281
|
-
g2: BlsPoint.toNoblePoint(publicKey, 'G2'),
|
|
282
|
-
},
|
|
283
|
-
{
|
|
284
|
-
g1: BlsPoint.toNoblePoint(signature, 'G1'),
|
|
285
|
-
g2: bls.G2.Point.BASE.negate(),
|
|
286
|
-
},
|
|
287
|
-
]);
|
|
288
|
-
const longSigPairing = () => bls.pairingBatch([
|
|
289
|
-
{
|
|
290
|
-
g1: BlsPoint.toNoblePoint(publicKey, 'G1').negate(),
|
|
291
|
-
g2: payloadPoint,
|
|
292
|
-
},
|
|
293
|
-
{
|
|
294
|
-
g1: bls.G1.Point.BASE,
|
|
295
|
-
g2: BlsPoint.toNoblePoint(signature, 'G2'),
|
|
296
|
-
},
|
|
297
|
-
]);
|
|
298
|
-
return bls.fields.Fp12.eql(isShortSig ? shortSigPairing() : longSigPairing(), bls.fields.Fp12.ONE);
|
|
270
|
+
return engine.verify(BlsPoint.toBytes(signature), Bytes.from(payload), BlsPoint.toBytes(publicKey), {
|
|
271
|
+
dst: suite ? Bytes.fromString(suite) : undefined,
|
|
272
|
+
signatureGroup,
|
|
273
|
+
});
|
|
299
274
|
}
|
|
300
275
|
//# sourceMappingURL=Bls.js.map
|
package/dist/core/Bls.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Bls.js","sourceRoot":"","sources":["../../src/core/Bls.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,IAAI,GAAG,EAAE,MAAM,4BAA4B,CAAA;AAE7D,OAAO,KAAK,QAAQ,MAAM,eAAe,CAAA;AACzC,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"Bls.js","sourceRoot":"","sources":["../../src/core/Bls.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Ed25519.d.ts","sourceRoot":"","sources":["../../src/core/Ed25519.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"Ed25519.d.ts","sourceRoot":"","sources":["../../src/core/Ed25519.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Ed25519.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ed25519 } from '@noble/curves/ed25519.js';
|
|
2
2
|
import * as Bytes from './Bytes.js';
|
|
3
3
|
import * as Hex from './Hex.js';
|
|
4
|
+
import * as engine from './internal/ed25519.js';
|
|
4
5
|
/** Re-export of noble/curves Ed25519 utilities. */
|
|
5
6
|
export const noble = ed25519;
|
|
6
7
|
/**
|
|
@@ -43,7 +44,7 @@ export function createKeyPair(options = {}) {
|
|
|
43
44
|
export function getPublicKey(options) {
|
|
44
45
|
const { as = 'Hex', privateKey } = options;
|
|
45
46
|
const privateKeyBytes = Bytes.from(privateKey);
|
|
46
|
-
const publicKeyBytes =
|
|
47
|
+
const publicKeyBytes = engine.getPublicKey(privateKeyBytes);
|
|
47
48
|
if (as === 'Hex')
|
|
48
49
|
return Hex.fromBytes(publicKeyBytes);
|
|
49
50
|
return publicKeyBytes;
|
|
@@ -63,7 +64,7 @@ export function getPublicKey(options) {
|
|
|
63
64
|
*/
|
|
64
65
|
export function randomPrivateKey(options = {}) {
|
|
65
66
|
const { as = 'Hex' } = options;
|
|
66
|
-
const bytes =
|
|
67
|
+
const bytes = engine.randomSecretKey();
|
|
67
68
|
if (as === 'Hex')
|
|
68
69
|
return Hex.fromBytes(bytes);
|
|
69
70
|
return bytes;
|
|
@@ -89,7 +90,7 @@ export function sign(options) {
|
|
|
89
90
|
const { as = 'Hex', payload, privateKey } = options;
|
|
90
91
|
const payloadBytes = Bytes.from(payload);
|
|
91
92
|
const privateKeyBytes = Bytes.from(privateKey);
|
|
92
|
-
const signatureBytes =
|
|
93
|
+
const signatureBytes = engine.sign(payloadBytes, privateKeyBytes);
|
|
93
94
|
if (as === 'Hex')
|
|
94
95
|
return Hex.fromBytes(signatureBytes);
|
|
95
96
|
return signatureBytes;
|
|
@@ -123,7 +124,7 @@ export function verify(options) {
|
|
|
123
124
|
const payloadBytes = Bytes.from(payload);
|
|
124
125
|
const publicKeyBytes = Bytes.from(publicKey);
|
|
125
126
|
const signatureBytes = Bytes.from(signature);
|
|
126
|
-
return
|
|
127
|
+
return engine.verify(signatureBytes, payloadBytes, publicKeyBytes);
|
|
127
128
|
}
|
|
128
129
|
/**
|
|
129
130
|
* Converts an Ed25519 public key to an X25519 public key.
|
|
@@ -148,7 +149,7 @@ export function verify(options) {
|
|
|
148
149
|
export function toX25519PublicKey(options) {
|
|
149
150
|
const { as = 'Hex', publicKey } = options;
|
|
150
151
|
const publicKeyBytes = Bytes.from(publicKey);
|
|
151
|
-
const x25519PublicKeyBytes =
|
|
152
|
+
const x25519PublicKeyBytes = engine.toMontgomery(publicKeyBytes);
|
|
152
153
|
if (as === 'Hex')
|
|
153
154
|
return Hex.fromBytes(x25519PublicKeyBytes);
|
|
154
155
|
return x25519PublicKeyBytes;
|
|
@@ -176,7 +177,7 @@ export function toX25519PublicKey(options) {
|
|
|
176
177
|
export function toX25519PrivateKey(options) {
|
|
177
178
|
const { as = 'Hex', privateKey } = options;
|
|
178
179
|
const privateKeyBytes = Bytes.from(privateKey);
|
|
179
|
-
const x25519PrivateKeyBytes =
|
|
180
|
+
const x25519PrivateKeyBytes = engine.toMontgomerySecret(privateKeyBytes);
|
|
180
181
|
if (as === 'Hex')
|
|
181
182
|
return Hex.fromBytes(x25519PrivateKeyBytes);
|
|
182
183
|
return x25519PrivateKeyBytes;
|