@wireapp/core-crypto 1.0.0-rc.1 → 1.0.0-rc.10
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
|
@@ -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 {};
|