ox 1.2.0 → 1.3.1

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.
Files changed (187) hide show
  1. package/CHANGELOG.md +40 -0
  2. package/dist/core/AbiFunction.d.ts +1 -1
  3. package/dist/core/AbiFunction.d.ts.map +1 -1
  4. package/dist/core/AbiFunction.js +6 -2
  5. package/dist/core/AbiFunction.js.map +1 -1
  6. package/dist/core/AbiParameters.d.ts +1 -1
  7. package/dist/core/AbiParameters.d.ts.map +1 -1
  8. package/dist/core/AbiParameters.js +1 -13
  9. package/dist/core/AbiParameters.js.map +1 -1
  10. package/dist/core/AesGcm.d.ts +36 -1
  11. package/dist/core/AesGcm.d.ts.map +1 -1
  12. package/dist/core/AesGcm.js +44 -0
  13. package/dist/core/AesGcm.js.map +1 -1
  14. package/dist/core/Ed25519.d.ts +46 -1
  15. package/dist/core/Ed25519.d.ts.map +1 -1
  16. package/dist/core/Ed25519.js +43 -0
  17. package/dist/core/Ed25519.js.map +1 -1
  18. package/dist/core/Engine.d.ts +1 -1
  19. package/dist/core/Engine.d.ts.map +1 -1
  20. package/dist/core/Engine.js.map +1 -1
  21. package/dist/core/Hash.d.ts +164 -1
  22. package/dist/core/Hash.d.ts.map +1 -1
  23. package/dist/core/Hash.js +172 -0
  24. package/dist/core/Hash.js.map +1 -1
  25. package/dist/core/Hex.d.ts.map +1 -1
  26. package/dist/core/Hex.js +1 -4
  27. package/dist/core/Hex.js.map +1 -1
  28. package/dist/core/Rlp.d.ts +32 -0
  29. package/dist/core/Rlp.d.ts.map +1 -1
  30. package/dist/core/Rlp.js +146 -0
  31. package/dist/core/Rlp.js.map +1 -1
  32. package/dist/core/Secp256k1.d.ts +46 -1
  33. package/dist/core/Secp256k1.d.ts.map +1 -1
  34. package/dist/core/Secp256k1.js +48 -0
  35. package/dist/core/Secp256k1.js.map +1 -1
  36. package/dist/core/WebAuthn.d.ts +224 -0
  37. package/dist/core/WebAuthn.d.ts.map +1 -0
  38. package/dist/core/WebAuthn.js +343 -0
  39. package/dist/core/WebAuthn.js.map +1 -0
  40. package/dist/core/WebAuthnP256.d.ts +46 -50
  41. package/dist/core/WebAuthnP256.d.ts.map +1 -1
  42. package/dist/core/WebAuthnP256.js +44 -50
  43. package/dist/core/WebAuthnP256.js.map +1 -1
  44. package/dist/core/internal/abiParameters.d.ts +7 -87
  45. package/dist/core/internal/abiParameters.d.ts.map +1 -1
  46. package/dist/core/internal/abiParameters.js +339 -194
  47. package/dist/core/internal/abiParameters.js.map +1 -1
  48. package/dist/core/internal/engine.d.ts +35 -2
  49. package/dist/core/internal/engine.d.ts.map +1 -1
  50. package/dist/core/internal/engine.js +12 -1
  51. package/dist/core/internal/engine.js.map +1 -1
  52. package/dist/core/internal/hash.d.ts +10 -0
  53. package/dist/core/internal/hash.d.ts.map +1 -1
  54. package/dist/core/internal/hash.js +26 -1
  55. package/dist/core/internal/hash.js.map +1 -1
  56. package/dist/index.d.ts +23 -14
  57. package/dist/index.d.ts.map +1 -1
  58. package/dist/index.js +23 -14
  59. package/dist/index.js.map +1 -1
  60. package/dist/node/Engine.d.ts +1 -1
  61. package/dist/node/Engine.d.ts.map +1 -1
  62. package/dist/node/Engine.js.map +1 -1
  63. package/dist/node/Hash.d.ts +6 -4
  64. package/dist/node/Hash.d.ts.map +1 -1
  65. package/dist/node/Hash.js +35 -3
  66. package/dist/node/Hash.js.map +1 -1
  67. package/dist/tempo/AuthorizationTempo.d.ts +6 -6
  68. package/dist/tempo/AuthorizationTempo.js +6 -6
  69. package/dist/tempo/KeyAuthorization.d.ts +3 -8
  70. package/dist/tempo/KeyAuthorization.d.ts.map +1 -1
  71. package/dist/tempo/KeyAuthorization.js +3 -8
  72. package/dist/tempo/KeyAuthorization.js.map +1 -1
  73. package/dist/tempo/SignatureEnvelope.d.ts +8 -8
  74. package/dist/tempo/SignatureEnvelope.js +8 -8
  75. package/dist/wasm/Engine.d.ts +1 -1
  76. package/dist/wasm/Engine.d.ts.map +1 -1
  77. package/dist/wasm/Engine.js.map +1 -1
  78. package/dist/wasm/Hash.d.ts +1 -1
  79. package/dist/wasm/Hash.d.ts.map +1 -1
  80. package/dist/wasm/Hash.js +5 -0
  81. package/dist/wasm/Hash.js.map +1 -1
  82. package/dist/wasm/internal/blake3.d.ts +10 -1
  83. package/dist/wasm/internal/blake3.d.ts.map +1 -1
  84. package/dist/wasm/internal/blake3.js +12 -1
  85. package/dist/wasm/internal/blake3.js.map +1 -1
  86. package/dist/wasm/internal/blake3.wasm.d.ts +3 -1
  87. package/dist/wasm/internal/blake3.wasm.d.ts.map +1 -1
  88. package/dist/wasm/internal/blake3.wasm.js +3 -1
  89. package/dist/wasm/internal/blake3.wasm.js.map +1 -1
  90. package/dist/wasm/internal/hash.d.ts +9 -0
  91. package/dist/wasm/internal/hash.d.ts.map +1 -1
  92. package/dist/wasm/internal/hash.js +13 -1
  93. package/dist/wasm/internal/hash.js.map +1 -1
  94. package/dist/wasm/internal/hashState.d.ts +25 -0
  95. package/dist/wasm/internal/hashState.d.ts.map +1 -0
  96. package/dist/wasm/internal/hashState.js +105 -0
  97. package/dist/wasm/internal/hashState.js.map +1 -0
  98. package/dist/wasm/internal/hashes.d.ts +12 -1
  99. package/dist/wasm/internal/hashes.d.ts.map +1 -1
  100. package/dist/wasm/internal/hashes.js +18 -1
  101. package/dist/wasm/internal/hashes.js.map +1 -1
  102. package/dist/wasm/internal/hashes.wasm.d.ts +11 -3
  103. package/dist/wasm/internal/hashes.wasm.d.ts.map +1 -1
  104. package/dist/wasm/internal/hashes.wasm.js +11 -3
  105. package/dist/wasm/internal/hashes.wasm.js.map +1 -1
  106. package/dist/webauthn/Authentication.d.ts +2 -0
  107. package/dist/webauthn/Authentication.d.ts.map +1 -1
  108. package/dist/webauthn/Authentication.js +2 -1
  109. package/dist/webauthn/Authentication.js.map +1 -1
  110. package/dist/webauthn/Registration.d.ts.map +1 -1
  111. package/dist/webauthn/Registration.js +2 -1
  112. package/dist/webauthn/Registration.js.map +1 -1
  113. package/dist/webauthn/Types.d.ts +27 -6
  114. package/dist/webauthn/Types.d.ts.map +1 -1
  115. package/dist/webauthn/internal/utils.d.ts.map +1 -1
  116. package/dist/webauthn/internal/utils.js +35 -9
  117. package/dist/webauthn/internal/utils.js.map +1 -1
  118. package/dist/zod/TypedData.d.ts +2 -2
  119. package/package.json +13 -1
  120. package/src/benchmarks/Ox.bench.ts +6 -0
  121. package/src/benchmarks/OxNode.bench.ts +8 -0
  122. package/src/benchmarks/OxV0.bench.ts +4 -0
  123. package/src/benchmarks/OxWasm.bench.ts +22 -0
  124. package/src/core/AbiFunction.ts +5 -5
  125. package/src/core/AbiParameters.ts +8 -20
  126. package/src/core/AesGcm.ts +86 -1
  127. package/src/core/Ed25519.ts +87 -1
  128. package/src/core/Engine.ts +1 -0
  129. package/src/core/Hash.ts +262 -1
  130. package/src/core/Hex.ts +1 -4
  131. package/src/core/Rlp.ts +172 -5
  132. package/src/core/Secp256k1.ts +92 -1
  133. package/src/core/WebAuthn.ts +579 -0
  134. package/src/core/WebAuthnP256.ts +47 -50
  135. package/src/core/_test/AbiFunction.test.ts +9 -0
  136. package/src/core/_test/AbiParameters.differential.fuzz.ts +156 -0
  137. package/src/core/_test/AbiParameters.encode.test.ts +22 -0
  138. package/src/core/_test/AbiParameters.fuzz.ts +4 -0
  139. package/src/core/_test/AesGcm.test.ts +76 -0
  140. package/src/core/_test/Ed25519.test-d.ts +13 -1
  141. package/src/core/_test/Ed25519.test.ts +120 -1
  142. package/src/core/_test/Engine.test-d.ts +9 -0
  143. package/src/core/_test/Engine.test.ts +1 -1
  144. package/src/core/_test/Hash.test-d.ts +23 -0
  145. package/src/core/_test/Hash.test.ts +179 -1
  146. package/src/core/_test/Hex.test.ts +2 -0
  147. package/src/core/_test/Rlp.test-d.ts +18 -0
  148. package/src/core/_test/Rlp.test.ts +109 -0
  149. package/src/core/_test/Secp256k1.test-d.ts +14 -0
  150. package/src/core/_test/Secp256k1.test.ts +91 -1
  151. package/src/core/_test/WebAuthn.test-d.ts +142 -0
  152. package/src/core/_test/WebAuthn.test.ts +766 -0
  153. package/src/core/_test/index.test.ts +1 -0
  154. package/src/core/internal/abiParameters.ts +466 -326
  155. package/src/core/internal/engine.ts +47 -2
  156. package/src/core/internal/hash.ts +53 -1
  157. package/src/index.ts +24 -14
  158. package/src/node/Engine.ts +1 -0
  159. package/src/node/Hash.ts +43 -6
  160. package/src/node/_test/Engine.test-d.ts +1 -0
  161. package/src/node/_test/Engine.test.ts +2 -0
  162. package/src/node/_test/Hash.test-d.ts +10 -0
  163. package/src/node/_test/Hash.test.ts +46 -0
  164. package/src/tempo/AuthorizationTempo.ts +6 -6
  165. package/src/tempo/KeyAuthorization.ts +3 -8
  166. package/src/tempo/SignatureEnvelope.ts +8 -8
  167. package/src/version.ts +1 -1
  168. package/src/wasm/Engine.ts +1 -0
  169. package/src/wasm/Hash.ts +10 -0
  170. package/src/wasm/_test/Engine.test-d.ts +1 -0
  171. package/src/wasm/_test/Engine.test.ts +5 -0
  172. package/src/wasm/_test/Hash.browser.test.ts +28 -0
  173. package/src/wasm/_test/Hash.test-d.ts +16 -0
  174. package/src/wasm/_test/Hash.test.ts +250 -1
  175. package/src/wasm/internal/blake3.ts +23 -2
  176. package/src/wasm/internal/blake3.wasm.ts +4 -1
  177. package/src/wasm/internal/hash.ts +27 -1
  178. package/src/wasm/internal/hashState.ts +154 -0
  179. package/src/wasm/internal/hashes.ts +56 -15
  180. package/src/wasm/internal/hashes.wasm.ts +15 -3
  181. package/src/webauthn/Authentication.ts +4 -0
  182. package/src/webauthn/Registration.ts +2 -0
  183. package/src/webauthn/Types.ts +32 -2
  184. package/src/webauthn/_test/Authentication.test.ts +123 -1
  185. package/src/webauthn/_test/Registration.test.ts +26 -6
  186. package/src/webauthn/_test/WebAuthn.browser.test.ts +28 -0
  187. package/src/webauthn/internal/utils.ts +41 -8
