@vex-chat/crypto 10.0.0 → 12.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -24,8 +24,7 @@ Crypto primitives for the [Vex](https://vex.wtf) protocol. Sign, encrypt, hash,
24
24
  - **Text & byte encoding** — `XUtils` hex/base64/UTF-8 helpers (`@stablelib/base64`, `@stablelib/utf8`).
25
25
  - **Mnemonics** — `xMnemonic()` (BIP39 via `bip39`).
26
26
  - **Utilities** — `xConcat()`, `xMakeNonce()`, `xRandomBytes()`, `XUtils.bytesEqual` (constant-time when lengths match), and `XKeyConvert` (Ed25519 ↔ X25519 via `ed2curve`).
27
- - **Runtime profile** — `setCryptoProfile()` / `getCryptoProfile()` to select `tweetnacl` (default) or `fips` mode.
28
- - **Async portable crypto** — `xSignAsync()`, `xSignOpenAsync()`, `xSignKeyPairAsync()`, `xBoxKeyPairAsync()`, `xDHAsync()`, `xSecretboxAsync()`, `xSecretboxOpenAsync()` for cross-runtime WebCrypto-backed flows.
27
+ - **Async convenience APIs** — `xSignAsync()`, `xSignOpenAsync()`, `xSignKeyPairAsync()`, `xBoxKeyPairAsync()`, `xDHAsync()`, `xSecretboxAsync()`, `xSecretboxOpenAsync()` expose the same TweetNaCl operations to async callers.
29
28
 
30
29
  **HKDF, PBKDF2, HMAC, and SHA-512 / SHA-256** all run through **`@noble/hashes`**. **`tweetnacl`** supplies CSPRNG, box, sign, and secretbox.
31
30
 
@@ -45,8 +44,6 @@ npm install @vex-chat/types @vex-chat/crypto
45
44
 
46
45
  ```ts
47
46
  import {
48
- getCryptoProfile,
49
- setCryptoProfile,
50
47
  xSignAsync,
51
48
  xSignOpenAsync,
52
49
  xSignKeyPairAsync,
@@ -61,10 +58,6 @@ import {
61
58
  XUtils,
62
59
  } from "@vex-chat/crypto";
63
60
 
64
- // Optional: select backend profile once at process startup.
65
- setCryptoProfile("tweetnacl");
66
- console.log(getCryptoProfile()); // "tweetnacl"
67
-
68
61
  // Generate identity keys
69
62
  const signKeys = xSignKeyPair();
70
63
  const boxKeys = xBoxKeyPair();
@@ -90,20 +83,12 @@ const wire = XUtils.packMessage({
90
83
  });
91
84
  const [, body] = XUtils.unpackMessage(wire);
92
85
 
93
- // Cross-runtime async path (required for full FIPS profile usage)
94
- setCryptoProfile("fips");
95
- const fipsKeys = await xSignKeyPairAsync();
96
- const fipsSigned = await xSignAsync(message, fipsKeys.secretKey);
97
- const fipsOpened = await xSignOpenAsync(fipsSigned, fipsKeys.publicKey);
86
+ // The async APIs have the same Ed25519 semantics.
87
+ const asyncKeys = await xSignKeyPairAsync();
88
+ const asyncSigned = await xSignAsync(message, asyncKeys.secretKey);
89
+ const asyncOpened = await xSignOpenAsync(asyncSigned, asyncKeys.publicKey);
98
90
  ```
99
91
 
100
- ## Crypto profiles
101
-
102
- - `tweetnacl` (default): current behavior for signing, key exchange, secretbox, and random bytes.
103
- - `fips`:
104
- - sync NaCl-shaped APIs (`xSign`, `xDH`, `xSecretbox`, etc.) still throw (to avoid silent semantic drift),
105
- - async APIs (`...Async`) use WebCrypto-backed P-256 ECDSA, P-256 ECDH, and AES-GCM, plus WebCrypto random bytes.
106
-
107
92
  Outside contributors should follow [CONTRIBUTING.md](./CONTRIBUTING.md) (including the [CLA](./CLA.md)). Release workflow: [AGENTS.md](./AGENTS.md).
108
93
 
109
94
  ## License
package/dist/index.d.ts CHANGED
@@ -12,31 +12,6 @@ import type { BaseMsg } from "@vex-chat/types";
12
12
  import { decode as decodeBase64, encode as encodeBase64 } from "@stablelib/base64";
13
13
  import { encode as decodeUTF8, decode as encodeUTF8 } from "@stablelib/utf8";
14
14
  import ed2curve from "ed2curve";
15
- /** Runtime crypto profile selector. */
16
- export type CryptoProfile = "fips" | "tweetnacl";
17
- /** Returns the currently configured crypto profile. */
18
- export declare function getCryptoProfile(): CryptoProfile;
19
- /**
20
- * Sets the runtime crypto profile.
21
- *
22
- * `tweetnacl` preserves existing behavior.
23
- * `fips` currently enables only backend-agnostic helpers; NaCl-coupled
24
- * primitives throw until a FIPS backend implementation is wired in.
25
- */
26
- export declare function setCryptoProfile(profile: CryptoProfile): void;
27
- /**
28
- * Saves the current profile and switches to `profile`. Pair every call with
29
- * {@link leaveCryptoProfileScope} in a `finally` block.
30
- *
31
- * **Why:** `setCryptoProfile` is process-wide. Several async libvex `Client`s
32
- * can overlap on `readMail`; a naive save/restore in `finally` can reset the
33
- * profile while another client still needs FIPS — `xSecretboxOpenAsync` then
34
- * reads `tweetnacl` and fails to decrypt AES-GCM payloads. Nesting this stack
35
- * fixes that.
36
- */
37
- export declare function enterCryptoProfileScope(profile: CryptoProfile): void;
38
- /** Restores the profile saved by the innermost {@link enterCryptoProfileScope}. */
39
- export declare function leaveCryptoProfileScope(): void;
40
15
  /**
41
16
  * Provides an interface that can map an ed25519 keypair to its equivalent
42
17
  * X25519 keypair.
@@ -55,8 +30,8 @@ export declare class XUtils {
55
30
  * Checks if two buffer-like objects are equal.
56
31
  * When lengths match, comparison is constant-time in the inputs (no early exit on first differing byte).
57
32
  *
58
- * @param buf1
59
- * @param buf2
33
+ * @param buf1 - First buffer to compare.
34
+ * @param buf2 - Second buffer to compare.
60
35
  *
61
36
  * @returns True if equal, else false.
62
37
  */
@@ -71,23 +46,18 @@ export declare class XUtils {
71
46
  * Decrypts a secret key from the binary format produced by encryptKeyData().
72
47
  * No I/O — the caller handles reading the data.
73
48
  *
74
- * @param keyData The encrypted key data as a Uint8Array.
75
- * @param password The password used to encrypt.
49
+ * @param keyData - The encrypted key data as a Uint8Array.
50
+ * @param password - The password used to encrypt.
76
51
  * @returns The hex-encoded secret key.
77
52
  */
78
53
  static decryptKeyData: (keyData: Uint8Array, password: string) => string;
79
- /**
80
- * Async variant of decryptKeyData for cross-runtime/FIPS backends.
81
- * Supports both profile formats emitted by encryptKeyDataAsync.
82
- */
54
+ /** Async variant of decryptKeyData for cross-runtime callers. */
83
55
  static decryptKeyDataAsync: (keyData: Uint8Array, password: string) => Promise<string>;
84
56
  /**
85
- * 32-byte AES-256 key for local at-rest encryption (e.g. sqlite) derived from
86
- * identity `secretKey`. For `tweetnacl` this is the 32-byte X25519 private key.
87
- * For `fips` the identity secret is PKCS#8; HKDF is applied so AES keys never
88
- * equal the raw private key material.
57
+ * Derive a purpose-separated 32-byte key for local at-rest encryption.
58
+ * The result never aliases raw identity-key bytes.
89
59
  */
90
- static deriveLocalAtRestAesKey(identitySk: Uint8Array, profile: CryptoProfile): Uint8Array;
60
+ static deriveLocalAtRestAesKey(identitySk: Uint8Array): Uint8Array;
91
61
  /**
92
62
  * Returns the empty header (32 0's)
93
63
  *
@@ -107,38 +77,35 @@ export declare class XUtils {
107
77
  *
108
78
  * Format: [iterations(6)|salt(24)|nonce(24)|ciphertext(N)]
109
79
  *
110
- * @param password The password to derive the encryption key from.
111
- * @param keyToSave The hex-encoded secret key to encrypt.
112
- * @param iterationOverride Optional PBKDF2 iteration count (random if omitted).
80
+ * @param password - The password to derive the encryption key from.
81
+ * @param keyToSave - The hex-encoded secret key to encrypt.
82
+ * @param iterationOverride - Optional PBKDF2 iteration count (220,000 if omitted).
113
83
  * @returns The encrypted key data as a Uint8Array.
114
84
  */
115
85
  static encryptKeyData: (password: string, keyToSave: string, iterationOverride?: number) => Uint8Array;
116
- /**
117
- * Async variant of encryptKeyData for cross-runtime/FIPS backends.
118
- * Format remains [iterations(6)|salt(24)|nonce(24)|ciphertext(N)].
119
- */
86
+ /** Async variant of encryptKeyData for cross-runtime callers. */
120
87
  static encryptKeyDataAsync: (password: string, keyToSave: string, iterationOverride?: number) => Promise<Uint8Array>;
121
88
  /**
122
89
  * Returns a six bit Uint8Array representation of an integer.
123
90
  * The integer must be positive, and it must be able to be stored
124
91
  * in six bytes.
125
92
  *
126
- * @param n The number to convert.
93
+ * @param n - The number to convert.
127
94
  * @returns The Uint8Array representation of n.
128
95
  */
129
96
  static numberToUint8Arr(n: number): Uint8Array;
130
97
  /**
131
98
  * Packs a javascript object and a 32 byte header into a vex message.
132
99
  *
133
- * @param msg Message body (msgpack-serialized).
134
- * @param header Optional 32-byte header; defaults to an empty header.
100
+ * @param msg - Message body (msgpack-serialized).
101
+ * @param header - Optional 32-byte header; defaults to an empty header.
135
102
  * @returns the packed message.
136
103
  */
137
104
  static packMessage(msg: unknown, header?: Uint8Array): Uint8Array<ArrayBufferLike>;
138
105
  /**
139
106
  * Converts a Uint8Array representation of an integer back into a number.
140
107
  *
141
- * @param arr The array to convert.
108
+ * @param arr - The array to convert.
142
109
  * @returns the number representation of arr.
143
110
  */
144
111
  static uint8ArrToNumber(arr: Uint8Array): number;
@@ -146,25 +113,34 @@ export declare class XUtils {
146
113
  * Takes a vex message and unpacks it into its header and a javascript object
147
114
  * representation of its body.
148
115
  *
149
- * @param msg Full wire message (32-byte header + msgpack body).
116
+ * @param msg - Full wire message (32-byte header + msgpack body).
150
117
  * @returns [32 byte header, message body]
151
118
  */
152
119
  static unpackMessage(msg: Buffer | Uint8Array): [Uint8Array, BaseMsg];
120
+ private static readKeyDataIterations;
121
+ private static validateKeyDataIterations;
153
122
  }
154
123
  /**
155
124
  * Returns a 32 byte HMAC of a javscript object.
156
125
  *
157
- * @param msg the message to create the HMAC of
158
- * @param SK the secret key to create the HMAC with
126
+ * @param msg - The message to create the HMAC of.
127
+ * @param SK - The secret key to create the HMAC with.
159
128
  */
160
129
  export declare function xHMAC(msg: unknown, SK: Uint8Array): Uint8Array<ArrayBufferLike> & Uint8Array<ArrayBuffer>;
130
+ /** Derive independent payload-encryption and envelope-authentication keys. */
131
+ export declare function xMessageKeySubkeys(messageKey: Uint8Array): {
132
+ authenticationKey: Uint8Array;
133
+ encryptionKey: Uint8Array;
134
+ };
161
135
  /**
162
136
  * Gets a word list representation of a byte sequence.
163
137
  *
164
- * @param entropy The bytes to derive the wordlist from.
165
- * @param wordList Optional, override the wordlist. See bip39 docs for details.
138
+ * @param entropy - The bytes to derive the wordlist from.
139
+ * @param wordList - Optional override for the wordlist. See bip39 docs for details.
166
140
  */
167
141
  export declare function xMnemonic(entropy: Uint8Array, wordList?: string[]): string;
142
+ /** Domain-separated payload signed for X3DH signed and one-time prekeys. */
143
+ export declare function xPreKeySignaturePayload(publicKey: Uint8Array, kind: "one-time" | "signed"): Uint8Array;
168
144
  /**
169
145
  * Constants for vex.
170
146
  */
@@ -189,44 +165,31 @@ export interface XConstants {
189
165
  KEY_LENGTH: 32 | 57;
190
166
  MIN_OTK_SUPPLY: number;
191
167
  }
192
- /**
193
- * FIPS: `device.signKey` in the database is the P-256 ECDSA public key (SPKI),
194
- * used for account/device signature verification. X3DH on the client expects
195
- * the same curve point as Web Crypto "raw" P-256 ECDH public bytes for
196
- * `importEcdhPublicKey`. This converts SPKI → raw without a private key.
197
- */
198
- export declare function fipsEcdhRawPublicKeyFromEcdsaSpkiAsync(ecdsaSpki: Uint8Array): Promise<Uint8Array>;
199
168
  /** Generate a fresh X25519 box key pair. */
200
169
  export declare function xBoxKeyPair(): KeyPair;
201
- /** Async box keypair generation for the active profile. */
170
+ /** Async X25519 box keypair generation. */
202
171
  export declare function xBoxKeyPairAsync(): Promise<KeyPair>;
203
172
  /** Restore an X25519 box key pair from a 32-byte secret key. */
204
173
  export declare function xBoxKeyPairFromSecret(secretKey: Uint8Array): KeyPair;
205
- /** Async box key restore from private key material. */
174
+ /** Async X25519 box key restore from private key material. */
206
175
  export declare function xBoxKeyPairFromSecretAsync(secretKey: Uint8Array): Promise<KeyPair>;
207
176
  /**
208
177
  * Concatanates multiple Uint8Arrays.
209
178
  *
210
- * @param arrays As many Uint8Arrays as you would like to concatanate.
179
+ * @param arrays - The Uint8Arrays to concatenate.
211
180
  */
212
181
  export declare function xConcat(...arrays: Uint8Array[]): Uint8Array;
213
182
  /**
214
183
  * Derives a shared Secret Key from a known private key and
215
184
  * a peer's known public key.
216
185
  *
217
- * @param myPrivateKey Your own private key
218
- * @param theirPublicKey Their public key
186
+ * @param myPrivateKey - Your own private key.
187
+ * @param theirPublicKey - Their public key.
219
188
  * @returns The derived shared secret, SK.
220
189
  */
221
190
  export declare function xDH(myPrivateKey: Uint8Array, theirPublicKey: Uint8Array): Uint8Array;
222
- /** Async DH for cross-runtime/FIPS backends. */
191
+ /** Async X25519 DH. */
223
192
  export declare function xDHAsync(myPrivateKey: Uint8Array, theirPublicKey: Uint8Array): Promise<Uint8Array>;
224
- /**
225
- * In `fips` mode only: derive a P-256 ECDH `KeyPair` (raw public + pkcs8 secret)
226
- * from a P-256 ECDSA `KeyPair` (spki + pkcs8) using the same private scalar in Web Crypto.
227
- * In `tweetnacl` mode, use `XKeyConvert.convertKeyPair` to map Ed25519 → X25519 instead.
228
- */
229
- export declare function xEcdhKeyPairFromEcdsaKeyPairAsync(sign: KeyPair): Promise<KeyPair>;
230
193
  /**
231
194
  * Encode an X25519 or X448 public key PK into a byte sequence.
232
195
  * The encoding consists of 0 or 1 to represent the type of curve, followed by l
@@ -237,7 +200,7 @@ export declare function xEncode(curveType: "X448" | "X25519", publicKey: Uint8Ar
237
200
  /**
238
201
  * Hashes some data.
239
202
  *
240
- * @param data the data to hash.
203
+ * @param data - The data to hash.
241
204
  * @returns The hash of the data.
242
205
  */
243
206
  export declare function xHash(data: Uint8Array): string;
@@ -250,26 +213,26 @@ export declare function xMakeNonce(): Uint8Array;
250
213
  export declare function xRandomBytes(length: number): Uint8Array;
251
214
  /** Encrypt with a shared secret key. */
252
215
  export declare function xSecretbox(plaintext: Uint8Array, nonce: Uint8Array, key: Uint8Array): Uint8Array;
253
- /** Async authenticated encryption for cross-runtime/FIPS backends. */
216
+ /** Async XSalsa20-Poly1305 encryption. */
254
217
  export declare function xSecretboxAsync(plaintext: Uint8Array, nonce: Uint8Array, key: Uint8Array): Promise<Uint8Array>;
255
218
  /** Decrypt with a shared secret key. Returns null if authentication fails. */
256
219
  export declare function xSecretboxOpen(ciphertext: Uint8Array, nonce: Uint8Array, key: Uint8Array): null | Uint8Array;
257
- /** Async authenticated decryption for cross-runtime/FIPS backends. */
220
+ /** Async XSalsa20-Poly1305 decryption. */
258
221
  export declare function xSecretboxOpenAsync(ciphertext: Uint8Array, nonce: Uint8Array, key: Uint8Array): Promise<null | Uint8Array>;
259
222
  /** Sign a message with an Ed25519 secret key. Returns signed message (64-byte signature prefix + message). */
260
223
  export declare function xSign(message: Uint8Array, secretKey: Uint8Array): Uint8Array;
261
- /** Async signing for cross-runtime/FIPS backends. */
224
+ /** Async Ed25519 signing. */
262
225
  export declare function xSignAsync(message: Uint8Array, secretKey: Uint8Array): Promise<Uint8Array>;
263
226
  /** Generate a fresh Ed25519 signing key pair. */
264
227
  export declare function xSignKeyPair(): KeyPair;
265
- /** Async keypair generation for the active profile. */
228
+ /** Async Ed25519 keypair generation. */
266
229
  export declare function xSignKeyPairAsync(): Promise<KeyPair>;
267
230
  /** Restore an Ed25519 signing key pair from a 64-byte secret key. */
268
231
  export declare function xSignKeyPairFromSecret(secretKey: Uint8Array): KeyPair;
269
- /** Async restore of signing keypair for the active profile. */
232
+ /** Async restore of an Ed25519 signing keypair. */
270
233
  export declare function xSignKeyPairFromSecretAsync(secretKey: Uint8Array): Promise<KeyPair>;
271
234
  /** Verify and open a signed message. Returns the original message, or null if verification fails. */
272
235
  export declare function xSignOpen(signedMessage: Uint8Array, publicKey: Uint8Array): null | Uint8Array;
273
- /** Async verify/open for cross-runtime/FIPS backends. */
236
+ /** Async Ed25519 verify/open. */
274
237
  export declare function xSignOpenAsync(signedMessage: Uint8Array, publicKey: Uint8Array): Promise<null | Uint8Array>;
275
238
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}