ox 0.8.0 → 0.8.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 +20 -0
- package/Ed25519/package.json +6 -0
- package/X25519/package.json +6 -0
- package/_cjs/core/Bls.js +10 -0
- package/_cjs/core/Bls.js.map +1 -1
- package/_cjs/core/Ed25519.js +53 -0
- package/_cjs/core/Ed25519.js.map +1 -0
- package/_cjs/core/Keystore.js +65 -5
- package/_cjs/core/Keystore.js.map +1 -1
- package/_cjs/core/P256.js +23 -0
- package/_cjs/core/P256.js.map +1 -1
- package/_cjs/core/Secp256k1.js +20 -0
- package/_cjs/core/Secp256k1.js.map +1 -1
- package/_cjs/core/WebCryptoP256.js +31 -0
- package/_cjs/core/WebCryptoP256.js.map +1 -1
- package/_cjs/core/X25519.js +45 -0
- package/_cjs/core/X25519.js.map +1 -0
- package/_cjs/index.js +4 -2
- package/_cjs/index.js.map +1 -1
- package/_cjs/version.js +1 -1
- package/_esm/core/Bls.js +109 -0
- package/_esm/core/Bls.js.map +1 -1
- package/_esm/core/Ed25519.js +121 -0
- package/_esm/core/Ed25519.js.map +1 -0
- package/_esm/core/Keystore.js +107 -9
- package/_esm/core/Keystore.js.map +1 -1
- package/_esm/core/P256.js +54 -2
- package/_esm/core/P256.js.map +1 -1
- package/_esm/core/Secp256k1.js +50 -0
- package/_esm/core/Secp256k1.js.map +1 -1
- package/_esm/core/WebCryptoP256.js +72 -0
- package/_esm/core/WebCryptoP256.js.map +1 -1
- package/_esm/core/X25519.js +97 -0
- package/_esm/core/X25519.js.map +1 -0
- package/_esm/index.js +85 -4
- package/_esm/index.js.map +1 -1
- package/_esm/version.js +1 -1
- package/_types/core/Bls.d.ts +124 -0
- package/_types/core/Bls.d.ts.map +1 -1
- package/_types/core/Ed25519.d.ts +156 -0
- package/_types/core/Ed25519.d.ts.map +1 -0
- package/_types/core/Keystore.d.ts +66 -8
- package/_types/core/Keystore.d.ts.map +1 -1
- package/_types/core/P256.d.ts +68 -2
- package/_types/core/P256.d.ts.map +1 -1
- package/_types/core/Secp256k1.d.ts +67 -0
- package/_types/core/Secp256k1.d.ts.map +1 -1
- package/_types/core/WebCryptoP256.d.ts +76 -1
- package/_types/core/WebCryptoP256.d.ts.map +1 -1
- package/_types/core/X25519.d.ts +127 -0
- package/_types/core/X25519.d.ts.map +1 -0
- package/_types/index.d.ts +85 -4
- package/_types/index.d.ts.map +1 -1
- package/_types/version.d.ts +1 -1
- package/core/Bls.ts +150 -0
- package/core/Ed25519.ts +237 -0
- package/core/Keystore.ts +141 -12
- package/core/P256.ts +114 -2
- package/core/Secp256k1.ts +110 -0
- package/core/WebCryptoP256.ts +141 -1
- package/core/X25519.ts +202 -0
- package/index.ts +87 -4
- package/package.json +11 -1
- package/version.ts +1 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Ed25519.d.ts","sourceRoot":"","sources":["../../core/Ed25519.ts"],"names":[],"mappings":"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"}
|
|
@@ -54,11 +54,11 @@ export type ScryptDeriveOpts = BaseDeriveOpts<'scrypt', {
|
|
|
54
54
|
* // JSON keystore.
|
|
55
55
|
* const keystore = { crypto: { ... }, id: '...', version: 3 }
|
|
56
56
|
*
|
|
57
|
-
* //
|
|
58
|
-
* const key =
|
|
57
|
+
* // Derive the key using your password.
|
|
58
|
+
* const key = Keystore.toKey(keystore, { password: 'hunter2' })
|
|
59
59
|
*
|
|
60
60
|
* // Decrypt the private key.
|
|
61
|
-
* const privateKey =
|
|
61
|
+
* const privateKey = Keystore.decrypt(keystore, key)
|
|
62
62
|
* // @log: "0x..."
|
|
63
63
|
* ```
|
|
64
64
|
*
|
|
@@ -67,7 +67,7 @@ export type ScryptDeriveOpts = BaseDeriveOpts<'scrypt', {
|
|
|
67
67
|
* @param options - Decryption options.
|
|
68
68
|
* @returns Decrypted private key.
|
|
69
69
|
*/
|
|
70
|
-
export declare function decrypt<as extends 'Hex' | 'Bytes' = 'Hex'>(keystore: Keystore, key: Key, options?: decrypt.Options<as>):
|
|
70
|
+
export declare function decrypt<as extends 'Hex' | 'Bytes' = 'Hex'>(keystore: Keystore, key: Key, options?: decrypt.Options<as>): decrypt.ReturnType<as>;
|
|
71
71
|
export declare namespace decrypt {
|
|
72
72
|
type Options<as extends 'Hex' | 'Bytes' = 'Hex' | 'Bytes'> = {
|
|
73
73
|
/** Output format. @default 'Hex' */
|
|
@@ -94,7 +94,7 @@ export declare namespace decrypt {
|
|
|
94
94
|
* const [key, opts] = Keystore.pbkdf2({ password: 'testpassword' })
|
|
95
95
|
*
|
|
96
96
|
* // Encrypt the private key.
|
|
97
|
-
* const encrypted =
|
|
97
|
+
* const encrypted = Keystore.encrypt(privateKey, key, opts)
|
|
98
98
|
* // @log: {
|
|
99
99
|
* // @log: "crypto": {
|
|
100
100
|
* // @log: "cipher": "aes-128-ctr",
|
|
@@ -121,7 +121,7 @@ export declare namespace decrypt {
|
|
|
121
121
|
* @param options - Encryption options.
|
|
122
122
|
* @returns Encrypted keystore.
|
|
123
123
|
*/
|
|
124
|
-
export declare function encrypt(privateKey: Bytes.Bytes | Hex.Hex, key: Key, options: encrypt.Options):
|
|
124
|
+
export declare function encrypt(privateKey: Bytes.Bytes | Hex.Hex, key: Key, options: encrypt.Options): Keystore;
|
|
125
125
|
export declare namespace encrypt {
|
|
126
126
|
type Options = DeriveOpts & {
|
|
127
127
|
/** UUID. */
|
|
@@ -211,8 +211,8 @@ export declare function scrypt(options: scrypt.Options): [() => `0x${string}`, {
|
|
|
211
211
|
readonly kdfparams: {
|
|
212
212
|
readonly dklen: 32;
|
|
213
213
|
readonly n: number;
|
|
214
|
-
readonly p:
|
|
215
|
-
readonly r:
|
|
214
|
+
readonly p: number;
|
|
215
|
+
readonly r: number;
|
|
216
216
|
readonly salt: string;
|
|
217
217
|
};
|
|
218
218
|
readonly kdf: "scrypt";
|
|
@@ -225,6 +225,10 @@ export declare namespace scrypt {
|
|
|
225
225
|
iv?: Bytes.Bytes | Hex.Hex | undefined;
|
|
226
226
|
/** Cost factor. @default 262_144 */
|
|
227
227
|
n?: number | undefined;
|
|
228
|
+
/** Parallelization factor. @default 8 */
|
|
229
|
+
p?: number | undefined;
|
|
230
|
+
/** Block size. @default 1 */
|
|
231
|
+
r?: number | undefined;
|
|
228
232
|
/** Password to derive key from. */
|
|
229
233
|
password: string;
|
|
230
234
|
/** Salt to use for key derivation. @default `Bytes.random(32)` */
|
|
@@ -260,5 +264,59 @@ export declare function scryptAsync(options: scrypt.Options): Promise<[() => `0x
|
|
|
260
264
|
export declare namespace scryptAsync {
|
|
261
265
|
type Options = scrypt.Options;
|
|
262
266
|
}
|
|
267
|
+
/**
|
|
268
|
+
* Extracts a Key from a JSON Keystore to use for decryption.
|
|
269
|
+
*
|
|
270
|
+
* @example
|
|
271
|
+
* ```ts twoslash
|
|
272
|
+
* // @noErrors
|
|
273
|
+
* import { Keystore } from 'ox'
|
|
274
|
+
*
|
|
275
|
+
* // JSON keystore.
|
|
276
|
+
* const keystore = { crypto: { ... }, id: '...', version: 3 }
|
|
277
|
+
*
|
|
278
|
+
* const key = Keystore.toKey(keystore, { password: 'hunter2' }) // [!code focus]
|
|
279
|
+
*
|
|
280
|
+
* const decrypted = Keystore.decrypt(keystore, key)
|
|
281
|
+
* ```
|
|
282
|
+
*
|
|
283
|
+
* @param keystore - JSON Keystore
|
|
284
|
+
* @param options - Options
|
|
285
|
+
* @returns Key
|
|
286
|
+
*/
|
|
287
|
+
export declare function toKey(keystore: Keystore, options: toKey.Options): Key;
|
|
288
|
+
export declare namespace toKey {
|
|
289
|
+
type Options = {
|
|
290
|
+
/** Password to derive key from. */
|
|
291
|
+
password: string;
|
|
292
|
+
};
|
|
293
|
+
}
|
|
294
|
+
/**
|
|
295
|
+
* Extracts a Key asynchronously from a JSON Keystore to use for decryption.
|
|
296
|
+
*
|
|
297
|
+
* @example
|
|
298
|
+
* ```ts twoslash
|
|
299
|
+
* // @noErrors
|
|
300
|
+
* import { Keystore } from 'ox'
|
|
301
|
+
*
|
|
302
|
+
* // JSON keystore.
|
|
303
|
+
* const keystore = { crypto: { ... }, id: '...', version: 3 }
|
|
304
|
+
*
|
|
305
|
+
* const key = await Keystore.toKeyAsync(keystore, { password: 'hunter2' }) // [!code focus]
|
|
306
|
+
*
|
|
307
|
+
* const decrypted = Keystore.decrypt(keystore, key)
|
|
308
|
+
* ```
|
|
309
|
+
*
|
|
310
|
+
* @param keystore - JSON Keystore
|
|
311
|
+
* @param options - Options
|
|
312
|
+
* @returns Key
|
|
313
|
+
*/
|
|
314
|
+
export declare function toKeyAsync(keystore: Keystore, options: toKeyAsync.Options): Promise<Key>;
|
|
315
|
+
export declare namespace toKeyAsync {
|
|
316
|
+
type Options = {
|
|
317
|
+
/** Password to derive key from. */
|
|
318
|
+
password: string;
|
|
319
|
+
};
|
|
320
|
+
}
|
|
263
321
|
export {};
|
|
264
322
|
//# sourceMappingURL=Keystore.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Keystore.d.ts","sourceRoot":"","sources":["../../core/Keystore.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AAGnC,OAAO,KAAK,KAAK,GAAG,MAAM,UAAU,CAAA;
|
|
1
|
+
{"version":3,"file":"Keystore.d.ts","sourceRoot":"","sources":["../../core/Keystore.ts"],"names":[],"mappings":"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"}
|
package/_types/core/P256.d.ts
CHANGED
|
@@ -5,6 +5,34 @@ import * as PublicKey from './PublicKey.js';
|
|
|
5
5
|
import type * as Signature from './Signature.js';
|
|
6
6
|
/** Re-export of noble/curves P256 utilities. */
|
|
7
7
|
export declare const noble: import("@noble/curves/_shortw_utils").CurveFnWithCreate;
|
|
8
|
+
/**
|
|
9
|
+
* Creates a new P256 ECDSA key pair consisting of a private key and its corresponding public key.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```ts twoslash
|
|
13
|
+
* import { P256 } from 'ox'
|
|
14
|
+
*
|
|
15
|
+
* const { privateKey, publicKey } = P256.createKeyPair()
|
|
16
|
+
* ```
|
|
17
|
+
*
|
|
18
|
+
* @param options - The options to generate the key pair.
|
|
19
|
+
* @returns The generated key pair containing both private and public keys.
|
|
20
|
+
*/
|
|
21
|
+
export declare function createKeyPair<as extends 'Hex' | 'Bytes' = 'Hex'>(options?: createKeyPair.Options<as>): createKeyPair.ReturnType<as>;
|
|
22
|
+
export declare namespace createKeyPair {
|
|
23
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
24
|
+
/**
|
|
25
|
+
* Format of the returned private key.
|
|
26
|
+
* @default 'Hex'
|
|
27
|
+
*/
|
|
28
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
29
|
+
};
|
|
30
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = {
|
|
31
|
+
privateKey: (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
32
|
+
publicKey: PublicKey.PublicKey;
|
|
33
|
+
};
|
|
34
|
+
type ErrorType = Hex.fromBytes.ErrorType | PublicKey.from.ErrorType | Errors.GlobalErrorType;
|
|
35
|
+
}
|
|
8
36
|
/**
|
|
9
37
|
* Computes the P256 ECDSA public key from a provided private key.
|
|
10
38
|
*
|
|
@@ -28,6 +56,45 @@ export declare namespace getPublicKey {
|
|
|
28
56
|
};
|
|
29
57
|
type ErrorType = Errors.GlobalErrorType;
|
|
30
58
|
}
|
|
59
|
+
/**
|
|
60
|
+
* Computes a shared secret using ECDH (Elliptic Curve Diffie-Hellman) between a private key and a public key.
|
|
61
|
+
*
|
|
62
|
+
* @example
|
|
63
|
+
* ```ts twoslash
|
|
64
|
+
* import { P256 } from 'ox'
|
|
65
|
+
*
|
|
66
|
+
* const { privateKey: privateKeyA } = P256.createKeyPair()
|
|
67
|
+
* const { publicKey: publicKeyB } = P256.createKeyPair()
|
|
68
|
+
*
|
|
69
|
+
* const sharedSecret = P256.getSharedSecret({
|
|
70
|
+
* privateKey: privateKeyA,
|
|
71
|
+
* publicKey: publicKeyB
|
|
72
|
+
* })
|
|
73
|
+
* ```
|
|
74
|
+
*
|
|
75
|
+
* @param options - The options to compute the shared secret.
|
|
76
|
+
* @returns The computed shared secret.
|
|
77
|
+
*/
|
|
78
|
+
export declare function getSharedSecret<as extends 'Hex' | 'Bytes' = 'Hex'>(options: getSharedSecret.Options<as>): getSharedSecret.ReturnType<as>;
|
|
79
|
+
export declare namespace getSharedSecret {
|
|
80
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
81
|
+
/**
|
|
82
|
+
* Format of the returned shared secret.
|
|
83
|
+
* @default 'Hex'
|
|
84
|
+
*/
|
|
85
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
86
|
+
/**
|
|
87
|
+
* Private key to use for the shared secret computation.
|
|
88
|
+
*/
|
|
89
|
+
privateKey: Hex.Hex | Bytes.Bytes;
|
|
90
|
+
/**
|
|
91
|
+
* Public key to use for the shared secret computation.
|
|
92
|
+
*/
|
|
93
|
+
publicKey: PublicKey.PublicKey<boolean>;
|
|
94
|
+
};
|
|
95
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
96
|
+
type ErrorType = Hex.fromBytes.ErrorType | PublicKey.toHex.ErrorType | Errors.GlobalErrorType;
|
|
97
|
+
}
|
|
31
98
|
/**
|
|
32
99
|
* Generates a random P256 ECDSA private key.
|
|
33
100
|
*
|
|
@@ -128,8 +195,7 @@ export declare namespace sign {
|
|
|
128
195
|
* ```ts twoslash
|
|
129
196
|
* import { P256 } from 'ox'
|
|
130
197
|
*
|
|
131
|
-
* const privateKey = P256.
|
|
132
|
-
* const publicKey = P256.getPublicKey({ privateKey })
|
|
198
|
+
* const { privateKey, publicKey } = P256.createKeyPair()
|
|
133
199
|
* const signature = P256.sign({ payload: '0xdeadbeef', privateKey })
|
|
134
200
|
*
|
|
135
201
|
* const verified = P256.verify({ // [!code focus]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"P256.d.ts","sourceRoot":"","sources":["../../core/P256.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"P256.d.ts","sourceRoot":"","sources":["../../core/P256.ts"],"names":[],"mappings":"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"}
|
|
@@ -7,6 +7,34 @@ import type * as Signature from './Signature.js';
|
|
|
7
7
|
import type { OneOf } from './internal/types.js';
|
|
8
8
|
/** Re-export of noble/curves secp256k1 utilities. */
|
|
9
9
|
export declare const noble: import("@noble/curves/_shortw_utils").CurveFnWithCreate;
|
|
10
|
+
/**
|
|
11
|
+
* Creates a new secp256k1 ECDSA key pair consisting of a private key and its corresponding public key.
|
|
12
|
+
*
|
|
13
|
+
* @example
|
|
14
|
+
* ```ts twoslash
|
|
15
|
+
* import { Secp256k1 } from 'ox'
|
|
16
|
+
*
|
|
17
|
+
* const { privateKey, publicKey } = Secp256k1.createKeyPair()
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @param options - The options to generate the key pair.
|
|
21
|
+
* @returns The generated key pair containing both private and public keys.
|
|
22
|
+
*/
|
|
23
|
+
export declare function createKeyPair<as extends 'Hex' | 'Bytes' = 'Hex'>(options?: createKeyPair.Options<as>): createKeyPair.ReturnType<as>;
|
|
24
|
+
export declare namespace createKeyPair {
|
|
25
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
26
|
+
/**
|
|
27
|
+
* Format of the returned private key.
|
|
28
|
+
* @default 'Hex'
|
|
29
|
+
*/
|
|
30
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
31
|
+
};
|
|
32
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = {
|
|
33
|
+
privateKey: (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
34
|
+
publicKey: PublicKey.PublicKey;
|
|
35
|
+
};
|
|
36
|
+
type ErrorType = Hex.fromBytes.ErrorType | PublicKey.from.ErrorType | Errors.GlobalErrorType;
|
|
37
|
+
}
|
|
10
38
|
/**
|
|
11
39
|
* Computes the secp256k1 ECDSA public key from a provided private key.
|
|
12
40
|
*
|
|
@@ -30,6 +58,45 @@ export declare namespace getPublicKey {
|
|
|
30
58
|
};
|
|
31
59
|
type ErrorType = Hex.from.ErrorType | PublicKey.from.ErrorType | Errors.GlobalErrorType;
|
|
32
60
|
}
|
|
61
|
+
/**
|
|
62
|
+
* Computes a shared secret using ECDH (Elliptic Curve Diffie-Hellman) between a private key and a public key.
|
|
63
|
+
*
|
|
64
|
+
* @example
|
|
65
|
+
* ```ts twoslash
|
|
66
|
+
* import { Secp256k1 } from 'ox'
|
|
67
|
+
*
|
|
68
|
+
* const { privateKey: privateKeyA } = Secp256k1.createKeyPair()
|
|
69
|
+
* const { publicKey: publicKeyB } = Secp256k1.createKeyPair()
|
|
70
|
+
*
|
|
71
|
+
* const sharedSecret = Secp256k1.getSharedSecret({
|
|
72
|
+
* privateKey: privateKeyA,
|
|
73
|
+
* publicKey: publicKeyB
|
|
74
|
+
* })
|
|
75
|
+
* ```
|
|
76
|
+
*
|
|
77
|
+
* @param options - The options to compute the shared secret.
|
|
78
|
+
* @returns The computed shared secret.
|
|
79
|
+
*/
|
|
80
|
+
export declare function getSharedSecret<as extends 'Hex' | 'Bytes' = 'Hex'>(options: getSharedSecret.Options<as>): getSharedSecret.ReturnType<as>;
|
|
81
|
+
export declare namespace getSharedSecret {
|
|
82
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
83
|
+
/**
|
|
84
|
+
* Format of the returned shared secret.
|
|
85
|
+
* @default 'Hex'
|
|
86
|
+
*/
|
|
87
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
88
|
+
/**
|
|
89
|
+
* Private key to use for the shared secret computation.
|
|
90
|
+
*/
|
|
91
|
+
privateKey: Hex.Hex | Bytes.Bytes;
|
|
92
|
+
/**
|
|
93
|
+
* Public key to use for the shared secret computation.
|
|
94
|
+
*/
|
|
95
|
+
publicKey: PublicKey.PublicKey<boolean>;
|
|
96
|
+
};
|
|
97
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
98
|
+
type ErrorType = Hex.from.ErrorType | PublicKey.toHex.ErrorType | Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
|
|
99
|
+
}
|
|
33
100
|
/**
|
|
34
101
|
* Generates a random ECDSA private key on the secp256k1 curve.
|
|
35
102
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Secp256k1.d.ts","sourceRoot":"","sources":["../../core/Secp256k1.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Secp256k1.d.ts","sourceRoot":"","sources":["../../core/Secp256k1.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as Bytes from './Bytes.js';
|
|
2
2
|
import type * as Errors from './Errors.js';
|
|
3
|
-
import
|
|
3
|
+
import * as Hex from './Hex.js';
|
|
4
4
|
import * as PublicKey from './PublicKey.js';
|
|
5
5
|
import type * as Signature from './Signature.js';
|
|
6
6
|
import type { Compute } from './internal/types.js';
|
|
@@ -41,6 +41,81 @@ export declare namespace createKeyPair {
|
|
|
41
41
|
}>;
|
|
42
42
|
type ErrorType = PublicKey.from.ErrorType | Errors.GlobalErrorType;
|
|
43
43
|
}
|
|
44
|
+
/**
|
|
45
|
+
* Generates an ECDH P256 key pair for key agreement that includes:
|
|
46
|
+
*
|
|
47
|
+
* - a `privateKey` of type [`CryptoKey`](https://developer.mozilla.org/en-US/docs/Web/API/CryptoKey)
|
|
48
|
+
* - a `publicKey` of type {@link ox#PublicKey.PublicKey}
|
|
49
|
+
*
|
|
50
|
+
* @example
|
|
51
|
+
* ```ts twoslash
|
|
52
|
+
* import { WebCryptoP256 } from 'ox'
|
|
53
|
+
*
|
|
54
|
+
* const { publicKey, privateKey } = await WebCryptoP256.createKeyPairECDH()
|
|
55
|
+
* // @log: {
|
|
56
|
+
* // @log: privateKey: CryptoKey {},
|
|
57
|
+
* // @log: publicKey: {
|
|
58
|
+
* // @log: x: 59295962801117472859457908919941473389380284132224861839820747729565200149877n,
|
|
59
|
+
* // @log: y: 24099691209996290925259367678540227198235484593389470330605641003500238088869n,
|
|
60
|
+
* // @log: prefix: 4,
|
|
61
|
+
* // @log: },
|
|
62
|
+
* // @log: }
|
|
63
|
+
* ```
|
|
64
|
+
*
|
|
65
|
+
* @param options - Options for creating the key pair.
|
|
66
|
+
* @returns The key pair.
|
|
67
|
+
*/
|
|
68
|
+
export declare function createKeyPairECDH(options?: createKeyPairECDH.Options): Promise<createKeyPairECDH.ReturnType>;
|
|
69
|
+
export declare namespace createKeyPairECDH {
|
|
70
|
+
type Options = {
|
|
71
|
+
/** A boolean value indicating whether it will be possible to export the private key using `globalThis.crypto.subtle.exportKey()`. */
|
|
72
|
+
extractable?: boolean | undefined;
|
|
73
|
+
};
|
|
74
|
+
type ReturnType = Compute<{
|
|
75
|
+
privateKey: CryptoKey;
|
|
76
|
+
publicKey: PublicKey.PublicKey;
|
|
77
|
+
}>;
|
|
78
|
+
type ErrorType = PublicKey.from.ErrorType | Errors.GlobalErrorType;
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Computes a shared secret using ECDH (Elliptic Curve Diffie-Hellman) between a private key and a public key using Web Crypto APIs.
|
|
82
|
+
*
|
|
83
|
+
* @example
|
|
84
|
+
* ```ts twoslash
|
|
85
|
+
* import { WebCryptoP256 } from 'ox'
|
|
86
|
+
*
|
|
87
|
+
* const { privateKey: privateKeyA } = await WebCryptoP256.createKeyPairECDH()
|
|
88
|
+
* const { publicKey: publicKeyB } = await WebCryptoP256.createKeyPairECDH()
|
|
89
|
+
*
|
|
90
|
+
* const sharedSecret = await WebCryptoP256.getSharedSecret({
|
|
91
|
+
* privateKey: privateKeyA,
|
|
92
|
+
* publicKey: publicKeyB
|
|
93
|
+
* })
|
|
94
|
+
* ```
|
|
95
|
+
*
|
|
96
|
+
* @param options - The options to compute the shared secret.
|
|
97
|
+
* @returns The computed shared secret.
|
|
98
|
+
*/
|
|
99
|
+
export declare function getSharedSecret<as extends 'Hex' | 'Bytes' = 'Hex'>(options: getSharedSecret.Options<as>): Promise<getSharedSecret.ReturnType<as>>;
|
|
100
|
+
export declare namespace getSharedSecret {
|
|
101
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
102
|
+
/**
|
|
103
|
+
* Format of the returned shared secret.
|
|
104
|
+
* @default 'Hex'
|
|
105
|
+
*/
|
|
106
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
107
|
+
/**
|
|
108
|
+
* Private key to use for the shared secret computation (must be a CryptoKey for ECDH).
|
|
109
|
+
*/
|
|
110
|
+
privateKey: CryptoKey;
|
|
111
|
+
/**
|
|
112
|
+
* Public key to use for the shared secret computation.
|
|
113
|
+
*/
|
|
114
|
+
publicKey: PublicKey.PublicKey<boolean>;
|
|
115
|
+
};
|
|
116
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
117
|
+
type ErrorType = PublicKey.toBytes.ErrorType | Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
|
|
118
|
+
}
|
|
44
119
|
/**
|
|
45
120
|
* Signs a payload with the provided `CryptoKey` private key and returns a P256 signature.
|
|
46
121
|
*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"WebCryptoP256.d.ts","sourceRoot":"","sources":["../../core/WebCryptoP256.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"WebCryptoP256.d.ts","sourceRoot":"","sources":["../../core/WebCryptoP256.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
import * as Bytes from './Bytes.js';
|
|
2
|
+
import type * as Errors from './Errors.js';
|
|
3
|
+
import * as Hex from './Hex.js';
|
|
4
|
+
/** Re-export of noble/curves X25519 utilities. */
|
|
5
|
+
export declare const noble: import("@noble/curves/abstract/montgomery").CurveFn;
|
|
6
|
+
/**
|
|
7
|
+
* Creates a new X25519 key pair consisting of a private key and its corresponding public key.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* ```ts twoslash
|
|
11
|
+
* import { X25519 } from 'ox'
|
|
12
|
+
*
|
|
13
|
+
* const { privateKey, publicKey } = X25519.createKeyPair()
|
|
14
|
+
* ```
|
|
15
|
+
*
|
|
16
|
+
* @param options - The options to generate the key pair.
|
|
17
|
+
* @returns The generated key pair containing both private and public keys.
|
|
18
|
+
*/
|
|
19
|
+
export declare function createKeyPair<as extends 'Hex' | 'Bytes' = 'Hex'>(options?: createKeyPair.Options<as>): createKeyPair.ReturnType<as>;
|
|
20
|
+
export declare namespace createKeyPair {
|
|
21
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
22
|
+
/**
|
|
23
|
+
* Format of the returned private and public keys.
|
|
24
|
+
* @default 'Hex'
|
|
25
|
+
*/
|
|
26
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
27
|
+
};
|
|
28
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = {
|
|
29
|
+
privateKey: (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
30
|
+
publicKey: (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
31
|
+
};
|
|
32
|
+
type ErrorType = Hex.fromBytes.ErrorType | randomPrivateKey.ErrorType | getPublicKey.ErrorType | Errors.GlobalErrorType;
|
|
33
|
+
}
|
|
34
|
+
/**
|
|
35
|
+
* Computes the X25519 public key from a provided private key.
|
|
36
|
+
*
|
|
37
|
+
* @example
|
|
38
|
+
* ```ts twoslash
|
|
39
|
+
* import { X25519 } from 'ox'
|
|
40
|
+
*
|
|
41
|
+
* const publicKey = X25519.getPublicKey({ privateKey: '0x...' })
|
|
42
|
+
* ```
|
|
43
|
+
*
|
|
44
|
+
* @param options - The options to compute the public key.
|
|
45
|
+
* @returns The computed public key.
|
|
46
|
+
*/
|
|
47
|
+
export declare function getPublicKey<as extends 'Hex' | 'Bytes' = 'Hex'>(options: getPublicKey.Options<as>): getPublicKey.ReturnType<as>;
|
|
48
|
+
export declare namespace getPublicKey {
|
|
49
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
50
|
+
/**
|
|
51
|
+
* Format of the returned public key.
|
|
52
|
+
* @default 'Hex'
|
|
53
|
+
*/
|
|
54
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
55
|
+
/**
|
|
56
|
+
* Private key to compute the public key from.
|
|
57
|
+
*/
|
|
58
|
+
privateKey: Hex.Hex | Bytes.Bytes;
|
|
59
|
+
};
|
|
60
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
61
|
+
type ErrorType = Bytes.from.ErrorType | Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Computes a shared secret using X25519 elliptic curve Diffie-Hellman between a private key and a public key.
|
|
65
|
+
*
|
|
66
|
+
* @example
|
|
67
|
+
* ```ts twoslash
|
|
68
|
+
* import { X25519 } from 'ox'
|
|
69
|
+
*
|
|
70
|
+
* const { privateKey: privateKeyA } = X25519.createKeyPair()
|
|
71
|
+
* const { publicKey: publicKeyB } = X25519.createKeyPair()
|
|
72
|
+
*
|
|
73
|
+
* const sharedSecret = X25519.getSharedSecret({
|
|
74
|
+
* privateKey: privateKeyA,
|
|
75
|
+
* publicKey: publicKeyB
|
|
76
|
+
* })
|
|
77
|
+
* ```
|
|
78
|
+
*
|
|
79
|
+
* @param options - The options to compute the shared secret.
|
|
80
|
+
* @returns The computed shared secret.
|
|
81
|
+
*/
|
|
82
|
+
export declare function getSharedSecret<as extends 'Hex' | 'Bytes' = 'Hex'>(options: getSharedSecret.Options<as>): getSharedSecret.ReturnType<as>;
|
|
83
|
+
export declare namespace getSharedSecret {
|
|
84
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
85
|
+
/**
|
|
86
|
+
* Format of the returned shared secret.
|
|
87
|
+
* @default 'Hex'
|
|
88
|
+
*/
|
|
89
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
90
|
+
/**
|
|
91
|
+
* Private key to use for the shared secret computation.
|
|
92
|
+
*/
|
|
93
|
+
privateKey: Hex.Hex | Bytes.Bytes;
|
|
94
|
+
/**
|
|
95
|
+
* Public key to use for the shared secret computation.
|
|
96
|
+
*/
|
|
97
|
+
publicKey: Hex.Hex | Bytes.Bytes;
|
|
98
|
+
};
|
|
99
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
100
|
+
type ErrorType = Bytes.from.ErrorType | Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Generates a random X25519 private key.
|
|
104
|
+
*
|
|
105
|
+
* @example
|
|
106
|
+
* ```ts twoslash
|
|
107
|
+
* import { X25519 } from 'ox'
|
|
108
|
+
*
|
|
109
|
+
* const privateKey = X25519.randomPrivateKey()
|
|
110
|
+
* ```
|
|
111
|
+
*
|
|
112
|
+
* @param options - The options to generate the private key.
|
|
113
|
+
* @returns The generated private key.
|
|
114
|
+
*/
|
|
115
|
+
export declare function randomPrivateKey<as extends 'Hex' | 'Bytes' = 'Hex'>(options?: randomPrivateKey.Options<as>): randomPrivateKey.ReturnType<as>;
|
|
116
|
+
export declare namespace randomPrivateKey {
|
|
117
|
+
type Options<as extends 'Hex' | 'Bytes' = 'Hex'> = {
|
|
118
|
+
/**
|
|
119
|
+
* Format of the returned private key.
|
|
120
|
+
* @default 'Hex'
|
|
121
|
+
*/
|
|
122
|
+
as?: as | 'Hex' | 'Bytes' | undefined;
|
|
123
|
+
};
|
|
124
|
+
type ReturnType<as extends 'Hex' | 'Bytes'> = (as extends 'Bytes' ? Bytes.Bytes : never) | (as extends 'Hex' ? Hex.Hex : never);
|
|
125
|
+
type ErrorType = Hex.fromBytes.ErrorType | Errors.GlobalErrorType;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=X25519.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"X25519.d.ts","sourceRoot":"","sources":["../../core/X25519.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,YAAY,CAAA;AACnC,OAAO,KAAK,KAAK,MAAM,MAAM,aAAa,CAAA;AAC1C,OAAO,KAAK,GAAG,MAAM,UAAU,CAAA;AAE/B,kDAAkD;AAClD,eAAO,MAAM,KAAK,qDAAS,CAAA;AAE3B;;;;;;;;;;;;GAYG;AACH,wBAAgB,aAAa,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,EAC9D,OAAO,GAAE,aAAa,CAAC,OAAO,CAAC,EAAE,CAAM,GACtC,aAAa,CAAC,UAAU,CAAC,EAAE,CAAC,CAS9B;AAED,MAAM,CAAC,OAAO,WAAW,aAAa,CAAC;IACrC,KAAK,OAAO,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI;QACjD;;;WAGG;QACH,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;KACtC,CAAA;IAED,KAAK,UAAU,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,IAAI;QAC5C,UAAU,EACN,CAAC,EAAE,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAC1C,CAAC,EAAE,SAAS,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;QACxC,SAAS,EACL,CAAC,EAAE,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAC1C,CAAC,EAAE,SAAS,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;KACzC,CAAA;IAED,KAAK,SAAS,GACV,GAAG,CAAC,SAAS,CAAC,SAAS,GACvB,gBAAgB,CAAC,SAAS,GAC1B,YAAY,CAAC,SAAS,GACtB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,YAAY,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,EAC7D,OAAO,EAAE,YAAY,CAAC,OAAO,CAAC,EAAE,CAAC,GAChC,YAAY,CAAC,UAAU,CAAC,EAAE,CAAC,CAM7B;AAED,MAAM,CAAC,OAAO,WAAW,YAAY,CAAC;IACpC,KAAK,OAAO,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI;QACjD;;;WAGG;QACH,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;QACrC;;WAEG;QACH,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAA;KAClC,CAAA;IAED,KAAK,UAAU,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,IACtC,CAAC,EAAE,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAC1C,CAAC,EAAE,SAAS,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;IAExC,KAAK,SAAS,GACV,KAAK,CAAC,IAAI,CAAC,SAAS,GACpB,GAAG,CAAC,SAAS,CAAC,SAAS,GACvB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;;;;;;;GAkBG;AACH,wBAAgB,eAAe,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,EAChE,OAAO,EAAE,eAAe,CAAC,OAAO,CAAC,EAAE,CAAC,GACnC,eAAe,CAAC,UAAU,CAAC,EAAE,CAAC,CAUhC;AAED,MAAM,CAAC,OAAO,WAAW,eAAe,CAAC;IACvC,KAAK,OAAO,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI;QACjD;;;WAGG;QACH,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;QACrC;;WAEG;QACH,UAAU,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAA;QACjC;;WAEG;QACH,SAAS,EAAE,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,KAAK,CAAA;KACjC,CAAA;IAED,KAAK,UAAU,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,IACtC,CAAC,EAAE,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAC1C,CAAC,EAAE,SAAS,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;IAExC,KAAK,SAAS,GACV,KAAK,CAAC,IAAI,CAAC,SAAS,GACpB,GAAG,CAAC,SAAS,CAAC,SAAS,GACvB,MAAM,CAAC,eAAe,CAAA;CAC3B;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,gBAAgB,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,EACjE,OAAO,GAAE,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAM,GACzC,gBAAgB,CAAC,UAAU,CAAC,EAAE,CAAC,CAKjC;AAED,MAAM,CAAC,OAAO,WAAW,gBAAgB,CAAC;IACxC,KAAK,OAAO,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,GAAG,KAAK,IAAI;QACjD;;;WAGG;QACH,EAAE,CAAC,EAAE,EAAE,GAAG,KAAK,GAAG,OAAO,GAAG,SAAS,CAAA;KACtC,CAAA;IAED,KAAK,UAAU,CAAC,EAAE,SAAS,KAAK,GAAG,OAAO,IACtC,CAAC,EAAE,SAAS,OAAO,GAAG,KAAK,CAAC,KAAK,GAAG,KAAK,CAAC,GAC1C,CAAC,EAAE,SAAS,KAAK,GAAG,GAAG,CAAC,GAAG,GAAG,KAAK,CAAC,CAAA;IAExC,KAAK,SAAS,GAAG,GAAG,CAAC,SAAS,CAAC,SAAS,GAAG,MAAM,CAAC,eAAe,CAAA;CAClE"}
|