package/dist/core/Rlp.js CHANGED
@@ -105,6 +105,40 @@ export function readList(cursor, length, to, depth = 0) {
105
105
  });
106
106
  return value;
107
107
  }
108
+ /**
109
+ * Encodes a value as Recursive-Length Prefix (RLP) and writes the encoded bytes
110
+ * through a synchronous callback without allocating the complete encoding.
111
+ *
112
+ * Ox validates the complete input before the first write. If the callback
113
+ * throws, the error propagates and earlier callback side effects remain.
114
+ *
115
+ * Ox does not mutate a chunk after the callback returns. A chunk may alias a
116
+ * byte-array leaf from the encoded value. The callback must not mutate the
117
+ * chunk before `encodeTo` returns.
118
+ *
119
+ * @example
120
+ * ```ts twoslash
121
+ * import { Bytes, Rlp } from 'ox'
122
+ *
123
+ * const chunks: Uint8Array[] = []
124
+ * Rlp.encodeTo(['0x01', '0x0203'], (chunk) => {
125
+ * chunks.push(chunk)
126
+ * })
127
+ *
128
+ * const encoded = Bytes.concat(...chunks)
129
+ * // @log: Uint8Array([196, 1, 130, 2, 3])
130
+ * ```
131
+ *
132
+ * @param value - The bytes or Hex value, or nested list of values, to encode.
133
+ * @param write - The synchronous callback for encoded chunks.
134
+ * @returns Nothing.
135
+ */
136
+ export function encodeTo(value, write) {
137
+ const snapshot = snapshotValue(value);
138
+ const ctx = { lengths: [], cursor: 0 };
139
+ measure(snapshot, ctx);
140
+ writeEncodedTo(write, snapshot, { lengths: ctx.lengths, cursor: 0 });
141
+ }
108
142
  /**
109
143
  * Encodes a {@link ox#Bytes.Bytes} or {@link ox#Hex.Hex} value into a Recursive-Length Prefix (RLP) value.
110
144
  *
@@ -222,6 +256,23 @@ function getSizeOfLength(length) {
222
256
  return 4;
223
257
  throw new Errors.BaseError('Length is too large.');
224
258
  }
259
+ /**
260
+ * Validates Hex leaves and copies list structure before the callback can mutate
261
+ * the input during encoding. Byte leaves remain zero-copy.
262
+ *
263
+ * @internal
264
+ */
265
+ function snapshotValue(value) {
266
+ if (Array.isArray(value)) {
267
+ const snapshot = [];
268
+ for (let i = 0; i < value.length; i++)
269
+ snapshot.push(snapshotValue(value[i]));
270
+ return snapshot;
271
+ }
272
+ if (typeof value === 'string')
273
+ validateHexLeaf(value);
274
+ return value;
275
+ }
225
276
  /**
226
277
  * Walks `value` once, caches each list's `bodyLength` into `ctx.lengths`,
227
278
  * and returns the total encoded byte length. Allocates nothing per node
@@ -304,6 +355,101 @@ function writeEncoded(bytes, offset, value, ctx) {
304
355
  return writeHexLeaf(bytes, offset, value);
305
356
  return writeBytesLeaf(bytes, offset, value);
306
357
  }
358
+ const writeChunkSize = 16_384;
359
+ /**
360
+ * Writes an RLP value using list lengths cached by `measure`.
361
+ *
362
+ * @internal
363
+ */
364
+ function writeEncodedTo(write, value, ctx) {
365
+ if (Array.isArray(value)) {
366
+ write(encodePrefix(ctx.lengths[ctx.cursor++], 0xc0));
367
+ for (let i = 0; i < value.length; i++)
368
+ writeEncodedTo(write, value[i], ctx);
369
+ return;
370
+ }
371
+ if (typeof value === 'string') {
372
+ writeHexLeafTo(write, value);
373
+ return;
374
+ }
375
+ writeBytesLeafTo(write, value);
376
+ }
377
+ /**
378
+ * Writes a Hex leaf in bounded chunks. `snapshotValue` validated every nibble
379
+ * before this function can run.
380
+ *
381
+ * @internal
382
+ */
383
+ function writeHexLeafTo(write, hex) {
384
+ const byteLength = (hex.length - 1) >> 1;
385
+ if (byteLength === 1 && readHexByte(hex, 0) < 0x80) {
386
+ write(Uint8Array.of(readHexByte(hex, 0)));
387
+ return;
388
+ }
389
+ write(encodePrefix(byteLength, 0x80));
390
+ for (let offset = 0; offset < byteLength; offset += writeChunkSize) {
391
+ const length = Math.min(writeChunkSize, byteLength - offset);
392
+ const chunk = new Uint8Array(length);
393
+ for (let i = 0; i < length; i++)
394
+ chunk[i] = readHexByte(hex, offset + i);
395
+ write(chunk);
396
+ }
397
+ }
398
+ /**
399
+ * Writes a byte leaf without copying its body.
400
+ *
401
+ * @internal
402
+ */
403
+ function writeBytesLeafTo(write, leaf) {
404
+ const length = leaf.length;
405
+ if (length === 1 && leaf[0] < 0x80) {
406
+ write(leaf);
407
+ return;
408
+ }
409
+ write(encodePrefix(length, 0x80));
410
+ if (length > 0)
411
+ write(leaf);
412
+ }
413
+ /**
414
+ * Encodes a string or list length prefix.
415
+ *
416
+ * @internal
417
+ */
418
+ function encodePrefix(length, offset) {
419
+ if (length <= 55)
420
+ return Uint8Array.of(offset + length);
421
+ const size = getSizeOfLength(length);
422
+ const prefix = new Uint8Array(size + 1);
423
+ prefix[0] = offset + 55 + size;
424
+ writeBigEndian(prefix, 1, length, size);
425
+ return prefix;
426
+ }
427
+ /**
428
+ * Reads one byte from an odd- or even-nibble Hex value.
429
+ *
430
+ * @internal
431
+ */
432
+ function readHexByte(hex, index) {
433
+ const odd = (hex.length & 1) === 1;
434
+ if (odd && index === 0)
435
+ return internal_bytes.charCodeToBase16(hex.charCodeAt(2));
436
+ const nibble = odd ? index * 2 - 1 : index * 2;
437
+ const high = internal_bytes.charCodeToBase16(hex.charCodeAt(2 + nibble));
438
+ const low = internal_bytes.charCodeToBase16(hex.charCodeAt(3 + nibble));
439
+ return (high << 4) | low;
440
+ }
441
+ /**
442
+ * Validates a Hex leaf while preserving RLP's odd-nibble left-padding.
443
+ *
444
+ * @internal
445
+ */
446
+ function validateHexLeaf(hex) {
447
+ if (hex.length < 2 || hex.charCodeAt(0) !== 48 || hex.charCodeAt(1) !== 120)
448
+ throw invalidNibble(hex);
449
+ for (let i = 2; i < hex.length; i++)
450
+ if (internal_bytes.charCodeToBase16(hex.charCodeAt(i)) === undefined)
451
+ throw invalidNibble(hex);
452
+ }
307
453
  /**
308
454
  * Hex-leaf fast path: writes the RLP encoding of a hex string directly into
309
455
  * `bytes` by nibble-decoding the source hex chars into the destination
@@ -1 +1 @@
1
- {"version":3,"file":"Rlp.js","sourceRoot":"","sources":["../../src/core/Rlp.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Rlp.js","sourceRoot":"","sources":["../../src/core/Rlp.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  import * as Address from './Address.js';
2
2
  import * as Bytes from './Bytes.js';
3
- import type * as Errors from './Errors.js';
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 type { OneOf } from './internal/types.js';
6
7
  import * as PublicKey from './PublicKey.js';
@@ -35,6 +36,38 @@ export declare namespace createKeyPair {
35
36
  };
36
37
  type ErrorType = Hex.fromBytes.ErrorType | PublicKey.from.ErrorType | Errors.GlobalErrorType;
37
38
  }
39
+ /**
40
+ * Derives a valid secp256k1 private key from a 32-byte WebAuthn PRF output.
41
+ *
42
+ * The permanent derivation contract uses the PRF output as the HMAC-SHA256
43
+ * key. Its message is the UTF-8 bytes of `ox.secp256k1.fromPrf.v1` followed by
44
+ * a 32-bit big-endian counter starting at zero. Invalid scalars are skipped.
45
+ *
46
+ * @example
47
+ * ```ts twoslash
48
+ * import { Secp256k1 } from 'ox'
49
+ *
50
+ * const privateKey = Secp256k1.fromPrf(
51
+ * '0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f'
52
+ * )
53
+ * ```
54
+ *
55
+ * @param value - A 32-byte WebAuthn PRF output.
56
+ * @param options - Options.
57
+ * @returns A valid secp256k1 private key.
58
+ */
59
+ export declare function fromPrf<as extends 'Hex' | 'Bytes' = 'Hex'>(value: Hex.Hex | Bytes.Bytes, options?: fromPrf.Options<as>): fromPrf.ReturnType<as>;
60
+ export declare namespace fromPrf {
61
+ type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
62
+ /**
63
+ * Format of the returned private key.
64
+ * @default 'Hex'
65
+ */
66
+ as?: as | 'Hex' | 'Bytes' | undefined;
67
+ };
68
+ type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
69
+ type ErrorType = Bytes.concat.ErrorType | Bytes.from.ErrorType | Bytes.fromNumber.ErrorType | Hash.hmac256.ErrorType | Hex.fromBytes.ErrorType | InvalidPrfSizeError | Errors.GlobalErrorType;
70
+ }
38
71
  /**
39
72
  * Computes the secp256k1 ECDSA public key from a provided private key.
40
73
  *
@@ -343,4 +376,16 @@ export declare namespace verify {
343
376
  }>;
344
377
  type ErrorType = Errors.GlobalErrorType;
345
378
  }
379
+ /** Thrown when a WebAuthn PRF output is not 32 bytes. */
380
+ export declare class InvalidPrfSizeError extends Errors.BaseError {
381
+ readonly name = "Secp256k1.InvalidPrfSizeError";
382
+ constructor(options: InvalidPrfSizeError.Options);
383
+ }
384
+ export declare namespace InvalidPrfSizeError {
385
+ /** Options for {@link ox#Secp256k1.InvalidPrfSizeError}. */
386
+ type Options = {
387
+ /** Received PRF output size. */
388
+ size: number;
389
+ };
390
+ }
346
391
  //# sourceMappingURL=Secp256k1.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Secp256k1.d.ts","sourceRoot":"","sources":["../../src/core/Secp256k1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Secp256k1.d.ts","sourceRoot":"","sources":["../../src/core/Secp256k1.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,8 @@
