@wireapp/core-crypto 1.0.1 → 1.1.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 +57 -20
- package/package.json +2 -2
- package/platforms/web/core-crypto-ffi_bg.wasm +0 -0
- package/platforms/web/corecrypto.d.ts +1697 -277
- package/platforms/web/corecrypto.js +2869 -2347
@@ -1,3 +1,53 @@
|
|
1
|
+
declare enum Ciphersuite {
|
2
|
+
/**
|
3
|
+
* DH KEM x25519 | AES-GCM 128 | SHA2-256 | Ed25519
|
4
|
+
*/
|
5
|
+
MLS_128_DHKEMX25519_AES128GCM_SHA256_Ed25519 = 1,
|
6
|
+
/**
|
7
|
+
* DH KEM P256 | AES-GCM 128 | SHA2-256 | EcDSA P256
|
8
|
+
*/
|
9
|
+
MLS_128_DHKEMP256_AES128GCM_SHA256_P256 = 2,
|
10
|
+
/**
|
11
|
+
* DH KEM x25519 | Chacha20Poly1305 | SHA2-256 | Ed25519
|
12
|
+
*/
|
13
|
+
MLS_128_DHKEMX25519_CHACHA20POLY1305_SHA256_Ed25519 = 3,
|
14
|
+
/**
|
15
|
+
* DH KEM x448 | AES-GCM 256 | SHA2-512 | Ed448
|
16
|
+
*/
|
17
|
+
MLS_256_DHKEMX448_AES256GCM_SHA512_Ed448 = 4,
|
18
|
+
/**
|
19
|
+
* DH KEM P521 | AES-GCM 256 | SHA2-512 | EcDSA P521
|
20
|
+
*/
|
21
|
+
MLS_256_DHKEMP521_AES256GCM_SHA512_P521 = 5,
|
22
|
+
/**
|
23
|
+
* DH KEM x448 | Chacha20Poly1305 | SHA2-512 | Ed448
|
24
|
+
*/
|
25
|
+
MLS_256_DHKEMX448_CHACHA20POLY1305_SHA512_Ed448 = 6,
|
26
|
+
/**
|
27
|
+
* DH KEM P384 | AES-GCM 256 | SHA2-384 | EcDSA P384
|
28
|
+
*/
|
29
|
+
MLS_256_DHKEMP384_AES256GCM_SHA384_P384 = 7
|
30
|
+
}
|
31
|
+
declare enum WirePolicy {
|
32
|
+
/**
|
33
|
+
* Handshake messages are never encrypted
|
34
|
+
*/
|
35
|
+
Plaintext = 1,
|
36
|
+
/**
|
37
|
+
* Handshake messages are always encrypted
|
38
|
+
*/
|
39
|
+
Ciphertext = 2
|
40
|
+
}
|
41
|
+
declare enum CredentialType {
|
42
|
+
/**
|
43
|
+
* Just a KeyPair
|
44
|
+
*/
|
45
|
+
Basic = 1,
|
46
|
+
/**
|
47
|
+
* A certificate obtained through e2e identity enrollment process
|
48
|
+
*/
|
49
|
+
X509 = 2
|
50
|
+
}
|
1
51
|
/**
|
2
52
|
* For creating a challenge.
|
3
53
|
* @see https://www.rfc-editor.org/rfc/rfc8555.html#section-7.5.1
|
@@ -19,6 +69,635 @@ export class AcmeChallenge {
|
|
19
69
|
readonly url: string;
|
20
70
|
}
|
21
71
|
/**
|
72
|
+
* see [core_crypto::prelude::MlsConversationConfiguration]
|
73
|
+
*/
|
74
|
+
declare class ConversationConfiguration {
|
75
|
+
free(): void;
|
76
|
+
/**
|
77
|
+
* @param {Ciphersuite | undefined} [ciphersuite]
|
78
|
+
* @param {(Uint8Array)[] | undefined} [external_senders]
|
79
|
+
* @param {number | undefined} [key_rotation_span]
|
80
|
+
* @param {WirePolicy | undefined} [wire_policy]
|
81
|
+
*/
|
82
|
+
constructor(ciphersuite?: Ciphersuite, external_senders?: (Uint8Array)[], key_rotation_span?: number, wire_policy?: WirePolicy);
|
83
|
+
}
|
84
|
+
/**
|
85
|
+
*/
|
86
|
+
declare class CoreCryptoContext {
|
87
|
+
free(): void;
|
88
|
+
/**
|
89
|
+
* Returns: [`WasmCryptoResult<()>`]
|
90
|
+
*
|
91
|
+
* see [core_crypto::context::CentralContext::set_data]
|
92
|
+
* @param {Uint8Array} data
|
93
|
+
* @returns {Promise<any>}
|
94
|
+
*/
|
95
|
+
set_data(data: Uint8Array): Promise<any>;
|
96
|
+
/**
|
97
|
+
* Returns: [`WasmCryptoResult<Option<js_sys::Uint8Array>>`]
|
98
|
+
*
|
99
|
+
* see [core_crypto::context::CentralContext::get_data]
|
100
|
+
* @returns {Promise<any>}
|
101
|
+
*/
|
102
|
+
get_data(): Promise<any>;
|
103
|
+
/**
|
104
|
+
* see [core_crypto::mls::context::CentralContext::mls_init]
|
105
|
+
* @param {Uint8Array} client_id
|
106
|
+
* @param {Uint16Array} ciphersuites
|
107
|
+
* @param {number | undefined} [nb_key_package]
|
108
|
+
* @returns {Promise<any>}
|
109
|
+
*/
|
110
|
+
mls_init(client_id: Uint8Array, ciphersuites: Uint16Array, nb_key_package?: number): Promise<any>;
|
111
|
+
/**
|
112
|
+
* Returns [`WasmCryptoResult<Vec<u8>>`]
|
113
|
+
*
|
114
|
+
* See [core_crypto::mls::context::CentralContext::mls_generate_keypairs]
|
115
|
+
* @param {Uint16Array} ciphersuites
|
116
|
+
* @returns {Promise<any>}
|
117
|
+
*/
|
118
|
+
mls_generate_keypair(ciphersuites: Uint16Array): Promise<any>;
|
119
|
+
/**
|
120
|
+
* Returns [`WasmCryptoResult<()>`]
|
121
|
+
*
|
122
|
+
* See [core_crypto::mls::context::CentralContext::mls_init_with_client_id]
|
123
|
+
* @param {Uint8Array} client_id
|
124
|
+
* @param {(Uint8Array)[]} signature_public_keys
|
125
|
+
* @param {Uint16Array} ciphersuites
|
126
|
+
* @returns {Promise<any>}
|
127
|
+
*/
|
128
|
+
mls_init_with_client_id(client_id: Uint8Array, signature_public_keys: (Uint8Array)[], ciphersuites: Uint16Array): Promise<any>;
|
129
|
+
/**
|
130
|
+
* Returns:: [`WasmCryptoResult<js_sys::Uint8Array>`]
|
131
|
+
*
|
132
|
+
* see [core_crypto::mls::context::CentralContext::client_public_key]
|
133
|
+
* @param {Ciphersuite} ciphersuite
|
134
|
+
* @param {CredentialType} credential_type
|
135
|
+
* @returns {Promise<any>}
|
136
|
+
*/
|
137
|
+
client_public_key(ciphersuite: Ciphersuite, credential_type: CredentialType): Promise<any>;
|
138
|
+
/**
|
139
|
+
* Returns: [`WasmCryptoResult<js_sys::Array<js_sys::Uint8Array>>`]
|
140
|
+
*
|
141
|
+
* see [core_crypto::mls::context::CentralContext::get_or_create_client_keypackages]
|
142
|
+
* @param {Ciphersuite} ciphersuite
|
143
|
+
* @param {CredentialType} credential_type
|
144
|
+
* @param {number} amount_requested
|
145
|
+
* @returns {Promise<any>}
|
146
|
+
*/
|
147
|
+
client_keypackages(ciphersuite: Ciphersuite, credential_type: CredentialType, amount_requested: number): Promise<any>;
|
148
|
+
/**
|
149
|
+
* Returns: [`WasmCryptoResult<usize>`]
|
150
|
+
*
|
151
|
+
* see [core_crypto::mls::context::CentralContext::client_valid_key_packages_count]
|
152
|
+
* @param {Ciphersuite} ciphersuite
|
153
|
+
* @param {CredentialType} credential_type
|
154
|
+
* @returns {Promise<any>}
|
155
|
+
*/
|
156
|
+
client_valid_keypackages_count(ciphersuite: Ciphersuite, credential_type: CredentialType): Promise<any>;
|
157
|
+
/**
|
158
|
+
* Returns: [`WasmCryptoResult<usize>`]
|
159
|
+
*
|
160
|
+
* see [core_crypto::mls::context::CentralContext::delete_keypackages]
|
161
|
+
* @param {(Uint8Array)[]} refs
|
162
|
+
* @returns {Promise<any>}
|
163
|
+
*/
|
164
|
+
delete_keypackages(refs: (Uint8Array)[]): Promise<any>;
|
165
|
+
/**
|
166
|
+
* Returns: [`WasmCryptoResult<()>`]
|
167
|
+
*
|
168
|
+
* see [core_crypto::mls::context::CentralContext::new_conversation]
|
169
|
+
* @param {Uint8Array} conversation_id
|
170
|
+
* @param {CredentialType} creator_credential_type
|
171
|
+
* @param {ConversationConfiguration} config
|
172
|
+
* @returns {Promise<any>}
|
173
|
+
*/
|
174
|
+
create_conversation(conversation_id: Uint8Array, creator_credential_type: CredentialType, config: ConversationConfiguration): Promise<any>;
|
175
|
+
/**
|
176
|
+
* Returns [`WasmCryptoResult<u64>`]
|
177
|
+
*
|
178
|
+
* see [core_crypto::mls::context::CentralContext::conversation_epoch]
|
179
|
+
* @param {Uint8Array} conversation_id
|
180
|
+
* @returns {Promise<any>}
|
181
|
+
*/
|
182
|
+
conversation_epoch(conversation_id: Uint8Array): Promise<any>;
|
183
|
+
/**
|
184
|
+
* Returns [`WasmCryptoResult<Ciphersuite>`]
|
185
|
+
*
|
186
|
+
* see [core_crypto::mls::context::CentralContext::conversation_ciphersuite]
|
187
|
+
* @param {Uint8Array} conversation_id
|
188
|
+
* @returns {Promise<any>}
|
189
|
+
*/
|
190
|
+
conversation_ciphersuite(conversation_id: Uint8Array): Promise<any>;
|
191
|
+
/**
|
192
|
+
* Returns: [`bool`]
|
193
|
+
*
|
194
|
+
* see [core_crypto::mls::context::CentralContext::conversation_exists]
|
195
|
+
* @param {Uint8Array} conversation_id
|
196
|
+
* @returns {Promise<any>}
|
197
|
+
*/
|
198
|
+
conversation_exists(conversation_id: Uint8Array): Promise<any>;
|
199
|
+
/**
|
200
|
+
* Returns: [`WasmCryptoResult<Uint8Array>`]
|
201
|
+
*
|
202
|
+
* see [core_crypto::mls::context::CentralContext::process_raw_welcome_message]
|
203
|
+
* @param {Uint8Array} welcome_message
|
204
|
+
* @param {CustomConfiguration} custom_configuration
|
205
|
+
* @returns {Promise<any>}
|
206
|
+
*/
|
207
|
+
process_welcome_message(welcome_message: Uint8Array, custom_configuration: CustomConfiguration): Promise<any>;
|
208
|
+
/**
|
209
|
+
* Returns: [`WasmCryptoResult<Option<MemberAddedMessages>>`]
|
210
|
+
*
|
211
|
+
* see [core_crypto::mls::context::CentralContext::add_members_to_conversation]
|
212
|
+
* @param {Uint8Array} conversation_id
|
213
|
+
* @param {(Uint8Array)[]} key_packages
|
214
|
+
* @returns {Promise<any>}
|
215
|
+
*/
|
216
|
+
add_clients_to_conversation(conversation_id: Uint8Array, key_packages: (Uint8Array)[]): Promise<any>;
|
217
|
+
/**
|
218
|
+
* Returns: [`WasmCryptoResult<Option<js_sys::Uint8Array>>`]
|
219
|
+
*
|
220
|
+
* see [core_crypto::mls::context::CentralContext::remove_members_from_conversation]
|
221
|
+
* @param {Uint8Array} conversation_id
|
222
|
+
* @param {(Uint8Array)[]} clients
|
223
|
+
* @returns {Promise<any>}
|
224
|
+
*/
|
225
|
+
remove_clients_from_conversation(conversation_id: Uint8Array, clients: (Uint8Array)[]): Promise<any>;
|
226
|
+
/**
|
227
|
+
* Returns: [`WasmCryptoResult<()>`]
|
228
|
+
*
|
229
|
+
* see [core_crypto::mls::context::CentralContext::mark_conversation_as_child_of]
|
230
|
+
* @param {Uint8Array} child_id
|
231
|
+
* @param {Uint8Array} parent_id
|
232
|
+
* @returns {Promise<any>}
|
233
|
+
*/
|
234
|
+
mark_conversation_as_child_of(child_id: Uint8Array, parent_id: Uint8Array): Promise<any>;
|
235
|
+
/**
|
236
|
+
* Returns: [`WasmCryptoResult<CommitBundle>`]
|
237
|
+
*
|
238
|
+
* see [core_crypto::mls::context::CentralContext::update_keying_material]
|
239
|
+
* @param {Uint8Array} conversation_id
|
240
|
+
* @returns {Promise<any>}
|
241
|
+
*/
|
242
|
+
update_keying_material(conversation_id: Uint8Array): Promise<any>;
|
243
|
+
/**
|
244
|
+
* see [core_crypto::mls::context::CentralContext::commit_pending_proposals]
|
245
|
+
* @param {Uint8Array} conversation_id
|
246
|
+
* @returns {Promise<any>}
|
247
|
+
*/
|
248
|
+
commit_pending_proposals(conversation_id: Uint8Array): Promise<any>;
|
249
|
+
/**
|
250
|
+
* Returns: [`WasmCryptoResult<()>`]
|
251
|
+
*
|
252
|
+
* see [core_crypto::mls::context::CentralContext::wipe_conversation]
|
253
|
+
* @param {Uint8Array} conversation_id
|
254
|
+
* @returns {Promise<any>}
|
255
|
+
*/
|
256
|
+
wipe_conversation(conversation_id: Uint8Array): Promise<any>;
|
257
|
+
/**
|
258
|
+
* Returns: [`WasmCryptoResult<DecryptedMessage>`]
|
259
|
+
*
|
260
|
+
* see [core_crypto::mls::context::CentralContext::decrypt_message]
|
261
|
+
* @param {Uint8Array} conversation_id
|
262
|
+
* @param {Uint8Array} payload
|
263
|
+
* @returns {Promise<any>}
|
264
|
+
*/
|
265
|
+
decrypt_message(conversation_id: Uint8Array, payload: Uint8Array): Promise<any>;
|
266
|
+
/**
|
267
|
+
* Returns: [`WasmCryptoResult<Uint8Array>`]
|
268
|
+
*
|
269
|
+
* see [core_crypto::mls::context::CentralContext::encrypt_message]
|
270
|
+
* @param {Uint8Array} conversation_id
|
271
|
+
* @param {Uint8Array} message
|
272
|
+
* @returns {Promise<any>}
|
273
|
+
*/
|
274
|
+
encrypt_message(conversation_id: Uint8Array, message: Uint8Array): Promise<any>;
|
275
|
+
/**
|
276
|
+
* Returns: [`WasmCryptoResult<js_sys::Uint8Array>`]
|
277
|
+
*
|
278
|
+
* see [core_crypto::mls::context::CentralContext::new_add_proposal]
|
279
|
+
* @param {Uint8Array} conversation_id
|
280
|
+
* @param {Uint8Array} keypackage
|
281
|
+
* @returns {Promise<any>}
|
282
|
+
*/
|
283
|
+
new_add_proposal(conversation_id: Uint8Array, keypackage: Uint8Array): Promise<any>;
|
284
|
+
/**
|
285
|
+
* Returns: [`WasmCryptoResult<js_sys::Uint8Array>`]
|
286
|
+
*
|
287
|
+
* see [core_crypto::mls::context::CentralContext::new_update_proposal]
|
288
|
+
* @param {Uint8Array} conversation_id
|
289
|
+
* @returns {Promise<any>}
|
290
|
+
*/
|
291
|
+
new_update_proposal(conversation_id: Uint8Array): Promise<any>;
|
292
|
+
/**
|
293
|
+
* Returns: [`WasmCryptoResult<js_sys::Uint8Array>`]
|
294
|
+
*
|
295
|
+
* see [core_crypto::mls::context::CentralContext::new_remove_proposal]
|
296
|
+
* @param {Uint8Array} conversation_id
|
297
|
+
* @param {Uint8Array} client_id
|
298
|
+
* @returns {Promise<any>}
|
299
|
+
*/
|
300
|
+
new_remove_proposal(conversation_id: Uint8Array, client_id: Uint8Array): Promise<any>;
|
301
|
+
/**
|
302
|
+
* Returns: [`WasmCryptoResult<js_sys::Uint8Array>`]
|
303
|
+
*
|
304
|
+
* see [core_crypto::mls::context::CentralContext::new_external_add_proposal]
|
305
|
+
* @param {Uint8Array} conversation_id
|
306
|
+
* @param {number} epoch
|
307
|
+
* @param {Ciphersuite} ciphersuite
|
308
|
+
* @param {CredentialType} credential_type
|
309
|
+
* @returns {Promise<any>}
|
310
|
+
*/
|
311
|
+
new_external_add_proposal(conversation_id: Uint8Array, epoch: number, ciphersuite: Ciphersuite, credential_type: CredentialType): Promise<any>;
|
312
|
+
/**
|
313
|
+
* Returns: [`WasmCryptoResult<ConversationInitBundle>`]
|
314
|
+
*
|
315
|
+
* see [core_crypto::mls::context::CentralContext::join_by_external_commit]
|
316
|
+
* @param {Uint8Array} group_info
|
317
|
+
* @param {CustomConfiguration} custom_configuration
|
318
|
+
* @param {CredentialType} credential_type
|
319
|
+
* @returns {Promise<any>}
|
320
|
+
*/
|
321
|
+
join_by_external_commit(group_info: Uint8Array, custom_configuration: CustomConfiguration, credential_type: CredentialType): Promise<any>;
|
322
|
+
/**
|
323
|
+
* Returns: [`WasmCryptoResult<()>`]
|
324
|
+
*
|
325
|
+
* see [core_crypto::mls::context::CentralContext::merge_pending_group_from_external_commit]
|
326
|
+
* @param {Uint8Array} conversation_id
|
327
|
+
* @returns {Promise<any>}
|
328
|
+
*/
|
329
|
+
merge_pending_group_from_external_commit(conversation_id: Uint8Array): Promise<any>;
|
330
|
+
/**
|
331
|
+
* Returns: [`WasmCryptoResult<()>`]
|
332
|
+
*
|
333
|
+
* see [core_crypto::mls::context::CentralContext::clear_pending_group_from_external_commit]
|
334
|
+
* @param {Uint8Array} conversation_id
|
335
|
+
* @returns {Promise<any>}
|
336
|
+
*/
|
337
|
+
clear_pending_group_from_external_commit(conversation_id: Uint8Array): Promise<any>;
|
338
|
+
/**
|
339
|
+
* see [core_crypto::mls::context::CentralContext::commit_accepted]
|
340
|
+
* @param {Uint8Array} conversation_id
|
341
|
+
* @returns {Promise<any>}
|
342
|
+
*/
|
343
|
+
commit_accepted(conversation_id: Uint8Array): Promise<any>;
|
344
|
+
/**
|
345
|
+
* see [core_crypto::mls::context::CentralContext::clear_pending_proposal]
|
346
|
+
* @param {Uint8Array} conversation_id
|
347
|
+
* @param {Uint8Array} proposal_ref
|
348
|
+
* @returns {Promise<any>}
|
349
|
+
*/
|
350
|
+
clear_pending_proposal(conversation_id: Uint8Array, proposal_ref: Uint8Array): Promise<any>;
|
351
|
+
/**
|
352
|
+
* see [core_crypto::mls::context::CentralContext::clear_pending_commit]
|
353
|
+
* @param {Uint8Array} conversation_id
|
354
|
+
* @returns {Promise<any>}
|
355
|
+
*/
|
356
|
+
clear_pending_commit(conversation_id: Uint8Array): Promise<any>;
|
357
|
+
/**
|
358
|
+
* Returns: [`WasmCryptoResult<js_sys::Uint8Array>`]
|
359
|
+
*
|
360
|
+
* see [core_crypto::mls::context::CentralContext::random_bytes]
|
361
|
+
* @param {number} len
|
362
|
+
* @returns {Promise<any>}
|
363
|
+
*/
|
364
|
+
random_bytes(len: number): Promise<any>;
|
365
|
+
/**
|
366
|
+
* Returns: [`WasmCryptoResult<Vec<u8>>`]
|
367
|
+
*
|
368
|
+
* see [core_crypto::mls::context::CentralContext::export_secret_key]
|
369
|
+
* @param {Uint8Array} conversation_id
|
370
|
+
* @param {number} key_length
|
371
|
+
* @returns {Promise<any>}
|
372
|
+
*/
|
373
|
+
export_secret_key(conversation_id: Uint8Array, key_length: number): Promise<any>;
|
374
|
+
/**
|
375
|
+
* Returns: [`WasmCryptoResult<Vec<u8>>`]
|
376
|
+
*
|
377
|
+
* see [core_crypto::mls::context::CentralContext::get_external_sender]
|
378
|
+
* @param {Uint8Array} id
|
379
|
+
* @returns {Promise<any>}
|
380
|
+
*/
|
381
|
+
get_external_sender(id: Uint8Array): Promise<any>;
|
382
|
+
/**
|
383
|
+
* Returns: [`WasmCryptoResult<Box<[js_sys::Uint8Array]>`]
|
384
|
+
*
|
385
|
+
* see [core_crypto::mls::context::CentralContext::get_client_ids]
|
386
|
+
* @param {Uint8Array} conversation_id
|
387
|
+
* @returns {Promise<any>}
|
388
|
+
*/
|
389
|
+
get_client_ids(conversation_id: Uint8Array): Promise<any>;
|
390
|
+
/**
|
391
|
+
* Returns: [`WasmCryptoResult<()>`]
|
392
|
+
*
|
393
|
+
* See [core_crypto::context::CentralContext::proteus_session_from_prekey]
|
394
|
+
* @param {string} session_id
|
395
|
+
* @param {Uint8Array} prekey
|
396
|
+
* @returns {Promise<any>}
|
397
|
+
*/
|
398
|
+
proteus_session_from_prekey(session_id: string, prekey: Uint8Array): Promise<any>;
|
399
|
+
/**
|
400
|
+
* Returns: [`WasmCryptoResult<Vec<u8>>`]
|
401
|
+
*
|
402
|
+
* See [core_crypto::context::CentralContext::proteus_session_from_message]
|
403
|
+
* @param {string} session_id
|
404
|
+
* @param {Uint8Array} envelope
|
405
|
+
* @returns {Promise<any>}
|
406
|
+
*/
|
407
|
+
proteus_session_from_message(session_id: string, envelope: Uint8Array): Promise<any>;
|
408
|
+
/**
|
409
|
+
* Returns: [`WasmCryptoResult<()>`]
|
410
|
+
*
|
411
|
+
* /// **Note**: This isn't usually needed as persisting sessions happens automatically when decrypting/encrypting messages and initializing Sessions
|
412
|
+
*
|
413
|
+
* See [core_crypto::context::CentralContext::proteus_session_save]
|
414
|
+
* @param {string} session_id
|
415
|
+
* @returns {Promise<any>}
|
416
|
+
*/
|
417
|
+
proteus_session_save(session_id: string): Promise<any>;
|
418
|
+
/**
|
419
|
+
* Returns: [`WasmCryptoResult<()>`]
|
420
|
+
*
|
421
|
+
* See [core_crypto::context::CentralContext::proteus_session_delete]
|
422
|
+
* @param {string} session_id
|
423
|
+
* @returns {Promise<any>}
|
424
|
+
*/
|
425
|
+
proteus_session_delete(session_id: string): Promise<any>;
|
426
|
+
/**
|
427
|
+
* Returns: [`WasmCryptoResult<bool>`]
|
428
|
+
*
|
429
|
+
* See [core_crypto::context::CentralContext::proteus_session_exists]
|
430
|
+
* @param {string} session_id
|
431
|
+
* @returns {Promise<any>}
|
432
|
+
*/
|
433
|
+
proteus_session_exists(session_id: string): Promise<any>;
|
434
|
+
/**
|
435
|
+
* Returns: [`WasmCryptoResult<Vec<u8>>`]
|
436
|
+
*
|
437
|
+
* See [core_crypto::context::CentralContext::proteus_decrypt]
|
438
|
+
* @param {string} session_id
|
439
|
+
* @param {Uint8Array} ciphertext
|
440
|
+
* @returns {Promise<any>}
|
441
|
+
*/
|
442
|
+
proteus_decrypt(session_id: string, ciphertext: Uint8Array): Promise<any>;
|
443
|
+
/**
|
444
|
+
* Returns: [`WasmCryptoResult<js_sys::Uint8Array>`]
|
445
|
+
*
|
446
|
+
* See [core_crypto::context::CentralContext::proteus_encrypt]
|
447
|
+
* @param {string} session_id
|
448
|
+
* @param {Uint8Array} plaintext
|
449
|
+
* @returns {Promise<any>}
|
450
|
+
*/
|
451
|
+
proteus_encrypt(session_id: string, plaintext: Uint8Array): Promise<any>;
|
452
|
+
/**
|
453
|
+
* Returns: [`WasmCryptoResult<js_sys::Map<string, Uint8Array>>`]
|
454
|
+
*
|
455
|
+
* See [core_crypto::context::CentralContext::proteus_encrypt_batched]
|
456
|
+
* @param {(string)[]} sessions
|
457
|
+
* @param {Uint8Array} plaintext
|
458
|
+
* @returns {Promise<any>}
|
459
|
+
*/
|
460
|
+
proteus_encrypt_batched(sessions: (string)[], plaintext: Uint8Array): Promise<any>;
|
461
|
+
/**
|
462
|
+
* Returns: [`WasmCryptoResult<Uint8Array>`]
|
463
|
+
*
|
464
|
+
* See [core_crypto::context::CentralContext::proteus_new_prekey]
|
465
|
+
* @param {number} prekey_id
|
466
|
+
* @returns {Promise<any>}
|
467
|
+
*/
|
468
|
+
proteus_new_prekey(prekey_id: number): Promise<any>;
|
469
|
+
/**
|
470
|
+
* Returns: [`WasmCryptoResult<ProteusAutoPrekeyBundle>`]
|
471
|
+
*
|
472
|
+
* See [core_crypto::context::CentralContext::proteus_new_prekey_auto]
|
473
|
+
* @returns {Promise<any>}
|
474
|
+
*/
|
475
|
+
proteus_new_prekey_auto(): Promise<any>;
|
476
|
+
/**
|
477
|
+
* Returns [`WasmCryptoResult<Uint8Array>`]
|
478
|
+
*
|
479
|
+
* See [core_crypto::context::CentralContext::proteus_last_resort_prekey]
|
480
|
+
* @returns {Promise<any>}
|
481
|
+
*/
|
482
|
+
proteus_last_resort_prekey(): Promise<any>;
|
483
|
+
/**
|
484
|
+
* Returns: [`WasmCryptoResult<u16>`]
|
485
|
+
*
|
486
|
+
* See [core_crypto::context::CentralContext::proteus_last_resort_prekey_id]
|
487
|
+
* @returns {number}
|
488
|
+
*/
|
489
|
+
static proteus_last_resort_prekey_id(): number;
|
490
|
+
/**
|
491
|
+
* Returns: [`WasmCryptoResult<String>`]
|
492
|
+
*
|
493
|
+
* See [core_crypto::context::CentralContext::proteus_fingerprint]
|
494
|
+
* @returns {Promise<string>}
|
495
|
+
*/
|
496
|
+
proteus_fingerprint(): Promise<string>;
|
497
|
+
/**
|
498
|
+
* Returns: [`WasmCryptoResult<String>`]
|
499
|
+
*
|
500
|
+
* see [core_crypto::proteus::ProteusCentral::fingerprint_local]
|
501
|
+
* @param {string} session_id
|
502
|
+
* @returns {Promise<string>}
|
503
|
+
*/
|
504
|
+
proteus_fingerprint_local(session_id: string): Promise<string>;
|
505
|
+
/**
|
506
|
+
* Returns: [`WasmCryptoResult<String>`]
|
507
|
+
*
|
508
|
+
* See [core_crypto::context::CentralContext::proteus_fingerprint_remote]
|
509
|
+
* @param {string} session_id
|
510
|
+
* @returns {Promise<string>}
|
511
|
+
*/
|
512
|
+
proteus_fingerprint_remote(session_id: string): Promise<string>;
|
513
|
+
/**
|
514
|
+
* Returns: [`WasmCryptoResult<String>`]
|
515
|
+
*
|
516
|
+
* See [core_crypto::proteus::ProteusCentral::fingerprint_prekeybundle]
|
517
|
+
* @param {Uint8Array} prekey
|
518
|
+
* @returns {string}
|
519
|
+
*/
|
520
|
+
static proteus_fingerprint_prekeybundle(prekey: Uint8Array): string;
|
521
|
+
/**
|
522
|
+
* Returns: [`WasmCryptoResult<()>`]
|
523
|
+
*
|
524
|
+
* See [core_crypto::context::CentralContext::proteus_cryptobox_migrate]
|
525
|
+
* @param {string} path
|
526
|
+
* @returns {Promise<any>}
|
527
|
+
*/
|
528
|
+
proteus_cryptobox_migrate(path: string): Promise<any>;
|
529
|
+
/**
|
530
|
+
* Returns: [`WasmCryptoResult<u32>`]
|
531
|
+
*
|
532
|
+
* NOTE: This will clear the last error code.
|
533
|
+
* @returns {Promise<any>}
|
534
|
+
*/
|
535
|
+
proteus_last_error_code(): Promise<any>;
|
536
|
+
/**
|
537
|
+
* Returns: [`WasmCryptoResult<E2eiEnrollment>`]
|
538
|
+
*
|
539
|
+
* see [core_crypto::mls::context::CentralContext::e2ei_new_enrollment]
|
540
|
+
* @param {string} client_id
|
541
|
+
* @param {string} display_name
|
542
|
+
* @param {string} handle
|
543
|
+
* @param {string | undefined} team
|
544
|
+
* @param {number} expiry_sec
|
545
|
+
* @param {Ciphersuite} ciphersuite
|
546
|
+
* @returns {Promise<any>}
|
547
|
+
*/
|
548
|
+
e2ei_new_enrollment(client_id: string, display_name: string, handle: string, team: string | undefined, expiry_sec: number, ciphersuite: Ciphersuite): Promise<any>;
|
549
|
+
/**
|
550
|
+
* Returns: [`WasmCryptoResult<E2eiEnrollment>`]
|
551
|
+
*
|
552
|
+
* see [core_crypto::mls::context::CentralContext::e2ei_new_activation_enrollment]
|
553
|
+
* @param {string} display_name
|
554
|
+
* @param {string} handle
|
555
|
+
* @param {string | undefined} team
|
556
|
+
* @param {number} expiry_sec
|
557
|
+
* @param {Ciphersuite} ciphersuite
|
558
|
+
* @returns {Promise<any>}
|
559
|
+
*/
|
560
|
+
e2ei_new_activation_enrollment(display_name: string, handle: string, team: string | undefined, expiry_sec: number, ciphersuite: Ciphersuite): Promise<any>;
|
561
|
+
/**
|
562
|
+
* Returns: [`WasmCryptoResult<E2eiEnrollment>`]
|
563
|
+
*
|
564
|
+
* see [core_crypto::mls::context::CentralContext::e2ei_new_rotate_enrollment]
|
565
|
+
* @param {string | undefined} display_name
|
566
|
+
* @param {string | undefined} handle
|
567
|
+
* @param {string | undefined} team
|
568
|
+
* @param {number} expiry_sec
|
569
|
+
* @param {Ciphersuite} ciphersuite
|
570
|
+
* @returns {Promise<any>}
|
571
|
+
*/
|
572
|
+
e2ei_new_rotate_enrollment(display_name: string | undefined, handle: string | undefined, team: string | undefined, expiry_sec: number, ciphersuite: Ciphersuite): Promise<any>;
|
573
|
+
/**
|
574
|
+
* See [core_crypto::mls::context::CentralContext::e2ei_dump_pki_env]
|
575
|
+
* @returns {Promise<Promise<any>>}
|
576
|
+
*/
|
577
|
+
e2ei_dump_pki_env(): Promise<Promise<any>>;
|
578
|
+
/**
|
579
|
+
* See [core_crypto::mls::context::CentralContext::e2ei_is_pki_env_setup]
|
580
|
+
* @returns {Promise<Promise<any>>}
|
581
|
+
*/
|
582
|
+
e2ei_is_pki_env_setup(): Promise<Promise<any>>;
|
583
|
+
/**
|
584
|
+
* See [core_crypto::mls::context::CentralContext::e2ei_register_acme_ca]
|
585
|
+
* @param {string} trust_anchor_pem
|
586
|
+
* @returns {Promise<Promise<any>>}
|
587
|
+
*/
|
588
|
+
e2ei_register_acme_ca(trust_anchor_pem: string): Promise<Promise<any>>;
|
589
|
+
/**
|
590
|
+
* See [core_crypto::mls::context::CentralContext::e2ei_register_intermediate_ca]
|
591
|
+
* @param {string} cert_pem
|
592
|
+
* @returns {Promise<Promise<any>>}
|
593
|
+
*/
|
594
|
+
e2ei_register_intermediate_ca(cert_pem: string): Promise<Promise<any>>;
|
595
|
+
/**
|
596
|
+
* See [core_crypto::mls::context::CentralContext::e2ei_register_crl]
|
597
|
+
* @param {string} crl_dp
|
598
|
+
* @param {Uint8Array} crl_der
|
599
|
+
* @returns {Promise<Promise<any>>}
|
600
|
+
*/
|
601
|
+
e2ei_register_crl(crl_dp: string, crl_der: Uint8Array): Promise<Promise<any>>;
|
602
|
+
/**
|
603
|
+
* see [core_crypto::mls::context::CentralContext::e2ei_mls_init_only]
|
604
|
+
* @param {FfiWireE2EIdentity} enrollment
|
605
|
+
* @param {string} certificate_chain
|
606
|
+
* @param {number | undefined} [nb_key_package]
|
607
|
+
* @returns {Promise<any>}
|
608
|
+
*/
|
609
|
+
e2ei_mls_init_only(enrollment: FfiWireE2EIdentity, certificate_chain: string, nb_key_package?: number): Promise<any>;
|
610
|
+
/**
|
611
|
+
* Returns: [`WasmCryptoResult<CommitBundle>`]
|
612
|
+
* see [core_crypto::context::CentralContext::e2ei_rotate]
|
613
|
+
* @param {Uint8Array} conversation_id
|
614
|
+
* @returns {Promise<any>}
|
615
|
+
*/
|
616
|
+
e2ei_rotate(conversation_id: Uint8Array): Promise<any>;
|
617
|
+
/**
|
618
|
+
* see [core_crypto::mls::context::CentralContext::e2ei_rotate_all]
|
619
|
+
* @param {FfiWireE2EIdentity} enrollment
|
620
|
+
* @param {string} certificate_chain
|
621
|
+
* @param {number} new_key_packages_count
|
622
|
+
* @returns {Promise<any>}
|
623
|
+
*/
|
624
|
+
e2ei_rotate_all(enrollment: FfiWireE2EIdentity, certificate_chain: string, new_key_packages_count: number): Promise<any>;
|
625
|
+
/**
|
626
|
+
* see [core_crypto::mls::context::CentralContext::e2ei_enrollment_stash]
|
627
|
+
* @param {FfiWireE2EIdentity} enrollment
|
628
|
+
* @returns {Promise<any>}
|
629
|
+
*/
|
630
|
+
e2ei_enrollment_stash(enrollment: FfiWireE2EIdentity): Promise<any>;
|
631
|
+
/**
|
632
|
+
* see [core_crypto::mls::context::CentralContext::e2ei_enrollment_stash_pop]
|
633
|
+
* @param {Uint8Array} handle
|
634
|
+
* @returns {Promise<any>}
|
635
|
+
*/
|
636
|
+
e2ei_enrollment_stash_pop(handle: Uint8Array): Promise<any>;
|
637
|
+
/**
|
638
|
+
* Returns [`WasmCryptoResult<u8>`]
|
639
|
+
*
|
640
|
+
* see [core_crypto::mls::context::CentralContext::e2ei_conversation_state]
|
641
|
+
* @param {Uint8Array} conversation_id
|
642
|
+
* @returns {Promise<any>}
|
643
|
+
*/
|
644
|
+
e2ei_conversation_state(conversation_id: Uint8Array): Promise<any>;
|
645
|
+
/**
|
646
|
+
* Returns [`WasmCryptoResult<bool>`]
|
647
|
+
*
|
648
|
+
* see [core_crypto::mls::context::CentralContext::e2ei_is_enabled]
|
649
|
+
* @param {Ciphersuite} ciphersuite
|
650
|
+
* @returns {Promise<any>}
|
651
|
+
*/
|
652
|
+
e2ei_is_enabled(ciphersuite: Ciphersuite): Promise<any>;
|
653
|
+
/**
|
654
|
+
* Returns [`WasmCryptoResult<Vec<WireIdentity>>`]
|
655
|
+
*
|
656
|
+
* see [core_crypto::mls::context::CentralContext::get_device_identities]
|
657
|
+
* @param {Uint8Array} conversation_id
|
658
|
+
* @param {(Uint8Array)[]} device_ids
|
659
|
+
* @returns {Promise<any>}
|
660
|
+
*/
|
661
|
+
get_device_identities(conversation_id: Uint8Array, device_ids: (Uint8Array)[]): Promise<any>;
|
662
|
+
/**
|
663
|
+
* Returns [`WasmCryptoResult<HashMap<String, Vec<WireIdentity>>>`]
|
664
|
+
*
|
665
|
+
* see [core_crypto::mls::context::CentralContext::get_user_identities]
|
666
|
+
* @param {Uint8Array} conversation_id
|
667
|
+
* @param {(string)[]} user_ids
|
668
|
+
* @returns {Promise<any>}
|
669
|
+
*/
|
670
|
+
get_user_identities(conversation_id: Uint8Array, user_ids: (string)[]): Promise<any>;
|
671
|
+
/**
|
672
|
+
* Returns: [`WasmCryptoResult<u8>`]
|
673
|
+
*
|
674
|
+
* see [core_crypto::mls::context::CentralContext::get_credential_in_use]
|
675
|
+
* @param {Uint8Array} group_info
|
676
|
+
* @param {CredentialType} credential_type
|
677
|
+
* @returns {Promise<any>}
|
678
|
+
*/
|
679
|
+
get_credential_in_use(group_info: Uint8Array, credential_type: CredentialType): Promise<any>;
|
680
|
+
}
|
681
|
+
declare class CoreCryptoWasmLogger {
|
682
|
+
free(): void;
|
683
|
+
/**
|
684
|
+
* @param {Function} logger
|
685
|
+
* @param {any} ctx
|
686
|
+
*/
|
687
|
+
constructor(logger: Function, ctx: any);
|
688
|
+
}
|
689
|
+
/**
|
690
|
+
* see [core_crypto::prelude::MlsCustomConfiguration]
|
691
|
+
*/
|
692
|
+
declare class CustomConfiguration {
|
693
|
+
free(): void;
|
694
|
+
/**
|
695
|
+
* @param {number | undefined} [key_rotation_span]
|
696
|
+
* @param {WirePolicy | undefined} [wire_policy]
|
697
|
+
*/
|
698
|
+
constructor(key_rotation_span?: number, wire_policy?: WirePolicy);
|
699
|
+
}
|
700
|
+
/**
|
22
701
|
* Dump of the PKI environemnt as PEM
|
23
702
|
*/
|
24
703
|
export class E2eiDumpedPkiEnv {
|
@@ -36,6 +715,116 @@ export class E2eiDumpedPkiEnv {
|
|
36
715
|
*/
|
37
716
|
readonly root_ca: string;
|
38
717
|
}
|
718
|
+
declare class FfiWireE2EIdentity {
|
719
|
+
free(): void;
|
720
|
+
/**
|
721
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::directory_response]
|
722
|
+
* @param {Uint8Array} directory
|
723
|
+
* @returns {Promise<any>}
|
724
|
+
*/
|
725
|
+
directory_response(directory: Uint8Array): Promise<any>;
|
726
|
+
/**
|
727
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::new_account_request]
|
728
|
+
* @param {string} previous_nonce
|
729
|
+
* @returns {Promise<any>}
|
730
|
+
*/
|
731
|
+
new_account_request(previous_nonce: string): Promise<any>;
|
732
|
+
/**
|
733
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::new_account_response]
|
734
|
+
* @param {Uint8Array} account
|
735
|
+
* @returns {Promise<any>}
|
736
|
+
*/
|
737
|
+
new_account_response(account: Uint8Array): Promise<any>;
|
738
|
+
/**
|
739
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::new_order_request]
|
740
|
+
* @param {string} previous_nonce
|
741
|
+
* @returns {Promise<any>}
|
742
|
+
*/
|
743
|
+
new_order_request(previous_nonce: string): Promise<any>;
|
744
|
+
/**
|
745
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::new_order_response]
|
746
|
+
* @param {Uint8Array} order
|
747
|
+
* @returns {Promise<any>}
|
748
|
+
*/
|
749
|
+
new_order_response(order: Uint8Array): Promise<any>;
|
750
|
+
/**
|
751
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::new_authz_request]
|
752
|
+
* @param {string} url
|
753
|
+
* @param {string} previous_nonce
|
754
|
+
* @returns {Promise<any>}
|
755
|
+
*/
|
756
|
+
new_authz_request(url: string, previous_nonce: string): Promise<any>;
|
757
|
+
/**
|
758
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::new_authz_response]
|
759
|
+
* @param {Uint8Array} authz
|
760
|
+
* @returns {Promise<any>}
|
761
|
+
*/
|
762
|
+
new_authz_response(authz: Uint8Array): Promise<any>;
|
763
|
+
/**
|
764
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::create_dpop_token]
|
765
|
+
* @param {number} expiry_secs
|
766
|
+
* @param {string} backend_nonce
|
767
|
+
* @returns {Promise<any>}
|
768
|
+
*/
|
769
|
+
create_dpop_token(expiry_secs: number, backend_nonce: string): Promise<any>;
|
770
|
+
/**
|
771
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::new_dpop_challenge_request]
|
772
|
+
* @param {string} access_token
|
773
|
+
* @param {string} previous_nonce
|
774
|
+
* @returns {Promise<any>}
|
775
|
+
*/
|
776
|
+
new_dpop_challenge_request(access_token: string, previous_nonce: string): Promise<any>;
|
777
|
+
/**
|
778
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::new_dpop_challenge_response]
|
779
|
+
* @param {Uint8Array} challenge
|
780
|
+
* @returns {Promise<any>}
|
781
|
+
*/
|
782
|
+
new_dpop_challenge_response(challenge: Uint8Array): Promise<any>;
|
783
|
+
/**
|
784
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::new_oidc_challenge_request]
|
785
|
+
* @param {string} id_token
|
786
|
+
* @param {string} previous_nonce
|
787
|
+
* @returns {Promise<any>}
|
788
|
+
*/
|
789
|
+
new_oidc_challenge_request(id_token: string, previous_nonce: string): Promise<any>;
|
790
|
+
/**
|
791
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::new_oidc_challenge_response]
|
792
|
+
* @param {Uint8Array} challenge
|
793
|
+
* @returns {Promise<any>}
|
794
|
+
*/
|
795
|
+
new_oidc_challenge_response(challenge: Uint8Array): Promise<any>;
|
796
|
+
/**
|
797
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::check_order_request]
|
798
|
+
* @param {string} order_url
|
799
|
+
* @param {string} previous_nonce
|
800
|
+
* @returns {Promise<any>}
|
801
|
+
*/
|
802
|
+
check_order_request(order_url: string, previous_nonce: string): Promise<any>;
|
803
|
+
/**
|
804
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::check_order_response]
|
805
|
+
* @param {Uint8Array} order
|
806
|
+
* @returns {Promise<any>}
|
807
|
+
*/
|
808
|
+
check_order_response(order: Uint8Array): Promise<any>;
|
809
|
+
/**
|
810
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::finalize_request]
|
811
|
+
* @param {string} previous_nonce
|
812
|
+
* @returns {Promise<any>}
|
813
|
+
*/
|
814
|
+
finalize_request(previous_nonce: string): Promise<any>;
|
815
|
+
/**
|
816
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::finalize_response]
|
817
|
+
* @param {Uint8Array} finalize
|
818
|
+
* @returns {Promise<any>}
|
819
|
+
*/
|
820
|
+
finalize_response(finalize: Uint8Array): Promise<any>;
|
821
|
+
/**
|
822
|
+
* See [core_crypto::e2e_identity::WireE2eIdentity::certificate_request]
|
823
|
+
* @param {string} previous_nonce
|
824
|
+
* @returns {Promise<any>}
|
825
|
+
*/
|
826
|
+
certificate_request(previous_nonce: string): Promise<any>;
|
827
|
+
}
|
39
828
|
/**
|
40
829
|
* Result of an authorization creation.
|
41
830
|
* @see https://www.rfc-editor.org/rfc/rfc8555.html#section-7.5
|
@@ -62,12 +851,687 @@ export class NewAcmeAuthz {
|
|
62
851
|
export class NewAcmeOrder {
|
63
852
|
free(): void;
|
64
853
|
/**
|
65
|
-
*/
|
66
|
-
readonly authorizations: (Uint8Array)[];
|
854
|
+
*/
|
855
|
+
readonly authorizations: (Uint8Array)[];
|
856
|
+
/**
|
857
|
+
* Contains raw JSON data of this order. This is parsed by the underlying Rust library hence should not be accessed
|
858
|
+
*/
|
859
|
+
readonly delegate: Uint8Array;
|
860
|
+
}
|
861
|
+
declare class WireIdentity {
|
862
|
+
free(): void;
|
863
|
+
/**
|
864
|
+
*/
|
865
|
+
readonly client_id: string;
|
866
|
+
/**
|
867
|
+
*/
|
868
|
+
readonly credential_type: number;
|
869
|
+
/**
|
870
|
+
*/
|
871
|
+
readonly status: number;
|
872
|
+
/**
|
873
|
+
*/
|
874
|
+
readonly thumbprint: string;
|
875
|
+
/**
|
876
|
+
*/
|
877
|
+
readonly x509_identity: X509Identity | undefined;
|
878
|
+
}
|
879
|
+
declare class X509Identity {
|
880
|
+
free(): void;
|
881
|
+
/**
|
882
|
+
*/
|
883
|
+
readonly certificate: string;
|
884
|
+
/**
|
885
|
+
*/
|
886
|
+
readonly display_name: string;
|
887
|
+
/**
|
888
|
+
*/
|
889
|
+
readonly domain: string;
|
890
|
+
/**
|
891
|
+
*/
|
892
|
+
readonly handle: string;
|
893
|
+
/**
|
894
|
+
*/
|
895
|
+
readonly not_after: bigint;
|
896
|
+
/**
|
897
|
+
*/
|
898
|
+
readonly not_before: bigint;
|
899
|
+
/**
|
900
|
+
*/
|
901
|
+
readonly serial_number: string;
|
902
|
+
}
|
903
|
+
declare class CoreCryptoContext$1 {
|
904
|
+
#private;
|
905
|
+
/** @hidden */
|
906
|
+
private constructor();
|
907
|
+
/** @hidden */
|
908
|
+
static fromFfiContext(ctx: CoreCryptoContext): CoreCryptoContext$1;
|
909
|
+
/**
|
910
|
+
* Set arbitrary data to be retrieved by {@link getData}.
|
911
|
+
* This is meant to be used as a check point at the end of a transaction.
|
912
|
+
* The data should be limited to a reasonable size.
|
913
|
+
*/
|
914
|
+
setData(data: Uint8Array): Promise<void>;
|
915
|
+
/**
|
916
|
+
* Get data if it has previously been set by {@link setData}, or `undefined` otherwise.
|
917
|
+
* This is meant to be used as a check point at the end of a transaction.
|
918
|
+
*/
|
919
|
+
getData(): Promise<Uint8Array | undefined>;
|
920
|
+
/**
|
921
|
+
* Use this after {@link CoreCrypto.deferredInit} when you have a clientId. It initializes MLS.
|
922
|
+
*
|
923
|
+
* @param clientId - {@link CoreCryptoParams#clientId} but required
|
924
|
+
* @param ciphersuites - All the ciphersuites supported by this MLS client
|
925
|
+
* @param nbKeyPackage - number of initial KeyPackage to create when initializing the client
|
926
|
+
*/
|
927
|
+
mlsInit(clientId: ClientId, ciphersuites: Ciphersuite$1[], nbKeyPackage?: number): Promise<void>;
|
928
|
+
/**
|
929
|
+
* Generates a MLS KeyPair/CredentialBundle with a temporary, random client ID.
|
930
|
+
* This method is designed to be used in conjunction with {@link CoreCryptoContext.mlsInitWithClientId} and represents the first step in this process
|
931
|
+
*
|
932
|
+
* @param ciphersuites - All the ciphersuites supported by this MLS client
|
933
|
+
* @returns This returns the TLS-serialized identity key (i.e. the signature keypair's public key)
|
934
|
+
*/
|
935
|
+
mlsGenerateKeypair(ciphersuites: Ciphersuite$1[]): Promise<Uint8Array[]>;
|
936
|
+
/**
|
937
|
+
* Updates the current temporary Client ID with the newly provided one. This is the second step in the externally-generated clients process
|
938
|
+
*
|
939
|
+
* Important: This is designed to be called after {@link CoreCryptoContext.mlsGenerateKeypair}
|
940
|
+
*
|
941
|
+
* @param clientId - The newly-allocated client ID by the MLS Authentication Service
|
942
|
+
* @param signaturePublicKeys - The public key you were given at the first step; This is for authentication purposes
|
943
|
+
* @param ciphersuites - All the ciphersuites supported by this MLS client
|
944
|
+
*/
|
945
|
+
mlsInitWithClientId(clientId: ClientId, signaturePublicKeys: Uint8Array[], ciphersuites: Ciphersuite$1[]): Promise<void>;
|
946
|
+
/**
|
947
|
+
* Checks if the Client is member of a given conversation and if the MLS Group is loaded up
|
948
|
+
*
|
949
|
+
* @returns Whether the given conversation ID exists
|
950
|
+
*
|
951
|
+
* @example
|
952
|
+
* ```ts
|
953
|
+
* const cc = await CoreCrypto.init({ databaseName: "test", key: "test", clientId: "test" });
|
954
|
+
* const encoder = new TextEncoder();
|
955
|
+
* if (await cc.conversationExists(encoder.encode("my super chat"))) {
|
956
|
+
* // Do something
|
957
|
+
* } else {
|
958
|
+
* // Do something else
|
959
|
+
* }
|
960
|
+
* ```
|
961
|
+
*/
|
962
|
+
conversationExists(conversationId: ConversationId): Promise<boolean>;
|
963
|
+
/**
|
964
|
+
* Marks a conversation as child of another one
|
965
|
+
* This will mostly affect the behavior of the callbacks (the parentConversationClients parameter will be filled)
|
966
|
+
*
|
967
|
+
* @param childId - conversation identifier of the child conversation
|
968
|
+
* @param parentId - conversation identifier of the parent conversation
|
969
|
+
*/
|
970
|
+
markConversationAsChildOf(childId: ConversationId, parentId: ConversationId): Promise<void>;
|
971
|
+
/**
|
972
|
+
* Returns the current epoch of a conversation
|
973
|
+
*
|
974
|
+
* @returns the epoch of the conversation
|
975
|
+
*
|
976
|
+
* @example
|
977
|
+
* ```ts
|
978
|
+
* const cc = await CoreCrypto.init({ databaseName: "test", key: "test", clientId: "test" });
|
979
|
+
* const encoder = new TextEncoder();
|
980
|
+
* console.log(await cc.conversationEpoch(encoder.encode("my super chat")))
|
981
|
+
* ```
|
982
|
+
*/
|
983
|
+
conversationEpoch(conversationId: ConversationId): Promise<number>;
|
984
|
+
/**
|
985
|
+
* Returns the ciphersuite of a conversation
|
986
|
+
*
|
987
|
+
* @returns the ciphersuite of the conversation
|
988
|
+
*/
|
989
|
+
conversationCiphersuite(conversationId: ConversationId): Promise<Ciphersuite$1>;
|
990
|
+
/**
|
991
|
+
* Wipes and destroys the local storage of a given conversation / MLS group
|
992
|
+
*
|
993
|
+
* @param conversationId - The ID of the conversation to remove
|
994
|
+
*/
|
995
|
+
wipeConversation(conversationId: ConversationId): Promise<void>;
|
996
|
+
/**
|
997
|
+
* Creates a new conversation with the current client being the sole member
|
998
|
+
* You will want to use {@link addClientsToConversation} afterwards to add clients to this conversation
|
999
|
+
*
|
1000
|
+
* @param conversationId - The conversation ID; You can either make them random or let the backend attribute MLS group IDs
|
1001
|
+
* @param creatorCredentialType - kind of credential the creator wants to create the group with
|
1002
|
+
* @param configuration - configuration of the MLS group
|
1003
|
+
* @param configuration.ciphersuite - The {@link Ciphersuite} that is chosen to be the group's
|
1004
|
+
* @param configuration.externalSenders - Array of Client IDs that are qualified as external senders within the group
|
1005
|
+
* @param configuration.custom - {@link CustomConfiguration}
|
1006
|
+
*/
|
1007
|
+
createConversation(conversationId: ConversationId, creatorCredentialType: CredentialType$1, configuration?: ConversationConfiguration$1): Promise<any>;
|
1008
|
+
/**
|
1009
|
+
* Decrypts a message for a given conversation.
|
1010
|
+
*
|
1011
|
+
* Note: you should catch & ignore the following error reasons:
|
1012
|
+
* * "We already decrypted this message once"
|
1013
|
+
* * "You tried to join with an external commit but did not merge it yet. We will reapply this message for you when you merge your external commit"
|
1014
|
+
* * "Incoming message is for a future epoch. We will buffer it until the commit for that epoch arrives"
|
1015
|
+
*
|
1016
|
+
* @param conversationId - The ID of the conversation
|
1017
|
+
* @param payload - The encrypted message buffer
|
1018
|
+
*
|
1019
|
+
* @returns a {@link DecryptedMessage}. Note that {@link DecryptedMessage#message} is `undefined` when the encrypted payload contains a system message such a proposal or commit
|
1020
|
+
*/
|
1021
|
+
decryptMessage(conversationId: ConversationId, payload: Uint8Array): Promise<DecryptedMessage>;
|
1022
|
+
/**
|
1023
|
+
* Encrypts a message for a given conversation
|
1024
|
+
*
|
1025
|
+
* @param conversationId - The ID of the conversation
|
1026
|
+
* @param message - The plaintext message to encrypt
|
1027
|
+
*
|
1028
|
+
* @returns The encrypted payload for the given group. This needs to be fanned out to the other members of the group.
|
1029
|
+
*/
|
1030
|
+
encryptMessage(conversationId: ConversationId, message: Uint8Array): Promise<Uint8Array>;
|
1031
|
+
/**
|
1032
|
+
* Ingest a TLS-serialized MLS welcome message to join an existing MLS group
|
1033
|
+
*
|
1034
|
+
* Important: you have to catch the error with this reason "Although this Welcome seems valid, the local KeyPackage
|
1035
|
+
* it references has already been deleted locally. Join this group with an external commit", ignore it and then try
|
1036
|
+
* to join this group with an external commit.
|
1037
|
+
*
|
1038
|
+
* @param welcomeMessage - TLS-serialized MLS Welcome message
|
1039
|
+
* @param configuration - configuration of the MLS group
|
1040
|
+
* @returns The conversation ID of the newly joined group. You can use the same ID to decrypt/encrypt messages
|
1041
|
+
*/
|
1042
|
+
processWelcomeMessage(welcomeMessage: Uint8Array, configuration?: CustomConfiguration$1): Promise<WelcomeBundle>;
|
1043
|
+
/**
|
1044
|
+
* Get the client's public signature key. To upload to the DS for further backend side validation
|
1045
|
+
*
|
1046
|
+
* @param ciphersuite - of the signature key to get
|
1047
|
+
* @param credentialType - of the public key to look for
|
1048
|
+
* @returns the client's public signature key
|
1049
|
+
*/
|
1050
|
+
clientPublicKey(ciphersuite: Ciphersuite$1, credentialType: CredentialType$1): Promise<Uint8Array>;
|
1051
|
+
/**
|
1052
|
+
*
|
1053
|
+
* @param ciphersuite - of the KeyPackages to count
|
1054
|
+
* @param credentialType - of the KeyPackages to count
|
1055
|
+
* @returns The amount of valid, non-expired KeyPackages that are persisted in the backing storage
|
1056
|
+
*/
|
1057
|
+
clientValidKeypackagesCount(ciphersuite: Ciphersuite$1, credentialType: CredentialType$1): Promise<number>;
|
1058
|
+
/**
|
1059
|
+
* Fetches a requested amount of keypackages
|
1060
|
+
*
|
1061
|
+
* @param ciphersuite - of the KeyPackages to generate
|
1062
|
+
* @param credentialType - of the KeyPackages to generate
|
1063
|
+
* @param amountRequested - The amount of keypackages requested
|
1064
|
+
* @returns An array of length `amountRequested` containing TLS-serialized KeyPackages
|
1065
|
+
*/
|
1066
|
+
clientKeypackages(ciphersuite: Ciphersuite$1, credentialType: CredentialType$1, amountRequested: number): Promise<Array<Uint8Array>>;
|
1067
|
+
/**
|
1068
|
+
* Prunes local KeyPackages after making sure they also have been deleted on the backend side
|
1069
|
+
* You should only use this after {@link CoreCryptoContext.e2eiRotateAll}
|
1070
|
+
*
|
1071
|
+
* @param refs - KeyPackage references to delete obtained from a {RotateBundle}
|
1072
|
+
*/
|
1073
|
+
deleteKeypackages(refs: Uint8Array[]): Promise<void>;
|
1074
|
+
/**
|
1075
|
+
* Adds new clients to a conversation, assuming the current client has the right to add new clients to the conversation.
|
1076
|
+
*
|
1077
|
+
* **CAUTION**: {@link CoreCryptoContext.commitAccepted} **HAS TO** be called afterward **ONLY IF** the Delivery Service responds
|
1078
|
+
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
1079
|
+
* epoch, use new encryption secrets etc...
|
1080
|
+
*
|
1081
|
+
* @param conversationId - The ID of the conversation
|
1082
|
+
* @param keyPackages - KeyPackages of the new clients to add
|
1083
|
+
*
|
1084
|
+
* @returns A {@link CommitBundle}
|
1085
|
+
*/
|
1086
|
+
addClientsToConversation(conversationId: ConversationId, keyPackages: Uint8Array[]): Promise<MemberAddedMessages>;
|
1087
|
+
/**
|
1088
|
+
* Removes the provided clients from a conversation; Assuming those clients exist and the current client is allowed
|
1089
|
+
* to do so, otherwise this operation does nothing.
|
1090
|
+
*
|
1091
|
+
* **CAUTION**: {@link CoreCryptoContext.commitAccepted} **HAS TO** be called afterward **ONLY IF** the Delivery Service responds
|
1092
|
+
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
1093
|
+
* epoch, use new encryption secrets etc...
|
1094
|
+
*
|
1095
|
+
* @param conversationId - The ID of the conversation
|
1096
|
+
* @param clientIds - Array of Client IDs to remove.
|
1097
|
+
*
|
1098
|
+
* @returns A {@link CommitBundle}
|
1099
|
+
*/
|
1100
|
+
removeClientsFromConversation(conversationId: ConversationId, clientIds: ClientId[]): Promise<CommitBundle>;
|
1101
|
+
/**
|
1102
|
+
* Creates an update commit which forces every client to update their LeafNode in the conversation
|
1103
|
+
*
|
1104
|
+
* **CAUTION**: {@link CoreCryptoContext.commitAccepted} **HAS TO** be called afterward **ONLY IF** the Delivery Service responds
|
1105
|
+
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
1106
|
+
* epoch, use new encryption secrets etc...
|
1107
|
+
*
|
1108
|
+
* @param conversationId - The ID of the conversation
|
1109
|
+
*
|
1110
|
+
* @returns A {@link CommitBundle}
|
1111
|
+
*/
|
1112
|
+
updateKeyingMaterial(conversationId: ConversationId): Promise<CommitBundle>;
|
1113
|
+
/**
|
1114
|
+
* Commits the local pending proposals and returns the {@link CommitBundle} object containing what can result from this operation.
|
1115
|
+
*
|
1116
|
+
* **CAUTION**: {@link CoreCryptoContext.commitAccepted} **HAS TO** be called afterwards **ONLY IF** the Delivery Service responds
|
1117
|
+
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
1118
|
+
* epoch, use new encryption secrets etc...
|
1119
|
+
*
|
1120
|
+
* @param conversationId - The ID of the conversation
|
1121
|
+
*
|
1122
|
+
* @returns A {@link CommitBundle} or `undefined` when there was no pending proposal to commit
|
1123
|
+
*/
|
1124
|
+
commitPendingProposals(conversationId: ConversationId): Promise<CommitBundle | undefined>;
|
1125
|
+
/**
|
1126
|
+
* Creates a new proposal for the provided Conversation ID
|
1127
|
+
*
|
1128
|
+
* @param proposalType - The type of proposal, see {@link ProposalType}
|
1129
|
+
* @param args - The arguments of the proposal, see {@link ProposalArgs}, {@link AddProposalArgs} or {@link RemoveProposalArgs}
|
1130
|
+
*
|
1131
|
+
* @returns A {@link ProposalBundle} containing the Proposal and its reference in order to roll it back if necessary
|
1132
|
+
*/
|
1133
|
+
newProposal(proposalType: ProposalType, args: ProposalArgs | AddProposalArgs | RemoveProposalArgs): Promise<ProposalBundle>;
|
1134
|
+
/**
|
1135
|
+
* Creates a new external Add proposal for self client to join a conversation.
|
1136
|
+
*/
|
1137
|
+
newExternalProposal(externalProposalType: ExternalProposalType, args: ExternalAddProposalArgs): Promise<Uint8Array>;
|
1138
|
+
/**
|
1139
|
+
* Allows to create an external commit to "apply" to join a group through its GroupInfo.
|
1140
|
+
*
|
1141
|
+
* If the Delivery Service accepts the external commit, you have to {@link CoreCryptoContext.mergePendingGroupFromExternalCommit}
|
1142
|
+
* in order to get back a functional MLS group. On the opposite, if it rejects it, you can either retry by just
|
1143
|
+
* calling again {@link CoreCryptoContext.joinByExternalCommit}, no need to {@link CoreCryptoContext.clearPendingGroupFromExternalCommit}.
|
1144
|
+
* If you want to abort the operation (too many retries or the user decided to abort), you can use
|
1145
|
+
* {@link CoreCryptoContext.clearPendingGroupFromExternalCommit} in order not to bloat the user's storage but nothing
|
1146
|
+
* bad can happen if you forget to except some storage space wasted.
|
1147
|
+
*
|
1148
|
+
* @param groupInfo - a TLS encoded GroupInfo fetched from the Delivery Service
|
1149
|
+
* @param credentialType - kind of Credential to use for joining this group. If {@link CredentialType.Basic} is
|
1150
|
+
* chosen and no Credential has been created yet for it, a new one will be generated.
|
1151
|
+
* @param configuration - configuration of the MLS group
|
1152
|
+
* When {@link CredentialType.X509} is chosen, it fails when no Credential has been created for the given {@link Ciphersuite}.
|
1153
|
+
* @returns see {@link ConversationInitBundle}
|
1154
|
+
*/
|
1155
|
+
joinByExternalCommit(groupInfo: Uint8Array, credentialType: CredentialType$1, configuration?: CustomConfiguration$1): Promise<ConversationInitBundle>;
|
1156
|
+
/**
|
1157
|
+
* This merges the commit generated by {@link CoreCryptoContext.joinByExternalCommit}, persists the group permanently
|
1158
|
+
* and deletes the temporary one. This step makes the group operational and ready to encrypt/decrypt message
|
1159
|
+
*
|
1160
|
+
* @param conversationId - The ID of the conversation
|
1161
|
+
* @returns eventually decrypted buffered messages if any
|
1162
|
+
*/
|
1163
|
+
mergePendingGroupFromExternalCommit(conversationId: ConversationId): Promise<BufferedDecryptedMessage[] | undefined>;
|
1164
|
+
/**
|
1165
|
+
* In case the external commit generated by {@link CoreCryptoContext.joinByExternalCommit} is rejected by the Delivery Service, and we
|
1166
|
+
* want to abort this external commit once for all, we can wipe out the pending group from the keystore in order
|
1167
|
+
* not to waste space
|
1168
|
+
*
|
1169
|
+
* @param conversationId - The ID of the conversation
|
1170
|
+
*/
|
1171
|
+
clearPendingGroupFromExternalCommit(conversationId: ConversationId): Promise<void>;
|
1172
|
+
/**
|
1173
|
+
* Allows to mark the latest commit produced as "accepted" and be able to safely merge it into the local group state
|
1174
|
+
*
|
1175
|
+
* @param conversationId - The group's ID
|
1176
|
+
* @returns the messages from current epoch which had been buffered, if any
|
1177
|
+
*/
|
1178
|
+
commitAccepted(conversationId: ConversationId): Promise<BufferedDecryptedMessage[] | undefined>;
|
1179
|
+
/**
|
1180
|
+
* Allows to remove a pending proposal (rollback). Use this when backend rejects the proposal you just sent e.g. if permissions have changed meanwhile.
|
1181
|
+
*
|
1182
|
+
* **CAUTION**: only use this when you had an explicit response from the Delivery Service
|
1183
|
+
* e.g. 403 or 409. Do not use otherwise e.g. 5xx responses, timeout etc…
|
1184
|
+
*
|
1185
|
+
* @param conversationId - The group's ID
|
1186
|
+
* @param proposalRef - A reference to the proposal to delete. You get one when using {@link CoreCryptoContext.newProposal}
|
1187
|
+
*/
|
1188
|
+
clearPendingProposal(conversationId: ConversationId, proposalRef: ProposalRef): Promise<void>;
|
1189
|
+
/**
|
1190
|
+
* Allows to remove a pending commit (rollback). Use this when backend rejects the commit you just sent e.g. if permissions have changed meanwhile.
|
1191
|
+
*
|
1192
|
+
* **CAUTION**: only use this when you had an explicit response from the Delivery Service
|
1193
|
+
* e.g. 403. Do not use otherwise e.g. 5xx responses, timeout etc..
|
1194
|
+
* **DO NOT** use when Delivery Service responds 409, pending state will be renewed
|
1195
|
+
* in {@link CoreCryptoContext.decryptMessage}
|
1196
|
+
*
|
1197
|
+
* @param conversationId - The group's ID
|
1198
|
+
*/
|
1199
|
+
clearPendingCommit(conversationId: ConversationId): Promise<void>;
|
1200
|
+
/**
|
1201
|
+
* Derives a new key from the group
|
1202
|
+
*
|
1203
|
+
* @param conversationId - The group's ID
|
1204
|
+
* @param keyLength - the length of the key to be derived. If the value is higher than the
|
1205
|
+
* bounds of `u16` or the context hash * 255, an error will be returned
|
1206
|
+
*
|
1207
|
+
* @returns A `Uint8Array` representing the derived key
|
1208
|
+
*/
|
1209
|
+
exportSecretKey(conversationId: ConversationId, keyLength: number): Promise<Uint8Array>;
|
1210
|
+
/**
|
1211
|
+
* Returns the raw public key of the single external sender present in this group.
|
1212
|
+
* This should be used to initialize a subconversation
|
1213
|
+
*
|
1214
|
+
* @param conversationId - The group's ID
|
1215
|
+
*
|
1216
|
+
* @returns A `Uint8Array` representing the external sender raw public key
|
1217
|
+
*/
|
1218
|
+
getExternalSender(conversationId: ConversationId): Promise<Uint8Array>;
|
1219
|
+
/**
|
1220
|
+
* Returns all clients from group's members
|
1221
|
+
*
|
1222
|
+
* @param conversationId - The group's ID
|
1223
|
+
*
|
1224
|
+
* @returns A list of clients from the members of the group
|
1225
|
+
*/
|
1226
|
+
getClientIds(conversationId: ConversationId): Promise<ClientId[]>;
|
1227
|
+
/**
|
1228
|
+
* Allows {@link CoreCryptoContext} to act as a CSPRNG provider
|
1229
|
+
* @note The underlying CSPRNG algorithm is ChaCha20 and takes in account the external seed provider.
|
1230
|
+
*
|
1231
|
+
* @param length - The number of bytes to be returned in the `Uint8Array`
|
1232
|
+
*
|
1233
|
+
* @returns A `Uint8Array` buffer that contains `length` cryptographically-secure random bytes
|
1234
|
+
*/
|
1235
|
+
randomBytes(length: number): Promise<Uint8Array>;
|
1236
|
+
/**
|
1237
|
+
* Create a Proteus session using a prekey
|
1238
|
+
*
|
1239
|
+
* @param sessionId - ID of the Proteus session
|
1240
|
+
* @param prekey - CBOR-encoded Proteus prekey of the other client
|
1241
|
+
*/
|
1242
|
+
proteusSessionFromPrekey(sessionId: string, prekey: Uint8Array): Promise<void>;
|
1243
|
+
/**
|
1244
|
+
* Create a Proteus session from a handshake message
|
1245
|
+
*
|
1246
|
+
* @param sessionId - ID of the Proteus session
|
1247
|
+
* @param envelope - CBOR-encoded Proteus message
|
1248
|
+
*
|
1249
|
+
* @returns A `Uint8Array` containing the message that was sent along with the session handshake
|
1250
|
+
*/
|
1251
|
+
proteusSessionFromMessage(sessionId: string, envelope: Uint8Array): Promise<Uint8Array>;
|
1252
|
+
/**
|
1253
|
+
* Locally persists a session to the keystore
|
1254
|
+
*
|
1255
|
+
* **Note**: This isn't usually needed as persisting sessions happens automatically when decrypting/encrypting messages and initializing Sessions
|
1256
|
+
*
|
1257
|
+
* @param sessionId - ID of the Proteus session
|
1258
|
+
*/
|
1259
|
+
proteusSessionSave(sessionId: string): Promise<void>;
|
1260
|
+
/**
|
1261
|
+
* Deletes a session
|
1262
|
+
* Note: this also deletes the persisted data within the keystore
|
1263
|
+
*
|
1264
|
+
* @param sessionId - ID of the Proteus session
|
1265
|
+
*/
|
1266
|
+
proteusSessionDelete(sessionId: string): Promise<void>;
|
1267
|
+
/**
|
1268
|
+
* Checks if a session exists
|
1269
|
+
*
|
1270
|
+
* @param sessionId - ID of the Proteus session
|
1271
|
+
*
|
1272
|
+
* @returns whether the session exists or not
|
1273
|
+
*/
|
1274
|
+
proteusSessionExists(sessionId: string): Promise<boolean>;
|
1275
|
+
/**
|
1276
|
+
* Decrypt an incoming message for an existing Proteus session
|
1277
|
+
*
|
1278
|
+
* @param sessionId - ID of the Proteus session
|
1279
|
+
* @param ciphertext - CBOR encoded, encrypted proteus message
|
1280
|
+
* @returns The decrypted payload contained within the message
|
1281
|
+
*/
|
1282
|
+
proteusDecrypt(sessionId: string, ciphertext: Uint8Array): Promise<Uint8Array>;
|
1283
|
+
/**
|
1284
|
+
* Encrypt a message for a given Proteus session
|
1285
|
+
*
|
1286
|
+
* @param sessionId - ID of the Proteus session
|
1287
|
+
* @param plaintext - payload to encrypt
|
1288
|
+
* @returns The CBOR-serialized encrypted message
|
1289
|
+
*/
|
1290
|
+
proteusEncrypt(sessionId: string, plaintext: Uint8Array): Promise<Uint8Array>;
|
1291
|
+
/**
|
1292
|
+
* Batch encryption for proteus messages
|
1293
|
+
* This is used to minimize FFI roundtrips when used in the context of a multi-client session (i.e. conversation)
|
1294
|
+
*
|
1295
|
+
* @param sessions - List of Proteus session IDs to encrypt the message for
|
1296
|
+
* @param plaintext - payload to encrypt
|
1297
|
+
* @returns A map indexed by each session ID and the corresponding CBOR-serialized encrypted message for this session
|
1298
|
+
*/
|
1299
|
+
proteusEncryptBatched(sessions: string[], plaintext: Uint8Array): Promise<Map<string, Uint8Array>>;
|
1300
|
+
/**
|
1301
|
+
* Creates a new prekey with the requested ID.
|
1302
|
+
*
|
1303
|
+
* @param prekeyId - ID of the PreKey to generate. This cannot be bigger than a u16
|
1304
|
+
* @returns: A CBOR-serialized version of the PreKeyBundle corresponding to the newly generated and stored PreKey
|
1305
|
+
*/
|
1306
|
+
proteusNewPrekey(prekeyId: number): Promise<Uint8Array>;
|
1307
|
+
/**
|
1308
|
+
* Creates a new prekey with an automatically generated ID..
|
1309
|
+
*
|
1310
|
+
* @returns A CBOR-serialized version of the PreKeyBundle corresponding to the newly generated and stored PreKey accompanied by its ID
|
1311
|
+
*/
|
1312
|
+
proteusNewPrekeyAuto(): Promise<ProteusAutoPrekeyBundle>;
|
1313
|
+
/**
|
1314
|
+
* Proteus last resort prekey stuff
|
1315
|
+
*
|
1316
|
+
* @returns A CBOR-serialize version of the PreKeyBundle associated with the last resort PreKey (holding the last resort prekey id)
|
1317
|
+
*/
|
1318
|
+
proteusLastResortPrekey(): Promise<Uint8Array>;
|
1319
|
+
/**
|
1320
|
+
* @returns The last resort PreKey id
|
1321
|
+
*/
|
1322
|
+
static proteusLastResortPrekeyId(): number;
|
1323
|
+
/**
|
1324
|
+
* Proteus public key fingerprint
|
1325
|
+
* It's basically the public key encoded as an hex string
|
1326
|
+
*
|
1327
|
+
* @returns Hex-encoded public key string
|
1328
|
+
*/
|
1329
|
+
proteusFingerprint(): Promise<string>;
|
1330
|
+
/**
|
1331
|
+
* Proteus session local fingerprint
|
1332
|
+
*
|
1333
|
+
* @param sessionId - ID of the Proteus session
|
1334
|
+
* @returns Hex-encoded public key string
|
1335
|
+
*/
|
1336
|
+
proteusFingerprintLocal(sessionId: string): Promise<string>;
|
1337
|
+
/**
|
1338
|
+
* Proteus session remote fingerprint
|
1339
|
+
*
|
1340
|
+
* @param sessionId - ID of the Proteus session
|
1341
|
+
* @returns Hex-encoded public key string
|
1342
|
+
*/
|
1343
|
+
proteusFingerprintRemote(sessionId: string): Promise<string>;
|
1344
|
+
/**
|
1345
|
+
* Hex-encoded fingerprint of the given prekey
|
1346
|
+
*
|
1347
|
+
* @param prekey - the prekey bundle to get the fingerprint from
|
1348
|
+
* @returns Hex-encoded public key string
|
1349
|
+
**/
|
1350
|
+
static proteusFingerprintPrekeybundle(prekey: Uint8Array): string;
|
1351
|
+
/**
|
1352
|
+
* Imports all the data stored by Cryptobox into the CoreCrypto keystore
|
1353
|
+
*
|
1354
|
+
* @param storeName - The name of the IndexedDB store where the data is stored
|
1355
|
+
*/
|
1356
|
+
proteusCryptoboxMigrate(storeName: string): Promise<void>;
|
1357
|
+
/**
|
1358
|
+
* Note: this call clears out the code and resets it to 0 (aka no error)
|
1359
|
+
* @returns the last proteus error code that occured.
|
1360
|
+
*/
|
1361
|
+
proteusLastErrorCode(): Promise<number>;
|
1362
|
+
/**
|
1363
|
+
* Creates an enrollment instance with private key material you can use in order to fetch
|
1364
|
+
* a new x509 certificate from the acme server.
|
1365
|
+
*
|
1366
|
+
* @param clientId - client identifier e.g. `b7ac11a4-8f01-4527-af88-1c30885a7931:6add501bacd1d90e@example.com`
|
1367
|
+
* @param displayName - human-readable name displayed in the application e.g. `Smith, Alice M (QA)`
|
1368
|
+
* @param handle - user handle e.g. `alice.smith.qa@example.com`
|
1369
|
+
* @param expirySec - generated x509 certificate expiry
|
1370
|
+
* @param ciphersuite - for generating signing key material
|
1371
|
+
* @param team - name of the Wire team a user belongs to
|
1372
|
+
* @returns The new {@link E2eiEnrollment} enrollment instance to use with {@link CoreCryptoContext.e2eiMlsInitOnly}
|
1373
|
+
*/
|
1374
|
+
e2eiNewEnrollment(clientId: string, displayName: string, handle: string, expirySec: number, ciphersuite: Ciphersuite$1, team?: string): Promise<E2eiEnrollment>;
|
1375
|
+
/**
|
1376
|
+
* Generates an E2EI enrollment instance for a "regular" client (with a Basic credential) willing to migrate to E2EI.
|
1377
|
+
* Once the enrollment is finished, use the instance in {@link CoreCryptoContext.e2eiRotateAll} to do the rotation.
|
1378
|
+
*
|
1379
|
+
* @param displayName - human-readable name displayed in the application e.g. `Smith, Alice M (QA)`
|
1380
|
+
* @param handle - user handle e.g. `alice.smith.qa@example.com`
|
1381
|
+
* @param expirySec - generated x509 certificate expiry
|
1382
|
+
* @param ciphersuite - for generating signing key material
|
1383
|
+
* @param team - name of the Wire team a user belongs to
|
1384
|
+
* @returns The new {@link E2eiEnrollment} enrollment instance to use with {@link CoreCryptoContext.e2eiRotateAll}
|
1385
|
+
*/
|
1386
|
+
e2eiNewActivationEnrollment(displayName: string, handle: string, expirySec: number, ciphersuite: Ciphersuite$1, team?: string): Promise<E2eiEnrollment>;
|
1387
|
+
/**
|
1388
|
+
* Generates an E2EI enrollment instance for a E2EI client (with a X509 certificate credential)
|
1389
|
+
* having to change/rotate their credential, either because the former one is expired or it
|
1390
|
+
* has been revoked. It lets you change the DisplayName or the handle
|
1391
|
+
* if you need to. Once the enrollment is finished, use the instance in {@link CoreCryptoContext.e2eiRotateAll} to do the rotation.
|
1392
|
+
*
|
1393
|
+
* @param expirySec - generated x509 certificate expiry
|
1394
|
+
* @param ciphersuite - for generating signing key material
|
1395
|
+
* @param displayName - human-readable name displayed in the application e.g. `Smith, Alice M (QA)`
|
1396
|
+
* @param handle - user handle e.g. `alice.smith.qa@example.com`
|
1397
|
+
* @param team - name of the Wire team a user belongs to
|
1398
|
+
* @returns The new {@link E2eiEnrollment} enrollment instance to use with {@link CoreCryptoContext.e2eiRotateAll}
|
1399
|
+
*/
|
1400
|
+
e2eiNewRotateEnrollment(expirySec: number, ciphersuite: Ciphersuite$1, displayName?: string, handle?: string, team?: string): Promise<E2eiEnrollment>;
|
1401
|
+
/**
|
1402
|
+
* Use this method to initialize end-to-end identity when a client signs up and the grace period is already expired ;
|
1403
|
+
* that means he cannot initialize with a Basic credential
|
1404
|
+
*
|
1405
|
+
* @param enrollment - the enrollment instance used to fetch the certificates
|
1406
|
+
* @param certificateChain - the raw response from ACME server
|
1407
|
+
* @param nbKeyPackage - number of initial KeyPackage to create when initializing the client
|
1408
|
+
* @returns a MlsClient initialized with only a x509 credential
|
1409
|
+
*/
|
1410
|
+
e2eiMlsInitOnly(enrollment: E2eiEnrollment, certificateChain: string, nbKeyPackage?: number): Promise<string[] | undefined>;
|
1411
|
+
/**
|
1412
|
+
* Dumps the PKI environment as PEM
|
1413
|
+
*
|
1414
|
+
* @returns a struct with different fields representing the PKI environment as PEM strings
|
1415
|
+
*/
|
1416
|
+
e2eiDumpPKIEnv(): Promise<E2eiDumpedPkiEnv | undefined>;
|
1417
|
+
/**
|
1418
|
+
* @returns whether the E2EI PKI environment is setup (i.e. Root CA, Intermediates, CRLs)
|
1419
|
+
*/
|
1420
|
+
e2eiIsPKIEnvSetup(): Promise<boolean>;
|
1421
|
+
/**
|
1422
|
+
* Registers a Root Trust Anchor CA for the use in E2EI processing.
|
1423
|
+
*
|
1424
|
+
* Please note that without a Root Trust Anchor, all validations *will* fail;
|
1425
|
+
* So this is the first step to perform after initializing your E2EI client
|
1426
|
+
*
|
1427
|
+
* @param trustAnchorPEM - PEM certificate to anchor as a Trust Root
|
1428
|
+
*/
|
1429
|
+
e2eiRegisterAcmeCA(trustAnchorPEM: string): Promise<void>;
|
1430
|
+
/**
|
1431
|
+
* Registers an Intermediate CA for the use in E2EI processing.
|
1432
|
+
*
|
1433
|
+
* Please note that a Root Trust Anchor CA is needed to validate Intermediate CAs;
|
1434
|
+
* You **need** to have a Root CA registered before calling this
|
1435
|
+
*
|
1436
|
+
* @param certPEM - PEM certificate to register as an Intermediate CA
|
1437
|
+
*/
|
1438
|
+
e2eiRegisterIntermediateCA(certPEM: string): Promise<string[] | undefined>;
|
1439
|
+
/**
|
1440
|
+
* Registers a CRL for the use in E2EI processing.
|
1441
|
+
*
|
1442
|
+
* Please note that a Root Trust Anchor CA is needed to validate CRLs;
|
1443
|
+
* You **need** to have a Root CA registered before calling this
|
1444
|
+
*
|
1445
|
+
* @param crlDP - CRL Distribution Point; Basically the URL you fetched it from
|
1446
|
+
* @param crlDER - DER representation of the CRL
|
1447
|
+
*
|
1448
|
+
* @returns a {@link CRLRegistration} with the dirty state of the new CRL (see struct) and its expiration timestamp
|
1449
|
+
*/
|
1450
|
+
e2eiRegisterCRL(crlDP: string, crlDER: Uint8Array): Promise<CRLRegistration>;
|
1451
|
+
/**
|
1452
|
+
* Creates an update commit which replaces your leaf containing basic credentials with a leaf node containing x509 credentials in the conversation.
|
1453
|
+
*
|
1454
|
+
* NOTE: you can only call this after you've completed the enrollment for an end-to-end identity, calling this without
|
1455
|
+
* a valid end-to-end identity will result in an error.
|
1456
|
+
*
|
1457
|
+
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called afterward **ONLY IF** the Delivery Service responds
|
1458
|
+
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
1459
|
+
* epoch, use new encryption secrets etc...
|
1460
|
+
*
|
1461
|
+
* @param conversationId - The ID of the conversation
|
1462
|
+
*
|
1463
|
+
* @returns A {@link CommitBundle}
|
1464
|
+
*/
|
1465
|
+
e2eiRotate(conversationId: ConversationId): Promise<CommitBundle>;
|
1466
|
+
/**
|
1467
|
+
* Creates a commit in all local conversations for changing the credential. Requires first
|
1468
|
+
* having enrolled a new X509 certificate with either {@link CoreCryptoContext.e2eiNewActivationEnrollment}
|
1469
|
+
* or {@link CoreCryptoContext.e2eiNewRotateEnrollment}
|
1470
|
+
*
|
1471
|
+
* @param enrollment - the enrollment instance used to fetch the certificates
|
1472
|
+
* @param certificateChain - the raw response from ACME server
|
1473
|
+
* @param newKeyPackageCount - number of KeyPackages with new identity to generate
|
1474
|
+
* @returns a {@link RotateBundle} with commits to fan-out to other group members, KeyPackages to upload and old ones to delete
|
1475
|
+
*/
|
1476
|
+
e2eiRotateAll(enrollment: E2eiEnrollment, certificateChain: string, newKeyPackageCount: number): Promise<RotateBundle>;
|
1477
|
+
/**
|
1478
|
+
* Allows persisting an active enrollment (for example while redirecting the user during OAuth) in order to resume
|
1479
|
+
* it later with {@link e2eiEnrollmentStashPop}
|
1480
|
+
*
|
1481
|
+
* @param enrollment the enrollment instance to persist
|
1482
|
+
* @returns a handle to fetch the enrollment later with {@link e2eiEnrollmentStashPop}
|
1483
|
+
*/
|
1484
|
+
e2eiEnrollmentStash(enrollment: E2eiEnrollment): Promise<Uint8Array>;
|
1485
|
+
/**
|
1486
|
+
* Fetches the persisted enrollment and deletes it from the keystore
|
1487
|
+
*
|
1488
|
+
* @param handle returned by {@link e2eiEnrollmentStash}
|
1489
|
+
* @returns the persisted enrollment instance
|
1490
|
+
*/
|
1491
|
+
e2eiEnrollmentStashPop(handle: Uint8Array): Promise<E2eiEnrollment>;
|
1492
|
+
/**
|
1493
|
+
* Indicates when to mark a conversation as not verified i.e. when not all its members have a X509.
|
1494
|
+
* Credential generated by Wire's end-to-end identity enrollment
|
1495
|
+
*
|
1496
|
+
* @param conversationId The group's ID
|
1497
|
+
* @returns the conversation state given current members
|
1498
|
+
*/
|
1499
|
+
e2eiConversationState(conversationId: ConversationId): Promise<E2eiConversationState>;
|
1500
|
+
/**
|
1501
|
+
* Returns true when end-to-end-identity is enabled for the given Ciphersuite
|
1502
|
+
*
|
1503
|
+
* @param ciphersuite of the credential to check
|
1504
|
+
* @returns true if end-to-end identity is enabled for the given ciphersuite
|
1505
|
+
*/
|
1506
|
+
e2eiIsEnabled(ciphersuite: Ciphersuite$1): Promise<boolean>;
|
1507
|
+
/**
|
1508
|
+
* From a given conversation, get the identity of the members supplied. Identity is only present for members with a
|
1509
|
+
* Certificate Credential (after turning on end-to-end identity).
|
1510
|
+
*
|
1511
|
+
* @param conversationId - identifier of the conversation
|
1512
|
+
* @param deviceIds - identifiers of the devices
|
1513
|
+
* @returns identities or if no member has a x509 certificate, it will return an empty List
|
1514
|
+
*/
|
1515
|
+
getDeviceIdentities(conversationId: ConversationId, deviceIds: ClientId[]): Promise<WireIdentity$1[]>;
|
1516
|
+
/**
|
1517
|
+
* From a given conversation, get the identity of the users (device holders) supplied.
|
1518
|
+
* Identity is only present for devices with a Certificate Credential (after turning on end-to-end identity).
|
1519
|
+
* If no member has a x509 certificate, it will return an empty Vec.
|
1520
|
+
*
|
1521
|
+
* @param conversationId - identifier of the conversation
|
1522
|
+
* @param userIds - user identifiers hyphenated UUIDv4 e.g. 'bd4c7053-1c5a-4020-9559-cd7bf7961954'
|
1523
|
+
* @returns a Map with all the identities for a given users. Consumers are then recommended to reduce those identities to determine the actual status of a user.
|
1524
|
+
*/
|
1525
|
+
getUserIdentities(conversationId: ConversationId, userIds: string[]): Promise<Map<string, WireIdentity$1[]>>;
|
67
1526
|
/**
|
68
|
-
|
69
|
-
|
70
|
-
|
1527
|
+
* Gets the e2ei conversation state from a `GroupInfo`. Useful to check if the group has e2ei
|
1528
|
+
* turned on or not before joining it.
|
1529
|
+
*
|
1530
|
+
* @param groupInfo - a TLS encoded GroupInfo fetched from the Delivery Service
|
1531
|
+
* @param credentialType - kind of Credential to check usage of. Defaults to X509 for now as no other value will give any result.
|
1532
|
+
* @returns see {@link E2eiConversationState}
|
1533
|
+
*/
|
1534
|
+
getCredentialInUse(groupInfo: Uint8Array, credentialType?: CredentialType$1): Promise<E2eiConversationState>;
|
71
1535
|
}
|
72
1536
|
/**
|
73
1537
|
* Error wrapper that takes care of extracting rich error details across the FFI (through JSON parsing)
|
@@ -83,14 +1547,14 @@ export declare class CoreCryptoError extends Error {
|
|
83
1547
|
proteusErrorCode: number;
|
84
1548
|
private constructor();
|
85
1549
|
private static fallback;
|
86
|
-
static build(msg: string, ...params:
|
1550
|
+
static build(msg: string, ...params: unknown[]): CoreCryptoError | Error;
|
87
1551
|
static fromStdError(e: Error): CoreCryptoError | Error;
|
88
1552
|
static asyncMapErr<T>(p: Promise<T>): Promise<T>;
|
89
1553
|
}
|
90
1554
|
/**
|
91
1555
|
* see [core_crypto::prelude::CiphersuiteName]
|
92
1556
|
*/
|
93
|
-
|
1557
|
+
declare enum Ciphersuite$1 {
|
94
1558
|
/**
|
95
1559
|
* DH KEM x25519 | AES-GCM 128 | SHA2-256 | Ed25519
|
96
1560
|
*/
|
@@ -120,7 +1584,7 @@ export declare enum Ciphersuite {
|
|
120
1584
|
*/
|
121
1585
|
MLS_256_DHKEMP384_AES256GCM_SHA384_P384 = 7
|
122
1586
|
}
|
123
|
-
|
1587
|
+
declare enum CredentialType$1 {
|
124
1588
|
/**
|
125
1589
|
* Just a KeyPair
|
126
1590
|
*/
|
@@ -133,11 +1597,11 @@ export declare enum CredentialType {
|
|
133
1597
|
/**
|
134
1598
|
* Configuration object for new conversations
|
135
1599
|
*/
|
136
|
-
|
1600
|
+
interface ConversationConfiguration$1 {
|
137
1601
|
/**
|
138
1602
|
* Conversation ciphersuite
|
139
1603
|
*/
|
140
|
-
ciphersuite?: Ciphersuite;
|
1604
|
+
ciphersuite?: Ciphersuite$1;
|
141
1605
|
/**
|
142
1606
|
* List of client IDs that are allowed to be external senders of commits
|
143
1607
|
*/
|
@@ -145,12 +1609,12 @@ export interface ConversationConfiguration {
|
|
145
1609
|
/**
|
146
1610
|
* Implementation specific configuration
|
147
1611
|
*/
|
148
|
-
custom?: CustomConfiguration;
|
1612
|
+
custom?: CustomConfiguration$1;
|
149
1613
|
}
|
150
1614
|
/**
|
151
1615
|
* see [core_crypto::prelude::MlsWirePolicy]
|
152
1616
|
*/
|
153
|
-
|
1617
|
+
declare enum WirePolicy$1 {
|
154
1618
|
/**
|
155
1619
|
* Handshake messages are never encrypted
|
156
1620
|
*/
|
@@ -163,7 +1627,7 @@ export declare enum WirePolicy {
|
|
163
1627
|
/**
|
164
1628
|
* Implementation specific configuration object for a conversation
|
165
1629
|
*/
|
166
|
-
|
1630
|
+
interface CustomConfiguration$1 {
|
167
1631
|
/**
|
168
1632
|
* Duration in seconds after which we will automatically force a self_update commit
|
169
1633
|
* Note: This isn't currently implemented
|
@@ -173,7 +1637,7 @@ export interface CustomConfiguration {
|
|
173
1637
|
* Defines if handshake messages are encrypted or not
|
174
1638
|
* Note: Ciphertext is not currently supported by wire-server
|
175
1639
|
*/
|
176
|
-
wirePolicy?: WirePolicy;
|
1640
|
+
wirePolicy?: WirePolicy$1;
|
177
1641
|
}
|
178
1642
|
/**
|
179
1643
|
* Alias for conversation IDs.
|
@@ -370,7 +1834,7 @@ export interface CoreCryptoParams extends CoreCryptoDeferredParams {
|
|
370
1834
|
/**
|
371
1835
|
* All the ciphersuites this MLS client can support
|
372
1836
|
*/
|
373
|
-
ciphersuites: Ciphersuite[];
|
1837
|
+
ciphersuites: Ciphersuite$1[];
|
374
1838
|
/**
|
375
1839
|
* Number of initial KeyPackage to create when initializing the client
|
376
1840
|
*/
|
@@ -454,7 +1918,7 @@ export interface DecryptedMessage {
|
|
454
1918
|
* Only present when the credential is a x509 certificate
|
455
1919
|
* Present for all messages
|
456
1920
|
*/
|
457
|
-
identity?: WireIdentity;
|
1921
|
+
identity?: WireIdentity$1;
|
458
1922
|
/**
|
459
1923
|
* Only set when the decrypted message is a commit.
|
460
1924
|
* Contains buffered messages for next epoch which were received before the commit creating the epoch
|
@@ -497,7 +1961,7 @@ export interface BufferedDecryptedMessage {
|
|
497
1961
|
/**
|
498
1962
|
* see {@link DecryptedMessage.identity}
|
499
1963
|
*/
|
500
|
-
identity?: WireIdentity;
|
1964
|
+
identity?: WireIdentity$1;
|
501
1965
|
/**
|
502
1966
|
* see {@link DecryptedMessage.crlNewDistributionPoints}
|
503
1967
|
*/
|
@@ -507,7 +1971,7 @@ export interface BufferedDecryptedMessage {
|
|
507
1971
|
* Represents the identity claims identifying a client
|
508
1972
|
* Those claims are verifiable by any member in the group
|
509
1973
|
*/
|
510
|
-
|
1974
|
+
interface WireIdentity$1 {
|
511
1975
|
/**
|
512
1976
|
* Unique client identifier
|
513
1977
|
*/
|
@@ -523,16 +1987,16 @@ export interface WireIdentity {
|
|
523
1987
|
/**
|
524
1988
|
* Indicates whether the credential is Basic or X509
|
525
1989
|
*/
|
526
|
-
credentialType: CredentialType;
|
1990
|
+
credentialType: CredentialType$1;
|
527
1991
|
/**
|
528
1992
|
* In case {@link credentialType} is {@link CredentialType.X509} this is populated
|
529
1993
|
*/
|
530
|
-
x509Identity?: X509Identity;
|
1994
|
+
x509Identity?: X509Identity$1;
|
531
1995
|
}
|
532
1996
|
/**
|
533
1997
|
* Represents the parts of {@link WireIdentity} that are specific to a X509 certificate (and not a Basic one).
|
534
1998
|
*/
|
535
|
-
|
1999
|
+
interface X509Identity$1 {
|
536
2000
|
/**
|
537
2001
|
* User handle e.g. `john_wire`
|
538
2002
|
*/
|
@@ -562,6 +2026,8 @@ export interface X509Identity {
|
|
562
2026
|
*/
|
563
2027
|
notAfter: bigint;
|
564
2028
|
}
|
2029
|
+
export declare function normalizeEnum<T>(enumType: T, value: number): T[keyof T];
|
2030
|
+
export declare const mapWireIdentity: (ffiIdentity?: WireIdentity) => WireIdentity$1 | undefined;
|
565
2031
|
export interface AcmeDirectory {
|
566
2032
|
/**
|
567
2033
|
* URL for fetching a new nonce. Use this only for creating a new account.
|
@@ -703,12 +2169,12 @@ export interface ExternalAddProposalArgs extends ExternalProposalArgs {
|
|
703
2169
|
/**
|
704
2170
|
* {@link Ciphersuite} to propose to join the MLS group with.
|
705
2171
|
*/
|
706
|
-
ciphersuite: Ciphersuite;
|
2172
|
+
ciphersuite: Ciphersuite$1;
|
707
2173
|
/**
|
708
2174
|
* Fails when it is {@link CredentialType.X509} and no Credential has been created
|
709
2175
|
* for it beforehand with {@link CoreCrypto.e2eiMlsInit} or variants.
|
710
2176
|
*/
|
711
|
-
credentialType: CredentialType;
|
2177
|
+
credentialType: CredentialType$1;
|
712
2178
|
}
|
713
2179
|
export interface CoreCryptoCallbacks {
|
714
2180
|
/**
|
@@ -771,8 +2237,10 @@ export declare enum CoreCryptoLogLevel {
|
|
771
2237
|
* Initializes the global logger for Core Crypto and registers the callback. Can be called only once
|
772
2238
|
* @param logger - the interface to be called when something is going to be logged
|
773
2239
|
* @param level - the max level that should be logged
|
2240
|
+
*
|
2241
|
+
* NOTE: you must call this after `await CoreCrypto.init(params)` or `await CoreCrypto.deferredInit(params)`.
|
774
2242
|
**/
|
775
|
-
export declare function initLogger(logger: CoreCryptoLogger, level: CoreCryptoLogLevel, ctx?:
|
2243
|
+
export declare function initLogger(logger: CoreCryptoLogger, level: CoreCryptoLogLevel, ctx?: unknown): void;
|
776
2244
|
/**
|
777
2245
|
* Wrapper for the WASM-compiled version of CoreCrypto
|
778
2246
|
*/
|
@@ -782,6 +2250,7 @@ export declare class CoreCrypto {
|
|
782
2250
|
* Should only be used internally
|
783
2251
|
*/
|
784
2252
|
inner(): unknown;
|
2253
|
+
static setLogger(logger: CoreCryptoWasmLogger, level: CoreCryptoLogLevel): void;
|
785
2254
|
/**
|
786
2255
|
* This is your entrypoint to initialize {@link CoreCrypto}!
|
787
2256
|
*
|
@@ -825,31 +2294,35 @@ export declare class CoreCrypto {
|
|
825
2294
|
*/
|
826
2295
|
static deferredInit({ databaseName, key, entropySeed, wasmFilePath, }: CoreCryptoDeferredParams): Promise<CoreCrypto>;
|
827
2296
|
/**
|
828
|
-
*
|
2297
|
+
* Starts a new transaction in Core Crypto. If the callback succeeds, it will be committed,
|
2298
|
+
* otherwise, every operation performed with the context will be discarded.
|
829
2299
|
*
|
830
|
-
* @param
|
831
|
-
*
|
832
|
-
* @
|
2300
|
+
* @param callback - The callback to execute within the transaction
|
2301
|
+
*
|
2302
|
+
* @returns the result of the callback will be returned from this call
|
833
2303
|
*/
|
834
|
-
|
2304
|
+
transaction<R>(callback: (ctx: CoreCryptoContext$1) => Promise<R>): Promise<R>;
|
835
2305
|
/**
|
836
|
-
*
|
837
|
-
* This method is designed to be used in conjunction with {@link CoreCrypto.mlsInitWithClientId} and represents the first step in this process
|
2306
|
+
* See {@link CoreCryptoContext.mlsInit}.
|
838
2307
|
*
|
839
|
-
* @
|
840
|
-
*
|
2308
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2309
|
+
* and use {@link CoreCryptoContext.mlsInit} instead.
|
841
2310
|
*/
|
842
|
-
|
2311
|
+
mlsInit(clientId: ClientId, ciphersuites: Ciphersuite$1[], nbKeyPackage?: number): Promise<void>;
|
843
2312
|
/**
|
844
|
-
*
|
2313
|
+
* See {@link CoreCryptoContext.mlsGenerateKeypair}.
|
845
2314
|
*
|
846
|
-
*
|
2315
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2316
|
+
* and use {@link CoreCryptoContext.mlsGenerateKeypair} instead.
|
2317
|
+
*/
|
2318
|
+
mlsGenerateKeypair(ciphersuites: Ciphersuite$1[]): Promise<Uint8Array[]>;
|
2319
|
+
/**
|
2320
|
+
* See {@link CoreCryptoContext.mlsInitWithClientId}.
|
847
2321
|
*
|
848
|
-
* @
|
849
|
-
*
|
850
|
-
* @param ciphersuites - All the ciphersuites supported by this MLS client
|
2322
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2323
|
+
* and use {@link CoreCryptoContext.mlsInitWithClientId} instead.
|
851
2324
|
*/
|
852
|
-
mlsInitWithClientId(clientId: ClientId, signaturePublicKeys: Uint8Array[], ciphersuites: Ciphersuite[]): Promise<void>;
|
2325
|
+
mlsInitWithClientId(clientId: ClientId, signaturePublicKeys: Uint8Array[], ciphersuites: Ciphersuite$1[]): Promise<void>;
|
853
2326
|
/** @hidden */
|
854
2327
|
private constructor();
|
855
2328
|
/**
|
@@ -876,34 +2349,20 @@ export declare class CoreCrypto {
|
|
876
2349
|
*
|
877
2350
|
* @param callbacks - Any interface following the {@link CoreCryptoCallbacks} interface
|
878
2351
|
*/
|
879
|
-
registerCallbacks(callbacks: CoreCryptoCallbacks, ctx?:
|
2352
|
+
registerCallbacks(callbacks: CoreCryptoCallbacks, ctx?: unknown): Promise<void>;
|
880
2353
|
/**
|
881
|
-
*
|
882
|
-
*
|
883
|
-
* @returns Whether the given conversation ID exists
|
884
|
-
*
|
885
|
-
* @example
|
886
|
-
* ```ts
|
887
|
-
* const cc = await CoreCrypto.init({ databaseName: "test", key: "test", clientId: "test" });
|
888
|
-
* const encoder = new TextEncoder();
|
889
|
-
* if (await cc.conversationExists(encoder.encode("my super chat"))) {
|
890
|
-
* // Do something
|
891
|
-
* } else {
|
892
|
-
* // Do something else
|
893
|
-
* }
|
894
|
-
* ```
|
2354
|
+
* See {@link CoreCryptoContext.conversationExists}.
|
895
2355
|
*/
|
896
2356
|
conversationExists(conversationId: ConversationId): Promise<boolean>;
|
897
2357
|
/**
|
898
|
-
*
|
899
|
-
* This will mostly affect the behavior of the callbacks (the parentConversationClients parameter will be filled)
|
2358
|
+
* See {@link CoreCryptoContext.markConversationAsChildOf}.
|
900
2359
|
*
|
901
|
-
* @
|
902
|
-
*
|
2360
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2361
|
+
* and use {@link CoreCryptoContext.markConversationAsChildOf} instead.
|
903
2362
|
*/
|
904
2363
|
markConversationAsChildOf(childId: ConversationId, parentId: ConversationId): Promise<void>;
|
905
2364
|
/**
|
906
|
-
*
|
2365
|
+
* See {@link CoreCryptoContext.conversationEpoch}.
|
907
2366
|
*
|
908
2367
|
* @returns the epoch of the conversation
|
909
2368
|
*
|
@@ -916,124 +2375,101 @@ export declare class CoreCrypto {
|
|
916
2375
|
*/
|
917
2376
|
conversationEpoch(conversationId: ConversationId): Promise<number>;
|
918
2377
|
/**
|
919
|
-
*
|
2378
|
+
* See {@link CoreCryptoContext.conversationCiphersuite}.
|
920
2379
|
*
|
921
2380
|
* @returns the ciphersuite of the conversation
|
922
2381
|
*/
|
923
|
-
conversationCiphersuite(conversationId: ConversationId): Promise<Ciphersuite>;
|
2382
|
+
conversationCiphersuite(conversationId: ConversationId): Promise<Ciphersuite$1>;
|
924
2383
|
/**
|
925
|
-
*
|
2384
|
+
* See {@link CoreCryptoContext.wipeConversation}.
|
926
2385
|
*
|
927
|
-
* @
|
2386
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2387
|
+
* and use {@link CoreCryptoContext.wipeConversation} instead.
|
928
2388
|
*/
|
929
2389
|
wipeConversation(conversationId: ConversationId): Promise<void>;
|
930
2390
|
/**
|
931
|
-
*
|
932
|
-
* You will want to use {@link CoreCrypto.addClientsToConversation} afterwards to add clients to this conversation
|
2391
|
+
* See {@link CoreCryptoContext.createConversation}.
|
933
2392
|
*
|
934
|
-
* @
|
935
|
-
*
|
936
|
-
* @param configuration - configuration of the MLS group
|
937
|
-
* @param configuration.ciphersuite - The {@link Ciphersuite} that is chosen to be the group's
|
938
|
-
* @param configuration.externalSenders - Array of Client IDs that are qualified as external senders within the group
|
939
|
-
* @param configuration.custom - {@link CustomConfiguration}
|
2393
|
+
* @deprecated Create a transaction with {@link transaction}
|
2394
|
+
* and use {@link CoreCryptoContext.createConversation} instead.
|
940
2395
|
*/
|
941
|
-
createConversation(conversationId: ConversationId, creatorCredentialType: CredentialType, configuration?: ConversationConfiguration): Promise<any>;
|
2396
|
+
createConversation(conversationId: ConversationId, creatorCredentialType: CredentialType$1, configuration?: ConversationConfiguration$1): Promise<any>;
|
942
2397
|
/**
|
943
|
-
*
|
944
|
-
*
|
945
|
-
* Note: you should catch & ignore the following error reasons:
|
946
|
-
* * "We already decrypted this message once"
|
947
|
-
* * "You tried to join with an external commit but did not merge it yet. We will reapply this message for you when you merge your external commit"
|
948
|
-
* * "Incoming message is for a future epoch. We will buffer it until the commit for that epoch arrives"
|
949
|
-
*
|
950
|
-
* @param conversationId - The ID of the conversation
|
951
|
-
* @param payload - The encrypted message buffer
|
2398
|
+
* See {@link CoreCryptoContext.decryptMessage}.
|
952
2399
|
*
|
953
|
-
* @
|
2400
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2401
|
+
* and use {@link CoreCryptoContext.decryptMessage} instead.
|
954
2402
|
*/
|
955
2403
|
decryptMessage(conversationId: ConversationId, payload: Uint8Array): Promise<DecryptedMessage>;
|
956
2404
|
/**
|
957
|
-
*
|
958
|
-
*
|
959
|
-
* @param conversationId - The ID of the conversation
|
960
|
-
* @param message - The plaintext message to encrypt
|
2405
|
+
* See {@link CoreCryptoContext.encryptMessage}.
|
961
2406
|
*
|
962
|
-
* @
|
2407
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2408
|
+
* and use {@link CoreCryptoContext.encryptMessage} instead.
|
963
2409
|
*/
|
964
2410
|
encryptMessage(conversationId: ConversationId, message: Uint8Array): Promise<Uint8Array>;
|
965
2411
|
/**
|
966
|
-
*
|
2412
|
+
* See {@link CoreCryptoContext.processWelcomeMessage}.
|
967
2413
|
*
|
968
|
-
*
|
969
|
-
*
|
970
|
-
* to join this group with an external commit.
|
971
|
-
*
|
972
|
-
* @param welcomeMessage - TLS-serialized MLS Welcome message
|
973
|
-
* @param configuration - configuration of the MLS group
|
974
|
-
* @returns The conversation ID of the newly joined group. You can use the same ID to decrypt/encrypt messages
|
2414
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2415
|
+
* and use {@link CoreCryptoContext.processWelcomeMessage} instead.
|
975
2416
|
*/
|
976
|
-
processWelcomeMessage(welcomeMessage: Uint8Array, configuration?: CustomConfiguration): Promise<WelcomeBundle>;
|
2417
|
+
processWelcomeMessage(welcomeMessage: Uint8Array, configuration?: CustomConfiguration$1): Promise<WelcomeBundle>;
|
977
2418
|
/**
|
978
|
-
*
|
2419
|
+
* See {@link CoreCryptoContext.clientPublicKey}.
|
979
2420
|
*
|
980
2421
|
* @param ciphersuite - of the signature key to get
|
981
2422
|
* @param credentialType - of the public key to look for
|
982
2423
|
* @returns the client's public signature key
|
983
2424
|
*/
|
984
|
-
clientPublicKey(ciphersuite: Ciphersuite, credentialType: CredentialType): Promise<Uint8Array>;
|
2425
|
+
clientPublicKey(ciphersuite: Ciphersuite$1, credentialType: CredentialType$1): Promise<Uint8Array>;
|
985
2426
|
/**
|
2427
|
+
* See {@link CoreCryptoContext.clientValidKeypackagesCount}.
|
986
2428
|
*
|
987
|
-
* @
|
988
|
-
*
|
989
|
-
* @returns The amount of valid, non-expired KeyPackages that are persisted in the backing storage
|
2429
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2430
|
+
* and use {@link CoreCryptoContext.clientValidKeypackagesCount} instead.
|
990
2431
|
*/
|
991
|
-
clientValidKeypackagesCount(ciphersuite: Ciphersuite, credentialType: CredentialType): Promise<number>;
|
2432
|
+
clientValidKeypackagesCount(ciphersuite: Ciphersuite$1, credentialType: CredentialType$1): Promise<number>;
|
992
2433
|
/**
|
993
|
-
*
|
2434
|
+
* See {@link CoreCryptoContext.clientKeypackages}.
|
994
2435
|
*
|
995
|
-
* @
|
996
|
-
*
|
997
|
-
* @param amountRequested - The amount of keypackages requested
|
998
|
-
* @returns An array of length `amountRequested` containing TLS-serialized KeyPackages
|
2436
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2437
|
+
* and use {@link CoreCryptoContext.clientKeypackages} instead.
|
999
2438
|
*/
|
1000
|
-
clientKeypackages(ciphersuite: Ciphersuite, credentialType: CredentialType, amountRequested: number): Promise<Array<Uint8Array>>;
|
2439
|
+
clientKeypackages(ciphersuite: Ciphersuite$1, credentialType: CredentialType$1, amountRequested: number): Promise<Array<Uint8Array>>;
|
1001
2440
|
/**
|
1002
|
-
*
|
1003
|
-
* You should only use this after {@link CoreCrypto.e2eiRotateAll}
|
2441
|
+
* See {@link CoreCryptoContext.deleteKeypackages}.
|
1004
2442
|
*
|
1005
|
-
* @
|
2443
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2444
|
+
* and use {@link CoreCryptoContext.deleteKeypackages} instead.
|
1006
2445
|
*/
|
1007
2446
|
deleteKeypackages(refs: Uint8Array[]): Promise<void>;
|
1008
2447
|
/**
|
1009
|
-
*
|
1010
|
-
*
|
1011
|
-
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called afterward **ONLY IF** the Delivery Service responds
|
1012
|
-
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
1013
|
-
* epoch, use new encryption secrets etc...
|
1014
|
-
*
|
1015
|
-
* @param conversationId - The ID of the conversation
|
1016
|
-
* @param keyPackages - KeyPackages of the new clients to add
|
2448
|
+
* See {@link CoreCryptoContext.addClientsToConversation}.
|
1017
2449
|
*
|
1018
|
-
* @
|
2450
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2451
|
+
* and use {@link CoreCryptoContext.addClientsToConversation} instead.
|
1019
2452
|
*/
|
1020
2453
|
addClientsToConversation(conversationId: ConversationId, keyPackages: Uint8Array[]): Promise<MemberAddedMessages>;
|
1021
2454
|
/**
|
1022
|
-
*
|
1023
|
-
* to do so, otherwise this operation does nothing.
|
1024
|
-
*
|
1025
|
-
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called afterward **ONLY IF** the Delivery Service responds
|
1026
|
-
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
1027
|
-
* epoch, use new encryption secrets etc...
|
1028
|
-
*
|
1029
|
-
* @param conversationId - The ID of the conversation
|
1030
|
-
* @param clientIds - Array of Client IDs to remove.
|
2455
|
+
* See {@link CoreCryptoContext.removeClientsFromConversation}.
|
1031
2456
|
*
|
1032
|
-
* @
|
2457
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2458
|
+
* and use {@link CoreCryptoContext.removeClientsFromConversation} instead.
|
1033
2459
|
*/
|
1034
2460
|
removeClientsFromConversation(conversationId: ConversationId, clientIds: ClientId[]): Promise<CommitBundle>;
|
1035
2461
|
/**
|
1036
|
-
*
|
2462
|
+
* See {@link CoreCryptoContext.updateKeyingMaterial}.
|
2463
|
+
*
|
2464
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2465
|
+
* and use {@link CoreCryptoContext.updateKeyingMaterial} instead.
|
2466
|
+
*/
|
2467
|
+
updateKeyingMaterial(conversationId: ConversationId): Promise<CommitBundle>;
|
2468
|
+
/**
|
2469
|
+
* Creates an update commit which replaces your leaf containing basic credentials with a leaf node containing x509 credentials in the conversation.
|
2470
|
+
*
|
2471
|
+
* NOTE: you can only call this after you've completed the enrollment for an end-to-end identity, calling this without
|
2472
|
+
* a valid end-to-end identity will result in an error.
|
1037
2473
|
*
|
1038
2474
|
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called afterward **ONLY IF** the Delivery Service responds
|
1039
2475
|
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
@@ -1042,97 +2478,76 @@ export declare class CoreCrypto {
|
|
1042
2478
|
* @param conversationId - The ID of the conversation
|
1043
2479
|
*
|
1044
2480
|
* @returns A {@link CommitBundle}
|
2481
|
+
*
|
2482
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2483
|
+
* and use {@link CoreCryptoContext.e2eiRotate} instead.
|
1045
2484
|
*/
|
1046
|
-
|
2485
|
+
e2eiRotate(conversationId: ConversationId): Promise<CommitBundle>;
|
1047
2486
|
/**
|
1048
|
-
*
|
1049
|
-
*
|
1050
|
-
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called afterwards **ONLY IF** the Delivery Service responds
|
1051
|
-
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
1052
|
-
* epoch, use new encryption secrets etc...
|
1053
|
-
*
|
1054
|
-
* @param conversationId - The ID of the conversation
|
2487
|
+
* See {@link CoreCryptoContext.commitPendingProposals}.
|
1055
2488
|
*
|
1056
|
-
* @
|
2489
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2490
|
+
* and use {@link CoreCryptoContext.commitPendingProposals} instead.
|
1057
2491
|
*/
|
1058
2492
|
commitPendingProposals(conversationId: ConversationId): Promise<CommitBundle | undefined>;
|
1059
2493
|
/**
|
1060
|
-
*
|
1061
|
-
*
|
1062
|
-
* @param proposalType - The type of proposal, see {@link ProposalType}
|
1063
|
-
* @param args - The arguments of the proposal, see {@link ProposalArgs}, {@link AddProposalArgs} or {@link RemoveProposalArgs}
|
2494
|
+
* See {@link CoreCryptoContext.newProposal}.
|
1064
2495
|
*
|
1065
|
-
* @
|
2496
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2497
|
+
* and use {@link CoreCryptoContext.newProposal} instead.
|
1066
2498
|
*/
|
1067
2499
|
newProposal(proposalType: ProposalType, args: ProposalArgs | AddProposalArgs | RemoveProposalArgs): Promise<ProposalBundle>;
|
1068
2500
|
/**
|
1069
|
-
*
|
2501
|
+
* See {@link CoreCryptoContext.newExternalProposal}.
|
2502
|
+
*
|
2503
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2504
|
+
* and use {@link CoreCryptoContext.newExternalProposal} instead.
|
1070
2505
|
*/
|
1071
2506
|
newExternalProposal(externalProposalType: ExternalProposalType, args: ExternalAddProposalArgs): Promise<Uint8Array>;
|
1072
2507
|
/**
|
1073
|
-
*
|
1074
|
-
*
|
1075
|
-
* If the Delivery Service accepts the external commit, you have to {@link CoreCrypto.mergePendingGroupFromExternalCommit}
|
1076
|
-
* in order to get back a functional MLS group. On the opposite, if it rejects it, you can either retry by just
|
1077
|
-
* calling again {@link CoreCrypto.joinByExternalCommit}, no need to {@link CoreCrypto.clearPendingGroupFromExternalCommit}.
|
1078
|
-
* If you want to abort the operation (too many retries or the user decided to abort), you can use
|
1079
|
-
* {@link CoreCrypto.clearPendingGroupFromExternalCommit} in order not to bloat the user's storage but nothing
|
1080
|
-
* bad can happen if you forget to except some storage space wasted.
|
2508
|
+
* See {@link CoreCryptoContext.joinByExternalCommit}.
|
1081
2509
|
*
|
1082
|
-
* @
|
1083
|
-
*
|
1084
|
-
* chosen and no Credential has been created yet for it, a new one will be generated.
|
1085
|
-
* @param configuration - configuration of the MLS group
|
1086
|
-
* When {@link CredentialType.X509} is chosen, it fails when no Credential has been created for the given {@link Ciphersuite}.
|
1087
|
-
* @returns see {@link ConversationInitBundle}
|
2510
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2511
|
+
* and use {@link CoreCryptoContext.joinByExternalCommit} instead.
|
1088
2512
|
*/
|
1089
|
-
joinByExternalCommit(groupInfo: Uint8Array, credentialType: CredentialType, configuration?: CustomConfiguration): Promise<ConversationInitBundle>;
|
2513
|
+
joinByExternalCommit(groupInfo: Uint8Array, credentialType: CredentialType$1, configuration?: CustomConfiguration$1): Promise<ConversationInitBundle>;
|
1090
2514
|
/**
|
1091
|
-
*
|
1092
|
-
* and deletes the temporary one. This step makes the group operational and ready to encrypt/decrypt message
|
2515
|
+
* See {@link CoreCryptoContext.mergePendingGroupFromExternalCommit}.
|
1093
2516
|
*
|
1094
|
-
* @
|
1095
|
-
*
|
2517
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2518
|
+
* and use {@link CoreCryptoContext.mergePendingGroupFromExternalCommit} instead.
|
1096
2519
|
*/
|
1097
2520
|
mergePendingGroupFromExternalCommit(conversationId: ConversationId): Promise<BufferedDecryptedMessage[] | undefined>;
|
1098
2521
|
/**
|
1099
|
-
*
|
1100
|
-
* want to abort this external commit once for all, we can wipe out the pending group from the keystore in order
|
1101
|
-
* not to waste space
|
2522
|
+
* See {@link CoreCryptoContext.clearPendingGroupFromExternalCommit}.
|
1102
2523
|
*
|
1103
|
-
* @
|
2524
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2525
|
+
* and use {@link CoreCryptoContext.clearPendingGroupFromExternalCommit} instead.
|
1104
2526
|
*/
|
1105
2527
|
clearPendingGroupFromExternalCommit(conversationId: ConversationId): Promise<void>;
|
1106
2528
|
/**
|
1107
|
-
*
|
2529
|
+
* See {@link CoreCryptoContext.commitAccepted}.
|
1108
2530
|
*
|
1109
|
-
* @
|
1110
|
-
*
|
2531
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2532
|
+
* and use {@link CoreCryptoContext.commitAccepted} instead.
|
1111
2533
|
*/
|
1112
2534
|
commitAccepted(conversationId: ConversationId): Promise<BufferedDecryptedMessage[] | undefined>;
|
1113
2535
|
/**
|
1114
|
-
*
|
2536
|
+
* See {@link CoreCryptoContext.clearPendingProposal}.
|
1115
2537
|
*
|
1116
|
-
*
|
1117
|
-
*
|
1118
|
-
*
|
1119
|
-
* @param conversationId - The group's ID
|
1120
|
-
* @param proposalRef - A reference to the proposal to delete. You get one when using {@link CoreCrypto.newProposal}
|
2538
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2539
|
+
* and use {@link CoreCryptoContext.clearPendingProposal} instead.
|
1121
2540
|
*/
|
1122
2541
|
clearPendingProposal(conversationId: ConversationId, proposalRef: ProposalRef): Promise<void>;
|
1123
2542
|
/**
|
1124
|
-
*
|
1125
|
-
*
|
1126
|
-
* **CAUTION**: only use this when you had an explicit response from the Delivery Service
|
1127
|
-
* e.g. 403. Do not use otherwise e.g. 5xx responses, timeout etc..
|
1128
|
-
* **DO NOT** use when Delivery Service responds 409, pending state will be renewed
|
1129
|
-
* in {@link CoreCrypto.decryptMessage}
|
2543
|
+
* See {@link CoreCryptoContext.clearPendingCommit}.
|
1130
2544
|
*
|
1131
|
-
* @
|
2545
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2546
|
+
* and use {@link CoreCryptoContext.clearPendingCommit} instead.
|
1132
2547
|
*/
|
1133
2548
|
clearPendingCommit(conversationId: ConversationId): Promise<void>;
|
1134
2549
|
/**
|
1135
|
-
*
|
2550
|
+
* See {@link CoreCryptoContext.exportSecretKey}.
|
1136
2551
|
*
|
1137
2552
|
* @param conversationId - The group's ID
|
1138
2553
|
* @param keyLength - the length of the key to be derived. If the value is higher than the
|
@@ -1142,8 +2557,7 @@ export declare class CoreCrypto {
|
|
1142
2557
|
*/
|
1143
2558
|
exportSecretKey(conversationId: ConversationId, keyLength: number): Promise<Uint8Array>;
|
1144
2559
|
/**
|
1145
|
-
*
|
1146
|
-
* This should be used to initialize a subconversation
|
2560
|
+
* See {@link CoreCryptoContext.getExternalSender}.
|
1147
2561
|
*
|
1148
2562
|
* @param conversationId - The group's ID
|
1149
2563
|
*
|
@@ -1151,7 +2565,7 @@ export declare class CoreCrypto {
|
|
1151
2565
|
*/
|
1152
2566
|
getExternalSender(conversationId: ConversationId): Promise<Uint8Array>;
|
1153
2567
|
/**
|
1154
|
-
*
|
2568
|
+
* See {@link CoreCryptoContext.getClientIds}.
|
1155
2569
|
*
|
1156
2570
|
* @param conversationId - The group's ID
|
1157
2571
|
*
|
@@ -1159,8 +2573,7 @@ export declare class CoreCrypto {
|
|
1159
2573
|
*/
|
1160
2574
|
getClientIds(conversationId: ConversationId): Promise<ClientId[]>;
|
1161
2575
|
/**
|
1162
|
-
*
|
1163
|
-
* @note The underlying CSPRNG algorithm is ChaCha20 and takes in account the external seed provider either at init time or provided with {@link CoreCrypto.reseedRng}
|
2576
|
+
* See {@link CoreCryptoContext.randomBytes}.
|
1164
2577
|
*
|
1165
2578
|
* @param length - The number of bytes to be returned in the `Uint8Array`
|
1166
2579
|
*
|
@@ -1182,6 +2595,9 @@ export declare class CoreCrypto {
|
|
1182
2595
|
*
|
1183
2596
|
* @param sessionId - ID of the Proteus session
|
1184
2597
|
* @param prekey - CBOR-encoded Proteus prekey of the other client
|
2598
|
+
*
|
2599
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2600
|
+
* and use {@link CoreCryptoContext.proteusSessionFromPrekey} instead.
|
1185
2601
|
*/
|
1186
2602
|
proteusSessionFromPrekey(sessionId: string, prekey: Uint8Array): Promise<void>;
|
1187
2603
|
/**
|
@@ -1191,6 +2607,9 @@ export declare class CoreCrypto {
|
|
1191
2607
|
* @param envelope - CBOR-encoded Proteus message
|
1192
2608
|
*
|
1193
2609
|
* @returns A `Uint8Array` containing the message that was sent along with the session handshake
|
2610
|
+
*
|
2611
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2612
|
+
* and use {@link CoreCryptoContext.proteusSessionFromMessage} instead.
|
1194
2613
|
*/
|
1195
2614
|
proteusSessionFromMessage(sessionId: string, envelope: Uint8Array): Promise<Uint8Array>;
|
1196
2615
|
/**
|
@@ -1199,6 +2618,9 @@ export declare class CoreCrypto {
|
|
1199
2618
|
* **Note**: This isn't usually needed as persisting sessions happens automatically when decrypting/encrypting messages and initializing Sessions
|
1200
2619
|
*
|
1201
2620
|
* @param sessionId - ID of the Proteus session
|
2621
|
+
*
|
2622
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2623
|
+
* and use {@link CoreCryptoContext.proteusSessionSave} instead.
|
1202
2624
|
*/
|
1203
2625
|
proteusSessionSave(sessionId: string): Promise<void>;
|
1204
2626
|
/**
|
@@ -1206,6 +2628,9 @@ export declare class CoreCrypto {
|
|
1206
2628
|
* Note: this also deletes the persisted data within the keystore
|
1207
2629
|
*
|
1208
2630
|
* @param sessionId - ID of the Proteus session
|
2631
|
+
*
|
2632
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2633
|
+
* and use {@link CoreCryptoContext.proteusSessionDelete} instead.
|
1209
2634
|
*/
|
1210
2635
|
proteusSessionDelete(sessionId: string): Promise<void>;
|
1211
2636
|
/**
|
@@ -1222,6 +2647,9 @@ export declare class CoreCrypto {
|
|
1222
2647
|
* @param sessionId - ID of the Proteus session
|
1223
2648
|
* @param ciphertext - CBOR encoded, encrypted proteus message
|
1224
2649
|
* @returns The decrypted payload contained within the message
|
2650
|
+
*
|
2651
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2652
|
+
* and use {@link CoreCryptoContext.proteusDecrypt} instead.
|
1225
2653
|
*/
|
1226
2654
|
proteusDecrypt(sessionId: string, ciphertext: Uint8Array): Promise<Uint8Array>;
|
1227
2655
|
/**
|
@@ -1230,6 +2658,9 @@ export declare class CoreCrypto {
|
|
1230
2658
|
* @param sessionId - ID of the Proteus session
|
1231
2659
|
* @param plaintext - payload to encrypt
|
1232
2660
|
* @returns The CBOR-serialized encrypted message
|
2661
|
+
*
|
2662
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2663
|
+
* and use {@link CoreCryptoContext.proteusEncrypt} instead.
|
1233
2664
|
*/
|
1234
2665
|
proteusEncrypt(sessionId: string, plaintext: Uint8Array): Promise<Uint8Array>;
|
1235
2666
|
/**
|
@@ -1239,6 +2670,8 @@ export declare class CoreCrypto {
|
|
1239
2670
|
* @param sessions - List of Proteus session IDs to encrypt the message for
|
1240
2671
|
* @param plaintext - payload to encrypt
|
1241
2672
|
* @returns A map indexed by each session ID and the corresponding CBOR-serialized encrypted message for this session
|
2673
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2674
|
+
* and use {@link CoreCryptoContext.proteusEncryptBatched} instead.
|
1242
2675
|
*/
|
1243
2676
|
proteusEncryptBatched(sessions: string[], plaintext: Uint8Array): Promise<Map<string, Uint8Array>>;
|
1244
2677
|
/**
|
@@ -1246,18 +2679,27 @@ export declare class CoreCrypto {
|
|
1246
2679
|
*
|
1247
2680
|
* @param prekeyId - ID of the PreKey to generate. This cannot be bigger than a u16
|
1248
2681
|
* @returns: A CBOR-serialized version of the PreKeyBundle corresponding to the newly generated and stored PreKey
|
2682
|
+
*
|
2683
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2684
|
+
* and use {@link CoreCryptoContext.proteusNewPrekey} instead.
|
1249
2685
|
*/
|
1250
2686
|
proteusNewPrekey(prekeyId: number): Promise<Uint8Array>;
|
1251
2687
|
/**
|
1252
2688
|
* Creates a new prekey with an automatically generated ID..
|
1253
2689
|
*
|
1254
2690
|
* @returns A CBOR-serialized version of the PreKeyBundle corresponding to the newly generated and stored PreKey accompanied by its ID
|
2691
|
+
*
|
2692
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2693
|
+
* and use {@link CoreCryptoContext.proteusNewPrekeyAuto} instead.
|
1255
2694
|
*/
|
1256
2695
|
proteusNewPrekeyAuto(): Promise<ProteusAutoPrekeyBundle>;
|
1257
2696
|
/**
|
1258
2697
|
* Proteus last resort prekey stuff
|
1259
2698
|
*
|
1260
2699
|
* @returns A CBOR-serialize version of the PreKeyBundle associated with the last resort PreKey (holding the last resort prekey id)
|
2700
|
+
*
|
2701
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2702
|
+
* and use {@link CoreCryptoContext.proteusLastResortPrekey} instead.
|
1261
2703
|
*/
|
1262
2704
|
proteusLastResortPrekey(): Promise<Uint8Array>;
|
1263
2705
|
/**
|
@@ -1296,6 +2738,9 @@ export declare class CoreCrypto {
|
|
1296
2738
|
* Imports all the data stored by Cryptobox into the CoreCrypto keystore
|
1297
2739
|
*
|
1298
2740
|
* @param storeName - The name of the IndexedDB store where the data is stored
|
2741
|
+
*
|
2742
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2743
|
+
* and use {@link CoreCryptoContext.proteusCryptoboxMigrate} instead.
|
1299
2744
|
*/
|
1300
2745
|
proteusCryptoboxMigrate(storeName: string): Promise<void>;
|
1301
2746
|
/**
|
@@ -1304,163 +2749,124 @@ export declare class CoreCrypto {
|
|
1304
2749
|
*/
|
1305
2750
|
proteusLastErrorCode(): Promise<number>;
|
1306
2751
|
/**
|
1307
|
-
*
|
1308
|
-
* a new x509 certificate from the acme server.
|
2752
|
+
* See {@link CoreCryptoContext.e2eiNewEnrollment}.
|
1309
2753
|
*
|
1310
|
-
* @
|
1311
|
-
*
|
1312
|
-
* @param handle - user handle e.g. `alice.smith.qa@example.com`
|
1313
|
-
* @param expirySec - generated x509 certificate expiry
|
1314
|
-
* @param ciphersuite - for generating signing key material
|
1315
|
-
* @param team - name of the Wire team a user belongs to
|
1316
|
-
* @returns The new {@link E2eiEnrollment} enrollment instance to use with {@link CoreCrypto.e2eiMlsInitOnly}
|
2754
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2755
|
+
* and use {@link CoreCryptoContext.e2eiNewEnrollment} instead.
|
1317
2756
|
*/
|
1318
|
-
e2eiNewEnrollment(clientId: string, displayName: string, handle: string, expirySec: number, ciphersuite: Ciphersuite, team?: string): Promise<E2eiEnrollment>;
|
2757
|
+
e2eiNewEnrollment(clientId: string, displayName: string, handle: string, expirySec: number, ciphersuite: Ciphersuite$1, team?: string): Promise<E2eiEnrollment>;
|
1319
2758
|
/**
|
1320
|
-
*
|
1321
|
-
* Once the enrollment is finished, use the instance in {@link CoreCrypto.e2eiRotateAll} to do the rotation.
|
2759
|
+
* See {@link CoreCryptoContext.e2eiNewActivationEnrollment}.
|
1322
2760
|
*
|
1323
|
-
* @
|
1324
|
-
*
|
1325
|
-
* @param expirySec - generated x509 certificate expiry
|
1326
|
-
* @param ciphersuite - for generating signing key material
|
1327
|
-
* @param team - name of the Wire team a user belongs to
|
1328
|
-
* @returns The new {@link E2eiEnrollment} enrollment instance to use with {@link CoreCrypto.e2eiRotateAll}
|
2761
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2762
|
+
* and use {@link CoreCryptoContext.e2eiNewActivationEnrollment} instead.
|
1329
2763
|
*/
|
1330
|
-
e2eiNewActivationEnrollment(displayName: string, handle: string, expirySec: number, ciphersuite: Ciphersuite, team?: string): Promise<E2eiEnrollment>;
|
2764
|
+
e2eiNewActivationEnrollment(displayName: string, handle: string, expirySec: number, ciphersuite: Ciphersuite$1, team?: string): Promise<E2eiEnrollment>;
|
1331
2765
|
/**
|
1332
|
-
*
|
1333
|
-
* having to change/rotate their credential, either because the former one is expired or it
|
1334
|
-
* has been revoked. It lets you change the DisplayName or the handle
|
1335
|
-
* if you need to. Once the enrollment is finished, use the instance in {@link CoreCrypto.e2eiRotateAll} to do the rotation.
|
2766
|
+
* See {@link CoreCryptoContext.e2eiNewRotateEnrollment}.
|
1336
2767
|
*
|
1337
|
-
* @
|
1338
|
-
*
|
1339
|
-
* @param displayName - human-readable name displayed in the application e.g. `Smith, Alice M (QA)`
|
1340
|
-
* @param handle - user handle e.g. `alice.smith.qa@example.com`
|
1341
|
-
* @param team - name of the Wire team a user belongs to
|
1342
|
-
* @returns The new {@link E2eiEnrollment} enrollment instance to use with {@link CoreCrypto.e2eiRotateAll}
|
2768
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2769
|
+
* and use {@link CoreCryptoContext.e2eiNewRotateEnrollment} instead.
|
1343
2770
|
*/
|
1344
|
-
e2eiNewRotateEnrollment(expirySec: number, ciphersuite: Ciphersuite, displayName?: string, handle?: string, team?: string): Promise<E2eiEnrollment>;
|
2771
|
+
e2eiNewRotateEnrollment(expirySec: number, ciphersuite: Ciphersuite$1, displayName?: string, handle?: string, team?: string): Promise<E2eiEnrollment>;
|
1345
2772
|
/**
|
1346
|
-
*
|
1347
|
-
* that means he cannot initialize with a Basic credential
|
2773
|
+
* See {@link CoreCryptoContext.e2eiMlsInitOnly}.
|
1348
2774
|
*
|
1349
|
-
* @
|
1350
|
-
*
|
1351
|
-
* @param nbKeyPackage - number of initial KeyPackage to create when initializing the client
|
1352
|
-
* @returns a MlsClient initialized with only a x509 credential
|
2775
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2776
|
+
* and use {@link CoreCryptoContext.e2eiMlsInitOnly} instead.
|
1353
2777
|
*/
|
1354
2778
|
e2eiMlsInitOnly(enrollment: E2eiEnrollment, certificateChain: string, nbKeyPackage?: number): Promise<string[] | undefined>;
|
1355
2779
|
/**
|
1356
|
-
*
|
2780
|
+
* See {@link CoreCryptoContext.e2eiDumpPKIEnv}.
|
1357
2781
|
*
|
1358
2782
|
* @returns a struct with different fields representing the PKI environment as PEM strings
|
1359
2783
|
*/
|
1360
2784
|
e2eiDumpPKIEnv(): Promise<E2eiDumpedPkiEnv | undefined>;
|
1361
2785
|
/**
|
2786
|
+
* See {@link CoreCryptoContext.e2eiIsPKIEnvSetup}.
|
1362
2787
|
* @returns whether the E2EI PKI environment is setup (i.e. Root CA, Intermediates, CRLs)
|
1363
2788
|
*/
|
1364
2789
|
e2eiIsPKIEnvSetup(): Promise<boolean>;
|
1365
2790
|
/**
|
1366
|
-
*
|
1367
|
-
*
|
1368
|
-
* Please note that without a Root Trust Anchor, all validations *will* fail;
|
1369
|
-
* So this is the first step to perform after initializing your E2EI client
|
2791
|
+
* See {@link CoreCryptoContext.e2eiRegisterAcmeCA}.
|
1370
2792
|
*
|
1371
|
-
* @
|
2793
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2794
|
+
* and use {@link CoreCryptoContext.e2eiRegisterAcmeCA} instead.
|
1372
2795
|
*/
|
1373
2796
|
e2eiRegisterAcmeCA(trustAnchorPEM: string): Promise<void>;
|
1374
2797
|
/**
|
1375
|
-
*
|
1376
|
-
*
|
1377
|
-
* Please note that a Root Trust Anchor CA is needed to validate Intermediate CAs;
|
1378
|
-
* You **need** to have a Root CA registered before calling this
|
2798
|
+
* See {@link CoreCryptoContext.e2eiRegisterIntermediateCA}.
|
1379
2799
|
*
|
1380
|
-
* @
|
2800
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2801
|
+
* and use {@link CoreCryptoContext.e2eiRegisterIntermediateCA} instead.
|
1381
2802
|
*/
|
1382
2803
|
e2eiRegisterIntermediateCA(certPEM: string): Promise<string[] | undefined>;
|
1383
2804
|
/**
|
1384
|
-
*
|
2805
|
+
* See {@link CoreCryptoContext.e2eiRegisterCRL}.
|
1385
2806
|
*
|
1386
|
-
*
|
1387
|
-
*
|
1388
|
-
*
|
1389
|
-
* @param crlDP - CRL Distribution Point; Basically the URL you fetched it from
|
1390
|
-
* @param crlDER - DER representation of the CRL
|
1391
|
-
*
|
1392
|
-
* @returns a {@link CRLRegistration} with the dirty state of the new CRL (see struct) and its expiration timestamp
|
2807
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2808
|
+
* and use {@link CoreCryptoContext.e2eiRegisterCRL} instead.
|
1393
2809
|
*/
|
1394
2810
|
e2eiRegisterCRL(crlDP: string, crlDER: Uint8Array): Promise<CRLRegistration>;
|
1395
2811
|
/**
|
1396
|
-
*
|
1397
|
-
* having enrolled a new X509 certificate with either {@link CoreCrypto.e2eiNewActivationEnrollment}
|
1398
|
-
* or {@link CoreCrypto.e2eiNewRotateEnrollment}
|
2812
|
+
* See {@link CoreCryptoContext.e2eiRotateAll}.
|
1399
2813
|
*
|
1400
|
-
* @
|
1401
|
-
*
|
1402
|
-
* @param newKeyPackageCount - number of KeyPackages with new identity to generate
|
1403
|
-
* @returns a {@link RotateBundle} with commits to fan-out to other group members, KeyPackages to upload and old ones to delete
|
2814
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2815
|
+
* and use {@link CoreCryptoContext.e2eiRotateAll} instead.
|
1404
2816
|
*/
|
1405
2817
|
e2eiRotateAll(enrollment: E2eiEnrollment, certificateChain: string, newKeyPackageCount: number): Promise<RotateBundle>;
|
1406
2818
|
/**
|
1407
|
-
*
|
1408
|
-
* it later with {@link e2eiEnrollmentStashPop}
|
2819
|
+
* See {@link CoreCryptoContext.e2eiEnrollmentStash}.
|
1409
2820
|
*
|
1410
|
-
* @
|
1411
|
-
*
|
2821
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2822
|
+
* and use {@link CoreCryptoContext.e2eiEnrollmentStash} instead.
|
1412
2823
|
*/
|
1413
2824
|
e2eiEnrollmentStash(enrollment: E2eiEnrollment): Promise<Uint8Array>;
|
1414
2825
|
/**
|
1415
|
-
*
|
2826
|
+
* See {@link CoreCryptoContext.e2eiEnrollmentStashPop}.
|
1416
2827
|
*
|
1417
|
-
* @
|
1418
|
-
*
|
2828
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2829
|
+
* and use {@link CoreCryptoContext.e2eiEnrollmentStashPop} instead.
|
1419
2830
|
*/
|
1420
2831
|
e2eiEnrollmentStashPop(handle: Uint8Array): Promise<E2eiEnrollment>;
|
1421
2832
|
/**
|
1422
|
-
*
|
1423
|
-
* Credential generated by Wire's end-to-end identity enrollment
|
2833
|
+
* See {@link CoreCryptoContext.e2eiConversationState}.
|
1424
2834
|
*
|
1425
|
-
* @
|
1426
|
-
*
|
2835
|
+
* @deprecated Create a transaction with {@link CoreCrypto.transaction}
|
2836
|
+
* and use {@link CoreCryptoContext.e2eiConversationState} instead.
|
1427
2837
|
*/
|
1428
2838
|
e2eiConversationState(conversationId: ConversationId): Promise<E2eiConversationState>;
|
1429
2839
|
/**
|
1430
|
-
*
|
2840
|
+
* See {@link CoreCryptoContext.e2eiIsEnabled}.
|
1431
2841
|
*
|
1432
2842
|
* @param ciphersuite of the credential to check
|
1433
2843
|
* @returns true if end-to-end identity is enabled for the given ciphersuite
|
1434
2844
|
*/
|
1435
|
-
e2eiIsEnabled(ciphersuite: Ciphersuite): Promise<boolean>;
|
2845
|
+
e2eiIsEnabled(ciphersuite: Ciphersuite$1): Promise<boolean>;
|
1436
2846
|
/**
|
1437
|
-
*
|
1438
|
-
* Certificate Credential (after turning on end-to-end identity).
|
2847
|
+
* See {@link CoreCryptoContext.getDeviceIdentities}.
|
1439
2848
|
*
|
1440
2849
|
* @param conversationId - identifier of the conversation
|
1441
2850
|
* @param deviceIds - identifiers of the devices
|
1442
2851
|
* @returns identities or if no member has a x509 certificate, it will return an empty List
|
1443
2852
|
*/
|
1444
|
-
getDeviceIdentities(conversationId: ConversationId, deviceIds: ClientId[]): Promise<WireIdentity[]>;
|
2853
|
+
getDeviceIdentities(conversationId: ConversationId, deviceIds: ClientId[]): Promise<WireIdentity$1[]>;
|
1445
2854
|
/**
|
1446
|
-
*
|
1447
|
-
* Identity is only present for devices with a Certificate Credential (after turning on end-to-end identity).
|
1448
|
-
* If no member has a x509 certificate, it will return an empty Vec.
|
2855
|
+
* See {@link CoreCryptoContext.getUserIdentities}.
|
1449
2856
|
*
|
1450
2857
|
* @param conversationId - identifier of the conversation
|
1451
2858
|
* @param userIds - user identifiers hyphenated UUIDv4 e.g. 'bd4c7053-1c5a-4020-9559-cd7bf7961954'
|
1452
2859
|
* @returns a Map with all the identities for a given users. Consumers are then recommended to reduce those identities to determine the actual status of a user.
|
1453
2860
|
*/
|
1454
|
-
getUserIdentities(conversationId: ConversationId, userIds: string[]): Promise<Map<string, WireIdentity[]>>;
|
2861
|
+
getUserIdentities(conversationId: ConversationId, userIds: string[]): Promise<Map<string, WireIdentity$1[]>>;
|
1455
2862
|
/**
|
1456
|
-
*
|
1457
|
-
* turned on or not before joining it.
|
2863
|
+
* See {@link CoreCryptoContext.getCredentialInUse}.
|
1458
2864
|
*
|
1459
2865
|
* @param groupInfo - a TLS encoded GroupInfo fetched from the Delivery Service
|
1460
2866
|
* @param credentialType - kind of Credential to check usage of. Defaults to X509 for now as no other value will give any result.
|
1461
2867
|
* @returns see {@link E2eiConversationState}
|
1462
2868
|
*/
|
1463
|
-
getCredentialInUse(groupInfo: Uint8Array, credentialType?: CredentialType): Promise<E2eiConversationState>;
|
2869
|
+
getCredentialInUse(groupInfo: Uint8Array, credentialType?: CredentialType$1): Promise<E2eiConversationState>;
|
1464
2870
|
/**
|
1465
2871
|
* Returns the current version of {@link CoreCrypto}
|
1466
2872
|
*
|
@@ -1633,4 +3039,18 @@ export declare enum E2eiConversationState {
|
|
1633
3039
|
NotEnabled = 3
|
1634
3040
|
}
|
1635
3041
|
|
3042
|
+
export {
|
3043
|
+
Ciphersuite$1 as Ciphersuite,
|
3044
|
+
ConversationConfiguration as ConversationConfigurationFfi,
|
3045
|
+
ConversationConfiguration$1 as ConversationConfiguration,
|
3046
|
+
CoreCryptoContext as CoreCryptoContextFfi,
|
3047
|
+
CoreCryptoContext$1 as CoreCryptoContext,
|
3048
|
+
CredentialType$1 as CredentialType,
|
3049
|
+
CustomConfiguration as CustomConfigurationFfi,
|
3050
|
+
CustomConfiguration$1 as CustomConfiguration,
|
3051
|
+
WireIdentity$1 as WireIdentity,
|
3052
|
+
WirePolicy$1 as WirePolicy,
|
3053
|
+
X509Identity$1 as X509Identity,
|
3054
|
+
};
|
3055
|
+
|
1636
3056
|
export {};
|