ox 1.4.0 → 1.6.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 +12 -0
- package/dist/core/Engine.d.ts +1 -1
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/MlDsa44.d.ts +389 -0
- package/dist/core/MlDsa44.d.ts.map +1 -0
- package/dist/core/MlDsa44.js +206 -0
- package/dist/core/MlDsa44.js.map +1 -0
- package/dist/core/internal/engine.d.ts +35 -1
- package/dist/core/internal/engine.d.ts.map +1 -1
- package/dist/core/internal/engine.js +2 -0
- package/dist/core/internal/engine.js.map +1 -1
- package/dist/core/internal/mlDsa44.d.ts +10 -0
- package/dist/core/internal/mlDsa44.d.ts.map +1 -0
- package/dist/core/internal/mlDsa44.js +41 -0
- package/dist/core/internal/mlDsa44.js.map +1 -0
- package/dist/index.d.ts +39 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -1
- package/dist/tempo/WithdrawalSenderTag.d.ts +36 -0
- package/dist/tempo/WithdrawalSenderTag.d.ts.map +1 -0
- package/dist/tempo/WithdrawalSenderTag.js +31 -0
- package/dist/tempo/WithdrawalSenderTag.js.map +1 -0
- package/dist/tempo/index.d.ts +23 -0
- package/dist/tempo/index.d.ts.map +1 -1
- package/dist/tempo/index.js +23 -0
- package/dist/tempo/index.js.map +1 -1
- package/dist/wasm/Engine.d.ts +5 -1
- package/dist/wasm/Engine.d.ts.map +1 -1
- package/dist/wasm/Engine.js +9 -1
- package/dist/wasm/Engine.js.map +1 -1
- package/dist/wasm/MlDsa44.d.ts +55 -0
- package/dist/wasm/MlDsa44.d.ts.map +1 -0
- package/dist/wasm/MlDsa44.js +143 -0
- package/dist/wasm/MlDsa44.js.map +1 -0
- package/dist/wasm/index.d.ts +23 -2
- package/dist/wasm/index.d.ts.map +1 -1
- package/dist/wasm/index.js +23 -2
- package/dist/wasm/index.js.map +1 -1
- package/dist/wasm/internal/mldsa44.d.ts +12 -0
- package/dist/wasm/internal/mldsa44.d.ts.map +1 -0
- package/dist/wasm/internal/mldsa44.js +5 -0
- package/dist/wasm/internal/mldsa44.js.map +1 -0
- package/dist/wasm/internal/mldsa44.wasm.d.ts +3 -0
- package/dist/wasm/internal/mldsa44.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/mldsa44.wasm.js +10 -0
- package/dist/wasm/internal/mldsa44.wasm.js.map +1 -0
- package/dist/zod/TypedData.d.ts +2 -2
- package/package.json +19 -2
- package/src/core/Engine.ts +1 -0
- package/src/core/MlDsa44.ts +415 -0
- package/src/core/_test/Engine.test.ts +2 -2
- package/src/core/_test/MlDsa44.test-d.ts +56 -0
- package/src/core/_test/MlDsa44.test.ts +393 -0
- package/src/core/_test/index.test.ts +1 -0
- package/src/core/internal/engine.ts +49 -0
- package/src/core/internal/mlDsa44.ts +74 -0
- package/src/index.ts +41 -0
- package/src/tempo/WithdrawalSenderTag.test-d.ts +13 -0
- package/src/tempo/WithdrawalSenderTag.test.ts +22 -0
- package/src/tempo/WithdrawalSenderTag.ts +47 -0
- package/src/tempo/index.ts +24 -0
- package/src/version.ts +1 -1
- package/src/wasm/Engine.ts +19 -7
- package/src/wasm/MlDsa44.ts +190 -0
- package/src/wasm/_test/Engine.test-d.ts +2 -0
- package/src/wasm/_test/Engine.test.ts +16 -0
- package/src/wasm/_test/MlDsa44.test-d.ts +28 -0
- package/src/wasm/_test/MlDsa44.test.ts +192 -0
- package/src/wasm/index.ts +24 -2
- package/src/wasm/internal/mldsa44.ts +34 -0
- package/src/wasm/internal/mldsa44.wasm.ts +11 -0
- package/wasm/vendor/mldsa-native/LICENSE +286 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,17 @@
|
|
|
1
1
|
# ox
|
|
2
2
|
|
|
3
|
+
## 1.6.0
|
|
4
|
+
|
|
5
|
+
### Minor Changes
|
|
6
|
+
|
|
7
|
+
- [#350](https://github.com/wevm/ox/pull/350) [`7cabe8b`](https://github.com/wevm/ox/commit/7cabe8bcda8d54c4b63cb39f601ed77e586bd47e) Thanks [@jxom](https://github.com/jxom)! - Added `MlDsa44` for ML-DSA-44 signatures and included its WASM provider with `Secp256k1` in `ox/wasm`'s aggregate engine.
|
|
8
|
+
|
|
9
|
+
## 1.5.0
|
|
10
|
+
|
|
11
|
+
### Minor Changes
|
|
12
|
+
|
|
13
|
+
- [#348](https://github.com/wevm/ox/pull/348) [`fcd16f0`](https://github.com/wevm/ox/commit/fcd16f0c0b76bcc69c14205428dfb56f65d931c2) Thanks [@struong](https://github.com/struong)! - Added `WithdrawalSenderTag` utilities for deriving Tempo Zone withdrawal sender tags.
|
|
14
|
+
|
|
3
15
|
## 1.4.0
|
|
4
16
|
|
|
5
17
|
### Minor Changes
|
package/dist/core/Engine.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Errors from './Errors.js';
|
|
2
2
|
import * as engine from './internal/engine.js';
|
|
3
|
-
export type { Bls, Ecdh, Ecdsa, Eddsa, Engine, Hash, HashState, Keystore, Mnemonic, } from './internal/engine.js';
|
|
3
|
+
export type { Bls, Ecdh, Ecdsa, Eddsa, Engine, Hash, HashState, Keystore, MlDsa, Mnemonic, } from './internal/engine.js';
|
|
4
4
|
/**
|
|
5
5
|
* Resolves and installs crypto implementations.
|
|
6
6
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAE9C,YAAY,EACV,GAAG,EACH,IAAI,EACJ,KAAK,EACL,KAAK,EACL,MAAM,EACN,IAAI,EACJ,SAAS,EACT,QAAQ,EACR,QAAQ,GACT,MAAM,sBAAsB,CAAA;AAE7B;;;;;;;;;;;;;;;;;;;GAmBG;AACH,wBAAsB,OAAO,CAAC,KAAK,SAAS,OAAO,CAAC,KAAK,EACvD,KAAK,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,GAClC,OAAO,CAAC,OAAO,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,CAWpC;AAED,MAAM,CAAC,OAAO,WAAW,OAAO,CAAC;IAC/B,oEAAoE;IACpE,KAAK,KAAK,CAAC,KAAK,SAAS,KAAK,IAAI;SAC/B,GAAG,IAAI,MAAM,KAAK,GAAG,GAAG,SAAS,MAAM,MAAM,CAAC,MAAM,GACjD,CAAC,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,GAChD,OAAO,GACP,OAAO,CACH,MAAM,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,EACtC,MAAM,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CACtC,SAAS,KAAK,GACf,OAAO,GACP,KAAK,GACT,KAAK;KACV,CAAA;IAED,yDAAyD;IACzD,KAAK,KAAK,GAAG;SACV,GAAG,IAAI,MAAM,MAAM,CAAC,MAAM,CAAC,CAAC,EACzB,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,GAClB,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;KACpC,CAAA;IAED,wEAAwE;IACxE,KAAK,UAAU,CAAC,KAAK,SAAS,KAAK,IAAI;SACpC,GAAG,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;KAC1C,CAAA;IAED,+CAA+C;IAC/C,KAAK,SAAS,GAAG,GAAG,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxD;AAED;;;;;;;;;;;;;;;;;;;;;;;;;GAyBG;AACH,wBAAgB,GAAG,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,GAAG,IAAI,CAmB9C;AAED,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,KAAK,SAAS,GACV,qBAAqB,GACrB,qBAAqB,GACrB,gBAAgB,GAChB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,GAAG,IAAI,MAAM,CAAC,MAAM,CASnC;AAED,MAAM,CAAC,OAAO,WAAW,GAAG,CAAC;IAC3B,KAAK,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CACxC;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,MAAM,CAAC,MAAM,GAAG,IAAI,CAQtD;AAED,MAAM,CAAC,OAAO,WAAW,KAAK,CAAC;IAC7B,KAAK,SAAS,GAAG,gBAAgB,GAAG,MAAM,CAAC,eAAe,CAAA;CAC3D;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AAIH,iBAAS,KAAK,CAAC,UAAU,EACvB,KAAK,EAAE,MAAM,CAAC,MAAM,EACpB,EAAE,EAAE,MAAM,UAAU,GACnB,UAAU,CAwBZ;AAED,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,CAAA;AAExB,OAAO,WAAW,KAAK,CAAC;IACtB,KAAK,SAAS,GACV,eAAe,GACf,GAAG,CAAC,SAAS,GACb,GAAG,CAAC,SAAS,GACb,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED,kEAAkE;AAClE,qBAAa,qBAAsB,SAAQ,MAAM,CAAC,SAAS;IACzD,SAAkB,IAAI,kCAAiC;gBAE3C,IAAI,EAAE,MAAM;CAGzB;AAED,2DAA2D;AAC3D,qBAAa,gBAAiB,SAAQ,MAAM,CAAC,SAAS;IACpD,SAAkB,IAAI,6BAA4B;gBAEtC,IAAI,EAAE,MAAM;CAKzB;AAED,kEAAkE;AAClE,qBAAa,qBAAsB,SAAQ,MAAM,CAAC,SAAS;IACzD,SAAkB,IAAI,kCAAiC;gBAE3C,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM;CAU5C;AAED,4EAA4E;AAC5E,qBAAa,eAAgB,SAAQ,MAAM,CAAC,SAAS;IACnD,SAAkB,IAAI,4BAA2B;;CAUlD"}
|
|
1
|
+
{"version":3,"file":"Engine.d.ts","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"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"}
|
package/dist/core/Engine.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,aAAa,CAAA;AACrC,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;
|
|
1
|
+
{"version":3,"file":"Engine.js","sourceRoot":"","sources":["../../src/core/Engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,389 @@
|
|
|
1
|
+
import * as Bytes from './Bytes.js';
|
|
2
|
+
import * as Errors from './Errors.js';
|
|
3
|
+
import * as Hash from './Hash.js';
|
|
4
|
+
import * as Hex from './Hex.js';
|
|
5
|
+
/** Re-export of noble/post-quantum ML-DSA-44 utilities. */
|
|
6
|
+
export declare const noble: import("@noble/post-quantum/utils.js").CryptoKeys & {
|
|
7
|
+
lengths: {
|
|
8
|
+
signRand?: number;
|
|
9
|
+
signature?: number;
|
|
10
|
+
};
|
|
11
|
+
sign: (msg: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, secretKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, opts
|
|
12
|
+
/** Thrown when a context string exceeds the 255-byte FIPS 204 limit. */
|
|
13
|
+
?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").SigOpts>) => import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
14
|
+
verify: (sig: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, msg: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, publicKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").VerOpts>) => boolean;
|
|
15
|
+
} & {
|
|
16
|
+
internal: import("@noble/post-quantum/utils.js").TRet<import("@noble/post-quantum/ml-dsa.js").DSAInternal>;
|
|
17
|
+
} & {
|
|
18
|
+
info?: ({
|
|
19
|
+
type?: string;
|
|
20
|
+
} & {
|
|
21
|
+
type?: string | undefined;
|
|
22
|
+
}) | undefined;
|
|
23
|
+
lengths: {
|
|
24
|
+
seed?: number;
|
|
25
|
+
publicKey?: number;
|
|
26
|
+
secretKey?: number;
|
|
27
|
+
} & {
|
|
28
|
+
signRand?: number;
|
|
29
|
+
signature?: number;
|
|
30
|
+
} & {
|
|
31
|
+
seed?: number | undefined;
|
|
32
|
+
publicKey?: number | undefined;
|
|
33
|
+
secretKey?: number | undefined;
|
|
34
|
+
signRand?: number | undefined;
|
|
35
|
+
signature?: number | undefined;
|
|
36
|
+
};
|
|
37
|
+
keygen: ((seed?: import("@noble/post-quantum/utils.js").TArg<Uint8Array>) => {
|
|
38
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
39
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
40
|
+
}) & ((seed?: import("@noble/post-quantum/utils.js").TArg<Uint8Array | undefined>) => {
|
|
41
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
42
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
43
|
+
} & {
|
|
44
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
45
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
46
|
+
}) & {};
|
|
47
|
+
getPublicKey: ((secretKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>) => import("@noble/post-quantum/utils.js").TRet<Uint8Array>) & ((secretKey: Uint8Array) => Uint8Array) & {};
|
|
48
|
+
sign: ((msg: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, secretKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").SigOpts>) => import("@noble/post-quantum/utils.js").TRet<Uint8Array>) & ((msg: Uint8Array, secretKey: Uint8Array, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").SigOpts> | undefined>) => Uint8Array) & {};
|
|
49
|
+
verify: ((sig: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, msg: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, publicKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").VerOpts>) => boolean) & ((sig: Uint8Array, msg: Uint8Array, publicKey: Uint8Array, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").VerOpts> | undefined>) => boolean) & {};
|
|
50
|
+
internal: import("@noble/post-quantum/utils.js").CryptoKeys & {
|
|
51
|
+
lengths: import("@noble/post-quantum/utils.js").Signer["lengths"];
|
|
52
|
+
sign: (msg: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, secretKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").SigOpts & import("@noble/post-quantum/ml-dsa.js").DSAInternalOpts>) => import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
53
|
+
verify: (sig: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, msg: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, pubKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").VerOpts & import("@noble/post-quantum/ml-dsa.js").DSAInternalOpts>) => boolean;
|
|
54
|
+
} & {
|
|
55
|
+
info?: ({
|
|
56
|
+
type?: string;
|
|
57
|
+
} & {
|
|
58
|
+
type?: string | undefined;
|
|
59
|
+
}) | undefined;
|
|
60
|
+
lengths: {
|
|
61
|
+
seed?: number;
|
|
62
|
+
publicKey?: number;
|
|
63
|
+
secretKey?: number;
|
|
64
|
+
} & {
|
|
65
|
+
signRand?: number;
|
|
66
|
+
signature?: number;
|
|
67
|
+
} & {
|
|
68
|
+
seed?: number | undefined;
|
|
69
|
+
publicKey?: number | undefined;
|
|
70
|
+
secretKey?: number | undefined;
|
|
71
|
+
signRand?: number | undefined;
|
|
72
|
+
signature?: number | undefined;
|
|
73
|
+
};
|
|
74
|
+
keygen: ((seed?: import("@noble/post-quantum/utils.js").TArg<Uint8Array>) => {
|
|
75
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
76
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
77
|
+
}) & ((seed?: import("@noble/post-quantum/utils.js").TArg<Uint8Array | undefined>) => {
|
|
78
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
79
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
80
|
+
} & {
|
|
81
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
82
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
83
|
+
}) & {};
|
|
84
|
+
getPublicKey: ((secretKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>) => import("@noble/post-quantum/utils.js").TRet<Uint8Array>) & ((secretKey: Uint8Array) => Uint8Array) & {};
|
|
85
|
+
sign: ((msg: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, secretKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").SigOpts & import("@noble/post-quantum/ml-dsa.js").DSAInternalOpts>) => import("@noble/post-quantum/utils.js").TRet<Uint8Array>) & ((msg: Uint8Array, secretKey: Uint8Array, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").VerOpts & {
|
|
86
|
+
extraEntropy?: Uint8Array | false;
|
|
87
|
+
} & import("@noble/post-quantum/ml-dsa.js").DSAInternalOpts> | undefined>) => Uint8Array) & {};
|
|
88
|
+
verify: ((sig: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, msg: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, pubKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").VerOpts & import("@noble/post-quantum/ml-dsa.js").DSAInternalOpts>) => boolean) & ((sig: Uint8Array, msg: Uint8Array, pubKey: Uint8Array, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").VerOpts & import("@noble/post-quantum/ml-dsa.js").DSAInternalOpts> | undefined>) => boolean) & {};
|
|
89
|
+
} & {
|
|
90
|
+
info?: ({
|
|
91
|
+
type?: string;
|
|
92
|
+
} & {
|
|
93
|
+
type?: string | undefined;
|
|
94
|
+
} & {
|
|
95
|
+
type?: string | undefined;
|
|
96
|
+
}) | undefined;
|
|
97
|
+
lengths: {
|
|
98
|
+
seed?: number;
|
|
99
|
+
publicKey?: number;
|
|
100
|
+
secretKey?: number;
|
|
101
|
+
} & {
|
|
102
|
+
signRand?: number;
|
|
103
|
+
signature?: number;
|
|
104
|
+
} & {
|
|
105
|
+
seed?: number | undefined;
|
|
106
|
+
publicKey?: number | undefined;
|
|
107
|
+
secretKey?: number | undefined;
|
|
108
|
+
signRand?: number | undefined;
|
|
109
|
+
signature?: number | undefined;
|
|
110
|
+
} & {
|
|
111
|
+
seed?: number | undefined;
|
|
112
|
+
publicKey?: number | undefined;
|
|
113
|
+
secretKey?: number | undefined;
|
|
114
|
+
signRand?: number | undefined;
|
|
115
|
+
signature?: number | undefined;
|
|
116
|
+
};
|
|
117
|
+
keygen: ((seed?: import("@noble/post-quantum/utils.js").TArg<Uint8Array>) => {
|
|
118
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
119
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
120
|
+
}) & ((seed?: import("@noble/post-quantum/utils.js").TArg<Uint8Array | undefined>) => {
|
|
121
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
122
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
123
|
+
} & {
|
|
124
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
125
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
126
|
+
}) & {} & ((seed?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").TArg<Uint8Array | undefined>>) => {
|
|
127
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
128
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
129
|
+
} & {
|
|
130
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
131
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
132
|
+
} & {
|
|
133
|
+
secretKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
134
|
+
publicKey: import("@noble/post-quantum/utils.js").TRet<Uint8Array>;
|
|
135
|
+
}) & {};
|
|
136
|
+
getPublicKey: ((secretKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>) => import("@noble/post-quantum/utils.js").TRet<Uint8Array>) & ((secretKey: Uint8Array) => Uint8Array) & {} & {};
|
|
137
|
+
sign: ((msg: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, secretKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").SigOpts & import("@noble/post-quantum/ml-dsa.js").DSAInternalOpts>) => import("@noble/post-quantum/utils.js").TRet<Uint8Array>) & ((msg: Uint8Array, secretKey: Uint8Array, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").VerOpts & {
|
|
138
|
+
extraEntropy?: Uint8Array | false;
|
|
139
|
+
} & import("@noble/post-quantum/ml-dsa.js").DSAInternalOpts> | undefined>) => Uint8Array) & {} & {};
|
|
140
|
+
verify: ((sig: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, msg: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, pubKey: import("@noble/post-quantum/utils.js").TArg<Uint8Array>, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").VerOpts & import("@noble/post-quantum/ml-dsa.js").DSAInternalOpts>) => boolean) & ((sig: Uint8Array, msg: Uint8Array, pubKey: Uint8Array, opts?: import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").TArg<import("@noble/post-quantum/utils.js").VerOpts & import("@noble/post-quantum/ml-dsa.js").DSAInternalOpts> | undefined>) => boolean) & {} & {};
|
|
141
|
+
};
|
|
142
|
+
};
|
|
143
|
+
/** Size of an ML-DSA-44 private key (seed) in bytes. */
|
|
144
|
+
export declare const privateKeySize = 32;
|
|
145
|
+
/** Size of an ML-DSA-44 public key in bytes. */
|
|
146
|
+
export declare const publicKeySize = 1312;
|
|
147
|
+
/** Size of an ML-DSA-44 signature in bytes. */
|
|
148
|
+
export declare const signatureSize = 2420;
|
|
149
|
+
/**
|
|
150
|
+
* Creates a new ML-DSA-44 key pair consisting of a private key and its
|
|
151
|
+
* corresponding public key.
|
|
152
|
+
*
|
|
153
|
+
* The private key is the 32-byte seed (`ξ`) from FIPS 204 key generation —
|
|
154
|
+
* the canonical interchange form of an ML-DSA private key. The 1,312-byte
|
|
155
|
+
* public key is deterministically expanded from it.
|
|
156
|
+
*
|
|
157
|
+
* @example
|
|
158
|
+
* ```ts twoslash
|
|
159
|
+
* import { MlDsa44 } from 'ox'
|
|
160
|
+
*
|
|
161
|
+
* const { privateKey, publicKey } = MlDsa44.createKeyPair()
|
|
162
|
+
* ```
|
|
163
|
+
*
|
|
164
|
+
* @param options - The options to generate the key pair.
|
|
165
|
+
* @returns The generated key pair containing both private and public keys.
|
|
166
|
+
*/
|
|
167
|
+
export declare function createKeyPair<as extends 'Hex' | 'Bytes' = 'Hex'>(options?: createKeyPair.Options<as>): createKeyPair.ReturnType<as>;
|
|
168
|
+
export declare namespace createKeyPair {
|
|
169
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
170
|
+
/**
|
|
171
|
+
* Format of the returned private and public keys.
|
|
172
|
+
* @default 'Hex'
|
|
173
|
+
*/
|
|
174
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
175
|
+
};
|
|
176
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = {
|
|
177
|
+
privateKey: (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
178
|
+
publicKey: (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
179
|
+
};
|
|
180
|
+
type ErrorType = randomPrivateKey.ErrorType | getPublicKey.ErrorType | Errors.GlobalErrorType;
|
|
181
|
+
}
|
|
182
|
+
/**
|
|
183
|
+
* Derives an ML-DSA-44 private key from a 32-byte WebAuthn PRF output.
|
|
184
|
+
*
|
|
185
|
+
* The permanent derivation contract uses the PRF output as the HMAC-SHA256
|
|
186
|
+
* key. Its message is the UTF-8 bytes of `ox.mldsa44.fromPrf.v1` followed by
|
|
187
|
+
* a 32-bit big-endian counter set to zero.
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```ts twoslash
|
|
191
|
+
* import { MlDsa44 } from 'ox'
|
|
192
|
+
*
|
|
193
|
+
* const privateKey = MlDsa44.fromPrf(
|
|
194
|
+
* '0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f'
|
|
195
|
+
* )
|
|
196
|
+
* ```
|
|
197
|
+
*
|
|
198
|
+
* @param value - A 32-byte WebAuthn PRF output.
|
|
199
|
+
* @param options - Options.
|
|
200
|
+
* @returns An ML-DSA-44 private key (32-byte seed).
|
|
201
|
+
*/
|
|
202
|
+
export declare function fromPrf<as extends 'Hex' | 'Bytes' = 'Hex'>(value: Hex.Hex | Bytes.Bytes, options?: fromPrf.Options<as>): fromPrf.ReturnType<as>;
|
|
203
|
+
export declare namespace fromPrf {
|
|
204
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
205
|
+
/**
|
|
206
|
+
* Format of the returned private key.
|
|
207
|
+
* @default 'Hex'
|
|
208
|
+
*/
|
|
209
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
210
|
+
};
|
|
211
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
212
|
+
type ErrorType = Bytes.concat.ErrorType | Bytes.from.ErrorType | Bytes.fromNumber.ErrorType | Hash.hmac256.ErrorType | Hex.fromBytes.ErrorType | InvalidPrfSizeError | Errors.GlobalErrorType;
|
|
213
|
+
}
|
|
214
|
+
/**
|
|
215
|
+
* Computes the ML-DSA-44 public key from a provided private key.
|
|
216
|
+
*
|
|
217
|
+
* @example
|
|
218
|
+
* ```ts twoslash
|
|
219
|
+
* import { MlDsa44 } from 'ox'
|
|
220
|
+
*
|
|
221
|
+
* const publicKey = MlDsa44.getPublicKey({
|
|
222
|
+
* privateKey: '0x...'
|
|
223
|
+
* })
|
|
224
|
+
* ```
|
|
225
|
+
*
|
|
226
|
+
* @param options - The options to compute the public key.
|
|
227
|
+
* @returns The computed 1,312-byte public key.
|
|
228
|
+
*/
|
|
229
|
+
export declare function getPublicKey<as extends 'Hex' | 'Bytes' = 'Hex'>(options: getPublicKey.Options<as>): getPublicKey.ReturnType<as>;
|
|
230
|
+
export declare namespace getPublicKey {
|
|
231
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
232
|
+
/**
|
|
233
|
+
* Format of the returned public key.
|
|
234
|
+
* @default 'Hex'
|
|
235
|
+
*/
|
|
236
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
237
|
+
/**
|
|
238
|
+
* Private key (32-byte seed) to compute the public key from.
|
|
239
|
+
*/
|
|
240
|
+
privateKey: Hex.Hex | Bytes.Bytes;
|
|
241
|
+
};
|
|
242
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
243
|
+
type ErrorType = Bytes.from.ErrorType | Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
|
|
244
|
+
}
|
|
245
|
+
/**
|
|
246
|
+
* Generates a random ML-DSA-44 private key (32-byte seed).
|
|
247
|
+
*
|
|
248
|
+
* @example
|
|
249
|
+
* ```ts twoslash
|
|
250
|
+
* import { MlDsa44 } from 'ox'
|
|
251
|
+
*
|
|
252
|
+
* const privateKey = MlDsa44.randomPrivateKey()
|
|
253
|
+
* ```
|
|
254
|
+
*
|
|
255
|
+
* @param options - The options to generate the private key.
|
|
256
|
+
* @returns The generated private key.
|
|
257
|
+
*/
|
|
258
|
+
export declare function randomPrivateKey<as extends 'Hex' | 'Bytes' = 'Hex'>(options?: randomPrivateKey.Options<as>): randomPrivateKey.ReturnType<as>;
|
|
259
|
+
export declare namespace randomPrivateKey {
|
|
260
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
261
|
+
/**
|
|
262
|
+
* Format of the returned private key.
|
|
263
|
+
* @default 'Hex'
|
|
264
|
+
*/
|
|
265
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
266
|
+
};
|
|
267
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
268
|
+
type ErrorType = Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
|
|
269
|
+
}
|
|
270
|
+
/**
|
|
271
|
+
* Signs the payload with the provided private key and returns an ML-DSA-44
|
|
272
|
+
* signature (2,420 bytes).
|
|
273
|
+
*
|
|
274
|
+
* Signing is deterministic by default. Set `extraEntropy` to `true` (or to 32
|
|
275
|
+
* bytes of entropy) for the hedged variant of FIPS 204, which protects against
|
|
276
|
+
* fault attacks and randomness-reuse pitfalls at the cost of reproducibility.
|
|
277
|
+
*
|
|
278
|
+
* @example
|
|
279
|
+
* ```ts twoslash
|
|
280
|
+
* import { MlDsa44 } from 'ox'
|
|
281
|
+
*
|
|
282
|
+
* const signature = MlDsa44.sign({
|
|
283
|
+
* // [!code focus]
|
|
284
|
+
* payload: '0xdeadbeef', // [!code focus]
|
|
285
|
+
* privateKey: '0x...' // [!code focus]
|
|
286
|
+
* }) // [!code focus]
|
|
287
|
+
* ```
|
|
288
|
+
*
|
|
289
|
+
* @param options - The signing options.
|
|
290
|
+
* @returns The ML-DSA-44 signature.
|
|
291
|
+
*/
|
|
292
|
+
export declare function sign<as extends 'Hex' | 'Bytes' = 'Hex'>(options: sign.Options<as>): sign.ReturnType<as>;
|
|
293
|
+
export declare namespace sign {
|
|
294
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
295
|
+
/**
|
|
296
|
+
* Format of the returned signature.
|
|
297
|
+
* @default 'Hex'
|
|
298
|
+
*/
|
|
299
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
300
|
+
/**
|
|
301
|
+
* Context string for domain separation, at most 255 bytes.
|
|
302
|
+
* @default empty
|
|
303
|
+
*/
|
|
304
|
+
context?: Hex.Hex | Bytes.Bytes | undefined;
|
|
305
|
+
/**
|
|
306
|
+
* Extra entropy to add to the signing process. Setting to `true` enables
|
|
307
|
+
* hedged signing with 32 fresh random bytes; 32 bytes may be supplied
|
|
308
|
+
* directly instead.
|
|
309
|
+
* @default false
|
|
310
|
+
*/
|
|
311
|
+
extraEntropy?: boolean | Hex.Hex | Bytes.Bytes | undefined;
|
|
312
|
+
/**
|
|
313
|
+
* Payload to sign.
|
|
314
|
+
*/
|
|
315
|
+
payload: Hex.Hex | Bytes.Bytes;
|
|
316
|
+
/**
|
|
317
|
+
* ML-DSA-44 private key (32-byte seed).
|
|
318
|
+
*/
|
|
319
|
+
privateKey: Hex.Hex | Bytes.Bytes;
|
|
320
|
+
};
|
|
321
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
322
|
+
type ErrorType = Bytes.from.ErrorType | Hex.fromBytes.ErrorType | InvalidContextSizeError | Errors.GlobalErrorType;
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* Verifies a payload was signed by the provided public key.
|
|
326
|
+
*
|
|
327
|
+
* @example
|
|
328
|
+
* ```ts twoslash
|
|
329
|
+
* import { MlDsa44 } from 'ox'
|
|
330
|
+
*
|
|
331
|
+
* const { privateKey, publicKey } = MlDsa44.createKeyPair()
|
|
332
|
+
* const signature = MlDsa44.sign({
|
|
333
|
+
* payload: '0xdeadbeef',
|
|
334
|
+
* privateKey
|
|
335
|
+
* })
|
|
336
|
+
*
|
|
337
|
+
* const verified = MlDsa44.verify({
|
|
338
|
+
* // [!code focus]
|
|
339
|
+
* publicKey, // [!code focus]
|
|
340
|
+
* payload: '0xdeadbeef', // [!code focus]
|
|
341
|
+
* signature // [!code focus]
|
|
342
|
+
* }) // [!code focus]
|
|
343
|
+
* ```
|
|
344
|
+
*
|
|
345
|
+
* @param options - The verification options.
|
|
346
|
+
* @returns Whether the payload was signed by the provided public key.
|
|
347
|
+
*/
|
|
348
|
+
export declare function verify(options: verify.Options): boolean;
|
|
349
|
+
export declare namespace verify {
|
|
350
|
+
type Options = {
|
|
351
|
+
/**
|
|
352
|
+
* Context string for domain separation, at most 255 bytes.
|
|
353
|
+
* @default empty
|
|
354
|
+
*/
|
|
355
|
+
context?: Hex.Hex | Bytes.Bytes | undefined;
|
|
356
|
+
/** Payload that was signed. */
|
|
357
|
+
payload: Hex.Hex | Bytes.Bytes;
|
|
358
|
+
/** Public key that signed the payload. */
|
|
359
|
+
publicKey: Hex.Hex | Bytes.Bytes;
|
|
360
|
+
/** Signature of the payload. */
|
|
361
|
+
signature: Hex.Hex | Bytes.Bytes;
|
|
362
|
+
};
|
|
363
|
+
type ErrorType = Bytes.from.ErrorType | InvalidContextSizeError | Errors.GlobalErrorType;
|
|
364
|
+
}
|
|
365
|
+
/** Thrown when a context string exceeds the 255-byte FIPS 204 limit. */
|
|
366
|
+
export declare class InvalidContextSizeError extends Errors.BaseError {
|
|
367
|
+
readonly name = "MlDsa44.InvalidContextSizeError";
|
|
368
|
+
constructor(options: InvalidContextSizeError.Options);
|
|
369
|
+
}
|
|
370
|
+
export declare namespace InvalidContextSizeError {
|
|
371
|
+
/** Options for {@link ox#MlDsa44.InvalidContextSizeError}. */
|
|
372
|
+
type Options = {
|
|
373
|
+
/** Received context size. */
|
|
374
|
+
size: number;
|
|
375
|
+
};
|
|
376
|
+
}
|
|
377
|
+
/** Thrown when a WebAuthn PRF output is not 32 bytes. */
|
|
378
|
+
export declare class InvalidPrfSizeError extends Errors.BaseError {
|
|
379
|
+
readonly name = "MlDsa44.InvalidPrfSizeError";
|
|
380
|
+
constructor(options: InvalidPrfSizeError.Options);
|
|
381
|
+
}
|
|
382
|
+
export declare namespace InvalidPrfSizeError {
|
|
383
|
+
/** Options for {@link ox#MlDsa44.InvalidPrfSizeError}. */
|
|
384
|
+
type Options = {
|
|
385
|
+
/** Received PRF output size. */
|
|
386
|
+
size: number;
|
|
387
|
+
};
|
|
388
|
+
}
|
|
389
|
+
//# sourceMappingURL=MlDsa44.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MlDsa44.d.ts","sourceRoot":"","sources":["../../src/core/MlDsa44.ts"],"names":[],"mappings":"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"}
|