1
1
  import { secp256k1 } from '@noble/curves/secp256k1.js';
2
2
  import * as Address from './Address.js';
3
3
  import * as Bytes from './Bytes.js';
4
+ import * as Errors from './Errors.js';
5
+ import * as Hash from './Hash.js';
4
6
  import * as Hex from './Hex.js';
5
7
  import { formatPublicKey, formatSignature, normalizePublicKey, normalizeSignature, } from './internal/cryptoIo.js';
6
8
  import * as engine from './internal/secp256k1.js';
@@ -31,6 +33,44 @@ export function createKeyPair(options = {}) {
31
33
  publicKey,
32
34
  };
33
35
  }
36
+ /**
37
+ * Derives a valid secp256k1 private key from a 32-byte WebAuthn PRF output.
38
+ *
39
+ * The permanent derivation contract uses the PRF output as the HMAC-SHA256
40
+ * key. Its message is the UTF-8 bytes of `ox.secp256k1.fromPrf.v1` followed by
41
+ * a 32-bit big-endian counter starting at zero. Invalid scalars are skipped.
42
+ *
43
+ * @example
44
+ * ```ts twoslash
45
+ * import { Secp256k1 } from 'ox'
46
+ *
47
+ * const privateKey = Secp256k1.fromPrf(
48
+ * '0x000102030405060708090a0b0c0d0e0f101112131415161718191a1b1c1d1e1f'
49
+ * )
50
+ * ```
51
+ *
52
+ * @param value - A 32-byte WebAuthn PRF output.
53
+ * @param options - Options.
54
+ * @returns A valid secp256k1 private key.
55
+ */
56
+ export function fromPrf(value, options = {}) {
57
+ const { as = 'Hex' } = options;
58
+ const bytes = Bytes.from(value);
59
+ if (bytes.length !== 32)
60
+ throw new InvalidPrfSizeError({ size: bytes.length });
61
+ for (let counter = 0;; counter++) {
62
+ const candidate = Hash.hmac256(bytes, Bytes.concat(fromPrfLabel, Bytes.fromNumber(counter, { size: 4 })), { as: 'Bytes' });
63
+ if (noble.utils.isValidSecretKey(candidate)) {
64
+ if (as === 'Hex') {
65
+ const value = Hex.fromBytes(candidate);
66
+ candidate.fill(0);
67
+ return value;
68
+ }
69
+ return candidate;
70
+ }
71
+ candidate.fill(0);
72
+ }
73
+ }
34
74
  /**
35
75
  * Computes the secp256k1 ECDSA public key from a provided private key.
36
76
  *
@@ -234,4 +274,12 @@ export function verify(options) {
234
274
  const sig = normalizeSignature(options.signature);
235
275
  return engine.verify(toCompactBytes(sig), Bytes.from(payload), PublicKey.toBytes(normalizePublicKey(options.publicKey)), { prehash: hash === true });
236
276
  }
277
+ /** Thrown when a WebAuthn PRF output is not 32 bytes. */
278
+ export class InvalidPrfSizeError extends Errors.BaseError {
279
+ name = 'Secp256k1.InvalidPrfSizeError';
280
+ constructor(options) {
281
+ super(`PRF output must be exactly 32 bytes. Received ${options.size} bytes.`);
282
+ }
283
+ }
284
+ const fromPrfLabel = Bytes.fromString('ox.secp256k1.fromPrf.v1');
237
285
  //# sourceMappingURL=Secp256k1.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Secp256k1.js","sourceRoot":"","sources":["../../src/core/Secp256k1.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Secp256k1.js","sourceRoot":"","sources":["../../src/core/Secp256k1.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,224 @@
