ox 1.1.0 → 1.1.2
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 +27 -0
- package/dist/core/Engine.d.ts +43 -11
- package/dist/core/Engine.d.ts.map +1 -1
- package/dist/core/Engine.js +40 -10
- package/dist/core/Engine.js.map +1 -1
- package/dist/core/internal/engine.d.ts +8 -8
- package/dist/core/internal/engine.d.ts.map +1 -1
- package/dist/index.d.ts +5 -2
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -2
- package/dist/index.js.map +1 -1
- package/dist/node/Ed25519.d.ts +33 -0
- package/dist/node/Ed25519.d.ts.map +1 -0
- package/dist/node/Ed25519.js +67 -0
- package/dist/node/Ed25519.js.map +1 -0
- package/dist/node/Engine.d.ts +29 -16
- package/dist/node/Engine.d.ts.map +1 -1
- package/dist/node/Engine.js +38 -14
- package/dist/node/Engine.js.map +1 -1
- package/dist/node/Hash.d.ts +14 -16
- package/dist/node/Hash.d.ts.map +1 -1
- package/dist/node/Hash.js +14 -16
- package/dist/node/Hash.js.map +1 -1
- package/dist/node/Keystore.d.ts +36 -0
- package/dist/node/Keystore.d.ts.map +1 -0
- package/dist/node/Keystore.js +72 -0
- package/dist/node/Keystore.js.map +1 -0
- package/dist/node/Mnemonic.d.ts +35 -0
- package/dist/node/Mnemonic.d.ts.map +1 -0
- package/dist/node/Mnemonic.js +46 -0
- package/dist/node/Mnemonic.js.map +1 -0
- package/dist/node/P256.d.ts +32 -0
- package/dist/node/P256.d.ts.map +1 -0
- package/dist/node/P256.js +34 -0
- package/dist/node/P256.js.map +1 -0
- package/dist/node/X25519.d.ts +31 -0
- package/dist/node/X25519.d.ts.map +1 -0
- package/dist/node/X25519.js +71 -0
- package/dist/node/X25519.js.map +1 -0
- package/dist/node/index.d.ts +95 -8
- package/dist/node/index.d.ts.map +1 -1
- package/dist/node/index.js +95 -8
- package/dist/node/index.js.map +1 -1
- package/dist/wasm/Ed25519.d.ts +35 -0
- package/dist/wasm/Ed25519.d.ts.map +1 -0
- package/dist/wasm/Ed25519.js +88 -0
- package/dist/wasm/Ed25519.js.map +1 -0
- package/dist/wasm/Engine.d.ts +35 -26
- package/dist/wasm/Engine.d.ts.map +1 -1
- package/dist/wasm/Engine.js +44 -25
- package/dist/wasm/Engine.js.map +1 -1
- package/dist/wasm/Hash.d.ts +13 -19
- package/dist/wasm/Hash.d.ts.map +1 -1
- package/dist/wasm/Hash.js +21 -27
- package/dist/wasm/Hash.js.map +1 -1
- package/dist/wasm/Keystore.d.ts +37 -0
- package/dist/wasm/Keystore.d.ts.map +1 -0
- package/dist/wasm/Keystore.js +34 -0
- package/dist/wasm/Keystore.js.map +1 -0
- package/dist/wasm/Mnemonic.d.ts +33 -0
- package/dist/wasm/Mnemonic.d.ts.map +1 -0
- package/dist/wasm/Mnemonic.js +30 -0
- package/dist/wasm/Mnemonic.js.map +1 -0
- package/dist/wasm/X25519.d.ts +33 -0
- package/dist/wasm/X25519.d.ts.map +1 -0
- package/dist/wasm/X25519.js +53 -0
- package/dist/wasm/X25519.js.map +1 -0
- package/dist/wasm/index.d.ts +81 -12
- package/dist/wasm/index.d.ts.map +1 -1
- package/dist/wasm/index.js +81 -12
- package/dist/wasm/index.js.map +1 -1
- package/dist/wasm/internal/blake3.d.ts +11 -0
- package/dist/wasm/internal/blake3.d.ts.map +1 -0
- package/dist/wasm/internal/blake3.js +31 -0
- package/dist/wasm/internal/blake3.js.map +1 -0
- package/dist/wasm/internal/blake3.wasm.d.ts +3 -0
- package/dist/wasm/internal/blake3.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/blake3.wasm.js +10 -0
- package/dist/wasm/internal/blake3.wasm.js.map +1 -0
- package/dist/wasm/internal/crypto25519.d.ts +16 -0
- package/dist/wasm/internal/crypto25519.d.ts.map +1 -0
- package/dist/wasm/internal/crypto25519.js +5 -0
- package/dist/wasm/internal/crypto25519.js.map +1 -0
- package/dist/wasm/internal/crypto25519.wasm.d.ts +3 -0
- package/dist/wasm/internal/crypto25519.wasm.d.ts.map +1 -0
- package/dist/wasm/internal/crypto25519.wasm.js +10 -0
- package/dist/wasm/internal/crypto25519.wasm.js.map +1 -0
- package/dist/wasm/internal/ed25519.d.ts +4 -0
- package/dist/wasm/internal/ed25519.d.ts.map +1 -0
- package/dist/wasm/internal/ed25519.js +21 -0
- package/dist/wasm/internal/ed25519.js.map +1 -0
- package/dist/wasm/internal/hashes.d.ts +12 -0
- package/dist/wasm/internal/hashes.d.ts.map +1 -0
- package/dist/wasm/internal/hashes.js +8 -0
- package/dist/wasm/internal/hashes.js.map +1 -0
- package/dist/wasm/internal/hashes.wasm.d.ts +4 -2
- package/dist/wasm/internal/hashes.wasm.d.ts.map +1 -1
- package/dist/wasm/internal/hashes.wasm.js +4 -2
- package/dist/wasm/internal/hashes.wasm.js.map +1 -1
- package/dist/wasm/internal/mnemonic.d.ts +4 -0
- package/dist/wasm/internal/mnemonic.d.ts.map +1 -0
- package/dist/wasm/internal/mnemonic.js +45 -0
- package/dist/wasm/internal/mnemonic.js.map +1 -0
- package/dist/wasm/internal/pbkdf2.d.ts +12 -0
- package/dist/wasm/internal/pbkdf2.d.ts.map +1 -0
- package/dist/wasm/internal/pbkdf2.js +51 -0
- package/dist/wasm/internal/pbkdf2.js.map +1 -0
- package/dist/wasm/internal/x25519.d.ts +4 -0
- package/dist/wasm/internal/x25519.d.ts.map +1 -0
- package/dist/wasm/internal/x25519.js +21 -0
- package/dist/wasm/internal/x25519.js.map +1 -0
- package/package.json +46 -1
- package/src/core/Engine.ts +84 -11
- package/src/core/_test/Engine.test-d.ts +56 -0
- package/src/core/_test/Engine.test.ts +95 -0
- package/src/core/_test/Hash.vectors.test.ts +8 -0
- package/src/core/internal/engine.ts +8 -8
- package/src/index.ts +5 -2
- package/src/node/Ed25519.ts +87 -0
- package/src/node/Engine.ts +79 -23
- package/src/node/Hash.ts +22 -27
- package/src/node/Keystore.ts +103 -0
- package/src/node/Mnemonic.ts +68 -0
- package/src/node/P256.ts +48 -0
- package/src/node/X25519.ts +93 -0
- package/src/node/_test/Curves.fuzz.ts +76 -0
- package/src/node/_test/Ed25519.test-d.ts +35 -0
- package/src/node/_test/Ed25519.test.ts +220 -0
- package/src/node/_test/Engine.test-d.ts +28 -0
- package/src/node/_test/Engine.test.ts +62 -22
- package/src/node/_test/Hash.test-d.ts +15 -9
- package/src/node/_test/Hash.test.ts +10 -11
- package/src/node/_test/Keystore.fuzz.ts +58 -0
- package/src/node/_test/Keystore.test-d.ts +43 -0
- package/src/node/_test/Keystore.test.ts +198 -0
- package/src/node/_test/Mnemonic.fuzz.ts +31 -0
- package/src/node/_test/Mnemonic.test-d.ts +21 -0
- package/src/node/_test/Mnemonic.test.ts +98 -0
- package/src/node/_test/P256.test-d.ts +29 -0
- package/src/node/_test/P256.test.ts +102 -0
- package/src/node/_test/X25519.test-d.ts +28 -0
- package/src/node/_test/X25519.test.ts +239 -0
- package/src/node/index.ts +100 -8
- package/src/version.ts +1 -1
- package/src/wasm/Ed25519.ts +114 -0
- package/src/wasm/Engine.ts +76 -31
- package/src/wasm/Hash.bench.ts +2 -2
- package/src/wasm/Hash.ts +29 -50
- package/src/wasm/Keystore.ts +48 -0
- package/src/wasm/Mnemonic.ts +44 -0
- package/src/wasm/X25519.ts +70 -0
- package/src/wasm/_test/Crypto25519.conformance.ts +57 -0
- package/src/wasm/_test/Crypto25519.fuzz.ts +187 -0
- package/src/wasm/_test/Ed25519.test-d.ts +28 -0
- package/src/wasm/_test/Ed25519.test.ts +168 -0
- package/src/wasm/_test/Ed25519.vectors.test.ts +73 -0
- package/src/wasm/_test/Engine.test-d.ts +28 -0
- package/src/wasm/_test/Engine.test.ts +59 -25
- package/src/wasm/_test/Hash.browser.test.ts +11 -7
- package/src/wasm/_test/Hash.fuzz.ts +58 -23
- package/src/wasm/_test/Hash.test-d.ts +15 -10
- package/src/wasm/_test/Hash.test.ts +148 -48
- package/src/wasm/_test/Hash.vectors.test.ts +15 -8
- package/src/wasm/_test/Keystore.browser.test.ts +42 -0
- package/src/wasm/_test/Keystore.fuzz.ts +113 -0
- package/src/wasm/_test/Keystore.test-d.ts +33 -0
- package/src/wasm/_test/Keystore.test.ts +192 -0
- package/src/wasm/_test/Keystore.vectors.test.ts +21 -0
- package/src/wasm/_test/Mnemonic.test-d.ts +17 -0
- package/src/wasm/_test/Mnemonic.test.ts +110 -0
- package/src/wasm/_test/X25519.test-d.ts +21 -0
- package/src/wasm/_test/X25519.test.ts +194 -0
- package/src/wasm/_test/fixtures.ts +4 -0
- package/src/wasm/index.ts +85 -12
- package/src/wasm/internal/blake3.ts +45 -0
- package/src/wasm/internal/blake3.wasm.ts +11 -0
- package/src/wasm/internal/crypto25519.ts +43 -0
- package/src/wasm/internal/crypto25519.wasm.ts +11 -0
- package/src/wasm/internal/ed25519.ts +31 -0
- package/src/wasm/internal/hashes.ts +29 -0
- package/src/wasm/internal/hashes.wasm.ts +5 -2
- package/src/wasm/internal/mnemonic.ts +56 -0
- package/src/wasm/internal/pbkdf2.ts +86 -0
- package/src/wasm/internal/x25519.ts +29 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ed25519.d.ts","sourceRoot":"","sources":["../../../src/wasm/internal/ed25519.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAK9C,oEAAoE;AACpE,wBAAgB,IAAI,CAClB,MAAM,EAAE,MAAM,EACd,OAAO,EAAE,UAAU,EACnB,UAAU,EAAE,UAAU,GACrB,UAAU,CAoBZ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const keySize = 32;
|
|
2
|
+
const signatureSize = 64;
|
|
3
|
+
/** Signs through the shared module and clears every staged byte. */
|
|
4
|
+
export function sign(module, payload, privateKey) {
|
|
5
|
+
const size = keySize + payload.length + signatureSize;
|
|
6
|
+
module.reserve(size);
|
|
7
|
+
const privateKeyPtr = module.heapBase;
|
|
8
|
+
const payloadPtr = privateKeyPtr + keySize;
|
|
9
|
+
const signaturePtr = payloadPtr + payload.length;
|
|
10
|
+
try {
|
|
11
|
+
const memory = module.view();
|
|
12
|
+
memory.set(privateKey, privateKeyPtr);
|
|
13
|
+
memory.set(payload, payloadPtr);
|
|
14
|
+
module.exports.ed25519_sign(privateKeyPtr, payloadPtr, payload.length, signaturePtr);
|
|
15
|
+
return module.view().slice(signaturePtr, signaturePtr + signatureSize);
|
|
16
|
+
}
|
|
17
|
+
finally {
|
|
18
|
+
module.exports.zero(privateKeyPtr, size);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=ed25519.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ed25519.js","sourceRoot":"","sources":["../../../src/wasm/internal/ed25519.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,EAAE,CAAA;AAClB,MAAM,aAAa,GAAG,EAAE,CAAA;AAExB,oEAAoE;AACpE,MAAM,UAAU,IAAI,CAClB,MAAc,EACd,OAAmB,EACnB,UAAsB;IAEtB,MAAM,IAAI,GAAG,OAAO,GAAG,OAAO,CAAC,MAAM,GAAG,aAAa,CAAA;IACrD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAA;IACrC,MAAM,UAAU,GAAG,aAAa,GAAG,OAAO,CAAA;IAC1C,MAAM,YAAY,GAAG,UAAU,GAAG,OAAO,CAAC,MAAM,CAAA;IAChD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;QAC5B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QACrC,MAAM,CAAC,GAAG,CAAC,OAAO,EAAE,UAAU,CAAC,CAAA;QAC/B,MAAM,CAAC,OAAO,CAAC,YAAY,CACzB,aAAa,EACb,UAAU,EACV,OAAO,CAAC,MAAM,EACd,YAAY,CACb,CAAA;QACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,YAAY,EAAE,YAAY,GAAG,aAAa,CAAC,CAAA;IACxE,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,IAAI,CAAC,CAAA;IAC1C,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import * as hash from './hash.js';
|
|
2
|
+
import * as internal from './instantiate.js';
|
|
3
|
+
/** Exports shared by the Hash and Keystore providers. @internal */
|
|
4
|
+
export type Exports = hash.Exports & {
|
|
5
|
+
keccak256(input: number, length: number, out: number): void;
|
|
6
|
+
pbkdf2_sha256(password: number, passwordLength: number, salt: number, saltLength: number, iterations: number, out: number, outLength: number, scratch: number): void;
|
|
7
|
+
ripemd160(input: number, length: number, out: number): void;
|
|
8
|
+
sha256(input: number, length: number, out: number): void;
|
|
9
|
+
};
|
|
10
|
+
/** Returns the one memoized hashes instance shared by its provider modules. */
|
|
11
|
+
export declare function load(): Promise<internal.Module<Exports>>;
|
|
12
|
+
//# sourceMappingURL=hashes.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashes.d.ts","sourceRoot":"","sources":["../../../src/wasm/internal/hashes.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,IAAI,MAAM,WAAW,CAAA;AAEjC,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AAE5C,mEAAmE;AACnE,MAAM,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,GAAG;IACnC,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3D,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,IAAI,CAAA;IACP,SAAS,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3D,MAAM,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI,CAAA;CACzD,CAAA;AAMD,+EAA+E;AAC/E,wBAAgB,IAAI,sCAEnB"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { wasmBase64 } from './hashes.wasm.js';
|
|
2
|
+
import * as internal from './instantiate.js';
|
|
3
|
+
const instantiate = /*#__PURE__*/ internal.memoize(() => internal.instantiate(wasmBase64));
|
|
4
|
+
/** Returns the one memoized hashes instance shared by its provider modules. */
|
|
5
|
+
export function load() {
|
|
6
|
+
return instantiate();
|
|
7
|
+
}
|
|
8
|
+
//# sourceMappingURL=hashes.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"hashes.js","sourceRoot":"","sources":["../../../src/wasm/internal/hashes.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAA;AAC7C,OAAO,KAAK,QAAQ,MAAM,kBAAkB,CAAA;AAmB5C,MAAM,WAAW,GAAG,aAAa,CAAC,QAAQ,CAAC,OAAO,CAAC,GAAG,EAAE,CACtD,QAAQ,CAAC,WAAW,CAAU,UAAU,CAAC,CAC1C,CAAA;AAED,+EAA+E;AAC/E,MAAM,UAAU,IAAI;IAClB,OAAO,WAAW,EAAE,CAAA;AACtB,CAAC"}
|
|
@@ -1,5 +1,7 @@
|
|
|
1
1
|
/** Base64-encoded WASM binary. */
|
|
2
|
-
export declare const wasmBase64 = "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dnNqNgIAIAFBBGoiAUHAAUcNAAsgACgCACINIQkgACgCBCIOIQEgACgCCCIPIQUgACgCDCIQIQwgACgCHCIRIQogACgCGCISIQggACgCFCITIQMgACgCECIUIQYDQCAFIQQgASEFIAIgC2ooAgAgC0HgCWooAgAgCiAGIgdBGncgB0EVd3MgB0EHd3NqIAdBf3MgCHEgAyAHcXJqamoiBiAJIgFBHncgAUETd3MgAUEKd3MgASAEIAVzcSAEIAVxc2pqIQkgBiAMaiEGIAQhDCAIIQogAyEIIAchAyALQQRqIgtBgAJHDQALIAAgCiARajYCHCAAIAggEmo2AhggACADIBNqNgIUIAAgBiAUajYCECAAIAQgEGo2AgwgACAFIA9qNgIIIAAgASAOajYCBCAAIAkgDWo2AgALkgkBBn8jAEHgAmsiAyQAIANCADcD0AIgA0IANwPIAiADQgA3A8ACIANCADcDuAIgA0IANwOwAiADQgA3A6gCIANCADcDoAIgA0IANwOYAiADQgA3A5ACIANCADcDiAIgA0IANwOAAiADQgA3A/gBIANCADcD8AEgA0IANwPoASADQgA3A+ABIANCADcD2AEgA0IANwPQASADQgA3A8gBIANCADcDwAEgA0IANwO4ASADQgA3A7ABIANCADcDqAEgA0IANwOgASADQgA3A5gBIANCADcDkAEgAUGIAU8EQANAIAMgAykDkAEgACAGaiIEKQAAhTcDkAEgAyADKQOYASAEKQAIhTcDmAEgAyADKQOgASAEQRBqKQAAhTcDoAEgAyADKQOoASAEQRhqKQAAhTcDqAEgAyADKQOwASAEQSBqKQAAhTcDsAEgAyADKQO4ASAEQShqKQAAhTcDuAEgAyADKQPAASAEQTBqKQAAhTcDwAEgAyADKQPIASAEQThqKQAAhTcDyAEgAyADKQPQASAEQUBrKQAAhTcD0AEgAyADKQPYASAEQcgAaikAAIU3A9gBIAMgAykD4AEgBEHQAGopAACFNwPgASADIAMpA+gBIARB2ABqKQAAhTcD6AEgAyADKQPwASAEQeAAaikAAIU3A/ABIAMgAykD+AEgBEHoAGopAACFNwP4ASADIAMpA4ACIARB8ABqKQAAhTcDgAIgAyADKQOIAiAEQfgAaikAAIU3A4gCIAMgAykDkAIgBEGAAWopAACF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";
|
|
2
|
+
export declare const wasmBase64 = "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dnM6ACkgByAHLQAqIDBzOgAqIAcgBCAHLQArczoAKyAHIActACwgHHM6ACwgByAHLQAtIAhBEHZzOgAtIAcgBy0ALiAxczoALiAHIAggBy0AL3M6AC8gByAHLQAwIB1zOgAwIAcgBy0AMSALQRB2czoAMSAHIActADIgMnM6ADIgByALIActADNzOgAzIAcgBy0ANCAeczoANCAHIActADUgCUEQdnM6ADUgByAHLQA2IDNzOgA2IAcgCSAHLQA3czoANyAHIActADggH3M6ADggByAHLQA5IA1BEHZzOgA5IAcgBy0AOiA0czoAOiAHIA0gBy0AO3M6ADsgByAHLQA8ICBzOgA8IAcgBy0APSAKQRB2czoAPSAHIActAD4gNXM6AD4gByAKIActAD9zOgA/IABBAWsiAA0ACwtBICAGIA5rIgEgAUEgTxshAAJAIAYgDkYNAEEBIAAgAEEBTRsiA0EDcSEIQQAhBCABQQRPBEAgBSAOaiELIANBPHEhCQNAIAQgC2oiASAEIAdqIgNBIGotAAA6AAAgAUEBaiADQSFqLQAAOgAAIAFBAmogA0Eiai0AADoAACABQQNqIANBI2otAAA6AAAgCSAEQQRqIgRHDQALCyAIRQ0AQQAgCGshASAEICFqIQMgBSAEIA5qaiEEA0AgBCADLQAAOgAAIANBAWohAyAEQQFqIQQgAUEBaiIBDQALCyAMQQFqIQwgACAOaiIOIAZJDQALC0EAIQMDQCADIAdqIgBBADoAACAAQQFqQQA6AAAgAEECakEAOgAAIABBA2pBADoAACAAQQRqQQA6AAAgAEEFakEAOgAAIABBBmpBADoAACAAQQdqQQA6AAAgAEEIakEAOgAAIABBCWpBADoAACAAQQpqQQA6AAAgAEELakEAOgAAIABBDGpBADoAACAAQQ1qQQA6AAAgAEEOakEAOgAAIABBD2pBADoAACADQRBqIgNBoARHDQALC78IARJ/IAIgASgAACIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycjYCACACIAEoAAQiA0EYdCADQYD+A3FBCHRyIANBCHZBgP4DcSADQRh2cnI2AgQgAiABKAAIIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyNgIIIAIgASgADCIDQRh0IANBgP4DcUEIdHIg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";
|
|
3
3
|
/** Constant shared with the module's C source. */
|
|
4
|
-
export declare const hmacSha256ScratchSize =
|
|
4
|
+
export declare const hmacSha256ScratchSize = 544;
|
|
5
|
+
/** Constant shared with the module's C source. */
|
|
6
|
+
export declare const pbkdf2Sha256ScratchSize = 544;
|
|
5
7
|
//# sourceMappingURL=hashes.wasm.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashes.wasm.d.ts","sourceRoot":"","sources":["../../../src/wasm/internal/hashes.wasm.ts"],"names":[],"mappings":"AAQA,kCAAkC;AAClC,eAAO,MAAM,UAAU,
|
|
1
|
+
{"version":3,"file":"hashes.wasm.d.ts","sourceRoot":"","sources":["../../../src/wasm/internal/hashes.wasm.ts"],"names":[],"mappings":"AAQA,kCAAkC;AAClC,eAAO,MAAM,UAAU,69aACq8a,CAAA;AAE59a,kDAAkD;AAClD,eAAO,MAAM,qBAAqB,MAAM,CAAA;AAExC,kDAAkD;AAClD,eAAO,MAAM,uBAAuB,MAAM,CAAA"}
|
|
@@ -6,7 +6,9 @@
|
|
|
6
6
|
// `pnpm wasm:check` rebuilds this file and fails if the bytes differ, so any
|
|
7
7
|
// change to the C or to `wasm/targets.ts` must be followed by `pnpm wasm:build`.
|
|
8
8
|
/** Base64-encoded WASM binary. */
|
|
9
|
-
export const wasmBase64 = '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dnNqNgIAIAFBBGoiAUHAAUcNAAsgACgCACINIQkgACgCBCIOIQEgACgCCCIPIQUgACgCDCIQIQwgACgCHCIRIQogACgCGCISIQggACgCFCITIQMgACgCECIUIQYDQCAFIQQgASEFIAIgC2ooAgAgC0HgCWooAgAgCiAGIgdBGncgB0EVd3MgB0EHd3NqIAdBf3MgCHEgAyAHcXJqamoiBiAJIgFBHncgAUETd3MgAUEKd3MgASAEIAVzcSAEIAVxc2pqIQkgBiAMaiEGIAQhDCAIIQogAyEIIAchAyALQQRqIgtBgAJHDQALIAAgCiARajYCHCAAIAggEmo2AhggACADIBNqNgIUIAAgBiAUajYCECAAIAQgEGo2AgwgACAFIA9qNgIIIAAgASAOajYCBCAAIAkgDWo2AgALkgkBBn8jAEHgAmsiAyQAIANCADcD0AIgA0IANwPIAiADQgA3A8ACIANCADcDuAIgA0IANwOwAiADQgA3A6gCIANCADcDoAIgA0IANwOYAiADQgA3A5ACIANCADcDiAIgA0IANwOAAiADQgA3A/gBIANCADcD8AEgA0IANwPoASADQgA3A+ABIANCADcD2AEgA0IANwPQASADQgA3A8gBIANCADcDwAEgA0IANwO4ASADQgA3A7ABIANCADcDqAEgA0IANwOgASADQgA3A5gBIANCADcDkAEgAUGIAU8EQANAIAMgAykDkAEgACAGaiIEKQAAhTcDkAEgAyADKQOYASAEKQAIhTcDmAEgAyADKQOgASAEQRBqKQAAhTcDoAEgAyADKQOoASAEQRhqKQAAhTcDqAEgAyADKQOwASAEQSBqKQAAhTcDsAEgAyADKQO4ASAEQShqKQAAhTcDuAEgAyADKQPAASAEQTBqKQAAhTcDwAEgAyADKQPIASAEQThqKQAAhTcDyAEgAyADKQPQASAEQUBrKQAAhTcD0AEgAyADKQPYASAEQcgAaikAAIU3A9gBIAMgAykD4AEgBEHQAGopAACFNwPgASADIAMpA+gBIARB2ABqKQAAhTcD6AEgAyADKQPwASAEQeAAaikAAIU3A/ABIAMgAykD+AEgBEHoAGopAACFNwP4ASADIAMpA4ACIARB8ABqKQAAhTcDgAIgAyADKQOIAiAEQfgAaikAAIU3A4gCIAMgAykDkAIgBEGAAWopAACF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';
|
|
9
|
+
export const wasmBase64 = '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dnM6ACkgByAHLQAqIDBzOgAqIAcgBCAHLQArczoAKyAHIActACwgHHM6ACwgByAHLQAtIAhBEHZzOgAtIAcgBy0ALiAxczoALiAHIAggBy0AL3M6AC8gByAHLQAwIB1zOgAwIAcgBy0AMSALQRB2czoAMSAHIActADIgMnM6ADIgByALIActADNzOgAzIAcgBy0ANCAeczoANCAHIActADUgCUEQdnM6ADUgByAHLQA2IDNzOgA2IAcgCSAHLQA3czoANyAHIActADggH3M6ADggByAHLQA5IA1BEHZzOgA5IAcgBy0AOiA0czoAOiAHIA0gBy0AO3M6ADsgByAHLQA8ICBzOgA8IAcgBy0APSAKQRB2czoAPSAHIActAD4gNXM6AD4gByAKIActAD9zOgA/IABBAWsiAA0ACwtBICAGIA5rIgEgAUEgTxshAAJAIAYgDkYNAEEBIAAgAEEBTRsiA0EDcSEIQQAhBCABQQRPBEAgBSAOaiELIANBPHEhCQNAIAQgC2oiASAEIAdqIgNBIGotAAA6AAAgAUEBaiADQSFqLQAAOgAAIAFBAmogA0Eiai0AADoAACABQQNqIANBI2otAAA6AAAgCSAEQQRqIgRHDQALCyAIRQ0AQQAgCGshASAEICFqIQMgBSAEIA5qaiEEA0AgBCADLQAAOgAAIANBAWohAyAEQQFqIQQgAUEBaiIBDQALCyAMQQFqIQwgACAOaiIOIAZJDQALC0EAIQMDQCADIAdqIgBBADoAACAAQQFqQQA6AAAgAEECakEAOgAAIABBA2pBADoAACAAQQRqQQA6AAAgAEEFakEAOgAAIABBBmpBADoAACAAQQdqQQA6AAAgAEEIakEAOgAAIABBCWpBADoAACAAQQpqQQA6AAAgAEELakEAOgAAIABBDGpBADoAACAAQQ1qQQA6AAAgAEEOakEAOgAAIABBD2pBADoAACADQRBqIgNBoARHDQALC78IARJ/IAIgASgAACIDQRh0IANBgP4DcUEIdHIgA0EIdkGA/gNxIANBGHZycjYCACACIAEoAAQiA0EYdCADQYD+A3FBCHRyIANBCHZBgP4DcSADQRh2cnI2AgQgAiABKAAIIgNBGHQgA0GA/gNxQQh0ciADQQh2QYD+A3EgA0EYdnJyNgIIIAIgASgADCIDQRh0IANBgP4DcUEIdHIg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';
|
|
10
10
|
/** Constant shared with the module's C source. */
|
|
11
|
-
export const hmacSha256ScratchSize =
|
|
11
|
+
export const hmacSha256ScratchSize = 544;
|
|
12
|
+
/** Constant shared with the module's C source. */
|
|
13
|
+
export const pbkdf2Sha256ScratchSize = 544;
|
|
12
14
|
//# sourceMappingURL=hashes.wasm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"hashes.wasm.js","sourceRoot":"","sources":["../../../src/wasm/internal/hashes.wasm.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,oDAAoD;AACpD,qCAAqC;AACrC,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AAEjF,kCAAkC;AAClC,MAAM,CAAC,MAAM,UAAU,GACrB,
|
|
1
|
+
{"version":3,"file":"hashes.wasm.js","sourceRoot":"","sources":["../../../src/wasm/internal/hashes.wasm.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,EAAE;AACF,oDAAoD;AACpD,qCAAqC;AACrC,EAAE;AACF,6EAA6E;AAC7E,iFAAiF;AAEjF,kCAAkC;AAClC,MAAM,CAAC,MAAM,UAAU,GACrB,09aAA09a,CAAA;AAE59a,kDAAkD;AAClD,MAAM,CAAC,MAAM,qBAAqB,GAAG,GAAG,CAAA;AAExC,kDAAkD;AAClD,MAAM,CAAC,MAAM,uBAAuB,GAAG,GAAG,CAAA"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mnemonic.d.ts","sourceRoot":"","sources":["../../../src/wasm/internal/mnemonic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAM9C,2EAA2E;AAC3E,wBAAgB,MAAM,CACpB,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,UAAU,SAAK,GACd,UAAU,CA+BZ"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
const encoder = new TextEncoder();
|
|
2
|
+
const seedSize = 64;
|
|
3
|
+
const wordCounts = [12, 15, 18, 21, 24];
|
|
4
|
+
/** Derives a BIP-39 seed and clears encoded and staged secret material. */
|
|
5
|
+
export function toSeed(module, mnemonic, passphrase = '') {
|
|
6
|
+
const password = encoder.encode(normalize(mnemonic));
|
|
7
|
+
try {
|
|
8
|
+
const salt = encoder.encode(normalizeSalt(passphrase));
|
|
9
|
+
try {
|
|
10
|
+
const size = password.length + salt.length + seedSize;
|
|
11
|
+
module.reserve(size);
|
|
12
|
+
const passwordPtr = module.heapBase;
|
|
13
|
+
const saltPtr = passwordPtr + password.length;
|
|
14
|
+
const seedPtr = saltPtr + salt.length;
|
|
15
|
+
try {
|
|
16
|
+
const memory = module.view();
|
|
17
|
+
memory.set(password, passwordPtr);
|
|
18
|
+
memory.set(salt, saltPtr);
|
|
19
|
+
module.exports.mnemonic_to_seed(passwordPtr, password.length, saltPtr, salt.length, seedPtr);
|
|
20
|
+
return module.view().slice(seedPtr, seedPtr + seedSize);
|
|
21
|
+
}
|
|
22
|
+
finally {
|
|
23
|
+
module.exports.zero(passwordPtr, size);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
finally {
|
|
27
|
+
salt.fill(0);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
finally {
|
|
31
|
+
password.fill(0);
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
function normalize(mnemonic) {
|
|
35
|
+
if (typeof mnemonic !== 'string')
|
|
36
|
+
throw new TypeError(`invalid mnemonic type: ${typeof mnemonic}`);
|
|
37
|
+
const normalized = mnemonic.normalize('NFKD');
|
|
38
|
+
if (!wordCounts.includes(normalized.split(' ').length))
|
|
39
|
+
throw new Error('Invalid mnemonic');
|
|
40
|
+
return normalized;
|
|
41
|
+
}
|
|
42
|
+
function normalizeSalt(passphrase) {
|
|
43
|
+
return `mnemonic${passphrase}`.normalize('NFKD');
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=mnemonic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mnemonic.js","sourceRoot":"","sources":["../../../src/wasm/internal/mnemonic.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,IAAI,WAAW,EAAE,CAAA;AACjC,MAAM,QAAQ,GAAG,EAAE,CAAA;AACnB,MAAM,UAAU,GAAG,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,CAAC,CAAA;AAEvC,2EAA2E;AAC3E,MAAM,UAAU,MAAM,CACpB,MAAc,EACd,QAAgB,EAChB,UAAU,GAAG,EAAE;IAEf,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,CAAC,CAAA;IACpD,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,CAAA;QACtD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,QAAQ,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAA;YACrD,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAA;YACpB,MAAM,WAAW,GAAG,MAAM,CAAC,QAAQ,CAAA;YACnC,MAAM,OAAO,GAAG,WAAW,GAAG,QAAQ,CAAC,MAAM,CAAA;YAC7C,MAAM,OAAO,GAAG,OAAO,GAAG,IAAI,CAAC,MAAM,CAAA;YACrC,IAAI,CAAC;gBACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;gBAC5B,MAAM,CAAC,GAAG,CAAC,QAAQ,EAAE,WAAW,CAAC,CAAA;gBACjC,MAAM,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAA;gBACzB,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAC7B,WAAW,EACX,QAAQ,CAAC,MAAM,EACf,OAAO,EACP,IAAI,CAAC,MAAM,EACX,OAAO,CACR,CAAA;gBACD,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,OAAO,EAAE,OAAO,GAAG,QAAQ,CAAC,CAAA;YACzD,CAAC;oBAAS,CAAC;gBACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,CAAA;YACxC,CAAC;QACH,CAAC;gBAAS,CAAC;YACT,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;QACd,CAAC;IACH,CAAC;YAAS,CAAC;QACT,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IAClB,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,QAAgB;IACjC,IAAI,OAAO,QAAQ,KAAK,QAAQ;QAC9B,MAAM,IAAI,SAAS,CAAC,0BAA0B,OAAO,QAAQ,EAAE,CAAC,CAAA;IAClE,MAAM,UAAU,GAAG,QAAQ,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;IAC7C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,UAAU,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,CAAC;QACpD,MAAM,IAAI,KAAK,CAAC,kBAAkB,CAAC,CAAA;IACrC,OAAO,UAAU,CAAA;AACnB,CAAC;AAED,SAAS,aAAa,CAAC,UAAkB;IACvC,OAAO,WAAW,UAAU,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,CAAA;AAClD,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type Module } from './instantiate.js';
|
|
2
|
+
/** WASM exports used by the PBKDF2-HMAC-SHA256 loader. @internal */
|
|
3
|
+
export type Exports = {
|
|
4
|
+
pbkdf2_sha256(password: number, passwordLength: number, salt: number, saltLength: number, iterations: number, out: number, outLength: number, scratch: number): void;
|
|
5
|
+
zero(ptr: number, length: number): void;
|
|
6
|
+
};
|
|
7
|
+
/** Calls PBKDF2-HMAC-SHA256 and clears its complete linear-memory region. */
|
|
8
|
+
export declare function pbkdf2Sha256(module: Module<Exports>, password: Uint8Array, salt: Uint8Array, options: {
|
|
9
|
+
c: number;
|
|
10
|
+
dkLen: number;
|
|
11
|
+
}): Uint8Array;
|
|
12
|
+
//# sourceMappingURL=pbkdf2.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbkdf2.d.ts","sourceRoot":"","sources":["../../../src/wasm/internal/pbkdf2.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,KAAK,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAE3D,oEAAoE;AACpE,MAAM,MAAM,OAAO,GAAG;IACpB,aAAa,CACX,QAAQ,EAAE,MAAM,EAChB,cAAc,EAAE,MAAM,EACtB,IAAI,EAAE,MAAM,EACZ,UAAU,EAAE,MAAM,EAClB,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,GACd,IAAI,CAAA;IACP,IAAI,CAAC,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAA;CACxC,CAAA;AAKD,6EAA6E;AAC7E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,MAAM,CAAC,OAAO,CAAC,EACvB,QAAQ,EAAE,UAAU,EACpB,IAAI,EAAE,UAAU,EAChB,OAAO,EAAE;IAAE,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GACpC,UAAU,CA4CZ"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { pbkdf2Sha256ScratchSize } from './hashes.wasm.js';
|
|
2
|
+
import { MemoryError } from './instantiate.js';
|
|
3
|
+
const maximumUint32 = 0xffff_ffff;
|
|
4
|
+
const wasm32Size = 0x1_0000_0000;
|
|
5
|
+
/** Calls PBKDF2-HMAC-SHA256 and clears its complete linear-memory region. */
|
|
6
|
+
export function pbkdf2Sha256(module, password, salt, options) {
|
|
7
|
+
const { c, dkLen } = options;
|
|
8
|
+
assertPositiveUint32(c, 'c');
|
|
9
|
+
assertPositiveUint32(dkLen, 'dkLen');
|
|
10
|
+
const passwordLength = password.length;
|
|
11
|
+
const saltLength = salt.length;
|
|
12
|
+
if (saltLength > maximumUint32 - 4)
|
|
13
|
+
throw new RangeError(`"salt" length must be <= ${maximumUint32 - 4}, got ${saltLength}`);
|
|
14
|
+
const passwordPtr = module.heapBase;
|
|
15
|
+
const saltPtr = passwordPtr + passwordLength;
|
|
16
|
+
const outPtr = saltPtr + saltLength + 4;
|
|
17
|
+
const scratchPtr = align4(outPtr + dkLen);
|
|
18
|
+
const end = scratchPtr + pbkdf2Sha256ScratchSize;
|
|
19
|
+
if (!Number.isSafeInteger(end) || end > wasm32Size)
|
|
20
|
+
throw new MemoryError({
|
|
21
|
+
bytes: end,
|
|
22
|
+
cause: new RangeError('PBKDF2 workspace exceeds wasm32 memory.'),
|
|
23
|
+
});
|
|
24
|
+
module.reserve(end - passwordPtr);
|
|
25
|
+
const view = module.view();
|
|
26
|
+
try {
|
|
27
|
+
view.set(password, passwordPtr);
|
|
28
|
+
view.set(salt, saltPtr);
|
|
29
|
+
module.exports.pbkdf2_sha256(passwordPtr, passwordLength, saltPtr, saltLength, c, outPtr, dkLen, scratchPtr);
|
|
30
|
+
return module.view().slice(outPtr, outPtr + dkLen);
|
|
31
|
+
}
|
|
32
|
+
finally {
|
|
33
|
+
// This includes the password, salt and counter, staged output, alignment
|
|
34
|
+
// padding, and every byte of PBKDF2/HMAC working state.
|
|
35
|
+
module.exports.zero(passwordPtr, end - passwordPtr);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
function align4(value) {
|
|
39
|
+
return Math.ceil(value / 4) * 4;
|
|
40
|
+
}
|
|
41
|
+
function assertPositiveUint32(value, name) {
|
|
42
|
+
if (typeof value !== 'number')
|
|
43
|
+
throw new TypeError(`"${name}" expected number, got ${typeof value}`);
|
|
44
|
+
if (!Number.isSafeInteger(value) || value < 0)
|
|
45
|
+
throw new RangeError(`"${name}" expected integer >= 0, got ${value}`);
|
|
46
|
+
if (value < 1)
|
|
47
|
+
throw new Error(`"${name}" must be >= 1`);
|
|
48
|
+
if (value > maximumUint32)
|
|
49
|
+
throw new RangeError(`"${name}" must be <= ${maximumUint32}, got ${value}`);
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=pbkdf2.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pbkdf2.js","sourceRoot":"","sources":["../../../src/wasm/internal/pbkdf2.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Module } from './crypto25519.js';
|
|
2
|
+
/** Derives a shared secret and clears both keys and the staged result. */
|
|
3
|
+
export declare function getSharedSecret(module: Module, privateKey: Uint8Array, publicKey: Uint8Array): Uint8Array;
|
|
4
|
+
//# sourceMappingURL=x25519.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x25519.d.ts","sourceRoot":"","sources":["../../../src/wasm/internal/x25519.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAA;AAI9C,0EAA0E;AAC1E,wBAAgB,eAAe,CAC7B,MAAM,EAAE,MAAM,EACd,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,UAAU,GACpB,UAAU,CAmBZ"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
const keySize = 32;
|
|
2
|
+
/** Derives a shared secret and clears both keys and the staged result. */
|
|
3
|
+
export function getSharedSecret(module, privateKey, publicKey) {
|
|
4
|
+
module.reserve(keySize * 3);
|
|
5
|
+
const privateKeyPtr = module.heapBase;
|
|
6
|
+
const publicKeyPtr = privateKeyPtr + keySize;
|
|
7
|
+
const sharedSecretPtr = publicKeyPtr + keySize;
|
|
8
|
+
try {
|
|
9
|
+
const memory = module.view();
|
|
10
|
+
memory.set(privateKey, privateKeyPtr);
|
|
11
|
+
memory.set(publicKey, publicKeyPtr);
|
|
12
|
+
const valid = module.exports.x25519_get_shared_secret(privateKeyPtr, publicKeyPtr, sharedSecretPtr);
|
|
13
|
+
if (valid !== 1)
|
|
14
|
+
throw new Error('invalid private or public key received');
|
|
15
|
+
return module.view().slice(sharedSecretPtr, sharedSecretPtr + keySize);
|
|
16
|
+
}
|
|
17
|
+
finally {
|
|
18
|
+
module.exports.zero(privateKeyPtr, keySize * 3);
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=x25519.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"x25519.js","sourceRoot":"","sources":["../../../src/wasm/internal/x25519.ts"],"names":[],"mappings":"AAEA,MAAM,OAAO,GAAG,EAAE,CAAA;AAElB,0EAA0E;AAC1E,MAAM,UAAU,eAAe,CAC7B,MAAc,EACd,UAAsB,EACtB,SAAqB;IAErB,MAAM,CAAC,OAAO,CAAC,OAAO,GAAG,CAAC,CAAC,CAAA;IAC3B,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,CAAA;IACrC,MAAM,YAAY,GAAG,aAAa,GAAG,OAAO,CAAA;IAC5C,MAAM,eAAe,GAAG,YAAY,GAAG,OAAO,CAAA;IAC9C,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,CAAC,IAAI,EAAE,CAAA;QAC5B,MAAM,CAAC,GAAG,CAAC,UAAU,EAAE,aAAa,CAAC,CAAA;QACrC,MAAM,CAAC,GAAG,CAAC,SAAS,EAAE,YAAY,CAAC,CAAA;QACnC,MAAM,KAAK,GAAG,MAAM,CAAC,OAAO,CAAC,wBAAwB,CACnD,aAAa,EACb,YAAY,EACZ,eAAe,CAChB,CAAA;QACD,IAAI,KAAK,KAAK,CAAC;YAAE,MAAM,IAAI,KAAK,CAAC,wCAAwC,CAAC,CAAA;QAC1E,OAAO,MAAM,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,GAAG,OAAO,CAAC,CAAA;IACxE,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,GAAG,CAAC,CAAC,CAAA;IACjD,CAAC;AACH,CAAC"}
|
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.1.
|
|
5
|
+
"version": "1.1.2",
|
|
6
6
|
"main": "./dist/index.js",
|
|
7
7
|
"sideEffects": false,
|
|
8
8
|
"license": "MIT",
|
|
@@ -515,6 +515,11 @@
|
|
|
515
515
|
"types": "./dist/node/index.d.ts",
|
|
516
516
|
"default": "./dist/node/index.js"
|
|
517
517
|
},
|
|
518
|
+
"./node/Ed25519": {
|
|
519
|
+
"src": "./src/node/Ed25519.ts",
|
|
520
|
+
"types": "./dist/node/Ed25519.d.ts",
|
|
521
|
+
"default": "./dist/node/Ed25519.js"
|
|
522
|
+
},
|
|
518
523
|
"./node/Engine": {
|
|
519
524
|
"src": "./src/node/Engine.ts",
|
|
520
525
|
"types": "./dist/node/Engine.d.ts",
|
|
@@ -525,6 +530,26 @@
|
|
|
525
530
|
"types": "./dist/node/Hash.d.ts",
|
|
526
531
|
"default": "./dist/node/Hash.js"
|
|
527
532
|
},
|
|
533
|
+
"./node/Keystore": {
|
|
534
|
+
"src": "./src/node/Keystore.ts",
|
|
535
|
+
"types": "./dist/node/Keystore.d.ts",
|
|
536
|
+
"default": "./dist/node/Keystore.js"
|
|
537
|
+
},
|
|
538
|
+
"./node/Mnemonic": {
|
|
539
|
+
"src": "./src/node/Mnemonic.ts",
|
|
540
|
+
"types": "./dist/node/Mnemonic.d.ts",
|
|
541
|
+
"default": "./dist/node/Mnemonic.js"
|
|
542
|
+
},
|
|
543
|
+
"./node/P256": {
|
|
544
|
+
"src": "./src/node/P256.ts",
|
|
545
|
+
"types": "./dist/node/P256.d.ts",
|
|
546
|
+
"default": "./dist/node/P256.js"
|
|
547
|
+
},
|
|
548
|
+
"./node/X25519": {
|
|
549
|
+
"src": "./src/node/X25519.ts",
|
|
550
|
+
"types": "./dist/node/X25519.d.ts",
|
|
551
|
+
"default": "./dist/node/X25519.js"
|
|
552
|
+
},
|
|
528
553
|
"./tempo": {
|
|
529
554
|
"src": "./src/tempo/index.ts",
|
|
530
555
|
"types": "./dist/tempo/index.d.ts",
|
|
@@ -645,6 +670,11 @@
|
|
|
645
670
|
"types": "./dist/wasm/index.d.ts",
|
|
646
671
|
"default": "./dist/wasm/index.js"
|
|
647
672
|
},
|
|
673
|
+
"./wasm/Ed25519": {
|
|
674
|
+
"src": "./src/wasm/Ed25519.ts",
|
|
675
|
+
"types": "./dist/wasm/Ed25519.d.ts",
|
|
676
|
+
"default": "./dist/wasm/Ed25519.js"
|
|
677
|
+
},
|
|
648
678
|
"./wasm/Engine": {
|
|
649
679
|
"src": "./src/wasm/Engine.ts",
|
|
650
680
|
"types": "./dist/wasm/Engine.d.ts",
|
|
@@ -655,6 +685,21 @@
|
|
|
655
685
|
"types": "./dist/wasm/Hash.d.ts",
|
|
656
686
|
"default": "./dist/wasm/Hash.js"
|
|
657
687
|
},
|
|
688
|
+
"./wasm/Keystore": {
|
|
689
|
+
"src": "./src/wasm/Keystore.ts",
|
|
690
|
+
"types": "./dist/wasm/Keystore.d.ts",
|
|
691
|
+
"default": "./dist/wasm/Keystore.js"
|
|
692
|
+
},
|
|
693
|
+
"./wasm/Mnemonic": {
|
|
694
|
+
"src": "./src/wasm/Mnemonic.ts",
|
|
695
|
+
"types": "./dist/wasm/Mnemonic.d.ts",
|
|
696
|
+
"default": "./dist/wasm/Mnemonic.js"
|
|
697
|
+
},
|
|
698
|
+
"./wasm/X25519": {
|
|
699
|
+
"src": "./src/wasm/X25519.ts",
|
|
700
|
+
"types": "./dist/wasm/X25519.d.ts",
|
|
701
|
+
"default": "./dist/wasm/X25519.js"
|
|
702
|
+
},
|
|
658
703
|
"./webauthn": {
|
|
659
704
|
"src": "./src/webauthn/index.ts",
|
|
660
705
|
"types": "./dist/webauthn/index.d.ts",
|
package/src/core/Engine.ts
CHANGED
|
@@ -13,6 +13,72 @@ export type {
|
|
|
13
13
|
Mnemonic,
|
|
14
14
|
} from './internal/engine.js'
|
|
15
15
|
|
|
16
|
+
/**
|
|
17
|
+
* Resolves and installs crypto implementations.
|
|
18
|
+
*
|
|
19
|
+
* Slots resolve in parallel, then use {@link ox#Engine.set} merge semantics:
|
|
20
|
+
* omitted slots and primitives preserve existing overrides. If a slot rejects
|
|
21
|
+
* or validation fails, the installed engine is unchanged.
|
|
22
|
+
*
|
|
23
|
+
* @example
|
|
24
|
+
* ```ts twoslash
|
|
25
|
+
* import { Engine } from 'ox'
|
|
26
|
+
* import { Hash } from 'ox/wasm'
|
|
27
|
+
*
|
|
28
|
+
* await Engine.install({
|
|
29
|
+
* Hash: Hash.engine()
|
|
30
|
+
* })
|
|
31
|
+
* ```
|
|
32
|
+
*
|
|
33
|
+
* @param value - Engine slots or promises for engine slots.
|
|
34
|
+
* @returns The resolved engine that was installed.
|
|
35
|
+
*/
|
|
36
|
+
export async function install<value extends install.Value>(
|
|
37
|
+
value: value & install.Exact<value>,
|
|
38
|
+
): Promise<install.ReturnType<value>> {
|
|
39
|
+
const resolved = Object.fromEntries(
|
|
40
|
+
await Promise.all(
|
|
41
|
+
Object.entries(value).map(async ([slot, primitives]) => [
|
|
42
|
+
slot,
|
|
43
|
+
await primitives,
|
|
44
|
+
]),
|
|
45
|
+
),
|
|
46
|
+
) as install.ReturnType<value>
|
|
47
|
+
set(resolved as engine.Engine)
|
|
48
|
+
return resolved
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
export declare namespace install {
|
|
52
|
+
/** Rejects slot and primitive names outside the engine contract. */
|
|
53
|
+
type Exact<value extends Value> = {
|
|
54
|
+
[key in keyof value]: key extends keyof engine.Engine
|
|
55
|
+
? [NonNullable<Awaited<value[key]>>] extends [never]
|
|
56
|
+
? unknown
|
|
57
|
+
: Exclude<
|
|
58
|
+
keyof NonNullable<Awaited<value[key]>>,
|
|
59
|
+
keyof NonNullable<engine.Engine[key]>
|
|
60
|
+
> extends never
|
|
61
|
+
? unknown
|
|
62
|
+
: never
|
|
63
|
+
: never
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
/** Engine whose slots can be resolved asynchronously. */
|
|
67
|
+
type Value = {
|
|
68
|
+
[key in keyof engine.Engine]?:
|
|
69
|
+
| engine.Engine[key]
|
|
70
|
+
| PromiseLike<engine.Engine[key]>
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
/** Resolves the supplied slots while preserving their precise shape. */
|
|
74
|
+
type ReturnType<value extends Value> = {
|
|
75
|
+
[key in keyof value]: Awaited<value[key]>
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/** Error thrown while installing an engine. */
|
|
79
|
+
type ErrorType = set.ErrorType | Errors.GlobalErrorType
|
|
80
|
+
}
|
|
81
|
+
|
|
16
82
|
/**
|
|
17
83
|
* Installs crypto implementations, replacing the `@noble/*` implementations ox
|
|
18
84
|
* uses by default.
|
|
@@ -27,16 +93,6 @@ export type {
|
|
|
27
93
|
*
|
|
28
94
|
* @example
|
|
29
95
|
* ```ts twoslash
|
|
30
|
-
* // @noErrors
|
|
31
|
-
* import { Engine } from 'ox/wasm'
|
|
32
|
-
*
|
|
33
|
-
* await Engine.load()
|
|
34
|
-
* ```
|
|
35
|
-
*
|
|
36
|
-
* @example
|
|
37
|
-
* ### Overriding a Single Primitive
|
|
38
|
-
*
|
|
39
|
-
* ```ts twoslash
|
|
40
96
|
* import { Engine, Hash } from 'ox'
|
|
41
97
|
*
|
|
42
98
|
* Engine.set({
|
|
@@ -53,6 +109,13 @@ export function set(value: engine.Engine): void {
|
|
|
53
109
|
for (const [slot, primitives] of Object.entries(value)) {
|
|
54
110
|
if (!(engine.slots as readonly string[]).includes(slot))
|
|
55
111
|
throw new UnknownSlotError(slot)
|
|
112
|
+
if (
|
|
113
|
+
primitives !== undefined &&
|
|
114
|
+
(typeof primitives !== 'object' ||
|
|
115
|
+
primitives === null ||
|
|
116
|
+
Array.isArray(primitives))
|
|
117
|
+
)
|
|
118
|
+
throw new InvalidSlotValueError(slot)
|
|
56
119
|
const known = engine.primitives[slot as keyof engine.Engine]
|
|
57
120
|
// `primitives` is undefined where the caller is clearing the slot.
|
|
58
121
|
for (const primitive of Object.keys(primitives ?? {}))
|
|
@@ -65,8 +128,9 @@ export function set(value: engine.Engine): void {
|
|
|
65
128
|
|
|
66
129
|
export declare namespace set {
|
|
67
130
|
type ErrorType =
|
|
68
|
-
|
|
|
131
|
+
| InvalidSlotValueError
|
|
69
132
|
| UnknownPrimitiveError
|
|
133
|
+
| UnknownSlotError
|
|
70
134
|
| Errors.GlobalErrorType
|
|
71
135
|
}
|
|
72
136
|
|
|
@@ -193,6 +257,15 @@ declare namespace with_ {
|
|
|
193
257
|
| Errors.GlobalErrorType
|
|
194
258
|
}
|
|
195
259
|
|
|
260
|
+
/** Thrown when an engine slot is not an object or `undefined`. */
|
|
261
|
+
export class InvalidSlotValueError extends Errors.BaseError {
|
|
262
|
+
override readonly name = 'Engine.InvalidSlotValueError'
|
|
263
|
+
|
|
264
|
+
constructor(slot: string) {
|
|
265
|
+
super(`\`${slot}\` must be an object or \`undefined\`.`)
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
|
|
196
269
|
/** Thrown when an unrecognized engine slot is supplied. */
|
|
197
270
|
export class UnknownSlotError extends Errors.BaseError {
|
|
198
271
|
override readonly name = 'Engine.UnknownSlotError'
|