@wireapp/core-crypto 1.0.0-pre.8 → 1.0.0-rc.10
Sign up to get free protection for your applications and to get access to all the features.
package/package.json
CHANGED
Binary file
|
@@ -79,6 +79,24 @@ export interface ConversationConfiguration {
|
|
79
79
|
* Implementation specific configuration
|
80
80
|
*/
|
81
81
|
custom?: CustomConfiguration;
|
82
|
+
/**
|
83
|
+
* Trust anchors to be added in the group's context extensions
|
84
|
+
*/
|
85
|
+
perDomainTrustAnchors?: PerDomainTrustAnchor[];
|
86
|
+
}
|
87
|
+
/**
|
88
|
+
* A wrapper containing the configuration for trust anchors to be added in the group's context
|
89
|
+
* extensions
|
90
|
+
*/
|
91
|
+
export interface PerDomainTrustAnchor {
|
92
|
+
/**
|
93
|
+
* Domain name of the owning backend this anchor refers to. One of the certificate in the chain has to have this domain in its SANs
|
94
|
+
*/
|
95
|
+
domain_name: string;
|
96
|
+
/**
|
97
|
+
* PEM encoded (partial) certificate chain. This contains the certificate chain for the CA certificate issuing the E2E Identity certificates
|
98
|
+
*/
|
99
|
+
intermediate_certificate_chain: string;
|
82
100
|
}
|
83
101
|
/**
|
84
102
|
* see [core_crypto::prelude::MlsWirePolicy]
|
@@ -244,7 +262,7 @@ export interface RotateBundle {
|
|
244
262
|
*
|
245
263
|
* @readonly
|
246
264
|
*/
|
247
|
-
commits: CommitBundle
|
265
|
+
commits: Map<string, CommitBundle>;
|
248
266
|
/**
|
249
267
|
* Fresh KeyPackages with the new Credential
|
250
268
|
*
|
@@ -368,6 +386,45 @@ export interface DecryptedMessage {
|
|
368
386
|
* Present for all messages
|
369
387
|
*/
|
370
388
|
identity?: WireIdentity;
|
389
|
+
/**
|
390
|
+
* Only set when the decrypted message is a commit.
|
391
|
+
* Contains buffered messages for next epoch which were received before the commit creating the epoch
|
392
|
+
* because the DS did not fan them out in order.
|
393
|
+
*/
|
394
|
+
bufferedMessages?: BufferedDecryptedMessage[];
|
395
|
+
}
|
396
|
+
/**
|
397
|
+
* Almost same as {@link DecryptedMessage} but avoids recursion
|
398
|
+
*/
|
399
|
+
export interface BufferedDecryptedMessage {
|
400
|
+
/**
|
401
|
+
* see {@link DecryptedMessage.message}
|
402
|
+
*/
|
403
|
+
message?: Uint8Array;
|
404
|
+
/**
|
405
|
+
* see {@link DecryptedMessage.proposals}
|
406
|
+
*/
|
407
|
+
proposals: ProposalBundle[];
|
408
|
+
/**
|
409
|
+
* see {@link DecryptedMessage.isActive}
|
410
|
+
*/
|
411
|
+
isActive: boolean;
|
412
|
+
/**
|
413
|
+
* see {@link DecryptedMessage.commitDelay}
|
414
|
+
*/
|
415
|
+
commitDelay?: number;
|
416
|
+
/**
|
417
|
+
* see {@link DecryptedMessage.senderClientId}
|
418
|
+
*/
|
419
|
+
senderClientId?: ClientId;
|
420
|
+
/**
|
421
|
+
* see {@link DecryptedMessage.hasEpochChanged}
|
422
|
+
*/
|
423
|
+
hasEpochChanged: boolean;
|
424
|
+
/**
|
425
|
+
* see {@link DecryptedMessage.identity}
|
426
|
+
*/
|
427
|
+
identity?: WireIdentity;
|
371
428
|
}
|
372
429
|
/**
|
373
430
|
* Represents the identity claims identifying a client. Those claims are verifiable by any member in the group
|
@@ -389,6 +446,10 @@ export interface WireIdentity {
|
|
389
446
|
* DNS domain for which this identity proof was generated e.g. `whitehouse.gov`
|
390
447
|
*/
|
391
448
|
domain: string;
|
449
|
+
/**
|
450
|
+
* X509 certificate identifying this client in the MLS group ; PEM encoded
|
451
|
+
*/
|
452
|
+
certificate: string;
|
392
453
|
}
|
393
454
|
/**
|
394
455
|
* Returned by all methods creating proposals. Contains a proposal message and an identifier to roll back the proposal
|
@@ -607,7 +668,7 @@ export declare class CoreCrypto {
|
|
607
668
|
/**
|
608
669
|
* Closes this {@link CoreCrypto} instance and deallocates all loaded resources
|
609
670
|
*
|
610
|
-
* **CAUTION**: This {@link CoreCrypto} instance won't be
|
671
|
+
* **CAUTION**: This {@link CoreCrypto} instance won't be usable after a call to this method, but there's no way to express this requirement in TypeScript, so you'll get errors instead!
|
611
672
|
*/
|
612
673
|
close(): Promise<void>;
|
613
674
|
/**
|
@@ -673,7 +734,12 @@ export declare class CoreCrypto {
|
|
673
734
|
*/
|
674
735
|
createConversation(conversationId: ConversationId, creatorCredentialType: CredentialType, configuration?: ConversationConfiguration): Promise<any>;
|
675
736
|
/**
|
676
|
-
* Decrypts a message for a given conversation
|
737
|
+
* Decrypts a message for a given conversation.
|
738
|
+
*
|
739
|
+
* Note: you should catch & ignore the following error reasons:
|
740
|
+
* * "We already decrypted this message once"
|
741
|
+
* * "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"
|
742
|
+
* * "Incoming message is for a future epoch. We will buffer it until the commit for that epoch arrives"
|
677
743
|
*
|
678
744
|
* @param conversationId - The ID of the conversation
|
679
745
|
* @param payload - The encrypted message buffer
|
@@ -690,16 +756,39 @@ export declare class CoreCrypto {
|
|
690
756
|
* @returns The encrypted payload for the given group. This needs to be fanned out to the other members of the group.
|
691
757
|
*/
|
692
758
|
encryptMessage(conversationId: ConversationId, message: Uint8Array): Promise<Uint8Array>;
|
759
|
+
/**
|
760
|
+
* Updates the trust anchors for a conversation. This should be called when a federated event happens (new team added/removed).
|
761
|
+
* Clients should add and/or remove trust anchors from the new backend to the conversation. The method will check
|
762
|
+
* for duplicated domains and the validity of the certificate chain.
|
763
|
+
*
|
764
|
+
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called afterwards **ONLY IF** the Delivery Service responds
|
765
|
+
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
766
|
+
* epoch, use new encryption secrets etc...
|
767
|
+
*
|
768
|
+
* @param conversationId - The ID of the conversation
|
769
|
+
* @param removeDomainNames - Domains to remove from the trust anchors
|
770
|
+
* @param addTrustAnchors - New trust anchors to add to the conversation
|
771
|
+
*
|
772
|
+
* @returns A {@link CommitBundle}
|
773
|
+
*/
|
774
|
+
updateTrustAnchorsFromConversation(conversationId: ConversationId, removeDomainNames: string[], addTrustAnchors: PerDomainTrustAnchor[]): Promise<CommitBundle>;
|
693
775
|
/**
|
694
776
|
* Ingest a TLS-serialized MLS welcome message to join an existing MLS group
|
695
777
|
*
|
778
|
+
* Important: you have to catch the error with this reason "Although this Welcome seems valid, the local KeyPackage
|
779
|
+
* it references has already been deleted locally. Join this group with an external commit", ignore it and then try
|
780
|
+
* to join this group with an external commit.
|
781
|
+
*
|
696
782
|
* @param welcomeMessage - TLS-serialized MLS Welcome message
|
697
783
|
* @param configuration - configuration of the MLS group
|
698
784
|
* @returns The conversation ID of the newly joined group. You can use the same ID to decrypt/encrypt messages
|
699
785
|
*/
|
700
786
|
processWelcomeMessage(welcomeMessage: Uint8Array, configuration?: CustomConfiguration): Promise<ConversationId>;
|
701
787
|
/**
|
702
|
-
*
|
788
|
+
* Get the client's public signature key. To upload to the DS for further backend side validation
|
789
|
+
*
|
790
|
+
* @param ciphersuite - of the signature key to get
|
791
|
+
* @returns the client's public signature key
|
703
792
|
*/
|
704
793
|
clientPublicKey(ciphersuite: Ciphersuite): Promise<Uint8Array>;
|
705
794
|
/**
|
@@ -728,7 +817,7 @@ export declare class CoreCrypto {
|
|
728
817
|
/**
|
729
818
|
* Adds new clients to a conversation, assuming the current client has the right to add new clients to the conversation.
|
730
819
|
*
|
731
|
-
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called
|
820
|
+
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called afterward **ONLY IF** the Delivery Service responds
|
732
821
|
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
733
822
|
* epoch, use new encryption secrets etc...
|
734
823
|
*
|
@@ -742,7 +831,7 @@ export declare class CoreCrypto {
|
|
742
831
|
* Removes the provided clients from a conversation; Assuming those clients exist and the current client is allowed
|
743
832
|
* to do so, otherwise this operation does nothing.
|
744
833
|
*
|
745
|
-
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called
|
834
|
+
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called afterward **ONLY IF** the Delivery Service responds
|
746
835
|
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
747
836
|
* epoch, use new encryption secrets etc...
|
748
837
|
*
|
@@ -753,9 +842,9 @@ export declare class CoreCrypto {
|
|
753
842
|
*/
|
754
843
|
removeClientsFromConversation(conversationId: ConversationId, clientIds: ClientId[]): Promise<CommitBundle>;
|
755
844
|
/**
|
756
|
-
* Creates an update commit which forces every client to update their
|
845
|
+
* Creates an update commit which forces every client to update their LeafNode in the conversation
|
757
846
|
*
|
758
|
-
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called
|
847
|
+
* **CAUTION**: {@link CoreCrypto.commitAccepted} **HAS TO** be called afterward **ONLY IF** the Delivery Service responds
|
759
848
|
* '200 OK' to the {@link CommitBundle} upload. It will "merge" the commit locally i.e. increment the local group
|
760
849
|
* epoch, use new encryption secrets etc...
|
761
850
|
*
|
@@ -785,6 +874,9 @@ export declare class CoreCrypto {
|
|
785
874
|
* @returns A {@link ProposalBundle} containing the Proposal and its reference in order to roll it back if necessary
|
786
875
|
*/
|
787
876
|
newProposal(proposalType: ProposalType, args: ProposalArgs | AddProposalArgs | RemoveProposalArgs): Promise<ProposalBundle>;
|
877
|
+
/**
|
878
|
+
* Creates a new external Add proposal for self client to join a conversation.
|
879
|
+
*/
|
788
880
|
newExternalProposal(externalProposalType: ExternalProposalType, args: ExternalAddProposalArgs): Promise<Uint8Array>;
|
789
881
|
/**
|
790
882
|
* Allows to create an external commit to "apply" to join a group through its GroupInfo.
|
@@ -809,8 +901,9 @@ export declare class CoreCrypto {
|
|
809
901
|
* and deletes the temporary one. This step makes the group operational and ready to encrypt/decrypt message
|
810
902
|
*
|
811
903
|
* @param conversationId - The ID of the conversation
|
904
|
+
* @returns eventually decrypted buffered messages if any
|
812
905
|
*/
|
813
|
-
mergePendingGroupFromExternalCommit(conversationId: ConversationId): Promise<
|
906
|
+
mergePendingGroupFromExternalCommit(conversationId: ConversationId): Promise<BufferedDecryptedMessage[] | undefined>;
|
814
907
|
/**
|
815
908
|
* In case the external commit generated by {@link CoreCrypto.joinByExternalCommit} is rejected by the Delivery Service, and we
|
816
909
|
* want to abort this external commit once for all, we can wipe out the pending group from the keystore in order
|
@@ -820,26 +913,24 @@ export declare class CoreCrypto {
|
|
820
913
|
*/
|
821
914
|
clearPendingGroupFromExternalCommit(conversationId: ConversationId): Promise<void>;
|
822
915
|
/**
|
823
|
-
* Allows to mark the latest commit produced as "accepted" and be able to safely merge it
|
824
|
-
* into the local group state
|
916
|
+
* Allows to mark the latest commit produced as "accepted" and be able to safely merge it into the local group state
|
825
917
|
*
|
826
918
|
* @param conversationId - The group's ID
|
919
|
+
* @returns the messages from current epoch which had been buffered, if any
|
827
920
|
*/
|
828
|
-
commitAccepted(conversationId: ConversationId): Promise<
|
921
|
+
commitAccepted(conversationId: ConversationId): Promise<BufferedDecryptedMessage[] | undefined>;
|
829
922
|
/**
|
830
|
-
* Allows to remove a pending proposal (rollback). Use this when backend rejects the proposal you just sent e.g. if permissions
|
831
|
-
* have changed meanwhile.
|
923
|
+
* Allows to remove a pending proposal (rollback). Use this when backend rejects the proposal you just sent e.g. if permissions have changed meanwhile.
|
832
924
|
*
|
833
925
|
* **CAUTION**: only use this when you had an explicit response from the Delivery Service
|
834
|
-
* e.g. 403 or 409. Do not use otherwise e.g. 5xx responses, timeout etc
|
926
|
+
* e.g. 403 or 409. Do not use otherwise e.g. 5xx responses, timeout etc…
|
835
927
|
*
|
836
928
|
* @param conversationId - The group's ID
|
837
929
|
* @param proposalRef - A reference to the proposal to delete. You get one when using {@link CoreCrypto.newProposal}
|
838
930
|
*/
|
839
931
|
clearPendingProposal(conversationId: ConversationId, proposalRef: ProposalRef): Promise<void>;
|
840
932
|
/**
|
841
|
-
* Allows to remove a pending commit (rollback). Use this when backend rejects the commit you just sent e.g. if permissions
|
842
|
-
* have changed meanwhile.
|
933
|
+
* Allows to remove a pending commit (rollback). Use this when backend rejects the commit you just sent e.g. if permissions have changed meanwhile.
|
843
934
|
*
|
844
935
|
* **CAUTION**: only use this when you had an explicit response from the Delivery Service
|
845
936
|
* e.g. 403. Do not use otherwise e.g. 5xx responses, timeout etc..
|
@@ -883,7 +974,7 @@ export declare class CoreCrypto {
|
|
883
974
|
*/
|
884
975
|
reseedRng(seed: Uint8Array): Promise<void>;
|
885
976
|
/**
|
886
|
-
*
|
977
|
+
* Initializes the proteus client
|
887
978
|
*/
|
888
979
|
proteusInit(): Promise<void>;
|
889
980
|
/**
|
@@ -1016,47 +1107,49 @@ export declare class CoreCrypto {
|
|
1016
1107
|
* Creates an enrollment instance with private key material you can use in order to fetch
|
1017
1108
|
* a new x509 certificate from the acme server.
|
1018
1109
|
*
|
1019
|
-
* @param clientId client identifier with user b64Url encoded & clientId hex encoded e.g. `NDUyMGUyMmY2YjA3NGU3NjkyZjE1NjJjZTAwMmQ2NTQ:6add501bacd1d90e@example.com`
|
1020
|
-
* @param displayName human
|
1021
|
-
* @param handle user handle e.g. `alice.smith.qa@example.com`
|
1022
|
-
* @param expiryDays generated x509 certificate expiry
|
1110
|
+
* @param clientId - client identifier with user b64Url encoded & clientId hex encoded e.g. `NDUyMGUyMmY2YjA3NGU3NjkyZjE1NjJjZTAwMmQ2NTQ:6add501bacd1d90e@example.com`
|
1111
|
+
* @param displayName - human-readable name displayed in the application e.g. `Smith, Alice M (QA)`
|
1112
|
+
* @param handle - user handle e.g. `alice.smith.qa@example.com`
|
1113
|
+
* @param expiryDays - generated x509 certificate expiry
|
1023
1114
|
* @param ciphersuite - for generating signing key material
|
1024
|
-
* @returns The new {@link
|
1115
|
+
* @returns The new {@link E2eiEnrollment} enrollment instance to use with {@link CoreCrypto.e2eiMlsInitOnly}
|
1025
1116
|
*/
|
1026
|
-
e2eiNewEnrollment(clientId: string, displayName: string, handle: string, expiryDays: number, ciphersuite: Ciphersuite): Promise<
|
1117
|
+
e2eiNewEnrollment(clientId: string, displayName: string, handle: string, expiryDays: number, ciphersuite: Ciphersuite): Promise<E2eiEnrollment>;
|
1027
1118
|
/**
|
1028
1119
|
* Generates an E2EI enrollment instance for a "regular" client (with a Basic credential) willing to migrate to E2EI.
|
1029
|
-
* As a consequence, this method does not support changing the ClientId which should remain the same as the Basic one.
|
1030
1120
|
* Once the enrollment is finished, use the instance in {@link CoreCrypto.e2eiRotateAll} to do the rotation.
|
1031
1121
|
*
|
1032
|
-
* @param
|
1033
|
-
* @param
|
1034
|
-
* @param
|
1122
|
+
* @param clientId - client identifier with user b64Url encoded & clientId hex encoded e.g. `NDUyMGUyMmY2YjA3NGU3NjkyZjE1NjJjZTAwMmQ2NTQ:6add501bacd1d90e@example.com`
|
1123
|
+
* @param displayName - human-readable name displayed in the application e.g. `Smith, Alice M (QA)`
|
1124
|
+
* @param handle - user handle e.g. `alice.smith.qa@example.com`
|
1125
|
+
* @param expiryDays - generated x509 certificate expiry
|
1035
1126
|
* @param ciphersuite - for generating signing key material
|
1036
|
-
* @returns The new {@link
|
1127
|
+
* @returns The new {@link E2eiEnrollment} enrollment instance to use with {@link CoreCrypto.e2eiRotateAll}
|
1037
1128
|
*/
|
1038
|
-
e2eiNewActivationEnrollment(displayName: string, handle: string, expiryDays: number, ciphersuite: Ciphersuite): Promise<
|
1129
|
+
e2eiNewActivationEnrollment(clientId: string, displayName: string, handle: string, expiryDays: number, ciphersuite: Ciphersuite): Promise<E2eiEnrollment>;
|
1039
1130
|
/**
|
1040
1131
|
* Generates an E2EI enrollment instance for a E2EI client (with a X509 certificate credential)
|
1041
1132
|
* having to change/rotate their credential, either because the former one is expired or it
|
1042
|
-
* has been revoked.
|
1043
|
-
* should remain the same as the previous one. It lets you change the DisplayName or the handle
|
1133
|
+
* has been revoked. It lets you change the DisplayName or the handle
|
1044
1134
|
* if you need to. Once the enrollment is finished, use the instance in {@link CoreCrypto.e2eiRotateAll} to do the rotation.
|
1045
1135
|
*
|
1046
|
-
* @param
|
1136
|
+
* @param clientId - client identifier with user b64Url encoded & clientId hex encoded e.g. `NDUyMGUyMmY2YjA3NGU3NjkyZjE1NjJjZTAwMmQ2NTQ:6add501bacd1d90e@example.com`
|
1137
|
+
* @param expiryDays - generated x509 certificate expiry
|
1047
1138
|
* @param ciphersuite - for generating signing key material
|
1048
|
-
* @param displayName human
|
1049
|
-
* @param handle user handle e.g. `alice.smith.qa@example.com`
|
1050
|
-
* @returns The new {@link
|
1139
|
+
* @param displayName - human-readable name displayed in the application e.g. `Smith, Alice M (QA)`
|
1140
|
+
* @param handle - user handle e.g. `alice.smith.qa@example.com`
|
1141
|
+
* @returns The new {@link E2eiEnrollment} enrollment instance to use with {@link CoreCrypto.e2eiRotateAll}
|
1051
1142
|
*/
|
1052
|
-
e2eiNewRotateEnrollment(expiryDays: number, ciphersuite: Ciphersuite, displayName?: string, handle?: string): Promise<
|
1143
|
+
e2eiNewRotateEnrollment(clientId: string, expiryDays: number, ciphersuite: Ciphersuite, displayName?: string, handle?: string): Promise<E2eiEnrollment>;
|
1053
1144
|
/**
|
1054
|
-
* Use this method to initialize end-to-end identity when a client signs up and the grace period is already expired ;
|
1145
|
+
* Use this method to initialize end-to-end identity when a client signs up and the grace period is already expired ;
|
1146
|
+
* that means he cannot initialize with a Basic credential
|
1055
1147
|
*
|
1056
1148
|
* @param enrollment - the enrollment instance used to fetch the certificates
|
1057
1149
|
* @param certificateChain - the raw response from ACME server
|
1150
|
+
* @returns a MlsClient initialized with only a x509 credential
|
1058
1151
|
*/
|
1059
|
-
e2eiMlsInitOnly(enrollment:
|
1152
|
+
e2eiMlsInitOnly(enrollment: E2eiEnrollment, certificateChain: string): Promise<void>;
|
1060
1153
|
/**
|
1061
1154
|
* Creates a commit in all local conversations for changing the credential. Requires first
|
1062
1155
|
* having enrolled a new X509 certificate with either {@link CoreCrypto.e2eiNewActivationEnrollment}
|
@@ -1065,8 +1158,9 @@ export declare class CoreCrypto {
|
|
1065
1158
|
* @param enrollment - the enrollment instance used to fetch the certificates
|
1066
1159
|
* @param certificateChain - the raw response from ACME server
|
1067
1160
|
* @param newKeyPackageCount - number of KeyPackages with new identity to generate
|
1161
|
+
* @returns a {@link RotateBundle} with commits to fan-out to other group members, KeyPackages to upload and old ones to delete
|
1068
1162
|
*/
|
1069
|
-
e2eiRotateAll(enrollment:
|
1163
|
+
e2eiRotateAll(enrollment: E2eiEnrollment, certificateChain: string, newKeyPackageCount: number): Promise<RotateBundle>;
|
1070
1164
|
/**
|
1071
1165
|
* Allows persisting an active enrollment (for example while redirecting the user during OAuth) in order to resume
|
1072
1166
|
* it later with {@link e2eiEnrollmentStashPop}
|
@@ -1074,22 +1168,38 @@ export declare class CoreCrypto {
|
|
1074
1168
|
* @param enrollment the enrollment instance to persist
|
1075
1169
|
* @returns a handle to fetch the enrollment later with {@link e2eiEnrollmentStashPop}
|
1076
1170
|
*/
|
1077
|
-
e2eiEnrollmentStash(enrollment:
|
1171
|
+
e2eiEnrollmentStash(enrollment: E2eiEnrollment): Promise<Uint8Array>;
|
1078
1172
|
/**
|
1079
1173
|
* Fetches the persisted enrollment and deletes it from the keystore
|
1080
1174
|
*
|
1081
1175
|
* @param handle returned by {@link e2eiEnrollmentStash}
|
1082
1176
|
* @returns the persisted enrollment instance
|
1083
1177
|
*/
|
1084
|
-
e2eiEnrollmentStashPop(handle: Uint8Array): Promise<
|
1178
|
+
e2eiEnrollmentStashPop(handle: Uint8Array): Promise<E2eiEnrollment>;
|
1085
1179
|
/**
|
1086
1180
|
* Indicates when to mark a conversation as degraded i.e. when not all its members have a X509.
|
1087
1181
|
* Credential generated by Wire's end-to-end identity enrollment
|
1088
1182
|
*
|
1089
1183
|
* @param conversationId The group's ID
|
1090
|
-
* @returns
|
1184
|
+
* @returns the conversation state given current members
|
1091
1185
|
*/
|
1092
|
-
|
1186
|
+
e2eiConversationState(conversationId: ConversationId): Promise<E2eiConversationState>;
|
1187
|
+
/**
|
1188
|
+
* Returns true when end-to-end-identity is enabled for the given Ciphersuite
|
1189
|
+
*
|
1190
|
+
* @param ciphersuite of the credential to check
|
1191
|
+
* @returns true if end-to-end identity is enabled for the given ciphersuite
|
1192
|
+
*/
|
1193
|
+
e2eiIsEnabled(ciphersuite: Ciphersuite): Promise<boolean>;
|
1194
|
+
/**
|
1195
|
+
* From a given conversation, get the identity of the members supplied. Identity is only present for members with a
|
1196
|
+
* Certificate Credential (after turning on end-to-end identity).
|
1197
|
+
*
|
1198
|
+
* @param conversationId - identifier of the conversation
|
1199
|
+
* @param clientIds - identifiers of the user
|
1200
|
+
* @returns identities or if no member has a x509 certificate, it will return an empty List
|
1201
|
+
*/
|
1202
|
+
getUserIdentities(conversationId: ConversationId, clientIds: ClientId[]): Promise<WireIdentity[]>;
|
1093
1203
|
/**
|
1094
1204
|
* Returns the current version of {@link CoreCrypto}
|
1095
1205
|
*
|
@@ -1098,7 +1208,7 @@ export declare class CoreCrypto {
|
|
1098
1208
|
static version(): string;
|
1099
1209
|
}
|
1100
1210
|
type JsonRawData = Uint8Array;
|
1101
|
-
export declare class
|
1211
|
+
export declare class E2eiEnrollment {
|
1102
1212
|
#private;
|
1103
1213
|
/** @hidden */
|
1104
1214
|
constructor(e2ei: unknown);
|
@@ -1207,7 +1317,7 @@ export declare class WireE2eIdentity {
|
|
1207
1317
|
* Parses the response from `POST /acme/{provisioner-name}/order/{order-id}`.
|
1208
1318
|
*
|
1209
1319
|
* @param order HTTP response body
|
1210
|
-
* @return
|
1320
|
+
* @return finalize url to use with {@link finalizeRequest}
|
1211
1321
|
* @see https://www.rfc-editor.org/rfc/rfc8555.html#section-7.4
|
1212
1322
|
*/
|
1213
1323
|
checkOrderResponse(order: JsonRawData): string;
|
@@ -1257,6 +1367,12 @@ export interface AcmeDirectory {
|
|
1257
1367
|
* @readonly
|
1258
1368
|
*/
|
1259
1369
|
newOrder: string;
|
1370
|
+
/**
|
1371
|
+
* Revocation URL
|
1372
|
+
*
|
1373
|
+
* @readonly
|
1374
|
+
*/
|
1375
|
+
revokeCert: string;
|
1260
1376
|
}
|
1261
1377
|
/**
|
1262
1378
|
* Result of an order creation
|
@@ -1325,5 +1441,24 @@ export interface AcmeChallenge {
|
|
1325
1441
|
*/
|
1326
1442
|
target: string;
|
1327
1443
|
}
|
1444
|
+
/**
|
1445
|
+
* Indicates the state of a Conversation regarding end-to-end identity.
|
1446
|
+
* Note: this does not check pending state (pending commit, pending proposals) so it does not
|
1447
|
+
* consider members about to be added/removed
|
1448
|
+
*/
|
1449
|
+
export declare enum E2eiConversationState {
|
1450
|
+
/**
|
1451
|
+
* All clients have a valid E2EI certificate
|
1452
|
+
*/
|
1453
|
+
Verified = 1,
|
1454
|
+
/**
|
1455
|
+
* Some clients are either still Basic or their certificate is expired
|
1456
|
+
*/
|
1457
|
+
Degraded = 2,
|
1458
|
+
/**
|
1459
|
+
* All clients are still Basic. If all client have expired certificates, Degraded is returned.
|
1460
|
+
*/
|
1461
|
+
NotEnabled = 3
|
1462
|
+
}
|
1328
1463
|
|
1329
1464
|
export {};
|