1
+ import * as Bytes from './Bytes.js';
2
+ import * as Errors from './Errors.js';
3
+ import * as Hex from './Hex.js';
4
+ import type { UnionOmit } from './internal/types.js';
5
+ import * as Authentication from '../webauthn/Authentication.js';
6
+ import type * as Credential from '../webauthn/Credential.js';
7
+ import * as Registration from '../webauthn/Registration.js';
8
+ import type * as Types from '../webauthn/Types.js';
9
+ export * from './WebAuthnP256.js';
10
+ /** Configuration for evaluating a WebAuthn credential-bound PRF. */
11
+ export type Prf = true | {
12
+ /**
13
+ * Application-owned PRF input.
14
+ *
15
+ * Use the same input to reproduce an output. Store unpredictable inputs
16
+ * with the credential metadata.
17
+ */
18
+ input: Bytes.Bytes;
19
+ };
20
+ /**
21
+ * Creates a WebAuthn credential and optionally returns its credential-bound
22
+ * PRF output.
23
+ *
24
+ * @example
25
+ * ```ts twoslash
26
+ * import { Secp256k1, WebAuthn } from 'ox'
27
+ *
28
+ * const credential = await WebAuthn.createCredential({
29
+ * name: 'Example',
30
+ * prf: true
31
+ * })
32
+ * const privateKey = Secp256k1.fromPrf(credential.prf)
33
+ * ```
34
+ *
35
+ * `prf: true` uses the stable input `ox.webauthn.prf.v1`. Pass
36
+ * `{ input }` to use an application-owned input instead.
37
+ *
38
+ * When credential creation enables PRF but does not return an output, this
39
+ * function performs a follow-up assertion. The user may be prompted twice.
40
+ *
41
+ * If PRF evaluation fails after registration, the thrown error retains the
42
+ * created credential on its `credential` property.
43
+ *
44
+ * :::warning
45
+ *
46
+ * PRF output is secret application-held key material. Native
47
+ * `credential.raw.toJSON()` output includes extension results, so do not
48
+ * serialize or send the raw credential.
49
+ *
50
+ * PRF-derived keys are software keys. Code on any origin allowed to use the
51
+ * same RP ID can request the same output after user verification.
52
+ *
53
+ * :::
54
+ *
55
+ * @param options - Credential creation and PRF options.
56
+ * @returns The credential, with a copied PRF output when requested.
57
+ */
58
+ export declare function createCredential<const options extends createCredential.Options | createCredential.PrfOptions>(options: options): Promise<createCredential.ReturnType<options>>;
59
+ export declare namespace createCredential {
60
+ /** Options for ordinary WebAuthn P256 credential creation. */
61
+ type Options = Registration.create.Options & {
62
+ /** Reserved for credential creation with PRF output. */
63
+ prf?: never;
64
+ };
65
+ /** Options for WebAuthn credential creation with required PRF output. */
66
+ type PrfOptions = UnionOmit<Registration.getOptions.Options, 'authenticatorSelection' | 'challenge' | 'extensions'> & {
67
+ /**
68
+ * Criteria used to select an authenticator. User verification is always required.
69
+ */
70
+ authenticatorSelection?: Omit<NonNullable<Registration.getOptions.Options['authenticatorSelection']>, 'userVerification'> | undefined;
71
+ /**
72
+ * Cryptographic challenge. Defaults to a random 32-byte value.
73
+ *
74
+ * Supply and verify a server-generated challenge when registration is
75
+ * also used to authenticate a user to a server.
76
+ */
77
+ challenge?: Registration.getOptions.Options['challenge'] | undefined;
78
+ /** Function that creates the WebAuthn credential. */
79
+ createFn?: ((options?: Types.CredentialCreationOptions) => Promise<Types.Credential | null>) | undefined;
80
+ /** Additional WebAuthn extensions. The `prf` extension is managed by this function. */
81
+ extensions?: Omit<Types.AuthenticationExtensionsClientInputs, 'prf'> | undefined;
82
+ /** Function used for a follow-up PRF assertion when creation does not return an output. */
83
+ getFn?: ((options?: Types.CredentialRequestOptions) => Promise<Types.Credential | null>) | undefined;
84
+ /** Credential-bound PRF configuration. */
85
+ prf: Prf;
86
+ /** Raw credential options cannot be combined with managed PRF evaluation. */
87
+ publicKey?: never;
88
+ };
89
+ /** Created WebAuthn credential with its credential-bound PRF output. */
90
+ type PrfReturnType = Credential.Credential & {
91
+ /** Copied 32-byte credential-bound PRF output. */
92
+ prf: Bytes.Bytes;
93
+ };
94
+ /** Return type for a WebAuthn credential creation request. */
95
+ type ReturnType<options extends Options | PrfOptions> = options extends PrfOptions ? PrfReturnType : Credential.Credential;
96
+ type ErrorType = InvalidExtensionError | InvalidOptionsError | InvalidPrfOutputError | PrfEvaluationFailedError | PrfNotSupportedError | Registration.create.ErrorType | Errors.GlobalErrorType;
97
+ }
98
+ /**
99
+ * Requests a WebAuthn credential and returns its credential-bound PRF output.
100
+ *
101
+ * @example
102
+ * ```ts twoslash
103
+ * import { Secp256k1, WebAuthn } from 'ox'
104
+ *
105
+ * const { prf } = await WebAuthn.getCredential({
106
+ * credentialId: 'oZ48...',
107
+ * prf: true
108
+ * })
109
+ * const privateKey = Secp256k1.fromPrf(prf)
110
+ * ```
111
+ *
112
+ * `prf: true` uses the stable input `ox.webauthn.prf.v1`. Pass
113
+ * `{ input }` to use an application-owned input instead.
114
+ *
115
+ * When more than one credential can be selected, check `result.id`
116
+ * before using the PRF output.
117
+ *
118
+ * :::warning
119
+ *
120
+ * PRF output is secret application-held key material. Native
121
+ * `response.raw.toJSON()` output includes extension results, so do not
122
+ * serialize or send the raw response.
123
+ *
124
+ * :::
125
+ *
126
+ * @param options - Credential request and PRF options.
127
+ * @returns The requested credential and a copied 32-byte PRF output.
128
+ */
129
+ export declare function getCredential(options: getCredential.Options): Promise<getCredential.ReturnType>;
130
+ export declare namespace getCredential {
131
+ type Options = UnionOmit<Authentication.getOptions.Options, 'challenge' | 'extensions' | 'userVerification'> & {
132
+ /**
133
+ * Challenge to sign. Defaults to a random 32-byte value.
134
+ *
135
+ * Supply and verify a server-generated challenge when the assertion is
136
+ * also used to authenticate a user to a server.
137
+ */
138
+ challenge?: Hex.Hex | undefined;
139
+ /** Additional WebAuthn extensions. The `prf` extension is managed by this function. */
140
+ extensions?: Omit<Types.AuthenticationExtensionsClientInputs, 'prf'> | undefined;
141
+ /** Function that requests the WebAuthn credential. */
142
+ getFn?: ((options?: Types.CredentialRequestOptions) => Promise<Types.Credential | null>) | undefined;
143
+ /** Credential-bound PRF configuration. */
144
+ prf: Prf;
145
+ /** Raw credential options cannot be combined with managed PRF evaluation. */
146
+ publicKey?: never;
147
+ };
148
+ /** Result from a WebAuthn credential request. */
149
+ type Response = {
150
+ /** Credential identifier. */
151
+ id: string;
152
+ /** Native WebAuthn credential. */
153
+ raw: Types.PublicKeyCredential;
154
+ };
155
+ type ReturnType = Response & {
156
+ /** Copied 32-byte credential-bound PRF output. */
157
+ prf: Bytes.Bytes;
158
+ };
159
+ type ErrorType = Authentication.getOptions.ErrorType | GetCredentialFailedError | InvalidExtensionError | InvalidOptionsError | InvalidPrfOutputError | PrfEvaluationFailedError | PrfUnavailableError | Errors.GlobalErrorType;
160
+ }
161
+ type PrfResultContext = {
162
+ credential?: Credential.Credential | undefined;
163
+ response?: getCredential.Response | undefined;
164
+ };
165
+ /** Thrown when a caller supplies the managed `prf` extension. */
166
+ export declare class InvalidExtensionError extends Errors.BaseError {
167
+ readonly name = "WebAuthn.InvalidExtensionError";
168
+ constructor();
169
+ }
170
+ /** Thrown when raw credential options are combined with managed PRF evaluation. */
171
+ export declare class InvalidOptionsError extends Errors.BaseError {
172
+ readonly name = "WebAuthn.InvalidOptionsError";
173
+ constructor();
174
+ }
175
+ /** Thrown when a WebAuthn PRF result is not a valid 32-byte output. */
176
+ export declare class InvalidPrfOutputError extends Errors.BaseError {
177
+ /** Credential that returned the invalid PRF output, when created in this operation. */
178
+ readonly credential?: Credential.Credential | undefined;
179
+ /** Authentication response that returned the invalid PRF output, when available. */
180
+ readonly response?: getCredential.Response | undefined;
181
+ readonly name = "WebAuthn.InvalidPrfOutputError";
182
+ constructor({ credential, response, size, }: PrfResultContext & {
183
+ size?: number | undefined;
184
+ });
185
+ }
186
+ /** Thrown when a created credential does not support PRF evaluation. */
187
+ export declare class PrfNotSupportedError extends Errors.BaseError {
188
+ /** Credential that was created before PRF support was determined. */
189
+ readonly credential: Credential.Credential;
190
+ readonly name = "WebAuthn.PrfNotSupportedError";
191
+ constructor({ credential }: {
192
+ credential: Credential.Credential;
193
+ });
194
+ }
195
+ /** Thrown when a credential assertion does not return a PRF output. */
196
+ export declare class PrfUnavailableError extends Errors.BaseError {
197
+ /** Authentication response that did not contain a PRF output. */
198
+ readonly response: getCredential.Response;
199
+ readonly name = "WebAuthn.PrfUnavailableError";
200
+ constructor({ response }: {
201
+ response: getCredential.Response;
202
+ });
203
+ }
204
+ /** Thrown when WebAuthn PRF evaluation fails after a credential ceremony. */
205
+ export declare class PrfEvaluationFailedError extends Errors.BaseError<Error> {
206
+ /** Credential that was created before PRF evaluation failed, when available. */
207
+ readonly credential?: Credential.Credential | undefined;
208
+ /** Authentication response produced before PRF evaluation failed, when available. */
209
+ readonly response?: getCredential.Response | undefined;
210
+ readonly name = "WebAuthn.PrfEvaluationFailedError";
211
+ constructor({ cause, credential, response, }: {
212
+ cause: Error;
213
+ credential?: Credential.Credential | undefined;
214
+ response?: getCredential.Response | undefined;
215
+ });
216
+ }
217
+ /** Thrown when a WebAuthn credential request fails. */
218
+ export declare class GetCredentialFailedError extends Errors.BaseError<Error> {
219
+ readonly name = "WebAuthn.GetCredentialFailedError";
220
+ constructor({ cause }?: {
221
+ cause?: Error | undefined;
222
+ });
223
+ }
224
+ //# sourceMappingURL=WebAuthn.d.ts.map