ox 1.1.2 → 1.3.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 +61 -0
- package/dist/core/AbiFunction.d.ts +1 -1
- package/dist/core/AbiFunction.d.ts.map +1 -1
- package/dist/core/AbiFunction.js +6 -2
- package/dist/core/AbiFunction.js.map +1 -1
- package/dist/core/AbiParameters.d.ts +1 -1
- package/dist/core/AbiParameters.d.ts.map +1 -1
- package/dist/core/AbiParameters.js +1 -13
- package/dist/core/AbiParameters.js.map +1 -1
- package/dist/core/AesGcm.d.ts +36 -1
- package/dist/core/AesGcm.d.ts.map +1 -1
- package/dist/core/AesGcm.js +44 -0
- package/dist/core/AesGcm.js.map +1 -1
- package/dist/core/Ed25519.d.ts +46 -1
- package/dist/core/Ed25519.d.ts.map +1 -1
- package/dist/core/Ed25519.js +43 -0
- package/dist/core/Ed25519.js.map +1 -1
- 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/Hash.d.ts +200 -1
- package/dist/core/Hash.d.ts.map +1 -1
- package/dist/core/Hash.js +207 -0
- package/dist/core/Hash.js.map +1 -1
- package/dist/core/Hex.d.ts.map +1 -1
- package/dist/core/Hex.js +1 -4
- package/dist/core/Hex.js.map +1 -1
- package/dist/core/Rlp.d.ts +32 -0
- package/dist/core/Rlp.d.ts.map +1 -1
- package/dist/core/Rlp.js +146 -0
- package/dist/core/Rlp.js.map +1 -1
- package/dist/core/Secp256k1.d.ts +46 -1
- package/dist/core/Secp256k1.d.ts.map +1 -1
- package/dist/core/Secp256k1.js +48 -0
- package/dist/core/Secp256k1.js.map +1 -1
- package/dist/core/WebAuthn.d.ts +224 -0
- package/dist/core/WebAuthn.d.ts.map +1 -0
- package/dist/core/WebAuthn.js +343 -0
- package/dist/core/WebAuthn.js.map +1 -0
- package/dist/core/WebAuthnP256.d.ts +46 -50
- package/dist/core/WebAuthnP256.d.ts.map +1 -1
- package/dist/core/WebAuthnP256.js +44 -50
- package/dist/core/WebAuthnP256.js.map +1 -1
- package/dist/core/internal/abiParameters.d.ts +7 -87
- package/dist/core/internal/abiParameters.d.ts.map +1 -1
- package/dist/core/internal/abiParameters.js +339 -194
- package/dist/core/internal/abiParameters.js.map +1 -1
- package/dist/core/internal/engine.d.ts +35 -2
- package/dist/core/internal/engine.d.ts.map +1 -1
- package/dist/core/internal/engine.js +12 -1
- package/dist/core/internal/engine.js.map +1 -1
- package/dist/core/internal/hash.d.ts +10 -0
- package/dist/core/internal/hash.d.ts.map +1 -1
- package/dist/core/internal/hash.js +26 -1
- package/dist/core/internal/hash.js.map +1 -1
- package/dist/index.d.ts +23 -14
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -14
- package/dist/index.js.map +1 -1
- package/dist/node/Engine.d.ts +1 -1
- package/dist/node/Engine.d.ts.map +1 -1
- package/dist/node/Engine.js.map +1 -1
- package/dist/node/Hash.d.ts +6 -4
- package/dist/node/Hash.d.ts.map +1 -1
- package/dist/node/Hash.js +35 -3
- package/dist/node/Hash.js.map +1 -1
- package/dist/tempo/AuthorizationTempo.d.ts +6 -6
- package/dist/tempo/AuthorizationTempo.js +6 -6
- package/dist/tempo/KeyAuthorization.d.ts +3 -8
- package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
- package/dist/tempo/KeyAuthorization.js +3 -8
- package/dist/tempo/KeyAuthorization.js.map +1 -1
- package/dist/tempo/SignatureEnvelope.d.ts +8 -8
- package/dist/tempo/SignatureEnvelope.js +8 -8
- package/dist/trusted-setups/Paths.d.ts +1 -0
- package/dist/trusted-setups/Paths.d.ts.map +1 -1
- package/dist/trusted-setups/Paths.js +1 -0
- package/dist/trusted-setups/Paths.js.map +1 -1
- package/dist/trusted-setups/Setups.d.ts +35 -0
- package/dist/trusted-setups/Setups.d.ts.map +1 -0
- package/dist/trusted-setups/Setups.js +29 -0
- package/dist/trusted-setups/Setups.js.map +1 -0
- package/dist/trusted-setups/index.d.ts +20 -0
- package/dist/trusted-setups/index.d.ts.map +1 -1
- package/dist/trusted-setups/index.js +20 -0
- package/dist/trusted-setups/index.js.map +1 -1
- package/dist/trusted-setups/internal/paths.d.ts.map +1 -1
- package/dist/trusted-setups/internal/paths.js +1 -1
- package/dist/trusted-setups/internal/paths.js.map +1 -1
- package/dist/trusted-setups/internal/setups/mainnet.d.ts +7 -0
- package/dist/trusted-setups/internal/setups/mainnet.d.ts.map +1 -0
- package/dist/trusted-setups/internal/setups/mainnet.js +11 -0
- package/dist/trusted-setups/internal/setups/mainnet.js.map +1 -0
- package/dist/wasm/Engine.d.ts +4 -3
- package/dist/wasm/Engine.d.ts.map +1 -1
- package/dist/wasm/Engine.js +5 -5
- package/dist/wasm/Engine.js.map +1 -1
- package/dist/wasm/Hash.d.ts +1 -1
- package/dist/wasm/Hash.d.ts.map +1 -1
- package/dist/wasm/Hash.js +5 -0
- package/dist/wasm/Hash.js.map +1 -1
- package/dist/wasm/Keystore.d.ts +23 -9
- package/dist/wasm/Keystore.d.ts.map +1 -1
- package/dist/wasm/Keystore.js +30 -13
- package/dist/wasm/Keystore.js.map +1 -1
- package/dist/wasm/Kzg.d.ts +112 -0
- package/dist/wasm/Kzg.d.ts.map +1 -0
- package/dist/wasm/Kzg.js +333 -0
- package/dist/wasm/Kzg.js.map +1 -0
- package/dist/wasm/Secp256k1.d.ts +55 -0
- package/dist/wasm/Secp256k1.d.ts.map +1 -0
- package/dist/wasm/Secp256k1.js +181 -0
- package/dist/wasm/Secp256k1.js.map +1 -0
- package/dist/wasm/index.d.ts +44 -1
- package/dist/wasm/index.d.ts.map +1 -1
- package/dist/wasm/index.js +44 -1
- package/dist/wasm/index.js.map +1 -1
- package/dist/wasm/internal/blake3.d.ts +10 -1
- package/dist/wasm/internal/blake3.d.ts.map +1 -1
- package/dist/wasm/internal/blake3.js +12 -1
- package/dist/wasm/internal/blake3.js.map +1 -1
- package/dist/wasm/internal/blake3.wasm.d.ts +3 -1
- package/dist/wasm/internal/blake3.wasm.d.ts.map +1 -1
- package/dist/wasm/internal/blake3.wasm.js +3 -1
- package/dist/wasm/internal/blake3.wasm.js.map +1 -1
- package/dist/wasm/internal/hash.d.ts +9 -0
- package/dist/wasm/internal/hash.d.ts.map +1 -1
- package/dist/wasm/internal/hash.js +13 -1
- package/dist/wasm/internal/hash.js.map +1 -1
- package/dist/wasm/internal/hashState.d.ts +25 -0
- package/dist/wasm/internal/hashState.d.ts.map +1 -0
- package/dist/wasm/internal/hashState.js +105 -0
- package/dist/wasm/internal/hashState.js.map +1 -0
- package/dist/wasm/internal/hashes.d.ts +12 -1
- package/dist/wasm/internal/hashes.d.ts.map +1 -1
- package/dist/wasm/internal/hashes.js +18 -1
- package/dist/wasm/internal/hashes.js.map +1 -1
- package/dist/wasm/internal/hashes.wasm.d.ts +11 -3
- package/dist/wasm/internal/hashes.wasm.d.ts.map +1 -1
- package/dist/wasm/internal/hashes.wasm.js +11 -3
- package/dist/wasm/internal/hashes.wasm.js.map +1 -1
- package/dist/wasm/internal/instantiate.d.ts +12 -0
- package/dist/wasm/internal/instantiate.d.ts.map +1 -1
- package/dist/wasm/internal/instantiate.js +23 -7
- package/dist/wasm/internal/instantiate.js.map +1 -1
- package/dist/wasm/internal/keystore.d.ts +10 -0
- package/dist/wasm/internal/keystore.d.ts.map +1 -0
- package/dist/wasm/internal/keystore.js +10 -0
- package/dist/wasm/internal/keystore.js.map +1 -0
- package/dist/wasm/internal/kzg.d.ts +17 -0
- package/dist/wasm/internal/kzg.d.ts.map +1 -0
- package/dist/wasm/internal/kzg.js +8 -0
- package/dist/wasm/internal/kzg.js.map +1 -0
- package/dist/wasm/internal/kzg.wasm.d.ts +3 -0
- package/dist/wasm/internal/kzg.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/kzg.wasm.js +10 -0
- package/dist/wasm/internal/kzg.wasm.js.map +1 -0
- package/dist/wasm/internal/scrypt.d.ts +16 -0
- package/dist/wasm/internal/scrypt.d.ts.map +1 -0
- package/dist/wasm/internal/scrypt.js +78 -0
- package/dist/wasm/internal/scrypt.js.map +1 -0
- package/dist/wasm/internal/scrypt.wasm.d.ts +7 -0
- package/dist/wasm/internal/scrypt.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/scrypt.wasm.js +14 -0
- package/dist/wasm/internal/scrypt.wasm.js.map +1 -0
- package/dist/wasm/internal/secp256k1.d.ts +16 -0
- package/dist/wasm/internal/secp256k1.d.ts.map +1 -0
- package/dist/wasm/internal/secp256k1.js +20 -0
- package/dist/wasm/internal/secp256k1.js.map +1 -0
- package/dist/wasm/internal/secp256k1.wasm.d.ts +3 -0
- package/dist/wasm/internal/secp256k1.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/secp256k1.wasm.js +10 -0
- package/dist/wasm/internal/secp256k1.wasm.js.map +1 -0
- package/dist/webauthn/Authentication.d.ts +2 -0
- package/dist/webauthn/Authentication.d.ts.map +1 -1
- package/dist/webauthn/Authentication.js +2 -1
- package/dist/webauthn/Authentication.js.map +1 -1
- package/dist/webauthn/Registration.d.ts.map +1 -1
- package/dist/webauthn/Registration.js +2 -1
- package/dist/webauthn/Registration.js.map +1 -1
- package/dist/webauthn/Types.d.ts +27 -6
- package/dist/webauthn/Types.d.ts.map +1 -1
- package/dist/webauthn/internal/utils.d.ts.map +1 -1
- package/dist/webauthn/internal/utils.js +35 -9
- package/dist/webauthn/internal/utils.js.map +1 -1
- package/dist/zod/TypedData.d.ts +2 -2
- package/package.json +27 -2
- package/src/benchmarks/Ox.bench.ts +6 -0
- package/src/benchmarks/OxNode.bench.ts +8 -0
- package/src/benchmarks/OxV0.bench.ts +4 -0
- package/src/benchmarks/OxWasm.bench.ts +22 -0
- package/src/core/AbiFunction.ts +5 -5
- package/src/core/AbiParameters.ts +8 -20
- package/src/core/AesGcm.ts +86 -1
- package/src/core/Ed25519.ts +87 -1
- package/src/core/Engine.ts +1 -0
- package/src/core/Hash.ts +321 -1
- package/src/core/Hex.ts +1 -4
- package/src/core/Rlp.ts +172 -5
- package/src/core/Secp256k1.ts +92 -1
- package/src/core/WebAuthn.ts +579 -0
- package/src/core/WebAuthnP256.ts +47 -50
- package/src/core/_test/AbiFunction.test.ts +9 -0
- package/src/core/_test/AbiParameters.differential.fuzz.ts +156 -0
- package/src/core/_test/AbiParameters.encode.test.ts +22 -0
- package/src/core/_test/AbiParameters.fuzz.ts +4 -0
- package/src/core/_test/AesGcm.test.ts +76 -0
- package/src/core/_test/Block.test.ts +9 -2
- package/src/core/_test/Ed25519.test-d.ts +13 -1
- package/src/core/_test/Ed25519.test.ts +120 -1
- package/src/core/_test/Engine.test-d.ts +9 -0
- package/src/core/_test/Engine.test.ts +1 -1
- package/src/core/_test/Hash.test-d.ts +41 -0
- package/src/core/_test/Hash.test.ts +278 -1
- package/src/core/_test/Hash.vectors.test.ts +1 -2
- package/src/core/_test/Hex.test.ts +2 -0
- package/src/core/_test/Rlp.test-d.ts +18 -0
- package/src/core/_test/Rlp.test.ts +109 -0
- package/src/core/_test/Secp256k1.test-d.ts +14 -0
- package/src/core/_test/Secp256k1.test.ts +91 -1
- package/src/core/_test/Transaction.test.ts +11 -2
- package/src/core/_test/WebAuthn.test-d.ts +142 -0
- package/src/core/_test/WebAuthn.test.ts +766 -0
- package/src/core/_test/index.test.ts +1 -0
- package/src/core/internal/abiParameters.ts +466 -326
- package/src/core/internal/engine.ts +47 -2
- package/src/core/internal/hash.ts +53 -1
- package/src/index.ts +24 -14
- package/src/node/Engine.ts +1 -0
- package/src/node/Hash.ts +43 -6
- package/src/node/_test/Engine.test-d.ts +1 -0
- package/src/node/_test/Engine.test.ts +2 -0
- package/src/node/_test/Hash.test-d.ts +11 -0
- package/src/node/_test/Hash.test.ts +46 -0
- package/src/tempo/AuthorizationTempo.ts +6 -6
- package/src/tempo/KeyAuthorization.ts +3 -8
- package/src/tempo/SignatureEnvelope.ts +8 -8
- package/src/trusted-setups/Paths.ts +1 -0
- package/src/trusted-setups/README.md +39 -0
- package/src/trusted-setups/Setups.ts +46 -0
- package/src/trusted-setups/_test/Paths.test.ts +16 -0
- package/src/trusted-setups/_test/Setups.test-d.ts +7 -0
- package/src/trusted-setups/_test/Setups.test.ts +43 -0
- package/src/trusted-setups/_test/index.test.ts +1 -0
- package/src/trusted-setups/index.ts +21 -0
- package/src/trusted-setups/internal/paths.ts +4 -1
- package/src/trusted-setups/internal/setups/mainnet.source.json +7 -0
- package/src/trusted-setups/internal/setups/mainnet.ts +16 -0
- package/src/version.ts +1 -1
- package/src/wasm/Engine.ts +9 -6
- package/src/wasm/Hash.ts +10 -0
- package/src/wasm/Keystore.bench.ts +26 -0
- package/src/wasm/Keystore.ts +32 -14
- package/src/wasm/Kzg.bench.ts +63 -0
- package/src/wasm/Kzg.ts +518 -0
- package/src/wasm/Secp256k1.bench.ts +79 -0
- package/src/wasm/Secp256k1.ts +248 -0
- package/src/wasm/_test/Engine.test-d.ts +2 -0
- package/src/wasm/_test/Engine.test.ts +5 -0
- package/src/wasm/_test/Hash.browser.test.ts +31 -0
- package/src/wasm/_test/Hash.test-d.ts +17 -0
- package/src/wasm/_test/Hash.test.ts +252 -3
- package/src/wasm/_test/Keystore.browser.test.ts +31 -0
- package/src/wasm/_test/Keystore.fuzz.ts +50 -0
- package/src/wasm/_test/Keystore.test-d.ts +10 -1
- package/src/wasm/_test/Keystore.test.ts +289 -4
- package/src/wasm/_test/Kzg.test-d.ts +19 -0
- package/src/wasm/_test/Kzg.test.ts +220 -0
- package/src/wasm/_test/Runtime.test.ts +9 -0
- package/src/wasm/_test/Secp256k1.test-d.ts +35 -0
- package/src/wasm/_test/Secp256k1.test.ts +354 -0
- package/src/wasm/index.ts +46 -1
- package/src/wasm/internal/blake3.ts +23 -2
- package/src/wasm/internal/blake3.wasm.ts +4 -1
- package/src/wasm/internal/hash.ts +27 -1
- package/src/wasm/internal/hashState.ts +154 -0
- package/src/wasm/internal/hashes.ts +56 -15
- package/src/wasm/internal/hashes.wasm.ts +15 -3
- package/src/wasm/internal/instantiate.ts +29 -9
- package/src/wasm/internal/keystore.ts +19 -0
- package/src/wasm/internal/kzg.ts +50 -0
- package/src/wasm/internal/kzg.wasm.ts +11 -0
- package/src/wasm/internal/scrypt.ts +131 -0
- package/src/wasm/internal/scrypt.wasm.ts +17 -0
- package/src/wasm/internal/secp256k1.ts +62 -0
- package/src/wasm/internal/secp256k1.wasm.ts +11 -0
- package/src/webauthn/Authentication.ts +4 -0
- package/src/webauthn/Registration.ts +2 -0
- package/src/webauthn/Types.ts +32 -2
- package/src/webauthn/_test/Authentication.test.ts +123 -1
- package/src/webauthn/_test/Registration.test.ts +26 -6
- package/src/webauthn/_test/WebAuthn.browser.test.ts +28 -0
- package/src/webauthn/internal/utils.ts +41 -8
- package/wasm/vendor/c-kzg-4844/LICENSE +201 -0
- package/wasm/vendor/c-kzg-4844/blst/LICENSE +201 -0
- package/src/trusted-setups/internal/setups/mainnet.txt +0 -4163
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/webauthn/Types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,GAAG,MAAM,gBAAgB,CAAA;AAE1C,MAAM,MAAM,+BAA+B,GACvC,QAAQ,GACR,YAAY,GACZ,UAAU,GACV,MAAM,CAAA;AAEV,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,GAAG,UAAU,CAAA;AAEnE,MAAM,MAAM,sBAAsB,GAC9B,KAAK,GACL,QAAQ,GACR,UAAU,GACV,KAAK,GACL,KAAK,CAAA;AAET,MAAM,MAAM,uBAAuB,GAAG,MAAM,CAAA;AAE5C,MAAM,MAAM,8BAA8B,GACtC,aAAa,GACb,UAAU,GACV,UAAU,GACV,QAAQ,CAAA;AAEZ,MAAM,MAAM,uBAAuB,GAAG,YAAY,CAAA;AAElD,MAAM,MAAM,sBAAsB,GAAG,aAAa,GAAG,WAAW,GAAG,UAAU,CAAA;AAE7E,MAAM,MAAM,2BAA2B,GACnC,aAAa,GACb,WAAW,GACX,UAAU,CAAA;AAEd,MAAM,MAAM,gBAAgB,GAAG;IAC7B,OAAO,EAAE,UAAU,GAAG,WAAW,CAAA;CAClC,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,eAAe,GAAG,WAAW,CAAA;AAExD,MAAM,MAAM,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,
|
|
1
|
+
{"version":3,"file":"Types.d.ts","sourceRoot":"","sources":["../../src/webauthn/Types.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/webauthn/internal/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAEzC,gBAAgB;AAChB,eAAO,MAAM,gBAAgB;;;CAAqC,CAAA;AAElE,gBAAgB;AAChB,eAAO,MAAM,YAAY,kGAMf,CAAA;AAEV,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAKjE;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,GAAG,UAAU,
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/webauthn/internal/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,KAAK,MAAM,aAAa,CAAA;AAEzC,gBAAgB;AAChB,eAAO,MAAM,gBAAgB;;;CAAqC,CAAA;AAElE,gBAAgB;AAChB,eAAO,MAAM,YAAY,kGAMf,CAAA;AAEV,gBAAgB;AAChB,wBAAgB,kBAAkB,CAAC,KAAK,EAAE,UAAU,GAAG,WAAW,CAKjE;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,KAAK,CAAC,YAAY,GAAG,UAAU,CAK1E;AAED;;;;GAIG;AACH,MAAM,MAAM,uBAAuB,GAAG;IACpC,qDAAqD;IACrD,KAAK,EAAE,UAAU,CAAA;IACjB,uDAAuD;IACvD,QAAQ,EAAE,UAAU,CAAA;IACpB,gCAAgC;IAChC,KAAK,EAAE,MAAM,CAAA;IACb,yBAAyB;IACzB,EAAE,EAAE,OAAO,CAAA;IACX,0BAA0B;IAC1B,EAAE,EAAE,OAAO,CAAA;IACX,+BAA+B;IAC/B,EAAE,EAAE,OAAO,CAAA;IACX,yBAAyB;IACzB,EAAE,EAAE,OAAO,CAAA;IACX,qCAAqC;IACrC,EAAE,EAAE,OAAO,CAAA;IACX,2BAA2B;IAC3B,EAAE,EAAE,OAAO,CAAA;IACX,6CAA6C;IAC7C,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CACpC,iBAAiB,EAAE,UAAU,GAC5B,uBAAuB,GAAG,SAAS,CAoBrC;AAED;;;;;;;GAOG;AACH,wBAAgB,uBAAuB,CACrC,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAChC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAexB;AAED,gBAAgB;AAChB,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,KAAK,CAAC,oCAAoC,GACrD,KAAK,CAAC,oCAAoC,CAAC,IAAI,CAAC,CAmBlD;AAED,gBAAgB;AAChB,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,KAAK,CAAC,oCAAoC,CAAC,IAAI,CAAC,GAC3D,KAAK,CAAC,oCAAoC,CAmB5C"}
|
|
@@ -17,9 +17,9 @@ export function bytesToArrayBuffer(bytes) {
|
|
|
17
17
|
export function bufferSourceToBytes(source) {
|
|
18
18
|
if (source instanceof Uint8Array)
|
|
19
19
|
return source;
|
|
20
|
-
if (source
|
|
21
|
-
return new Uint8Array(source);
|
|
22
|
-
return new Uint8Array(source
|
|
20
|
+
if (ArrayBuffer.isView(source))
|
|
21
|
+
return new Uint8Array(source.buffer, source.byteOffset, source.byteLength);
|
|
22
|
+
return new Uint8Array(source);
|
|
23
23
|
}
|
|
24
24
|
/**
|
|
25
25
|
* Parses the fixed 37-byte header of authenticator data into rpIdHash, flags
|
|
@@ -77,13 +77,18 @@ export function serializeResponseFields(response) {
|
|
|
77
77
|
/** @internal */
|
|
78
78
|
export function serializeExtensions(extensions) {
|
|
79
79
|
const { prf, ...rest } = extensions;
|
|
80
|
+
const { eval: eval_, evalByCredential } = prf ?? {};
|
|
80
81
|
return {
|
|
81
82
|
...rest,
|
|
82
83
|
...(prf && {
|
|
83
84
|
prf: {
|
|
84
|
-
eval:
|
|
85
|
-
|
|
86
|
-
|
|
85
|
+
...(eval_ && { eval: serializePrfValues(eval_) }),
|
|
86
|
+
...(evalByCredential && {
|
|
87
|
+
evalByCredential: Object.fromEntries(Object.entries(evalByCredential).map(([id, values]) => [
|
|
88
|
+
id,
|
|
89
|
+
serializePrfValues(values),
|
|
90
|
+
])),
|
|
91
|
+
}),
|
|
87
92
|
},
|
|
88
93
|
}),
|
|
89
94
|
};
|
|
@@ -91,15 +96,36 @@ export function serializeExtensions(extensions) {
|
|
|
91
96
|
/** @internal */
|
|
92
97
|
export function deserializeExtensions(extensions) {
|
|
93
98
|
const { prf, ...rest } = extensions;
|
|
99
|
+
const { eval: eval_, evalByCredential } = prf ?? {};
|
|
94
100
|
return {
|
|
95
101
|
...rest,
|
|
96
102
|
...(prf && {
|
|
97
103
|
prf: {
|
|
98
|
-
eval:
|
|
99
|
-
|
|
100
|
-
|
|
104
|
+
...(eval_ && { eval: deserializePrfValues(eval_) }),
|
|
105
|
+
...(evalByCredential && {
|
|
106
|
+
evalByCredential: Object.fromEntries(Object.entries(evalByCredential).map(([id, values]) => [
|
|
107
|
+
id,
|
|
108
|
+
deserializePrfValues(values),
|
|
109
|
+
])),
|
|
110
|
+
}),
|
|
101
111
|
},
|
|
102
112
|
}),
|
|
103
113
|
};
|
|
104
114
|
}
|
|
115
|
+
function serializePrfValues(values) {
|
|
116
|
+
const { first, second } = values;
|
|
117
|
+
return {
|
|
118
|
+
first: Base64.fromBytes(bufferSourceToBytes(first), base64UrlOptions),
|
|
119
|
+
...(second !== undefined && {
|
|
120
|
+
second: Base64.fromBytes(bufferSourceToBytes(second), base64UrlOptions),
|
|
121
|
+
}),
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function deserializePrfValues(values) {
|
|
125
|
+
const { first, second } = values;
|
|
126
|
+
return {
|
|
127
|
+
first: Base64.toBytes(first),
|
|
128
|
+
...(second !== undefined && { second: Base64.toBytes(second) }),
|
|
129
|
+
};
|
|
130
|
+
}
|
|
105
131
|
//# sourceMappingURL=utils.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/webauthn/internal/utils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,MAAM,sBAAsB,CAAA;AAG9C,gBAAgB;AAChB,MAAM,CAAC,MAAM,gBAAgB,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,KAAK,EAAW,CAAA;AAElE,gBAAgB;AAChB,MAAM,CAAC,MAAM,YAAY,GAAG;IAC1B,mBAAmB;IACnB,mBAAmB;IACnB,gBAAgB;IAChB,WAAW;IACX,YAAY;CACJ,CAAA;AAEV,gBAAgB;AAChB,MAAM,UAAU,kBAAkB,CAAC,KAAiB;IAClD,OAAO,KAAK,CAAC,MAAM,CAAC,KAAK,CACvB,KAAK,CAAC,UAAU,EAChB,KAAK,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CACrB,CAAA;AAClB,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,mBAAmB,CAAC,MAA0B;IAC5D,IAAI,MAAM,YAAY,UAAU;QAAE,OAAO,MAAM,CAAA;IAC/C,IAAI,
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../../src/webauthn/internal/utils.ts"],"names":[],"mappings":"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"}
|
package/dist/zod/TypedData.d.ts
CHANGED
|
@@ -34,6 +34,7 @@ export declare const TypedData: z.ZodMiniPipe<z.ZodMiniRecord<z.ZodMiniString<st
|
|
|
34
34
|
[x: `bytes7[${string}]`]: undefined;
|
|
35
35
|
[x: `bytes5[${string}]`]: undefined;
|
|
36
36
|
[x: `bytes3[${string}]`]: undefined;
|
|
37
|
+
[x: `bytes20[${string}]`]: undefined;
|
|
37
38
|
[x: `bytes9[${string}]`]: undefined;
|
|
38
39
|
[x: `bytes11[${string}]`]: undefined;
|
|
39
40
|
[x: `bytes12[${string}]`]: undefined;
|
|
@@ -43,7 +44,6 @@ export declare const TypedData: z.ZodMiniPipe<z.ZodMiniRecord<z.ZodMiniString<st
|
|
|
43
44
|
[x: `bytes17[${string}]`]: undefined;
|
|
44
45
|
[x: `bytes18[${string}]`]: undefined;
|
|
45
46
|
[x: `bytes19[${string}]`]: undefined;
|
|
46
|
-
[x: `bytes20[${string}]`]: undefined;
|
|
47
47
|
[x: `bytes21[${string}]`]: undefined;
|
|
48
48
|
[x: `bytes22[${string}]`]: undefined;
|
|
49
49
|
[x: `bytes23[${string}]`]: undefined;
|
|
@@ -134,6 +134,7 @@ export declare const TypedData: z.ZodMiniPipe<z.ZodMiniRecord<z.ZodMiniString<st
|
|
|
134
134
|
bytes7?: undefined;
|
|
135
135
|
bytes5?: undefined;
|
|
136
136
|
bytes3?: undefined;
|
|
137
|
+
bytes20?: undefined;
|
|
137
138
|
bytes9?: undefined;
|
|
138
139
|
bytes11?: undefined;
|
|
139
140
|
bytes12?: undefined;
|
|
@@ -143,7 +144,6 @@ export declare const TypedData: z.ZodMiniPipe<z.ZodMiniRecord<z.ZodMiniString<st
|
|
|
143
144
|
bytes17?: undefined;
|
|
144
145
|
bytes18?: undefined;
|
|
145
146
|
bytes19?: undefined;
|
|
146
|
-
bytes20?: undefined;
|
|
147
147
|
bytes21?: undefined;
|
|
148
148
|
bytes22?: undefined;
|
|
149
149
|
bytes23?: undefined;
|
package/package.json
CHANGED
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
"name": "ox",
|
|
3
3
|
"description": "Ethereum Standard Library",
|
|
4
4
|
"type": "module",
|
|
5
|
-
"version": "1.
|
|
5
|
+
"version": "1.3.0",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"license": "MIT",
|
|
@@ -28,7 +28,9 @@
|
|
|
28
28
|
"files": [
|
|
29
29
|
"CHANGELOG.md",
|
|
30
30
|
"dist",
|
|
31
|
-
"src"
|
|
31
|
+
"src",
|
|
32
|
+
"wasm/vendor/c-kzg-4844/LICENSE",
|
|
33
|
+
"wasm/vendor/c-kzg-4844/blst/LICENSE"
|
|
32
34
|
],
|
|
33
35
|
"dependencies": {
|
|
34
36
|
"@adraffy/ens-normalize": "^1.11.0",
|
|
@@ -415,6 +417,11 @@
|
|
|
415
417
|
"types": "./dist/core/Value.d.ts",
|
|
416
418
|
"default": "./dist/core/Value.js"
|
|
417
419
|
},
|
|
420
|
+
"./WebAuthn": {
|
|
421
|
+
"src": "./src/core/WebAuthn.ts",
|
|
422
|
+
"types": "./dist/core/WebAuthn.d.ts",
|
|
423
|
+
"default": "./dist/core/WebAuthn.js"
|
|
424
|
+
},
|
|
418
425
|
"./WebAuthnP256": {
|
|
419
426
|
"src": "./src/core/WebAuthnP256.ts",
|
|
420
427
|
"types": "./dist/core/WebAuthnP256.d.ts",
|
|
@@ -665,6 +672,11 @@
|
|
|
665
672
|
"types": "./dist/trusted-setups/Paths.d.ts",
|
|
666
673
|
"default": "./dist/trusted-setups/Paths.js"
|
|
667
674
|
},
|
|
675
|
+
"./trusted-setups/Setups": {
|
|
676
|
+
"src": "./src/trusted-setups/Setups.ts",
|
|
677
|
+
"types": "./dist/trusted-setups/Setups.d.ts",
|
|
678
|
+
"default": "./dist/trusted-setups/Setups.js"
|
|
679
|
+
},
|
|
668
680
|
"./wasm": {
|
|
669
681
|
"src": "./src/wasm/index.ts",
|
|
670
682
|
"types": "./dist/wasm/index.d.ts",
|
|
@@ -690,11 +702,21 @@
|
|
|
690
702
|
"types": "./dist/wasm/Keystore.d.ts",
|
|
691
703
|
"default": "./dist/wasm/Keystore.js"
|
|
692
704
|
},
|
|
705
|
+
"./wasm/Kzg": {
|
|
706
|
+
"src": "./src/wasm/Kzg.ts",
|
|
707
|
+
"types": "./dist/wasm/Kzg.d.ts",
|
|
708
|
+
"default": "./dist/wasm/Kzg.js"
|
|
709
|
+
},
|
|
693
710
|
"./wasm/Mnemonic": {
|
|
694
711
|
"src": "./src/wasm/Mnemonic.ts",
|
|
695
712
|
"types": "./dist/wasm/Mnemonic.d.ts",
|
|
696
713
|
"default": "./dist/wasm/Mnemonic.js"
|
|
697
714
|
},
|
|
715
|
+
"./wasm/Secp256k1": {
|
|
716
|
+
"src": "./src/wasm/Secp256k1.ts",
|
|
717
|
+
"types": "./dist/wasm/Secp256k1.d.ts",
|
|
718
|
+
"default": "./dist/wasm/Secp256k1.js"
|
|
719
|
+
},
|
|
698
720
|
"./wasm/X25519": {
|
|
699
721
|
"src": "./src/wasm/X25519.ts",
|
|
700
722
|
"types": "./dist/wasm/X25519.d.ts",
|
|
@@ -1040,6 +1062,9 @@
|
|
|
1040
1062
|
"types": "./dist/index.d.ts",
|
|
1041
1063
|
"typesVersions": {
|
|
1042
1064
|
"*": {
|
|
1065
|
+
"_types/*": [
|
|
1066
|
+
"./dist/*.d.ts"
|
|
1067
|
+
],
|
|
1043
1068
|
"*": [
|
|
1044
1069
|
"./dist/*",
|
|
1045
1070
|
"./dist/*/index.d.ts",
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Engine } from 'ox'
|
|
2
|
+
import { Engine as NodeEngine } from 'ox/node'
|
|
3
|
+
import { register } from '../../test/benchmarks/comparison.js'
|
|
4
|
+
import { createOperations } from '../../test/benchmarks/comparison.current.js'
|
|
5
|
+
|
|
6
|
+
Engine.reset()
|
|
7
|
+
Engine.set(await NodeEngine.engine())
|
|
8
|
+
register('ox/node', createOperations())
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { Engine } from 'ox'
|
|
2
|
+
import {
|
|
3
|
+
Engine as WasmEngine,
|
|
4
|
+
Keystore as WasmKeystore,
|
|
5
|
+
Secp256k1 as WasmSecp256k1,
|
|
6
|
+
} from 'ox/wasm'
|
|
7
|
+
import { register } from '../../test/benchmarks/comparison.js'
|
|
8
|
+
import { createOperations } from '../../test/benchmarks/comparison.current.js'
|
|
9
|
+
|
|
10
|
+
const [wasm, keystore, secp256k1] = await Promise.all([
|
|
11
|
+
WasmEngine.engine(),
|
|
12
|
+
WasmKeystore.engine(),
|
|
13
|
+
WasmSecp256k1.engine(),
|
|
14
|
+
])
|
|
15
|
+
|
|
16
|
+
Engine.reset()
|
|
17
|
+
Engine.set({
|
|
18
|
+
...wasm,
|
|
19
|
+
Keystore: keystore,
|
|
20
|
+
Secp256k1: secp256k1,
|
|
21
|
+
})
|
|
22
|
+
register('ox/wasm', createOperations())
|
package/src/core/AbiFunction.ts
CHANGED
|
@@ -6,7 +6,7 @@ import type * as Errors from './Errors.js'
|
|
|
6
6
|
import * as Hex from './Hex.js'
|
|
7
7
|
import type * as internal from './internal/abiFunction.js'
|
|
8
8
|
import type * as AbiItem_internal from './internal/abiItem.js'
|
|
9
|
-
import
|
|
9
|
+
import * as AbiParameters_internal from './internal/abiParameters.js'
|
|
10
10
|
import * as formatAbiItem from './internal/human-readable/formatAbiItem.js'
|
|
11
11
|
import type { IsNarrowable } from './internal/types.js'
|
|
12
12
|
|
|
@@ -670,10 +670,10 @@ export function encodeData(
|
|
|
670
670
|
|
|
671
671
|
const selector = getSelector(item)
|
|
672
672
|
|
|
673
|
-
|
|
674
|
-
|
|
675
|
-
|
|
676
|
-
|
|
673
|
+
if (args.length === 0) return selector
|
|
674
|
+
return AbiParameters_internal.encodeParameters(item.inputs, args, {
|
|
675
|
+
prefix: selector,
|
|
676
|
+
})
|
|
677
677
|
}
|
|
678
678
|
|
|
679
679
|
export declare namespace encodeData {
|
|
@@ -212,29 +212,17 @@ export function encode<
|
|
|
212
212
|
options?: encode.Options,
|
|
213
213
|
): Hex.Hex {
|
|
214
214
|
const { checksumAddress = false } = options ?? {}
|
|
215
|
-
|
|
216
|
-
|
|
217
|
-
|
|
218
|
-
|
|
219
|
-
|
|
220
|
-
}
|
|
221
|
-
|
|
222
|
-
const preparedParameters = internal.prepareParameters({
|
|
223
|
-
checksumAddress,
|
|
224
|
-
parameters: parameters as readonly Parameter[],
|
|
225
|
-
values: values as any,
|
|
226
|
-
})
|
|
227
|
-
const data = internal.encode(preparedParameters)
|
|
228
|
-
if (data.length === 0) return '0x'
|
|
229
|
-
return data
|
|
215
|
+
return internal.encodeParameters(
|
|
216
|
+
parameters as readonly Parameter[],
|
|
217
|
+
values as readonly unknown[],
|
|
218
|
+
{
|
|
219
|
+
checksumAddress,
|
|
220
|
+
},
|
|
221
|
+
)
|
|
230
222
|
}
|
|
231
223
|
|
|
232
224
|
export declare namespace encode {
|
|
233
|
-
type ErrorType =
|
|
234
|
-
| LengthMismatchError
|
|
235
|
-
| internal.encode.ErrorType
|
|
236
|
-
| internal.prepareParameters.ErrorType
|
|
237
|
-
| Errors.GlobalErrorType
|
|
225
|
+
type ErrorType = internal.encodeParameters.ErrorType | Errors.GlobalErrorType
|
|
238
226
|
|
|
239
227
|
type Options = {
|
|
240
228
|
/**
|
package/src/core/AesGcm.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as Bytes from './Bytes.js'
|
|
2
|
-
import
|
|
2
|
+
import * as Errors from './Errors.js'
|
|
3
3
|
import * as Hex from './Hex.js'
|
|
4
4
|
|
|
5
5
|
export const ivLength = 16
|
|
@@ -134,6 +134,70 @@ export declare namespace encrypt {
|
|
|
134
134
|
| Errors.GlobalErrorType
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
+
/**
|
|
138
|
+
* Derives an AES-256-GCM key from a 32-byte WebAuthn PRF output.
|
|
139
|
+
*
|
|
140
|
+
* The permanent derivation contract uses the PRF output as the HMAC-SHA256
|
|
141
|
+
* key. Its message is the UTF-8 bytes of `ox.aesGcm.fromPrf.v1` followed by
|
|
142
|
+
* a 32-bit big-endian counter set to zero.
|
|
143
|
+
*
|
|
144
|
+
* @example
|
|
145
|
+
* ```ts twoslash
|
|
146
|
+
* import { AesGcm } from 'ox'
|
|
147
|
+
*
|
|
148
|
+
* const key = await AesGcm.fromPrf(
|
|
149
|
+
* '0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f'
|
|
150
|
+
* )
|
|
151
|
+
* ```
|
|
152
|
+
*
|
|
153
|
+
* @param value - A 32-byte WebAuthn PRF output.
|
|
154
|
+
* @returns A nonextractable AES-256-GCM key for encryption and decryption.
|
|
155
|
+
*/
|
|
156
|
+
export async function fromPrf(
|
|
157
|
+
value: Hex.Hex | Bytes.Bytes,
|
|
158
|
+
): Promise<CryptoKey> {
|
|
159
|
+
const bytes = Bytes.from(value)
|
|
160
|
+
if (bytes.length !== 32) throw new InvalidPrfSizeError({ size: bytes.length })
|
|
161
|
+
|
|
162
|
+
const prfKey = await globalThis.crypto.subtle.importKey(
|
|
163
|
+
'raw',
|
|
164
|
+
bytes,
|
|
165
|
+
{
|
|
166
|
+
name: 'HMAC',
|
|
167
|
+
hash: 'SHA-256',
|
|
168
|
+
},
|
|
169
|
+
false,
|
|
170
|
+
['sign'],
|
|
171
|
+
)
|
|
172
|
+
const key = new Uint8Array(
|
|
173
|
+
await globalThis.crypto.subtle.sign(
|
|
174
|
+
'HMAC',
|
|
175
|
+
prfKey,
|
|
176
|
+
Bytes.concat(fromPrfLabel, Bytes.fromNumber(0, { size: 4 })),
|
|
177
|
+
),
|
|
178
|
+
)
|
|
179
|
+
try {
|
|
180
|
+
return await globalThis.crypto.subtle.importKey(
|
|
181
|
+
'raw',
|
|
182
|
+
key,
|
|
183
|
+
{ name: 'AES-GCM' },
|
|
184
|
+
false,
|
|
185
|
+
['encrypt', 'decrypt'],
|
|
186
|
+
)
|
|
187
|
+
} finally {
|
|
188
|
+
key.fill(0)
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
export declare namespace fromPrf {
|
|
193
|
+
type ErrorType =
|
|
194
|
+
| Bytes.concat.ErrorType
|
|
195
|
+
| Bytes.from.ErrorType
|
|
196
|
+
| Bytes.fromNumber.ErrorType
|
|
197
|
+
| InvalidPrfSizeError
|
|
198
|
+
| Errors.GlobalErrorType
|
|
199
|
+
}
|
|
200
|
+
|
|
137
201
|
/**
|
|
138
202
|
* Derives an AES-GCM key from a password using PBKDF2.
|
|
139
203
|
*
|
|
@@ -206,3 +270,24 @@ export function randomSalt(size = 32): Bytes.Bytes {
|
|
|
206
270
|
export declare namespace randomSalt {
|
|
207
271
|
type ErrorType = Bytes.random.ErrorType | Errors.GlobalErrorType
|
|
208
272
|
}
|
|
273
|
+
|
|
274
|
+
/** Thrown when a WebAuthn PRF output is not 32 bytes. */
|
|
275
|
+
export class InvalidPrfSizeError extends Errors.BaseError {
|
|
276
|
+
override readonly name = 'AesGcm.InvalidPrfSizeError'
|
|
277
|
+
|
|
278
|
+
constructor(options: InvalidPrfSizeError.Options) {
|
|
279
|
+
super(
|
|
280
|
+
`PRF output must be exactly 32 bytes. Received ${options.size} bytes.`,
|
|
281
|
+
)
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
|
|
285
|
+
export declare namespace InvalidPrfSizeError {
|
|
286
|
+
/** Options for {@link ox#AesGcm.InvalidPrfSizeError}. */
|
|
287
|
+
type Options = {
|
|
288
|
+
/** Received PRF output size. */
|
|
289
|
+
size: number
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
|
|
293
|
+
const fromPrfLabel = Bytes.fromString('ox.aesGcm.fromPrf.v1')
|
package/src/core/Ed25519.ts
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { ed25519 } from '@noble/curves/ed25519.js'
|
|
2
2
|
import * as Bytes from './Bytes.js'
|
|
3
|
-
import
|
|
3
|
+
import * as Errors from './Errors.js'
|
|
4
|
+
import * as Hash from './Hash.js'
|
|
4
5
|
import * as Hex from './Hex.js'
|
|
5
6
|
import * as engine from './internal/ed25519.js'
|
|
6
7
|
|
|
@@ -58,6 +59,70 @@ export declare namespace createKeyPair {
|
|
|
58
59
|
| Errors.GlobalErrorType
|
|
59
60
|
}
|
|
60
61
|
|
|
62
|
+
/**
|
|
63
|
+
* Derives an Ed25519 private key from a 32-byte WebAuthn PRF output.
|
|
64
|
+
*
|
|
65
|
+
* The permanent derivation contract uses the PRF output as the HMAC-SHA256
|
|
66
|
+
* key. Its message is the UTF-8 bytes of `ox.ed25519.fromPrf.v1` followed by
|
|
67
|
+
* a 32-bit big-endian counter set to zero.
|
|
68
|
+
*
|
|
69
|
+
* @example
|
|
70
|
+
* ```ts twoslash
|
|
71
|
+
* import { Ed25519 } from 'ox'
|
|
72
|
+
*
|
|
73
|
+
* const privateKey = Ed25519.fromPrf(
|
|
74
|
+
* '0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f'
|
|
75
|
+
* )
|
|
76
|
+
* ```
|
|
77
|
+
*
|
|
78
|
+
* @param value - A 32-byte WebAuthn PRF output.
|
|
79
|
+
* @param options - Options.
|
|
80
|
+
* @returns An Ed25519 private key.
|
|
81
|
+
*/
|
|
82
|
+
export function fromPrf<as extends 'Hex' | 'Bytes' = 'Hex'>(
|
|
83
|
+
value: Hex.Hex | Bytes.Bytes,
|
|
84
|
+
options: fromPrf.Options<as> = {},
|
|
85
|
+
): fromPrf.ReturnType<as> {
|
|
86
|
+
const { as = 'Hex' } = options
|
|
87
|
+
const bytes = Bytes.from(value)
|
|
88
|
+
if (bytes.length !== 32) throw new InvalidPrfSizeError({ size: bytes.length })
|
|
89
|
+
|
|
90
|
+
const privateKey = Hash.hmac256(
|
|
91
|
+
bytes,
|
|
92
|
+
Bytes.concat(fromPrfLabel, Bytes.fromNumber(0, { size: 4 })),
|
|
93
|
+
{ as: 'Bytes' },
|
|
94
|
+
)
|
|
95
|
+
if (as === 'Hex') {
|
|
96
|
+
const value = Hex.fromBytes(privateKey)
|
|
97
|
+
privateKey.fill(0)
|
|
98
|
+
return value as never
|
|
99
|
+
}
|
|
100
|
+
return privateKey as never
|
|
101
|
+
}
|
|
102
|
+
|
|
103
|
+
export declare namespace fromPrf {
|
|
104
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
105
|
+
/**
|
|
106
|
+
* Format of the returned private key.
|
|
107
|
+
* @default 'Hex'
|
|
108
|
+
*/
|
|
109
|
+
as?: as | 'Hex' | 'Bytes' | undefined
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> =
|
|
113
|
+
| (as extends 'Bytes' ? Bytes.Bytes : never)
|
|
114
|
+
| (as extends 'Hex' ? Hex.Hex : never)
|
|
115
|
+
|
|
116
|
+
type ErrorType =
|
|
117
|
+
| Bytes.concat.ErrorType
|
|
118
|
+
| Bytes.from.ErrorType
|
|
119
|
+
| Bytes.fromNumber.ErrorType
|
|
120
|
+
| Hash.hmac256.ErrorType
|
|
121
|
+
| Hex.fromBytes.ErrorType
|
|
122
|
+
| InvalidPrfSizeError
|
|
123
|
+
| Errors.GlobalErrorType
|
|
124
|
+
}
|
|
125
|
+
|
|
61
126
|
/**
|
|
62
127
|
* Computes the Ed25519 public key from a provided private key.
|
|
63
128
|
*
|
|
@@ -345,3 +410,24 @@ export declare namespace toX25519PrivateKey {
|
|
|
345
410
|
| Hex.fromBytes.ErrorType
|
|
346
411
|
| Errors.GlobalErrorType
|
|
347
412
|
}
|
|
413
|
+
|
|
414
|
+
/** Thrown when a WebAuthn PRF output is not 32 bytes. */
|
|
415
|
+
export class InvalidPrfSizeError extends Errors.BaseError {
|
|
416
|
+
override readonly name = 'Ed25519.InvalidPrfSizeError'
|
|
417
|
+
|
|
418
|
+
constructor(options: InvalidPrfSizeError.Options) {
|
|
419
|
+
super(
|
|
420
|
+
`PRF output must be exactly 32 bytes. Received ${options.size} bytes.`,
|
|
421
|
+
)
|
|
422
|
+
}
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
export declare namespace InvalidPrfSizeError {
|
|
426
|
+
/** Options for {@link ox#Ed25519.InvalidPrfSizeError}. */
|
|
427
|
+
type Options = {
|
|
428
|
+
/** Received PRF output size. */
|
|
429
|
+
size: number
|
|
430
|
+
}
|
|
431
|
+
}
|
|
432
|
+
|
|
433
|
+
const fromPrfLabel = Bytes.fromString('ox.ed25519.fromPrf.v1')
|