@vollcrypt/messages-wasm 0.9.0 → 0.9.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.
package/pkg/wasm.d.ts ADDED
@@ -0,0 +1,328 @@
1
+ /* tslint:disable */
2
+ /* eslint-disable */
3
+
4
+ export class AuthenticatedKemResult {
5
+ private constructor();
6
+ free(): void;
7
+ [Symbol.dispose](): void;
8
+ free(): void;
9
+ readonly ciphertext: Uint8Array;
10
+ /**
11
+ * WARNING: shared_secret should only be used in SRK derivation,
12
+ * and should not be used as an encryption key directly.
13
+ */
14
+ readonly shared_secret: Uint8Array;
15
+ }
16
+
17
+ export class Ed25519KeyPairObj {
18
+ private constructor();
19
+ free(): void;
20
+ [Symbol.dispose](): void;
21
+ sign(message: Uint8Array): Uint8Array;
22
+ readonly public_key: Uint8Array;
23
+ readonly secret_key: Uint8Array;
24
+ }
25
+
26
+ export class HybridKemResult {
27
+ private constructor();
28
+ free(): void;
29
+ [Symbol.dispose](): void;
30
+ readonly ml_kem_ciphertext: Uint8Array;
31
+ readonly shared_key: Uint8Array;
32
+ }
33
+
34
+ export class MlKemEncapsulationResult {
35
+ private constructor();
36
+ free(): void;
37
+ [Symbol.dispose](): void;
38
+ readonly ciphertext: Uint8Array;
39
+ readonly shared_secret: Uint8Array;
40
+ }
41
+
42
+ export class MlKemKeyPairObj {
43
+ private constructor();
44
+ free(): void;
45
+ [Symbol.dispose](): void;
46
+ readonly decapsulation_key: Uint8Array;
47
+ readonly encapsulation_key: Uint8Array;
48
+ }
49
+
50
+ export class RatchetKeyPairObj {
51
+ private constructor();
52
+ free(): void;
53
+ [Symbol.dispose](): void;
54
+ /**
55
+ * Computes SRK ratchet using this key pair.
56
+ * secret_key never crosses the WASM boundary.
57
+ */
58
+ compute_ratchet(current_srk: Uint8Array, their_ratchet_pub: Uint8Array, chat_id: Uint8Array, ratchet_step: number): Uint8Array;
59
+ readonly public_key: Uint8Array;
60
+ }
61
+
62
+ export class UnpackedEnvelope {
63
+ private constructor();
64
+ free(): void;
65
+ [Symbol.dispose](): void;
66
+ window_index: number;
67
+ readonly aad_hash: Uint8Array;
68
+ readonly encrypted_blob: Uint8Array;
69
+ }
70
+
71
+ export class UnsealResult {
72
+ private constructor();
73
+ free(): void;
74
+ [Symbol.dispose](): void;
75
+ free(): void;
76
+ readonly content: Uint8Array;
77
+ readonly sender_id: Uint8Array;
78
+ }
79
+
80
+ /**
81
+ * Verification code result (for WASM)
82
+ */
83
+ export class VerificationCodeResult {
84
+ private constructor();
85
+ free(): void;
86
+ [Symbol.dispose](): void;
87
+ readonly emoji_formatted: string;
88
+ readonly fingerprint: Uint8Array;
89
+ readonly numeric_digits: string;
90
+ readonly numeric_formatted: string;
91
+ }
92
+
93
+ export class X25519KeyPairObj {
94
+ private constructor();
95
+ free(): void;
96
+ [Symbol.dispose](): void;
97
+ readonly public: Uint8Array;
98
+ readonly secret: Uint8Array;
99
+ }
100
+
101
+ export function authenticated_kem_decapsulate(our_x25519_sk: Uint8Array, sender_x25519_pub: Uint8Array, our_mlkem_dk: Uint8Array, authenticated_ciphertext: Uint8Array, sender_identity_pk: Uint8Array): Uint8Array;
102
+
103
+ export function authenticated_kem_encapsulate(our_x25519_sk: Uint8Array, recipient_x25519_pub: Uint8Array, recipient_mlkem_pub: Uint8Array, sender_identity_sk: Uint8Array): AuthenticatedKemResult;
104
+
105
+ export function compute_fingerprint(key_a: Uint8Array, key_b: Uint8Array, conversation_id: Uint8Array): Uint8Array;
106
+
107
+ export function decrypt_aes_gcm(key: Uint8Array, ciphertext: Uint8Array, aad?: Uint8Array | null): Uint8Array;
108
+
109
+ export function decrypt_aes_gcm_chunked(key: Uint8Array, ciphertext: Uint8Array, aad?: Uint8Array | null): Uint8Array;
110
+
111
+ export function decrypt_aes_gcm_chunked_padded(key: Uint8Array, ciphertext: Uint8Array, aad?: Uint8Array | null): Uint8Array;
112
+
113
+ export function decrypt_aes_gcm_padded(key: Uint8Array, ciphertext: Uint8Array, aad?: Uint8Array | null): Uint8Array;
114
+
115
+ export function derive_hkdf(ikm: Uint8Array, salt: Uint8Array | null | undefined, info: Uint8Array | null | undefined, key_len: number): Uint8Array;
116
+
117
+ export function derive_pbkdf2(password: Uint8Array, salt: Uint8Array, iterations: number, key_len: number): Uint8Array;
118
+
119
+ export function derive_srk(dek: Uint8Array, chat_id: Uint8Array): Uint8Array;
120
+
121
+ export function derive_window_key(srk: Uint8Array, window_index: number): Uint8Array;
122
+
123
+ export function ecdh_shared_secret(our_secret: Uint8Array, their_public: Uint8Array): Uint8Array;
124
+
125
+ export function encrypt_aes_gcm(key: Uint8Array, plaintext: Uint8Array, aad?: Uint8Array | null): Uint8Array;
126
+
127
+ export function encrypt_aes_gcm_chunked(key: Uint8Array, plaintext: Uint8Array, aad: Uint8Array | null | undefined, chunk_size: number): Uint8Array;
128
+
129
+ export function encrypt_aes_gcm_chunked_padded(key: Uint8Array, plaintext: Uint8Array, aad: Uint8Array | null | undefined, chunk_size: number): Uint8Array;
130
+
131
+ export function encrypt_aes_gcm_padded(key: Uint8Array, plaintext: Uint8Array, aad?: Uint8Array | null): Uint8Array;
132
+
133
+ export function generate_ed25519_keypair(): Ed25519KeyPairObj;
134
+
135
+ export function generate_mnemonic(): string;
136
+
137
+ export function generate_ratchet_keypair(): RatchetKeyPairObj;
138
+
139
+ export function generate_verification_code(key_a: Uint8Array, key_b: Uint8Array, conversation_id: Uint8Array): VerificationCodeResult;
140
+
141
+ export function generate_x25519_keypair(): X25519KeyPairObj;
142
+
143
+ export function hybrid_kem_decapsulate(x25519_our_secret: Uint8Array, x25519_their_public: Uint8Array, ml_kem_dk: Uint8Array, ml_kem_ct: Uint8Array): Uint8Array;
144
+
145
+ export function hybrid_kem_encapsulate(x25519_our_secret: Uint8Array, x25519_their_public: Uint8Array, ml_kem_ek: Uint8Array): HybridKemResult;
146
+
147
+ export function init_logger(): void;
148
+
149
+ export function key_log_compute_entry_hash(entry_json: string): Uint8Array;
150
+
151
+ export function key_log_create_entry(user_id: Uint8Array, public_key: Uint8Array, timestamp: number, prev_entry_hash: Uint8Array, action: number, signing_key: Uint8Array): string;
152
+
153
+ export function key_log_current_key(entries_json: string, user_id: Uint8Array): Uint8Array;
154
+
155
+ export function key_log_key_at_timestamp(entries_json: string, user_id: Uint8Array, timestamp: number): Uint8Array;
156
+
157
+ export function key_log_verify_chain(entries_json: string): boolean;
158
+
159
+ export function ml_kem_decapsulate(decapsulation_key: Uint8Array, ciphertext: Uint8Array): Uint8Array;
160
+
161
+ export function ml_kem_encapsulate(encapsulation_key: Uint8Array): MlKemEncapsulationResult;
162
+
163
+ export function ml_kem_keygen(): MlKemKeyPairObj;
164
+
165
+ export function mnemonic_to_seed(phrase: string, password?: string | null): Uint8Array;
166
+
167
+ export function pack_envelope(window_index: number, aad_hash: Uint8Array, encrypted_blob: Uint8Array): Uint8Array;
168
+
169
+ export function pad_message(content: Uint8Array): Uint8Array;
170
+
171
+ export function registry_add_device(registry_json: string, device_id: string, name: string, added_at: number, public_key: string): string;
172
+
173
+ export function registry_empty(): string;
174
+
175
+ export function registry_get_active_devices(registry_json: string): string;
176
+
177
+ export function registry_revoke_device(registry_json: string, device_id: string): string;
178
+
179
+ export function seal_message(recipient_x25519_pub: Uint8Array, sender_id: Uint8Array, content: Uint8Array): Uint8Array;
180
+
181
+ export function should_ratchet(message_count: number, window_changed: boolean, messages_per_ratchet: number, ratchet_on_new_window: boolean): boolean;
182
+
183
+ export function sign_message(secret_key: Uint8Array, message: Uint8Array): Uint8Array;
184
+
185
+ export function transcript_compute_message_hash(message_id: Uint8Array, sender_id: Uint8Array, timestamp: number, ciphertext: Uint8Array): Uint8Array;
186
+
187
+ export function transcript_new(session_id: Uint8Array): Uint8Array;
188
+
189
+ export function transcript_update(chain_state: Uint8Array, message_hash: Uint8Array): Uint8Array;
190
+
191
+ export function transcript_verify_sync(hash_a: Uint8Array, hash_b: Uint8Array): boolean;
192
+
193
+ export function unpack_envelope(envelope: Uint8Array): UnpackedEnvelope;
194
+
195
+ export function unseal_message(sealed_packet: Uint8Array, our_x25519_sk: Uint8Array): UnsealResult;
196
+
197
+ export function unwrap_key(kek: Uint8Array, wrapped_key: Uint8Array): Uint8Array;
198
+
199
+ export function verify_fingerprints_match(fingerprint_a: Uint8Array, fingerprint_b: Uint8Array): boolean;
200
+
201
+ export function verify_signature(public_key: Uint8Array, message: Uint8Array, signature: Uint8Array): boolean;
202
+
203
+ export function wrap_key(kek: Uint8Array, key_to_wrap: Uint8Array): Uint8Array;
204
+
205
+ export type InitInput = RequestInfo | URL | Response | BufferSource | WebAssembly.Module;
206
+
207
+ export interface InitOutput {
208
+ readonly memory: WebAssembly.Memory;
209
+ readonly __wbg_authenticatedkemresult_free: (a: number, b: number) => void;
210
+ readonly __wbg_ed25519keypairobj_free: (a: number, b: number) => void;
211
+ readonly __wbg_get_unpackedenvelope_window_index: (a: number) => number;
212
+ readonly __wbg_set_unpackedenvelope_window_index: (a: number, b: number) => void;
213
+ readonly __wbg_unpackedenvelope_free: (a: number, b: number) => void;
214
+ readonly __wbg_unsealresult_free: (a: number, b: number) => void;
215
+ readonly __wbg_verificationcoderesult_free: (a: number, b: number) => void;
216
+ readonly authenticated_kem_decapsulate: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number];
217
+ readonly authenticated_kem_encapsulate: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number];
218
+ readonly authenticatedkemresult_ciphertext: (a: number) => [number, number];
219
+ readonly authenticatedkemresult_free: (a: number) => void;
220
+ readonly authenticatedkemresult_shared_secret: (a: number) => [number, number];
221
+ readonly compute_fingerprint: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
222
+ readonly decrypt_aes_gcm: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
223
+ readonly decrypt_aes_gcm_chunked: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
224
+ readonly decrypt_aes_gcm_chunked_padded: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
225
+ readonly decrypt_aes_gcm_padded: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
226
+ readonly derive_hkdf: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number];
227
+ readonly derive_pbkdf2: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
228
+ readonly derive_srk: (a: number, b: number, c: number, d: number) => [number, number, number];
229
+ readonly derive_window_key: (a: number, b: number, c: number) => [number, number, number];
230
+ readonly ecdh_shared_secret: (a: number, b: number, c: number, d: number) => [number, number, number];
231
+ readonly ed25519keypairobj_public_key: (a: number) => [number, number];
232
+ readonly ed25519keypairobj_secret_key: (a: number) => [number, number];
233
+ readonly ed25519keypairobj_sign: (a: number, b: number, c: number) => [number, number, number, number];
234
+ readonly encrypt_aes_gcm: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
235
+ readonly encrypt_aes_gcm_chunked: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
236
+ readonly encrypt_aes_gcm_chunked_padded: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number, number, number];
237
+ readonly encrypt_aes_gcm_padded: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
238
+ readonly generate_ed25519_keypair: () => number;
239
+ readonly generate_mnemonic: () => [number, number];
240
+ readonly generate_ratchet_keypair: () => [number, number, number];
241
+ readonly generate_verification_code: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
242
+ readonly generate_x25519_keypair: () => number;
243
+ readonly hybrid_kem_decapsulate: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number];
244
+ readonly hybrid_kem_encapsulate: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number];
245
+ readonly init_logger: () => void;
246
+ readonly key_log_compute_entry_hash: (a: number, b: number) => [number, number, number, number];
247
+ readonly key_log_create_entry: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number, j: number) => [number, number, number, number];
248
+ readonly key_log_current_key: (a: number, b: number, c: number, d: number) => [number, number, number, number];
249
+ readonly key_log_key_at_timestamp: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
250
+ readonly key_log_verify_chain: (a: number, b: number) => [number, number, number];
251
+ readonly ml_kem_decapsulate: (a: number, b: number, c: number, d: number) => [number, number, number];
252
+ readonly ml_kem_encapsulate: (a: number, b: number) => [number, number, number];
253
+ readonly ml_kem_keygen: () => number;
254
+ readonly mnemonic_to_seed: (a: number, b: number, c: number, d: number) => [number, number, number, number];
255
+ readonly pack_envelope: (a: number, b: number, c: number, d: number, e: number) => [number, number, number, number];
256
+ readonly pad_message: (a: number, b: number) => [number, number];
257
+ readonly ratchetkeypairobj_compute_ratchet: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number) => [number, number, number, number];
258
+ readonly registry_add_device: (a: number, b: number, c: number, d: number, e: number, f: number, g: number, h: number, i: number) => [number, number, number, number];
259
+ readonly registry_empty: () => [number, number];
260
+ readonly registry_get_active_devices: (a: number, b: number) => [number, number, number, number];
261
+ readonly registry_revoke_device: (a: number, b: number, c: number, d: number) => [number, number, number, number];
262
+ readonly seal_message: (a: number, b: number, c: number, d: number, e: number, f: number) => [number, number, number, number];
263
+ readonly should_ratchet: (a: number, b: number, c: number, d: number) => number;
264
+ readonly sign_message: (a: number, b: number, c: number, d: number) => [number, number, number, number];
265
+ readonly transcript_compute_message_hash: (a: number, b: number, c: number, d: number, e: number, f: number, g: number) => [number, number];
266
+ readonly transcript_new: (a: number, b: number) => [number, number];
267
+ readonly transcript_update: (a: number, b: number, c: number, d: number) => [number, number, number, number];
268
+ readonly transcript_verify_sync: (a: number, b: number, c: number, d: number) => number;
269
+ readonly unpack_envelope: (a: number, b: number) => [number, number, number];
270
+ readonly unpackedenvelope_aad_hash: (a: number) => [number, number];
271
+ readonly unpackedenvelope_encrypted_blob: (a: number) => [number, number];
272
+ readonly unseal_message: (a: number, b: number, c: number, d: number) => [number, number, number];
273
+ readonly unsealresult_content: (a: number) => [number, number];
274
+ readonly unsealresult_free: (a: number) => void;
275
+ readonly unsealresult_sender_id: (a: number) => [number, number];
276
+ readonly unwrap_key: (a: number, b: number, c: number, d: number) => [number, number, number];
277
+ readonly verificationcoderesult_emoji_formatted: (a: number) => [number, number];
278
+ readonly verificationcoderesult_fingerprint: (a: number) => [number, number];
279
+ readonly verificationcoderesult_numeric_digits: (a: number) => [number, number];
280
+ readonly verificationcoderesult_numeric_formatted: (a: number) => [number, number];
281
+ readonly verify_fingerprints_match: (a: number, b: number, c: number, d: number) => [number, number, number];
282
+ readonly verify_signature: (a: number, b: number, c: number, d: number, e: number, f: number) => number;
283
+ readonly wrap_key: (a: number, b: number, c: number, d: number) => [number, number, number, number];
284
+ readonly __wbg_mlkemencapsulationresult_free: (a: number, b: number) => void;
285
+ readonly hybridkemresult_ml_kem_ciphertext: (a: number) => [number, number];
286
+ readonly hybridkemresult_shared_key: (a: number) => [number, number];
287
+ readonly mlkemencapsulationresult_ciphertext: (a: number) => [number, number];
288
+ readonly mlkemencapsulationresult_shared_secret: (a: number) => [number, number];
289
+ readonly mlkemkeypairobj_decapsulation_key: (a: number) => [number, number];
290
+ readonly mlkemkeypairobj_encapsulation_key: (a: number) => [number, number];
291
+ readonly ratchetkeypairobj_public_key: (a: number) => [number, number];
292
+ readonly x25519keypairobj_public: (a: number) => [number, number];
293
+ readonly x25519keypairobj_secret: (a: number) => [number, number];
294
+ readonly __wbg_hybridkemresult_free: (a: number, b: number) => void;
295
+ readonly __wbg_mlkemkeypairobj_free: (a: number, b: number) => void;
296
+ readonly __wbg_ratchetkeypairobj_free: (a: number, b: number) => void;
297
+ readonly __wbg_x25519keypairobj_free: (a: number, b: number) => void;
298
+ readonly __wbindgen_exn_store: (a: number) => void;
299
+ readonly __externref_table_alloc: () => number;
300
+ readonly __wbindgen_externrefs: WebAssembly.Table;
301
+ readonly __wbindgen_free: (a: number, b: number, c: number) => void;
302
+ readonly __wbindgen_malloc: (a: number, b: number) => number;
303
+ readonly __wbindgen_realloc: (a: number, b: number, c: number, d: number) => number;
304
+ readonly __externref_table_dealloc: (a: number) => void;
305
+ readonly __wbindgen_start: () => void;
306
+ }
307
+
308
+ export type SyncInitInput = BufferSource | WebAssembly.Module;
309
+
310
+ /**
311
+ * Instantiates the given `module`, which can either be bytes or
312
+ * a precompiled `WebAssembly.Module`.
313
+ *
314
+ * @param {{ module: SyncInitInput }} module - Passing `SyncInitInput` directly is deprecated.
315
+ *
316
+ * @returns {InitOutput}
317
+ */
318
+ export function initSync(module: { module: SyncInitInput } | SyncInitInput): InitOutput;
319
+
320
+ /**
321
+ * If `module_or_path` is {RequestInfo} or {URL}, makes a request and
322
+ * for everything else, calls `WebAssembly.instantiate` directly.
323
+ *
324
+ * @param {{ module_or_path: InitInput | Promise<InitInput> }} module_or_path - Passing `InitInput` directly is deprecated.
325
+ *
326
+ * @returns {Promise<InitOutput>}
327
+ */
328
+ export default function __wbg_init (module_or_path?: { module_or_path: InitInput | Promise<InitInput> } | InitInput | Promise<InitInput>): Promise<InitOutput>;