@wireapp/core-crypto 0.10.0 → 1.0.0-pre.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/package.json
CHANGED
Binary file
|
@@ -152,11 +152,11 @@ export interface MemberAddedMessages {
|
|
152
152
|
*/
|
153
153
|
welcome: Uint8Array;
|
154
154
|
/**
|
155
|
-
* MLS
|
155
|
+
* MLS GroupInfo which is required for joining a group by external commit
|
156
156
|
*
|
157
157
|
* @readonly
|
158
158
|
*/
|
159
|
-
|
159
|
+
groupInfo: GroupInfoBundle;
|
160
160
|
}
|
161
161
|
/**
|
162
162
|
* Data shape for a MLS generic commit + optional bundle (aka stapled commit & welcome)
|
@@ -175,35 +175,35 @@ export interface CommitBundle {
|
|
175
175
|
*/
|
176
176
|
welcome?: Uint8Array;
|
177
177
|
/**
|
178
|
-
* MLS
|
178
|
+
* MLS GroupInfo which is required for joining a group by external commit
|
179
179
|
*
|
180
180
|
* @readonly
|
181
181
|
*/
|
182
|
-
|
182
|
+
groupInfo: GroupInfoBundle;
|
183
183
|
}
|
184
184
|
/**
|
185
|
-
* Wraps a
|
185
|
+
* Wraps a GroupInfo in order to efficiently upload it to the Delivery Service.
|
186
186
|
* This is not part of MLS protocol but parts might be standardized at some point.
|
187
187
|
*/
|
188
|
-
export interface
|
188
|
+
export interface GroupInfoBundle {
|
189
189
|
/**
|
190
|
-
* see {@link
|
190
|
+
* see {@link GroupInfoEncryptionType}
|
191
191
|
*/
|
192
|
-
encryptionType:
|
192
|
+
encryptionType: GroupInfoEncryptionType;
|
193
193
|
/**
|
194
194
|
* see {@link RatchetTreeType}
|
195
195
|
*/
|
196
196
|
ratchetTreeType: RatchetTreeType;
|
197
197
|
/**
|
198
|
-
* TLS-serialized
|
198
|
+
* TLS-serialized GroupInfo
|
199
199
|
*/
|
200
200
|
payload: Uint8Array;
|
201
201
|
}
|
202
202
|
/**
|
203
|
-
* Informs whether the
|
204
|
-
* see [core_crypto::mls::conversation::
|
203
|
+
* Informs whether the GroupInfo is confidential
|
204
|
+
* see [core_crypto::mls::conversation::group_info::GroupInfoEncryptionType]
|
205
205
|
*/
|
206
|
-
export declare enum
|
206
|
+
export declare enum GroupInfoEncryptionType {
|
207
207
|
/**
|
208
208
|
* Unencrypted
|
209
209
|
*/
|
@@ -215,11 +215,11 @@ export declare enum PublicGroupStateEncryptionType {
|
|
215
215
|
}
|
216
216
|
/**
|
217
217
|
* Represents different ways of carrying the Ratchet Tree with some optimizations to save some space
|
218
|
-
* see [core_crypto::mls::conversation::
|
218
|
+
* see [core_crypto::mls::conversation::group_info::RatchetTreeType]
|
219
219
|
*/
|
220
220
|
export declare enum RatchetTreeType {
|
221
221
|
/**
|
222
|
-
* Complete
|
222
|
+
* Complete GroupInfo
|
223
223
|
*/
|
224
224
|
Full = 1,
|
225
225
|
/**
|
@@ -302,7 +302,7 @@ export interface ConversationInitBundle {
|
|
302
302
|
*
|
303
303
|
* @readonly
|
304
304
|
*/
|
305
|
-
|
305
|
+
groupInfo: GroupInfoBundle;
|
306
306
|
}
|
307
307
|
/**
|
308
308
|
* This is a wrapper for all the possible outcomes you can get after decrypting a message
|
@@ -431,11 +431,7 @@ export declare enum ExternalProposalType {
|
|
431
431
|
/**
|
432
432
|
* This allows to propose the addition of other clients to the MLS group/conversation
|
433
433
|
*/
|
434
|
-
Add = 0
|
435
|
-
/**
|
436
|
-
* This allows to propose the removal of clients from the MLS group/conversation
|
437
|
-
*/
|
438
|
-
Remove = 1
|
434
|
+
Add = 0
|
439
435
|
}
|
440
436
|
export interface ExternalProposalArgs {
|
441
437
|
/**
|
@@ -448,12 +444,6 @@ export interface ExternalProposalArgs {
|
|
448
444
|
*/
|
449
445
|
epoch: number;
|
450
446
|
}
|
451
|
-
export interface ExternalRemoveProposalArgs extends ExternalProposalArgs {
|
452
|
-
/**
|
453
|
-
* KeyPackageRef of the client that needs to be removed in the proposal
|
454
|
-
*/
|
455
|
-
keyPackageRef: Uint8Array;
|
456
|
-
}
|
457
447
|
export interface ExternalAddProposalArgs extends ExternalProposalArgs {
|
458
448
|
/**
|
459
449
|
* {@link Ciphersuite} to propose to join the MLS group with.
|
@@ -759,16 +749,16 @@ export declare class CoreCrypto {
|
|
759
749
|
* @returns A {@link ProposalBundle} containing the Proposal and its reference in order to roll it back if necessary
|
760
750
|
*/
|
761
751
|
newProposal(proposalType: ProposalType, args: ProposalArgs | AddProposalArgs | RemoveProposalArgs): Promise<ProposalBundle>;
|
762
|
-
newExternalProposal(externalProposalType: ExternalProposalType, args: ExternalAddProposalArgs
|
752
|
+
newExternalProposal(externalProposalType: ExternalProposalType, args: ExternalAddProposalArgs): Promise<Uint8Array>;
|
763
753
|
/**
|
764
|
-
* Exports
|
754
|
+
* Exports GroupInfo for use in external commits
|
765
755
|
*
|
766
756
|
* @param conversationId - MLS Conversation ID
|
767
|
-
* @returns TLS-serialized MLS
|
757
|
+
* @returns TLS-serialized MLS GroupInfo
|
768
758
|
*/
|
769
|
-
|
759
|
+
exportGroupInfo(conversationId: ConversationId): Promise<Uint8Array>;
|
770
760
|
/**
|
771
|
-
* Allows to create an external commit to "apply" to join a group through its
|
761
|
+
* Allows to create an external commit to "apply" to join a group through its GroupInfo.
|
772
762
|
*
|
773
763
|
* If the Delivery Service accepts the external commit, you have to {@link CoreCrypto.mergePendingGroupFromExternalCommit}
|
774
764
|
* in order to get back a functional MLS group. On the opposite, if it rejects it, you can either retry by just
|
@@ -777,14 +767,14 @@ export declare class CoreCrypto {
|
|
777
767
|
* {@link CoreCrypto.clearPendingGroupFromExternalCommit} in order not to bloat the user's storage but nothing
|
778
768
|
* bad can happen if you forget to except some storage space wasted.
|
779
769
|
*
|
780
|
-
* @param
|
770
|
+
* @param groupInfo - a TLS encoded GroupInfo fetched from the Delivery Service
|
781
771
|
* @param credentialType - kind of Credential to use for joining this group. If {@link CredentialType.Basic} is
|
782
772
|
* chosen and no Credential has been created yet for it, a new one will be generated.
|
783
773
|
* @param configuration - configuration of the MLS group
|
784
774
|
* When {@link CredentialType.X509} is chosen, it fails when no Credential has been created for the given {@link Ciphersuite}.
|
785
775
|
* @returns see {@link ConversationInitBundle}
|
786
776
|
*/
|
787
|
-
joinByExternalCommit(
|
777
|
+
joinByExternalCommit(groupInfo: Uint8Array, credentialType: CredentialType, configuration?: CustomConfiguration): Promise<ConversationInitBundle>;
|
788
778
|
/**
|
789
779
|
* This merges the commit generated by {@link CoreCrypto.joinByExternalCommit}, persists the group permanently
|
790
780
|
* and deletes the temporary one. This step makes the group operational and ready to encrypt/decrypt message
|
@@ -1027,6 +1017,14 @@ export declare class CoreCrypto {
|
|
1027
1017
|
* @returns the persisted enrollment instance
|
1028
1018
|
*/
|
1029
1019
|
e2eiEnrollmentStashPop(handle: Uint8Array): Promise<WireE2eIdentity>;
|
1020
|
+
/**
|
1021
|
+
* Indicates when to mark a conversation as degraded i.e. when not all its members have a X509.
|
1022
|
+
* Credential generated by Wire's end-to-end identity enrollment
|
1023
|
+
*
|
1024
|
+
* @param conversationId The group's ID
|
1025
|
+
* @returns true if all the members have valid X509 credentials
|
1026
|
+
*/
|
1027
|
+
e2eiIsDegraded(conversationId: ConversationId): Promise<boolean>;
|
1030
1028
|
/**
|
1031
1029
|
* Returns the current version of {@link CoreCrypto}
|
1032
1030
|
*
|
@@ -1136,7 +1134,6 @@ export declare class WireE2eIdentity {
|
|
1136
1134
|
* Verifies that the previous challenge has been completed.
|
1137
1135
|
*
|
1138
1136
|
* @param orderUrl `location` header from http response you got from {@link newOrderResponse}
|
1139
|
-
* @param account you found after {@link newAccountResponse}
|
1140
1137
|
* @param previousNonce `replay-nonce` response header from `POST /acme/{provisioner-name}/challenge/{challenge-id}`
|
1141
1138
|
* @see https://www.rfc-editor.org/rfc/rfc8555.html#section-7.4
|
1142
1139
|
*/
|
@@ -1152,7 +1149,6 @@ export declare class WireE2eIdentity {
|
|
1152
1149
|
/**
|
1153
1150
|
* Final step before fetching the certificate.
|
1154
1151
|
*
|
1155
|
-
* @param order - order you got from {@link checkOrderResponse}
|
1156
1152
|
* @param previousNonce - `replay-nonce` response header from `POST /acme/{provisioner-name}/order/{order-id}`
|
1157
1153
|
* @see https://www.rfc-editor.org/rfc/rfc8555.html#section-7.4
|
1158
1154
|
*/
|
@@ -35,14 +35,6 @@ const heap = new Array(128).fill(undefined);
|
|
35
35
|
heap.push(undefined, null, true, false);
|
36
36
|
function getObject(idx) { return heap[idx]; }
|
37
37
|
let heap_next = heap.length;
|
38
|
-
function addHeapObject(obj) {
|
39
|
-
if (heap_next === heap.length)
|
40
|
-
heap.push(heap.length + 1);
|
41
|
-
const idx = heap_next;
|
42
|
-
heap_next = heap[idx];
|
43
|
-
heap[idx] = obj;
|
44
|
-
return idx;
|
45
|
-
}
|
46
38
|
function dropObject(idx) {
|
47
39
|
if (idx < 132)
|
48
40
|
return;
|
@@ -54,6 +46,14 @@ function takeObject(idx) {
|
|
54
46
|
dropObject(idx);
|
55
47
|
return ret;
|
56
48
|
}
|
49
|
+
function addHeapObject(obj) {
|
50
|
+
if (heap_next === heap.length)
|
51
|
+
heap.push(heap.length + 1);
|
52
|
+
const idx = heap_next;
|
53
|
+
heap_next = heap[idx];
|
54
|
+
heap[idx] = obj;
|
55
|
+
return idx;
|
56
|
+
}
|
57
57
|
const cachedTextDecoder = (typeof TextDecoder !== 'undefined' ? new TextDecoder('utf-8', { ignoreBOM: true, fatal: true }) : { decode: () => { throw Error('TextDecoder not available'); } });
|
58
58
|
if (typeof TextDecoder !== 'undefined') {
|
59
59
|
cachedTextDecoder.decode();
|
@@ -230,12 +230,12 @@ function makeMutClosure(arg0, arg1, dtor, f) {
|
|
230
230
|
return real;
|
231
231
|
}
|
232
232
|
function __wbg_adapter_52(arg0, arg1, arg2) {
|
233
|
-
wasm$1.
|
233
|
+
wasm$1.wasm_bindgen__convert__closures__invoke1_mut__h66a7206f8c7c0090(arg0, arg1, addHeapObject(arg2));
|
234
234
|
}
|
235
235
|
function __wbg_adapter_55(arg0, arg1, arg2) {
|
236
236
|
try {
|
237
237
|
const retptr = wasm$1.__wbindgen_add_to_stack_pointer(-16);
|
238
|
-
wasm$1.
|
238
|
+
wasm$1.wasm_bindgen__convert__closures__invoke1_mut__hfd1454cbb6b3bfdc(retptr, arg0, arg1, addHeapObject(arg2));
|
239
239
|
var r0 = getInt32Memory0()[retptr / 4 + 0];
|
240
240
|
var r1 = getInt32Memory0()[retptr / 4 + 1];
|
241
241
|
if (r1) {
|
@@ -300,7 +300,7 @@ function handleError(f, args) {
|
|
300
300
|
}
|
301
301
|
}
|
302
302
|
function __wbg_adapter_288(arg0, arg1, arg2, arg3) {
|
303
|
-
wasm$1.
|
303
|
+
wasm$1.wasm_bindgen__convert__closures__invoke2_mut__h6061d6c1e1d69fb6(arg0, arg1, addHeapObject(arg2), addHeapObject(arg3));
|
304
304
|
}
|
305
305
|
/**
|
306
306
|
* see [core_crypto::prelude::MlsWirePolicy]
|
@@ -563,11 +563,11 @@ class CommitBundle {
|
|
563
563
|
return takeObject(ret);
|
564
564
|
}
|
565
565
|
/**
|
566
|
-
* @returns {
|
566
|
+
* @returns {GroupInfoBundle}
|
567
567
|
*/
|
568
|
-
get
|
569
|
-
const ret = wasm$1.
|
570
|
-
return
|
568
|
+
get group_info() {
|
569
|
+
const ret = wasm$1.commitbundle_group_info(this.__wbg_ptr);
|
570
|
+
return GroupInfoBundle.__wrap(ret);
|
571
571
|
}
|
572
572
|
}
|
573
573
|
/**
|
@@ -629,11 +629,11 @@ class ConversationInitBundle {
|
|
629
629
|
return takeObject(ret);
|
630
630
|
}
|
631
631
|
/**
|
632
|
-
* @returns {
|
632
|
+
* @returns {GroupInfoBundle}
|
633
633
|
*/
|
634
|
-
get
|
635
|
-
const ret = wasm$1.
|
636
|
-
return
|
634
|
+
get group_info() {
|
635
|
+
const ret = wasm$1.commitbundle_group_info(this.__wbg_ptr);
|
636
|
+
return GroupInfoBundle.__wrap(ret);
|
637
637
|
}
|
638
638
|
}
|
639
639
|
/**
|
@@ -712,6 +712,19 @@ let CoreCrypto$1 = class CoreCrypto {
|
|
712
712
|
return takeObject(ret);
|
713
713
|
}
|
714
714
|
/**
|
715
|
+
* Returns [`WasmCryptoResult<bool>`]
|
716
|
+
*
|
717
|
+
* see [core_crypto::mls::MlsCentral::e2ei_is_degraded]
|
718
|
+
* @param {Uint8Array} conversation_id
|
719
|
+
* @returns {Promise<any>}
|
720
|
+
*/
|
721
|
+
e2ei_is_degraded(conversation_id) {
|
722
|
+
const ptr0 = passArray8ToWasm0(conversation_id, wasm$1.__wbindgen_malloc);
|
723
|
+
const len0 = WASM_VECTOR_LEN;
|
724
|
+
const ret = wasm$1.corecrypto_e2ei_is_degraded(this.__wbg_ptr, ptr0, len0);
|
725
|
+
return takeObject(ret);
|
726
|
+
}
|
727
|
+
/**
|
715
728
|
* Returns the current version of CoreCrypto
|
716
729
|
* @returns {string}
|
717
730
|
*/
|
@@ -1138,44 +1151,27 @@ let CoreCrypto$1 = class CoreCrypto {
|
|
1138
1151
|
/**
|
1139
1152
|
* Returns: [`WasmCryptoResult<js_sys::Uint8Array>`]
|
1140
1153
|
*
|
1141
|
-
* see [core_crypto::mls::MlsCentral::
|
1154
|
+
* see [core_crypto::mls::MlsCentral::export_group_info]
|
1142
1155
|
* @param {Uint8Array} conversation_id
|
1143
|
-
* @param {number} epoch
|
1144
|
-
* @param {Uint8Array} keypackage_ref
|
1145
1156
|
* @returns {Promise<any>}
|
1146
1157
|
*/
|
1147
|
-
|
1158
|
+
export_group_info(conversation_id) {
|
1148
1159
|
const ptr0 = passArray8ToWasm0(conversation_id, wasm$1.__wbindgen_malloc);
|
1149
1160
|
const len0 = WASM_VECTOR_LEN;
|
1150
|
-
const
|
1151
|
-
const len1 = WASM_VECTOR_LEN;
|
1152
|
-
const ret = wasm$1.corecrypto_new_external_remove_proposal(this.__wbg_ptr, ptr0, len0, epoch, ptr1, len1);
|
1153
|
-
return takeObject(ret);
|
1154
|
-
}
|
1155
|
-
/**
|
1156
|
-
* Returns: [`WasmCryptoResult<js_sys::Uint8Array>`]
|
1157
|
-
*
|
1158
|
-
* see [core_crypto::mls::MlsCentral::export_public_group_state]
|
1159
|
-
* @param {Uint8Array} conversation_id
|
1160
|
-
* @returns {Promise<any>}
|
1161
|
-
*/
|
1162
|
-
export_group_state(conversation_id) {
|
1163
|
-
const ptr0 = passArray8ToWasm0(conversation_id, wasm$1.__wbindgen_malloc);
|
1164
|
-
const len0 = WASM_VECTOR_LEN;
|
1165
|
-
const ret = wasm$1.corecrypto_export_group_state(this.__wbg_ptr, ptr0, len0);
|
1161
|
+
const ret = wasm$1.corecrypto_export_group_info(this.__wbg_ptr, ptr0, len0);
|
1166
1162
|
return takeObject(ret);
|
1167
1163
|
}
|
1168
1164
|
/**
|
1169
1165
|
* Returns: [`WasmCryptoResult<ConversationInitBundle>`]
|
1170
1166
|
*
|
1171
1167
|
* see [core_crypto::mls::MlsCentral::join_by_external_commit]
|
1172
|
-
* @param {Uint8Array}
|
1168
|
+
* @param {Uint8Array} group_info
|
1173
1169
|
* @param {CustomConfiguration} custom_configuration
|
1174
1170
|
* @param {number} credential_type
|
1175
1171
|
* @returns {Promise<any>}
|
1176
1172
|
*/
|
1177
|
-
join_by_external_commit(
|
1178
|
-
const ptr0 = passArray8ToWasm0(
|
1173
|
+
join_by_external_commit(group_info, custom_configuration, credential_type) {
|
1174
|
+
const ptr0 = passArray8ToWasm0(group_info, wasm$1.__wbindgen_malloc);
|
1179
1175
|
const len0 = WASM_VECTOR_LEN;
|
1180
1176
|
_assertClass(custom_configuration, CustomConfiguration);
|
1181
1177
|
var ptr1 = custom_configuration.__destroy_into_raw();
|
@@ -2110,6 +2106,46 @@ class FfiWireE2EIdentity {
|
|
2110
2106
|
}
|
2111
2107
|
}
|
2112
2108
|
/**
|
2109
|
+
*/
|
2110
|
+
class GroupInfoBundle {
|
2111
|
+
static __wrap(ptr) {
|
2112
|
+
ptr = ptr >>> 0;
|
2113
|
+
const obj = Object.create(GroupInfoBundle.prototype);
|
2114
|
+
obj.__wbg_ptr = ptr;
|
2115
|
+
return obj;
|
2116
|
+
}
|
2117
|
+
__destroy_into_raw() {
|
2118
|
+
const ptr = this.__wbg_ptr;
|
2119
|
+
this.__wbg_ptr = 0;
|
2120
|
+
return ptr;
|
2121
|
+
}
|
2122
|
+
free() {
|
2123
|
+
const ptr = this.__destroy_into_raw();
|
2124
|
+
wasm$1.__wbg_groupinfobundle_free(ptr);
|
2125
|
+
}
|
2126
|
+
/**
|
2127
|
+
* @returns {number}
|
2128
|
+
*/
|
2129
|
+
get encryption_type() {
|
2130
|
+
const ret = wasm$1.groupinfobundle_encryption_type(this.__wbg_ptr);
|
2131
|
+
return ret;
|
2132
|
+
}
|
2133
|
+
/**
|
2134
|
+
* @returns {number}
|
2135
|
+
*/
|
2136
|
+
get ratchet_tree_type() {
|
2137
|
+
const ret = wasm$1.groupinfobundle_ratchet_tree_type(this.__wbg_ptr);
|
2138
|
+
return ret;
|
2139
|
+
}
|
2140
|
+
/**
|
2141
|
+
* @returns {Uint8Array}
|
2142
|
+
*/
|
2143
|
+
get payload() {
|
2144
|
+
const ret = wasm$1.acmechallenge_delegate(this.__wbg_ptr);
|
2145
|
+
return takeObject(ret);
|
2146
|
+
}
|
2147
|
+
}
|
2148
|
+
/**
|
2113
2149
|
* see [core_crypto::prelude::ConversationMember]
|
2114
2150
|
*/
|
2115
2151
|
class Invitee {
|
@@ -2173,11 +2209,11 @@ class MemberAddedMessages {
|
|
2173
2209
|
/**
|
2174
2210
|
* @param {Uint8Array} welcome
|
2175
2211
|
* @param {Uint8Array} commit
|
2176
|
-
* @param {
|
2212
|
+
* @param {GroupInfoBundle} group_info
|
2177
2213
|
*/
|
2178
|
-
constructor(welcome, commit,
|
2179
|
-
_assertClass(
|
2180
|
-
var ptr0 =
|
2214
|
+
constructor(welcome, commit, group_info) {
|
2215
|
+
_assertClass(group_info, GroupInfoBundle);
|
2216
|
+
var ptr0 = group_info.__destroy_into_raw();
|
2181
2217
|
const ret = wasm$1.memberaddedmessages_new(addHeapObject(welcome), addHeapObject(commit), ptr0);
|
2182
2218
|
return MemberAddedMessages.__wrap(ret);
|
2183
2219
|
}
|
@@ -2196,11 +2232,11 @@ class MemberAddedMessages {
|
|
2196
2232
|
return takeObject(ret);
|
2197
2233
|
}
|
2198
2234
|
/**
|
2199
|
-
* @returns {
|
2235
|
+
* @returns {GroupInfoBundle}
|
2200
2236
|
*/
|
2201
|
-
get
|
2202
|
-
const ret = wasm$1.
|
2203
|
-
return
|
2237
|
+
get group_info() {
|
2238
|
+
const ret = wasm$1.commitbundle_group_info(this.__wbg_ptr);
|
2239
|
+
return GroupInfoBundle.__wrap(ret);
|
2204
2240
|
}
|
2205
2241
|
}
|
2206
2242
|
/**
|
@@ -2413,46 +2449,6 @@ class ProteusAutoPrekeyBundle {
|
|
2413
2449
|
}
|
2414
2450
|
}
|
2415
2451
|
/**
|
2416
|
-
*/
|
2417
|
-
class PublicGroupStateBundle {
|
2418
|
-
static __wrap(ptr) {
|
2419
|
-
ptr = ptr >>> 0;
|
2420
|
-
const obj = Object.create(PublicGroupStateBundle.prototype);
|
2421
|
-
obj.__wbg_ptr = ptr;
|
2422
|
-
return obj;
|
2423
|
-
}
|
2424
|
-
__destroy_into_raw() {
|
2425
|
-
const ptr = this.__wbg_ptr;
|
2426
|
-
this.__wbg_ptr = 0;
|
2427
|
-
return ptr;
|
2428
|
-
}
|
2429
|
-
free() {
|
2430
|
-
const ptr = this.__destroy_into_raw();
|
2431
|
-
wasm$1.__wbg_publicgroupstatebundle_free(ptr);
|
2432
|
-
}
|
2433
|
-
/**
|
2434
|
-
* @returns {number}
|
2435
|
-
*/
|
2436
|
-
get encryption_type() {
|
2437
|
-
const ret = wasm$1.publicgroupstatebundle_encryption_type(this.__wbg_ptr);
|
2438
|
-
return ret;
|
2439
|
-
}
|
2440
|
-
/**
|
2441
|
-
* @returns {number}
|
2442
|
-
*/
|
2443
|
-
get ratchet_tree_type() {
|
2444
|
-
const ret = wasm$1.publicgroupstatebundle_ratchet_tree_type(this.__wbg_ptr);
|
2445
|
-
return ret;
|
2446
|
-
}
|
2447
|
-
/**
|
2448
|
-
* @returns {Uint8Array}
|
2449
|
-
*/
|
2450
|
-
get payload() {
|
2451
|
-
const ret = wasm$1.acmechallenge_delegate(this.__wbg_ptr);
|
2452
|
-
return takeObject(ret);
|
2453
|
-
}
|
2454
|
-
}
|
2455
|
-
/**
|
2456
2452
|
* see [core_crypto::prelude::WireIdentity]
|
2457
2453
|
*/
|
2458
2454
|
class WireIdentity {
|
@@ -2601,13 +2597,13 @@ async function __wbg_load(module, imports) {
|
|
2601
2597
|
function __wbg_get_imports() {
|
2602
2598
|
const imports = {};
|
2603
2599
|
imports.wbg = {};
|
2600
|
+
imports.wbg.__wbindgen_object_drop_ref = function (arg0) {
|
2601
|
+
takeObject(arg0);
|
2602
|
+
};
|
2604
2603
|
imports.wbg.__wbindgen_object_clone_ref = function (arg0) {
|
2605
2604
|
const ret = getObject(arg0);
|
2606
2605
|
return addHeapObject(ret);
|
2607
2606
|
};
|
2608
|
-
imports.wbg.__wbindgen_object_drop_ref = function (arg0) {
|
2609
|
-
takeObject(arg0);
|
2610
|
-
};
|
2611
2607
|
imports.wbg.__wbindgen_is_object = function (arg0) {
|
2612
2608
|
const val = getObject(arg0);
|
2613
2609
|
const ret = typeof (val) === 'object' && val !== null;
|
@@ -2625,6 +2621,12 @@ function __wbg_get_imports() {
|
|
2625
2621
|
const ret = getObject(arg0) in getObject(arg1);
|
2626
2622
|
return ret;
|
2627
2623
|
};
|
2624
|
+
imports.wbg.__wbg_objectStore_6eb812526333c917 = function () {
|
2625
|
+
return handleError(function (arg0, arg1, arg2) {
|
2626
|
+
const ret = getObject(arg0).objectStore(getStringFromWasm0(arg1, arg2));
|
2627
|
+
return addHeapObject(ret);
|
2628
|
+
}, arguments);
|
2629
|
+
};
|
2628
2630
|
imports.wbg.__wbg_objectStoreNames_432a9424fbdfefda = function (arg0) {
|
2629
2631
|
const ret = getObject(arg0).objectStoreNames;
|
2630
2632
|
return addHeapObject(ret);
|
@@ -2637,6 +2639,12 @@ function __wbg_get_imports() {
|
|
2637
2639
|
const ret = getStringFromWasm0(arg0, arg1);
|
2638
2640
|
return addHeapObject(ret);
|
2639
2641
|
};
|
2642
|
+
imports.wbg.__wbg_get_a9b507527c0f6958 = function () {
|
2643
|
+
return handleError(function (arg0, arg1) {
|
2644
|
+
const ret = getObject(arg0).get(getObject(arg1));
|
2645
|
+
return addHeapObject(ret);
|
2646
|
+
}, arguments);
|
2647
|
+
};
|
2640
2648
|
imports.wbg.__wbindgen_is_null = function (arg0) {
|
2641
2649
|
const ret = getObject(arg0) === null;
|
2642
2650
|
return ret;
|
@@ -2653,6 +2661,16 @@ function __wbg_get_imports() {
|
|
2653
2661
|
const ret = getObject(arg0).length;
|
2654
2662
|
return ret;
|
2655
2663
|
};
|
2664
|
+
imports.wbg.__wbg_call_587b30eea3e09332 = function () {
|
2665
|
+
return handleError(function (arg0, arg1, arg2) {
|
2666
|
+
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
|
2667
|
+
return addHeapObject(ret);
|
2668
|
+
}, arguments);
|
2669
|
+
};
|
2670
|
+
imports.wbg.__wbindgen_bigint_from_u64 = function (arg0) {
|
2671
|
+
const ret = BigInt.asUintN(64, arg0);
|
2672
|
+
return addHeapObject(ret);
|
2673
|
+
};
|
2656
2674
|
imports.wbg.__wbg_new_2b55e405e4af4986 = function (arg0, arg1) {
|
2657
2675
|
try {
|
2658
2676
|
var state0 = { a: arg0, b: arg1 };
|
@@ -2673,16 +2691,14 @@ function __wbg_get_imports() {
|
|
2673
2691
|
state0.a = state0.b = 0;
|
2674
2692
|
}
|
2675
2693
|
};
|
2676
|
-
imports.wbg.__wbg_call_587b30eea3e09332 = function () {
|
2677
|
-
return handleError(function (arg0, arg1, arg2) {
|
2678
|
-
const ret = getObject(arg0).call(getObject(arg1), getObject(arg2));
|
2679
|
-
return addHeapObject(ret);
|
2680
|
-
}, arguments);
|
2681
|
-
};
|
2682
2694
|
imports.wbg.__wbg_new_09938a7d020f049b = function (arg0) {
|
2683
2695
|
const ret = new Uint8Array(getObject(arg0));
|
2684
2696
|
return addHeapObject(ret);
|
2685
2697
|
};
|
2698
|
+
imports.wbg.__wbg_proteusautoprekeybundle_new = function (arg0) {
|
2699
|
+
const ret = ProteusAutoPrekeyBundle.__wrap(arg0);
|
2700
|
+
return addHeapObject(ret);
|
2701
|
+
};
|
2686
2702
|
imports.wbg.__wbg_new_0394642eae39db16 = function () {
|
2687
2703
|
const ret = new Array();
|
2688
2704
|
return addHeapObject(ret);
|
@@ -2691,20 +2707,22 @@ function __wbg_get_imports() {
|
|
2691
2707
|
const ret = getObject(arg0).push(getObject(arg1));
|
2692
2708
|
return ret;
|
2693
2709
|
};
|
2694
|
-
imports.wbg.__wbindgen_number_new = function (arg0) {
|
2695
|
-
const ret = arg0;
|
2696
|
-
return addHeapObject(ret);
|
2697
|
-
};
|
2698
2710
|
imports.wbg.__wbg_new_2b6fea4ea03b1b95 = function () {
|
2699
2711
|
const ret = new Object();
|
2700
2712
|
return addHeapObject(ret);
|
2701
2713
|
};
|
2702
|
-
imports.wbg.
|
2703
|
-
const ret =
|
2714
|
+
imports.wbg.__wbg_ffiwiree2eidentity_new = function (arg0) {
|
2715
|
+
const ret = FfiWireE2EIdentity.__wrap(arg0);
|
2704
2716
|
return addHeapObject(ret);
|
2705
2717
|
};
|
2706
|
-
imports.wbg.
|
2707
|
-
|
2718
|
+
imports.wbg.__wbg_set_b4da98d504ac6091 = function (arg0, arg1, arg2) {
|
2719
|
+
getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
|
2720
|
+
};
|
2721
|
+
imports.wbg.__wbg_set_841ac57cff3d672b = function (arg0, arg1, arg2) {
|
2722
|
+
getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
|
2723
|
+
};
|
2724
|
+
imports.wbg.__wbindgen_number_new = function (arg0) {
|
2725
|
+
const ret = arg0;
|
2708
2726
|
return addHeapObject(ret);
|
2709
2727
|
};
|
2710
2728
|
imports.wbg.__wbg_new_0f2b71ca2f2a6029 = function () {
|
@@ -2715,14 +2733,22 @@ function __wbg_get_imports() {
|
|
2715
2733
|
const ret = getObject(arg0).set(getObject(arg1), getObject(arg2));
|
2716
2734
|
return addHeapObject(ret);
|
2717
2735
|
};
|
2718
|
-
imports.wbg.__wbg_ffiwiree2eidentity_new = function (arg0) {
|
2719
|
-
const ret = FfiWireE2EIdentity.__wrap(arg0);
|
2720
|
-
return addHeapObject(ret);
|
2721
|
-
};
|
2722
2736
|
imports.wbg.__wbg_new_87297f22973157c8 = function (arg0, arg1) {
|
2723
2737
|
const ret = new Error(getStringFromWasm0(arg0, arg1));
|
2724
2738
|
return addHeapObject(ret);
|
2725
2739
|
};
|
2740
|
+
imports.wbg.__wbg_openCursor_63250aa904924858 = function () {
|
2741
|
+
return handleError(function (arg0, arg1) {
|
2742
|
+
const ret = getObject(arg0).openCursor(getObject(arg1));
|
2743
|
+
return addHeapObject(ret);
|
2744
|
+
}, arguments);
|
2745
|
+
};
|
2746
|
+
imports.wbg.__wbg_openCursor_2da32f6b7767a8f6 = function () {
|
2747
|
+
return handleError(function (arg0) {
|
2748
|
+
const ret = getObject(arg0).openCursor();
|
2749
|
+
return addHeapObject(ret);
|
2750
|
+
}, arguments);
|
2751
|
+
};
|
2726
2752
|
imports.wbg.__wbg_setonsuccess_d668ac71ae816a35 = function (arg0, arg1) {
|
2727
2753
|
getObject(arg0).onsuccess = getObject(arg1);
|
2728
2754
|
};
|
@@ -2783,9 +2809,6 @@ function __wbg_get_imports() {
|
|
2783
2809
|
const ret = CoreCrypto$1.__wrap(arg0);
|
2784
2810
|
return addHeapObject(ret);
|
2785
2811
|
};
|
2786
|
-
imports.wbg.__wbg_set_841ac57cff3d672b = function (arg0, arg1, arg2) {
|
2787
|
-
getObject(arg0)[takeObject(arg1)] = takeObject(arg2);
|
2788
|
-
};
|
2789
2812
|
imports.wbg.__wbg_instanceof_Promise_4b9b76dc9c35f96e = function (arg0) {
|
2790
2813
|
let result;
|
2791
2814
|
try {
|
@@ -2834,9 +2857,6 @@ function __wbg_get_imports() {
|
|
2834
2857
|
const ret = Promise.reject(getObject(arg0));
|
2835
2858
|
return addHeapObject(ret);
|
2836
2859
|
};
|
2837
|
-
imports.wbg.__wbg_set_b4da98d504ac6091 = function (arg0, arg1, arg2) {
|
2838
|
-
getObject(arg0)[arg1 >>> 0] = takeObject(arg2);
|
2839
|
-
};
|
2840
2860
|
imports.wbg.__wbg_proposalbundle_new = function (arg0) {
|
2841
2861
|
const ret = ProposalBundle.__wrap(arg0);
|
2842
2862
|
return addHeapObject(ret);
|
@@ -2938,12 +2958,6 @@ function __wbg_get_imports() {
|
|
2938
2958
|
return addHeapObject(ret);
|
2939
2959
|
}, arguments);
|
2940
2960
|
};
|
2941
|
-
imports.wbg.__wbg_openCursor_9f2ba6afb4885925 = function () {
|
2942
|
-
return handleError(function (arg0, arg1) {
|
2943
|
-
const ret = getObject(arg0).openCursor(getObject(arg1));
|
2944
|
-
return addHeapObject(ret);
|
2945
|
-
}, arguments);
|
2946
|
-
};
|
2947
2961
|
imports.wbg.__wbindgen_memory = function () {
|
2948
2962
|
const ret = wasm$1.memory;
|
2949
2963
|
return addHeapObject(ret);
|
@@ -2956,7 +2970,7 @@ function __wbg_get_imports() {
|
|
2956
2970
|
const ret = new Uint8Array(getObject(arg0), arg1 >>> 0, arg2 >>> 0);
|
2957
2971
|
return addHeapObject(ret);
|
2958
2972
|
};
|
2959
|
-
imports.wbg.
|
2973
|
+
imports.wbg.__wbg_randomFillSync_dc1e9a60c158336d = function () {
|
2960
2974
|
return handleError(function (arg0, arg1) {
|
2961
2975
|
getObject(arg0).randomFillSync(takeObject(arg1));
|
2962
2976
|
}, arguments);
|
@@ -2965,24 +2979,24 @@ function __wbg_get_imports() {
|
|
2965
2979
|
const ret = getObject(arg0).subarray(arg1 >>> 0, arg2 >>> 0);
|
2966
2980
|
return addHeapObject(ret);
|
2967
2981
|
};
|
2968
|
-
imports.wbg.
|
2982
|
+
imports.wbg.__wbg_getRandomValues_37fa2ca9e4e07fab = function () {
|
2969
2983
|
return handleError(function (arg0, arg1) {
|
2970
2984
|
getObject(arg0).getRandomValues(getObject(arg1));
|
2971
2985
|
}, arguments);
|
2972
2986
|
};
|
2973
|
-
imports.wbg.
|
2987
|
+
imports.wbg.__wbg_crypto_c48a774b022d20ac = function (arg0) {
|
2974
2988
|
const ret = getObject(arg0).crypto;
|
2975
2989
|
return addHeapObject(ret);
|
2976
2990
|
};
|
2977
|
-
imports.wbg.
|
2991
|
+
imports.wbg.__wbg_process_298734cf255a885d = function (arg0) {
|
2978
2992
|
const ret = getObject(arg0).process;
|
2979
2993
|
return addHeapObject(ret);
|
2980
2994
|
};
|
2981
|
-
imports.wbg.
|
2995
|
+
imports.wbg.__wbg_versions_e2e78e134e3e5d01 = function (arg0) {
|
2982
2996
|
const ret = getObject(arg0).versions;
|
2983
2997
|
return addHeapObject(ret);
|
2984
2998
|
};
|
2985
|
-
imports.wbg.
|
2999
|
+
imports.wbg.__wbg_node_1cd7a5d853dbea79 = function (arg0) {
|
2986
3000
|
const ret = getObject(arg0).node;
|
2987
3001
|
return addHeapObject(ret);
|
2988
3002
|
};
|
@@ -2990,7 +3004,7 @@ function __wbg_get_imports() {
|
|
2990
3004
|
const ret = typeof (getObject(arg0)) === 'string';
|
2991
3005
|
return ret;
|
2992
3006
|
};
|
2993
|
-
imports.wbg.
|
3007
|
+
imports.wbg.__wbg_require_8f08ceecec0f4fee = function () {
|
2994
3008
|
return handleError(function () {
|
2995
3009
|
const ret = module.require;
|
2996
3010
|
return addHeapObject(ret);
|
@@ -3000,7 +3014,7 @@ function __wbg_get_imports() {
|
|
3000
3014
|
const ret = typeof (getObject(arg0)) === 'function';
|
3001
3015
|
return ret;
|
3002
3016
|
};
|
3003
|
-
imports.wbg.
|
3017
|
+
imports.wbg.__wbg_msCrypto_bcb970640f50a1e8 = function (arg0) {
|
3004
3018
|
const ret = getObject(arg0).msCrypto;
|
3005
3019
|
return addHeapObject(ret);
|
3006
3020
|
};
|
@@ -3249,54 +3263,18 @@ function __wbg_get_imports() {
|
|
3249
3263
|
return addHeapObject(ret);
|
3250
3264
|
}, arguments);
|
3251
3265
|
};
|
3252
|
-
imports.wbg.__wbg_openCursor_5d4f2d7a9e60117c = function () {
|
3253
|
-
return handleError(function (arg0) {
|
3254
|
-
const ret = getObject(arg0).openCursor();
|
3255
|
-
return addHeapObject(ret);
|
3256
|
-
}, arguments);
|
3257
|
-
};
|
3258
|
-
imports.wbg.__wbg_openCursor_88c75b521e6a6818 = function () {
|
3259
|
-
return handleError(function (arg0, arg1, arg2) {
|
3260
|
-
const ret = getObject(arg0).openCursor(getObject(arg1), takeObject(arg2));
|
3261
|
-
return addHeapObject(ret);
|
3262
|
-
}, arguments);
|
3263
|
-
};
|
3264
|
-
imports.wbg.__wbg_get_a9b507527c0f6958 = function () {
|
3265
|
-
return handleError(function (arg0, arg1) {
|
3266
|
-
const ret = getObject(arg0).get(getObject(arg1));
|
3267
|
-
return addHeapObject(ret);
|
3268
|
-
}, arguments);
|
3269
|
-
};
|
3270
|
-
imports.wbg.__wbg_openCursor_2da32f6b7767a8f6 = function () {
|
3271
|
-
return handleError(function (arg0) {
|
3272
|
-
const ret = getObject(arg0).openCursor();
|
3273
|
-
return addHeapObject(ret);
|
3274
|
-
}, arguments);
|
3275
|
-
};
|
3276
|
-
imports.wbg.__wbg_openCursor_63250aa904924858 = function () {
|
3277
|
-
return handleError(function (arg0, arg1) {
|
3278
|
-
const ret = getObject(arg0).openCursor(getObject(arg1));
|
3279
|
-
return addHeapObject(ret);
|
3280
|
-
}, arguments);
|
3281
|
-
};
|
3282
3266
|
imports.wbg.__wbg_openCursor_4a2cac5b1c5cf36b = function () {
|
3283
3267
|
return handleError(function (arg0, arg1, arg2) {
|
3284
3268
|
const ret = getObject(arg0).openCursor(getObject(arg1), takeObject(arg2));
|
3285
3269
|
return addHeapObject(ret);
|
3286
3270
|
}, arguments);
|
3287
3271
|
};
|
3288
|
-
imports.wbg.
|
3289
|
-
|
3290
|
-
const ret = getObject(arg0).objectStore(getStringFromWasm0(arg1, arg2));
|
3291
|
-
return addHeapObject(ret);
|
3292
|
-
}, arguments);
|
3293
|
-
};
|
3294
|
-
imports.wbg.__wbindgen_closure_wrapper1634 = function (arg0, arg1, arg2) {
|
3295
|
-
const ret = makeMutClosure(arg0, arg1, 161, __wbg_adapter_52);
|
3272
|
+
imports.wbg.__wbindgen_closure_wrapper1899 = function (arg0, arg1, arg2) {
|
3273
|
+
const ret = makeMutClosure(arg0, arg1, 158, __wbg_adapter_52);
|
3296
3274
|
return addHeapObject(ret);
|
3297
3275
|
};
|
3298
|
-
imports.wbg.
|
3299
|
-
const ret = makeMutClosure(arg0, arg1,
|
3276
|
+
imports.wbg.__wbindgen_closure_wrapper4477 = function (arg0, arg1, arg2) {
|
3277
|
+
const ret = makeMutClosure(arg0, arg1, 158, __wbg_adapter_55);
|
3300
3278
|
return addHeapObject(ret);
|
3301
3279
|
};
|
3302
3280
|
return imports;
|
@@ -3347,13 +3325,13 @@ var exports = /*#__PURE__*/Object.freeze({
|
|
3347
3325
|
CustomConfiguration: CustomConfiguration,
|
3348
3326
|
DecryptedMessage: DecryptedMessage,
|
3349
3327
|
FfiWireE2EIdentity: FfiWireE2EIdentity,
|
3328
|
+
GroupInfoBundle: GroupInfoBundle,
|
3350
3329
|
Invitee: Invitee,
|
3351
3330
|
MemberAddedMessages: MemberAddedMessages,
|
3352
3331
|
NewAcmeAuthz: NewAcmeAuthz,
|
3353
3332
|
NewAcmeOrder: NewAcmeOrder,
|
3354
3333
|
ProposalBundle: ProposalBundle,
|
3355
3334
|
ProteusAutoPrekeyBundle: ProteusAutoPrekeyBundle,
|
3356
|
-
PublicGroupStateBundle: PublicGroupStateBundle,
|
3357
3335
|
WireIdentity: WireIdentity,
|
3358
3336
|
WirePolicy: WirePolicy$1,
|
3359
3337
|
default: __wbg_init,
|
@@ -3363,7 +3341,7 @@ var exports = /*#__PURE__*/Object.freeze({
|
|
3363
3341
|
var wasm = async (opt = {}) => {
|
3364
3342
|
let {importHook, serverPath} = opt;
|
3365
3343
|
|
3366
|
-
let path = "assets/core_crypto_ffi-
|
3344
|
+
let path = "assets/core_crypto_ffi-8052e3ff.wasm";
|
3367
3345
|
|
3368
3346
|
if (serverPath != null) {
|
3369
3347
|
path = serverPath + /[^\/\\]*$/.exec(path)[0];
|
@@ -3498,28 +3476,28 @@ var WirePolicy;
|
|
3498
3476
|
WirePolicy[WirePolicy["Ciphertext"] = 2] = "Ciphertext";
|
3499
3477
|
})(WirePolicy || (WirePolicy = {}));
|
3500
3478
|
/**
|
3501
|
-
* Informs whether the
|
3502
|
-
* see [core_crypto::mls::conversation::
|
3479
|
+
* Informs whether the GroupInfo is confidential
|
3480
|
+
* see [core_crypto::mls::conversation::group_info::GroupInfoEncryptionType]
|
3503
3481
|
*/
|
3504
|
-
var
|
3505
|
-
(function (
|
3482
|
+
var GroupInfoEncryptionType;
|
3483
|
+
(function (GroupInfoEncryptionType) {
|
3506
3484
|
/**
|
3507
3485
|
* Unencrypted
|
3508
3486
|
*/
|
3509
|
-
|
3487
|
+
GroupInfoEncryptionType[GroupInfoEncryptionType["Plaintext"] = 1] = "Plaintext";
|
3510
3488
|
/**
|
3511
3489
|
* Encrypted in a JWE (not yet implemented)
|
3512
3490
|
*/
|
3513
|
-
|
3514
|
-
})(
|
3491
|
+
GroupInfoEncryptionType[GroupInfoEncryptionType["JweEncrypted"] = 2] = "JweEncrypted";
|
3492
|
+
})(GroupInfoEncryptionType || (GroupInfoEncryptionType = {}));
|
3515
3493
|
/**
|
3516
3494
|
* Represents different ways of carrying the Ratchet Tree with some optimizations to save some space
|
3517
|
-
* see [core_crypto::mls::conversation::
|
3495
|
+
* see [core_crypto::mls::conversation::group_info::RatchetTreeType]
|
3518
3496
|
*/
|
3519
3497
|
var RatchetTreeType;
|
3520
3498
|
(function (RatchetTreeType) {
|
3521
3499
|
/**
|
3522
|
-
* Complete
|
3500
|
+
* Complete GroupInfo
|
3523
3501
|
*/
|
3524
3502
|
RatchetTreeType[RatchetTreeType["Full"] = 1] = "Full";
|
3525
3503
|
/**
|
@@ -3558,10 +3536,6 @@ var ExternalProposalType;
|
|
3558
3536
|
* This allows to propose the addition of other clients to the MLS group/conversation
|
3559
3537
|
*/
|
3560
3538
|
ExternalProposalType[ExternalProposalType["Add"] = 0] = "Add";
|
3561
|
-
/**
|
3562
|
-
* This allows to propose the removal of clients from the MLS group/conversation
|
3563
|
-
*/
|
3564
|
-
ExternalProposalType[ExternalProposalType["Remove"] = 1] = "Remove";
|
3565
3539
|
})(ExternalProposalType || (ExternalProposalType = {}));
|
3566
3540
|
/**
|
3567
3541
|
* Wrapper for the WASM-compiled version of CoreCrypto
|
@@ -3882,14 +3856,14 @@ class CoreCrypto {
|
|
3882
3856
|
const ffiClients = clients.map((invitee) => new (__classPrivateFieldGet(CoreCrypto, _a, "f", _CoreCrypto_module).Invitee)(invitee.id, invitee.kp));
|
3883
3857
|
const ffiRet = await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").add_clients_to_conversation(conversationId, ffiClients));
|
3884
3858
|
ffiClients.forEach(c => c.free());
|
3885
|
-
const
|
3859
|
+
const gi = ffiRet.group_info;
|
3886
3860
|
const ret = {
|
3887
3861
|
welcome: ffiRet.welcome,
|
3888
3862
|
commit: ffiRet.commit,
|
3889
|
-
|
3890
|
-
encryptionType:
|
3891
|
-
ratchetTreeType:
|
3892
|
-
payload:
|
3863
|
+
groupInfo: {
|
3864
|
+
encryptionType: gi.encryption_type,
|
3865
|
+
ratchetTreeType: gi.ratchet_tree_type,
|
3866
|
+
payload: gi.payload
|
3893
3867
|
},
|
3894
3868
|
};
|
3895
3869
|
return ret;
|
@@ -3914,14 +3888,14 @@ class CoreCrypto {
|
|
3914
3888
|
async removeClientsFromConversation(conversationId, clientIds) {
|
3915
3889
|
try {
|
3916
3890
|
const ffiRet = await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").remove_clients_from_conversation(conversationId, clientIds));
|
3917
|
-
const
|
3891
|
+
const gi = ffiRet.group_info;
|
3918
3892
|
const ret = {
|
3919
3893
|
welcome: ffiRet.welcome,
|
3920
3894
|
commit: ffiRet.commit,
|
3921
|
-
|
3922
|
-
encryptionType:
|
3923
|
-
ratchetTreeType:
|
3924
|
-
payload:
|
3895
|
+
groupInfo: {
|
3896
|
+
encryptionType: gi.encryption_type,
|
3897
|
+
ratchetTreeType: gi.ratchet_tree_type,
|
3898
|
+
payload: gi.payload
|
3925
3899
|
},
|
3926
3900
|
};
|
3927
3901
|
return ret;
|
@@ -3944,14 +3918,14 @@ class CoreCrypto {
|
|
3944
3918
|
async updateKeyingMaterial(conversationId) {
|
3945
3919
|
try {
|
3946
3920
|
const ffiRet = await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").update_keying_material(conversationId));
|
3947
|
-
const
|
3921
|
+
const gi = ffiRet.group_info;
|
3948
3922
|
const ret = {
|
3949
3923
|
welcome: ffiRet.welcome,
|
3950
3924
|
commit: ffiRet.commit,
|
3951
|
-
|
3952
|
-
encryptionType:
|
3953
|
-
ratchetTreeType:
|
3954
|
-
payload:
|
3925
|
+
groupInfo: {
|
3926
|
+
encryptionType: gi.encryption_type,
|
3927
|
+
ratchetTreeType: gi.ratchet_tree_type,
|
3928
|
+
payload: gi.payload
|
3955
3929
|
},
|
3956
3930
|
};
|
3957
3931
|
return ret;
|
@@ -3977,14 +3951,14 @@ class CoreCrypto {
|
|
3977
3951
|
if (!ffiCommitBundle) {
|
3978
3952
|
return undefined;
|
3979
3953
|
}
|
3980
|
-
const
|
3954
|
+
const gi = ffiCommitBundle.group_info;
|
3981
3955
|
return {
|
3982
3956
|
welcome: ffiCommitBundle.welcome,
|
3983
3957
|
commit: ffiCommitBundle.commit,
|
3984
|
-
|
3985
|
-
encryptionType:
|
3986
|
-
ratchetTreeType:
|
3987
|
-
payload:
|
3958
|
+
groupInfo: {
|
3959
|
+
encryptionType: gi.encryption_type,
|
3960
|
+
ratchetTreeType: gi.ratchet_tree_type,
|
3961
|
+
payload: gi.payload
|
3988
3962
|
},
|
3989
3963
|
};
|
3990
3964
|
}
|
@@ -4027,27 +4001,21 @@ class CoreCrypto {
|
|
4027
4001
|
let addArgs = args;
|
4028
4002
|
return await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").new_external_add_proposal(args.conversationId, args.epoch, addArgs.ciphersuite, addArgs.credentialType));
|
4029
4003
|
}
|
4030
|
-
case ExternalProposalType.Remove: {
|
4031
|
-
if (!args.keyPackageRef) {
|
4032
|
-
throw new Error("keyPackageRef is not contained in the external proposal arguments");
|
4033
|
-
}
|
4034
|
-
return await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").new_external_remove_proposal(args.conversationId, args.epoch, args.keyPackageRef));
|
4035
|
-
}
|
4036
4004
|
default:
|
4037
4005
|
throw new Error("Invalid external proposal type!");
|
4038
4006
|
}
|
4039
4007
|
}
|
4040
4008
|
/**
|
4041
|
-
* Exports
|
4009
|
+
* Exports GroupInfo for use in external commits
|
4042
4010
|
*
|
4043
4011
|
* @param conversationId - MLS Conversation ID
|
4044
|
-
* @returns TLS-serialized MLS
|
4012
|
+
* @returns TLS-serialized MLS GroupInfo
|
4045
4013
|
*/
|
4046
|
-
async
|
4047
|
-
return await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").
|
4014
|
+
async exportGroupInfo(conversationId) {
|
4015
|
+
return await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").export_group_info(conversationId));
|
4048
4016
|
}
|
4049
4017
|
/**
|
4050
|
-
* Allows to create an external commit to "apply" to join a group through its
|
4018
|
+
* Allows to create an external commit to "apply" to join a group through its GroupInfo.
|
4051
4019
|
*
|
4052
4020
|
* If the Delivery Service accepts the external commit, you have to {@link CoreCrypto.mergePendingGroupFromExternalCommit}
|
4053
4021
|
* in order to get back a functional MLS group. On the opposite, if it rejects it, you can either retry by just
|
@@ -4056,26 +4024,26 @@ class CoreCrypto {
|
|
4056
4024
|
* {@link CoreCrypto.clearPendingGroupFromExternalCommit} in order not to bloat the user's storage but nothing
|
4057
4025
|
* bad can happen if you forget to except some storage space wasted.
|
4058
4026
|
*
|
4059
|
-
* @param
|
4027
|
+
* @param groupInfo - a TLS encoded GroupInfo fetched from the Delivery Service
|
4060
4028
|
* @param credentialType - kind of Credential to use for joining this group. If {@link CredentialType.Basic} is
|
4061
4029
|
* chosen and no Credential has been created yet for it, a new one will be generated.
|
4062
4030
|
* @param configuration - configuration of the MLS group
|
4063
4031
|
* When {@link CredentialType.X509} is chosen, it fails when no Credential has been created for the given {@link Ciphersuite}.
|
4064
4032
|
* @returns see {@link ConversationInitBundle}
|
4065
4033
|
*/
|
4066
|
-
async joinByExternalCommit(
|
4034
|
+
async joinByExternalCommit(groupInfo, credentialType, configuration = {}) {
|
4067
4035
|
try {
|
4068
4036
|
const { keyRotationSpan, wirePolicy } = configuration || {};
|
4069
4037
|
const config = new (__classPrivateFieldGet(CoreCrypto, _a, "f", _CoreCrypto_module).CustomConfiguration)(keyRotationSpan, wirePolicy);
|
4070
|
-
const ffiInitMessage = await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").join_by_external_commit(
|
4071
|
-
const
|
4038
|
+
const ffiInitMessage = await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").join_by_external_commit(groupInfo, config, credentialType));
|
4039
|
+
const gi = ffiInitMessage.group_info;
|
4072
4040
|
const ret = {
|
4073
4041
|
conversationId: ffiInitMessage.conversation_id,
|
4074
4042
|
commit: ffiInitMessage.commit,
|
4075
|
-
|
4076
|
-
encryptionType:
|
4077
|
-
ratchetTreeType:
|
4078
|
-
payload:
|
4043
|
+
groupInfo: {
|
4044
|
+
encryptionType: gi.encryption_type,
|
4045
|
+
ratchetTreeType: gi.ratchet_tree_type,
|
4046
|
+
payload: gi.payload
|
4079
4047
|
},
|
4080
4048
|
};
|
4081
4049
|
return ret;
|
@@ -4401,6 +4369,16 @@ class CoreCrypto {
|
|
4401
4369
|
const e2ei = await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").e2ei_enrollment_stash_pop(handle));
|
4402
4370
|
return new WireE2eIdentity(e2ei);
|
4403
4371
|
}
|
4372
|
+
/**
|
4373
|
+
* Indicates when to mark a conversation as degraded i.e. when not all its members have a X509.
|
4374
|
+
* Credential generated by Wire's end-to-end identity enrollment
|
4375
|
+
*
|
4376
|
+
* @param conversationId The group's ID
|
4377
|
+
* @returns true if all the members have valid X509 credentials
|
4378
|
+
*/
|
4379
|
+
async e2eiIsDegraded(conversationId) {
|
4380
|
+
return await CoreCryptoError.asyncMapErr(__classPrivateFieldGet(this, _CoreCrypto_cc, "f").e2ei_is_degraded(conversationId));
|
4381
|
+
}
|
4404
4382
|
/**
|
4405
4383
|
* Returns the current version of {@link CoreCrypto}
|
4406
4384
|
*
|
@@ -4603,7 +4581,6 @@ class WireE2eIdentity {
|
|
4603
4581
|
* Verifies that the previous challenge has been completed.
|
4604
4582
|
*
|
4605
4583
|
* @param orderUrl `location` header from http response you got from {@link newOrderResponse}
|
4606
|
-
* @param account you found after {@link newAccountResponse}
|
4607
4584
|
* @param previousNonce `replay-nonce` response header from `POST /acme/{provisioner-name}/challenge/{challenge-id}`
|
4608
4585
|
* @see https://www.rfc-editor.org/rfc/rfc8555.html#section-7.4
|
4609
4586
|
*/
|
@@ -4633,7 +4610,6 @@ class WireE2eIdentity {
|
|
4633
4610
|
/**
|
4634
4611
|
* Final step before fetching the certificate.
|
4635
4612
|
*
|
4636
|
-
* @param order - order you got from {@link checkOrderResponse}
|
4637
4613
|
* @param previousNonce - `replay-nonce` response header from `POST /acme/{provisioner-name}/order/{order-id}`
|
4638
4614
|
* @see https://www.rfc-editor.org/rfc/rfc8555.html#section-7.4
|
4639
4615
|
*/
|
@@ -4677,4 +4653,4 @@ class WireE2eIdentity {
|
|
4677
4653
|
}
|
4678
4654
|
_WireE2eIdentity_e2ei = new WeakMap();
|
4679
4655
|
|
4680
|
-
export { Ciphersuite, CoreCrypto, CoreCryptoError, CredentialType, ExternalProposalType,
|
4656
|
+
export { Ciphersuite, CoreCrypto, CoreCryptoError, CredentialType, ExternalProposalType, GroupInfoEncryptionType, ProposalType, RatchetTreeType, WireE2eIdentity, WirePolicy };
|
Binary file
|